
@font-face{font-family:'FrauncesDisp';src:url(../fonts/fraunces-disp.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:block;}
@font-face{font-family:'Fraunces';src:url(../fonts/fraunces-var.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:block;}
@font-face{font-family:'Fraunces';src:url(../fonts/fraunces-var-italic.woff2) format('woff2');font-weight:100 900;font-style:italic;font-display:block;}
@font-face{font-family:'Archivo';src:url(../fonts/archivo-var.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:block;}
:root{
  --nblk:#0A1220;--nblk2:#060A14;--navy:#112038;--creamhi:#FBF6EA;--cream:#F1E9D6;
  --gold:#C7A24E;--goldlt:#DCC07A;--goldbr:#8A6D2F;--goldink:#6F5624;--ink:#20242B;--slate:#5C6472;--dim:#9AA6B8;
  --serif:'Fraunces',Georgia,serif;--sans:'Archivo','Segoe UI',Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
h1,h2,h3,h4,.triad,.bignum,#s-hero .wordmark,#nav .wordmark{font-family:'FrauncesDisp',Georgia,serif;-webkit-text-stroke:0.32px currentColor;}
html{scroll-behavior:smooth;}
body{font-family:var(--serif);color:var(--creamhi);background:#060A14;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-optical-sizing:auto;overflow-x:hidden;}
#ground{position:fixed;inset:0;z-index:-2;background:#060A14;}
#grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E");}
#protolabel{position:fixed;right:22px;bottom:16px;z-index:70;font-family:var(--sans);font-size:9px;letter-spacing:.3em;color:rgba(154,166,184,.4);text-transform:uppercase;pointer-events:none;}
section{position:relative;}
.wrap{max-width:1500px;margin:0 auto;padding:0 6.5vw;position:relative;}
.eyebrow{font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--dim);}
.glow{position:absolute;pointer-events:none;border-radius:50%;}

/* masked reveals */
.mask{display:block;overflow:hidden;}
.mask .ln{display:block;transform:translateY(114%);transition:transform .95s cubic-bezier(.22,1,.36,1);}
.rv.in .mask:nth-of-type(1) .ln{transition-delay:.05s}.rv.in .mask:nth-of-type(2) .ln{transition-delay:.16s}
.rv.in .mask:nth-of-type(3) .ln{transition-delay:.27s}.rv.in .mask:nth-of-type(4) .ln{transition-delay:.38s}
.rv.in .mask .ln{transform:none;}
.fade{opacity:0;transform:translateY(14px);transition:opacity 1s ease .35s,transform 1s cubic-bezier(.22,1,.36,1) .35s;}
.rv.in .fade{opacity:1;transform:none;}
.hair{height:1px;background:linear-gradient(90deg,rgba(199,162,78,.15),var(--gold));transform:scaleX(0);transform-origin:left;transition:transform 1.2s ease-out .5s;}
.rv.in .hair{transform:scaleX(1);}

/* nav */
#nav{position:fixed;top:0;left:0;right:0;height:84px;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;border-bottom:1px solid rgba(241,233,214,.08);transition:background .8s ease,border-color .8s ease;}
#nav .brand{display:flex;align-items:center;gap:16px;text-decoration:none;}
#nav .mark{width:21px;height:33px;background:var(--goldlt);-webkit-mask:url(../img/mark-goldlt.webp) center/contain no-repeat;mask:url(../img/mark-goldlt.webp) center/contain no-repeat;transition:background .8s ease;}
#nav .wordmark{font-family:var(--serif);font-weight:400;font-size:18px;letter-spacing:.34em;color:var(--cream);text-transform:uppercase;transition:color .8s ease;}
#nav .links{display:flex;gap:40px;}
#nav .links a{font-family:var(--sans);font-weight:400;font-size:11px;letter-spacing:.26em;color:rgba(241,233,214,.55);text-transform:uppercase;text-decoration:none;cursor:pointer;transition:color .4s ease;}
#nav .links a:hover{color:var(--goldlt);}
body.day #nav{background:rgba(241,233,214,.92);border-color:rgba(138,109,47,.25);backdrop-filter:blur(8px);}
body.day #nav .wordmark{color:var(--ink);}
body.day #nav .mark{background:var(--ink);}
body.day #nav .links a{color:rgba(32,36,43,.78);}

/* back to the top: a quiet mark in the corner once the hero is behind the reader */
#totop{position:fixed;right:28px;bottom:26px;z-index:75;display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:none;cursor:pointer;font-family:var(--sans);font-weight:400;font-size:9.5px;letter-spacing:.32em;text-transform:uppercase;color:rgba(241,233,214,.72);opacity:0;transition:opacity .6s ease,color .8s ease;}
#totop.show{opacity:1;}
#totop .tline{display:block;width:1px;height:34px;background:linear-gradient(180deg,var(--goldlt),rgba(199,162,78,.15));position:relative;}
#totop .tline::before{content:'';position:absolute;left:-4px;top:0;width:8px;height:8px;border-left:1px solid var(--goldlt);border-top:1px solid var(--goldlt);transform:rotate(45deg);}
#totop:hover{color:var(--creamhi);}
body.day #totop{color:rgba(32,36,43,.75);}
body.day #totop .tline{background:linear-gradient(180deg,var(--goldbr),rgba(138,109,47,.15));}
body.day #totop .tline::before{border-color:var(--goldbr);}
#totop:focus-visible{outline:2px solid var(--goldlt);outline-offset:6px;}

/* buttons */
.btn-dom{position:relative;width:440px;height:88px;border:1px solid rgba(199,162,78,.65);background:rgba(17,32,56,.55);display:flex;align-items:center;padding:0 40px 0 30px;cursor:pointer;transition:border-color .5s ease,background .5s ease;}
.btn-dom .lbl{font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--cream);transition:color .2s ease;}
.btn-dom .arr{position:absolute;right:30px;top:50%;width:48px;height:1px;background:var(--gold);transition:width .45s cubic-bezier(.22,1,.36,1),background .3s;}
.btn-dom .arr::after{content:'';position:absolute;right:0;top:-4px;border-top:1px solid var(--gold);border-right:1px solid var(--gold);width:8px;height:8px;transform:rotate(45deg);transform-origin:top right;transition:border-color .3s;}
.btn-dom:hover{border-color:var(--goldlt);background:rgba(23,41,70,.65);}
.btn-dom:hover .arr{width:76px;background:var(--goldlt);}
.btn-dom:hover .arr::after{border-color:var(--goldlt);}
.btn-dom.pressed,.btn-dom:active{background:var(--gold);border-color:var(--gold);}
.btn-dom.pressed .lbl,.btn-dom:active .lbl{color:var(--nblk2);}
.btn-dom.pressed .arr,.btn-dom:active .arr{background:var(--nblk2);}
.btn-dom.pressed .arr::after,.btn-dom:active .arr::after{border-color:var(--nblk2);}
.btn-dom.daylight{background:var(--gold);border-color:var(--goldbr);}
.btn-dom.daylight .lbl{color:var(--nblk2);}
.btn-dom.daylight .arr{background:var(--nblk2);}
.btn-dom.daylight .arr::after{border-color:var(--nblk2);}
.btn-dom.daylight:hover{background:var(--goldlt);}
.lnk{font-family:var(--sans);font-weight:400;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:rgba(241,233,214,.85);text-decoration:none;display:inline-block;padding-bottom:8px;position:relative;cursor:pointer;}
.lnk::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:40%;background:rgba(199,162,78,.7);transition:width .5s cubic-bezier(.22,1,.36,1),background .3s;}
.lnk:hover::after{width:100%;background:var(--goldlt);}
.doorway{position:relative;width:300px;height:118px;background:rgba(255,255,255,.028);display:flex;flex-direction:column;justify-content:center;padding-left:28px;cursor:pointer;transition:background .7s ease;}
.doorway::before{content:'';position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(180deg,rgba(220,192,122,.9),rgba(199,162,78,.25));}
.doorway:hover{background:rgba(220,192,122,.07);}
.doorway .lbl{font-family:var(--sans);font-weight:500;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--cream);}
.doorway .sub{font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(154,166,184,.75);margin-top:10px;}

/* hero */
#s-hero{height:100vh;min-height:760px;overflow:hidden;display:grid;grid-template-columns:14vw 440px 1fr auto 300px;grid-template-rows:auto auto;align-content:end;padding:0 4.5vw max(calc(14vh - 103px),24px) 8vw;}
#s-hero .lamp{right:-22vw;top:-38vh;width:70vw;height:70vw;background:radial-gradient(circle,rgba(220,192,122,.10) 0%,rgba(220,192,122,.035) 34%,transparent 62%);}
#heroimg{position:absolute;right:-19vw;top:-4vh;height:108vh;z-index:0;opacity:0;filter:blur(9px) brightness(.55);transition:opacity 1.6s ease .8s,filter 1.9s ease .8s;}
#s-hero.in #heroimg{opacity:1;filter:none;}
#s-hero .eyebrow{position:absolute;left:8vw;top:17vh;z-index:2;}
#s-hero h1{position:absolute;left:7.8vw;top:21.5vh;z-index:2;font-weight:365;font-size:min(clamp(64px,7.4vw,122px),calc(19.2vh - 67px),calc(15.8vh - 36px));line-height:1.02;letter-spacing:-.012em;color:var(--creamhi);}
#s-hero h1 .g{color:var(--goldlt);}
/* bottom cluster: one grid row centered on the doorway, so the composition holds at every desktop size */
#s-hero .prop{grid-column:1/4;grid-row:1;width:min(640px,max(42vw,610px));margin-bottom:12px;position:relative;z-index:2;font-weight:340;font-size:16.5px;line-height:1.62;color:rgba(154,166,184,.92);}
#s-hero .heroline{grid-column:1;grid-row:2;align-self:center;width:14vw;position:relative;z-index:2;}
#s-hero .btn-dom{grid-column:2;grid-row:2;align-self:center;margin-left:2px;position:relative;z-index:2;}
#s-hero .paths{grid-column:4;grid-row:2;align-self:center;margin-right:56px;display:flex;flex-direction:column;gap:24px;position:relative;z-index:2;}
#s-hero .doorway{grid-column:5;grid-row:2;align-self:center;position:relative;z-index:2;}

/* record */
#s-record{min-height:100vh;padding:22vh 0 16vh;}
#s-record .entry h2{font-weight:340;font-size:clamp(30px,2.9vw,46px);color:var(--creamhi);}
#s-record .entry p{margin-top:14px;font-weight:300;font-size:18px;line-height:1.6;color:rgba(154,166,184,.92);max-width:1100px;}
#s-record .sep{width:320px;margin:64px 0;}
#s-record .conf{margin-top:90px;font-style:italic;font-weight:300;font-size:17px;color:rgba(154,166,184,.75);}

/* selector */
#s-selector{min-height:100vh;padding:16vh 0 10vh;overflow:hidden;}
#selglow{position:absolute;inset:0;background:radial-gradient(circle at 42% 40%,rgba(30,52,88,.9) 0%,rgba(17,32,56,.35) 45%,transparent 70%);opacity:0;transition:opacity 1.4s ease;pointer-events:none;}
#selprogbase{position:absolute;left:0;top:0;width:100%;height:1px;background:rgba(241,233,214,.07);}
#selprog{position:absolute;left:0;top:0;height:1px;width:0;background:var(--gold);transition:width 1s cubic-bezier(.22,1,.36,1);}
#selsteps{position:relative;height:66vh;min-height:520px;margin-top:6vh;}
.step{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility 0s linear .4s;}
.step.on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .7s ease .18s,visibility 0s;}
.step h2{font-weight:330;font-size:clamp(52px,5.4vw,88px);color:var(--creamhi);letter-spacing:-.01em;}
.answers{margin-top:5.5vh;display:flex;flex-direction:column;gap:2px;}
.ans{background:none;border:none;text-align:left;font-family:var(--serif);font-weight:300;font-size:clamp(20px,1.65vw,26px);color:rgba(241,233,214,.55);padding:14px 0 14px 0;cursor:pointer;position:relative;transition:color .45s ease,padding-left .45s cubic-bezier(.22,1,.36,1);}
.ans::before{content:'';position:absolute;left:0;top:50%;width:0;height:1px;background:var(--goldlt);transition:width .45s cubic-bezier(.22,1,.36,1);}
.ans:hover{color:var(--creamhi);padding-left:44px;}
.ans:hover::before{width:26px;}
.selnote{position:absolute;left:0;bottom:0;font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:rgba(154,166,184,.8);}
#dawn{position:absolute;left:50%;top:44%;width:120vw;height:120vw;transform:translate(-50%,-50%) scale(.55);background:radial-gradient(circle,rgba(30,52,88,.95) 0%,rgba(17,32,56,.4) 42%,transparent 66%);opacity:0;transition:opacity 1.6s ease,transform 2s cubic-bezier(.22,1,.36,1);pointer-events:none;}
.step.on #dawn{opacity:1;transform:translate(-50%,-50%) scale(1);}
#revmark{position:absolute;left:50%;top:6%;transform:translateX(-50%);height:260px;opacity:0;transition:opacity 2.2s ease .6s;}
.step.on #revmark{opacity:.05;}
#reveal .rhead{text-align:center;position:relative;z-index:2;}
#reveal .rhead .eyebrow{color:rgba(154,166,184,.85);}
#reveal .rhead h2{font-size:clamp(40px,3.6vw,62px);margin-top:14px;}
#reveal .micro{margin-top:12px;font-style:italic;font-weight:300;font-size:15.5px;color:rgba(154,166,184,.75);}
#revgrid{position:relative;z-index:2;margin-top:6vh;display:flex;justify-content:center;gap:9vw;}
#revprimary{width:560px;}
#revprimary .lab{font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--goldlt);}
#revprimary h3{margin-top:18px;font-weight:360;font-size:clamp(38px,3.2vw,52px);line-height:1.1;color:var(--creamhi);}
#revprimary .terr{margin-top:12px;font-family:var(--sans);font-weight:400;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:rgba(154,166,184,.8);}
#revprimary p{margin-top:16px;font-weight:300;font-size:17.5px;line-height:1.6;color:rgba(154,166,184,.95);max-width:480px;}
#revprimary .go{margin-top:30px;display:inline-block;font-family:var(--sans);font-weight:500;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);border:1px solid rgba(199,162,78,.6);padding:19px 32px;cursor:pointer;transition:background .4s,color .4s;}
#revprimary .go:hover{background:var(--gold);color:var(--nblk2);}
#revalso{width:300px;padding-top:8px;}
#revalso .lab{font-family:var(--sans);font-weight:400;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(154,166,184,.8);}
#revalso .e{margin-top:28px;}
#revalso .e h4{font-weight:340;font-size:22px;line-height:1.25;color:rgba(251,246,234,.88);}
#revalso .e .terr{margin-top:6px;font-family:var(--sans);font-weight:400;font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:rgba(154,166,184,.85);}
#revalso .e .alink{display:inline-block;margin-top:9px;font-family:var(--sans);font-weight:400;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(241,233,214,.75);border-bottom:1px solid rgba(199,162,78,.5);padding-bottom:4px;cursor:pointer;text-decoration:none;}
#revprimary .rsub{margin-top:10px;font-style:italic;font-weight:300;font-size:16px;color:rgba(220,192,122,.85);}
#revprimary .fmt{margin-top:22px;padding-left:16px;border-left:1px solid rgba(199,162,78,.45);display:flex;flex-direction:column;gap:6px;}
#revprimary .fmt .fn{font-weight:340;font-size:17px;color:rgba(251,246,234,.92);}
#revprimary .fmt .ff{font-family:var(--sans);font-weight:400;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);}
#revprimary .fmt .fnote{font-style:italic;font-weight:300;font-size:14.5px;color:rgba(154,166,184,.85);}
#revprimary .echo{margin-top:18px;font-family:var(--sans);font-weight:300;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(154,166,184,.8);}
button.btn-dom,button.doorway,#revprimary .go{font-family:var(--sans);text-align:left;background-clip:padding-box;}
#revprimary .go{background:none;}
button.doorway{border:none;}
button.doorway .sub{display:block;}
/* territories: STRUCTURE, one strip of six panels */
#s-territories{min-height:100vh;padding:12vh 0 8vh;}
#s-territories .head{padding:0 6.5vw;display:flex;justify-content:space-between;align-items:baseline;}
.tpanel{min-height:64vh;align-items:flex-start;}
.panel.tpanel .ptext{max-width:980px;}
.tpanel .group{color:rgba(220,192,122,.8);margin-bottom:20px;}
.tpanel h2{font-weight:330;font-size:clamp(34px,3.1vw,48px);line-height:1.18;color:var(--creamhi);letter-spacing:-.008em;max-width:960px;}
.tnum{position:absolute;right:5vw;top:-2vh;font-family:'FrauncesDisp',Georgia,serif;font-weight:320;font-size:clamp(180px,22vw,340px);line-height:1;color:rgba(251,246,234,.05);pointer-events:none;z-index:0;-webkit-text-stroke:0;}
.sess{display:flex;gap:6vw;margin-top:6vh;}
.sess .s{max-width:440px;flex:1;}
.sess .s h3{font-weight:360;font-size:27px;color:var(--creamhi);}
.sess .s .sub{margin-top:8px;font-style:italic;font-weight:300;font-size:16px;color:rgba(220,192,122,.85);}
.sess .s p{margin-top:13px;font-weight:300;font-size:16.5px;line-height:1.6;color:rgba(154,166,184,.9);}
.more{display:inline-block;margin-top:6vh;font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:rgba(154,166,184,.85);border-bottom:1px solid rgba(199,162,78,.4);padding-bottom:8px;cursor:pointer;}
button.more{background:none;border:none;border-bottom:1px solid rgba(199,162,78,.4);text-align:left;transition:color .3s,border-color .3s;}
button.more:hover{color:var(--creamhi);border-color:var(--goldlt);}
.moresess{margin-top:5vh;display:grid;grid-template-columns:1fr 1fr;gap:4vh 6vw;max-width:920px;opacity:0;transition:opacity .9s ease;}
.moresess.open{opacity:1;}
.moresess .ms h4{font-weight:360;font-size:21px;line-height:1.25;color:rgba(251,246,234,.92);}
.moresess .ms .sub{margin-top:6px;font-style:italic;font-weight:300;font-size:14.5px;color:rgba(220,192,122,.8);}
.moresess .ms p{margin-top:8px;font-weight:300;font-size:15.5px;line-height:1.6;color:rgba(154,166,184,.85);}
#s-t6 .lastclause{color:var(--goldlt);}
.strip-foot{padding:5vh 6.5vw 0;}

