/* Soul Heal v3 "Nocturne". Tokens documented in DESIGN_SYSTEM.md. Self-hosted fonts only. */
@font-face{font-family:"Cormorant";src:url(../fonts/cormorant-garamond.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Jost";src:url(../fonts/jost.woff2) format("woff2");font-weight:300 600;font-display:swap}
:root{
--ink-0:#06091a;--ink-1:#0b0f24;--ink-2:#121638;--ink-3:#1c1f52;--amethyst:#5a43a6;--violet:#cbbcff;--violet-2:#9d86f0;--cyan:#8fe3ee;
--ivory:#f3ecdf;--ivory-2:#cfc7dc;--ivory-3:#a59fb8;--line:rgba(243,236,223,.13);--line-2:rgba(243,236,223,.26);
--serif:"Cormorant","Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:"Jost",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
--fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1.0625rem;--fs-lg:1.3125rem;--fs-xl:1.75rem;--fs-2xl:clamp(2.1rem,3.4vw,2.9rem);--fs-3xl:clamp(2.7rem,5.2vw,4.4rem);--fs-display:clamp(3.1rem,7.4vw,6.6rem);
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:144px;
--r0:0;--r1:2px;--r-pill:999px;--max:1240px;--gutter:clamp(20px,4vw,48px);
--t-fast:180ms;--t-base:420ms;--t-slow:900ms;--t-bloom:2600ms;
--ease-settle:cubic-bezier(.16,1,.3,1);--ease-organic:cubic-bezier(.45,.05,.2,1);--ease-breath:cubic-bezier(.37,0,.63,1)}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:360ms;animation-timing-function:var(--ease-organic)}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;-webkit-text-size-adjust:100%;background:var(--ink-0)}
body{margin:0;color:var(--ivory);background:var(--ink-0);font:300 var(--fs-md)/1.72 var(--sans);letter-spacing:.008em;min-height:100vh;overflow-x:hidden;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-color:var(--line-2);text-decoration-thickness:1px;text-underline-offset:.24em;transition:color var(--t-fast),text-decoration-color var(--t-fast)}
a:hover{color:var(--violet);text-decoration-color:var(--violet)}
:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.skip{position:absolute;left:var(--s4);top:-80px;z-index:100;background:var(--ivory);color:var(--ink-0);padding:10px 16px;font-weight:500;text-decoration:none}
.skip:focus{top:var(--s4)}
.wrap{width:min(var(--max),100% - 2*var(--gutter));margin-inline:auto}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
/* ambient light: two slow drifting fields behind everything */
.ambient{position:fixed;inset:-20vmax;z-index:-1;pointer-events:none;background:
radial-gradient(38vmax 30vmax at 72% 18%,rgba(90,67,166,.30),transparent 70%),
radial-gradient(30vmax 26vmax at 12% 62%,rgba(28,31,82,.85),transparent 70%),
radial-gradient(22vmax 18vmax at 58% 96%,rgba(143,227,238,.06),transparent 70%);animation:drift 60s var(--ease-breath) infinite alternate}
@keyframes drift{to{transform:translate3d(-3vmax,2vmax,0) scale(1.04)}}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(243,236,223,.035) 1px,transparent 1px);background-size:3px 3px}
/* type */
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.04;letter-spacing:-.012em;margin:0 0 .45em;text-wrap:balance}
h1{font-size:var(--fs-3xl)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl);line-height:1.15}
p{margin:0 0 1.05em;text-wrap:pretty}
em{font-style:italic;color:var(--violet)}
.display{font-size:var(--fs-display);font-weight:300;line-height:.98;letter-spacing:-.02em}
.kicker{display:flex;align-items:center;gap:var(--s3);font:500 var(--fs-xs)/1.4 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ivory-2);margin:0 0 var(--s5)}
.kicker::before{content:"";width:28px;height:1px;background:var(--cyan)}
.lede{font-family:var(--serif);font-size:clamp(1.3rem,1.9vw,1.6rem);line-height:1.45;color:var(--ivory-2);max-width:36ch}
.muted{color:var(--ivory-2)}.small{font-size:var(--fs-sm)}
.numeral{font-family:var(--serif);font-style:italic;color:var(--violet-2);font-size:var(--fs-lg)}
/* header */
.site-head{position:sticky;top:0;z-index:40;background:linear-gradient(rgba(6,9,26,.86),rgba(6,9,26,.62));backdrop-filter:blur(16px) saturate(120%);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);min-height:68px}
.brand{display:flex;align-items:center;gap:var(--s3);text-decoration:none;color:var(--ivory)}
.brand img{width:30px;height:auto}
.brand span{font:500 .82rem/1 var(--sans);letter-spacing:.36em;text-transform:uppercase}
#site-nav ul{display:flex;gap:clamp(16px,2.4vw,34px);list-style:none;margin:0;padding:0}
#site-nav a{display:inline-block;padding:10px 0;text-decoration:none;font-size:var(--fs-sm);letter-spacing:.08em;color:var(--ivory-2);position:relative}
#site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform var(--t-base) var(--ease-settle)}
#site-nav a:hover,#site-nav a[aria-current=page]{color:var(--ivory)}
#site-nav a:hover::after,#site-nav a[aria-current=page]::after{transform:scaleX(1)}
.nav-toggle{display:none;min-height:44px;min-width:44px;background:none;border:1px solid var(--line-2);color:var(--ivory);border-radius:var(--r-pill);padding:0 18px;font:inherit;font-size:var(--fs-sm);letter-spacing:.1em}
@media (max-width:880px){.nav-toggle{display:inline-block}#site-nav{display:none;position:absolute;inset:68px 0 auto 0;background:rgba(6,9,26,.97);border-bottom:1px solid var(--line)}#site-nav.open{display:block}#site-nav ul{flex-direction:column;gap:0;padding:var(--s3) var(--gutter) var(--s5)}#site-nav a{display:block;padding:14px 0;font-size:var(--fs-md)}}
.notice{margin:0;padding:7px var(--gutter);text-align:center;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ivory-2);background:var(--ink-1);border-bottom:1px solid var(--line)}
/* buttons */
.actions{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);align-items:center;margin-top:var(--s6)}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:50px;padding:0 26px;border-radius:var(--r-pill);text-decoration:none;font-size:var(--fs-sm);letter-spacing:.1em;transition:background var(--t-base) var(--ease-settle),color var(--t-base),transform var(--t-base) var(--ease-settle)}
.btn-primary{background:var(--ivory);color:var(--ink-0)}
.btn-primary:hover{background:#fff;color:var(--ink-0);transform:translateY(-1px)}
.btn-line{padding:0;min-height:44px;border-radius:0;border-bottom:1px solid var(--line-2);color:var(--ivory)}
.btn-line:hover{border-color:var(--violet);color:var(--violet)}
.arrow{display:inline-block;transition:transform var(--t-base) var(--ease-settle)}
.btn:hover .arrow,a:hover>.arrow{transform:translateX(4px)}
/* sections */
.section{padding:clamp(72px,11vw,150px) 0;position:relative}
.rule{border-top:1px solid var(--line)}
.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s5) var(--gutter)}
.c-4{grid-column-end:span 4}.c-5{grid-column-end:span 5}.c-6{grid-column-end:span 6}.c-7{grid-column-end:span 7}.c-8{grid-column-end:span 8}.off-1{grid-column-start:2}.off-7{grid-column-start:7}.off-8{grid-column-start:8}
@media (max-width:880px){.grid-12>*{grid-column:1/-1!important}}
/* hero + signature bloom */
.hero{position:relative;padding:clamp(40px,7vw,96px) 0 clamp(72px,9vw,128px);min-height:min(88vh,860px);display:flex;align-items:center}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--gutter);align-items:center}
@media (max-width:880px){.hero{min-height:0;padding-top:28px}.hero-grid{grid-template-columns:1fr}.hero-copy{order:1}.bloom{order:2}}
.hero-copy .display em{display:block}
.hero-meta{display:flex;gap:var(--s5);flex-wrap:wrap;margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--line);font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ivory-3)}
.bloom{position:relative;width:100%;max-width:560px;margin-inline:auto;aspect-ratio:1}
.bloom svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.bloom picture{position:absolute;left:27%;right:27%;top:21%;display:block}
.bloom picture img{width:100%;height:auto}
.b-aura{transform-box:fill-box;transform-origin:center;animation:aura var(--t-bloom) var(--ease-organic) both}
.b-spark{transform-box:fill-box;transform-origin:center;animation:spark 1400ms var(--ease-organic) both}
.b-petal{transform-box:view-box;transform-origin:300px 300px;animation:unfold 1800ms var(--ease-settle) both}
.b-trace{stroke-dasharray:1 1;stroke-dashoffset:1;animation:trace 2200ms var(--ease-organic) both}
.b-orbit{transform-box:view-box;transform-origin:300px 300px;animation:orbit 90s linear infinite}
.b-orbit.rev{animation-duration:140s;animation-direction:reverse}
.b-comet{stroke-dasharray:.04 .96;animation:comet 9s linear infinite}
.b-logo{animation:resolve 1300ms var(--ease-organic) 1000ms both}
.b-breathe{transform-box:view-box;transform-origin:300px 300px;animation:breathe 9s var(--ease-breath) 2600ms infinite}
@keyframes aura{0%{opacity:0;transform:scale(.06)}45%{opacity:1}100%{opacity:.85;transform:scale(1)}}
@keyframes spark{0%{opacity:0;transform:scale(.4)}35%{opacity:1;transform:scale(1.4)}100%{opacity:0;transform:scale(.2)}}
@keyframes unfold{0%{opacity:0;transform:rotate(var(--rot,-18deg)) scale(.18)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes trace{0%{stroke-dashoffset:1;opacity:0}20%{opacity:1}100%{stroke-dashoffset:0;opacity:.9}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes comet{to{stroke-dashoffset:-1}}
@keyframes resolve{from{opacity:0}to{opacity:1}}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
/* motif: recurring small orbital glyph at section transitions */
.motif{display:flex;justify-content:center;padding:0;margin:0 auto;width:56px;height:56px;color:var(--violet-2)}
.motif svg{width:56px;height:56px;overflow:visible}
.motif .m-orbit{transform-box:view-box;transform-origin:28px 28px;animation:orbit 24s linear infinite}
.paused *,.offscreen,.offscreen *{animation-play-state:paused!important}
/* philosophy */
.principles{list-style:none;margin:var(--s8) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter)}
.principles li{border-top:1px solid var(--line-2);padding-top:var(--s5)}
.principles h3{font-size:1.6rem;margin:var(--s3) 0}
.principles p{color:var(--ivory-2);font-size:.98rem}
@media (max-width:880px){.principles{grid-template-columns:1fr}}
/* tiles (catalogue) */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:var(--s8) var(--s6)}
.tile{position:relative;display:block;text-decoration:none;color:var(--ivory)}
.tile .art{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r1);background:var(--ink-2);isolation:isolate}
.tile .art img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) var(--ease-settle),filter var(--t-slow)}
.tile .art::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at var(--mx,50%) var(--my,30%),rgba(203,188,255,.18),transparent 70%);opacity:0;transition:opacity var(--t-base)}
.tile:hover .art img,.tile:focus-visible .art img{transform:scale(1.035)}
.tile:hover .art::after,.tile:focus-visible .art::after{opacity:1}
.tile .label{position:absolute;left:12px;bottom:10px;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory-2)}
.tile .meta{display:flex;justify-content:space-between;gap:var(--s3);margin-top:var(--s4);font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ivory-3)}
.tile h3{font-size:1.5rem;margin:var(--s2) 0 var(--s2);transition:color var(--t-fast)}
.tile:hover h3{color:var(--violet)}
.tile .status{font-size:var(--fs-sm);color:var(--ivory-2)}
.tile:focus-visible{outline-offset:8px}
.tile.wide{grid-column:span 2}
@media (max-width:620px){.tile.wide{grid-column:auto}.tiles{grid-template-columns:1fr 1fr;gap:var(--s6) var(--s4)}.tile h3{font-size:1.18rem}.tile .meta{flex-direction:column;gap:2px;letter-spacing:.14em}}
/* catalogue layout */
.cat-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s8);margin-top:var(--s8)}
.cat-nav{position:sticky;top:100px;align-self:start}
.cat-nav h2{font:500 var(--fs-xs)/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ivory-3);margin:0 0 var(--s4)}
.cat-nav ul{list-style:none;margin:0 0 var(--s6);padding:0}
.f{display:flex;justify-content:space-between;width:100%;min-height:40px;align-items:center;background:none;border:0;border-left:1px solid var(--line);padding:6px 0 6px 14px;color:var(--ivory-2);font:inherit;font-size:.95rem;text-align:left;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast)}
.f span{color:var(--ivory-3);font-size:var(--fs-xs)}
.f:hover{color:var(--ivory)}
.f[aria-pressed=true]{color:var(--ivory);border-left:2px solid var(--cyan);padding-left:13px}
.search{position:relative;margin-bottom:var(--s7)}
.search input{width:100%;min-height:54px;background:transparent;border:0;border-bottom:1px solid var(--line-2);color:var(--ivory);font:300 1.35rem/1.2 var(--serif);padding:8px 0;border-radius:0}
.search input::placeholder{color:var(--ivory-3)}
.search input:focus-visible{outline:none;border-bottom-color:var(--cyan)}
.result{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s6);font-size:var(--fs-sm);color:var(--ivory-2)}
.empty{padding:var(--s8) 0;border-top:1px solid var(--line)}
@media (max-width:880px){.cat-layout{grid-template-columns:1fr;gap:var(--s5)}.cat-nav{position:static}.cat-nav ul{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--s4)}.f{width:auto;border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 14px;gap:8px;min-height:44px}.f[aria-pressed=true]{border:1px solid var(--cyan);padding-left:14px}}
/* index list (in development) */
.index{list-style:none;margin:var(--s7) 0 0;padding:0;border-top:1px solid var(--line)}
.index a{display:grid;grid-template-columns:60px 1fr auto;gap:var(--s5);align-items:baseline;padding:var(--s5) 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding var(--t-base) var(--ease-settle),color var(--t-fast)}
.index a:hover,.index a:focus-visible{padding-left:var(--s4);color:var(--violet)}
.index .name{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.1}
.index .count{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--ivory-3)}
/* reflection */
.reflect{position:relative;text-align:center;max-width:820px;margin-inline:auto}
.reflect blockquote{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.12;color:var(--ivory)}
.reflect .steps{display:flex;justify-content:center;gap:var(--s6);flex-wrap:wrap;margin:var(--s7) 0 0;padding:0;list-style:none;font-size:var(--fs-sm);color:var(--ivory-2)}
.reflect .steps b{display:block;font-weight:500;font-size:var(--fs-xs);letter-spacing:.22em;color:var(--cyan);margin-bottom:4px}
/* feature (seven nights band) */
.feature{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--s9);align-items:center}
@media (max-width:880px){.feature{grid-template-columns:1fr;gap:var(--s7)}}
.pages{position:relative;aspect-ratio:1/1.05}
.pages img{position:absolute;width:56%;box-shadow:0 40px 80px -30px rgba(0,0,0,.85),0 0 0 1px rgba(243,236,223,.06);border-radius:var(--r1)}
.pages img:nth-child(1){left:0;top:6%;z-index:3}
.pages img:nth-child(2){left:24%;top:0;z-index:2;transform:rotate(3deg)}
.pages img:nth-child(3){left:44%;top:10%;z-index:1;transform:rotate(6deg);opacity:.9}
.tag{display:inline-block;font:500 var(--fs-xs)/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);border:1px solid rgba(143,227,238,.4);padding:8px 12px;border-radius:var(--r-pill)}
/* detail */
.detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s9);align-items:start}
@media (max-width:880px){.detail{grid-template-columns:1fr;gap:var(--s7)}}
.detail .art{position:sticky;top:100px;aspect-ratio:4/5;background:var(--ink-2);border-radius:var(--r1);overflow:hidden}
.detail .art img{width:100%;height:100%;object-fit:cover}
.detail .art figcaption{position:absolute;left:16px;bottom:14px;font-size:var(--fs-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--ivory-2)}
@media (max-width:880px){.detail .art{position:relative;top:0}}
.facts{display:grid;grid-template-columns:minmax(110px,170px) 1fr;margin:var(--s7) 0;border-top:1px solid var(--line)}
.facts dt,.facts dd{margin:0;padding:14px 0;border-bottom:1px solid var(--line)}
.facts dt{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--ivory-3);padding-top:17px}
.nfs{border-left:2px solid var(--cyan);padding:var(--s3) 0 var(--s3) var(--s5);margin:var(--s6) 0;color:var(--ivory)}
.nfs strong{font-weight:500}
.crumb{font-size:var(--fs-sm);margin-bottom:var(--s6);color:var(--ivory-2)}
.more{list-style:none;padding:0;margin:var(--s5) 0 0;border-top:1px solid var(--line)}
.more a{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none}
/* seven nights page */
.nights{list-style:none;margin:var(--s7) 0 0;padding:0;counter-reset:n}
.nights li{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,1.2fr);gap:var(--gutter);align-items:baseline;padding:var(--s5) 0;border-bottom:1px solid var(--line)}
.nights li:first-child{border-top:1px solid var(--line)}
.nights b{font:500 var(--fs-xs)/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--cyan)}
.nights span{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.1}
.nights i{font-style:normal;color:var(--ivory-2)}
@media (max-width:700px){.nights li{grid-template-columns:1fr;gap:4px}}
.cover-hero{border-radius:var(--r1);overflow:hidden;box-shadow:0 50px 100px -40px rgba(0,0,0,.9)}
.care{border-top:1px solid var(--line-2);padding-top:var(--s5);color:var(--ivory-2);font-size:1rem;max-width:72ch}
.prose{max-width:66ch}
.prose ul{padding-left:1.1em}.prose li{margin:.35em 0}
.draft{display:inline-block;font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);border:1px solid rgba(143,227,238,.4);padding:8px 12px;border-radius:var(--r-pill);margin-bottom:var(--s5)}
.faq dt{font-family:var(--serif);font-size:1.7rem;line-height:1.2;margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--line)}
.faq dd{margin:var(--s3) 0 0;color:var(--ivory-2)}
.support{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);margin-top:var(--s7)}
.support a{display:block;padding-top:var(--s5);border-top:1px solid var(--line-2);text-decoration:none}
.support a h3{font-size:1.6rem;margin-bottom:var(--s2)}
.support a p{color:var(--ivory-2);font-size:.95rem}
.support a:hover h3{color:var(--violet)}
@media (max-width:880px){.support{grid-template-columns:1fr 1fr}}@media (max-width:520px){.support{grid-template-columns:1fr}}
/* footer */
.site-foot{border-top:1px solid var(--line);padding:var(--s9) 0 var(--s7);margin-top:var(--s8);font-size:var(--fs-sm);color:var(--ivory-2)}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--gutter)}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}
.site-foot ul{list-style:none;margin:0;padding:0}.site-foot li{margin:8px 0}
.site-foot h2{font:500 var(--fs-xs)/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ivory-3);margin:0 0 var(--s4)}
.foot-brand img{width:120px;margin-bottom:var(--s4)}
.fine{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s4);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--ivory-3)}
/* reveal */
.js .rv{opacity:0;transform:translate3d(0,18px,0);transition:opacity var(--t-slow) var(--ease-settle),transform var(--t-slow) var(--ease-settle)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d2{transition-delay:90ms}.js .rv.d3{transition-delay:180ms}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.js .rv{opacity:1!important;transform:none!important}
.b-trace{stroke-dashoffset:0}.b-spark{opacity:0}
@view-transition{navigation:none}}
.off-6{grid-column-start:6}.off-9{grid-column-start:9}
[data-gap]{margin-top:var(--s8)}
.reflect .kicker{justify-content:center}.reflect .kicker::after{content:"";width:28px;height:1px;background:var(--cyan)}
.reflect .lede{margin:var(--s5) auto 0;max-width:46ch}
.detail .kicker.small{margin-top:var(--s7)}
.tile .art{display:block}.tile .status{display:block}
button.btn{border:0;font:inherit;font-size:var(--fs-sm);letter-spacing:.1em;cursor:pointer}
button.btn-line{background:none;border-bottom:1px solid var(--line-2)}
@media (max-width:620px){.notice{letter-spacing:.08em;font-size:.68rem}.hero-meta{margin-top:var(--s6)}.bloom{max-width:340px}}
.cover-hero img{width:100%}
@media (max-width:880px){.cat-nav ul:last-child{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.cat-nav ul:last-child .f{white-space:nowrap}}
html{scroll-padding-top:120px}
.cat-layout>*{min-width:0}

/* Phase 01: Sinhala fallback (OFL Noto Sans Sinhala subset, self-hosted) */
@font-face{font-family:"Noto Sans Sinhala";src:url(../fonts/noto-sans-sinhala-subset.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0D80-0DFF,U+200C-200D}
.si{font-family:"Noto Sans Sinhala","Noto Sans",system-ui,sans-serif;font-style:normal;font-weight:400;letter-spacing:0}
.brand span i{font-style:italic;font-weight:400;letter-spacing:.28em}
/* Nav dropdowns */
#site-nav .dd{position:relative}
#site-nav .dd>details{position:relative}
#site-nav .dd summary{list-style:none;cursor:pointer;display:inline-block;padding:10px 0;font-size:var(--fs-sm);letter-spacing:.08em;color:var(--ivory-2)}
#site-nav .dd summary::-webkit-details-marker{display:none}
#site-nav .dd summary:hover,#site-nav .dd[open] summary{color:var(--ivory)}
#site-nav .dd-panel{position:absolute;left:0;top:calc(100% + 6px);min-width:240px;padding:var(--s4);background:rgba(6,9,26,.97);border:1px solid var(--line);border-radius:var(--r1);box-shadow:0 24px 60px -20px rgba(0,0,0,.8);z-index:50}
#site-nav .dd-panel ul{display:block!important;padding:0!important}
#site-nav .dd-panel a{display:block;padding:8px 0;font-size:var(--fs-sm)}
#site-nav .dd-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);min-width:min(520px,80vw)}
#site-nav .dd-2>div>p{margin:0 0 var(--s3);font:500 var(--fs-xs)/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ivory-3)}
#site-nav .dd-all{grid-column:1/-1;margin:var(--s3) 0 0;padding-top:var(--s3);border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ivory-2)}
@media (max-width:880px){#site-nav .dd-panel{position:static;box-shadow:none;border:0;padding:0 0 0 var(--s4);background:transparent;min-width:0}#site-nav .dd-2{grid-template-columns:1fr;min-width:0}}
/* Collections group filters */
.cat-nav .grp{margin-top:var(--s4)}
.cat-nav .grp>summary{cursor:pointer;font:500 var(--fs-xs)/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ivory-3);padding:6px 0}
.coll-tags{margin-top:var(--s5);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.coll-tags .tag{text-decoration:none}
.coll-tags .kicker{margin:0}
.sec-gap{margin-top:var(--s8)}
ul.plain{list-style:none;margin:0;padding:0}
ul.plain li{margin:8px 0}
.pillar-h .si{font-size:.92em}
.index.pillars .name .si{font-size:.9em}
/* Wishlist */
.wl-n{display:inline-block;min-width:1.4em;text-align:center;font-variant-numeric:tabular-nums;color:var(--cyan)}
.wl-act{margin:var(--s5) 0}
.wl-grid .wl-row{display:contents}
.wl-row .btn{margin-top:var(--s3)}

/* Transform world-class 2026-10-23 */
.brand-mark{width:36px;height:auto;flex-shrink:0;border-radius:var(--r1)}
.brand span{display:inline-block}
.nav-soon{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--ivory-3);text-transform:none}
#site-nav .dd-panel .has-sub > .sub{list-style:none;margin:0;padding:0 0 0 var(--s4)}
#site-nav .dd-panel .has-sub > .sub a{font-size:var(--fs-sm);color:var(--ivory-2)}
.pillar-panels{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s6);margin-top:var(--s8)}
.pillar-panel{display:block;padding-top:var(--s5);border-top:1px solid var(--line-2);text-decoration:none;color:inherit;min-height:100%}
.pillar-panel h3{font-size:clamp(1.35rem,2vw,1.75rem);margin:var(--s3) 0}
.pillar-panel:hover h3{color:var(--violet)}
.pillar-panel .numeral{display:block}
.stage-map,.ritual{list-style:none;margin:var(--s6) 0;padding:0;border-top:1px solid var(--line)}
.stage-map li,.ritual li{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.7fr) minmax(0,1.4fr);gap:var(--gutter);align-items:baseline;padding:var(--s5) 0;border-bottom:1px solid var(--line)}
.stage-map b,.ritual b{font:500 var(--fs-xs)/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}
.stage-map span,.ritual span{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.15}
.stage-map i,.ritual i{font-style:normal;color:var(--ivory-2)}
@media (max-width:700px){.stage-map li,.ritual li{grid-template-columns:1fr;gap:4px}}

