/* SOURCE: observatory-v3.0.0.css */
:root {
  --ink:#040906;
  --ink-soft:#07130d;
  --forest:#0c2b1b;
  --forest-bright:#17472d;
  --chlorophyll:#70a96d;
  --sage:#a5b99b;
  --ivory:#f3eedf;
  --paper:#d9d0ba;
  --brass:#bda66a;
  --brass-bright:#ead18b;
  --rose:#c97e88;
  --line:rgba(234,209,139,.22);
  --line-soft:rgba(243,238,223,.12);
  --glass:rgba(5,14,9,.64);
  --glass-strong:rgba(4,9,6,.82);
  --shadow:0 32px 90px rgba(0,0,0,.48);
  --ease:cubic-bezier(.2,.72,.18,1);
  --ease-sharp:cubic-bezier(.3,0,.1,1);
  --safe-top:max(18px,env(safe-area-inset-top));
  --safe-bottom:max(18px,env(safe-area-inset-bottom));
  --pointer-x:50%;
  --pointer-y:50%;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink);scroll-padding-top:90px}
body{margin:0;background:var(--ink);color:var(--ivory);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.is-gated{overflow:hidden}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
svg{display:block;fill:none;stroke:currentColor;stroke-width:1.5}
::selection{background:var(--brass-bright);color:var(--ink)}
:focus-visible{outline:1px solid var(--brass-bright);outline-offset:5px}
.skip-link{position:fixed;z-index:11000;left:14px;top:14px;padding:12px 16px;background:var(--ivory);color:var(--ink);transform:translateY(-180%);transition:transform .2s}
.skip-link:focus{transform:none}

/* Global cinematic field */
.scene-stage{position:fixed;inset:0;z-index:-5;overflow:hidden;background:var(--ink)}
.scene-layer{position:absolute;inset:-2%;opacity:0;transform:scale(1.035);transition:opacity 1.25s var(--ease),transform 8s linear;will-change:opacity,transform}
.scene-layer.is-active{opacity:1;transform:scale(1.085)}
.scene-layer video{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.84) contrast(1.1) brightness(.62);background:var(--ink)}
.scene-stage__grade,.scene-stage__depth,.scene-stage__vignette{position:absolute;inset:0;pointer-events:none}
.scene-stage__grade{background:linear-gradient(90deg,rgba(2,8,4,.84) 0%,rgba(2,10,5,.45) 38%,rgba(2,8,4,.2) 64%,rgba(2,8,4,.62) 100%),linear-gradient(180deg,rgba(2,8,4,.42),transparent 34%,rgba(2,8,4,.74));mix-blend-mode:multiply}
.scene-stage__depth{opacity:.46;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(112,169,109,.16),transparent 24%),repeating-linear-gradient(90deg,transparent 0,transparent calc(8.333vw - 1px),rgba(234,209,139,.045) calc(8.333vw - 1px),rgba(234,209,139,.045) 8.333vw),repeating-linear-gradient(0deg,transparent 0,transparent calc(12.5vh - 1px),rgba(234,209,139,.032) calc(12.5vh - 1px),rgba(234,209,139,.032) 12.5vh)}
.scene-stage__vignette{box-shadow:inset 0 0 220px 70px rgba(0,0,0,.62);background:radial-gradient(circle at 50% 42%,transparent 20%,rgba(3,8,5,.3) 70%,rgba(2,5,3,.78) 100%)}
.observatory-canvas{position:fixed;inset:0;z-index:-2;width:100%;height:100%;pointer-events:none;opacity:.62}
.grain{position:fixed;inset:-45%;z-index:70;pointer-events:none;opacity:.05;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");animation:grain .25s steps(2) infinite}
.global-reticle{position:fixed;z-index:65;width:58px;height:58px;border:1px solid rgba(234,209,139,.3);border-radius:50%;pointer-events:none;transform:translate3d(-50%,-50%,0);opacity:0;transition:opacity .25s;mix-blend-mode:screen}
body.has-pointer .global-reticle{opacity:.72}
.global-reticle span,.global-reticle i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.global-reticle span{width:8px;height:8px;border:1px solid var(--brass-bright);border-radius:50%}
.global-reticle i::before,.global-reticle i::after{content:"";position:absolute;background:rgba(234,209,139,.55);transform:translate(-50%,-50%)}
.global-reticle i::before{width:76px;height:1px}.global-reticle i::after{width:1px;height:76px}

/* Entry portal */
.entry{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;min-height:100svh;overflow:hidden;background:rgba(2,7,4,.48);transition:opacity 1.15s var(--ease),visibility 1.15s}
.entry::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 43%,transparent 0 12%,rgba(2,8,4,.16) 32%,rgba(2,7,4,.76) 78%)}
.entry.is-opening{opacity:0;visibility:hidden;pointer-events:none}
.entry__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,7,4,.7),transparent 34%,transparent 66%,rgba(2,7,4,.7)),linear-gradient(180deg,rgba(2,7,4,.5),transparent 28%,rgba(2,7,4,.7));backdrop-filter:blur(2px)}
.entry__interface{position:absolute;inset:clamp(18px,3vw,42px);border:1px solid rgba(234,209,139,.17);pointer-events:none}
.entry__interface::before,.entry__interface::after{content:"";position:absolute;background:rgba(234,209,139,.2)}
.entry__interface::before{left:50%;top:0;width:1px;height:28px}.entry__interface::after{left:0;top:50%;height:1px;width:28px}
.entry__coordinate{position:absolute;color:rgba(243,238,223,.48);font-size:9px;letter-spacing:.22em;text-transform:uppercase;writing-mode:horizontal-tb}
.entry__coordinate--a{top:18px;left:22px}.entry__coordinate--b{top:18px;right:22px}.entry__coordinate--c{bottom:18px;left:22px}
.entry__cross{position:absolute;width:17px;height:17px}
.entry__cross::before,.entry__cross::after{content:"";position:absolute;left:50%;top:50%;background:rgba(234,209,139,.4);transform:translate(-50%,-50%)}
.entry__cross::before{width:17px;height:1px}.entry__cross::after{width:1px;height:17px}
.entry__cross--a{right:-9px;top:18%}.entry__cross--b{left:-9px;bottom:21%}
.entry__portal{position:absolute;left:50%;top:29%;width:min(68vw,520px);aspect-ratio:1;transform:translate(-50%,-50%);display:grid;place-items:center;pointer-events:none}
.entry__rings,.entry__iris{position:absolute;inset:0}
.entry__rings span{position:absolute;border:1px solid rgba(234,209,139,.18);border-radius:50%;animation:orbit 25s linear infinite}
.entry__rings span:nth-child(1){inset:0}.entry__rings span:nth-child(2){inset:11%;border-style:dashed;animation-duration:18s;animation-direction:reverse}.entry__rings span:nth-child(3){inset:22%;animation-duration:12s}.entry__rings span:nth-child(4){inset:35%;border-color:rgba(112,169,109,.28);animation-duration:8s;animation-direction:reverse}
.entry__rings span::before{content:"";position:absolute;left:50%;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--brass-bright);box-shadow:0 0 18px var(--brass-bright)}
.entry__iris{inset:12%;border-radius:50%;overflow:hidden;filter:drop-shadow(0 22px 58px rgba(0,0,0,.5))}
.entry__iris i{position:absolute;left:50%;top:50%;width:46%;height:78%;transform-origin:0 50%;clip-path:polygon(0 50%,100% 0,100% 100%);background:linear-gradient(90deg,rgba(7,23,14,.88),rgba(25,63,39,.36));border-right:1px solid rgba(234,209,139,.22)}
.entry__iris i:nth-child(1){transform:rotate(0deg)}.entry__iris i:nth-child(2){transform:rotate(60deg)}.entry__iris i:nth-child(3){transform:rotate(120deg)}.entry__iris i:nth-child(4){transform:rotate(180deg)}.entry__iris i:nth-child(5){transform:rotate(240deg)}.entry__iris i:nth-child(6){transform:rotate(300deg)}
.entry__emblem{position:relative;z-index:3;width:clamp(118px,18vw,184px);filter:drop-shadow(0 28px 46px rgba(0,0,0,.65)) brightness(1.08)}
.entry__copy{position:relative;z-index:5;width:min(92vw,760px);margin-top:min(44vh,450px);padding:20px 24px 32px;text-align:center;text-shadow:0 2px 30px rgba(0,0,0,.65)}
.eyebrow,.chapter-code{display:flex;align-items:center;gap:12px;margin:0 0 18px;color:var(--brass-bright);font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.entry .eyebrow{justify-content:center}.eyebrow>span{width:28px;height:1px;background:currentColor}
.entry h1,.chapter h2,.archive h2,.finale h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.045em}
.entry h1{margin:0;font-size:clamp(42px,6vw,78px);line-height:.94}.entry h1 em,.chapter h2 em,.archive h2 em,.finale h2 em{color:var(--brass-bright);font-weight:400}
.entry__copy>p:not(.eyebrow):not(.entry__status){max-width:600px;margin:20px auto 0;color:rgba(243,238,223,.73);font-size:clamp(14px,1.4vw,17px);line-height:1.75}
.entry__actions{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:26px;flex-wrap:wrap}
.portal-button,.quiet-button{border:0;cursor:pointer}
.portal-button{display:flex;align-items:center;gap:28px;min-width:260px;justify-content:space-between;padding:16px 18px 16px 24px;border:1px solid rgba(234,209,139,.5);background:rgba(6,18,11,.72);backdrop-filter:blur(14px);color:var(--ivory);text-transform:uppercase;font-size:11px;letter-spacing:.18em;transition:background .3s,border-color .3s,transform .3s}
.portal-button:hover{background:rgba(28,60,37,.78);border-color:var(--brass-bright);transform:translateY(-2px)}
.portal-button svg{width:30px}.quiet-button{padding:15px 18px;background:transparent;color:rgba(243,238,223,.58);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.quiet-button:hover{color:var(--ivory)}
.entry__status{margin:15px auto 0;color:rgba(243,238,223,.38);font-size:10px;letter-spacing:.08em}

/* Header + rail */
.topbar{position:fixed;left:0;right:0;top:0;z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:var(--safe-top) clamp(18px,3vw,48px) 16px;transition:background .35s,border-color .35s,backdrop-filter .35s;border-bottom:1px solid transparent}
.topbar.is-scrolled{background:rgba(4,9,6,.76);border-color:var(--line-soft);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:10px;width:max-content}.brand img{width:48px;height:48px;object-fit:contain}.brand span{display:grid;gap:2px}.brand strong{font-family:Georgia,serif;font-size:16px;font-weight:400}.brand small{font-size:8px;color:var(--brass);text-transform:uppercase;letter-spacing:.21em}
.topbar__status{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid var(--line-soft);background:rgba(4,9,6,.35);backdrop-filter:blur(10px);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,238,223,.58)}
.topbar__status i{width:6px;height:6px;border-radius:50%;background:#78c477;box-shadow:0 0 12px #78c477;animation:pulse 2s infinite}.topbar__status small{padding-left:9px;border-left:1px solid var(--line-soft);color:var(--brass)}
.topbar__actions{justify-self:end;display:flex;align-items:center;gap:10px}.instagram-link,.sound-button{height:42px;border:1px solid var(--line-soft);background:rgba(4,9,6,.36);backdrop-filter:blur(12px);display:flex;align-items:center;gap:10px;padding:0 14px;color:rgba(243,238,223,.75);font-size:9px;letter-spacing:.12em;text-transform:uppercase;transition:border-color .25s,background .25s,color .25s}.instagram-link:hover,.sound-button:hover{border-color:rgba(234,209,139,.55);background:rgba(14,38,23,.7);color:var(--ivory)}.instagram-link svg{width:17px}.sound-button{cursor:pointer}.sound-bars{display:flex;align-items:flex-end;gap:2px;height:13px}.sound-bars i{display:block;width:2px;height:4px;background:var(--brass-bright);animation:sound 1s ease-in-out infinite;animation-play-state:paused}.sound-bars i:nth-child(2){height:10px;animation-delay:.1s}.sound-bars i:nth-child(3){height:7px;animation-delay:.2s}.sound-bars i:nth-child(4){height:12px;animation-delay:.3s}.sound-button[aria-pressed="true"] .sound-bars i{animation-play-state:running}
.chapter-rail{position:fixed;z-index:90;right:clamp(16px,2.7vw,46px);top:50%;transform:translateY(-50%);display:grid;gap:14px}.chapter-rail::before{content:"";position:absolute;right:5px;top:9px;bottom:9px;width:1px;background:var(--line-soft)}.chapter-rail a{position:relative;display:grid;grid-template-columns:28px auto;align-items:center;gap:9px;min-height:24px;color:rgba(243,238,223,.35);font-size:9px;text-transform:uppercase;letter-spacing:.14em;transition:color .25s}.chapter-rail a::after{content:"";position:absolute;right:1px;width:9px;height:9px;border:1px solid currentColor;border-radius:50%;background:var(--ink);transform:scale(.55);transition:transform .25s,background .25s}.chapter-rail a span{font-variant-numeric:tabular-nums}.chapter-rail a em{position:absolute;right:22px;font-style:normal;opacity:0;transform:translateX(8px);transition:.25s;white-space:nowrap}.chapter-rail a:hover em,.chapter-rail a.is-active em{opacity:1;transform:none}.chapter-rail a.is-active{color:var(--brass-bright)}.chapter-rail a.is-active::after{transform:scale(1);background:var(--brass-bright);box-shadow:0 0 16px rgba(234,209,139,.45)}
.scroll-meter{position:fixed;z-index:101;left:0;top:0;height:2px;width:100%;background:rgba(255,255,255,.04)}.scroll-meter span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--forest-bright),var(--brass-bright));box-shadow:0 0 10px var(--brass)}

/* Shared sections */
main{position:relative;z-index:1}.chapter{position:relative;min-height:100svh;padding:clamp(120px,14vh,180px) clamp(28px,7vw,118px) clamp(100px,12vh,160px);overflow:hidden}.chapter::before{content:"";position:absolute;left:clamp(28px,7vw,118px);right:clamp(28px,7vw,118px);top:92px;height:1px;background:linear-gradient(90deg,var(--line),transparent 70%)}
.chapter-code{font-size:9px;color:rgba(243,238,223,.55)}.chapter-code span{color:var(--brass-bright);padding-right:10px;border-right:1px solid var(--line)}
.chapter h2,.archive h2,.finale h2{margin:0;font-size:clamp(48px,6.5vw,100px);line-height:.93}.chapter p,.archive p,.finale p{color:rgba(243,238,223,.68);line-height:1.75}
.reveal{opacity:0;transform:translate3d(0,36px,0);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:1px solid var(--line);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;transition:background .3s,border-color .3s,transform .3s}.button:hover{transform:translateY(-2px)}.button--primary{background:var(--brass-bright);border-color:var(--brass-bright);color:var(--ink)}.button--primary:hover{background:var(--ivory)}.button--ghost{background:rgba(4,9,6,.32);backdrop-filter:blur(10px)}.button--ghost:hover{border-color:var(--brass-bright);background:rgba(12,43,27,.55)}

/* Hero */
.hero{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(380px,.8fr);align-items:center;gap:clamp(20px,5vw,86px);padding-top:clamp(130px,18vh,210px)}
.hero__grid{position:absolute;inset:0;opacity:.34;background:linear-gradient(90deg,transparent 49.95%,rgba(234,209,139,.09) 50%,transparent 50.05%),linear-gradient(0deg,transparent 49.95%,rgba(234,209,139,.07) 50%,transparent 50.05%);background-size:100% 100%,100% 100%;pointer-events:none}.hero__copy{position:relative;z-index:3;max-width:900px}.hero h2{font-size:clamp(56px,7vw,110px)}.hero__lead{max-width:720px;margin:28px 0 0;font-size:clamp(15px,1.45vw,19px)}.hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.hero__metrics{display:grid;grid-template-columns:repeat(3,max-content);gap:clamp(28px,4vw,64px);margin-top:48px;padding-top:22px;border-top:1px solid var(--line-soft)}.hero__metrics div{display:grid;gap:3px}.hero__metrics strong{font-family:Georgia,serif;font-size:34px;font-weight:400;color:var(--brass-bright)}.hero__metrics span{font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:rgba(243,238,223,.46)}
.hero__specimen{position:relative;z-index:2;justify-self:end;width:min(42vw,610px);aspect-ratio:.83;display:grid;place-items:center}.specimen-frame{position:relative;width:78%;height:82%;overflow:hidden;border:1px solid rgba(234,209,139,.28);background:radial-gradient(circle at 50% 36%,rgba(112,169,109,.22),rgba(4,9,6,.65) 66%);clip-path:polygon(8% 0,92% 0,100% 8%,100% 92%,92% 100%,8% 100%,0 92%,0 8%);box-shadow:var(--shadow)}.specimen-frame::before,.specimen-frame::after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none}.specimen-frame::before{background:linear-gradient(90deg,transparent 49.8%,rgba(234,209,139,.14) 50%,transparent 50.2%),linear-gradient(0deg,transparent 49.8%,rgba(234,209,139,.12) 50%,transparent 50.2%)}.specimen-frame::after{box-shadow:inset 0 -60px 80px rgba(2,7,4,.74),inset 0 0 100px rgba(2,7,4,.25)}.specimen-frame img{position:absolute;left:50%;bottom:-3%;width:105%;max-width:none;transform:translateX(-50%);filter:saturate(.86) contrast(1.06) drop-shadow(0 24px 28px rgba(0,0,0,.55))}.specimen-frame__glow{position:absolute;left:50%;top:28%;width:54%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(234,209,139,.24),transparent 67%);filter:blur(18px)}
.specimen-orbit{position:absolute;inset:0;pointer-events:none}.specimen-orbit span{position:absolute;border:1px solid rgba(234,209,139,.17);border-radius:50%;animation:orbit 26s linear infinite}.specimen-orbit span:nth-child(1){inset:5% 0}.specimen-orbit span:nth-child(2){inset:14% 9%;border-style:dashed;animation-direction:reverse;animation-duration:16s}.specimen-orbit span:nth-child(3){inset:25% 20%;border-color:rgba(112,169,109,.26);animation-duration:11s}.specimen-label{position:absolute;z-index:5;display:grid;gap:3px;padding:9px 12px;border-left:1px solid var(--brass);background:rgba(4,9,6,.6);backdrop-filter:blur(8px);box-shadow:0 12px 30px rgba(0,0,0,.22)}.specimen-label span{font-size:7px;letter-spacing:.18em;color:rgba(243,238,223,.45)}.specimen-label strong{font-size:9px;letter-spacing:.14em;font-weight:600}.specimen-label--a{left:-3%;top:22%}.specimen-label--b{right:-2%;top:44%}.specimen-label--c{left:5%;bottom:10%}
.hero__scroll{position:absolute;left:clamp(28px,7vw,118px);bottom:34px;display:flex;align-items:center;gap:15px;color:rgba(243,238,223,.35);font-size:8px;letter-spacing:.18em;text-transform:uppercase}.hero__scroll i{width:70px;height:1px;background:linear-gradient(90deg,var(--brass),transparent);position:relative}.hero__scroll i::after{content:"";position:absolute;left:0;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--brass-bright);animation:scanline 2.4s ease-in-out infinite}