/* the room: image moment */
#s-room{height:100vh;min-height:700px;overflow:hidden;}
#roomimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:blur(7px) brightness(.6);transition:opacity 1.5s ease .2s,filter 1.8s ease .2s;}
#s-room.in #roomimg{opacity:1;filter:none;}
#s-room .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,8,16,.42) 0%,rgba(5,8,16,.28) 45%,rgba(5,8,16,.72) 100%);}
#s-room .wrap{position:absolute;left:0;right:0;bottom:9vh;}
#s-room .eyebrow{color:rgba(220,192,122,.9);}
#s-room h2{margin-top:14px;font-weight:330;font-size:clamp(44px,4.4vw,70px);line-height:1.1;color:var(--creamhi);letter-spacing:-.01em;text-shadow:0 2px 40px rgba(5,8,16,.8);}
#s-room .sub{margin-top:16px;font-weight:300;font-size:18px;color:rgba(241,233,214,.85);text-shadow:0 1px 20px rgba(5,8,16,.9);}

/* formats strip */
#s-formats{min-height:100vh;padding:12vh 0 8vh;}
#s-formats .head{padding:0 6.5vw;display:flex;justify-content:space-between;align-items:baseline;}
.fnav{display:flex;gap:26px;align-items:center;font-family:var(--sans);font-weight:300;font-size:12px;letter-spacing:.3em;color:rgba(154,166,184,.85);}
.fnav button{background:none;border:1px solid rgba(154,166,184,.3);color:rgba(241,233,214,.7);width:44px;height:44px;cursor:pointer;font-size:15px;transition:border-color .3s,color .3s;}
.fnav button:hover{border-color:var(--goldlt);color:var(--goldlt);}
.strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-top:5vh;}
.strip::-webkit-scrollbar{display:none;}
.panel{flex:0 0 100%;scroll-snap-align:center;position:relative;min-height:64vh;padding:4vh 6.5vw 0;display:flex;justify-content:space-between;}
.panel .pool{position:absolute;right:4vw;top:-4vh;width:46vw;height:46vw;border-radius:50%;background:radial-gradient(circle,rgba(220,192,122,.075) 0%,rgba(220,192,122,.02) 45%,transparent 68%);pointer-events:none;}
.panel .ptext{max-width:560px;position:relative;z-index:2;}
.panel .group{font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(220,192,122,.7);margin-bottom:16px;}
.panel h3{font-weight:340;font-size:clamp(36px,3.4vw,54px);color:var(--creamhi);}
.panel .sig{margin-top:12px;font-style:italic;font-weight:300;font-size:18px;color:rgba(220,192,122,.9);}
.panel .facts{margin-top:26px;font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);}
.panel .body{margin-top:26px;font-weight:300;font-size:16.5px;line-height:1.66;color:rgba(154,166,184,.92);}
.panel .body b{font-weight:400;color:rgba(241,233,214,.85);}
.panel .also{margin-top:20px;font-style:italic;font-weight:300;font-size:14.5px;color:rgba(154,166,184,.85);}
.roomsvg{position:relative;z-index:1;margin-right:1vw;}
.roomsvg path,.roomsvg circle,.roomsvg line{stroke-dasharray:1;stroke-dashoffset:1;}
.roomsvg.draw path,.roomsvg.draw circle,.roomsvg.draw line{stroke-dashoffset:0;transition:stroke-dashoffset 1.5s cubic-bezier(.4,0,.2,1);}
.roomsvg.draw .d2{transition-delay:.35s}.roomsvg.draw .d3{transition-delay:.7s}
.roomcap{position:absolute;bottom:-42px;right:0;font-family:var(--sans);font-weight:300;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(154,166,184,.45);}