.detail .art.draft-preview img{object-fit:contain;background:var(--ink-1)}
.detail .art.draft-preview figcaption{max-width:90%}

/* t264u residual — MoR prep shell (checkout disabled) */
.mor-prep{margin:var(--s6) 0;padding:var(--s5);border:1px solid var(--line);border-radius:12px;background:rgba(8,12,28,.45)}
.mor-prep .kicker{margin-bottom:var(--s3)}
.mor-prep .mor-cta{margin:var(--s4) 0}
.mor-prep .mor-cta .btn[disabled],.mor-prep .mor-cta .btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;pointer-events:none}
.mor-prep .facts{margin-top:var(--s4)}
a[data-preview-only]{opacity:.9}

/* generated: bloom stagger */
.b-petal.p1{animation-delay:330ms}.b-trace.p1{animation-delay:490ms}.b-petal.p2{animation-delay:400ms}.b-trace.p2{animation-delay:560ms}.b-petal.p3{animation-delay:470ms}.b-trace.p3{animation-delay:630ms}.b-petal.p4{animation-delay:540ms}.b-trace.p4{animation-delay:700ms}.b-petal.p5{animation-delay:610ms}.b-trace.p5{animation-delay:770ms}.b-petal.p6{animation-delay:680ms}.b-trace.p6{animation-delay:840ms}.b-petal.p7{animation-delay:750ms}.b-trace.p7{animation-delay:910ms}.b-petal.p8{animation-delay:820ms}.b-trace.p8{animation-delay:980ms}.b-petal.p9{animation-delay:890ms}.b-trace.p9{animation-delay:1050ms}.b-petal.p10{animation-delay:960ms}.b-trace.p10{animation-delay:1120ms}.b-petal.p11{animation-delay:1030ms}.b-trace.p11{animation-delay:1190ms}.b-petal.p12{animation-delay:1100ms}.b-trace.p12{animation-delay:1260ms}.b-petal.p13{animation-delay:1170ms}.b-trace.p13{animation-delay:1330ms}.b-petal.p14{animation-delay:1240ms}.b-trace.p14{animation-delay:1400ms}.b-petal.p15{animation-delay:1310ms}.b-trace.p15{animation-delay:1470ms}.b-petal.p16{animation-delay:1380ms}.b-trace.p16{animation-delay:1540ms}.b-petal.p17{animation-delay:1450ms}.b-trace.p17{animation-delay:1610ms}