/* Method */
.method{background:linear-gradient(180deg,rgba(4,9,6,.3),rgba(4,9,6,.72) 50%,rgba(4,9,6,.52))}.method__intro{max-width:860px}.method__intro p:last-child{max-width:620px;margin-top:22px}.method__observatory{position:relative;width:min(100%,1040px);height:min(68vw,690px);margin:50px auto 0;border:1px solid var(--line-soft);background:radial-gradient(circle at 50% 48%,rgba(42,94,57,.26),rgba(4,9,6,.56) 52%,rgba(4,9,6,.8));box-shadow:var(--shadow);overflow:hidden}.method__observatory::before{content:"";position:absolute;inset:4%;border:1px solid rgba(234,209,139,.1);background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),rgba(234,209,139,.035) calc(10% - 1px),rgba(234,209,139,.035) 10%),repeating-linear-gradient(0deg,transparent 0,transparent calc(12.5% - 1px),rgba(234,209,139,.03) calc(12.5% - 1px),rgba(234,209,139,.03) 12.5%)}.method__portrait{position:absolute;left:50%;bottom:0;width:52%;transform:translateX(-50%);z-index:2}.method__portrait img{width:100%;filter:saturate(.72) contrast(1.06) drop-shadow(0 30px 32px rgba(0,0,0,.52))}.method__scanner{position:absolute;left:0;right:0;top:20%;height:1px;background:linear-gradient(90deg,transparent,var(--brass-bright),transparent);box-shadow:0 0 20px rgba(234,209,139,.6);animation:verticalScan 4.8s var(--ease) infinite}.method__reticle{position:absolute;left:50%;top:45%;width:38%;aspect-ratio:1;border:1px solid rgba(234,209,139,.28);border-radius:50%;transform:translate(-50%,-50%);z-index:1}.method__reticle::before,.method__reticle::after{content:"";position:absolute;left:50%;top:50%;background:rgba(234,209,139,.15);transform:translate(-50%,-50%)}.method__reticle::before{width:130%;height:1px}.method__reticle::after{width:1px;height:130%}.method__reticle span{position:absolute;inset:17%;border:1px dashed rgba(112,169,109,.32);border-radius:50%;animation:orbit 18s linear infinite}.method__reticle i{position:absolute;inset:42%;border:1px solid var(--brass-bright);border-radius:50%;box-shadow:0 0 18px rgba(234,209,139,.25)}.method__datum{position:absolute;z-index:4;width:190px;padding:12px 14px;background:rgba(4,9,6,.72);border-top:1px solid rgba(234,209,139,.34);backdrop-filter:blur(12px);display:grid;gap:4px}.method__datum::after{content:"";position:absolute;height:1px;width:80px;background:linear-gradient(90deg,rgba(234,209,139,.5),transparent);top:50%}.method__datum small{font-size:7px;color:var(--brass);letter-spacing:.18em}.method__datum strong{font-family:Georgia,serif;font-size:16px;font-weight:400}.method__datum span{font-size:7px;color:rgba(243,238,223,.35)}.method__datum--one{left:6%;top:16%}.method__datum--one::after,.method__datum--three::after{left:100%}.method__datum--two{right:6%;top:26%}.method__datum--two::after,.method__datum--four::after{right:100%;transform:scaleX(-1)}.method__datum--three{left:8%;bottom:18%}.method__datum--four{right:8%;bottom:13%}.method__principles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;max-width:1040px;margin:1px auto 0;background:var(--line-soft)}.protocol-card{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:26px;background:rgba(4,9,6,.78);min-height:180px}.protocol-card>span{font-family:Georgia,serif;color:var(--brass);font-size:25px}.protocol-card small{color:var(--sage);font-size:8px;letter-spacing:.16em;text-transform:uppercase}.protocol-card h3{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:6px 0 8px}.protocol-card p{font-size:13px;margin:0}

/* Portrait console */
.portraits{padding-left:0;padding-right:0;background:linear-gradient(180deg,rgba(4,9,6,.62),rgba(4,9,6,.32))}.portraits::before{left:clamp(28px,7vw,118px);right:clamp(28px,7vw,118px)}.portraits__head{padding:0 clamp(28px,7vw,118px);max-width:1040px}.portraits__head p:last-child{max-width:670px}.portrait-console{margin-top:54px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:rgba(3,8,5,.38);backdrop-filter:blur(8px)}.portrait-track{display:flex;gap:16px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;padding:34px max(clamp(28px,7vw,118px),calc((100vw - 1480px)/2));cursor:grab;scrollbar-width:none}.portrait-track::-webkit-scrollbar{display:none}.portrait-track.is-dragging{cursor:grabbing;scroll-snap-type:none}.portrait-card{position:relative;flex:0 0 clamp(280px,26vw,390px);height:clamp(420px,49vw,590px);margin:0;scroll-snap-align:center;border:1px solid var(--line-soft);background:var(--ink-soft);transition:transform .45s var(--ease),border-color .3s;overflow:hidden}.portrait-card--wide{flex-basis:clamp(360px,34vw,510px)}.portrait-card--tall{flex-basis:clamp(260px,23vw,350px)}.portrait-card:hover{border-color:rgba(234,209,139,.48)}.portrait-card__image{position:absolute;inset:0;overflow:hidden}.portrait-card__image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(2,7,4,.92));box-shadow:inset 0 0 80px rgba(0,0,0,.26)}.portrait-card__image img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.08);transition:transform 1s var(--ease),filter .6s}.portrait-card:hover img{transform:scale(1.045);filter:saturate(.9) contrast(1.04)}.portrait-card__image span{position:absolute;z-index:2;inset:14px;border:1px solid rgba(234,209,139,.14);pointer-events:none}.portrait-card figcaption{position:absolute;z-index:3;left:25px;right:25px;bottom:24px;display:grid;gap:4px}.portrait-card figcaption small{color:var(--brass);font-size:8px;letter-spacing:.16em}.portrait-card figcaption strong{font-family:Georgia,serif;font-size:25px;font-weight:400}.portrait-card figcaption em{font-size:9px;color:rgba(243,238,223,.5);font-style:normal;text-transform:uppercase;letter-spacing:.13em}.portrait-console__footer{height:54px;padding:0 clamp(28px,7vw,118px);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;color:rgba(243,238,223,.46);font-size:8px;letter-spacing:.16em;text-transform:uppercase}.portrait-console__footer i{height:1px;background:linear-gradient(90deg,var(--brass),var(--line-soft))}

/* Macro lab */
.laboratory{background:linear-gradient(180deg,rgba(4,9,6,.42),rgba(4,9,6,.76))}.laboratory__head{max-width:980px}.laboratory__head p:last-child{max-width:650px}.macro-lab{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);grid-template-rows:auto auto;gap:1px;max-width:1320px;margin:52px auto 0;background:var(--line-soft);border:1px solid var(--line-soft);box-shadow:var(--shadow)}.macro-lab__viewport{position:relative;grid-row:1/3;min-height:min(72vw,760px);overflow:hidden;background:#020503;cursor:crosshair;touch-action:none}.macro-lab__viewport>img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.08) brightness(.82);transition:opacity .4s,transform .9s var(--ease)}.macro-lab__viewport:hover>img{transform:scale(1.015)}.macro-lens{position:absolute;z-index:5;width:clamp(150px,18vw,230px);aspect-ratio:1;border-radius:50%;border:1px solid var(--brass-bright);box-shadow:0 0 0 8px rgba(4,9,6,.35),0 16px 46px rgba(0,0,0,.45),inset 0 0 32px rgba(234,209,139,.12);background-repeat:no-repeat;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.86);transition:opacity .2s,transform .2s}.macro-lens.is-active{opacity:1;transform:translate(-50%,-50%) scale(1)}.macro-lens::before,.macro-lens::after{content:"";position:absolute;left:50%;top:50%;background:rgba(234,209,139,.5);transform:translate(-50%,-50%)}.macro-lens::before{width:115%;height:1px}.macro-lens::after{width:1px;height:115%}.macro-reticle{position:absolute;z-index:3;left:50%;top:50%;width:46%;aspect-ratio:1;border:1px solid rgba(234,209,139,.24);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.macro-reticle::before,.macro-reticle::after{content:"";position:absolute;left:50%;top:50%;background:rgba(234,209,139,.16);transform:translate(-50%,-50%)}.macro-reticle::before{width:130%;height:1px}.macro-reticle::after{width:1px;height:130%}.macro-reticle span{position:absolute;inset:21%;border:1px dashed rgba(243,238,223,.22);border-radius:50%;animation:orbit 20s linear infinite}.macro-reticle i{position:absolute;inset:47%;border:1px solid var(--brass-bright);border-radius:50%}.macro-scan{position:absolute;z-index:4;left:0;right:0;top:20%;height:1px;background:linear-gradient(90deg,transparent,var(--brass-bright),transparent);box-shadow:0 0 20px rgba(234,209,139,.45);opacity:.6;animation:verticalScan 6s var(--ease) infinite;pointer-events:none}.macro-lab__data{padding:clamp(28px,3.4vw,50px);background:rgba(4,9,6,.9);display:flex;flex-direction:column;justify-content:space-between}.macro-lab__title small{color:var(--brass);font-size:8px;letter-spacing:.18em}.macro-lab__title h3{font-family:Georgia,serif;font-size:clamp(30px,3.2vw,48px);font-weight:400;margin:12px 0 16px}.macro-lab__title p{margin:0;font-size:13px}.macro-lab dl{margin:32px 0 0;border-top:1px solid var(--line-soft)}.macro-lab dl div{display:grid;grid-template-columns:85px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--line-soft)}.macro-lab dt{font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:rgba(243,238,223,.38)}.macro-lab dd{margin:0;font-size:11px;color:rgba(243,238,223,.8)}.macro-lab__hint{display:flex;align-items:center;gap:10px;margin:28px 0 0!important;font-size:9px!important;text-transform:uppercase;letter-spacing:.12em}.macro-lab__hint span{width:7px;height:7px;border:1px solid var(--brass);border-radius:50%;box-shadow:0 0 12px var(--brass)}.macro-samples{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-soft)}.macro-sample{position:relative;border:0;padding:0;aspect-ratio:1;overflow:hidden;background:var(--ink);cursor:pointer}.macro-sample img{width:100%;height:100%;object-fit:cover;filter:saturate(.55) brightness(.62);transition:filter .35s,transform .6s}.macro-sample:hover img,.macro-sample.is-active img{filter:saturate(.95) brightness(.86);transform:scale(1.06)}.macro-sample::after{content:"";position:absolute;inset:0;border:1px solid transparent;transition:border-color .3s}.macro-sample.is-active::after{border-color:var(--brass-bright);box-shadow:inset 0 0 20px rgba(234,209,139,.18)}.macro-sample span{position:absolute;right:8px;bottom:7px;font-size:8px;letter-spacing:.1em;color:var(--ivory);text-shadow:0 2px 8px #000}

/* Archive */
.archive{position:relative;padding:clamp(130px,15vh,190px) clamp(28px,7vw,118px) clamp(110px,13vh,170px);background:linear-gradient(180deg,rgba(4,9,6,.74),#040906 18%,#040906);overflow:hidden}.archive::before{content:"";position:absolute;inset:0;opacity:.4;background:radial-gradient(circle at 80% 10%,rgba(112,169,109,.17),transparent 25%),repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5vw - 1px),rgba(234,209,139,.025) calc(12.5vw - 1px),rgba(234,209,139,.025) 12.5vw);pointer-events:none}.archive__head{position:relative;max-width:960px}.archive__head p:last-child{max-width:650px}.featured-grid{position:relative;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(160px,16vw,250px);gap:12px;margin-top:58px}.featured-study{position:relative;grid-column:span 4;grid-row:span 2;margin:0;overflow:hidden;border:1px solid var(--line-soft);background:var(--ink-soft);cursor:zoom-in}.featured-study--wide{grid-column:span 8;grid-row:span 2}.featured-study--portrait{grid-column:span 4;grid-row:span 3}.featured-study img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.05) brightness(.82);transition:transform 1.2s var(--ease),filter .6s}.featured-study:hover img{transform:scale(1.04);filter:saturate(.95) contrast(1.03) brightness(.9)}.featured-study::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(2,7,4,.88));pointer-events:none}.featured-study figcaption{position:absolute;z-index:3;left:20px;right:20px;bottom:18px;display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:13px}.featured-study figcaption>span{font-family:Georgia,serif;font-size:24px;color:var(--brass-bright)}.featured-study figcaption div{display:grid;gap:3px}.featured-study figcaption em{font-size:8px;color:var(--sage);font-style:normal;letter-spacing:.14em;text-transform:uppercase}.featured-study figcaption strong{font-family:Georgia,serif;font-size:20px;font-weight:400}.featured-study figcaption small{font-size:7px;letter-spacing:.12em;color:rgba(243,238,223,.4)}
.archive-toolbar{position:sticky;z-index:20;top:84px;display:flex;gap:8px;align-items:center;margin:72px 0 24px;padding:10px;border:1px solid var(--line-soft);background:rgba(4,9,6,.78);backdrop-filter:blur(16px);width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}.archive-toolbar::-webkit-scrollbar{display:none}.filter-button{white-space:nowrap;border:1px solid transparent;background:transparent;padding:10px 14px;color:rgba(243,238,223,.48);font-size:9px;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:.25s}.filter-button span{color:var(--brass);padding-left:5px}.filter-button:hover,.filter-button.is-active{color:var(--ivory);border-color:var(--line);background:rgba(23,71,45,.28)}
.archive-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.archive-card{position:relative;margin:0;min-height:340px;overflow:hidden;border:1px solid var(--line-soft);background:var(--ink-soft);cursor:zoom-in;transition:opacity .45s,transform .45s,border-color .3s}.archive-card--tall{grid-row:span 2;min-height:692px}.archive-card--wide{grid-column:span 2}.archive-card.is-hidden{display:none}.archive-card:hover{border-color:rgba(234,209,139,.42)}.archive-card__image{position:absolute;inset:0;overflow:hidden}.archive-card__image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(2,7,4,.9))}.archive-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(1.08) brightness(.82);transition:transform 1s var(--ease),filter .55s}.archive-card:hover img{transform:scale(1.05);filter:saturate(.95) contrast(1.03) brightness(.9)}.archive-card__scan{position:absolute;z-index:2;left:0;right:0;top:-5%;height:1px;background:linear-gradient(90deg,transparent,rgba(234,209,139,.75),transparent);opacity:0;transition:opacity .2s}.archive-card:hover .archive-card__scan{opacity:1;animation:cardScan 1.5s linear infinite}.archive-card figcaption{position:absolute;z-index:4;left:18px;right:18px;bottom:16px;display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:11px}.archive-card figcaption>span{font-family:Georgia,serif;color:var(--brass-bright);font-size:20px}.archive-card figcaption div{display:grid;gap:2px}.archive-card figcaption em{font-size:7px;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}.archive-card figcaption strong{font-family:Georgia,serif;font-size:17px;font-weight:400}.archive-card figcaption small{font-size:7px;letter-spacing:.13em;color:rgba(243,238,223,.4)}