/* operator: HUMAN */
#s-operator{min-height:100vh;padding:14vh 0 10vh;overflow:hidden;}
#opimg{position:absolute;right:0;bottom:0;height:100vh;z-index:0;opacity:0;filter:blur(7px) brightness(.65);transition:opacity 1.5s ease .3s,filter 1.8s ease .3s;-webkit-mask-image:radial-gradient(ellipse 78% 80% at 64% 62%,#000 40%,transparent 84%);mask-image:radial-gradient(ellipse 78% 80% at 64% 62%,#000 40%,transparent 84%);}
#s-operator.in #opimg{opacity:1;filter:none;}
#s-operator .t-eyebrow{color:rgba(220,192,122,.85);}
#s-operator .triad{margin-top:9vh;font-weight:330;font-size:clamp(30px,2.8vw,44px);line-height:1.5;color:var(--creamhi);max-width:760px;position:relative;z-index:2;}
#s-operator .op{margin-top:5vh;font-weight:300;font-size:19px;line-height:1.7;color:rgba(200,209,222,.92);max-width:620px;position:relative;z-index:2;}
#s-operator .creds{margin-top:12vh;font-family:var(--sans);font-weight:400;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);line-height:2.2;position:relative;z-index:2;}
#s-operator .books{margin-top:3vh;font-weight:300;font-size:17px;color:rgba(241,233,214,.85);position:relative;z-index:2;}
#s-operator .books i{color:var(--goldlt);}

