/* Motion is an enhancement: the original page remains usable without this file. */
.ambient-field{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.8}
.site-header,main,.site-footer{position:relative;z-index:1}
.site-header{z-index:15}
main{overflow:clip}
.scroll-progress{position:fixed;inset:0 0 auto;height:3px;z-index:30;background:var(--gold);transform:scaleX(var(--page-progress,0));transform-origin:left;pointer-events:none;box-shadow:0 0 15px #b39a6270}
.motion-toggle{position:fixed;z-index:25;right:22px;bottom:20px;display:flex;align-items:center;gap:10px;min-height:44px;padding:11px 17px;background:var(--ink);color:var(--paper);border:1px solid #b39a6270;border-radius:30px;font-size:11px;box-shadow:0 4px 24px #101b1422}
.motion-toggle:hover{background:#435437}
.motion-toggle:focus-visible{outline-color:#77673f;outline-offset:4px}
.motion-toggle:disabled{opacity:.8;cursor:default}
.motion-toggle-icon{display:flex;gap:3px;width:14px;justify-content:center;align-items:center;height:15px}
.motion-toggle-icon i{width:3px;height:10px;background:var(--gold);display:block}
.motion-toggle[aria-pressed=true] .motion-toggle-icon{border-left:8px solid var(--gold);border-top:5px solid transparent;border-bottom:5px solid transparent;width:0;height:0;margin-inline:3px}
.motion-toggle[aria-pressed=true] .motion-toggle-icon i{display:none}
.cursor-halo{position:fixed;left:0;top:0;z-index:20;pointer-events:none;opacity:0;transition:opacity .2s;will-change:transform}
.cursor-halo.is-visible{opacity:1}
.cursor-halo-inner{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid #8d784a;display:grid;place-items:center;border-radius:50%;transition:width .25s,height .25s,margin .25s,background .25s,border-color .25s;box-shadow:0 0 0 5px #b39a6214;background:#b39a620a}
.cursor-halo.is-interactive .cursor-halo-inner{width:58px;height:58px;margin:-29px 0 0 -29px;border-color:#9a8351;background:#b39a622e}
.cursor-halo.is-work .cursor-halo-inner{background:var(--gold);color:var(--ink);border-color:var(--gold);width:70px;height:70px;margin:-35px 0 0 -35px;box-shadow:0 0 0 8px #b39a6225}
.cursor-halo-label{font-size:9px;letter-spacing:1.2px}
.hero-grid{perspective:1400px}
.hero-art{transform:translate3d(var(--hero-x,0px),calc(var(--hero-y,0px) + var(--hero-scroll,0px)),0) rotateX(var(--hero-rx,0deg)) rotateY(var(--hero-ry,0deg));transform-style:preserve-3d;will-change:transform}
.hero-art:before{content:'';position:absolute;inset:20% 1% 11%;border-radius:50%;background:radial-gradient(ellipse,#b39a6255,transparent 64%);filter:blur(24px);z-index:-1;pointer-events:none}
.kinetic-orbit{position:absolute;inset:7% 1% 5%;border-radius:50%;border:1px dashed #9f885590;pointer-events:none;transform:rotate(-25deg)}
.kinetic-orbit span{position:absolute;width:11px;height:11px;background:#b39a62;box-shadow:0 0 0 5px #b39a6225;border-radius:50%;top:7%;left:21%}
.kinetic-orbit.orbit-outer{inset:2% -3% 0%;border-style:solid;border-color:#b39a6260;transform:rotate(85deg)}
.kinetic-orbit.orbit-outer span{width:6px;height:6px;background:var(--ink);box-shadow:none}
body[data-motion=on] .hero-art>img{animation:hero-live 10s cubic-bezier(.45,0,.55,1) infinite;will-change:transform}
body[data-motion=on] .hero-art:before{animation:aura-breathe 7s ease-in-out infinite}
body[data-motion=on] .kinetic-orbit{animation:orbit-turn 17s linear infinite}
body[data-motion=on] .kinetic-orbit.orbit-outer{animation:orbit-turn 29s linear infinite reverse}
body[data-motion=on] .floating-label{animation:label-drift 7s ease-in-out infinite}
body[data-motion=on] .hero-title-jp>span{background:linear-gradient(105deg,var(--ink) 10%,var(--ink) 35%,#77673f 49%,var(--ink) 63%,var(--ink) 90%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:title-light 9s ease-in-out infinite}
body[data-motion=on] .brand-symbol,body[data-motion=on] .about-star{display:inline-block;animation:orbit-turn 25s linear infinite}
body[data-motion=on] .about-star{animation-duration:15s}
body[data-motion=on] .scroll-label>span{animation:scroll-invite 2.5s ease-in-out infinite}
body[data-motion=on] .status-dot{animation:status-breathe 3s ease-in-out infinite}
.discipline-strip>.marquee-track{max-width:none;width:max-content;display:flex;gap:0;padding:0;margin:0}
.marquee-group{display:flex;align-items:center;justify-content:space-around;gap:45px;min-width:100vw;padding:24px 45px;flex-shrink:0}
body[data-motion=on] .marquee-track{animation:marquee-flow 24s linear infinite;will-change:transform}
body[data-motion=on] .strip-star{animation:orbit-turn 10s linear infinite}
.work-card{--card-parallax:0px;--tilt-x:0deg;--tilt-y:0deg}
body[data-motion=on] .work-card{animation:card-drift 8s ease-in-out infinite;animation-delay:var(--motion-delay,0s);will-change:transform}
.work-open{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-origin:center 45%;will-change:transform}
.work-image{isolation:isolate;transition:box-shadow .35s}
.work-open:hover .work-image{box-shadow:0 20px 50px #2939231c}
.work-sheen{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mix-blend-mode:soft-light}
.work-sheen:after{content:'';position:absolute;inset:-25% -70%;background:linear-gradient(110deg,transparent 36%,#fff4d6a6 47%,transparent 59%);transform:translateX(-40%)}
body[data-motion=on] .work-sheen:after{animation:art-light 11s ease-in-out infinite;animation-delay:var(--motion-delay,0s)}
.work-arrow{z-index:2}
.work-image img{transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.round-icon{transform:translate3d(var(--magnet-x,0px),var(--magnet-y,0px),0);transition:background .2s,transform .15s ease-out}
.round-link:hover .round-icon{transform:translate3d(var(--magnet-x,0px),var(--magnet-y,0px),0) rotate(45deg)}
.service-item{position:relative;isolation:isolate;--spot-x:50%;--spot-y:50%}
.service-item:before{content:'';position:absolute;inset:0 -18px;z-index:-1;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(280px circle at var(--spot-x) var(--spot-y),#b39a6240,transparent 75%)}
.service-item:hover:before{opacity:1}
.service-item:after{content:'';position:absolute;top:-1px;left:0;height:1px;width:29%;background:linear-gradient(90deg,transparent,#b39a62,transparent);pointer-events:none;opacity:0}
body[data-motion=on] .service-item:after{opacity:1;animation:service-line 5s ease-in-out infinite;animation-delay:var(--motion-delay,0s)}
body[data-motion=on] .service-marker>span:first-child{animation:number-breathe 5s ease-in-out infinite;animation-delay:var(--motion-delay,0s)}
.contact{position:relative;isolation:isolate;overflow:hidden}
.contact:before,.contact:after{content:'';position:absolute;pointer-events:none;z-index:-1;right:4%;top:-27%;width:560px;aspect-ratio:1;border:1px solid #29392338;border-radius:50%;transform:rotate(-25deg)}
.contact:after{width:460px;right:8%;top:-16%;border-style:dashed;border-color:#2939232e}
body[data-motion=on] .contact:before{animation:contact-orbit 17s ease-in-out infinite}
body[data-motion=on] .contact:after{animation:orbit-turn 35s linear infinite}
body[data-motion=on] .contact-arrow{animation:contact-arrow 4.5s ease-in-out infinite}
.section-heading,.services-heading,.about-heading{transform:translate3d(0,var(--heading-shift,0px),0)}
.motion-reveal{opacity:1;transition:opacity .85s ease,translate .85s cubic-bezier(.2,.7,.3,1)}
body[data-motion=on] .motion-reveal[data-reveal=pending]{opacity:0;translate:0 28px}
body[data-motion=on] .motion-reveal[data-reveal=shown]{opacity:1;translate:0 0}
/* Pause each ambient animation once its owner leaves the visible neighborhood. */
[data-motion-zone][data-in-view=false],[data-motion-zone][data-in-view=false] *,[data-motion-zone][data-in-view=false]:before,[data-motion-zone][data-in-view=false]:after,[data-motion-zone][data-in-view=false] :before,[data-motion-zone][data-in-view=false] :after{animation-play-state:paused!important}
body[data-motion-running=false] *,body[data-motion-running=false] :before,body[data-motion-running=false] :after{animation-play-state:paused!important}
body[data-motion=off] .hero-art,body[data-motion=off] .hero-art>img,body[data-motion=off] .work-card,body[data-motion=off] .work-open,body[data-motion=off] .section-heading,body[data-motion=off] .services-heading,body[data-motion=off] .about-heading{transform:none!important;animation:none!important;will-change:auto}
body[data-motion=off] .motion-reveal{opacity:1!important;translate:none!important;transition:none!important}
body[data-motion=off] .work-sheen,body[data-motion=off] .ambient-field,body[data-motion=off] .cursor-halo,body[data-motion-running=false] .cursor-halo{display:none}
body[data-motion=off] .round-icon,body[data-motion=off] .work-image img,body[data-motion=off] .work-arrow{transform:none!important;transition:none!important}
body[data-motion=off] .service-item:before{display:none}
body[data-motion=off] .marquee-track{width:100%;transform:none!important}
body[data-motion=off] .marquee-group{min-width:100%;width:100%;padding-inline:64px;gap:35px}
body[data-motion=off] .marquee-group[aria-hidden=true]{display:none}
.site-footer{padding-bottom:64px}
@keyframes hero-live{0%,100%{transform:translate3d(-10px,16px,0) rotate(-12deg) scale(.93)}25%{transform:translate3d(14px,-20px,0) rotate(-2deg) scale(.98)}50%{transform:translate3d(14px,-30px,0) rotate(11deg) scale(1.015)}75%{transform:translate3d(-14px,-6px,0) rotate(3deg) scale(.97)}}
@keyframes orbit-turn{to{transform:rotate(360deg)}}
@keyframes aura-breathe{0%,100%{opacity:.55;transform:scale(.83)}50%{opacity:1;transform:scale(1.08)}}
@keyframes label-drift{0%,100%{translate:0 0;rotate:0deg}50%{translate:5px -9px;rotate:-6deg}}
@keyframes title-light{0%,15%{background-position:100% 50%}80%,100%{background-position:-40% 50%}}
@keyframes marquee-flow{to{transform:translateX(-50%)}}
@keyframes card-drift{0%,100%{transform:translate3d(0,calc(var(--card-parallax) + 6px),0)}50%{transform:translate3d(0,calc(var(--card-parallax) - 7px),0)}}
@keyframes art-light{0%,15%{transform:translateX(-42%)}65%,100%{transform:translateX(42%)}}
@keyframes service-line{0%,100%{transform:translateX(0);opacity:.35}50%{transform:translateX(240%);opacity:1}}
@keyframes number-breathe{0%,100%{box-shadow:0 0 0 0 #b39a6230;transform:scale(1)}50%{box-shadow:0 0 0 7px #b39a6209;transform:scale(1.09)}}
@keyframes status-breathe{0%,100%{box-shadow:0 0 0 0 #697b481b}50%{box-shadow:0 0 0 5px #697b4810}}
@keyframes scroll-invite{0%,100%{transform:translateY(-3px)}50%{transform:translateY(5px)}}
@keyframes contact-orbit{0%,100%{transform:translate(0,0) scale(.92)}50%{transform:translate(-35px,30px) scale(1.15)}}
@keyframes contact-arrow{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(13px,-13px) rotate(7deg)}}
@media(max-width:760px){.motion-toggle{right:12px;bottom:12px;min-height:42px;padding:10px 13px;font-size:10px;gap:8px}.ambient-field{opacity:.5}.kinetic-orbit{inset:9% 7% 7%}.kinetic-orbit.orbit-outer{inset:4% 2% 2%}.hero-art:before{inset:12% 2%;filter:blur(14px)}.marquee-group{gap:28px;padding:19px 24px;min-width:680px}.marquee-group .strip-star:last-child{display:inline-block}.discipline-strip .marquee-group>span:not(.strip-star){font-size:18px}.marquee-group .strip-star{font-size:22px}body[data-motion=off] .marquee-group{min-width:100%;padding:19px 24px;gap:13px}body[data-motion=off] .discipline-strip .marquee-group>span:not(.strip-star){font-size:11px}body[data-motion=off] .marquee-group .strip-star:last-child{display:none}.contact:before{width:360px;right:-70%;top:-10%}.contact:after{width:320px;right:-60%;top:-5%}.service-item:before{inset:0}.site-footer{padding-bottom:72px}.cursor-halo{display:none}body[data-motion=on] .hero-art>img{animation-name:hero-live-mobile}}
@keyframes hero-live-mobile{0%,100%{transform:translate3d(-3px,9px,0) rotate(-10deg) scale(.92)}50%{transform:translate3d(6px,-15px,0) rotate(9deg) scale(1)}}
@media(pointer:coarse),(hover:none){.cursor-halo{display:none}.work-open{transform:none!important}}
@media(prefers-reduced-motion:reduce){.ambient-field,.cursor-halo,.work-sheen{display:none!important}.hero-art,.hero-art>img,.work-card,.work-open,.section-heading,.services-heading,.about-heading{transform:none!important}.motion-reveal{opacity:1!important;translate:none!important}.hero-title-jp>span{color:var(--ink)!important;background:none!important}*,*:before,*:after{animation:none!important;transition:none!important}}