/* Finale */
.finale{position:relative;min-height:88svh;padding:clamp(110px,14vh,170px) clamp(28px,8vw,140px);display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1fr);align-items:center;gap:clamp(40px,8vw,140px);overflow:hidden;background:radial-gradient(circle at 28% 50%,rgba(33,78,48,.38),transparent 31%),#040906}.finale__rings{position:absolute;left:20%;top:50%;width:min(64vw,760px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}.finale__rings span{position:absolute;border:1px solid rgba(234,209,139,.14);border-radius:50%;animation:orbit 28s linear infinite}.finale__rings span:nth-child(1){inset:0}.finale__rings span:nth-child(2){inset:16%;border-style:dashed;animation-direction:reverse;animation-duration:18s}.finale__rings span:nth-child(3){inset:32%;border-color:rgba(112,169,109,.2);animation-duration:12s}.finale__portrait{position:relative;z-index:2;justify-self:center;width:min(34vw,480px);aspect-ratio:1;border-radius:50%;padding:18px;border:1px solid rgba(234,209,139,.3);background:rgba(4,9,6,.48);box-shadow:var(--shadow)}.finale__portrait img{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:saturate(.78) contrast(1.04)}.finale__copy{position:relative;z-index:3;max-width:790px}.finale__copy p:not(.eyebrow){max-width:600px;margin:24px 0 0}.instagram-cta{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;width:min(100%,480px);margin-top:32px;padding:17px 20px;border:1px solid rgba(234,209,139,.32);background:rgba(12,43,27,.24);backdrop-filter:blur(12px);transition:background .3s,border-color .3s,transform .3s}.instagram-cta:hover{transform:translateY(-2px);background:rgba(23,71,45,.45);border-color:var(--brass-bright)}.instagram-cta>svg{width:25px}.instagram-cta span{display:grid;gap:3px}.instagram-cta small{font-size:8px;color:rgba(243,238,223,.45);text-transform:uppercase;letter-spacing:.15em}.instagram-cta strong{font-family:Georgia,serif;font-size:20px;font-weight:400}.instagram-cta i{font-style:normal;font-size:24px;color:var(--brass-bright)}
.footer{position:relative;z-index:3;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:28px clamp(24px,5vw,80px);border-top:1px solid var(--line-soft);background:#030705;color:rgba(243,238,223,.48);font-size:9px}.footer__brand{display:flex;align-items:center;gap:10px;width:max-content}.footer__brand img{width:42px}.footer__brand span{display:grid;font-family:Georgia,serif;color:var(--ivory);font-size:14px}.footer__brand small{font-family:Inter,sans-serif;font-size:7px;color:var(--brass);letter-spacing:.15em;text-transform:uppercase}.footer p{margin:0;text-align:center}.footer>div{justify-self:end;display:flex;gap:20px}.footer a:hover{color:var(--ivory)}

/* Lightbox */
.lightbox[hidden]{display:none}.lightbox{position:fixed;z-index:12000;inset:0;display:grid;place-items:center;background:rgba(2,5,3,.94);backdrop-filter:blur(18px);padding:clamp(20px,4vw,60px)}.lightbox figure{margin:0;display:grid;gap:14px;max-width:min(88vw,1300px);max-height:88vh}.lightbox figure img{max-width:100%;max-height:78vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.55)}.lightbox figcaption{text-align:center;font-family:Georgia,serif;font-size:18px}.lightbox__close,.lightbox__nav{position:absolute;border:1px solid var(--line);background:rgba(4,9,6,.65);backdrop-filter:blur(10px);cursor:pointer}.lightbox__close{right:24px;top:24px;width:48px;height:48px;font-size:28px}.lightbox__nav{top:50%;width:52px;height:52px;transform:translateY(-50%);font-size:20px}.lightbox__nav--prev{left:24px}.lightbox__nav--next{right:24px}.lightbox__counter{position:absolute;left:24px;bottom:24px;color:var(--brass);font-size:9px;letter-spacing:.16em}.noscript{position:fixed;z-index:20000;left:16px;right:16px;bottom:16px;padding:15px;background:#fff;color:#111;text-align:center}

/* Performance containment */
.method,.portraits,.laboratory,.archive,.finale{content-visibility:auto;contain-intrinsic-size:900px}

/* Animations */
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,3%)}75%{transform:translate(1%,2%)}100%{transform:translate(-3%,-1%)}}
@keyframes pulse{50%{opacity:.35;transform:scale(.78)}}
@keyframes sound{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes scanline{0%,100%{transform:translateX(0)}50%{transform:translateX(64px)}}
@keyframes verticalScan{0%{top:10%;opacity:0}10%{opacity:.7}85%{opacity:.6}100%{top:90%;opacity:0}}
@keyframes cardScan{to{top:105%}}

/* Tablet */
@media (max-width:1100px){
  .topbar{grid-template-columns:1fr auto}.topbar__status{display:none}
  .hero{grid-template-columns:1fr minmax(320px,.72fr);gap:18px}.hero h2{font-size:clamp(54px,8vw,84px)}
  .chapter-rail{display:none}.chapter{padding-left:clamp(24px,5vw,58px);padding-right:clamp(24px,5vw,58px)}.chapter::before{left:clamp(24px,5vw,58px);right:clamp(24px,5vw,58px)}
  .hero__scroll{left:clamp(24px,5vw,58px)}
  .portraits__head,.portrait-console__footer{padding-left:clamp(24px,5vw,58px);padding-right:clamp(24px,5vw,58px)}.portrait-track{padding-left:clamp(24px,5vw,58px);padding-right:clamp(24px,5vw,58px)}
  .archive{padding-left:clamp(24px,5vw,58px);padding-right:clamp(24px,5vw,58px)}
  .archive-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-card--wide{grid-column:span 2}
}

/* Mobile art direction */
@media (max-width:760px){
  :root{--safe-top:max(12px,env(safe-area-inset-top));--safe-bottom:max(14px,env(safe-area-inset-bottom))}
  html{scroll-padding-top:74px}.scene-layer{inset:0}.scene-layer video{object-position:center center;filter:saturate(.85) contrast(1.08) brightness(.58)}
  .scene-stage__grade{background:linear-gradient(180deg,rgba(2,8,4,.46) 0%,rgba(2,8,4,.24) 26%,rgba(2,8,4,.5) 62%,rgba(2,8,4,.86) 100%),linear-gradient(90deg,rgba(2,8,4,.4),transparent 45%,rgba(2,8,4,.25))}
  .scene-stage__vignette{box-shadow:inset 0 0 100px 22px rgba(0,0,0,.55)}.scene-stage__depth{opacity:.28}.grain{opacity:.04}.global-reticle{display:none}
  .entry__interface{inset:12px}.entry__coordinate--b{display:none}.entry__coordinate{font-size:7px}.entry__portal{top:28%;width:min(82vw,340px)}.entry__emblem{width:96px}.entry__copy{margin-top:min(43vh,365px);padding:16px 20px calc(24px + var(--safe-bottom))}.entry h1{font-size:clamp(39px,12vw,58px)}.entry__copy>p:not(.eyebrow):not(.entry__status){font-size:13px;line-height:1.6}.entry__actions{display:grid;gap:6px}.portal-button{width:min(88vw,320px)}.quiet-button{width:100%}
  .topbar{grid-template-columns:1fr auto;padding:var(--safe-top) 14px 10px}.brand img{width:40px;height:40px}.brand strong{font-size:14px}.brand small{font-size:6px}.instagram-link{display:none}.sound-button{height:38px;padding:0 11px}.sound-label{display:none}
  .chapter{min-height:auto;padding:105px 20px 100px}.chapter::before{left:20px;right:20px;top:77px}.chapter h2,.archive h2,.finale h2{font-size:clamp(43px,13vw,67px)}.chapter-code{font-size:8px}
  .hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;padding-top:105px;padding-bottom:58px}.hero__copy{z-index:4}.hero h2{font-size:clamp(49px,14vw,70px)}.hero__lead{font-size:14px;margin-top:18px}.hero__actions{margin-top:22px;gap:8px}.button{min-height:44px;padding:0 15px;font-size:8px}.hero__metrics{gap:18px;margin-top:26px;padding-top:16px}.hero__metrics strong{font-size:26px}.hero__metrics span{font-size:7px}.hero__specimen{position:absolute;right:-18%;top:12%;width:88vw;opacity:.72}.specimen-frame{width:68%;height:78%}.specimen-label{display:none}.hero__copy::before{content:"";position:absolute;z-index:-1;left:-20px;right:-20px;bottom:-40px;height:120%;background:linear-gradient(180deg,transparent,rgba(2,8,4,.56) 23%,rgba(2,8,4,.9) 58%,rgba(2,8,4,.98));pointer-events:none}.hero__scroll{display:none}
  .method__intro p:last-child{font-size:13px}.method__observatory{height:670px;margin-top:34px}.method__portrait{width:88%}.method__reticle{width:72%}.method__datum{width:142px;padding:10px}.method__datum strong{font-size:13px}.method__datum::after{width:28px}.method__datum--one{left:4%;top:10%}.method__datum--two{right:4%;top:25%}.method__datum--three{left:4%;bottom:18%}.method__datum--four{right:4%;bottom:7%}.method__principles{grid-template-columns:1fr}.protocol-card{min-height:auto;padding:22px}
  .portraits{padding-left:0;padding-right:0}.portraits__head{padding:0 20px}.portrait-track{padding:26px 20px;gap:11px;scroll-padding:20px}.portrait-card,.portrait-card--wide,.portrait-card--tall{flex-basis:82vw;height:118vw;max-height:570px}.portrait-console__footer{padding:0 20px;grid-template-columns:auto 1fr}.portrait-console__footer small{display:none}
  .laboratory__head p:last-child{font-size:13px}.macro-lab{grid-template-columns:1fr;grid-template-rows:auto;margin-top:34px}.macro-lab__viewport{grid-row:auto;min-height:118vw;max-height:620px}.macro-lab__data{padding:26px}.macro-lab__title h3{font-size:34px}.macro-samples{grid-column:1}.macro-lens{width:145px}.macro-reticle{width:60%}
  .archive{padding:110px 20px 90px}.featured-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:54vw;gap:8px;margin-top:34px}.featured-study,.featured-study--wide,.featured-study--portrait{grid-column:span 1;grid-row:span 1}.featured-study:first-child,.featured-study:nth-child(4){grid-column:span 2}.featured-study figcaption{left:12px;right:12px;bottom:11px}.featured-study figcaption small{display:none}.archive-toolbar{top:68px;margin:46px 0 16px;width:100%;padding:7px}.filter-button{padding:9px 11px;font-size:8px}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.archive-card,.archive-card--tall,.archive-card--wide{grid-column:span 1;grid-row:span 1;min-height:64vw}.archive-card:nth-child(5n+1){grid-column:span 2;min-height:98vw}.archive-card figcaption{left:11px;right:11px;bottom:10px;gap:7px}.archive-card figcaption>span{font-size:17px}.archive-card figcaption strong{font-size:14px}.archive-card figcaption small{display:none}
  .finale{min-height:90svh;grid-template-columns:1fr;padding:100px 20px 90px;text-align:center;gap:34px}.finale__rings{left:50%;top:25%;width:110vw}.finale__portrait{width:min(66vw,330px)}.finale__copy .eyebrow{justify-content:center}.finale__copy p:not(.eyebrow){margin-left:auto;margin-right:auto;font-size:14px}.instagram-cta{margin-left:auto;margin-right:auto;text-align:left}
  .footer{grid-template-columns:1fr;text-align:center;padding:28px 20px calc(28px + var(--safe-bottom))}.footer__brand,.footer>div{justify-self:center}.footer p{order:3}
  .lightbox{padding:72px 14px 55px}.lightbox__close{right:14px;top:14px}.lightbox__nav{top:auto;bottom:12px}.lightbox__nav--prev{left:50%;margin-left:-62px}.lightbox__nav--next{right:50%;margin-right:-62px}.lightbox__counter{left:14px;bottom:24px}
}

@media (max-width:380px){.hero__metrics{grid-template-columns:repeat(3,1fr)}.hero__metrics span{font-size:6px}.entry h1{font-size:38px}.method__datum{width:130px}.archive-card figcaption em{display:none}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.grain,.observatory-canvas,.global-reticle{display:none}.scene-layer{transform:none}.reveal{opacity:1;transform:none}.macro-lens{display:none}}

/* The music portal is a deliberate first scene, not a blurred duplicate of the hero. */
main,.topbar,.chapter-rail,.scroll-meter{transition:opacity .75s var(--ease),visibility .75s}
body.is-gated main,body.is-gated .topbar,body.is-gated .chapter-rail,body.is-gated .scroll-meter{opacity:0;visibility:hidden}

/* ================================================================
   V2.1.0 — Gallery Inspector, touch-safe magnifier, brighter cinema
   ================================================================ */
:root{
  --ink:#06110a;
  --ink-soft:#0a1b10;
  --forest:#123b24;
  --forest-bright:#24633b;
  --chlorophyll:#87c77d;
  --sage:#bdd0ae;
  --ivory:#fff8e6;
  --paper:#e7dcc1;
  --brass:#d2b96f;
  --brass-bright:#f3d783;
  --rose:#e58aa0;
  --glass:rgba(7,20,12,.58);
  --glass-strong:rgba(5,14,8,.78)
}

.scene-layer video{filter:saturate(1.08) contrast(1.06) brightness(.76)}
.scene-stage__grade{background:linear-gradient(90deg,rgba(2,10,5,.67) 0%,rgba(2,12,6,.3) 38%,rgba(5,18,9,.12) 66%,rgba(2,10,5,.44) 100%),linear-gradient(180deg,rgba(2,10,5,.26),transparent 37%,rgba(2,10,5,.56));mix-blend-mode:normal}
.scene-stage__depth{opacity:.58;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(135,199,125,.23),transparent 25%),repeating-linear-gradient(90deg,transparent 0,transparent calc(8.333vw - 1px),rgba(243,215,131,.055) calc(8.333vw - 1px),rgba(243,215,131,.055) 8.333vw),repeating-linear-gradient(0deg,transparent 0,transparent calc(12.5vh - 1px),rgba(243,215,131,.04) calc(12.5vh - 1px),rgba(243,215,131,.04) 12.5vh)}
.scene-stage__vignette{box-shadow:inset 0 0 170px 46px rgba(0,0,0,.48);background:radial-gradient(circle at 50% 42%,transparent 22%,rgba(3,10,5,.2) 72%,rgba(2,6,3,.62) 100%)}
.observatory-canvas{opacity:.72}.grain{opacity:.045}

.method{background:linear-gradient(180deg,rgba(5,16,9,.18),rgba(5,17,10,.58) 52%,rgba(5,16,9,.38))}
.portraits{background:linear-gradient(180deg,rgba(5,16,9,.46),rgba(5,16,9,.18))}
.laboratory{background:linear-gradient(180deg,rgba(5,16,9,.22),rgba(5,16,9,.58))}
.archive{background:linear-gradient(180deg,rgba(5,16,9,.52),rgba(6,17,10,.82) 22%,rgba(6,17,10,.9));isolation:isolate}
.finale{background:radial-gradient(circle at 28% 50%,rgba(51,121,70,.48),transparent 34%),rgba(5,15,9,.84)}

.specimen-frame{background:radial-gradient(circle at 50% 36%,rgba(135,199,125,.34),rgba(5,18,10,.54) 66%)}
.specimen-frame img{filter:saturate(1.03) contrast(1.04) brightness(1.03) drop-shadow(0 24px 28px rgba(0,0,0,.48))}
.method__portrait img{filter:saturate(.95) contrast(1.04) brightness(1.04) drop-shadow(0 30px 32px rgba(0,0,0,.48))}
.portrait-card__image img{filter:saturate(.94) contrast(1.05) brightness(.94)}
.portrait-card:hover img{filter:saturate(1.08) contrast(1.02) brightness(1.02)}
.macro-lab__viewport>img{filter:saturate(1.08) contrast(1.05) brightness(.96)}
.macro-sample img{filter:saturate(.82) brightness(.78)}
.macro-sample:hover img,.macro-sample.is-active img{filter:saturate(1.12) brightness(1)}
.featured-study img{filter:saturate(1.01) contrast(1.03) brightness(.94)}
.featured-study:hover img{filter:saturate(1.16) contrast(1.02) brightness(1.02)}
.archive-card img{filter:saturate(.98) contrast(1.05) brightness(.91)}
.archive-card:hover img{filter:saturate(1.15) contrast(1.02) brightness(1)}
.finale__portrait img{filter:saturate(1.02) contrast(1.03) brightness(1.02)}