/* EMERGENCE */
#s-emergence{height:175vh;}
#s-emergence .stick{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;}
#emark{height:38vh;opacity:0;}

/* CLARITY: request + confirmation */
#s-request{min-height:110vh;padding:16vh 0 0;color:var(--ink);overflow-x:clip;}
#s-request .morn{left:50%;top:-40vh;width:150vw;height:80vw;transform:translateX(-50%);background:radial-gradient(circle,rgba(251,246,234,.95) 0%,transparent 65%);}
#s-request .eyebrow{color:var(--goldink);}
#s-request h2{margin-top:16px;font-weight:340;font-size:clamp(44px,4.2vw,66px);color:var(--ink);letter-spacing:-.008em;}
#s-request .sub{margin-top:22px;max-width:600px;font-weight:300;font-size:17px;line-height:1.6;color:var(--slate);}
#reqform{margin-top:7vh;display:grid;grid-template-columns:1fr 1fr;column-gap:8vw;row-gap:46px;max-width:1240px;}
.f label{display:block;font-family:var(--sans);font-weight:500;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--goldink);}
.f input,.f textarea{display:block;width:100%;margin-top:10px;background:none;border:none;border-bottom:1px solid rgba(138,109,47,.35);font-family:var(--serif);font-weight:300;font-size:17px;color:var(--ink);padding:10px 0 12px;outline:none;resize:none;transition:border-color .4s;}
.f input:focus,.f textarea:focus{border-bottom-color:var(--gold);}
.f input::placeholder,.f textarea::placeholder{font-style:italic;font-size:15.5px;color:var(--slate);}
#reqfoot{margin-top:7vh;display:flex;align-items:center;gap:44px;padding-bottom:12vh;}
#reqfoot .micro{font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:.14em;color:var(--slate);}
#confview{padding-bottom:10vh;}
#confview .cmark{height:170px;opacity:.72;margin-bottom:5vh;display:block;}
#confview h2{font-weight:340;font-size:clamp(44px,4.2vw,66px);color:var(--ink);}
#confview p{margin-top:26px;max-width:640px;font-weight:300;font-size:18px;line-height:1.7;color:var(--slate);}
#confview .ref{margin-top:34px;font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--goldink);}
footer{border-top:1px solid rgba(138,109,47,.25);padding:5vh 6.5vw 6vh;font-family:var(--sans);font-weight:300;font-size:11px;letter-spacing:.18em;color:var(--slate);text-transform:uppercase;}
/* below the fold, in daylight */
#s-after{padding:4vh 0 0;color:var(--ink);}
.after-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:8vw;max-width:1240px;padding-top:9vh;border-top:1px solid rgba(138,109,47,.25);}
#s-after .eyebrow{color:var(--goldink);}
#s-after h3{margin-top:16px;font-weight:340;font-size:clamp(28px,2.4vw,38px);line-height:1.15;color:var(--ink);letter-spacing:-.005em;}
#s-after p{margin-top:18px;font-weight:300;font-size:17px;line-height:1.65;color:var(--slate);max-width:520px;}
.dl-lnk{display:inline-block;margin-top:26px;font-family:var(--sans);font-weight:500;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid rgba(138,109,47,.6);padding-bottom:8px;text-decoration:none;cursor:pointer;transition:border-color .3s;}
.dl-lnk:hover{border-color:var(--gold);}
.after-lines{margin-top:9vh;border-top:1px solid rgba(138,109,47,.25);max-width:1240px;}
.line{display:grid;grid-template-columns:minmax(240px,400px) 1fr;column-gap:6vw;align-items:center;padding:36px 0;border-bottom:1px solid rgba(138,109,47,.18);}
.ltxt{font-weight:300;font-size:18px;line-height:1.5;color:var(--ink);}
.mini{display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap;}
.mini input{flex:1 1 140px;min-width:0;background:none;border:none;border-bottom:1px solid rgba(138,109,47,.35);font-family:var(--serif);font-weight:300;font-size:16px;color:var(--ink);padding:8px 0 10px;outline:none;transition:border-color .4s;}
.mini input:focus{border-bottom-color:var(--gold);}
.mini input::placeholder{font-style:italic;font-size:15px;color:var(--slate);}
.dl-btn{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);background:none;border:1px solid rgba(138,109,47,.6);padding:16px 24px;cursor:pointer;white-space:nowrap;transition:background .4s,color .4s,border-color .4s;}
.dl-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--nblk2);}
.dl-btn:focus-visible,.dl-lnk:focus-visible,.mini input:focus-visible{outline:2px solid var(--goldbr);outline-offset:3px;}
.mini-done{font-style:italic;font-weight:300;font-size:16.5px;color:var(--goldink);}
body>footer{margin-top:8vh;}
[hidden]{display:none!important;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .mask .ln,.fade,.hair,#heroimg,#roomimg,#opimg,.step,#dawn,#revmark,.roomsvg path,.roomsvg circle,.roomsvg line,.btn-dom .arr,#selprog,#selglow,.moresess{transition:none!important;}
  .mask .ln{transform:none;}
  .fade{opacity:1;transform:none;}
  .hair{transform:scaleX(1);}
  #heroimg,#roomimg,#opimg{opacity:1!important;filter:none!important;}
  .roomsvg path,.roomsvg circle,.roomsvg line{stroke-dashoffset:0;}
}

