
:root{
  --ivory:#F5F1E8; --limestone:#D8D5CA; --forest:#183D32; --ink:#17221E; --brass:#B59A63; --mute:#8C9189;
  --disp:'Oswald',sans-serif; --serif:'Cormorant Garamond',Georgia,serif; --sans:'Inter Tight',system-ui,sans-serif;
  --gut:clamp(16px,3vw,40px);
}
*{box-sizing:border-box;margin:0}
html,body{background:var(--ivory);color:var(--forest);overflow-x:clip}
body{font:400 17px/1.6 var(--sans)}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
/* faint architectural column lines through the whole page (White Desert move) */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background:repeating-linear-gradient(90deg,transparent 0 calc(100%/6 - 1px),rgba(24,61,50,.07) calc(100%/6 - 1px) calc(100%/6))}
.serif-i{font:italic 400 1em/1.2 var(--serif)}
.eyebrow{font:italic 400 19px/1 var(--serif);display:inline-flex;gap:14px;align-items:center}
.scribble{width:120px;height:26px;overflow:visible}
.scribble path{fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round}
.tag-unused{position:fixed;left:16px;bottom:16px;z-index:60;font:500 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:var(--ivory);padding:9px 13px}

/* NAV — split, logo centred (White Desert layout) */
nav{position:absolute;inset:0 0 auto 0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px var(--gut);color:var(--ivory);font:500 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase}
nav ul{display:flex;gap:28px;list-style:none;padding:0}
nav ul.r{justify-content:flex-end;align-items:center}
nav img{height:54px}
.btn-line{border:1px solid currentColor;padding:12px 18px}

/* HERO — video shown whole (16:9), giant word bleeding off the bottom, mist over it */
.hero{position:relative;background:var(--ink);color:var(--ivory);overflow:hidden}
.hero .media{position:relative;aspect-ratio:16/9}
.hero video{width:100%;height:100%;object-fit:cover}
.hero .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#17221e99 0%,#17221e00 22%,#17221e00 55%,#17221e88 100%)}
.hero .lede{position:absolute;left:var(--gut);top:32%;z-index:5;font:italic 400 clamp(20px,1.9vw,30px)/1.2 var(--serif);max-width:16ch}
.hero .film{position:absolute;right:var(--gut);top:32%;z-index:5;display:flex;gap:18px;align-items:center;font:500 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:10px;min-width:220px;justify-content:space-between}
.giant{position:absolute;left:0;right:0;bottom:.02em;z-index:4;text-align:center;font:500 16.4vw/1 var(--disp);letter-spacing:-.005em;text-transform:uppercase;color:var(--ivory);white-space:nowrap}
.mist{position:absolute;left:-10%;right:-10%;bottom:-6%;height:46%;z-index:6;pointer-events:none;
  transform:translateY(calc(12% - var(--m,0) * 48%));opacity:calc(.25 + var(--m,0) * .75)}