/* Real, lazy-loaded film apertures behind the laboratory and archive. */
.section-film{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none;opacity:.48;isolation:isolate;-webkit-mask-image:radial-gradient(ellipse 78% 56% at 72% 30%,#000 0 42%,transparent 76%);mask-image:radial-gradient(ellipse 78% 56% at 72% 30%,#000 0 42%,transparent 76%)}
.section-film video{position:absolute;inset:-7%;width:114%;height:114%;object-fit:cover;filter:saturate(1.25) contrast(1.06) brightness(.9);transform:scale(1.03)}
.section-film span{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,17,10,.94) 0%,rgba(6,17,10,.38) 45%,rgba(6,17,10,.12) 72%,rgba(6,17,10,.72)),linear-gradient(180deg,rgba(6,17,10,.28),transparent 35%,rgba(6,17,10,.8))}
.section-film--archive{opacity:.36;-webkit-mask-image:linear-gradient(180deg,#000 0 25%,transparent 75%);mask-image:linear-gradient(180deg,#000 0 25%,transparent 75%)}
.section-film--archive video{object-position:center 42%;filter:saturate(1.32) contrast(1.04) brightness(.92)}
.laboratory>*:not(.section-film),.archive>*:not(.section-film){position:relative;z-index:1}

.archive__instruction{display:flex;align-items:center;gap:11px;margin-top:24px!important;color:rgba(255,248,230,.78)!important;font-size:10px!important;letter-spacing:.12em;text-transform:uppercase}
.archive__instruction span{width:9px;height:9px;border:1px solid var(--brass-bright);border-radius:50%;box-shadow:0 0 16px rgba(243,215,131,.65)}
.featured-study::before,.archive-card::before{content:"Infos + Lupe";position:absolute;z-index:6;right:12px;top:12px;padding:8px 10px;border:1px solid rgba(243,215,131,.42);background:rgba(5,16,9,.68);backdrop-filter:blur(10px);color:var(--ivory);font-size:7px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:0;transform:translateY(-5px);transition:.3s;pointer-events:none}
.featured-study:hover::before,.featured-study:focus-visible::before,.archive-card:hover::before,.archive-card:focus-visible::before{opacity:1;transform:none}

/* Mobile lens target: the sample point remains under the finger, the lens moves away. */
.macro-touch-target{position:absolute;z-index:7;left:50%;top:50%;width:34px;height:34px;border:1px solid rgba(255,248,230,.7);border-radius:50%;transform:translate(-50%,-50%) scale(.75);opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;box-shadow:0 0 0 5px rgba(5,16,9,.3),0 0 22px rgba(243,215,131,.35)}
.macro-touch-target.is-active{opacity:1;transform:translate(-50%,-50%) scale(1)}
.macro-touch-target::before,.macro-touch-target::after,.macro-touch-target i::before,.macro-touch-target i::after{content:"";position:absolute;background:rgba(243,215,131,.76)}
.macro-touch-target::before{left:-12px;right:-12px;height:1px;top:50%}.macro-touch-target::after{top:-12px;bottom:-12px;width:1px;left:50%}
.macro-touch-target i::before{width:6px;height:6px;border-radius:50%;left:13px;top:13px}.macro-touch-target i::after{display:none}
.macro-lens,.inspector-lens{background-color:#0a160e;backdrop-filter:blur(1px)}

/* Full archive specimen inspector. */
body.inspector-open{overflow:hidden}
.specimen-inspector[hidden]{display:none}
.specimen-inspector{position:fixed;z-index:12000;inset:0;display:grid;place-items:center;padding:clamp(14px,2.5vw,38px)}
.specimen-inspector__backdrop{position:absolute;inset:0;background:rgba(2,8,4,.86);backdrop-filter:blur(18px)}
.specimen-inspector__shell{position:relative;width:min(95vw,1540px);height:min(91svh,930px);display:grid;grid-template-columns:minmax(0,1.48fr) minmax(320px,.62fr);overflow:hidden;border:1px solid rgba(243,215,131,.34);background:rgba(5,15,9,.92);box-shadow:0 38px 120px rgba(0,0,0,.66)}
.specimen-inspector__shell::before{content:"";position:absolute;z-index:8;inset:12px;border:1px solid rgba(243,215,131,.11);pointer-events:none}
.specimen-inspector__media{position:relative;min-width:0;overflow:hidden;background:#020704;touch-action:none;cursor:crosshair}
.specimen-inspector__media>img{width:100%;height:100%;object-fit:cover;filter:saturate(1.14) contrast(1.04) brightness(.98);transition:opacity .28s,transform .8s var(--ease)}
.specimen-inspector__media:hover>img{transform:scale(1.012)}
.specimen-inspector__media::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px rgba(0,0,0,.26);background:linear-gradient(180deg,transparent 64%,rgba(3,10,5,.46))}
.inspector-lens{position:absolute;z-index:7;width:clamp(170px,17vw,240px);aspect-ratio:1;border-radius:50%;border:1px solid var(--brass-bright);background-repeat:no-repeat;box-shadow:0 0 0 9px rgba(5,16,9,.42),0 22px 58px rgba(0,0,0,.54),inset 0 0 38px rgba(243,215,131,.16);pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .18s,transform .18s}
.inspector-lens.is-active{opacity:1;transform:translate(-50%,-50%) scale(1)}
.inspector-lens::before,.inspector-lens::after{content:"";position:absolute;left:50%;top:50%;background:rgba(243,215,131,.55);transform:translate(-50%,-50%)}
.inspector-lens::before{width:116%;height:1px}.inspector-lens::after{width:1px;height:116%}
.specimen-inspector__reticle{position:absolute;z-index:3;left:50%;top:50%;width:42%;aspect-ratio:1;border:1px solid rgba(243,215,131,.22);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.specimen-inspector__reticle::before,.specimen-inspector__reticle::after{content:"";position:absolute;left:50%;top:50%;background:rgba(243,215,131,.14);transform:translate(-50%,-50%)}
.specimen-inspector__reticle::before{width:126%;height:1px}.specimen-inspector__reticle::after{width:1px;height:126%}
.specimen-inspector__reticle span{position:absolute;inset:22%;border:1px dashed rgba(135,199,125,.42);border-radius:50%;animation:orbit 22s linear infinite}
.specimen-inspector__reticle i{position:absolute;inset:47%;border:1px solid var(--brass-bright);border-radius:50%}
.specimen-inspector__scan{position:absolute;z-index:4;left:0;right:0;top:15%;height:1px;background:linear-gradient(90deg,transparent,var(--brass-bright),transparent);box-shadow:0 0 20px rgba(243,215,131,.48);opacity:.66;animation:verticalScan 6.5s var(--ease) infinite;pointer-events:none}
.specimen-inspector__gesture{position:absolute;z-index:9;left:18px;bottom:18px;padding:10px 12px;border:1px solid rgba(243,215,131,.25);background:rgba(4,14,8,.62);backdrop-filter:blur(10px);font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,248,230,.74)}
.specimen-inspector__data{position:relative;z-index:5;display:flex;flex-direction:column;min-width:0;padding:clamp(32px,3.4vw,54px) clamp(26px,3vw,46px) 24px;background:linear-gradient(145deg,rgba(11,37,21,.95),rgba(5,15,9,.96));overflow:hidden}
.specimen-inspector__data::before{content:"";position:absolute;right:-18%;top:-14%;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(135,199,125,.18),transparent 68%);pointer-events:none}
.specimen-inspector__heading{position:relative;z-index:1}.specimen-inspector__heading small{color:var(--brass-bright);font-size:8px;font-weight:700;letter-spacing:.18em}.specimen-inspector__heading h2{font-family:Georgia,serif;font-size:clamp(34px,3.4vw,54px);font-weight:400;line-height:.98;margin:14px 0 18px;letter-spacing:-.04em}.specimen-inspector__heading p{margin:0;color:rgba(255,248,230,.72);font-size:13px;line-height:1.72}
.specimen-inspector__data dl{position:relative;z-index:1;margin:28px 0 24px;border-top:1px solid var(--line-soft)}.specimen-inspector__data dl div{display:grid;grid-template-columns:78px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-soft)}.specimen-inspector__data dt{font-size:7px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,248,230,.4)}.specimen-inspector__data dd{margin:0;font-size:10px;color:rgba(255,248,230,.88)}
.specimen-inspector__selector{position:relative;z-index:1;margin-top:auto;min-height:0}.specimen-inspector__selector-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:rgba(255,248,230,.48);font-size:8px;letter-spacing:.14em;text-transform:uppercase}.specimen-inspector__selector-head strong{color:var(--brass-bright);font-weight:500}.specimen-inspector__thumbs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;max-height:230px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--brass) transparent}.specimen-thumb{position:relative;border:1px solid transparent;padding:0;aspect-ratio:1;background:var(--ink);overflow:hidden;cursor:pointer}.specimen-thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) brightness(.66);transition:.25s}.specimen-thumb span{position:absolute;right:4px;bottom:3px;font-size:7px;text-shadow:0 1px 5px #000}.specimen-thumb:hover,.specimen-thumb.is-active{border-color:var(--brass-bright)}.specimen-thumb:hover img,.specimen-thumb.is-active img{filter:saturate(1.15) brightness(1)}
.specimen-inspector__close,.specimen-inspector__nav{position:absolute;z-index:12;border:1px solid rgba(243,215,131,.38);background:rgba(5,16,9,.7);backdrop-filter:blur(12px);cursor:pointer;transition:.25s}.specimen-inspector__close:hover,.specimen-inspector__nav:hover{background:rgba(36,99,59,.74);border-color:var(--brass-bright)}
.specimen-inspector__close{right:16px;top:16px;width:46px;height:46px;font-size:27px}.specimen-inspector__nav{top:50%;width:48px;height:58px;transform:translateY(-50%);font-size:19px}.specimen-inspector__nav--prev{left:15px}.specimen-inspector__nav--next{right:calc(29.5% + 15px)}

@media (max-width:760px){
  .scene-layer video{filter:saturate(1.1) contrast(1.05) brightness(.72)}
  .scene-stage__grade{background:linear-gradient(180deg,rgba(2,9,4,.32) 0%,rgba(2,10,5,.12) 27%,rgba(2,10,5,.34) 64%,rgba(2,9,4,.7) 100%),linear-gradient(90deg,rgba(2,9,4,.27),transparent 48%,rgba(2,9,4,.14))}
  .scene-stage__depth{opacity:.38}.scene-stage__vignette{box-shadow:inset 0 0 84px 14px rgba(0,0,0,.4)}
  .section-film{opacity:.42;-webkit-mask-image:linear-gradient(180deg,#000 0 36%,transparent 82%);mask-image:linear-gradient(180deg,#000 0 36%,transparent 82%)}
  .section-film video{inset:-4%;width:108%;height:108%;filter:saturate(1.28) contrast(1.04) brightness(.88)}
  .archive__instruction{font-size:8px!important;line-height:1.55;align-items:flex-start}.archive__instruction span{flex:0 0 auto;margin-top:2px}
  .featured-study::before,.archive-card::before{opacity:1;transform:none;right:8px;top:8px;padding:6px 7px;font-size:6px;background:rgba(5,16,9,.62)}
  .macro-lab__hint{line-height:1.55}.macro-lens{width:148px}.macro-touch-target{width:30px;height:30px}
  .specimen-inspector{padding:0;place-items:stretch}.specimen-inspector__shell{width:100%;height:100svh;grid-template-columns:1fr;grid-template-rows:minmax(48svh,56svh) auto;border:0;overflow-y:auto;overscroll-behavior:contain}.specimen-inspector__shell::before{inset:8px}
  .specimen-inspector__media{min-height:48svh}.specimen-inspector__media>img{filter:saturate(1.16) contrast(1.03) brightness(1)}.inspector-lens{width:148px}.specimen-inspector__reticle{width:55%}.specimen-inspector__gesture{left:12px;bottom:12px;max-width:calc(100% - 24px);font-size:7px;padding:8px 9px}
  .specimen-inspector__data{padding:28px 18px calc(24px + var(--safe-bottom));overflow:visible}.specimen-inspector__heading h2{font-size:37px}.specimen-inspector__heading p{font-size:12px}.specimen-inspector__data dl{margin:20px 0}.specimen-inspector__data dl div{padding:10px 0}.specimen-inspector__thumbs{display:flex;gap:6px;max-height:none;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding-bottom:4px}.specimen-thumb{flex:0 0 58px;width:58px;scroll-snap-align:center}
  .specimen-inspector__close{position:fixed;right:10px;top:calc(10px + env(safe-area-inset-top));width:42px;height:42px}.specimen-inspector__nav{position:fixed;top:calc(27svh + env(safe-area-inset-top)/2);width:42px;height:50px}.specimen-inspector__nav--prev{left:8px}.specimen-inspector__nav--next{right:8px}
}

@media (prefers-reduced-motion:reduce){.macro-lens,.inspector-lens{display:block}.section-film video{transform:none}.specimen-inspector__reticle span{animation:none}}
/* Preserve sticky archive controls above the gallery stacking context. */
.archive .archive-toolbar{z-index:30}

/* V2.1.1 — scale-safe media and complete 18-specimen selectors. */
.macro-lab__viewport,
.specimen-inspector__media{
  --specimen-bg:none;
  isolation:isolate;
  background:#030a05;
}
.macro-lab__viewport::before,
.specimen-inspector__media::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:-8%;
  background-image:linear-gradient(rgba(3,10,5,.34),rgba(3,10,5,.34)),var(--specimen-bg);
  background-position:center;
  background-size:cover;
  filter:blur(22px) saturate(1.08) brightness(.66);
  transform:scale(1.08);
  opacity:.9;
  pointer-events:none;
}
.macro-lab__viewport>img,
.specimen-inspector__media>img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:contain;
  object-position:center;
  transform:none;
  transition:opacity .22s ease,filter .28s ease;
}
.macro-lab__viewport:hover>img,
.specimen-inspector__media:hover>img{transform:none}
.macro-lab__viewport>img.is-switching,
.specimen-inspector__media>img.is-switching{opacity:.38;filter:saturate(.78) brightness(.75)}
.macro-reticle,.macro-scan,.macro-lens,.macro-touch-target,
.specimen-inspector__reticle,.specimen-inspector__scan,.inspector-lens,.inspector-touch-target,.specimen-inspector__gesture{z-index:5}

.macro-lab{
  grid-template-columns:minmax(0,1.32fr) minmax(330px,.68fr);
  grid-template-rows:minmax(0,1fr) auto;
  width:100%;
  min-width:0;
}
.macro-lab__viewport{
  min-height:clamp(560px,62vw,760px);
}
.macro-lab__data{min-width:0;overflow:hidden}
.macro-lab__title h3,
.specimen-inspector__heading h2{overflow-wrap:anywhere;text-wrap:balance}
.macro-samples{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1px;
  min-width:0;
}
.macro-sample{min-width:0;aspect-ratio:1}
.macro-sample img{display:block}

.specimen-inspector{height:100dvh;max-height:100dvh}
.specimen-inspector__shell{
  min-width:0;
  height:min(92dvh,930px);
  max-height:92dvh;
  grid-template-columns:minmax(0,1.42fr) minmax(330px,.68fr);
}
.specimen-inspector__media{min-width:0;min-height:0}
.specimen-inspector__media::after{z-index:2}
.specimen-inspector__data{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.specimen-inspector__selector{margin-top:20px}
.specimen-inspector__thumbs{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:6px;
  max-height:none;
  overflow:visible;
}
.specimen-thumb{width:auto;min-width:0;aspect-ratio:1}
.specimen-thumb img{display:block}

@media (max-width:760px){
  .macro-lab{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}
  .macro-lab__viewport{
    width:100%;
    min-height:0;
    max-height:none;
    aspect-ratio:1/1;
  }
  .macro-lab__data{padding:24px 20px}
  .macro-lab__title h3{font-size:clamp(31px,9vw,40px);line-height:1.02}
  .macro-lab dl{margin-top:22px}
  .macro-samples{grid-template-columns:repeat(6,minmax(0,1fr))}
  .macro-sample span{right:5px;bottom:4px;font-size:7px}

  .specimen-inspector{
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    overflow:hidden;
  }
  .specimen-inspector__shell{
    width:100%;
    height:100dvh;
    max-height:100dvh;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:minmax(320px,52dvh) auto;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-gutter:stable;
  }
  .specimen-inspector__media{
    width:100%;
    height:52dvh;
    min-height:320px;
    max-height:56dvh;
  }
  .specimen-inspector__data{
    width:100%;
    padding:26px 16px calc(22px + var(--safe-bottom));
    overflow:visible;
  }
  .specimen-inspector__heading h2{
    font-size:clamp(31px,9.4vw,40px);
    line-height:1.02;
    margin:12px 0 14px;
  }
  .specimen-inspector__heading p{font-size:12px;line-height:1.62}
  .specimen-inspector__data dl{margin:18px 0}
  .specimen-inspector__selector{margin-top:16px}
  .specimen-inspector__thumbs{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:5px;
    overflow:visible;
    padding:0;
    scroll-snap-type:none;
  }
  .specimen-thumb{
    width:auto;
    min-width:0;
    flex:none;
  }
  .specimen-thumb span{font-size:6px;right:3px;bottom:2px}
  .specimen-inspector__nav{top:26dvh}
  .specimen-inspector__gesture{right:12px;width:auto;max-width:calc(100% - 24px)}
}

@media (max-width:380px){
  .macro-samples,.specimen-inspector__thumbs{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}
  .specimen-inspector__data{padding-left:12px;padding-right:12px}
}

@media (max-width:760px) and (max-height:640px){
  .specimen-inspector__shell{grid-template-rows:minmax(260px,46dvh) auto}
  .specimen-inspector__media{height:46dvh;min-height:260px;max-height:48dvh}
  .specimen-inspector__nav{top:23dvh}
}


/* V2.1.2 — Hero uses the final video as the opening background and keeps it more visible. */
.hero{position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(circle at 70% 34%,rgba(238,193,112,.18),transparent 28%),linear-gradient(90deg,rgba(3,9,5,.38) 0%,rgba(3,9,5,.14) 34%,rgba(3,9,5,.07) 58%,rgba(3,9,5,.24) 100%)}
.hero__grid{opacity:.22}
.hero__copy,.hero__specimen,.hero__scroll{position:relative;z-index:3}
.hero__copy::before{background:linear-gradient(180deg,transparent,rgba(2,8,4,.42) 24%,rgba(2,8,4,.76) 58%,rgba(2,8,4,.92));}
@media (max-width: 720px){
  .hero::before{background:radial-gradient(circle at 58% 24%,rgba(238,193,112,.16),transparent 34%),linear-gradient(180deg,rgba(2,8,4,.08) 0%,rgba(2,8,4,.16) 22%,rgba(2,8,4,.34) 58%,rgba(2,8,4,.72) 100%)}
  .hero__copy::before{left:-16px;right:-16px;bottom:-30px;height:112%;background:linear-gradient(180deg,transparent,rgba(2,8,4,.34) 20%,rgba(2,8,4,.68) 54%,rgba(2,8,4,.9))}
  .hero__specimen{opacity:.78}
}


/* V2.1.3 — stacking repair: fixed video/canvas must sit above the document background. */
.scene-stage{z-index:0;pointer-events:none}
.observatory-canvas{z-index:0}
main{position:relative;z-index:2}
.topbar,.chapter-rail,.scroll-meter{isolation:isolate}
.entry{background:rgba(2,7,4,.34)}
.entry__shade{background:linear-gradient(90deg,rgba(2,7,4,.58),transparent 34%,transparent 66%,rgba(2,7,4,.58)),linear-gradient(180deg,rgba(2,7,4,.34),transparent 28%,rgba(2,7,4,.58));backdrop-filter:blur(1px)}
.scene-layer video{filter:saturate(1.16) contrast(1.06) brightness(.82)}
.scene-stage__grade{background:linear-gradient(90deg,rgba(2,10,5,.54) 0%,rgba(2,12,6,.22) 38%,rgba(5,18,9,.08) 66%,rgba(2,10,5,.32) 100%),linear-gradient(180deg,rgba(2,10,5,.18),transparent 38%,rgba(2,10,5,.46));}
.scene-stage__vignette{box-shadow:inset 0 0 150px 38px rgba(0,0,0,.42);background:radial-gradient(circle at 50% 42%,transparent 24%,rgba(3,10,5,.15) 74%,rgba(2,6,3,.52) 100%)}
@media (max-width:720px){
  .scene-layer video{filter:saturate(1.18) contrast(1.05) brightness(.8)}
  .scene-stage__grade{background:linear-gradient(180deg,rgba(2,9,4,.2) 0%,rgba(2,10,5,.08) 29%,rgba(2,10,5,.25) 64%,rgba(2,9,4,.62) 100%),linear-gradient(90deg,rgba(2,9,4,.18),transparent 48%,rgba(2,9,4,.08))}
  .scene-stage__vignette{box-shadow:inset 0 0 70px 12px rgba(0,0,0,.34)}
}


/* V2.2.0 — five uploaded videos as one continuous scroll film. */
:root{--media-saturation:1.10;--scene-fade:1.55s}
.scene-stage{z-index:0;background:#06110c;contain:paint}
.scene-layer{inset:-1.5%;opacity:0;transform:scale(1.025);transition:opacity var(--scene-fade) cubic-bezier(.22,.61,.36,1),transform 9s linear;will-change:opacity,transform;backface-visibility:hidden}
.scene-layer.is-active{opacity:1;transform:scale(1.075)}
.scene-layer video{width:100%;height:100%;object-fit:cover;object-position:center center;filter:saturate(var(--media-saturation)) contrast(1.025) brightness(1.01);opacity:1;transform:translateZ(0);background:#06110c}
.scene-layer:nth-child(2) video{object-position:50% 48%}
.scene-layer:nth-child(3) video{object-position:52% 50%}
.scene-layer:nth-child(4) video{object-position:48% 50%}
.scene-layer:nth-child(5) video{object-position:54% 48%}
.scene-stage__grade{background:linear-gradient(90deg,rgba(2,10,5,.09),rgba(2,10,5,.025) 45%,rgba(2,10,5,.06)),linear-gradient(180deg,rgba(2,10,5,.04),transparent 45%,rgba(2,10,5,.09));mix-blend-mode:normal}
.scene-stage__vignette{box-shadow:inset 0 0 90px 12px rgba(0,0,0,.10);background:radial-gradient(circle at 50% 44%,transparent 42%,rgba(2,6,3,.08) 100%)}
.scene-stage__depth{opacity:.34}
.scene-stage__transition{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 45%,rgba(255,238,181,.07),transparent 38%),linear-gradient(180deg,transparent,rgba(14,43,22,.08));mix-blend-mode:screen}
.is-scene-transitioning .scene-stage__transition{animation:sceneVeil 1.45s cubic-bezier(.22,.61,.36,1)}
@keyframes sceneVeil{0%{opacity:0}35%{opacity:1}100%{opacity:0}}
.entry{background:rgba(2,7,4,.08)}
.entry__shade{background:linear-gradient(90deg,rgba(2,7,4,.10),transparent 32%,transparent 68%,rgba(2,7,4,.10)),linear-gradient(180deg,rgba(2,7,4,.08),transparent 34%,rgba(2,7,4,.10));backdrop-filter:none}
.hero::before{background:radial-gradient(circle at 70% 34%,rgba(238,193,112,.09),transparent 28%),linear-gradient(90deg,rgba(3,9,5,.10),rgba(3,9,5,.025) 42%,rgba(3,9,5,.05));}
.hero__copy::before{display:none!important}
.hero__copy{text-shadow:0 2px 18px rgba(0,0,0,.82),0 1px 3px rgba(0,0,0,.92)}
.section-film{opacity:.12}
.section-film span{background:radial-gradient(ellipse 72% 48% at 70% 32%,rgba(144,210,131,.10),transparent 68%),linear-gradient(90deg,rgba(6,17,10,.08),transparent 60%,rgba(6,17,10,.06))}
.archive-card img,.macro-lab img,.portrait-card img,.specimen-frame img,.method__portrait img,.specimen-inspector img{filter:saturate(var(--media-saturation)) contrast(1.015)}

@media (max-width:720px){
  .scene-layer video{object-position:center center;filter:saturate(var(--media-saturation)) contrast(1.025) brightness(1.01)}
  .scene-layer:nth-child(2) video{object-position:50% 50%}
  .scene-layer:nth-child(3) video{object-position:52% 50%}
  .scene-layer:nth-child(4) video{object-position:48% 50%}
  .scene-layer:nth-child(5) video{object-position:54% 50%}
  .scene-stage__grade{background:linear-gradient(180deg,rgba(2,9,4,.06),transparent 38%,rgba(2,9,4,.10)),linear-gradient(90deg,rgba(2,9,4,.05),transparent 54%,rgba(2,9,4,.04))}
  .scene-stage__vignette{box-shadow:inset 0 0 54px 8px rgba(0,0,0,.09);background:radial-gradient(circle at 50% 42%,transparent 45%,rgba(2,6,3,.07) 100%)}
  .hero::before{background:linear-gradient(180deg,rgba(2,8,4,.04),transparent 40%,rgba(2,8,4,.10))}
  .hero__copy{text-shadow:0 2px 15px rgba(0,0,0,.9),0 1px 3px #000}
}

@media (prefers-reduced-motion:reduce){
  .scene-layer{transition:opacity .8s ease!important;transform:none!important}
  .scene-layer video{animation:none!important}
}


/* V2.2.1 — stable mobile magnifier: scroll-safe long press + opposite-side dock. */
.macro-lab__viewport,.specimen-inspector__media{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.macro-lens,.inspector-lens{
  will-change:opacity,transform,background-position;
  contain:layout paint style;
}
@media (pointer:coarse), (max-width:760px){
  .macro-lab__viewport,.specimen-inspector__media{
    touch-action:pan-y pinch-zoom;
    cursor:default;
  }
  .macro-lab__viewport.is-lens-active,.specimen-inspector__media.is-lens-active{
    touch-action:none;
  }
  .macro-lens,.inspector-lens{
    width:clamp(132px,37vw,152px);
    z-index:10;
    border-width:2px;
    box-shadow:0 0 0 6px rgba(4,14,8,.48),0 18px 44px rgba(0,0,0,.56),inset 0 0 26px rgba(243,215,131,.14);
    transition:opacity .14s ease,transform .18s cubic-bezier(.22,.61,.36,1);
  }
  .macro-touch-target{
    width:26px;
    height:26px;
    z-index:11;
    box-shadow:0 0 0 4px rgba(5,16,9,.38),0 0 18px rgba(243,215,131,.42);
  }
  .macro-touch-target i::before{left:11px;top:11px}
  .macro-reticle,.macro-scan,.specimen-inspector__reticle,.specimen-inspector__scan{pointer-events:none}
  .macro-lab__hint::after{content:"";display:none}
}


/* V2.2.2 — visible lens guidance for visitors */
.lens-tip-badge{position:absolute;z-index:8;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid rgba(243,215,131,.36);background:rgba(5,16,9,.68);backdrop-filter:blur(10px);color:var(--ivory);font-size:10px;line-height:1.2;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;box-shadow:0 10px 26px rgba(0,0,0,.28);pointer-events:none}
.lens-tip-badge--inspector{left:18px;bottom:18px}
@media (max-width: 720px){
  .lens-tip-badge{left:10px;right:10px;bottom:10px;justify-content:center;padding:10px 12px;font-size:9px;letter-spacing:.06em}
  .lens-tip-badge--inspector{left:12px;right:12px;bottom:12px}
}


/* V2.2.3 — right-side rail scaling / overlap fix */
/* Keep the rail compact on touch and narrow screens so labels never collide with content. */
@media (max-width: 1200px), (max-height: 860px), (pointer: coarse){
  .chapter-rail{right:8px;gap:10px}
  .chapter-rail::before{right:4px;top:8px;bottom:8px}
  .chapter-rail a{grid-template-columns:20px 0;gap:0;min-height:22px;font-size:8px}
  .chapter-rail a em{display:none !important}
  .chapter-rail a::after{right:0;width:8px;height:8px}
}
/* On small phones / embedded browsers fully hide the rail to avoid right-edge overlap. */
@media (max-width: 900px), (max-height: 760px){
  .chapter-rail{display:none !important}
}
/* Give mobile sticky archive toolbar a touch more clearance so nothing fights near the right edge. */
@media (max-width:760px){
  .archive-toolbar{padding-right:10px}
}


/* V2.2.4 — definitive desktop chapter-rail overlap repair.
   Label, number and dot now occupy separate grid columns. */
@media (min-width:1201px) and (min-height:761px) and (pointer:fine){
  .chapter-rail{
    right:clamp(18px,2vw,34px);
    width:176px;
    gap:12px;
  }
  .chapter-rail::before{right:5px}
  .chapter-rail a{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) 26px 11px;
    align-items:center;
    column-gap:9px;
    min-height:25px;
  }
  .chapter-rail a em{
    position:static;
    grid-column:1;
    grid-row:1;
    justify-self:end;
    max-width:112px;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:8px;
    line-height:1;
    padding:6px 8px;
    border:1px solid transparent;
    border-radius:999px;
    background:transparent;
    opacity:0;
    transform:translateX(6px);
  }
  .chapter-rail a span{
    grid-column:2;
    grid-row:1;
    justify-self:end;
    width:26px;
    text-align:right;
  }
  .chapter-rail a::after{
    position:static;
    grid-column:3;
    grid-row:1;
    justify-self:center;
    right:auto;
  }
  .chapter-rail a:hover em,.chapter-rail a.is-active em{
    opacity:1;
    transform:none;
    border-color:rgba(243,215,131,.22);
    background:rgba(4,12,7,.72);
    backdrop-filter:blur(10px);
  }
}
/* On common 1366px laptop displays, reserve enough right-side breathing room. */
@media (min-width:1201px) and (max-width:1450px){
  .chapter-rail{right:12px;width:164px}
  .chapter-rail a em{max-width:102px;font-size:7px;padding:5px 7px}
}


/* Final V2.2.4 desktop guarantee: the side rail never renders text labels.
   Section names remain available via title/aria-label and the top status. */
.chapter-rail{width:48px;right:clamp(10px,1.25vw,22px)}
.chapter-rail a{width:48px;display:grid;grid-template-columns:28px 12px;column-gap:8px;align-items:center}
.chapter-rail a span{grid-column:1;justify-self:end;width:28px;text-align:right}
.chapter-rail a em{display:none !important}
.chapter-rail a::after{position:static;grid-column:2;justify-self:center;right:auto}
.chapter-rail::before{right:5px}


/* ========================================================================== 
   V3.0.0 — Adaptive Art Direction / Three Color Worlds / Spatial Slide System
   Desktop, tablet and mobile use separate choreography rather than one scaled layout.
   ========================================================================== */

:root{
  color-scheme:dark;
  --theme-glow:rgba(112,169,109,.24);
  --theme-surface:rgba(4,12,7,.70);
  --theme-surface-strong:rgba(4,11,7,.92);
  --theme-text:var(--ivory);
  --theme-muted:rgba(243,238,223,.68);
  --theme-line:rgba(234,209,139,.22);
  --theme-accent:var(--brass-bright);
  --theme-accent-soft:var(--chlorophyll);
  --device-gutter:clamp(28px,7vw,118px);
  --topbar-height:82px;
}
html[data-theme="forest"]{
  color-scheme:dark;
  --ink:#040906;--ink-soft:#07130d;--forest:#0c2b1b;--forest-bright:#17472d;
  --chlorophyll:#70a96d;--sage:#a5b99b;--ivory:#f3eedf;--paper:#d9d0ba;
  --brass:#bda66a;--brass-bright:#ead18b;--rose:#c97e88;
  --line:rgba(234,209,139,.22);--line-soft:rgba(243,238,223,.12);
  --glass:rgba(5,14,9,.64);--glass-strong:rgba(4,9,6,.84);
  --theme-glow:rgba(112,169,109,.24);--theme-surface:rgba(4,12,7,.70);--theme-surface-strong:rgba(4,11,7,.94);
  --theme-muted:rgba(243,238,223,.68);--theme-line:rgba(234,209,139,.22);
}
html[data-theme="moon"]{
  color-scheme:dark;
  --ink:#050812;--ink-soft:#091321;--forest:#102c43;--forest-bright:#1a4f6b;
  --chlorophyll:#74abc5;--sage:#a9c7d1;--ivory:#f3f2ed;--paper:#d5dae1;
  --brass:#9caed0;--brass-bright:#d8e6ff;--rose:#a68bc3;
  --line:rgba(216,230,255,.23);--line-soft:rgba(233,241,255,.12);
  --glass:rgba(7,13,28,.66);--glass-strong:rgba(5,8,18,.88);
  --theme-glow:rgba(86,160,202,.28);--theme-surface:rgba(6,13,28,.72);--theme-surface-strong:rgba(5,9,20,.95);
  --theme-muted:rgba(235,242,255,.70);--theme-line:rgba(216,230,255,.22);
}
html[data-theme="ivory"]{
  color-scheme:light;
  --ink:#eee6d3;--ink-soft:#e4dac0;--forest:#b7c9b6;--forest-bright:#6e9077;
  --chlorophyll:#5f846d;--sage:#526b5b;--ivory:#17271f;--paper:#394a40;
  --brass:#916629;--brass-bright:#ad741f;--rose:#9c5964;
  --line:rgba(95,75,39,.26);--line-soft:rgba(31,47,38,.14);
  --glass:rgba(245,238,220,.72);--glass-strong:rgba(238,229,207,.94);
  --shadow:0 30px 80px rgba(45,35,20,.18);
  --theme-glow:rgba(125,157,126,.25);--theme-surface:rgba(244,237,219,.74);--theme-surface-strong:rgba(239,230,207,.96);
  --theme-muted:rgba(23,39,31,.70);--theme-line:rgba(95,75,39,.24);
}

html,body,.topbar,.entry,.chapter,.archive,.finale,.footer,.macro-lab__data,.specimen-inspector__data,
.theme-switcher,.sound-button,.instagram-link,.button,.portrait-card,.archive-card,.featured-study{
  transition:background-color .55s var(--ease),background .55s var(--ease),border-color .55s var(--ease),color .55s var(--ease),box-shadow .55s var(--ease),filter .55s var(--ease);
}
body::after{content:"";position:fixed;z-index:15000;inset:0;pointer-events:none;background:var(--theme-accent);opacity:0;mix-blend-mode:soft-light}
body.is-theme-changing::after{animation:themeFlash .62s var(--ease)}
@keyframes themeFlash{0%{opacity:0}38%{opacity:.12}100%{opacity:0}}

/* Theme selector */
.theme-switcher{display:flex;align-items:center;gap:5px;height:42px;padding:5px;border:1px solid var(--line-soft);background:var(--theme-surface);backdrop-filter:blur(16px)}
.theme-switcher__label{padding:0 7px 0 5px;color:var(--theme-muted);font-size:7px;letter-spacing:.14em;text-transform:uppercase}
.theme-choice{position:relative;display:flex;align-items:center;gap:7px;height:30px;padding:0 9px;border:1px solid transparent;background:transparent;color:var(--theme-muted);cursor:pointer;font-size:7px;letter-spacing:.1em;text-transform:uppercase;transition:.25s}
.theme-choice i{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.22),0 0 12px rgba(0,0,0,.18)}
.theme-choice[data-theme-value="forest"] i{background:linear-gradient(135deg,#0d3923,#e5c77a)}
.theme-choice[data-theme-value="moon"] i{background:linear-gradient(135deg,#0d2442,#b9d8ff)}
.theme-choice[data-theme-value="ivory"] i{background:linear-gradient(135deg,#f2ead5,#927032)}
.theme-choice:hover,.theme-choice.is-active{border-color:var(--line);color:var(--ivory);background:color-mix(in srgb,var(--theme-accent) 10%,transparent)}
.theme-choice.is-active i{box-shadow:0 0 0 2px var(--theme-surface-strong),0 0 0 3px var(--theme-accent),0 0 18px color-mix(in srgb,var(--theme-accent) 45%,transparent)}

/* Global depth and progressive motion */
.scene-stage__transition{background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),color-mix(in srgb,var(--theme-accent-soft) 22%,transparent),transparent 31%),linear-gradient(180deg,transparent,color-mix(in srgb,var(--theme-accent) 9%,transparent))}
.scene-stage__depth{background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),var(--theme-glow),transparent 24%),repeating-linear-gradient(90deg,transparent 0,transparent calc(8.333vw - 1px),color-mix(in srgb,var(--theme-accent) 5%,transparent) calc(8.333vw - 1px),color-mix(in srgb,var(--theme-accent) 5%,transparent) 8.333vw)}
.chapter h2,.archive h2,.finale h2{text-wrap:balance}
.reveal:nth-child(2){transition-delay:.06s}.reveal:nth-child(3){transition-delay:.12s}
.button,.portal-button,.instagram-cta{position:relative;overflow:hidden}
.button::after,.portal-button::after,.instagram-cta::after{content:"";position:absolute;inset:-80% auto -80% -35%;width:24%;transform:rotate(18deg) translateX(-220%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transition:transform .75s var(--ease)}
.button:hover::after,.portal-button:hover::after,.instagram-cta:hover::after{transform:rotate(18deg) translateX(720%)}
.hero__specimen{animation:specimenFloat 7.5s ease-in-out infinite}
@keyframes specimenFloat{0%,100%{translate:0 0}50%{translate:0 -10px}}

/* Spatial portrait slider */
.portrait-console{position:relative;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--theme-surface-strong) 76%,transparent),color-mix(in srgb,var(--theme-surface) 60%,transparent))}
.portrait-console::before,.portrait-console::after{content:"";position:absolute;z-index:5;top:0;bottom:54px;width:min(12vw,170px);pointer-events:none}
.portrait-console::before{left:0;background:linear-gradient(90deg,var(--ink),transparent)}
.portrait-console::after{right:0;background:linear-gradient(-90deg,var(--ink),transparent)}
.portrait-track{perspective:1500px;scroll-padding-inline:25vw;padding-top:48px;padding-bottom:48px}
.portrait-card{
  --slide-scale:.86;--slide-rotate:0deg;--slide-lift:18px;--tilt-x:0deg;--tilt-y:0deg;
  opacity:.44;filter:saturate(.62) brightness(.72);transform-style:preserve-3d;
  transform:perspective(1100px) translateY(var(--slide-lift)) scale(var(--slide-scale)) rotateY(calc(var(--slide-rotate) + var(--tilt-y))) rotateX(var(--tilt-x));
  transition:transform .62s var(--ease),opacity .45s var(--ease),filter .5s var(--ease),border-color .3s,box-shadow .5s;
}
.portrait-card.is-active{--slide-scale:1;--slide-lift:0px;opacity:1;filter:saturate(1) brightness(1);border-color:color-mix(in srgb,var(--theme-accent) 58%,transparent);box-shadow:0 34px 90px rgba(0,0,0,.34),0 0 0 1px color-mix(in srgb,var(--theme-accent) 18%,transparent)}
.portrait-card.is-active .portrait-card__image img{transform:scale(1.035);filter:saturate(1.04) contrast(1.02)}
.portrait-card figcaption{transform:translateY(10px);opacity:.55;transition:.45s var(--ease)}
.portrait-card.is-active figcaption{transform:none;opacity:1}
.portrait-console__footer{position:relative;z-index:8;grid-template-columns:auto minmax(120px,1fr) auto}
.portrait-controls{display:flex;align-items:center;gap:8px}
.portrait-controls button{width:36px;height:34px;border:1px solid var(--line);background:var(--theme-surface);cursor:pointer;transition:.25s}
.portrait-controls button:hover{border-color:var(--theme-accent);background:color-mix(in srgb,var(--theme-accent) 15%,var(--theme-surface))}
.portrait-controls span{min-width:52px;text-align:center;color:var(--theme-accent);font-variant-numeric:tabular-nums}
.portrait-progress{height:1px;background:var(--line-soft);overflow:hidden}.portrait-progress i{display:block;width:14.285%;height:100%;background:linear-gradient(90deg,var(--theme-accent-soft),var(--theme-accent));box-shadow:0 0 12px var(--theme-accent);transition:width .45s var(--ease)}

/* Card motion */
.protocol-card,.archive-card,.featured-study,.macro-lab{box-shadow:0 22px 60px rgba(0,0,0,.16)}
.archive-card::after,.featured-study::after{transition:background .6s var(--ease)}
.archive-card:hover,.featured-study:hover{border-color:color-mix(in srgb,var(--theme-accent) 55%,transparent);box-shadow:0 28px 74px rgba(0,0,0,.28)}
.archive-card:hover::after,.featured-study:hover::after{background:linear-gradient(180deg,transparent 38%,color-mix(in srgb,var(--ink) 86%,transparent))}

/* True light color world */
html[data-theme="ivory"] body{background:#eee6d3;color:var(--ivory)}
html[data-theme="ivory"] .scene-layer video{filter:saturate(.82) contrast(.91) brightness(1.16)}
html[data-theme="ivory"] .scene-stage__grade{background:linear-gradient(90deg,rgba(239,230,206,.50),rgba(239,230,206,.13) 48%,rgba(239,230,206,.30)),linear-gradient(180deg,rgba(245,239,222,.24),transparent 48%,rgba(227,216,190,.40))}
html[data-theme="ivory"] .scene-stage__vignette{box-shadow:inset 0 0 100px 12px rgba(93,72,37,.08);background:radial-gradient(circle at 50% 44%,transparent 42%,rgba(235,226,202,.16) 100%)}
html[data-theme="ivory"] .grain{mix-blend-mode:multiply;opacity:.035}
html[data-theme="ivory"] .entry{background:rgba(235,226,203,.20)}
html[data-theme="ivory"] .entry__shade{background:linear-gradient(180deg,rgba(240,232,211,.08),transparent 38%,rgba(235,225,200,.32))}
html[data-theme="ivory"] .entry__copy,html[data-theme="ivory"] .hero__copy{text-shadow:0 2px 24px rgba(255,255,255,.88),0 1px 4px rgba(255,255,255,.9)}
html[data-theme="ivory"] .entry__copy>p:not(.eyebrow):not(.entry__status),
html[data-theme="ivory"] .chapter p,html[data-theme="ivory"] .archive p,html[data-theme="ivory"] .finale p,
html[data-theme="ivory"] .hero__metrics span,html[data-theme="ivory"] .chapter-code,
html[data-theme="ivory"] .portrait-card figcaption em,html[data-theme="ivory"] .footer p{color:rgba(23,39,31,.70)}
html[data-theme="ivory"] .topbar.is-scrolled{background:rgba(240,232,212,.84)}
html[data-theme="ivory"] .topbar__status,html[data-theme="ivory"] .instagram-link,html[data-theme="ivory"] .sound-button,
html[data-theme="ivory"] .portal-button,html[data-theme="ivory"] .button--ghost,html[data-theme="ivory"] .theme-switcher{background:rgba(244,237,219,.76);color:rgba(23,39,31,.82)}
html[data-theme="ivory"] .method,html[data-theme="ivory"] .portraits,html[data-theme="ivory"] .laboratory,
html[data-theme="ivory"] .archive,html[data-theme="ivory"] .finale{background:linear-gradient(180deg,rgba(239,231,210,.40),rgba(234,224,199,.78))}
html[data-theme="ivory"] .method__observatory,html[data-theme="ivory"] .portrait-console,
html[data-theme="ivory"] .macro-lab,html[data-theme="ivory"] .archive-card,html[data-theme="ivory"] .featured-study{background:rgba(232,222,197,.78)}
html[data-theme="ivory"] .macro-lab__data,html[data-theme="ivory"] .specimen-inspector__data{background:linear-gradient(145deg,rgba(244,237,219,.97),rgba(230,220,195,.98))}
html[data-theme="ivory"] .macro-lab dt,html[data-theme="ivory"] .specimen-inspector__data dt{color:rgba(23,39,31,.48)}
html[data-theme="ivory"] .macro-lab dd,html[data-theme="ivory"] .specimen-inspector__data dd,
html[data-theme="ivory"] .specimen-inspector__heading p{color:rgba(23,39,31,.82)}
html[data-theme="ivory"] .archive-toolbar{background:rgba(240,232,212,.86)}
html[data-theme="ivory"] .filter-button{color:rgba(23,39,31,.58)}
html[data-theme="ivory"] .filter-button:hover,html[data-theme="ivory"] .filter-button.is-active{color:var(--ivory);background:rgba(109,143,116,.14)}
html[data-theme="ivory"] .footer{background:#e5dac0}
html[data-theme="ivory"] .chapter-rail a::after{background:#eee6d3}

/* DESKTOP ART DIRECTION — spatial observatory */
@media (min-width:1181px){
  body[data-device-layout="desktop"]{--device-gutter:clamp(46px,7vw,118px)}
  .topbar{padding-left:var(--device-gutter);padding-right:var(--device-gutter)}
  .hero{grid-template-columns:minmax(0,1.08fr) minmax(430px,.72fr);gap:clamp(36px,5vw,88px)}
  .hero__copy{padding:24px 0}.hero__specimen{width:min(38vw,590px)}
  .method__principles{grid-template-columns:repeat(3,1fr)}
  .portrait-track{padding-inline:max(25vw,calc((100vw - 1480px)/2 + 120px))}
  .portrait-card{flex-basis:clamp(330px,30vw,470px)}
  .portrait-card--wide{flex-basis:clamp(390px,36vw,550px)}
  .portrait-card--tall{flex-basis:clamp(300px,26vw,410px)}
  .macro-lab{grid-template-columns:minmax(0,1.42fr) minmax(330px,.58fr)}
}

/* TABLET ART DIRECTION — touch exhibition */
@media (min-width:768px) and (max-width:1180px){
  :root{--device-gutter:clamp(30px,5vw,58px);--topbar-height:76px}
  .topbar{grid-template-columns:1fr auto;padding:16px var(--device-gutter);gap:14px}
  .topbar__status{display:none}.topbar__actions{gap:7px}.theme-switcher__label,.theme-choice span{display:none}.theme-choice{width:30px;padding:0;justify-content:center}
  .instagram-link span,.sound-label{display:none}.instagram-link,.sound-button{width:42px;justify-content:center;padding:0}
  .chapter-rail{left:50%;right:auto;top:auto;bottom:18px;transform:translateX(-50%);width:min(92vw,680px);display:grid!important;grid-template-columns:repeat(5,1fr);gap:4px;padding:6px;border:1px solid var(--line);background:var(--theme-surface-strong);backdrop-filter:blur(18px);border-radius:999px}
  .chapter-rail::before{display:none}.chapter-rail a{width:auto!important;grid-template-columns:auto!important;min-height:42px;place-items:center;border-radius:999px}.chapter-rail a span{grid-column:1!important;width:auto!important;justify-self:center!important}.chapter-rail a::after{display:none}.chapter-rail a em{display:block!important;position:static;opacity:1;transform:none;font-size:7px;letter-spacing:.09em}.chapter-rail a.is-active{background:color-mix(in srgb,var(--theme-accent) 16%,transparent)}
  .chapter{min-height:auto;padding:130px var(--device-gutter) 118px}.chapter::before{left:var(--device-gutter);right:var(--device-gutter)}
  .chapter h2,.archive h2,.finale h2{font-size:clamp(52px,8.4vw,82px)}
  .hero{min-height:100svh;grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);gap:10px;padding-top:132px}
  .hero__copy{align-self:center;z-index:4}.hero__lead{max-width:590px}.hero__specimen{width:48vw;max-width:470px;margin-right:-6vw;opacity:.96}
  .hero__metrics{grid-template-columns:repeat(3,1fr);gap:18px}.hero__metrics strong{font-size:29px}
  .method__observatory{height:min(70vw,620px);margin-top:42px}.method__portrait{width:52%}
  .method__principles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.protocol-card{min-height:250px;padding:26px 22px}
  .portraits{padding-left:0;padding-right:0}.portraits__head{padding-inline:var(--device-gutter)}
  .portrait-track{padding:44px 18vw 48px}.portrait-card,.portrait-card--wide,.portrait-card--tall{flex-basis:64vw;height:min(72vw,680px)}
  .portrait-console__footer{padding-inline:var(--device-gutter)}
  .macro-lab{grid-template-columns:1fr;grid-template-rows:auto auto auto;max-width:900px}
  .macro-lab__viewport{grid-row:auto;min-height:min(76vw,720px)}.macro-lab__data{min-height:360px;display:grid;grid-template-columns:1.15fr .85fr;gap:34px}.macro-lab__hint{grid-column:1/-1}
  .macro-samples{grid-template-columns:repeat(10,minmax(74px,1fr));overflow-x:auto;scroll-snap-type:x mandatory}.macro-sample{scroll-snap-align:start}
  .archive{padding:140px var(--device-gutter) 130px}.featured-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:360px}.featured-study,.featured-study--wide,.featured-study--portrait{grid-column:span 1;grid-row:span 1}.featured-study:first-child{grid-column:span 2}
  .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.archive-card,.archive-card--wide,.archive-card--tall{grid-column:auto;grid-row:auto;min-height:460px}
  .finale{padding-inline:var(--device-gutter);grid-template-columns:.7fr 1fr;min-height:85svh}
  .footer{padding-bottom:104px}
  .specimen-inspector__shell{width:94vw;height:88svh;grid-template-columns:1.1fr .9fr}.specimen-inspector__nav--next{right:calc(45% + 15px)}
}

/* MOBILE ART DIRECTION — focused swipe story */
@media (max-width:767px){
  :root{--device-gutter:18px;--topbar-height:66px}
  html{scroll-padding-top:72px}
  body{padding-bottom:74px}
  .topbar{grid-template-columns:minmax(0,1fr) auto;padding:12px 12px 9px;gap:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--theme-surface-strong) 90%,transparent),transparent)}
  .topbar.is-scrolled{background:var(--theme-surface-strong)}
  .brand{gap:7px}.brand img{width:38px;height:38px}.brand strong{font-size:13px}.brand small{font-size:6px;letter-spacing:.14em}
  .topbar__status,.instagram-link{display:none}.topbar__actions{gap:6px}
  .theme-switcher{height:38px;padding:4px;gap:2px}.theme-switcher__label,.theme-choice span{display:none}.theme-choice{width:27px;height:28px;padding:0;justify-content:center}.theme-choice i{width:11px;height:11px}
  .sound-button{width:40px;height:38px;padding:0;justify-content:center}.sound-label{display:none}
  .chapter-rail{position:fixed;z-index:110;left:10px;right:10px;top:auto;bottom:max(8px,env(safe-area-inset-bottom));transform:none;width:auto;display:grid!important;grid-template-columns:repeat(5,1fr);gap:2px;padding:5px;border:1px solid var(--line);background:var(--theme-surface-strong);backdrop-filter:blur(20px);border-radius:18px;box-shadow:0 18px 44px rgba(0,0,0,.28)}
  .chapter-rail::before{display:none}.chapter-rail a{width:auto!important;grid-template-columns:1fr!important;gap:1px;place-items:center;min-height:46px;border-radius:13px}.chapter-rail a span{grid-column:1!important;width:auto!important;justify-self:center!important;font-size:8px}.chapter-rail a em{display:block!important;position:static!important;opacity:1!important;transform:none!important;font-size:6px;letter-spacing:.08em}.chapter-rail a::after{display:none}.chapter-rail a.is-active{background:color-mix(in srgb,var(--theme-accent) 17%,transparent);color:var(--theme-accent)}
  .scroll-meter{top:auto;bottom:0;height:2px}
  .chapter{min-height:auto;padding:104px var(--device-gutter) 94px}.chapter::before{left:var(--device-gutter);right:var(--device-gutter);top:78px}
  .chapter h2,.archive h2,.finale h2{font-size:clamp(42px,13vw,61px);line-height:.96}.chapter p,.archive p,.finale p{font-size:14px;line-height:1.68}
  .chapter-code{font-size:7px;gap:8px;margin-bottom:14px}
  .hero{display:flex;flex-direction:column;min-height:100svh;padding:88px var(--device-gutter) 98px;gap:22px}
  .hero__specimen{order:1;width:100%;height:47svh;min-height:370px;aspect-ratio:auto;margin:0;animation-duration:8.5s}.specimen-frame{width:88%;height:91%}.specimen-label--a{left:0}.specimen-label--b{right:0}.specimen-label--c{left:2%}
  .hero__copy{order:2}.hero h2{font-size:clamp(44px,13.2vw,62px)}.hero__lead{margin-top:20px}.hero__actions{display:grid;grid-template-columns:1fr;gap:9px;margin-top:25px}.button{width:100%;min-height:52px}
  .hero__metrics{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:28px;padding-top:16px}.hero__metrics strong{font-size:26px}.hero__metrics span{font-size:6px;letter-spacing:.08em}.hero__scroll{display:none}
  .method__intro{max-width:none}.method__observatory{height:76svh;min-height:560px;margin:35px -4px 0}.method__portrait{left:50%;width:88%;height:74%;transform:translateX(-50%)}
  .method__datum{width:44%;padding:10px 11px}.method__datum--one{left:4%;top:7%}.method__datum--two{right:4%;top:23%}.method__datum--three{left:4%;bottom:24%}.method__datum--four{right:4%;bottom:8%}.method__datum strong{font-size:9px}.method__datum span{font-size:7px}
  .method__principles{display:flex;overflow-x:auto;gap:10px;margin-inline:calc(var(--device-gutter) * -1);padding:0 var(--device-gutter) 8px;scroll-snap-type:x mandatory;scrollbar-width:none}.method__principles::-webkit-scrollbar{display:none}.protocol-card{flex:0 0 84vw;min-height:230px;scroll-snap-align:center;padding:28px 24px}
  .portraits{padding-left:0;padding-right:0}.portraits__head{padding:0 var(--device-gutter)}.portrait-console{margin-top:35px}.portrait-console::before,.portrait-console::after{width:8vw}.portrait-track{padding:34px 8vw 38px;gap:10px}.portrait-card,.portrait-card--wide,.portrait-card--tall{flex:0 0 84vw;height:68svh;min-height:500px;--slide-rotate:0deg!important}.portrait-card{opacity:.42}.portrait-card.is-active{opacity:1}.portrait-card figcaption{left:20px;right:20px;bottom:20px}.portrait-card figcaption strong{font-size:28px}
  .portrait-console__footer{height:auto;min-height:72px;padding:10px var(--device-gutter) 14px;grid-template-columns:1fr auto;gap:10px}.portrait-progress{grid-column:1/-1;grid-row:2}.portrait-console__footer>small{font-size:6px}.portrait-controls button{width:38px;height:36px}
  .laboratory__head p:last-child{max-width:none}.macro-lab{display:flex;flex-direction:column;margin-top:34px;border-radius:20px;overflow:hidden}.macro-lab__viewport{order:1;min-height:68svh;max-height:690px;grid-row:auto}.macro-lab__viewport>img{object-fit:contain}.macro-lab__data{order:2;padding:28px 22px}.macro-lab__title h3{font-size:35px}.macro-lab dl{margin-top:24px}.macro-samples{order:3;display:flex;overflow-x:auto;gap:5px;padding:7px;background:var(--theme-surface-strong);scroll-snap-type:x mandatory}.macro-sample{flex:0 0 76px;scroll-snap-align:start;border-radius:8px}.macro-lab__hint{font-size:7px!important}
  .archive{padding:112px var(--device-gutter) 100px}.archive__instruction{font-size:8px!important;line-height:1.5}.featured-grid{display:flex;overflow-x:auto;gap:10px;margin:38px calc(var(--device-gutter) * -1) 0;padding:0 var(--device-gutter) 12px;scroll-snap-type:x mandatory;scrollbar-width:none}.featured-grid::-webkit-scrollbar{display:none}.featured-study,.featured-study--wide,.featured-study--portrait{flex:0 0 86vw;height:64svh;min-height:470px;grid-column:auto;grid-row:auto;scroll-snap-align:center;border-radius:18px}.featured-study figcaption{left:17px;right:17px}
  .archive-toolbar{top:70px;margin:50px 0 20px;width:100%;border-radius:15px;padding:7px}.filter-button{flex:0 0 auto;padding:10px 12px;font-size:8px}
  .archive-grid{display:block}.archive-card,.archive-card--wide,.archive-card--tall{min-height:0;height:auto;margin-bottom:16px;border-radius:18px;overflow:hidden}.archive-card__image{height:auto;aspect-ratio:4/5}.archive-card:nth-child(3n) .archive-card__image{aspect-ratio:1}.archive-card:nth-child(4n) .archive-card__image{aspect-ratio:16/11}.archive-card figcaption{position:relative;inset:auto;min-height:78px;background:var(--theme-surface-strong);padding:15px 16px;grid-template-columns:auto 1fr auto}.archive-card::before,.featured-study::before{opacity:1;transform:none;font-size:6px;padding:7px 8px}
  .finale{display:flex;flex-direction:column;min-height:auto;padding:112px var(--device-gutter) 100px;gap:34px}.finale__portrait{width:76vw;max-width:390px}.finale__copy{text-align:center}.finale__copy .eyebrow{justify-content:center}.instagram-cta{width:100%}
  .footer{padding:34px var(--device-gutter) 98px;display:grid;gap:20px;text-align:center}.footer__brand{justify-content:center}.footer>div{justify-content:center}
  .specimen-inspector{padding:0;align-items:end}.specimen-inspector__backdrop{backdrop-filter:blur(12px)}.specimen-inspector__shell{width:100%;height:94dvh;max-height:none;grid-template-columns:1fr;grid-template-rows:minmax(48%,1fr) minmax(0,.82fr);border-radius:24px 24px 0 0;border-left:0;border-right:0;border-bottom:0}.specimen-inspector__media{grid-row:1}.specimen-inspector__media>img{object-fit:contain}.specimen-inspector__data{grid-row:2;padding:26px 20px 18px;overflow-y:auto}.specimen-inspector__heading h2{font-size:35px}.specimen-inspector__heading p{font-size:12px}.specimen-inspector__data dl{margin:18px 0}.specimen-inspector__selector{margin-top:16px}.specimen-inspector__thumbs{display:flex;overflow-x:auto;gap:6px;max-height:none}.specimen-thumb{flex:0 0 62px}.specimen-inspector__close{right:12px;top:12px}.specimen-inspector__nav{top:34%;width:42px;height:50px}.specimen-inspector__nav--prev{left:10px}.specimen-inspector__nav--next{right:10px}.specimen-inspector__gesture{display:none}.lens-tip-badge--inspector{bottom:10px}
  .entry__portal{top:27%;width:min(92vw,430px)}.entry__copy{margin-top:min(39vh,350px);padding:18px 18px 26px}.entry h1{font-size:clamp(40px,12vw,56px)}.entry__actions{display:grid;grid-template-columns:1fr;width:100%}.portal-button{width:100%;min-width:0}.quiet-button{width:100%}
}

@media (max-width:900px) and (orientation:landscape){
  .hero{min-height:760px}.hero__specimen{height:520px}.chapter-rail{bottom:6px}.macro-lab__viewport{min-height:560px}.specimen-inspector__shell{height:100dvh;border-radius:0;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr}.specimen-inspector__media{grid-column:1;grid-row:1}.specimen-inspector__data{grid-column:2;grid-row:1}.specimen-inspector__nav{top:50%}.specimen-inspector__nav--next{right:calc(42.5% + 10px)}
}

@supports (animation-timeline:view()){
  @media (min-width:768px) and (prefers-reduced-motion:no-preference){
    .chapter h2,.archive h2,.finale h2{animation:headingDrift linear both;animation-timeline:view();animation-range:entry 10% cover 42%}
    @keyframes headingDrift{from{letter-spacing:-.075em;filter:blur(4px);opacity:.35}to{letter-spacing:-.045em;filter:blur(0);opacity:1}}
  }
}

@media (prefers-reduced-motion:reduce){
  .hero__specimen{animation:none}.portrait-card{transform:none!important;opacity:1;filter:none}.button::after,.portal-button::after,.instagram-cta::after{display:none}
}


/* SOURCE: observatory-v3.1.0-visual-rebuild.css */
/* ========================================================================== 
   V3.1.0 — VISUAL REBUILD
   Three clearly different color worlds, stronger contrast, readable text
   surfaces, and genuinely separate desktop / tablet / mobile compositions.
   ========================================================================== */

:root{
  --ui-bg:#030a06;
  --ui-bg-2:#08180e;
  --ui-panel:rgba(3,14,8,.86);
  --ui-panel-soft:rgba(8,24,14,.70);
  --ui-panel-solid:#07140c;
  --ui-text:#fffaf0;
  --ui-muted:#d2dbce;
  --ui-dim:#aebbad;
  --ui-accent:#f0d276;
  --ui-accent-2:#65cf8a;
  --ui-border:rgba(240,210,118,.34);
  --ui-border-soft:rgba(255,250,240,.14);
  --ui-shadow:0 32px 90px rgba(0,0,0,.46);
  --ui-copy-shadow:0 3px 28px rgba(0,0,0,.78);
  --ui-radius:2px;
  --scene-brightness:.56;
  --scene-saturation:.78;
  --scene-contrast:1.12;
  --scene-hue:0deg;
}

html[data-theme="forest"]{
  --ink:#030a06;--ink-soft:#07140c;
  --ivory:#fffaf0;--paper:#dce4d8;
  --brass:#c8aa56;--brass-bright:#f0d276;
  --chlorophyll:#65cf8a;--sage:#b8cfb8;
  --line:rgba(240,210,118,.34);--line-soft:rgba(255,250,240,.14);
  --theme-accent:#f0d276;--theme-accent-soft:#65cf8a;
  --theme-surface:rgba(3,14,8,.84);--theme-surface-strong:rgba(3,11,7,.97);
  --theme-muted:#d2dbce;--theme-line:rgba(240,210,118,.34);
  --ui-bg:#030a06;--ui-bg-2:#08180e;
  --ui-panel:rgba(3,14,8,.88);--ui-panel-soft:rgba(8,24,14,.74);--ui-panel-solid:#07140c;
  --ui-text:#fffaf0;--ui-muted:#d2dbce;--ui-dim:#aebbad;
  --ui-accent:#f0d276;--ui-accent-2:#65cf8a;
  --ui-border:rgba(240,210,118,.34);--ui-border-soft:rgba(255,250,240,.14);
  --scene-brightness:.54;--scene-saturation:.84;--scene-contrast:1.12;--scene-hue:0deg;
}

html[data-theme="moon"]{
  --ink:#020713;--ink-soft:#071225;
  --ivory:#f6f9ff;--paper:#d6e4f7;
  --forest:#0a2f58;--forest-bright:#126a9d;
  --chlorophyll:#65c9ff;--sage:#b9d9f2;
  --brass:#5b8fc4;--brass-bright:#79d2ff;
  --rose:#b49cff;
  --line:rgba(121,210,255,.42);--line-soft:rgba(230,243,255,.16);
  --glass:rgba(3,10,27,.76);--glass-strong:rgba(2,7,19,.94);
  --theme-glow:rgba(50,164,255,.36);--theme-surface:rgba(3,12,31,.86);--theme-surface-strong:rgba(2,7,20,.97);
  --theme-muted:#d3e6f8;--theme-line:rgba(121,210,255,.42);
  --theme-accent:#79d2ff;--theme-accent-soft:#a894ff;
  --ui-bg:#020713;--ui-bg-2:#07152b;
  --ui-panel:rgba(2,10,28,.90);--ui-panel-soft:rgba(7,25,52,.78);--ui-panel-solid:#061225;
  --ui-text:#f6f9ff;--ui-muted:#d3e6f8;--ui-dim:#a8bfd8;
  --ui-accent:#79d2ff;--ui-accent-2:#a894ff;
  --ui-border:rgba(121,210,255,.42);--ui-border-soft:rgba(230,243,255,.16);
  --ui-shadow:0 34px 100px rgba(0,10,38,.58);
  --scene-brightness:.43;--scene-saturation:.58;--scene-contrast:1.18;--scene-hue:158deg;
}

html[data-theme="ivory"]{
  --ink:#eee3ca;--ink-soft:#e2d3b5;
  --ivory:#17241e;--paper:#33483e;
  --forest:#b7c8b5;--forest-bright:#56866c;
  --chlorophyll:#387c5d;--sage:#496a59;
  --brass:#8e5714;--brass-bright:#a76614;
  --rose:#9d5362;
  --line:rgba(89,60,24,.36);--line-soft:rgba(23,36,30,.18);
  --glass:rgba(255,249,235,.84);--glass-strong:rgba(247,238,216,.97);
  --theme-glow:rgba(67,120,86,.22);--theme-surface:rgba(255,249,235,.88);--theme-surface-strong:rgba(247,238,216,.98);
  --theme-muted:#3f564a;--theme-line:rgba(89,60,24,.36);
  --theme-accent:#a76614;--theme-accent-soft:#387c5d;
  --ui-bg:#eee3ca;--ui-bg-2:#dfcfad;
  --ui-panel:rgba(255,249,235,.92);--ui-panel-soft:rgba(239,226,196,.88);--ui-panel-solid:#f7eed9;
  --ui-text:#17241e;--ui-muted:#3f564a;--ui-dim:#607267;
  --ui-accent:#a76614;--ui-accent-2:#387c5d;
  --ui-border:rgba(89,60,24,.36);--ui-border-soft:rgba(23,36,30,.18);
  --ui-shadow:0 30px 80px rgba(65,45,18,.20);
  --ui-copy-shadow:none;
  --scene-brightness:.90;--scene-saturation:.57;--scene-contrast:.95;--scene-hue:-8deg;
}

html,body{background:var(--ui-bg);color:var(--ui-text)}
body{font-size:16px}
body::before{content:"";position:fixed;inset:0;z-index:-4;pointer-events:none;background:linear-gradient(180deg,var(--ui-bg),var(--ui-bg-2))}

/* The whole film is graded, not only tiny accent elements. */
.scene-layer video{filter:saturate(var(--scene-saturation)) contrast(var(--scene-contrast)) brightness(var(--scene-brightness)) hue-rotate(var(--scene-hue))}
.scene-stage__grade{mix-blend-mode:normal}
html[data-theme="forest"] .scene-stage__grade{background:linear-gradient(90deg,rgba(1,10,5,.92) 0%,rgba(2,19,9,.68) 42%,rgba(2,13,7,.36) 66%,rgba(1,8,4,.76) 100%),linear-gradient(180deg,rgba(1,8,4,.42),transparent 32%,rgba(1,8,4,.86))}
html[data-theme="forest"] .scene-stage__transition{background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(70,190,112,.18),transparent 31%),linear-gradient(180deg,rgba(0,44,19,.10),rgba(3,10,6,.28))}
html[data-theme="moon"] .scene-stage__grade{background:linear-gradient(90deg,rgba(0,5,24,.96) 0%,rgba(3,19,55,.78) 43%,rgba(2,24,61,.48) 68%,rgba(0,5,24,.88) 100%),linear-gradient(180deg,rgba(11,48,104,.34),rgba(2,8,27,.18) 36%,rgba(0,4,18,.90));mix-blend-mode:multiply}
html[data-theme="moon"] .scene-stage__transition{background:linear-gradient(135deg,rgba(0,90,200,.30),rgba(79,36,174,.20) 52%,rgba(0,10,42,.36));mix-blend-mode:color}
html[data-theme="moon"] .scene-stage__depth{opacity:.72;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(36,167,255,.30),transparent 25%),repeating-linear-gradient(90deg,transparent 0,transparent calc(8.333vw - 1px),rgba(121,210,255,.065) calc(8.333vw - 1px),rgba(121,210,255,.065) 8.333vw)}
html[data-theme="moon"] .scene-stage__vignette{box-shadow:inset 0 0 240px 80px rgba(0,3,19,.82);background:radial-gradient(circle at 58% 42%,rgba(28,103,182,.06),rgba(0,4,20,.54) 72%,rgba(0,2,13,.92) 100%)}
html[data-theme="ivory"] .scene-stage__grade{background:linear-gradient(90deg,rgba(246,237,214,.84) 0%,rgba(247,239,220,.54) 44%,rgba(240,229,201,.36) 68%,rgba(238,226,196,.72) 100%),linear-gradient(180deg,rgba(255,249,236,.36),rgba(245,234,209,.10) 42%,rgba(229,214,182,.56));mix-blend-mode:screen}
html[data-theme="ivory"] .scene-stage__transition{background:linear-gradient(135deg,rgba(255,246,222,.42),rgba(109,147,118,.12),rgba(196,150,76,.10));mix-blend-mode:soft-light}
html[data-theme="ivory"] .scene-stage__depth{opacity:.38}
html[data-theme="ivory"] .scene-stage__vignette{box-shadow:inset 0 0 150px 24px rgba(85,58,22,.12);background:radial-gradient(circle at 55% 42%,transparent 30%,rgba(226,210,177,.18) 100%)}