/* keyboard focus */
.ans:focus-visible{color:var(--creamhi);outline:1px solid rgba(220,192,122,.6);outline-offset:6px;}
.btn-dom:focus-visible,.fnav button:focus-visible,.strip:focus-visible,#revprimary .go:focus-visible,.lnk:focus-visible,.doorway:focus-visible,.more:focus-visible{outline:2px solid var(--goldlt);outline-offset:3px;}


/* ============================================================
   RESPONSIVE LAYERS. Desktop composition above is the approved
   reference (holds from 1370px up). Below: compact desktop and
   tablet landscape (881 to 1369), then phone and tablet portrait
   (880 and under). Same world, same type, reflowed; nothing new.
   ============================================================ */
@media (max-width:1369px){
  #s-hero{grid-template-columns:14vw minmax(320px,440px) 1fr minmax(260px,300px);}
  #s-hero h1{font-size:min(clamp(56px,8.4vw,96px),10.8vh);}
  #s-hero .prop{grid-column:1/3;width:min(560px,44vw);font-size:15.5px;}
  #s-hero .btn-dom{width:100%;}
  #s-hero .doorway{grid-column:4;grid-row:1;align-self:end;margin-bottom:12px;width:100%;}
  #s-hero .paths{grid-column:3/5;grid-row:2;justify-self:start;margin:0 0 0 5vw;}
  #nav .links{gap:28px;}
  #revgrid{gap:6vw;}
  #revprimary{width:min(560px,50vw);}
  #revalso{width:min(300px,26vw);}
  .panel .ptext{max-width:min(560px,46vw);}
  .panel.tpanel .ptext{max-width:none;}
  .roomsvg{width:min(560px,42vw);height:auto;}
  #s-operator .triad{max-width:min(760px,54vw);}
  #s-operator .op{max-width:min(620px,48vw);}
  #opimg{right:-8vw;}
  .sess .s{max-width:none;flex:1;}
}