.mist i{position:absolute;border-radius:50%;background:var(--ivory);filter:blur(38px)}
/* white fade into the ivory page, so the video dissolves into the next section */
.hero .fade{position:absolute;left:0;right:0;bottom:0;height:7%;z-index:7;background:linear-gradient(0deg,var(--ivory) 0%,#f5f1e800 100%)}

/* STATEMENT — thin serif caps, last line greyed like it's still being read */
.statement{position:relative;z-index:2;padding:clamp(90px,12vw,170px) var(--gut);display:grid;grid-template-columns:1fr 2fr;gap:40px}
.statement p{font:300 clamp(26px,2.9vw,44px)/1.16 var(--serif);text-transform:uppercase;letter-spacing:.01em}
.statement p span{color:var(--mute)}
.coord{font:500 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;margin-top:26px;opacity:.7}

/* PROGRAMS — horizontal accordion, one open, the rest slivers */
.programs{position:relative;z-index:2;padding:0 var(--gut) clamp(90px,10vw,150px)}
.programs h2{font:300 clamp(40px,5vw,76px)/1 var(--serif);text-transform:uppercase;text-align:center;margin-bottom:10px}
.programs .sub{text-align:center;margin-bottom:48px}
.acc{display:flex;gap:6px;height:min(66vh,640px)}
.pane{position:relative;flex:.55;overflow:hidden;cursor:pointer;transition:flex .6s cubic-bezier(.2,.7,.2,1);background:var(--ink)}
.pane img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s}
.pane::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#17221ee6 0%,#17221e33 45%,#17221e10 100%)}
.pane .vlabel{position:absolute;left:50%;bottom:24px;z-index:3;color:var(--ivory);transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;font:italic 400 22px/1 var(--serif);white-space:nowrap;transition:opacity .3s}
.pane .body{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:32px;color:var(--ivory);opacity:0;transition:opacity .4s .2s;max-width:560px}
.pane.open{flex:5}
.pane.open .vlabel{opacity:0}
.pane.open .body{opacity:1}
.pane .body h3{font:italic 400 clamp(32px,3vw,46px)/1 var(--serif);margin-bottom:14px}
.meta{display:flex;gap:18px;font:500 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px;flex-wrap:wrap}
.meta b{font-weight:500;color:var(--brass)}
.pane .body p{font-size:16px;opacity:.9}
.more{display:inline-block;margin-top:18px;font:500 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid;padding-bottom:6px}

/* QUOTE over full-bleed photo — a real Google review, verbatim */
.quote{position:relative;z-index:2;height:min(92vh,820px);color:var(--ivory);display:grid;place-items:center;text-align:center;overflow:hidden}
.quote img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.quote::after{content:"";position:absolute;inset:0;background:#17221e8c}
.quote blockquote{position:relative;z-index:2;max-width:26ch;font:italic 400 clamp(28px,3.3vw,50px)/1.18 var(--serif);padding:0 var(--gut)}
.quote cite{display:block;margin-top:28px;font:500 12px/1 var(--sans);font-style:normal;letter-spacing:.12em;text-transform:uppercase}
.stars{color:var(--brass);letter-spacing:.2em}

/* DRIVE MAP — dark, data as story */
.drive{position:relative;z-index:2;background:var(--ink);color:var(--ivory);padding:clamp(90px,10vw,150px) var(--gut);overflow:hidden}
.route{font:500 clamp(70px,13vw,210px)/.9 var(--disp);text-transform:uppercase;color:#f5f1e81a;white-space:nowrap;position:absolute;top:36px;left:var(--gut)}
.drive .grid{position:relative;display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:center;margin-top:clamp(60px,9vw,150px)}
.drive h2{font:300 clamp(34px,3.6vw,56px)/1.05 var(--serif);text-transform:uppercase;margin:16px 0 40px;max-width:16ch}
.stat{border-top:1px solid #f5f1e833;padding:20px 0;display:grid;grid-template-columns:1fr auto;align-items:baseline}
.stat span{font:italic 400 20px/1 var(--serif);opacity:.85}
.stat b{font:400 clamp(28px,2.6vw,40px)/1 var(--disp);font-weight:400}
.map svg{width:100%;height:auto;max-height:78vh}
.map .lbl{font:italic 400 17px var(--serif);fill:var(--ivory)}
.map .lbl.sm{font:500 10px var(--sans);letter-spacing:.12em;fill:#f5f1e8aa;text-transform:uppercase}

/* SIDE TAB — the one place brass is used, like White Desert's orange */
.side-tab{position:fixed;right:0;top:50%;z-index:40;transform:translateY(-50%);background:var(--brass);color:var(--ink);writing-mode:vertical-rl;padding:22px 13px;font:500 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;border:0;cursor:pointer}
.panel{position:fixed;top:0;right:0;bottom:0;width:min(460px,92vw);z-index:45;background:var(--ivory);box-shadow:-30px 0 60px #17221e33;padding:48px 40px;overflow:auto;transform:translateX(105%);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
body.show-panel .panel{transform:none}
.panel h3{font:300 40px/1 var(--serif);text-transform:uppercase;margin-bottom:28px}
.panel .st{border-top:1px solid #183d3233;padding:22px 0}
.panel .st b{display:block;font:italic 400 26px/1.1 var(--serif);margin-bottom:8px}
.panel .close{position:absolute;top:22px;right:24px;font:500 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;background:none;border:0;color:var(--forest);cursor:pointer}
.panel .cta{display:inline-block;margin-top:26px;background:var(--forest);color:var(--ivory);padding:16px 24px;font:500 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}

/* FOOTER — giant wordmark */
footer{position:relative;z-index:2;background:var(--limestone);padding:70px var(--gut) 20px;overflow:hidden}
.fcols{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:30px;font-size:14px;line-height:1.9}
.fcols h4{font:italic 400 19px/1 var(--serif);margin-bottom:12px}
.wordmark{font:500 16.4vw/.82 var(--disp);text-transform:uppercase;text-align:center;white-space:nowrap;margin-top:60px;letter-spacing:-.005em}
.fbase{display:flex;justify-content:space-between;font-size:12px;margin-top:18px;opacity:.7}
.fbase i{font:italic 400 17px var(--serif)}

@media (max-width:820px){
  nav{grid-template-columns:auto 1fr auto} nav ul.l{display:none} nav ul.r li:not(:last-child){display:none} nav img{height:40px}
  .hero .lede,.hero .film{display:none}
  .statement,.drive .grid,.fcols{grid-template-columns:1fr}
  .acc{flex-direction:column;height:auto}
  .pane{flex:none;height:64px} .pane.open{flex:none;height:520px}
  .side-tab{top:auto;bottom:14px;right:14px;transform:none;writing-mode:horizontal-tb;padding:12px 16px;border-radius:0}
  .stat b{font-size:26px}
  .pane .vlabel{writing-mode:horizontal-tb;transform:translateX(-50%);bottom:20px}
}

nav a:hover{opacity:.75}
.menu-btn{display:none;background:none;border:1px solid var(--ivory);color:var(--ivory);padding:10px 14px;font:500 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;justify-self:end}
/* photo hero for inner pages: giant word over a full-bleed photo, mist rising */
.phero{position:relative;height:min(92vh,880px);min-height:560px;background:var(--ink);color:var(--ivory);overflow:hidden}
.phero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#17221e99 0%,#17221e10 30%,#17221e30 60%,#17221ecc 100%)}
.phero .lede{position:absolute;left:var(--gut);top:30%;z-index:5;font:italic 400 clamp(20px,1.9vw,30px)/1.2 var(--serif);max-width:18ch;text-shadow:0 1px 14px #17221ecc,0 0 3px #17221e99}
.phero .kick{text-shadow:0 1px 10px #17221ecc;position:absolute;right:var(--gut);top:30%;z-index:5;font:500 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid;padding-bottom:10px;min-width:200px;text-align:right}
.phero .giant{font-size:var(--gs,15vw)}
.band{background:var(--ink);color:var(--ivory);padding:calc(120px + 6vw) var(--gut) 90px;position:relative;z-index:2}
.band h1{font:500 clamp(56px,11vw,180px)/.9 var(--disp);text-transform:uppercase}
.band p{font:italic 400 clamp(20px,1.9vw,28px)/1.35 var(--serif);max-width:40ch;margin-top:26px}
.meta.dark{color:var(--forest)} .meta.dark span{border:1px solid #183d3240;padding:9px 12px}
.wrap{position:relative;z-index:2;max-width:1320px;margin:0 auto;padding:0 var(--gut)}
.sec{position:relative;z-index:2;padding:clamp(80px,10vw,150px) 0}
.sec h2{font:300 clamp(34px,4vw,62px)/1.02 var(--serif);text-transform:uppercase;margin:14px 0 44px;max-width:22ch}
.feats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #183d3226}
.feat{padding:30px 28px 34px 0;border-bottom:1px solid #183d3226}
.feat:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid #183d3226}
.feat .n{font:400 44px/1 var(--disp);color:var(--brass);display:block;margin-bottom:14px}
.feat h3{font:italic 400 28px/1.1 var(--serif);margin-bottom:10px}
.feat p{font-size:16px;opacity:.85}
.pair{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 var(--gut)}
.pair img{width:100%;aspect-ratio:4/3;object-fit:cover}
.steps{border-top:1px solid #183d3226}
.stp{display:grid;grid-template-columns:140px 1fr 1.7fr;gap:26px;padding:34px 0;border-bottom:1px solid #183d3226;align-items:baseline}
.stp .n{font:400 72px/.9 var(--disp);color:var(--brass)}
.stp h3{font:italic 400 34px/1 var(--serif)}
.faq{border-top:1px solid #183d3226}
.faq details{border-bottom:1px solid #183d3226}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:26px 0;font:italic 400 clamp(21px,1.9vw,27px)/1.2 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:300 28px/1 var(--sans);color:var(--brass)}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 28px;max-width:70ch;opacity:.88}
.closing{position:relative;z-index:2;background:var(--forest);color:var(--ivory);padding:clamp(90px,11vw,160px) var(--gut);text-align:center}
.closing h2{font:500 clamp(54px,9vw,150px)/.9 var(--disp);text-transform:uppercase}
.closing p{font:italic 400 clamp(20px,1.8vw,26px)/1.35 var(--serif);max-width:38ch;margin:24px auto 0}
.btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.b{display:inline-block;padding:17px 26px;font:500 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor}
.b.fill{background:var(--ivory);color:var(--forest);border-color:var(--ivory)}
.b.dk{background:var(--forest);color:var(--ivory);border-color:var(--forest)}
.b:hover{opacity:.85}
.people{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.person img{width:100%;aspect-ratio:4/5;object-fit:cover}
.person h3{font:italic 400 34px/1 var(--serif);margin:22px 0 6px}
.person .role{font:500 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin-bottom:12px}
.pending{display:inline-block;margin-top:14px;font:500 10px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;border:1px dashed var(--forest);padding:7px 10px}
.story{display:grid;grid-template-columns:1fr 1fr;gap:34px 60px;font-size:18px;line-height:1.7}
.story b{font-weight:500}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #183d3226}
.card{padding:32px 28px 36px 0;border-bottom:1px solid #183d3226}
.card+.card{padding-left:28px;border-left:1px solid #183d3226}
.card h3{font:italic 400 30px/1.1 var(--serif);margin-bottom:12px}
.card p{font-size:16px;opacity:.85}
.card .b{margin-top:22px}
.form{max-width:920px}
.form h3{font:italic 400 30px/1 var(--serif);margin:50px 0 22px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px 30px}
.fld{display:flex;flex-direction:column;gap:8px}
.fld-wide{grid-column:1/-1}
.fld span{font:500 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.fld input,.fld select,.fld textarea{font:inherit;color:var(--forest);background:transparent;border:0;border-bottom:1px solid var(--forest);border-radius:0;padding:9px 2px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-bottom:2px solid var(--brass)}
.checks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px}
.chk{display:flex;gap:10px;align-items:center;font-size:15px}
.chk input{accent-color:var(--forest);width:16px;height:16px}
.hp{display:none}
.fine{font-size:13px;opacity:.7;margin-top:14px}
.fine a,.chk a,.band p a{text-decoration:underline}
.chk.consent{align-items:flex-start;max-width:72ch;line-height:1.55}
.chk.consent input{flex:none;margin-top:4px}
.legal{max-width:68ch;font-size:17px;line-height:1.75}
.legal h2{font:500 clamp(22px,2.2vw,30px)/1.15 var(--disp);text-transform:uppercase;letter-spacing:.01em;margin:56px 0 14px;max-width:none}
.legal h2:first-child{margin-top:0}
.legal p,.legal ul{margin-bottom:16px}
.legal ul{padding-left:1.2em}
.legal li{margin-bottom:8px}
.legal a{text-decoration:underline}
mark.todo{background:#b59a6340;color:inherit;padding:0 4px;font-size:.9em}
.pane{display:block}
footer a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
@media (max-width:820px){
  .menu-btn{display:block}
  nav.open{position:fixed;inset:0;height:100svh;background:var(--ink);align-content:start;grid-template-columns:1fr auto;row-gap:26px;z-index:80}
  nav.open ul.l,nav.open ul.r{display:flex!important;flex-direction:column;align-items:flex-start;grid-column:1/-1;gap:20px;font-size:15px}
  nav.open ul.r li{display:block!important}
  .phero .lede,.phero .kick{display:none}
  .phero{height:72svh;min-height:460px}
  .phero .giant{font-size:var(--gsm,15vw)}
  .feats,.cards,.people,.story,.grid2{grid-template-columns:1fr}
  .feat,.feat:not(:nth-child(3n+1)),.card+.card{padding-left:0;border-left:0}
  .stp{grid-template-columns:70px 1fr}.stp .n{font-size:44px}.stp p{grid-column:2}
  .pair{grid-template-columns:1fr}
  .checks{grid-template-columns:1fr 1fr}
}

/* fixed menu on every screen: clear over the hero, solid once you scroll */
nav{position:fixed;transition:background .4s,padding .4s,box-shadow .4s}
nav.scrolled{background:#17221ef2;padding-top:12px;padding-bottom:12px;box-shadow:0 1px 0 #f5f1e81a}
nav img{transition:height .4s} nav.scrolled img{height:42px}
html.lock{overflow:hidden}
/* one screen per section, tighter than before */
.statement,.programs,.sec,.drive,.closing{min-height:100svh}
.statement{align-content:center;padding:clamp(56px,7vw,100px) var(--gut)}
.statement p{font-size:clamp(28px,3.4vw,54px)}
.programs,.sec,.closing{display:flex;flex-direction:column;justify-content:center}
.sec{padding:clamp(56px,6vw,96px) 0}
.programs{padding:clamp(56px,6vw,90px) var(--gut)}
.drive{display:flex;flex-direction:column;justify-content:center;padding:clamp(56px,6vw,96px) var(--gut)}
.drive .grid{margin-top:clamp(40px,6vw,90px)}
.sec h2{margin-bottom:34px}
.quote{height:100svh;max-height:none}
/* a little more green: the program showcase and the "included" screens go forest */
.programs,.sec.green{background:var(--forest);color:var(--ivory)}
.sec.green .feats,.sec.green .feat,.sec.green .cards,.sec.green .card{border-color:#f5f1e829}
.sec.green .feat:not(:nth-child(3n+1)),.sec.green .card+.card{border-left-color:#f5f1e829}
.sec.green .scribble,.programs .scribble{color:var(--brass)}
h1.giant{margin:0}
/* top menu: every page named */
nav.topnav{display:flex;align-items:center;gap:28px}
nav.topnav::before{content:"";position:absolute;inset:0 0 -40px 0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#17221ed9 0%,#17221e80 55%,#17221e00 100%);transition:opacity .4s}
nav.topnav.scrolled::before,nav.topnav.open::before{opacity:0}
nav.topnav.open{z-index:90}
nav.topnav .logo{flex:none}
nav.topnav .links{display:flex;gap:clamp(16px,1.8vw,30px);list-style:none;padding:0;margin:0 0 0 auto;font:500 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
/* Eric 10/14: hover = bright glowing silver, a metallic sheen sweeping across the name, like the glass tile in the hero film; nothing fades */
nav.topnav .links a{padding:8px 0;border-bottom:1px solid transparent;opacity:1;
  background:linear-gradient(100deg,#ffffff 0%,#e6ebf0 8%,#ffffff 15%,#cdd5de 22%,#ffffff 29%,#ffffff 36%,#ffffff 42%,#d6dde5 50%,var(--ivory) 66%,var(--ivory) 100%);
  background-size:300% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  display:inline-block;transform-origin:50% 60%;
  transition:background-position .9s cubic-bezier(.2,.7,.2,1),filter .45s ease,border-color .3s,transform .35s cubic-bezier(.2,.7,.2,1)}
nav.topnav .links a:hover,nav.topnav .links a:focus-visible{opacity:1;background-position:0 0;transform:scale(1.1);border-bottom-color:#e8edf2;
  filter:drop-shadow(0 0 1px #ffffff) drop-shadow(0 0 6px #ffffffb3) drop-shadow(0 0 14px #bcd7ff80)}
@media (prefers-reduced-motion:reduce){nav.topnav .links a{transition:none}}
/* program tabs slide open on their own in the stacked layout too */
@media (max-width:820px){.pane{transition:height .6s cubic-bezier(.2,.7,.2,1)}}
nav.topnav .links a[aria-current]{border-bottom-color:var(--brass)}
nav.topnav .intake{flex:none;font:500 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase}
/* laptops: keep every page named, just tighter */
@media (max-width:1180px) and (min-width:861px){
  nav.topnav{gap:18px}
  nav.topnav .links{gap:14px;font-size:11px;letter-spacing:.04em}
  nav.topnav .intake{font-size:11px;letter-spacing:.04em}
}
@media (max-width:1060px) and (min-width:861px){
  nav.topnav .intake{display:none}
}
/* Eric 10/14: never a MENU button. Narrow screens get the page names as a second row; on phones it swipes. */
@media (max-width:860px){
  nav.topnav{flex-wrap:wrap;row-gap:12px}
  nav.topnav .menu-btn{display:none}
  nav.topnav .intake{display:inline-block;margin-left:auto;font-size:10.5px;letter-spacing:.04em;padding:10px 12px}
  nav.topnav .links{order:3;width:100%;margin:0;gap:18px;font-size:11px;letter-spacing:.04em;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  nav.topnav .links::-webkit-scrollbar{display:none}
  nav.topnav .links li{flex:none}
}
@media (max-width:700px){
  nav.topnav .links{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);padding-right:24px}
}
/* pages fade into each other (Chrome/Edge/Safari; others just load) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .35s ease both}
::view-transition-new(root){animation:vt-in .55s ease both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
/* bio screens */
.bio-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,80px);align-items:center}
.bio-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
.bio-text{display:grid;gap:18px;font-size:17px;line-height:1.7;max-width:62ch}
.bio-text p:last-child{font:italic 400 clamp(22px,1.9vw,28px)/1.3 var(--serif)}
.sec.bio h2{margin-bottom:24px}
.person p{font-size:16px;margin-bottom:6px}
.more-link{display:inline-block;margin-top:14px;font:500 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid;padding-bottom:6px}
@media (max-width:820px){.bio-grid{grid-template-columns:1fr}}
/* motion helpers */
.clip{overflow:hidden}
.ch{display:inline-block;will-change:transform}
.wd{display:inline-block;white-space:nowrap}  /* 10/6: split headings break between words, never inside one */
.motion .statement p span{color:inherit}
.pair{overflow:hidden}
@media (max-width:820px){
  nav{grid-template-columns:1fr auto;padding-top:14px;padding-bottom:14px}
  nav ul.l,nav ul.r{display:none} nav.topnav{grid-template-columns:none}
  nav>a{justify-self:start;order:0} .menu-btn{order:1}
  nav.open{position:fixed;inset:0;height:100svh;background:var(--ink);align-content:start;row-gap:34px;padding-top:18px}
  nav.open ul.l,nav.open ul.r{display:flex!important;order:2;grid-column:1/-1;flex-direction:column;align-items:flex-start;gap:22px;font:400 30px/1 var(--disp);letter-spacing:.01em}
  nav.open ul.r{order:3;padding-top:22px;border-top:1px solid #f5f1e826;width:100%}
  nav.open ul.r li{display:block!important}
  nav.open .btn-line{font:500 13px/1 var(--sans);letter-spacing:.08em;display:inline-block;padding:16px 20px}
  .statement,.programs,.sec,.drive,.closing{min-height:auto}
  .quote{height:78svh}
}