/* Strong readable global type system. */
.chapter p,.archive p,.finale p,.entry__copy>p:not(.eyebrow):not(.entry__status){color:var(--ui-muted);font-size:clamp(15px,1.2vw,18px);line-height:1.72;text-shadow:var(--ui-copy-shadow)}
.chapter h2,.archive h2,.finale h2,.entry h1{color:var(--ui-text);text-shadow:var(--ui-copy-shadow)}
.chapter h2 em,.archive h2 em,.finale h2 em,.entry h1 em{color:var(--ui-accent)}
.chapter-code,.eyebrow{color:var(--ui-accent);text-shadow:0 2px 18px rgba(0,0,0,.45)}
.chapter-code{font-size:10px;color:var(--ui-muted)}
.chapter-code span{color:var(--ui-accent);border-color:var(--ui-border)}

/* Header is always readable and no longer disappears into the film. */
.topbar{padding-top:max(14px,env(safe-area-inset-top));background:linear-gradient(180deg,color-mix(in srgb,var(--ui-panel-solid) 92%,transparent),color-mix(in srgb,var(--ui-panel-solid) 44%,transparent) 72%,transparent);border-bottom:1px solid transparent}
.topbar.is-scrolled{background:color-mix(in srgb,var(--ui-panel-solid) 94%,transparent);border-color:var(--ui-border-soft);box-shadow:0 16px 42px rgba(0,0,0,.16)}
.brand strong{color:var(--ui-text);text-shadow:0 2px 14px rgba(0,0,0,.55)}
.brand small{color:var(--ui-accent)}
.topbar__status,.instagram-link,.sound-button,.theme-switcher{border-color:var(--ui-border-soft);background:color-mix(in srgb,var(--ui-panel) 92%,transparent);color:var(--ui-muted);box-shadow:0 10px 30px rgba(0,0,0,.16)}
.topbar__status span,.topbar__status small{color:var(--ui-muted)}
.instagram-link:hover,.sound-button:hover{border-color:var(--ui-border);background:var(--ui-panel-solid);color:var(--ui-text)}
.theme-choice{color:var(--ui-muted)}
.theme-choice:hover,.theme-choice.is-active{color:var(--ui-text);border-color:var(--ui-border);background:color-mix(in srgb,var(--ui-accent) 15%,transparent)}
.theme-choice i{width:14px;height:14px}
.theme-choice[data-theme-value="forest"] i{background:linear-gradient(135deg,#064b26 0 48%,#f0d276 52%)}
.theme-choice[data-theme-value="moon"] i{background:linear-gradient(135deg,#03123c 0 42%,#189fef 58%,#c2a7ff)}
.theme-choice[data-theme-value="ivory"] i{background:linear-gradient(135deg,#fff7e4 0 50%,#a76614 52%)}

/* Buttons have clear fill / outline separation in every world. */
.button,.portal-button,.instagram-cta{font-weight:800;letter-spacing:.13em}
.button--primary,.portal-button{background:var(--ui-accent);border-color:var(--ui-accent);color:color-mix(in srgb,var(--ui-bg) 92%,#000)}
.button--primary:hover,.portal-button:hover{background:var(--ui-text);border-color:var(--ui-text);color:var(--ui-bg)}
.button--ghost{background:var(--ui-panel);border-color:var(--ui-border);color:var(--ui-text)}
.button--ghost:hover{background:var(--ui-panel-solid);border-color:var(--ui-accent)}

/* Entry portal uses a real information card. */
.entry{background:color-mix(in srgb,var(--ui-bg) 68%,transparent)}
.entry__shade{background:linear-gradient(180deg,color-mix(in srgb,var(--ui-bg) 32%,transparent),transparent 32%,color-mix(in srgb,var(--ui-bg) 84%,transparent))}
.entry__copy{width:min(92vw,780px);padding:30px clamp(24px,4vw,48px) 36px;background:linear-gradient(145deg,color-mix(in srgb,var(--ui-panel-solid) 94%,transparent),color-mix(in srgb,var(--ui-panel) 88%,transparent));border:1px solid var(--ui-border);box-shadow:var(--ui-shadow);backdrop-filter:blur(22px)}
.entry__copy>p:not(.eyebrow):not(.entry__status){color:var(--ui-muted)}
.entry__status{color:var(--ui-dim)}
.quiet-button{color:var(--ui-muted)}
.quiet-button:hover{color:var(--ui-text)}

/* Shared solid section rhythm: the page now feels designed beyond the hero. */
.chapter,.archive,.finale{isolation:isolate}
.chapter::after,.archive::after,.finale::after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--ui-bg) 34%,transparent),color-mix(in srgb,var(--ui-bg) 76%,transparent) 74%,var(--ui-bg))}
.method,.portraits,.laboratory,.archive,.finale{background:linear-gradient(180deg,color-mix(in srgb,var(--ui-bg-2) 78%,transparent),color-mix(in srgb,var(--ui-bg) 94%,transparent))}
.method__intro,.portraits__head,.laboratory__head,.archive__head,.finale__copy{padding:clamp(24px,3.1vw,46px);background:linear-gradient(145deg,color-mix(in srgb,var(--ui-panel-solid) 94%,transparent),color-mix(in srgb,var(--ui-panel) 87%,transparent));border:1px solid var(--ui-border-soft);border-left:3px solid var(--ui-accent);box-shadow:0 26px 74px rgba(0,0,0,.20);backdrop-filter:blur(20px)}
.method__intro,.portraits__head,.laboratory__head,.archive__head{max-width:min(940px,calc(100vw - 2 * var(--device-gutter)))}

/* Hero: copy and portrait are clearly separated from the background. */
.hero{min-height:100svh;padding-bottom:clamp(90px,11vh,140px)}
.hero::before{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--ui-bg) 74%,transparent) 0%,color-mix(in srgb,var(--ui-bg) 46%,transparent) 49%,transparent 72%);pointer-events:none}
.hero__copy{max-width:850px;padding:clamp(26px,3.2vw,48px);background:linear-gradient(145deg,color-mix(in srgb,var(--ui-panel-solid) 94%,transparent),color-mix(in srgb,var(--ui-panel) 82%,transparent));border:1px solid var(--ui-border);border-left:4px solid var(--ui-accent);box-shadow:var(--ui-shadow);backdrop-filter:blur(22px)}
.hero h2{font-size:clamp(58px,5.9vw,96px);line-height:.93;letter-spacing:-.052em}
.hero__lead{max-width:650px;color:var(--ui-muted)!important;font-size:clamp(16px,1.15vw,19px)!important;line-height:1.68!important}
.hero__metrics{border-color:var(--ui-border-soft)}
.hero__metrics strong{color:var(--ui-accent)}
.hero__metrics span{color:var(--ui-dim);font-weight:700}
.hero__specimen{width:min(38vw,570px)}
.specimen-frame{width:84%;height:86%;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--ui-accent-2) 28%,transparent),color-mix(in srgb,var(--ui-panel-solid) 90%,transparent) 68%);border-color:var(--ui-border);box-shadow:var(--ui-shadow)}
.specimen-frame::after{box-shadow:inset 0 -90px 100px color-mix(in srgb,var(--ui-bg) 86%,transparent),inset 0 0 90px color-mix(in srgb,var(--ui-bg) 28%,transparent)}
.specimen-label{background:var(--ui-panel-solid);border-top-color:var(--ui-border);color:var(--ui-text);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.specimen-label span{color:var(--ui-dim)}

/* Method observatory and protocol cards. */
.method__observatory{border-color:var(--ui-border);background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--ui-accent-2) 20%,transparent),color-mix(in srgb,var(--ui-panel-solid) 94%,transparent) 58%,var(--ui-bg));box-shadow:var(--ui-shadow)}
.method__datum{background:color-mix(in srgb,var(--ui-panel-solid) 94%,transparent);border-top-color:var(--ui-border);box-shadow:0 12px 28px rgba(0,0,0,.20)}
.method__datum small{color:var(--ui-accent)}
.method__datum strong{color:var(--ui-text)}
.method__datum span{color:var(--ui-dim)}
.method__principles{background:var(--ui-border-soft)}
.protocol-card{background:var(--ui-panel-solid);border:1px solid transparent}
.protocol-card:hover{border-color:var(--ui-border);transform:translateY(-5px)}
.protocol-card>span{color:var(--ui-accent)}
.protocol-card small{color:var(--ui-accent-2)}
.protocol-card h3{color:var(--ui-text)}
.protocol-card p{color:var(--ui-muted)}

