@charset "utf-8";
:root{--ink:#101010;--navy:#252944;--muted:#898989;--line:#e9e9e9;--frame:min(1680px,calc(100% - 9.4vw));--ease:cubic-bezier(.22,.61,.36,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:Arial,"Helvetica Neue","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-ready.page-enter{animation:pageAppear .7s ease both}
@keyframes pageAppear{from{opacity:.75;transform:translateY(8px)}to{opacity:1;transform:none}}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{display:block;max-width:100%}
.wrap{width:var(--frame);margin-inline:auto}
.page-enter{opacity:1;transform:none}
.header{height:164px;background:rgba(255,255,255,.95);position:sticky;top:0;backdrop-filter:saturate(1.15) blur(10px);z-index:50;border-bottom:1px solid rgba(0,0,0,.04);transition:box-shadow .35s ease,background .35s ease}
.header.scrolled{box-shadow:0 10px 28px rgba(0,0,0,.06);background:rgba(255,255,255,.9)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}
.logo img{width:276px;max-height:112px;object-fit:contain;object-position:left center;transition:transform .45s var(--ease),opacity .45s ease}
.logo:hover img{transform:translateY(-2px);opacity:.88}
.nav{display:flex;align-items:center;gap:57px;padding-top:25px}
.nav a{font-size:17px;position:relative;padding-bottom:11px;transition:transform .28s ease,color .28s ease}
.nav a:hover{transform:translateY(-2px)}
.nav a:after{content:"";height:1px;width:0;background:currentColor;position:absolute;bottom:0;left:0;transition:width .3s}
.nav a:hover:after,.nav a.active:after{width:100%}
.menu-toggle{display:none}
.hero{height:min(42vw,740px);min-height:450px;position:relative;overflow:hidden;background:#b8babe;border-radius:0 0 8px 8px}
.hero:after{content:"";position:absolute;inset:auto 0 0 0;height:28%;background:linear-gradient(to top,rgba(0,0,0,.08),transparent);pointer-events:none}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.15s ease}
.hero-slide.active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 6.2s ease,filter 1s ease;filter:saturate(.97)}
.hero-slide.active img{transform:scale(1.0);filter:saturate(1)}
.hero-text{position:absolute;left:7%;bottom:17%;color:white;text-shadow:0 1px 10px #0003;opacity:0;transform:translateY(16px);transition:opacity .9s .2s var(--ease),transform .9s .2s var(--ease)}
.hero-slide.active .hero-text{opacity:1;transform:none}
.hero-text strong{display:block;font-size:clamp(40px,4vw,84px);font-weight:300;letter-spacing:.065em}
.hero-text span{font-size:19px;letter-spacing:.04em}
.hero-dots{position:absolute;left:50%;transform:translateX(-50%);bottom:22px;display:flex;gap:10px;z-index:2}
.hero-dots button{border:0;width:56px;height:3px;background:#fff8;cursor:pointer;padding:0;transition:transform .3s ease,background .3s ease}
.hero-dots button:hover{transform:scaleY(1.5)}
.hero-dots button.active{background:white}
.section-head{padding-top:100px;margin-bottom:95px}
.eyebrow{font-size:12px;letter-spacing:.05em;color:#8b8b8b;text-transform:uppercase}
.section-head h1,.section-head h2{font-size:clamp(54px,5.5vw,100px);letter-spacing:-.055em;margin:5px 0 0;line-height:1.13;font-weight:700}
.section-head.compact{padding-top:52px;margin-bottom:100px}
.artists-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px;align-items:start}
.artist:first-child{grid-column:1/4;max-width:525px;margin-bottom:85px}
.artist{transition:transform .5s var(--ease)}
.artist .imgbox{overflow:hidden;background:#eee;border-radius:2px;box-shadow:0 22px 55px rgba(20,20,20,.08);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.artist img{width:100%;aspect-ratio:.68;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .6s ease}
.artist:hover{transform:translateY(-6px)}
.artist:hover .imgbox{box-shadow:0 26px 65px rgba(20,20,20,.14)}
.artist:hover img{transform:scale(1.04);filter:contrast(1.03)}
.artist-name{display:block;font-size:19px;margin-top:16px}
.artist-en{display:block;font-size:13px;color:#7b7b7b;margin-top:4px}
.artists-block{padding-bottom:135px}
.footer{background:var(--navy);color:white;margin-top:35px}
.footer-inner{min-height:132px;display:flex;align-items:center;justify-content:space-between;gap:40px}
.footer-logo img{width:190px;filter:none;transition:transform .4s var(--ease)}
.footer-logo:hover img{transform:translateY(-2px)}
.footer-links{display:flex;gap:48px;font-size:13px}
.footer-links a{opacity:.9;transition:opacity .3s ease,transform .3s ease}
.footer-links a:hover{opacity:1;transform:translateY(-2px)}
.footer small{font-size:11px;color:#c3c5d0}
.profile-layout{display:grid;grid-template-columns:minmax(0,525px) minmax(0,1fr);gap:clamp(55px,5vw,110px);padding-top:64px;padding-bottom:110px}
.profile-gallery{position:relative}
.profile-main-frame{overflow:hidden;background:#f3f3f3;box-shadow:0 24px 60px rgba(15,15,15,.08)}
.profile-main-photo{width:100%;aspect-ratio:.68;object-fit:cover;transition:transform 1s var(--ease),opacity .45s ease,filter .45s ease}
.profile-gallery:hover .profile-main-photo{transform:scale(1.02)}
.profile-main-photo.is-switching{opacity:.4;filter:blur(1px)}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:10px}
.thumbs button{cursor:pointer;border:0;padding:0;background:#eee;overflow:hidden;outline-offset:3px;transform:translateY(0);transition:transform .35s var(--ease),box-shadow .35s ease}
.thumbs button:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(0,0,0,.11)}
.thumbs img{width:100%;aspect-ratio:.68;object-fit:cover;transition:opacity .25s,transform .5s ease}
.thumbs button:hover img,.thumbs button.selected img{opacity:.67;transform:scale(1.03)}
.profile-info .eyebrow{margin:1px 0 24px}
.profile-info h1{font-weight:400;font-size:clamp(35px,3vw,57px);letter-spacing:.07em;margin:0}
.profile-info .roman{font-size:17px;color:#999;margin-top:8px}
.bio-facts{margin:73px 0 48px;max-width:500px}
.bio-facts:empty{display:none}
.bio-facts div{border-bottom:1px solid #ddd;display:grid;grid-template-columns:125px 1fr;align-items:center;padding:12px 0;font-size:15px}
.bio-facts dt,.bio-facts dd{margin:0}
.bio-facts dt{font-weight:600}
.prose{font-size:16px;line-height:2;letter-spacing:.015em}
.prose h2{font-size:16px;letter-spacing:.13em;margin:0 0 4px}
.prose p{margin:0 0 25px}
.sns{display:flex;align-items:center;gap:18px;margin:45px 0 25px;font-size:15px;letter-spacing:.07em;font-weight:600}
.sns img{height:37px;width:37px;transition:transform .35s ease,opacity .35s ease}
.sns a:hover img{transform:translateY(-2px) scale(1.04);opacity:.82}
.banners{display:grid;gap:17px;width:min(650px,100%)}
.banners a,.banners img{border-radius:2px;overflow:hidden}
.banners a img{width:100%;transition:transform .55s var(--ease),opacity .3s}
.banners a:hover img{opacity:.88;transform:scale(1.015)}
.works{margin-top:100px}
.tabs{display:flex;flex-wrap:wrap;gap:18px 26px;margin-bottom:28px;border-bottom:1px solid #ddd;padding-bottom:20px}
.tabs button{border:0;background:transparent;padding:0 0 7px;cursor:pointer;font-size:15px;letter-spacing:.04em;color:#555;position:relative;transition:color .25s ease,transform .25s ease}
.tabs button:hover{color:#111;transform:translateY(-2px)}
.tabs button:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:#111;transform:scaleX(0);transform-origin:left;transition:transform .28s ease}
.tabs button.active{color:#111}
.tabs button.active:after{transform:scaleX(1)}
.work-panel{min-height:120px;line-height:2;font-size:15px;opacity:1;transform:none;transition:opacity .35s ease,transform .35s ease}
.work-panel.is-changing{opacity:0;transform:translateY(10px)}
.work-panel h3{font-size:17px;border-bottom:1px solid var(--line);padding:0 0 15px;margin:0 0 28px}
.work-group{margin-bottom:28px}
.work-year{font-size:14px;font-weight:700;letter-spacing:.08em;color:#444;margin-bottom:8px}
.work-list{margin:0;padding:0;list-style:none}
.work-list li{padding:8px 0;border-bottom:1px solid #f0f0f0;line-height:1.9}
.work-list li:last-child{border-bottom:0}
.work-empty{color:#666}
.simple-page{min-height:58vh;padding-top:95px;padding-bottom:140px}
.simple-page h1{font-size:clamp(52px,6vw,110px);line-height:1.15;margin:12px 0 90px;letter-spacing:-.05em}
.company-table{border-collapse:collapse;width:min(1080px,100%);font-size:16px}
.company-table th,.company-table td{border-bottom:1px solid #ccc;padding:26px 4px;text-align:left;vertical-align:top}.company-table th{width:230px;font-weight:500}.legal-page{max-width:1100px}.legal-page h1{font-size:43px;letter-spacing:0;margin:0 0 45px}.legal-page h2{font-size:20px;margin-top:42px}.legal-page p{line-height:2.15;font-size:15px}.notice{background:#f5f5f5;border-left:3px solid #999;padding:20px 25px;font-size:14px;line-height:1.8;margin-top:45px}.contact-card{font-size:17px;line-height:2}.social-icons{display:flex;gap:12px}.social-icons img{width:28px;height:28px}.reveal{opacity:1;transform:none;transition:opacity .8s ease,transform .8s ease}.reveal.reveal-left,.reveal.reveal-right{transform:none}.reveal.visible{opacity:1;transform:translate(0,0)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal,.page-enter{opacity:1;transform:none}.hero-slide img{transform:none!important}.header{position:relative}}
@media(max-width:900px){:root{--frame:calc(100% - 48px)}.header{height:100px}.logo img{width:148px;max-height:74px}.nav{display:none;position:absolute;top:100px;left:0;right:0;background:white;flex-direction:column;align-items:stretch;gap:0;padding:25px 32px 35px;box-shadow:0 18px 18px #0001}.nav.open{display:flex}.nav a{padding:17px 0;border-bottom:1px solid #eee;font-size:17px}.nav a:after{display:none}.menu-toggle{display:block;background:transparent;border:0;width:44px;height:44px;cursor:pointer;position:relative}.menu-toggle span{position:absolute;left:8px;right:8px;height:1.5px;background:#111;top:16px;transition:transform .25s,top .25s}.menu-toggle span:last-child{top:27px}.menu-toggle[aria-expanded=true] span:first-child{top:22px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{top:22px;transform:rotate(-45deg)}.hero{height:69vh;max-height:810px;min-height:460px}.hero-slide img{object-position:62% center}.hero-text{left:6%;bottom:16%}.hero-text strong{font-size:clamp(35px,7vw,64px)}.hero-text span{font-size:14px}.hero-dots button{width:40px}.section-head{padding-top:70px;margin-bottom:62px}.section-head h1,.section-head h2{font-size:64px}.artists-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.artist:first-child{grid-column:1/3;width:calc(50% - 12px);margin-bottom:50px}.artist-name{font-size:14px}.artist-en{font-size:11px}.artists-block{padding-bottom:65px}.footer-inner{min-height:0;align-items:flex-start;flex-direction:column;padding:48px 0;gap:33px}.footer-links{flex-direction:column;gap:18px}.profile-layout{grid-template-columns:1fr;gap:60px}.profile-gallery{max-width:610px}.profile-info h1{font-size:40px}.bio-facts{margin:50px 0 35px}.works{margin-top:70px}.simple-page{padding-top:70px}.simple-page h1{margin-bottom:65px}}
@media(max-width:560px){:root{--frame:calc(100% - 40px)}.header{height:83px}.nav{top:83px}.logo img{width:130px}.hero{height:calc(100svh - 105px);min-height:440px;max-height:850px}.hero-slide img{object-position:65% center}.hero-text{bottom:14%}.hero-text strong{font-size:36px}.section-head h1,.section-head h2{font-size:58px}.section-head{margin-bottom:50px}.artists-grid{gap:22px}.artist:first-child{width:calc(50% - 11px);margin-bottom:42px}.artist-name{font-size:13px}.profile-layout{padding-top:32px;gap:55px}.thumbs{gap:5px}.profile-info h1{font-size:35px}.bio-facts div{grid-template-columns:110px 1fr;font-size:13px}.prose{font-size:14px}.tabs{gap:14px 18px}.tabs button{font-size:13px}.company-table{font-size:13px}.company-table th{width:105px}.company-table th,.company-table td{padding:20px 3px}.simple-page h1{font-size:58px}.legal-page h1{font-size:30px}.legal-page p{font-size:14px}.footer-logo img{width:150px}}

/* Progressive enhancement: default content stays visible when scripts fail. */
.motion-ready .reveal:not(.visible){opacity:0;transform:translateY(24px)}
.motion-ready .reveal-left:not(.visible){transform:translateX(-28px)}
.motion-ready .reveal-right:not(.visible){transform:translateX(28px)}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal:not(.visible){opacity:1;transform:none}}


/* Footer faithfully follows the supplied desktop/mobile mockups. */
.footer{background:#292e4c;color:#fff;margin-top:35px}
.footer-shell{padding:26px 0 17px}
.footer-top{min-height:118px;display:flex;justify-content:space-between;align-items:flex-start;gap:40px}
.footer-logo img{width:165px;max-width:100%;height:auto}
.footer-primary{width:min(395px,42%);padding-top:15px}
.footer-contact{min-height:45px;border-bottom:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 9px 10px 14px;font-size:16px;transition:opacity .3s ease}
.footer-contact:hover,.footer-legal a:hover{opacity:.65}
.footer-contact img,.footer-legal img{width:23px;height:23px;object-fit:contain;flex:none;transition:transform .3s ease}
.footer-contact:hover img,.footer-legal a:hover img{transform:translateX(4px)}
.footer-bottom{min-height:29px;border-top:1px solid rgba(255,255,255,.13);display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.footer-legal{display:flex;gap:16px;align-items:center}
.footer-legal a{font-size:11px;opacity:.82;transition:opacity .3s ease}
.footer-legal img{display:none}
.footer-bottom small{font-size:10px;color:rgba(255,255,255,.8)}
@media(max-width:900px){
.footer-shell{padding:34px 0 22px}
.footer-top{min-height:unset;flex-direction:column;gap:22px}
.footer-logo img{width:147px}
.footer-primary{padding:0;width:100%}
.footer-contact{padding:13px 12px;min-height:53px;border-top:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);font-size:14px}
.footer-bottom{border-top:0;display:block;min-height:unset}
.footer-legal{display:flex;flex-direction:column;align-items:stretch;gap:0}
.footer-legal a{width:100%;display:flex;justify-content:space-between;align-items:center;min-height:50px;padding:12px;font-size:13px;border-bottom:1px solid rgba(255,255,255,.15)}
.footer-legal img{display:block}
.footer-bottom small{display:block;text-align:center;margin-top:28px;font-size:10px}
}
@media(max-width:560px){.footer-shell{padding:30px 0 24px}.footer-logo img{width:132px}.footer-top{gap:24px}.footer-contact{font-size:13px}.footer-legal a{font-size:12px}}
@media(prefers-reduced-motion:reduce){.footer-contact img,.footer-legal img{transition:none}}

/* Shimizu Kairi profile – supplied reference design */
.profile-shimizu .bio-facts{margin-top:48px;margin-bottom:28px;max-width:none}
.profile-shimizu .bio-facts div{grid-template-columns:130px minmax(0,1fr);padding:13px 6px;font-size:14px}
.profile-shimizu .bio-facts dd{overflow-wrap:anywhere}
.profile-shimizu .sns{margin:24px 0 22px;gap:12px;font-size:14px}
.profile-shimizu .sns img{height:32px;width:32px}
.profile-shimizu .banners{max-width:650px}
.profile-shimizu .works{margin-top:54px}
@media(max-width:560px){.profile-shimizu .bio-facts div{grid-template-columns:100px minmax(0,1fr);font-size:12px}.profile-shimizu .sns img{width:30px;height:30px}}

/* CONTACT PHP 8.5 */
.contact-intro{max-width:900px;line-height:2.1;font-size:15px;margin:-40px 0 60px}
.contact-flow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.09em;color:#999;margin-bottom:34px}.contact-flow span{padding-bottom:9px;border-bottom:2px solid transparent}.contact-flow span.current{color:#121212;border-color:#121212}.contact-flow i{font-style:normal;color:#ccc}
.contact-form{max-width:1060px}.contact-form h2{font-size:24px;font-weight:500;margin:0 0 10px;letter-spacing:.04em}.contact-lead{margin:0 0 45px;line-height:1.9;color:#666;font-size:14px}
.contact-row{display:grid;grid-template-columns:245px minmax(0,1fr);gap:25px;border-top:1px solid #e1e1e1;padding:24px 0;align-items:start}.contact-row:last-child{border-bottom:1px solid #e1e1e1}.contact-row-label{font-size:15px;line-height:2.6}.required{display:inline-block;vertical-align:middle;font-size:11px;letter-spacing:.05em;padding:1px 7px;margin-left:11px;background:#b4001e;color:white;line-height:1.7}.contact-control input,.contact-control textarea{display:block;width:100%;border:1px solid #d7d7d7;border-radius:0;background:#fff;color:#111;padding:14px 16px;font:inherit;font-size:16px;line-height:1.7;transition:border-color .2s,box-shadow .2s}.contact-control input:focus,.contact-control textarea:focus{outline:none;border-color:#282c48;box-shadow:0 0 0 2px #282c4820}.contact-control textarea{min-height:205px;resize:vertical}.contact-error{color:#a02035;font-size:13px;margin:8px 0 0}.form-errors{max-width:1060px;background:#fff6f6;border-left:3px solid #b73544;padding:15px 20px;margin:20px 0 35px;line-height:1.7;font-size:14px}.form-errors p{margin:0 0 5px}
.privacy-consent{max-width:1060px;margin-top:75px}.privacy-consent h2{font-size:22px;font-weight:500;margin-bottom:20px}.privacy-details{max-height:310px;overflow:auto;overscroll-behavior:contain;background:#fafafa;border:1px solid #e4e4e4;padding:26px 30px;line-height:2;font-size:13px}.privacy-details p{margin:0 0 18px}.privacy-details h3{font-size:15px;margin:14px 0 5px}.agree-line{display:flex;align-items:flex-start;gap:12px;margin-top:26px;line-height:1.9;font-size:14px;cursor:pointer}.agree-line input{width:18px;height:18px;margin:6px 0 0;flex-shrink:0;accent-color:#282c48}.form-actions{display:flex;gap:18px;justify-content:center;align-items:center;margin:55px 0 20px}.contact-submit{cursor:pointer;min-width:260px;padding:18px 28px;border:1px solid #282c48;background:#282c48;color:#fff;font-size:15px;letter-spacing:.06em;transition:background .3s,transform .3s,box-shadow .3s}.contact-submit:hover{background:#15182d;transform:translateY(-2px);box-shadow:0 8px 22px #16182f30}.contact-submit.secondary{background:white;color:#222;border-color:#bbb;min-width:160px}.contact-submit.secondary:hover{background:#f4f4f4;box-shadow:none}.confirm-value{font-size:15px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.thanks{padding:30px 0 120px;line-height:2;font-size:16px}.thanks h2{font-size:29px;font-weight:500}.honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;pointer-events:none!important}@media(max-width:700px){.contact-intro{margin:-25px 0 45px;font-size:14px}.contact-row{grid-template-columns:1fr;gap:9px;padding:18px 0}.contact-row-label{line-height:1.5}.privacy-consent{margin-top:55px}.privacy-details{padding:19px 17px;max-height:290px}.form-actions{flex-direction:column}.contact-submit,.contact-submit.secondary{width:100%;min-width:0}.contact-flow{font-size:11px}.contact-form h2{font-size:21px}}

/* 2026-10 TOP visual: use distinct art-direction images without cropping */
.hero{aspect-ratio:1680/740;height:auto;min-height:0;max-height:none}
.hero-slide{display:block;cursor:pointer;color:#fff}
.hero-slide picture{display:block;width:100%;height:100%}
.hero-slide picture img{display:block;width:100%;height:100%;object-fit:cover}
.hero-slide:not(.active){pointer-events:none}
.hero-slide:focus-visible{outline:3px solid #fff;outline-offset:-7px}
.hero-dots button:focus-visible{outline:2px solid #fff;outline-offset:5px}
@media(max-width:900px){.hero{aspect-ratio:750/800;height:auto;min-height:0;max-height:none}.hero-slide picture img{object-position:center}}

/* Main visual slide controls: larger tap targets, unchanged visual bars. */
.hero-dots{bottom:8px;gap:2px;z-index:10}
.hero-dots button,.hero-dots button:hover,.hero-dots button.active{position:relative;width:68px;height:34px;background:transparent;transform:none;touch-action:manipulation}
.hero-dots button::before{content:"";position:absolute;left:7px;right:7px;top:50%;height:3px;transform:translateY(-50%);background:rgba(255,255,255,.55);transition:background .3s ease,transform .3s ease}
.hero-dots button.active::before{background:#fff}
.hero-dots button:hover::before{transform:translateY(-50%) scaleY(1.6)}
@media(max-width:900px){.hero-dots button,.hero-dots button:hover,.hero-dots button.active{width:56px;height:44px}.hero-dots{bottom:4px}}

/* TOP page only: intro logo on white background */
.home-with-intro .intro-overlay{position:fixed;inset:0;z-index:9999;background:#fff;display:grid;place-items:center;pointer-events:auto;animation:objet-intro-screen 2.8s ease-in-out both}
.home-with-intro .intro-overlay img{width:clamp(145px,22vw,255px);max-width:75vw;height:auto;opacity:0;transform:translateY(14px) scale(.97);animation:objet-intro-logo 2.8s cubic-bezier(.22,.61,.36,1) both}
@keyframes objet-intro-logo{0%,7%{opacity:0;transform:translateY(14px) scale(.97)}27%,67%{opacity:1;transform:translateY(0) scale(1)}90%,100%{opacity:0;transform:translateY(-7px) scale(1.015)}}
@keyframes objet-intro-screen{0%,74%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}100%{opacity:0;visibility:hidden;pointer-events:none}}
@media(prefers-reduced-motion:reduce){.home-with-intro .intro-overlay{display:none!important}}

/* Intro overlay is anchored to the visible viewport, not the page document. */
body.home-with-intro{transform:none!important;animation:none!important}
body.home-with-intro>.intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;margin:0;transform:none;z-index:2147483647}
body.home-with-intro>.intro-overlay img{flex:none}


/* OBJET motion refinement — progressive enhancement; content visible without JavaScript */
:root{--objet-motion:cubic-bezier(.22,.68,0,1)}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:#252944;z-index:2147483646;transform:scaleX(0);transform-origin:left;pointer-events:none;will-change:transform}
/* Preserve TOP intro as foremost element. */
body.home-with-intro>.intro-overlay{z-index:2147483647}
/* Only hide offscreen decorative elements while JS observer is active. */
@media(prefers-reduced-motion:no-preference){
 body.motion-ready .motion-entrance:not(.motion-visible){opacity:0;transform:translate3d(0,32px,0)}
 body.motion-ready .motion-entrance.motion-from-left:not(.motion-visible){transform:translate3d(-24px,12px,0)}
 body.motion-ready .motion-entrance.motion-from-right:not(.motion-visible){transform:translate3d(24px,12px,0)}
 .motion-entrance{transition:opacity .95s var(--objet-motion),transform .95s var(--objet-motion);transition-delay:var(--motion-delay,0ms)}


 .profile-main-frame{position:relative;overflow:hidden}
 .profile-main-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.20) 50%,transparent 65%);transform:translateX(-135%);transition:transform 1.1s var(--objet-motion);pointer-events:none}
 .profile-gallery:hover .profile-main-frame:after{transform:translateX(135%)}
 .artist .artist-name,.artist .artist-en{transition:transform .4s var(--objet-motion),color .4s ease}
 .artist:hover .artist-name,.artist:hover .artist-en{transform:translateX(6px)}
 .bio-facts div,.company-table tr,.contact-row{transition:background .35s ease}
 .bio-facts div:hover,.company-table tr:hover,.contact-row:hover{background:rgba(37,41,68,.025)}
 .work-list li{transition:padding-left .28s var(--objet-motion),background .28s ease}
 .work-list li:hover{padding-left:7px;background:rgba(37,41,68,.025)}
 .contact-submit{transition:background .3s ease,box-shadow .4s ease,transform .4s var(--objet-motion)}
 .contact-submit:hover{transform:translateY(-3px)}
 .footer-logo,.footer-links a{transition:transform .4s var(--objet-motion),opacity .35s ease}
 .footer-links a:hover{transform:translateX(4px)}
 .hero-slide.active picture img{animation:objet-hero-breathe 5s linear both}
 @keyframes objet-hero-breathe{from{transform:scale(1.025)}to{transform:scale(1)}}
}
@media(max-width:900px){
 .scroll-progress{height:2px}
 .motion-entrance{transition-duration:.7s}
}
@media(prefers-reduced-motion:reduce){
 .scroll-progress{display:none}
 .motion-entrance{opacity:1!important;transform:none!important;transition:none!important}
 .hero-slide picture img{animation:none!important}
}

/* Enhanced motion: additive, content remains visible if JS is unavailable */
@keyframes objet-line-scan{from{background-position:-250% 0}to{background-position:250% 0}}
@keyframes objet-floating{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes objet-arrow-shift{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
@keyframes objet-glow-pulse{0%,100%{opacity:.36}50%{opacity:.78}}
@media(prefers-reduced-motion:no-preference){
 .logo img{animation:objet-floating 9s ease-in-out infinite}
 .footer-contact img,.footer-legal a img{animation:objet-arrow-shift 3s ease-in-out infinite}
 .footer-contact:hover img,.footer-legal a:hover img{animation:none;transform:translateX(8px)}
 .hero-dots button.active:before{background:linear-gradient(90deg,transparent,#fff 40%,#fff 60%,transparent);background-size:250% 100%;animation:objet-line-scan 2.5s linear infinite}
 .artist .imgbox{position:relative}
 .artist .imgbox:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translateX(-130%);transition:transform 1.2s ease;pointer-events:none}
 .artist:hover .imgbox:after{transform:translateX(130%)}




 .tabs button:hover,.contact-submit:hover{filter:brightness(.96)}
 .legal-section{transition:transform .8s cubic-bezier(.22,.61,.36,1),opacity .8s ease}
 .motion-ready .legal-section:not(.motion-shown){opacity:0;transform:translateY(26px)}
 .motion-ready .legal-section.motion-shown{opacity:1;transform:translateY(0)}
 .legal-section h2:after{content:"";display:block;margin-top:13px;width:42px;height:1px;background:#252944;transform-origin:left;transition:transform .75s ease}
 .legal-section:hover h2:after{transform:scaleX(2)}
 .legal-section{padding:6px 0 35px;border-bottom:1px solid #e9e9e9;margin-bottom:34px}
 .legal-content{max-width:1000px;margin:0 auto}
 .legal-section h2{font-size:clamp(18px,2vw,23px);line-height:1.65}
 .legal-section p,.legal-section li{font-size:15px;line-height:2.1;letter-spacing:.015em;color:#353535}
 .legal-section ol{padding-left:1.4em}
 .legal-section li{padding-left:.3em;margin-bottom:6px}
}
@media(prefers-reduced-motion:reduce){.motion-ready .legal-section,.legal-section{opacity:1!important;transform:none!important}.logo img,.footer-contact img,.footer-legal a img{animation:none!important}}

/* Refinement: restrained editorial motion, no glow, shine, shimmer or jitter */
@media (prefers-reduced-motion:no-preference){
 .logo img,.footer-contact img,.footer-legal a img{animation:none!important}
 .section-head h1,.section-head h2,.simple-page h1,.profile-info h1{transition-property:opacity,transform!important}

 .section-head h1,.section-head h2{letter-spacing:-.055em!important}
 .profile-info h1{letter-spacing:.07em!important}
 .hero-dots button.active:before{animation:none!important;background:#fff!important;background-size:auto!important}
 .artist .imgbox:after,.profile-main-frame:after{content:none!important;display:none!important}
 .artist:hover .imgbox:after,.profile-gallery:hover .profile-main-frame:after{display:none!important}
}
/* Preserve the full active indicator with a static white line. */
.hero-dots button.active:before{animation:none!important;background:#fff!important}
.artist .imgbox:after,.profile-main-frame:after{content:none!important;display:none!important}
/* Clear spacing between legal section eyebrow and page heading. */
.legal-header{display:flex;flex-direction:column;align-items:flex-start;gap:22px;margin-bottom:66px}
.legal-header .eyebrow{display:block;line-height:1.8}
.legal-header h1{margin:0!important;line-height:1.35!important}
@media(max-width:560px){.legal-header{gap:17px;margin-bottom:48px}}

/* Heading typography stays completely static on hover and mouse movement. */
.section-head h1,.section-head h2,.simple-page h1,.profile-info h1{transition-property:opacity,transform!important}
.section-head h1,.section-head h2,.section-head h1:hover,.section-head h2:hover{letter-spacing:-.055em!important}
.profile-info h1,.profile-info h1:hover{letter-spacing:.07em!important}
.simple-page h1,.simple-page h1:hover{letter-spacing:-.05em!important}
.legal-page h1,.legal-page h1:hover{letter-spacing:0!important}
