/* Taste Skill / preserve mode. Existing LUNASOL palette, serif and artwork are brand constraints.
   Layer order: artwork 0-2, navigation 5, local comparison controls 10. */
:root{--paper:#fcfbfd;--ink:#202024;--muted:#68636e;--ease:cubic-bezier(.16,1,.3,1);--gutter:clamp(24px,6vw,96px)}
html{scroll-padding-top:100px}body{padding-bottom:0;background:var(--paper)}
section{scroll-margin-top:80px}a,button{-webkit-tap-highlight-color:transparent}a:active{transform:translateY(1px)}
.topbar{position:relative;top:auto;max-width:1600px;height:80px;margin:auto;padding:6px var(--gutter);background:#fff}
.brand{width:184px}.nav{gap:32px}.nav a{position:relative;white-space:nowrap}.nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}.nav a:hover::after,.nav a:focus-visible::after{transform:scaleX(1)}.nav .nav-cta{color:var(--ink);padding:10px 22px;border-color:#ebc2df;transition:background .35s,color .35s}.nav .nav-cta:hover{background:var(--pink);color:#202024}
.hero{min-height:min(760px,calc(100svh - 80px));padding:65px var(--gutter) 80px;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:0;background:#fff;max-width:1600px;margin:auto;overflow:clip}
.hero::before{display:none}.hero-copy{max-width:none;z-index:3}.eyebrow{font-size:10px;letter-spacing:.14em;margin-bottom:30px;color:#6d6471}.eyebrow::before{width:28px;box-shadow:none}
h1{font-size:clamp(43px,4.7vw,76px);line-height:1.3;letter-spacing:-.075em;max-width:none}.title-line{overflow:clip;padding-bottom:.08em}.title-line em{color:var(--pink)}
.hero-lead{font-size:15px;line-height:2.05;max-width:29em;margin:28px 0 32px}.hero-actions{gap:24px}.hero-link{border-radius:999px;background:var(--pink);color:#20101a;font-size:13px;padding:17px 23px;box-shadow:none;position:relative;overflow:hidden;isolation:isolate}.hero-link::before{content:"";position:absolute;z-index:-1;inset:0;background:#202024;transform:translateY(102%);transition:transform .4s var(--ease)}.hero-link:hover{color:#fff;box-shadow:none;transform:translateY(-3px)}.hero-link:hover::before{transform:none}.hero-link span{transition:transform .4s var(--ease)}.hero-link:hover span{transform:translateX(5px)}.text-link{font-size:12px}
.core-stage{width:118%;max-width:610px;margin-left:-4%;aspect-ratio:1;z-index:1}.core-stage::before{inset:6%;border-color:#78d9dd8c}.core-stage::after{inset:15% 0;border-color:#f4a0d5}.core{width:30%;font-size:76px;border-color:#f5a6db;box-shadow:0 0 0 12px #fff9,0 0 0 13px #e1d2ea,0 30px 70px #6c41651c;background:#fff}.core-halo{width:62%;opacity:.6}.core small{font-size:8px}.orbit-node{min-width:0;padding:12px 0;background:transparent;border:0;border-radius:0;box-shadow:none;font-size:11px;color:#746b79;animation:none}.orbit-node::before{display:none}.orbit-node b{font-size:16px;line-height:1.8;color:var(--ink);font-weight:600}.node-a{left:0;top:18%}.node-b{right:0;top:34%}.node-c{left:4%;bottom:16%}.node-d{right:2%;bottom:10%}.spark{width:7px;height:7px;box-shadow:none}.spark.s1{top:11%;left:60%}
/* One deliberate dark chapter retains the approved moon / sun composition. */
.intro{max-width:none;padding:110px var(--gutter);display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:40px;isolation:isolate;background:#19191d}.intro::after{display:none}.intro-content{max-width:720px;grid-column:1;grid-row:1}.intro h2{font-size:clamp(38px,4.5vw,68px);line-height:1.45;max-width:none;letter-spacing:-.065em}.intro h2 em{display:block;color:#ff74cd}.intro-copy{font-size:15px;line-height:2.1;max-width:35em;color:#c7c3ce;margin-top:32px}.celestial-scene,.celestial-scene.visible{position:relative;grid-column:2;grid-row:1;inset:auto;width:min(100%,500px);margin:auto;opacity:1;transform:none}.celestial-core{background:#202024}.moon::after{background:#19191d}
.business-story{position:relative;display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.3fr);gap:clamp(48px,8vw,128px);max-width:1440px;margin:auto;padding:140px var(--gutter) 100px;background:var(--paper)}
.business-heading{align-self:start;position:sticky;top:90px;padding:0 0 40px}.section-kicker{color:#9c226f;font-size:10px;line-height:1.8;letter-spacing:.16em}.business-heading h2{font-size:clamp(32px,3.4vw,51px);line-height:1.45;letter-spacing:-.055em;margin:0 0 24px}.business-heading>p:not(.section-kicker){font-size:14px;line-height:2.05;color:var(--muted);max-width:28em}.business-index{display:flex;flex-direction:column;margin-top:40px;gap:4px}.business-index a{display:flex;justify-content:space-between;max-width:250px;padding:13px 16px 13px 0;text-decoration:none;font-size:14px;color:#746d79;transition:color .3s,transform .3s}.business-index a span{opacity:0;transform:translate(-10px,8px);transition:opacity .3s,transform .3s}.business-index a:hover,.business-index a[aria-current="true"]{color:#ac167b;transform:translateX(8px)}.business-index a[aria-current="true"] span,.business-index a:hover span{opacity:1;transform:none}
.business-signal{display:flex;align-items:center;gap:18px;margin-top:50px;width:250px;color:#7d717e}.business-signal span{display:grid;place-items:center;width:52px;aspect-ratio:1;border:1px solid #e8bedc;border-radius:50%;font-size:22px;font-weight:700;color:var(--ink);background:#fff}.business-signal i{height:1px;flex:1;background:#e7cadd;position:relative;overflow:hidden}.business-signal i::after{content:"";position:absolute;inset:0;background:var(--pink);transform:translateX(-100%);animation:signal 3s ease-in-out infinite}.business-signal b{font-size:12px;font-weight:500}@keyframes signal{to{transform:translateX(100%)}}
.service-list{min-width:0}.service{position:relative;isolation:isolate;padding:42px 0 58px;margin-bottom:50px;scroll-margin-top:64px}.service:last-child{margin-bottom:0}.service-line{height:2px;position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,var(--pink),#edd7e9);transform-origin:left}.service-copy{padding:0 8px}.service-label{margin:0 0 18px;font-size:11px;letter-spacing:.12em;color:#8e2870}.service h3{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(32px,3.4vw,49px);letter-spacing:-.04em;line-height:1.4;margin:0 0 20px;font-weight:600}.service-copy>p:last-child{font-size:14px;line-height:2;color:#69616d;max-width:34em;margin:0}.service-art{width:100%;aspect-ratio:3/2;display:grid;grid-template-rows:minmax(0,1fr);place-items:center;margin:32px 0 0;background:#fff;position:relative;overflow:hidden;isolation:isolate;border-radius:0;padding:18px;transition:background .5s}.service-art::before{content:"";position:absolute;z-index:-1;inset:0;background:#fce0f2;transform:translateX(-102%);transition:transform .8s var(--ease)}.service-art img{display:block;object-fit:contain;width:100%;height:100%;min-height:0;mix-blend-mode:multiply;transition:transform .75s var(--ease)}.service-social .service-art{background:#f0fbfc}.service-education .service-art{background:#f6f0fb}.service-education .service-line{background:linear-gradient(90deg,var(--pink),#dac7ee)}
@media(hover:hover) and (pointer:fine){.service:hover .service-art::before{transform:none}.service:hover .service-art img{transform:scale(1.045) rotate(-1deg)}.service:hover h3{color:#a71779}.service h3{transition:color .4s}}
.manifesto{padding:70px 24px 100px;background:#fff;overflow:clip}.manifesto-art{width:min(100%,760px);box-shadow:none;aspect-ratio:593/640}.hero-mural-frame,.hero-mural-frame iframe{background:#fff}.manifesto::before{content:"";position:absolute;top:0;left:var(--gutter);right:var(--gutter);height:1px;background:linear-gradient(90deg,transparent,#f1addc,transparent)}
.closing{padding:90px 24px 100px;background:#f6ecf7;text-align:left}.closing h2,.closing p,.closing .pending{position:relative;z-index:1}.closing h2{font-size:clamp(38px,5.7vw,82px);line-height:1.35;letter-spacing:-.055em;margin:0 auto;max-width:1060px}.closing>p{max-width:1060px;margin:24px auto 0;font-size:14px}.closing .pending{display:flex;max-width:1060px;margin:24px auto 0;border:0;background:none;border-radius:0;padding:0;color:#68606d;font-size:13px}.closing::before{width:350px;height:350px;left:auto;right:5%;top:-210px}.closing::after{right:16%;bottom:-310px;width:430px;height:430px;opacity:.35}
footer{padding:28px var(--gutter);align-items:center}footer strong{font-size:13px}footer span{font-size:9px}

/* Static content is the fallback. JS only animates when GSAP is available. */
.reveal,.reveal.visible,.scroll-reveal,.scroll-reveal.visible{opacity:1;transform:none}.service-art,.service-copy{opacity:1}.business-heading{visibility:visible}
@media(min-width:1600px){.intro{padding-left:max(var(--gutter),calc((100vw - 1408px)/2));padding-right:max(var(--gutter),calc((100vw - 1408px)/2))}}
@media(max-width:1023px){.hero{grid-template-columns:1.4fr 1fr;min-height:650px;padding-top:48px;padding-bottom:60px}.hero h1{font-size:clamp(38px,4.7vw,49px)}.core-stage{width:116%;margin-left:0}.orbit-node{font-size:9px}.orbit-node b{font-size:13px}.core{font-size:56px}.hero-lead{font-size:14px}.business-story{gap:44px;padding-top:90px;padding-bottom:70px;grid-template-columns:.8fr 1.2fr}.business-heading h2{font-size:32px}.service h3{font-size:35px}.intro{padding-top:80px;padding-bottom:80px;gap:24px}.intro h2{font-size:40px}.intro-copy{font-size:14px}}
@media(max-width:767px){:root{--gutter:24px}.topbar{height:72px;padding:4px 20px}.brand{width:148px}.nav{gap:14px}.nav a:not(.nav-cta){display:none}.nav .nav-cta{display:block;font-size:11px;padding:9px 14px}.hero{min-height:0;display:flex;flex-direction:column;align-items:stretch;padding:42px 24px 36px;gap:18px}.eyebrow{font-size:8px;letter-spacing:.1em;margin-bottom:22px}.hero h1{font-size:clamp(33px,6.9vw,54px);line-height:1.45;letter-spacing:-.065em}.hero-lead{font-size:13px;line-height:1.95;margin:22px 0 25px;max-width:34em}.hero-actions{gap:19px;flex-wrap:wrap}.hero-link{font-size:12px;padding:13px 17px;gap:14px}.hero-link span{font-size:18px}.text-link{font-size:11px}.core-stage{width:min(100%,450px);margin:4px auto 0;aspect-ratio:1.16}.core{width:28%;font-size:54px}.core small{font-size:6px}.orbit-node{font-size:9px}.orbit-node b{font-size:13px}.node-a{top:12%;left:1%}.node-b{top:33%;right:0}.node-c{bottom:8%;left:6%}.node-d{bottom:0;right:3%}.intro{display:flex;flex-direction:column;padding:68px 24px 44px;gap:26px}.intro-content{max-width:100%}.intro h2{font-size:clamp(33px,7.9vw,54px);line-height:1.5}.intro-copy{font-size:13px;line-height:2.05;margin-top:26px}.celestial-scene,.celestial-scene.visible{order:1;width:min(100%,420px);inset:auto;margin:10px auto 0;transform:none;opacity:1}.business-story{display:block;padding:72px 24px 32px}.business-heading{position:relative;top:auto;padding-bottom:46px}.business-heading h2{font-size:38px;line-height:1.35}.business-heading>p:not(.section-kicker){font-size:13px;max-width:36em}.business-index{flex-direction:row;gap:20px;margin-top:24px}.business-index a{font-size:12px;padding:8px 0;gap:8px}.business-index a span{display:none}.business-index a:hover,.business-index a[aria-current="true"]{transform:none}.business-signal{display:none}.service{padding:30px 0 42px;margin-bottom:20px}.service-copy{padding:0}.service-label{font-size:10px;margin-bottom:14px}.service h3{font-size:34px;line-height:1.42}.service-copy>p:last-child{font-size:13px}.service-art{margin-top:26px;padding:14px}.manifesto{padding:36px 12px 55px}.manifesto-art{width:min(100%,593px);aspect-ratio:593/640}.closing{padding:64px 24px 72px}.closing h2{font-size:39px}.closing>p{font-size:13px}.closing::after{right:-230px}footer{display:block;padding:25px 24px}}
@media(max-width:359px){:root{--gutter:19px}.hero{padding-left:19px;padding-right:19px}.hero h1{font-size:30px}.hero-actions{gap:12px}.text-link{font-size:10px}.core{font-size:45px}.service h3{font-size:30px}.business-heading h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.scroll-reveal,.hero-copy,.core-stage,.service-copy,.service-art,.service-line{opacity:1!important;transform:none!important}.service-art img{transform:none!important}.business-signal i::after{animation:none}.celestial-scene{opacity:1!important;transform:none!important}}
/* Ambient motion runs as soon as the section is visible; hover adds emphasis. */
.service-line{overflow:hidden}
.service-line::after{content:"";position:absolute;inset:-2px 0;background:linear-gradient(90deg,transparent 15%,#fff 45%,var(--pink) 58%,transparent 85%);transform:translateX(-110%);animation:service-signal 4.6s ease-in-out infinite;animation-play-state:paused}
.service-art::before{animation:service-tint 7s ease-in-out infinite;animation-play-state:paused}
.service-social .service-art::before{background:#d5f4f4}
.service-education .service-art::before{background:#efdef9}
.service.in-view .service-line::after,.service.in-view .service-art::before{animation-play-state:running}
@keyframes service-signal{0%,12%{transform:translateX(-110%)}70%,100%{transform:translateX(110%)}}
@keyframes service-tint{0%,12%,100%{transform:translateX(-102%);opacity:0}35%,62%{transform:translateX(0);opacity:.85}85%{transform:translateX(102%);opacity:0}}
.motion-paused *,.motion-paused::before,.motion-paused::after,.motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}
@media(hover:hover) and (pointer:fine){.service:hover .service-art::before{animation:none;transform:none;opacity:1}.service:hover .service-art img{transform:scale(1.045) rotate(-1deg)}}
@media(prefers-reduced-motion:reduce){.service-line::after,.service-art::before{animation:none!important}.service-art::before{transform:translateX(-102%);opacity:0}}