/* Portrait slider captions are no longer faint. */
.portrait-console{border-top:1px solid var(--ui-border-soft);border-bottom:1px solid var(--ui-border-soft);background:linear-gradient(180deg,var(--ui-panel-solid),color-mix(in srgb,var(--ui-bg) 92%,transparent))}
.portrait-console::before{background:linear-gradient(90deg,var(--ui-bg),transparent)}
.portrait-console::after{background:linear-gradient(-90deg,var(--ui-bg),transparent)}
.portrait-card{border-color:var(--ui-border-soft);background:var(--ui-panel-solid)}
.portrait-card figcaption{left:18px;right:18px;bottom:18px;padding:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--ui-panel-solid) 96%,transparent),color-mix(in srgb,var(--ui-panel) 88%,transparent));border:1px solid var(--ui-border-soft);box-shadow:0 16px 40px rgba(0,0,0,.28);backdrop-filter:blur(16px)}
.portrait-card figcaption small{color:var(--ui-accent)}
.portrait-card figcaption strong{color:var(--ui-text);font-size:clamp(24px,2vw,34px)}
.portrait-card figcaption em{color:var(--ui-muted);font-size:9px}
.portrait-card.is-active{border-color:var(--ui-border);box-shadow:0 34px 100px rgba(0,0,0,.38),0 0 0 1px color-mix(in srgb,var(--ui-accent) 20%,transparent)}
.portrait-console__footer{background:var(--ui-panel-solid);border-top:1px solid var(--ui-border-soft)}
.portrait-controls button{background:var(--ui-panel-soft);border-color:var(--ui-border);color:var(--ui-text)}
.portrait-controls span{color:var(--ui-accent);font-weight:800}