@media (max-width:880px){
  .wrap{padding:0 6vw;}
  .eyebrow{font-size:10.5px;letter-spacing:.28em;}
  /* nav */
  #nav{height:64px;padding:0 6vw;}
  #nav .wordmark{font-size:14px;letter-spacing:.3em;}
  #nav .links{gap:0;}
  #nav .links a{display:none;}
  #nav .links a[href="#s-request"]{display:inline;padding:22px 0 22px 18px;margin:-22px 0 -22px -18px;}
  .lnk{padding-top:20px;margin-top:-20px;}
  .more{padding-top:20px;margin-top:calc(5vh - 20px);}
  .moresess{grid-template-columns:1fr;gap:26px;margin-top:4vh;}
  #totop{right:18px;bottom:18px;}
  .moresess .ms h4{font-size:19px;}
  /* buttons */
  .btn-dom{width:100%;max-width:440px;height:72px;padding:0 56px 0 24px;}
  .btn-dom .lbl{font-size:12px;letter-spacing:.2em;}
  .btn-dom .arr{right:22px;width:36px;}
  .btn-dom:hover .arr{width:56px;}
  .doorway{width:100%;max-width:440px;height:88px;padding-left:24px;}
  /* hero: flow layout, portrait fragment held to the top right */
  #s-hero{display:flex;flex-direction:column;justify-content:flex-end;height:auto;min-height:100vh;min-height:100svh;padding:max(112px,22svh) 6vw 28px;}
  #s-hero .lamp{right:-40vw;top:-30vh;width:120vw;height:120vw;}
  #heroimg{right:calc(22vw - min(94.35vw,500px));top:-2vh;height:auto;width:min(170vw,900px);}
  #s-hero .eyebrow{position:static;margin-bottom:18px;}
  #s-hero h1{position:static;font-size:clamp(36px,8.6vw,60px);line-height:1.06;}
  #s-hero .prop,#s-hero .heroline,#s-hero .btn-dom,#s-hero .paths,#s-hero .doorway{align-self:flex-start;}
  #s-hero .prop{width:100%;max-width:520px;margin:18px 0 22px;font-size:15.5px;line-height:1.6;}
  #s-hero .heroline{width:56px;margin:0 0 16px;}
  #s-hero .btn-dom{margin:0;}
  #s-hero .paths{flex-direction:row;gap:26px;margin:18px 0 0;}
  #s-hero .paths .lnk{white-space:nowrap;font-size:12px;letter-spacing:.12em;}
  #s-hero .doorway{margin:16px 0 0;}
  /* record */
  #s-record{min-height:0;padding:16vh 0 12vh;}
  #s-record .entry h2{font-size:clamp(26px,6.8vw,34px);}
  #s-record .entry p{font-size:16px;}
  #s-record .sep{width:40vw;margin:44px 0;}
  #s-record .conf{margin-top:56px;font-size:15.5px;}
  /* selector: the active step is in flow, the others stay stacked behind it */
  #s-selector{min-height:0;padding:14vh 0 10vh;}
  #selsteps{height:auto;min-height:0;margin-top:5vh;}
  .step.on{position:relative;}
  .selnote{position:static;margin-top:30px;}
  .step h2{font-size:clamp(30px,8.4vw,42px);}
  .answers{margin-top:4vh;}
  .ans{font-size:clamp(17px,4.7vw,21px);padding:12px 0;}
  #revmark{height:150px;top:2%;}
  #reveal .rhead{text-align:left;}
  #reveal .rhead h2{font-size:clamp(30px,8vw,40px);}
  #revgrid{flex-direction:column;gap:44px;margin-top:5vh;}
  #revprimary{width:100%;}
  #revprimary h3{font-size:clamp(28px,7.6vw,38px);}
  #revprimary p{font-size:16px;max-width:none;}
  #revalso{width:100%;padding-top:0;}
  /* territories, in the strip */
  #s-territories{min-height:0;padding:10vh 0 6vh;}
  #s-territories .head{padding:0 6vw;flex-wrap:wrap;gap:16px;}
  .tpanel{min-height:0;}
  .tpanel h2{font-size:clamp(27px,7.2vw,36px);line-height:1.22;max-width:none;opacity:0;transform:translateY(14px);transition:opacity 1s ease .15s,transform 1s cubic-bezier(.22,1,.36,1) .15s;}
  .tpanel.rv.in h2{opacity:1;transform:none;}
  .tpanel h2 .mask{display:inline;overflow:visible;}
  .tpanel h2 .mask .ln{display:inline;transform:none;transition:none;}
  .tpanel h2 .mask+.mask::before{content:' ';}
  .tnum{font-size:46vw;right:-2vw;top:-1vh;}
  .sess{flex-direction:column;gap:34px;margin-top:6vh;}
  .sess .s{max-width:none;}
  .sess .s h3{font-size:23px;}
  .sess .s .sub{font-size:15px;}
  .sess .s p{font-size:15.5px;}
  .more{margin-top:5vh;font-size:11px;}
  .strip-foot{padding:4vh 6vw 0;}
  /* the room */
  #s-room{height:100vh;height:100svh;min-height:560px;}
  #s-room .wrap{bottom:7vh;}
  #s-room h2{font-size:clamp(30px,8vw,40px);}
  #s-room .sub{font-size:16px;}
  /* formats */
  #s-formats{min-height:0;padding:10vh 0 8vh;}
  #s-formats .head{padding:0 6vw;flex-wrap:wrap;gap:16px;}
  .fnav{gap:16px;}
  .panel{flex-direction:column;min-height:0;padding:3vh 6vw 0;gap:28px;}
  .panel .pool{right:-30vw;top:30vh;width:100vw;height:100vw;}
  .panel .ptext{max-width:none;}
  .panel h3{font-size:clamp(27px,7.2vw,36px);}
  .panel .sig{font-size:16px;}
  .panel .facts{font-size:10.5px;letter-spacing:.2em;line-height:1.8;}
  .panel .body{font-size:15.5px;}
  .roomsvg{width:min(100%,400px);height:auto;margin:0;align-self:center;}
  /* operator: Ethan above, the words below him */
  #s-operator{min-height:0;padding:56vh 0 10vh;}
  #opimg{right:-16vw;top:0;bottom:auto;height:66vh;height:66svh;-webkit-mask-image:radial-gradient(ellipse 60% 58% at 54% 46%,#000 42%,transparent 78%);mask-image:radial-gradient(ellipse 60% 58% at 54% 46%,#000 42%,transparent 78%);}
  #s-operator .triad{margin-top:0;font-size:clamp(21px,5.8vw,28px);line-height:1.45;max-width:none;}
  #s-operator .op{margin-top:4vh;font-size:16.5px;max-width:none;}
  #s-operator .creds{margin-top:7vh;font-size:9.5px;letter-spacing:.16em;line-height:2;}
  #s-operator .books{font-size:15.5px;}
  /* emergence */
  #s-emergence{height:160vh;}
  #emark{height:30vh;}
  /* clarity */
  #s-request{min-height:0;padding:14vh 0 0;}
  #s-request h2{font-size:clamp(30px,8vw,40px);}
  #s-request .sub{font-size:16px;}
  #reqform{grid-template-columns:1fr;row-gap:32px;margin-top:6vh;}
  .f input,.f textarea{font-size:17px;}
  #reqfoot{flex-direction:column;align-items:flex-start;gap:20px;margin-top:6vh;padding-bottom:10vh;}
  #confview .cmark{height:120px;}
  #confview h2{font-size:clamp(30px,8vw,40px);}
  #confview p{font-size:16.5px;}
  footer{line-height:2;letter-spacing:.14em;font-size:10px;}
  .after-grid{grid-template-columns:1fr;row-gap:7vh;padding-top:7vh;}
  #s-after h3{font-size:clamp(24px,6.6vw,30px);}
  #s-after p{font-size:16px;}
  .after-lines{margin-top:7vh;}
  .line{grid-template-columns:1fr;row-gap:18px;padding:30px 0;}
  .ltxt{font-size:16.5px;}
  .mini{gap:14px;}
  .mini input{flex:1 1 100%;font-size:17px;}
  .dl-btn{width:100%;}
}

@media (hover:none){
  .ans:hover{color:rgba(241,233,214,.42);padding-left:0;}
  .ans:hover::before{width:0;}
}

@media (max-width:880px) and (prefers-reduced-motion:reduce){
  .tpanel h2{transition:none;opacity:1;transform:none;}
}