/* Macro laboratory. */
.macro-lab{border-color:var(--ui-border);background:var(--ui-panel-solid);box-shadow:var(--ui-shadow)}
.macro-lab__viewport{background:color-mix(in srgb,var(--ui-bg) 88%,#000);border-right-color:var(--ui-border-soft)}
.macro-lab__data,.specimen-inspector__data{background:linear-gradient(145deg,var(--ui-panel-solid),var(--ui-panel-soft));color:var(--ui-text)}
.macro-lab__title small,.specimen-inspector__heading small{color:var(--ui-accent)}
.macro-lab__title h3,.specimen-inspector__heading h2{color:var(--ui-text)}
.macro-lab dt,.specimen-inspector__data dt{color:var(--ui-dim)}
.macro-lab dd,.specimen-inspector__data dd,.specimen-inspector__heading p{color:var(--ui-text)}
.macro-lab__hint{color:var(--ui-muted)!important}
.macro-samples{background:var(--ui-panel-solid);border-top-color:var(--ui-border-soft)}
.macro-sample{border-color:var(--ui-border-soft)}
.macro-sample.is-active{border-color:var(--ui-accent);box-shadow:0 0 0 1px var(--ui-accent)}

/* Archive: text sits on controlled panels instead of raw photography. */
.archive{background:linear-gradient(180deg,var(--ui-bg-2),var(--ui-bg) 18%,var(--ui-bg))}
.archive-toolbar{background:color-mix(in srgb,var(--ui-panel-solid) 94%,transparent);border-color:var(--ui-border);box-shadow:0 18px 44px rgba(0,0,0,.20)}
.filter-button{color:var(--ui-muted);font-weight:700}
.filter-button span{color:var(--ui-accent)}
.filter-button:hover,.filter-button.is-active{color:var(--ui-text);border-color:var(--ui-border);background:color-mix(in srgb,var(--ui-accent) 15%,transparent)}
.featured-study,.archive-card{border-color:var(--ui-border-soft);background:var(--ui-panel-solid)}
.featured-study::after,.archive-card__image::after{background:linear-gradient(180deg,transparent 34%,color-mix(in srgb,var(--ui-bg) 94%,transparent) 86%)}
.featured-study figcaption,.archive-card figcaption{padding:14px 15px;background:color-mix(in srgb,var(--ui-panel-solid) 94%,transparent);border:1px solid var(--ui-border-soft);backdrop-filter:blur(12px)}
.featured-study figcaption>span,.archive-card figcaption>span{color:var(--ui-accent)}
.featured-study figcaption em,.archive-card figcaption em{color:var(--ui-accent-2)}
.featured-study figcaption strong,.archive-card figcaption strong{color:var(--ui-text)}
.featured-study figcaption small,.archive-card figcaption small{color:var(--ui-muted)}

/* Finale and footer. */
.finale{background:radial-gradient(circle at 26% 48%,color-mix(in srgb,var(--ui-accent-2) 22%,transparent),transparent 34%),var(--ui-bg)}
.finale__portrait{background:var(--ui-panel);border-color:var(--ui-border);box-shadow:var(--ui-shadow)}
.instagram-cta{background:var(--ui-panel-solid);border-color:var(--ui-border);color:var(--ui-text)}
.instagram-cta small{color:var(--ui-muted)}
.instagram-cta i{color:var(--ui-accent)}
.footer{background:var(--ui-panel-solid);border-color:var(--ui-border-soft);color:var(--ui-muted)}
.footer__brand span{color:var(--ui-text)}
.footer__brand small{color:var(--ui-accent)}
.footer a:hover{color:var(--ui-accent)}

/* Inspector remains readable in all themes. */
.specimen-inspector__shell{border-color:var(--ui-border);background:var(--ui-panel-solid);box-shadow:0 40px 120px rgba(0,0,0,.58)}
.specimen-inspector__close,.specimen-inspector__nav{background:var(--ui-panel-solid);border-color:var(--ui-border);color:var(--ui-text)}
.specimen-inspector__close:hover,.specimen-inspector__nav:hover{background:var(--ui-accent);color:var(--ui-bg)}
.specimen-inspector__media{background:color-mix(in srgb,var(--ui-bg) 92%,#000)}
.specimen-inspector__selector-head{color:var(--ui-muted)}
.specimen-inspector__selector-head strong{color:var(--ui-accent)}
.specimen-thumb{border-color:var(--ui-border-soft)}
.specimen-thumb.is-active{border-color:var(--ui-accent)}

/* Light world: image labels stay dark while surrounding interface is light. */
html[data-theme="ivory"] .hero__copy,html[data-theme="ivory"] .method__intro,html[data-theme="ivory"] .portraits__head,html[data-theme="ivory"] .laboratory__head,html[data-theme="ivory"] .archive__head,html[data-theme="ivory"] .finale__copy,html[data-theme="ivory"] .entry__copy{text-shadow:none}
html[data-theme="ivory"] .portrait-card figcaption,html[data-theme="ivory"] .featured-study figcaption,html[data-theme="ivory"] .archive-card figcaption,html[data-theme="ivory"] .specimen-label{--ui-text:#fffaf0;--ui-muted:#d7dfd9;--ui-dim:#b5c0ba;--ui-accent:#e6bd61;--ui-accent-2:#83d29c;background:rgba(15,25,20,.91);color:#fffaf0;border-color:rgba(255,255,255,.16)}
html[data-theme="ivory"] .portrait-card figcaption strong,html[data-theme="ivory"] .featured-study figcaption strong,html[data-theme="ivory"] .archive-card figcaption strong,html[data-theme="ivory"] .specimen-label strong{color:#fffaf0}
html[data-theme="ivory"] .portrait-card figcaption em,html[data-theme="ivory"] .featured-study figcaption small,html[data-theme="ivory"] .archive-card figcaption small,html[data-theme="ivory"] .specimen-label span{color:#d7dfd9}
html[data-theme="ivory"] .portrait-card figcaption small,html[data-theme="ivory"] .featured-study figcaption>span,html[data-theme="ivory"] .archive-card figcaption>span{color:#e6bd61}
html[data-theme="ivory"] .featured-study figcaption em,html[data-theme="ivory"] .archive-card figcaption em{color:#83d29c}

/* --------------------------------------------------------------------------
   DESKTOP — editorial observatory
   -------------------------------------------------------------------------- */
@media (min-width:1181px){
  .hero{grid-template-columns:minmax(580px,1.06fr) minmax(410px,.74fr);gap:clamp(38px,5vw,86px);align-items:center}
  .hero__copy{margin-top:28px}
  .hero__specimen{justify-self:center}
  .method__intro,.portraits__head,.laboratory__head,.archive__head{margin-left:0}
  .method__principles{gap:12px;background:transparent;margin-top:18px}
  .protocol-card{min-height:210px}
  .archive-grid{gap:16px}
}

/* --------------------------------------------------------------------------
   TABLET — dedicated touch exhibition, not scaled desktop
   -------------------------------------------------------------------------- */
@media (min-width:768px) and (max-width:1180px){
  :root{--device-gutter:clamp(28px,4.2vw,52px)}
  body{padding-bottom:86px}
  .topbar{grid-template-columns:minmax(0,1fr) auto;padding:14px var(--device-gutter)}
  .theme-switcher{height:46px}.theme-choice{width:34px;height:34px}
  .chapter-rail{background:var(--ui-panel-solid);border-color:var(--ui-border);box-shadow:0 20px 52px rgba(0,0,0,.30)}
  .chapter-rail a{color:var(--ui-muted)}.chapter-rail a.is-active{color:var(--ui-accent);background:color-mix(in srgb,var(--ui-accent) 18%,transparent)}
  .chapter{padding:118px var(--device-gutter) 112px}
  .hero{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(310px,.82fr);min-height:100svh;padding:112px var(--device-gutter) 120px;gap:28px;align-items:center}
  .hero::before{background:linear-gradient(90deg,color-mix(in srgb,var(--ui-bg) 58%,transparent),transparent 78%)}
  .hero__copy{order:1;padding:30px}.hero__specimen{order:2;width:100%;height:64svh;min-height:520px}
  .hero h2{font-size:clamp(52px,7vw,78px)}
  .hero__lead{font-size:16px!important}.hero__metrics{gap:18px}.hero__metrics strong{font-size:29px}
  .method__intro,.portraits__head,.laboratory__head,.archive__head{padding:34px}
  .method__observatory{height:min(72vw,690px)}
  .method__principles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:transparent}
  .protocol-card{display:block;min-height:230px;padding:24px}.protocol-card>span{display:block;margin-bottom:20px}
  .portrait-track{padding-inline:12vw}.portrait-card,.portrait-card--wide,.portrait-card--tall{flex-basis:68vw;height:min(74vw,700px)}
  .macro-lab__data{grid-template-columns:1fr;gap:0}.macro-lab__hint{grid-column:auto}
  .featured-grid{grid-auto-rows:330px}.archive-grid{gap:14px}
  .finale__copy{padding:34px}
}

@media (min-width:768px) and (max-width:900px){
  .hero{grid-template-columns:1fr;min-height:auto;padding-top:100px;gap:24px}
  .hero__specimen{order:1;height:54svh;min-height:430px;max-width:620px;justify-self:center}
  .hero__copy{order:2;max-width:none}
  .method__principles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}.protocol-card{flex:0 0 58vw;scroll-snap-align:center}
}

/* --------------------------------------------------------------------------
   MOBILE — clean swipe story with protected text and no nav overlap
   -------------------------------------------------------------------------- */
@media (max-width:767px){
  :root{--device-gutter:16px}
  body{padding-bottom:92px}
  .grain{opacity:.025}
  .topbar{min-height:62px;padding:10px 10px 8px;background:var(--ui-panel-solid);border-bottom:1px solid var(--ui-border-soft)}
  .brand img{width:39px;height:39px}.brand strong{font-size:14px}.brand small{font-size:6px}
  .theme-switcher{height:40px;background:var(--ui-panel-soft);border-color:var(--ui-border)}
  .theme-choice{width:29px;height:30px}.theme-choice i{width:13px;height:13px}
  .sound-button{height:40px;background:var(--ui-panel-soft);border-color:var(--ui-border)}
  .chapter-rail{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));padding:5px;background:var(--ui-panel-solid);border-color:var(--ui-border);box-shadow:0 16px 48px rgba(0,0,0,.42)}
  .chapter-rail a{color:var(--ui-dim);min-height:50px}.chapter-rail a.is-active{color:var(--ui-accent);background:color-mix(in srgb,var(--ui-accent) 17%,transparent)}
  .chapter{padding:94px var(--device-gutter) 118px}
  .chapter::before{top:76px}
  .hero{display:flex;min-height:auto;padding:76px var(--device-gutter) 126px;gap:16px;background:linear-gradient(180deg,transparent 0 40svh,color-mix(in srgb,var(--ui-bg) 92%,transparent) 52%,var(--ui-bg) 100%)}
  .hero::before{background:linear-gradient(180deg,transparent 0 32svh,color-mix(in srgb,var(--ui-bg) 88%,transparent) 48%,var(--ui-bg) 100%)}
  .hero__specimen{order:1;width:100%;height:43svh;min-height:330px;max-height:440px;margin:0;animation:none}
  .specimen-frame{width:79%;height:92%}.specimen-frame img{width:102%;bottom:-2%}
  .specimen-label{padding:8px 10px}.specimen-label span{font-size:5px}.specimen-label strong{font-size:7px}
  .specimen-label--a{left:2%;top:16%}.specimen-label--b{right:2%;top:62%}.specimen-label--c{left:4%;bottom:3%}
  .hero__copy{order:2;padding:24px 20px 22px;margin-top:0;border-left-width:3px;background:var(--ui-panel-solid);box-shadow:0 22px 64px rgba(0,0,0,.34);backdrop-filter:none}
  .hero h2{font-size:clamp(42px,11.8vw,56px);line-height:.97;letter-spacing:-.045em}
  .hero__lead{margin-top:18px;font-size:15px!important;line-height:1.62!important;color:var(--ui-muted)!important}
  .hero__actions{margin-top:22px}.button{min-height:50px}
  .hero__metrics{margin-top:24px;gap:7px}.hero__metrics strong{font-size:25px}.hero__metrics span{font-size:6px;line-height:1.35;color:var(--ui-dim)}
  .method__intro,.portraits__head,.laboratory__head,.archive__head,.finale__copy{padding:22px 19px;border-left-width:3px;box-shadow:0 20px 54px rgba(0,0,0,.24)}
  .chapter h2,.archive h2,.finale h2{font-size:clamp(39px,11.5vw,53px);line-height:.98}
  .chapter p,.archive p,.finale p{font-size:15px;line-height:1.64}
  .method__observatory{height:69svh;min-height:520px;margin-top:24px}.method__portrait{width:90%;height:70%}
  .method__datum{width:46%;padding:10px}.method__datum strong{font-size:10px;line-height:1.2}.method__datum span{font-size:6px}
  .method__principles{margin-top:12px}.protocol-card{flex-basis:82vw;background:var(--ui-panel-solid);border:1px solid var(--ui-border-soft)}
  .portrait-console{margin-top:22px}.portrait-track{padding:25px 7vw 30px}.portrait-card,.portrait-card--wide,.portrait-card--tall{flex-basis:86vw;height:61svh;min-height:455px;border-radius:16px;overflow:hidden}
  .portrait-card figcaption{left:12px;right:12px;bottom:12px;padding:14px}.portrait-card figcaption strong{font-size:25px}.portrait-card figcaption em{font-size:8px}
  .portrait-console__footer{padding-bottom:15px;background:var(--ui-panel-solid)}
  .macro-lab{margin-top:24px;border-radius:16px}.macro-lab__viewport{min-height:58svh;max-height:560px}.macro-lab__data{padding:24px 20px}.macro-lab__title h3{font-size:32px}
  .archive{padding-top:96px}.archive-toolbar{top:64px;margin:34px 0 18px;background:var(--ui-panel-solid)}
  .featured-grid{margin-top:25px}.featured-study,.featured-study--wide,.featured-study--portrait{height:58svh;min-height:430px}
  .featured-study figcaption,.archive-card figcaption{left:12px;right:12px;bottom:12px;padding:12px}
  .archive-card{margin-bottom:14px;border-radius:14px}.archive-card figcaption{position:absolute;min-height:0;background:rgba(10,18,14,.92)}
  .archive-card__image{position:relative}.archive-card figcaption strong{font-size:16px}
  .finale{padding-top:98px;padding-bottom:122px}.finale__portrait{width:70vw}.finale__copy{text-align:left}.finale__copy .eyebrow{justify-content:flex-start}.instagram-cta{margin-top:24px}
  .footer{padding-bottom:112px}
  .entry__portal{top:23%;width:min(88vw,370px)}
  .entry__copy{margin-top:min(37vh,315px);padding:24px 20px 26px;width:calc(100vw - 24px)}
  .entry h1{font-size:clamp(38px,11vw,50px)}
}

@media (max-width:360px){
  .brand small{display:none}.brand strong{font-size:13px}
  .hero h2{font-size:40px}.hero__lead{font-size:14px!important}
  .hero__metrics span{font-size:5px}
  .chapter-rail a em{font-size:5px!important}
}

@media (prefers-reduced-motion:reduce){
  .hero__specimen{animation:none!important}
}

/* V3.1.0 mobile placement correction: navigation lives below the header in flow,
   so it never covers paragraphs, buttons or captions. */
@media (max-width:767px){
  body{padding-bottom:0}
  .chapter-rail{position:sticky;top:62px;bottom:auto;left:auto;right:auto;z-index:95;margin:0 8px;width:calc(100% - 16px);border-radius:0 0 16px 16px;box-shadow:0 14px 34px rgba(0,0,0,.32)}
  main{margin-top:0}
  .scroll-meter{top:62px;bottom:auto}
  .hero{padding-top:34px;padding-bottom:86px}
  .footer{padding-bottom:34px}
}

/* V3.1.0 tablet placement correction: explicit grid areas and in-flow nav. */
@media (min-width:768px) and (max-width:1180px){
  body{padding-bottom:0}
  .chapter-rail{position:sticky;top:76px;bottom:auto;left:auto;right:auto;transform:none;margin:76px auto 0;width:min(92vw,680px);border-radius:0 0 22px 22px}
  .scroll-meter{top:76px}
  .hero{padding-top:42px;padding-bottom:96px}
  .hero__copy{grid-column:1;grid-row:1;order:1;align-self:center}
  .hero__specimen{grid-column:2;grid-row:1;order:2;align-self:center;margin-right:0}
  .footer{padding-bottom:32px}
}
@media (min-width:768px) and (max-width:900px){
  .hero__specimen{grid-column:1;grid-row:1}
  .hero__copy{grid-column:1;grid-row:2}
}
@media (max-width:767px){
  .chapter-rail{margin-top:62px}
}


/* SOURCE: observatory-v3.1.2-entry-lifecycle.css */
/* V3.1.2 — entry credit, entry color control, and compact responsive fit */
.entry__copy{margin-top:min(36vh,360px);scrollbar-width:none}
.entry__copy::-webkit-scrollbar{display:none}
.entry-theme{display:flex;align-items:center;justify-content:center;gap:12px;margin:20px auto 0;color:var(--ui-muted)}
.entry-theme__label{font-size:8px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
.entry-theme__choices{display:flex;align-items:center;gap:5px;padding:4px;border:1px solid var(--ui-border-soft);background:color-mix(in srgb,var(--ui-panel-solid) 76%,transparent);box-shadow:0 8px 24px rgba(0,0,0,.10);backdrop-filter:blur(14px)}
.entry-theme .theme-choice{width:auto;min-width:0;height:30px;padding:0 9px;gap:7px;border-radius:0}
.entry-theme .theme-choice i{flex:0 0 auto;width:12px;height:12px}
.entry-theme .theme-choice span{display:inline;font-size:7px;letter-spacing:.1em}
.entry__credit{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px auto 0!important;color:var(--ui-dim)!important;font-size:8px!important;line-height:1!important;letter-spacing:.16em!important;text-transform:uppercase;text-shadow:none!important}
.entry__credit::before,.entry__credit::after{content:"";width:22px;height:1px;background:var(--ui-border)}
.entry__credit strong{color:var(--ui-text);font-weight:600;letter-spacing:.12em}
html[data-theme="moon"] .entry-theme__choices{box-shadow:0 0 28px rgba(24,159,239,.14)}
html[data-theme="ivory"] .entry-theme__choices{box-shadow:0 8px 24px rgba(58,42,18,.10)}
@media (max-width:767px){
  .entry__copy{max-height:calc(100svh - 18px);overflow-y:auto;overscroll-behavior:contain;margin-top:min(35vh,286px);padding:22px 18px calc(20px + var(--safe-bottom))}
  .entry-theme{gap:9px;margin-top:16px}
  .entry-theme__label{font-size:7px;letter-spacing:.14em}
  .entry-theme__choices{gap:2px;padding:3px}
  .entry-theme .theme-choice{width:30px;height:28px;padding:0;justify-content:center}
  .entry-theme .theme-choice span{display:none}
  .entry-theme .theme-choice i{width:12px;height:12px}
  .entry__actions{margin-top:18px}
  .entry__status{margin-top:12px}
  .entry__credit{margin-top:12px!important;font-size:7px!important;letter-spacing:.13em!important;gap:6px}
  .entry__credit::before,.entry__credit::after{width:14px}
}
@media (max-width:380px),(max-height:720px){
  .entry__portal{top:20%;width:min(72vw,260px)}
  .entry__emblem{width:78px}
  .entry__copy{margin-top:min(29vh,210px);padding-top:18px;padding-bottom:16px}
  .entry h1{font-size:clamp(34px,10vw,42px)}
  .entry__copy>p:not(.eyebrow):not(.entry__status):not(.entry__credit){margin-top:12px;font-size:12px;line-height:1.48}
  .entry-theme{margin-top:12px}
  .entry__actions{margin-top:12px}
  .portal-button{height:54px}
  .quiet-button{min-height:42px}
  .entry__status{font-size:8px}
}

/* V3.1.3 PERFORMANCE LAYER — visual output preserved */
.scene-layer,.scene-stage__grade,.scene-stage__depth,.scene-stage__vignette,.scene-stage__transition{contain:layout paint style}
.archive-card,.featured-study,.portrait-card,.macro-sample,.specimen-thumb{contain:layout paint style}
.scene-layer video,.portrait-card,.macro-lab__viewport>img,.specimen-inspector__media>img{backface-visibility:hidden}
.portrait-track.is-dragging .portrait-card,.scene-layer.is-active{will-change:transform,opacity}
.macro-lens.is-active,.inspector-lens.is-active{will-change:transform,opacity,background-position}
img[loading="lazy"]{content-visibility:auto}
@media (max-width:767px){.archive-card,.featured-study{contain:layout paint style}}


/* V3.1.4 — precise press-and-hold magnifier UX + high-contrast guidance */
.macro-lab__viewport.is-lens-active .lens-tip-badge,
.specimen-inspector__media.is-lens-active .lens-tip-badge{opacity:0;transform:translateY(5px)}
.lens-tip-badge{transition:opacity .16s ease,transform .16s ease}
@media (pointer:coarse), (max-width:760px){
  .macro-lens,.inspector-lens{filter:drop-shadow(0 12px 24px rgba(0,0,0,.28))}
  .macro-touch-target.is-active{opacity:1}
}
html[data-theme="ivory"] .lens-tip-badge,
html[data-theme="ivory"] .specimen-inspector__gesture{
  color:#fff!important;
  background:rgba(12,22,17,.90)!important;
  border-color:rgba(255,255,255,.34)!important;
  text-shadow:0 1px 3px rgba(0,0,0,.82)!important;
}
html[data-theme="ivory"] .macro-lab__hint,
html[data-theme="ivory"] .archive__instruction{
  color:#fff!important;
  background:rgba(12,22,17,.92)!important;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  padding:10px 14px;
  text-shadow:0 1px 3px rgba(0,0,0,.76)!important;
}
html[data-theme="ivory"] .macro-lab__hint span,
html[data-theme="ivory"] .archive__instruction span{border-color:#fff!important;box-shadow:0 0 12px rgba(255,255,255,.58)!important}
@media (max-width:720px){
  html[data-theme="ivory"] .macro-lab__hint,
  html[data-theme="ivory"] .archive__instruction{border-radius:14px;line-height:1.55}
}
