/* Volcano Explorer - shared stylesheet. Part 1: tokens, type, nav, lockup, keys, home hero, altimeter, entrance.
   Part 2 (below the 'the descent' banner): page system - split/axis grid, stops, sections, ledger, cave footer. */

/* H1 face: ONE switch. <html data-h1="A|B|C|D"> - A Reckless M + Herbik Italic (chosen), B LT Superior + Adobe Garamond
   Italic, C Haffer XH + Adobe Garamond Italic, D Druk caps + Herbik Italic. Only the faces in use are downloaded. */
@font-face{font-family:"Reckless M";src:url(../fonts/Reckless-M-Regular.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Herbik";src:url(../fonts/Herbik-Italic.woff2) format("woff2");font-style:italic;font-display:swap}
@font-face{font-family:"LT Superior";src:url(../fonts/LTSuperior-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"AGaramond";src:url(../fonts/AGaramondPro-Italic.woff2) format("woff2");font-style:italic;font-display:swap}
@font-face{font-family:"Haffer XH";src:url(../fonts/HafferXH-Regular.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Unica";src:url(../fonts/NeueHaasUnica-Light.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Druk";src:url(../fonts/DrukCyr-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Geist";src:url(../fonts/Geist-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Geist";src:url(../fonts/Geist-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(../fonts/GeistMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}

:root{
  --ground:#070605;
  --paper:#ede9e2;
  --paper-2:rgba(237,233,226,.72);
  --paper-3:rgba(237,233,226,.5);
  --hair:rgba(237,233,226,.14);
  --hair-2:rgba(237,233,226,.26);
  --lava:#ff3c00;
  --lava-hi:#ff6a2b;
  --gutter:clamp(20px,4.45vw,72px);
  --axis-gap:clamp(86px,8.2vw,150px);
  --hl-size:clamp(64px,min(8.9vw,17vh),172px);
  --hl-top:29.5%;   /* half-width kept clear for the lava river */
  --settle:cubic-bezier(.16,1,.3,1);
  --mono:"Geist Mono",ui-monospace,Menlo,monospace;
  --sans:"Geist",system-ui,sans-serif;
  --serif:"Reckless M",Georgia,serif;          /* roman voice (H1 + display) */
  --italic:"Herbik",Georgia,serif;             /* italic voice ("Réunion") */
  --serif-w:400; --serif-track:-.03em; --serif-case:none; --italic-scale:1; --italic-track:-.015em;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--ground);color:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-family:var(--sans);background:var(--ground);overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

#gl{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none;background:var(--ground)}
#gl-fallback{position:fixed;inset:0;z-index:0;background:var(--ground) url(lava-river-1376.jpg) 50% 0/auto 80% no-repeat;display:none}
.no-gl #gl-fallback{display:block}

/* ---------------- nav ---------------- */
.nav{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:40px;
  padding:28px var(--gutter) 0}
.brand{display:flex;align-items:center;gap:11px;font:500 15px/1 var(--sans);letter-spacing:-.01em}
.brand img{height:22px;width:auto;display:block;filter:drop-shadow(0 0 10px rgba(255,60,0,.25))}
.brand b{font-weight:500}
.brand i{font-style:normal;color:var(--lava)}
.links{margin-left:auto;display:flex;align-items:center;gap:30px;font:400 11.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-2)}
.links a{--ofu-thick:1px;--ofu-gap:5px;--ofu-in-dur:.5s;--ofu-out-dur:.5s;transition:color .4s var(--settle)}
.links a:hover{color:var(--paper)}
.links .live{display:inline-flex;align-items:center;gap:8px}
.links .live::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--lava);box-shadow:0 0 0 0 rgba(255,60,0,.6);animation:beacon 2.4s ease-out infinite}
@keyframes beacon{0%{box-shadow:0 0 0 0 rgba(255,60,0,.55)}70%,100%{box-shadow:0 0 0 7px rgba(255,60,0,0)}}
.nav-cta{display:flex;align-items:center;gap:10px}
.nav .menu-btn{display:none}

/* ---------------- keys (buttons) ---------------- */
.key{position:relative;display:inline-flex;align-items:center;gap:12px;height:48px;padding:0 20px 0 22px;border-radius:6px;
  font:500 14px/1 var(--sans);letter-spacing:-.005em;white-space:nowrap;
  transition:transform .35s var(--settle),background-color .45s var(--settle),box-shadow .45s var(--settle),color .45s var(--settle),border-color .45s var(--settle)}
.key .arr{display:inline-block;width:14px;height:14px;transition:transform .45s var(--settle)}
.key:hover .arr{transform:translateX(3px)}
.key:active{transform:translateY(1px) scale(.985)}
.key--lava{background:var(--lava);color:#160500;
  box-shadow:inset 0 1px 0 rgba(255,220,190,.45),inset 0 -2px 0 rgba(90,16,0,.35),0 10px 34px -10px rgba(255,60,0,.65)}
.key--lava:hover{background:var(--lava-hi);box-shadow:inset 0 1px 0 rgba(255,230,200,.55),inset 0 -2px 0 rgba(90,16,0,.3),0 14px 44px -10px rgba(255,80,10,.85)}
.key--line{border:1px solid var(--hair-2);color:var(--paper);background:rgba(7,6,5,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.key--line:hover{border-color:rgba(237,233,226,.6);background:rgba(237,233,226,.06)}
.key--line .num{font:400 12px/1 var(--mono);letter-spacing:.02em;color:var(--paper-2);transition:color .45s var(--settle)}
.key--line:hover .num{color:var(--paper)}
.key--sm{height:38px;padding:0 15px 0 16px;font-size:13px;border-radius:5px}
.key:focus-visible{outline:1.5px solid var(--paper);outline-offset:3px}

/* ---------------- hero ---------------- */
.hero{position:relative;z-index:10;height:100vh;height:100svh;min-height:640px;max-height:1240px}
.mono-label{font:400 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}

html[data-h1="A"]{--italic-scale:.96}
:root{--hl-k:1;--hl-lh:.92;--dscale:1;--dlh:1}
html[data-h1="B"]{--serif:"LT Superior",Georgia,serif;--serif-w:600;--serif-track:-.035em;--italic:"AGaramond",Georgia,serif;--italic-scale:1.12;--italic-track:0em}
html[data-h1="C"]{--serif:"Haffer XH",system-ui,sans-serif;--serif-track:-.045em;--italic:"AGaramond",Georgia,serif;--italic-scale:1.14;--italic-track:-.01em}
html[data-h1="D"]{--serif:"Druk","Reckless M",Georgia,serif;--serif-w:500;--serif-track:.004em;--serif-case:uppercase;--italic-scale:1;--hl-k:1.24;--hl-lh:.86;--dscale:1.2;--dlh:.88}
.hl{position:absolute;top:var(--hl-top);left:0;right:0;height:calc(var(--eb-h,24px) + var(--hl-size) * var(--hl-k) * var(--hl-lh) * 2);font-family:var(--serif);font-weight:var(--serif-w);color:var(--paper);
  font-size:calc(var(--hl-size) * var(--hl-k));line-height:var(--hl-lh);letter-spacing:var(--serif-track);text-transform:var(--serif-case)}
.hl .eyebrow{text-transform:uppercase}
.hl-left{position:absolute;right:calc(50% + var(--axis-gap));text-align:right;white-space:nowrap}
.hl-left .eyebrow{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:0 .04em .5em 0;color:var(--lava);letter-spacing:.14em}
.hl-left .eyebrow::after{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.hl-right{position:absolute;left:calc(50% + var(--axis-gap));top:0;white-space:nowrap}
.hl-right .it{display:block;font-family:var(--italic);font-style:italic;font-weight:400;letter-spacing:var(--italic-track);font-size:calc(1em * var(--italic-scale));text-transform:none}
.hl .line{display:block}
/* Réunion sits on the baseline of "de lave": its top = height of eyebrow + one line */
.hl-right{padding-top:calc(var(--eb-h,24px) + var(--hl-lh) * 1em + var(--it-drop,0em))}
html[data-h1="D"] .hl-right{--it-drop:0em}
/* D: Druk carries the loud lines; the partner word is a film title card - Neue Haas Unica Light, tracked caps, with a credit
   line under it. (Tokens: --credit is the partner face; swap it for a hollow Druk later if wanted.) */
html[data-h1="D"]{--credit:"Unica","Geist",system-ui,sans-serif}
html[data-h1="D"] .hl-right{padding-top:calc(var(--eb-h,24px) + var(--hl-lh) * 1em + .07em)}
html[data-h1="D"] .hl-right .it{font-family:var(--credit);font-weight:300;font-style:normal;text-transform:uppercase;font-size:.37em;line-height:1;letter-spacing:.4em;margin-right:-.4em}



.side{position:absolute;top:calc(var(--hl-top) + var(--eb-h,24px) + var(--hl-size) * var(--hl-k) * var(--hl-lh) * 2 + 30px);left:calc(50% + var(--axis-gap));right:var(--gutter);max-width:560px}
.lede{font:400 clamp(15px,1.12vw,18px)/1.55 var(--sans);color:var(--paper-2);max-width:31em;letter-spacing:-.005em;text-wrap:balance}
.lede em{font-style:normal;color:var(--paper)}
.ctas{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.guide{margin-top:18px;font:400 11px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-3)}

/* HUD panel (left, bottom) */
.hud{position:absolute;right:calc(50% + var(--axis-gap));top:calc(var(--hl-top) + var(--eb-h,24px) + var(--hl-size) * var(--hl-k) * var(--hl-lh) * 2 + 30px + 6px);width:min(400px,calc(50% - var(--axis-gap) - var(--gutter)));
  border-top:1px solid var(--hair-2)}
.hud-head{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0 10px}
.hud-head .mono-label:first-child{color:var(--paper-2)}
.hud-row{display:grid;grid-template-columns:22px 1fr auto;align-items:baseline;gap:10px;padding:9px 0;border-top:1px solid var(--hair)}
.hud-row .n{font:400 10px/1 var(--mono);color:rgba(237,233,226,.3)}
.hud-row .k{font:400 11px/1.2 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--paper-3)}
.hud-row .k small{display:block;font-size:10px;letter-spacing:.04em;color:rgba(237,233,226,.32);margin-top:3px;text-transform:none}
.hud-row .v{font:400 13px/1.2 var(--mono);letter-spacing:.01em;color:var(--paper);text-align:right;white-space:nowrap}
.hud-row .v .u{color:var(--paper-3)}
.hud .rif{--rif-accent:#ff6a2b;--rif-accent-rgb:255,106,43;--rif-mono:var(--mono)}
.hud .rif-key{font-size:10px;line-height:1}
.hud-foot{display:flex;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--hair);font:400 10px/1.4 var(--mono);letter-spacing:.04em;color:rgba(237,233,226,.36)}
.hud-foot b{font-weight:400;color:var(--paper-3)}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:7px;vertical-align:1px;background:#6f6a63}
.is-live .dot{background:var(--lava);box-shadow:0 0 8px rgba(255,60,0,.8)}

/* altimeter riding the vein */
.alt{position:fixed;left:0;top:0;z-index:12;pointer-events:none;will-change:transform;display:flex;align-items:center;gap:12px}
.settled .alt{transition:opacity .35s var(--settle)}
.alt .stem{width:26px;height:1px;background:linear-gradient(90deg,rgba(255,106,43,.9),rgba(237,233,226,.35))}
.alt .read{display:flex;flex-direction:column;gap:6px}
.alt .digits{display:flex;align-items:baseline;font:400 26px/1 var(--mono);letter-spacing:-.02em;color:var(--paper)}
.alt .digits .unit{font-size:13px;margin-left:5px;color:var(--paper-2);letter-spacing:0}
.odo{display:inline-block;height:1em;overflow:hidden;position:relative;width:.62em}
.odo>span{display:block;will-change:transform}
.odo>span>i{display:block;height:1em;font-style:normal;text-align:center}
.alt .lab{font:400 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lava-hi)}
.alt .lab b{font-weight:400;color:var(--paper-3);margin-right:8px}


.tail{position:relative;z-index:5;height:120vh}
.tail .next{position:absolute;bottom:14vh;left:calc(50% + 40px)}

/* corner coordinates */
.coord{position:absolute;right:var(--gutter);bottom:var(--gutter);text-align:right}

@media (min-aspect-ratio:17/10) and (min-width:901px){:root{--hl-top:21.5%}}
/* ---------------- entrance ---------------- */
.js .rise{opacity:0;transform:translateY(18px);transition:opacity 1.1s var(--settle),transform 1.3s var(--settle)}
.is-in .rise{opacity:1;transform:none}
.is-in .d1{transition-delay:.55s}.is-in .d2{transition-delay:.7s}.is-in .d3{transition-delay:.95s}
.is-in .d4{transition-delay:1.15s}.is-in .d5{transition-delay:1.35s}.is-in .d6{transition-delay:1.6s}
.hl .line,.hl .it{clip-path:inset(-.3em -.2em -.3em -.2em)}
.hl .line>span,.hl .it>span{display:inline-block}
.js .hl .line>span,.js .hl .it>span{transform:translateY(135%);transition:transform 1.4s var(--settle)}
.is-in .hl .line>span,.is-in .hl .it>span{transform:none}
.is-in .hl .l1>span{transition-delay:.35s}.is-in .hl .l2>span{transition-delay:.48s}.is-in .hl .it>span{transition-delay:.7s}
.alt{opacity:0;transition:opacity .9s var(--settle) 1.9s}
.is-in .alt{opacity:1}

/* ---------------- phone menu ---------------- */
.sheet{position:fixed;inset:0;z-index:40;background:var(--ground);display:flex;flex-direction:column;justify-content:flex-end;
  padding:96px 20px 120px;opacity:0;visibility:hidden;transition:opacity .35s var(--settle),visibility 0s linear .35s}
.sheet.open{opacity:1;visibility:visible;transition:opacity .35s var(--settle)}
.sheet a.big{display:block;font:var(--serif-w) calc(40px * var(--dscale))/1.15 var(--serif);text-transform:var(--serif-case);letter-spacing:-.02em;padding:6px 0;border-bottom:1px solid var(--hair);
  transform:translateY(14px);opacity:0;transition:transform .6s var(--settle),opacity .6s var(--settle)}
.sheet.open a.big{transform:none;opacity:1}
.sheet.open a.big:nth-child(2){transition-delay:.04s}.sheet.open a.big:nth-child(3){transition-delay:.08s}
.sheet.open a.big:nth-child(4){transition-delay:.12s}.sheet.open a.big:nth-child(5){transition-delay:.16s}
.dock{display:none}

/* ---------------- tablet / phone ---------------- */
@media (max-width:1360px) and (min-width:1101px){.links{gap:22px}.links a[href$="#contact"]{display:none}}
@media (max-width:1100px){
  .links{display:none}
  .nav .menu-btn{display:inline-flex}
}
@media (max-width:900px){
  :root{--gutter:20px;--hl-size:clamp(38px,11.4vw,54px)}
  .nav{padding-top:18px}
  .nav-cta{margin-left:auto}
  .nav-cta .key--lava{display:none}
  .brand{font-size:14px}
  .brand img{height:19px}
  .hero{height:auto;min-height:0;max-height:none;padding-bottom:132px}
  .hl{position:relative;top:auto;padding:calc(var(--tip-y,520px) + 34px) var(--gutter) 0 46px}
  .hl-left{position:static;display:block;text-align:left;white-space:normal}
  .hl-left .eyebrow{justify-content:flex-start;font-size:10px;letter-spacing:.12em;margin:0 0 .9em}
  .hl-left .eyebrow::after{display:none}
  .hl .line{display:inline-block}
  .hl-right{position:static;display:block;padding:0 0 0 1.1em}
  html[data-h1="D"] .hl-right{padding:0;margin-top:.22em}
  html[data-h1="D"] .hl-right .it{font-size:.52em;letter-spacing:.34em}
    .side{position:relative;top:auto;left:auto;right:auto;max-width:none;padding:26px var(--gutter) 0 46px}
  .lede{max-width:none;font-size:16px}
  .side .ctas{display:none}
  .guide{margin-top:12px;font-size:10px}
  .hud{position:relative;right:auto;top:auto;bottom:auto;width:auto;margin:30px var(--gutter) 0 46px}
  .coord{display:none}
  .alt .digits{font-size:22px}
  .hud-row .k small{white-space:nowrap}
  .hud-row{grid-template-columns:22px minmax(0,1fr) auto}
  .hud-row .v{white-space:normal;max-width:9.5em}
  .hud-foot{flex-direction:column;gap:4px}
  body.menu-open .nav{z-index:45}
  .dock{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;gap:8px;
    padding:8px;border-radius:10px;background:rgba(16,12,10,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 0 1px var(--hair)}
  .dock .key{flex:1;justify-content:center;height:50px}
  .dock .key--line{flex:0 0 auto;padding:0 18px}
  .tail{height:40vh}
}
@media (prefers-reduced-motion:reduce){
  .rise,.hl .line>span,.hl .it>span,.alt{transition:none!important}
  .links .live::before{animation:none}
}

/* eyebrow + title-card credit live outside the h1 (the h1 is only the title) */
:root{--S:calc(var(--hl-size) * var(--hl-k))}
.hero-eb{position:absolute;top:var(--hl-top);right:calc(50% + var(--axis-gap));display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:0 .04em 0 0;color:var(--lava);letter-spacing:.14em;padding-bottom:clamp(16px,calc(var(--S) * .14),30px)}
.hero-eb::after{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.hl{top:calc(var(--hl-top) + var(--eb-h,24px));height:calc(var(--S) * var(--hl-lh) * 2)}
.hl-right{padding-top:calc(var(--hl-lh) * 1em + var(--it-drop,0em))}
html[data-h1="D"] .hl-right{padding-top:calc(var(--hl-lh) * 1em + .07em)}
.hero-credit{display:none}
html[data-h1="D"] .hero-credit{display:block;position:absolute;z-index:2;left:calc(50% + var(--axis-gap));top:calc(var(--hl-top) + var(--eb-h,24px) + var(--S) * (var(--hl-lh) + .07 + .37 + .085));
  font:300 calc(var(--S) * .0925)/1 var(--credit);letter-spacing:.46em;text-transform:uppercase;color:var(--paper-2);margin:0}
html[data-h1="D"] .hero-credit::before{content:"";display:block;width:2.4em;height:1px;background:var(--lava);margin-bottom:2.3em;opacity:.9}
@media (max-width:900px){
  .hero-eb{position:relative;top:auto;right:auto;justify-content:flex-start;padding:calc(var(--tip-y,520px) + 54px) var(--gutter) 0 46px;font-size:10px;letter-spacing:.12em;margin:0 0 .9em}
  .hero-eb::after{display:none}
  .hl{padding-top:0;height:auto}
  html[data-h1="D"] .hl-right{padding:0;margin-top:.22em}
  html[data-h1="D"] .hero-credit{position:relative;left:auto;top:auto;padding:0 var(--gutter) 0 46px;margin-top:14px;font-size:11px;letter-spacing:.34em}
  html[data-h1="D"] .hero-credit::before{margin-bottom:12px}
}

@media (max-width:900px){
  :root{--hl-size:clamp(40px,13.2vw,60px)}
  .hl-left{display:inline}
  .hl .l1{display:block}
  .hl .l2{display:inline-block}
  html[data-h1="D"] .hl-right{display:inline-block;margin:0 0 0 .2em;vertical-align:baseline}
  html[data-h1="D"] .hl-right .it{letter-spacing:.2em;margin-right:0;font-size:.36em}
}

.hl-card{pointer-events:none}
.hl-card .hl-right{pointer-events:auto}
@media (max-width:900px){
  html[data-h1="D"] .hl-card .hl-right,.hl-card .hl-right{display:block;margin:.12em 0 0;padding:0}
  .hl.hl-card{padding-top:0}
}

/* ---------- lockup: their mark (vector) + tracked Unica caps, stacked so mark and name read as one ---------- */
@font-face{font-family:"Unica";src:url(../fonts/NeueHaasUnica-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
.brand{gap:12px;align-items:center}
.brand .mark{height:30px;width:auto;display:block;filter:drop-shadow(0 0 14px rgba(255,60,0,.22))}
.brand .wm{display:flex;flex-direction:column;gap:3px;font:400 10.5px/1 "Unica","Geist",system-ui,sans-serif;letter-spacing:.34em;text-transform:uppercase;color:var(--paper);margin-right:-.34em}
.brand .wm span:last-child{color:var(--paper-2)}
@media (max-width:900px){.brand .mark{height:26px}.brand .wm{font-size:9.5px;letter-spacing:.3em}}

/* ============ the descent: everything below the hero ============
   Every section is laid out around the vein: a left column set flush against it (right-aligned), the axis gap kept
   clear for the WebGL vein, a right column set flush on the other side. */

.nav{position:fixed;padding-bottom:16px;transition:background-color .5s var(--settle),backdrop-filter .5s var(--settle),padding .5s var(--settle)}
.nav::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--hair);opacity:0;transition:opacity .5s var(--settle)}
.nav.is-stuck{background:rgba(7,6,5,.72);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);padding-top:14px;padding-bottom:14px}
.nav.is-stuck::after{opacity:1}
.nav.is-hidden{transform:translateY(-100%)}
.nav{transition:transform .5s var(--settle),background-color .5s var(--settle),padding .5s var(--settle)}

.stage{position:relative;z-index:10;--lcol:clamp(380px,calc(50vw - var(--axis-gap) - 230px),470px)}
.h3,.note{text-wrap:balance}
p,li,blockquote,figcaption{text-wrap:pretty}
.split{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);padding:0 var(--gutter)}
.split>.L{grid-column:1;justify-self:end;text-align:right;width:100%;max-width:var(--lcol)}
.split>.R{grid-column:3;justify-self:start;width:100%;max-width:560px}
.split>.span{grid-column:1 / -1}

.eyebrow-s{display:inline-flex;align-items:center;gap:12px;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lava)}
.L .eyebrow-s{flex-direction:row-reverse}
.eyebrow-s::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.R .eyebrow-s::before{display:none}
.R .eyebrow-s::after{content:"";width:28px;height:1px;background:currentColor;opacity:.7}

.h2{font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(44px,5.4vw,96px) * var(--dscale));line-height:calc(.96 * var(--dlh));color:var(--paper);text-wrap:balance}
.h2 em{font-family:var(--italic);font-style:italic;letter-spacing:var(--italic-track);text-transform:none;font-size:calc(1em * var(--italic-scale))}
.body{font:400 clamp(15px,1.06vw,17px)/1.62 var(--sans);color:var(--paper-2);letter-spacing:-.003em}
.body strong{font-weight:500;color:var(--paper)}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font:400 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper);padding:10px 0;
  --ofu-thick:1px;--ofu-gap:6px}
.link-arrow svg{width:14px;height:14px;transition:transform .45s var(--settle)}
.link-arrow:hover svg{transform:translateX(3px)}

/* ---------- altitude stops: a typographic opener on the vein ---------- */
.stop{position:relative;padding:clamp(120px,16vh,200px) 0 clamp(56px,8vh,96px)}
.stop .split{align-items:end}
.stop .num{font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);font-size:calc(clamp(56px,7.4vw,140px) * var(--dscale));line-height:.9;color:var(--paper);white-space:nowrap;font-variant-numeric:lining-nums}
.stop .num small{font-family:var(--mono);font-size:.18em;letter-spacing:.04em;color:var(--paper-3);margin-left:.25em;vertical-align:.25em}
.stop .name{font-family:var(--italic);font-style:italic;font-size:clamp(44px,4.9vw,96px);line-height:.95;letter-spacing:var(--italic-track);color:var(--paper);white-space:nowrap}
.stop .tag{display:block;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-3);margin-bottom:18px}
.stop .tag b{font-weight:400;color:var(--lava)}
.stop .node{position:absolute;left:50%;bottom:calc(clamp(56px,8vh,96px) + .5em);width:15px;height:15px;margin-left:-7.5px;border-radius:50%;
  border:1px solid rgba(255,106,43,.75);background:var(--ground);box-shadow:0 0 0 5px rgba(7,6,5,.9),0 0 22px rgba(255,60,0,.35)}
.stop .node::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--lava);opacity:.0;transition:opacity .6s var(--settle)}
.stop.is-passed .node::after{opacity:1}

/* ---------- 2632 m: le sommet ---------- */
.summit .split{align-items:start;row-gap:0}
.summit .L .h2{margin:22px 0 30px}
.summit .L .body{max-width:30em;margin-left:auto}
.summit .facts{display:flex;justify-content:flex-end;gap:40px;margin-top:40px;padding-top:26px;border-top:1px solid var(--hair)}
.summit .facts div{text-align:right}
.summit .facts b{display:block;font-family:var(--serif);font-weight:var(--serif-w);font-size:calc(56px * var(--dscale));line-height:1;letter-spacing:-.02em;color:var(--paper)}
.summit .facts span{display:block;margin-top:8px;font:400 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3)}
.summit .L .link-arrow{margin-top:26px}
.portrait{position:relative;width:min(400px,100%);margin-top:6px}
.portrait .frame{position:relative;aspect-ratio:742/940;overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px var(--hair)}
.portrait img{width:100%;height:100%;object-fit:cover;display:block;filter:contrast(1.05) brightness(.92);transform:scale(1.04);transition:transform 1.6s var(--settle)}
.portrait:hover img{transform:scale(1)}
.portrait figcaption{margin-top:12px;display:flex;justify-content:space-between;font:400 10.5px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.quote{margin-top:44px;max-width:520px}
.quote p{font-family:var(--italic);font-style:italic;font-size:clamp(28px,2.5vw,42px);line-height:1.12;letter-spacing:-.01em;color:var(--paper);text-wrap:balance}
.quote p::before{content:"«\00a0";color:var(--lava)}
.quote p::after{content:"\00a0»";color:var(--lava)}
.quote cite{display:block;margin-top:18px;font:400 11px/1.4 var(--mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3)}
.quote cite b{font-weight:400;color:var(--paper)}

/* ---------- 1800 m: missions = an instrument ---------- */
.missions-head{align-items:end;margin-bottom:46px}
.missions-head .h2{margin-top:20px}
.switch{display:inline-flex;gap:4px;padding:4px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--hair-2);background:rgba(7,6,5,.5)}
.switch button{position:relative;display:inline-flex;align-items:baseline;gap:10px;height:42px;padding:0 16px;border-radius:5px;font:400 12px/42px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3);
  transition:color .4s var(--settle),background-color .4s var(--settle)}
.switch button small{font-size:10px;color:rgba(237,233,226,.35)}
.switch button:hover{color:var(--paper)}
.switch button[aria-selected="true"]{background:rgba(255,60,0,.13);color:var(--paper);box-shadow:inset 0 0 0 1px rgba(255,106,43,.5)}
.switch button[aria-selected="true"] small{color:var(--lava-hi)}
.missions-note{margin-top:16px;font:400 11px/1.5 var(--mono);letter-spacing:.06em;color:var(--paper-3);text-transform:uppercase}

.ledger{list-style:none;border-top:1px solid var(--hair-2)}
.ledger[hidden]{display:none}
.row{position:relative;border-bottom:1px solid var(--hair)}
.row a{position:relative;display:block;padding:26px var(--gutter);min-height:128px;isolation:isolate}
.row .cols{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);align-items:center}
.row .lamp{position:absolute;inset:0 50% 0 0;z-index:-1;opacity:0;overflow:hidden;transition:opacity .7s var(--settle)}
.row .lamp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.95) brightness(.7);transform:scale(1.06);transition:transform 1.4s var(--settle);
  -webkit-mask-image:radial-gradient(70% 140% at var(--lx,70%) 50%,#000 0%,rgba(0,0,0,.55) 40%,transparent 78%);mask-image:radial-gradient(70% 140% at var(--lx,70%) 50%,#000 0%,rgba(0,0,0,.55) 40%,transparent 78%)}
.row a:hover .lamp,.row a:focus-visible .lamp{opacity:1}
.row a:hover .lamp img{transform:scale(1)}
.row .who{grid-column:1;justify-self:end;text-align:right;max-width:var(--lcol)}
.row .idx{display:block;font:400 10.5px/1 var(--mono);letter-spacing:.12em;color:var(--paper-3);margin-bottom:10px}
.row .idx b{font-weight:400;color:var(--lava-hi)}
.row .ttl{display:block;font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(26px,2.3vw,38px) * var(--dscale));line-height:1.02;color:var(--paper);transition:color .4s var(--settle)}
.row .sub{display:block;margin-top:9px;font:400 14px/1.5 var(--sans);color:var(--paper-3);max-width:34em;margin-left:auto;transition:color .5s var(--settle)}
.row a:hover .sub{color:var(--paper-2)}
.row .pin{position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--ground);box-shadow:0 0 0 1px rgba(237,233,226,.35);transition:box-shadow .4s var(--settle),background-color .4s var(--settle),transform .5s var(--settle)}
.row a:hover .pin{background:var(--lava);box-shadow:0 0 0 1px var(--lava),0 0 0 6px rgba(255,60,0,.14),0 0 22px rgba(255,60,0,.7);transform:scale(1.25)}
.row .data{grid-column:3;display:grid;grid-template-columns:64px 112px 104px 1fr;column-gap:18px;align-items:end;max-width:560px;width:100%}
.row .cell .dt{display:block;font:400 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(237,233,226,.4);margin-bottom:9px}
.row .cell .dd{display:block;font:400 13px/1.2 var(--mono);color:var(--paper);white-space:nowrap}
.row .price{justify-self:end;text-align:right}
.row .price .dd{font-family:var(--serif);font-weight:var(--serif-w);font-size:calc(clamp(28px,2.3vw,38px) * var(--dscale));line-height:1;letter-spacing:-.02em}
.row .price .dd.small{font-family:var(--mono);font-size:13px;letter-spacing:0}
.row .tags{grid-column:1 / -1;margin-top:14px;display:flex;gap:6px;flex-wrap:wrap}
.chip{font:400 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 8px;border-radius:3px;color:var(--paper-2);box-shadow:inset 0 0 0 1px var(--hair-2)}
.chip.hot{color:var(--lava-hi);box-shadow:inset 0 0 0 1px rgba(255,106,43,.45)}
.row .go{position:absolute;right:var(--gutter);top:26px;width:14px;height:14px;color:var(--paper-3);transition:transform .45s var(--settle),color .4s var(--settle)}
.row a:hover .go{transform:translate(3px,-3px);color:var(--lava-hi)}

/* ---------- 1200 m: la galerie ---------- */
.gal-head{align-items:end;margin-bottom:64px}
.gal-head .h2{margin-top:20px}
.gal-head .R .body{max-width:30em}
.strip{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);padding:0 var(--gutter)}
.strip .colL{grid-column:1;display:flex;flex-direction:column;align-items:flex-end;gap:16vh}
.strip .colR{grid-column:3;display:flex;flex-direction:column;align-items:flex-start;gap:16vh;padding-top:24vh}
.shot{position:relative;margin:0}
.shot .ph{overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px var(--hair)}
.shot img{display:block;width:100%;height:auto;transform:scale(1.03);transition:transform 1.6s var(--settle),filter 1s var(--settle);filter:saturate(.92) brightness(.92)}
.shot:hover img{transform:scale(1);filter:none}
.shot figcaption{display:flex;justify-content:space-between;gap:16px;margin-top:12px;font:400 10.5px/1.35 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--paper-3)}
.shot figcaption b{font-weight:400;color:var(--paper-2)}
.colL .shot figcaption,.skylight .L .shot figcaption{flex-direction:row-reverse;text-align:right}
.shot.w1{width:min(620px,100%)}
.shot.w2{width:min(420px,100%)}
.shot.w3{width:min(500px,100%)}
.shot.down{margin-top:22vh}
.shot.up{margin-top:-14vh}
.films{margin-top:120px;align-items:start}
.films .L .h3{font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);font-size:calc(clamp(34px,3vw,52px) * var(--dscale));line-height:var(--dlh);letter-spacing:var(--serif-track);margin:18px 0 18px}
.films .L .body{max-width:24em;margin-left:auto}
.reel{list-style:none;border-top:1px solid var(--hair-2)}
.reel a{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--hair);transition:padding .5s var(--settle)}
.reel a:hover{padding-left:6px}
.reel .n{font:400 10.5px/1 var(--mono);color:rgba(237,233,226,.35)}
.reel .t{font:400 15px/1.35 var(--sans);color:var(--paper);transition:color .4s var(--settle)}
.reel .t small{display:block;margin-top:5px;font:400 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.reel a:hover .t{color:var(--lava-hi)}
.reel .d{font:400 12px/1 var(--mono);color:var(--paper-2)}

/* ---------- surface: the vein goes underground ---------- */
.surface{position:relative;margin-top:clamp(140px,18vh,220px);height:1px;z-index:10}
.surface .line{position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(237,233,226,.32) 12%,rgba(237,233,226,.32) 88%,transparent)}
.surface .lab{position:absolute;top:-28px;font:400 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-3)}
.surface .lab.a{right:calc(50% + var(--axis-gap))}
.surface .lab.b{left:calc(50% + var(--axis-gap))}
.surface .lab.c{top:16px;left:calc(50% + var(--axis-gap));color:var(--lava-hi)}
.surface .lab.d{top:16px;right:calc(50% + var(--axis-gap))}

.under{padding-top:clamp(110px,15vh,180px)}
.under-head{align-items:start}
.under-head .h2{margin-top:20px}
.under-head .R{padding-top:34px}
.under-head .R .body + .body{margin-top:16px}
.steps{margin-top:110px;border-top:1px solid var(--hair-2)}
.step{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);align-items:center;padding:30px var(--gutter);border-bottom:1px solid var(--hair);position:relative}
.step .k{grid-column:1;justify-self:end;text-align:right}
.step .k span{display:block;font:400 10.5px/1 var(--mono);letter-spacing:.14em;color:var(--lava-hi);margin-bottom:10px}
.step .k strong{font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);font-size:calc(clamp(26px,2.4vw,40px) * var(--dscale));letter-spacing:var(--serif-track);line-height:1.05;color:var(--paper)}
.step .v{grid-column:3;max-width:30em;font:400 15px/1.6 var(--sans);color:var(--paper-2)}
.step::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--ground);box-shadow:0 0 0 1px rgba(255,106,43,.6)}
.step.drain .k span{color:rgba(237,233,226,.6)}
.step.drain::after{box-shadow:0 0 0 1px rgba(237,233,226,.5)}
.source-line{padding:18px var(--gutter) 0;text-align:center;font:400 10.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:rgba(237,233,226,.4)}
.source-line a{color:var(--paper-2);--ofu-thick:1px}

.skylight{margin-top:130px;align-items:end}
.skylight .shot{width:min(460px,100%)}
.skylight .L .shot{margin-left:auto}
.skylight .note{margin-top:30px;max-width:26em}
.skylight .L .note{margin-left:auto}

.depths{margin-top:130px}
.depths .split{margin-bottom:40px;align-items:end}
.depths .h3{font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);font-size:calc(clamp(34px,3vw,52px) * var(--dscale));line-height:var(--dlh);letter-spacing:var(--serif-track);margin-top:18px}
.drow{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);align-items:baseline;padding:22px var(--gutter);border-bottom:1px solid var(--hair);position:relative}
.drow:first-of-type{border-top:1px solid var(--hair-2)}
.drow .m{grid-column:1;justify-self:end;text-align:right;font-family:var(--serif);font-weight:var(--serif-w);font-size:calc(clamp(36px,3.6vw,64px) * var(--dscale));line-height:1;letter-spacing:-.02em;color:var(--paper);white-space:nowrap}
.drow .m small{font-family:var(--mono);font-size:.26em;letter-spacing:.06em;color:var(--paper-3);margin-left:.3em}
.drow .what{grid-column:3;max-width:34em}
.drow .what b{display:block;font:500 15px/1.3 var(--sans);color:var(--paper)}
.drow .what span{display:block;margin-top:6px;font:400 14px/1.5 var(--sans);color:var(--paper-3)}
.drow .what em{font-style:normal;font:400 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lava-hi);display:block;margin-bottom:8px}

/* ---------- volcan live ---------- */
.livesec{padding-top:clamp(150px,20vh,240px)}
.live-head{align-items:start}
.live-head .h2{margin-top:20px}
.live-head .L .body{max-width:28em;margin:22px 0 0 auto}
.live-head .L .link-arrow{margin-top:20px}
.live-head .hud{position:relative;right:auto;top:auto;width:100%;max-width:440px}
.trace{position:relative;margin-top:80px;padding:0 max(var(--gutter), calc(50% - var(--axis-gap) - var(--lcol)))}
.trace svg{display:block;width:100%;height:clamp(180px,24vh,260px);overflow:visible}
.trace .axis-t{display:flex;justify-content:space-between;margin-top:14px;font:400 10.5px/1 var(--mono);letter-spacing:.06em;color:var(--paper-3)}
.trace .cap{display:flex;justify-content:space-between;gap:20px;margin-bottom:16px;font:400 10.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.trace .cap b{font-weight:400;color:var(--paper)}
.trace .cap .live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lava);margin-right:8px;vertical-align:1px;box-shadow:0 0 8px rgba(255,60,0,.8)}

/* ---------- finale ---------- */
.finale{position:relative;padding:clamp(200px,28vh,320px) var(--gutter) clamp(130px,16vh,180px);text-align:center}
.finale>*{max-width:min(980px,100%);margin-left:auto;margin-right:auto}
.finale .h2{font-size:calc(clamp(52px,7vw,128px) * var(--dscale));max-width:12em;margin:24px auto 0}
.finale .h2 em{display:block}
.finale .body{max-width:34em;margin:28px auto 0;font-size:clamp(16px,1.2vw,19px)}
.finale .ctas{justify-content:center;margin-top:40px}
.finale .key{height:56px;padding:0 24px 0 26px;font-size:15px}
.key--wa .wa{width:16px;height:16px;color:#25d366}
.finale .small{margin-top:22px;font:400 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.finale .landing{display:block;margin:0 auto 4px;padding-top:14px;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lava-hi)}

/* ---------- footer ---------- */
.foot{position:relative;z-index:10;border-top:1px solid var(--hair-2);padding:70px var(--gutter) 34px;background:rgba(7,6,5,.86)}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px}
.foot .brand{font-size:17px;margin-bottom:18px}
.foot .brand img{height:26px}
.foot p{font:400 14px/1.6 var(--sans);color:var(--paper-3);max-width:30em}
.foot p + p{margin-top:10px}
.foot h4{font:400 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-2);margin-bottom:18px;font-weight:400}
.foot ul{list-style:none}
.foot li{margin-bottom:11px;font:400 14px/1.45 var(--sans);color:var(--paper-3)}
.foot li a{color:var(--paper-2);transition:color .35s var(--settle)}
.foot li a:hover{color:var(--paper)}
.foot .ofu{--ofu-thick:1px;--ofu-gap:3px}
.foot-base{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:60px;padding-top:24px;border-top:1px solid var(--hair);font:400 11px/1.4 var(--mono);letter-spacing:.06em;color:rgba(237,233,226,.42)}
.foot-base img{height:44px;width:auto;opacity:.85}

/* ---------- reveal on scroll ---------- */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity 1s var(--settle),transform 1.2s var(--settle)}
.rv.on{opacity:1;transform:none}
.rv.d2{transition-delay:.12s}.rv.d3{transition-delay:.24s}

/* ---------- phones: the vein runs down the left gutter ---------- */
@media (max-width:900px){
  .split,.strip{display:block;padding:0 var(--gutter) 0 46px}
  .split>.L,.split>.R{text-align:left;max-width:none;justify-self:auto}
  .split>.R{margin-top:30px}
  .L .eyebrow-s{flex-direction:row}
  .L .eyebrow-s::before{display:none}
  .stop{padding:110px 0 40px}
  .stop .split{display:block}
  .stop .num{font-size:64px}
  .stop .name{font-size:46px;white-space:normal;margin-top:6px}
  .stop .node{left:22.5px;bottom:auto;top:calc(110px + 40px)}
  .stop .split>.R{margin-top:4px}
  .summit .L .body,.summit .facts{margin-left:0}
  .summit .facts{justify-content:flex-start}
  .summit .facts div{text-align:left}
  .portrait{width:100%}
  .row a{padding:24px var(--gutter) 24px 46px;min-height:0}
  .row .cols{display:block}
  .live-head .hud{margin:0}
  .stage{--lcol:100%}
  .row .who{text-align:left}
  .row .sub{margin-left:0}
  .row .pin{left:22.5px;top:38px}
  .row .lamp{inset:0}
  .row .data{margin-top:18px;grid-template-columns:auto auto auto 1fr;column-gap:16px}
  .switch{flex-wrap:wrap}
  .strip .colL,.strip .colR{align-items:stretch;gap:40px;padding-top:0}
  .strip .colR{margin-top:40px}
  .colL .shot figcaption,.skylight .L .shot figcaption{flex-direction:row;text-align:left}
  .shot{width:100%!important}
  .films{margin-top:60px}
  .films .L .body{margin-left:0}
  .surface .lab.a,.surface .lab.d{display:none}
  .surface .lab.b,.surface .lab.c{left:46px}
  .step,.drow{display:block;padding:24px var(--gutter) 24px 46px}
  .step .k,.drow .m{text-align:left}
  .step .k,.step .v{display:block}
  .step .v{margin-top:10px}
  .step::after{left:22.5px;top:40px}
  .drow .what{margin-top:12px}
  .skylight .L .note{margin-left:0}
  .live-head .L .body{margin-left:0}
  .trace{padding:0 var(--gutter) 0 46px}
  .finale>*{margin-left:0}
  .trace .cap{flex-direction:column;gap:6px}
  .finale{padding:150px var(--gutter) 120px 46px;text-align:left}
  .finale .h2,.finale .body{margin-left:0}
  .finale .ctas{justify-content:flex-start;flex-direction:column;align-items:stretch}
  .finale .key{justify-content:center;white-space:normal;height:auto;min-height:56px;padding:14px 20px;text-align:center;line-height:1.3}
  .foot{padding:56px var(--gutter) 130px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:36px 24px}
  .foot-grid>div:first-child{grid-column:1 / -1}
  .foot-base{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .portrait img,.shot img,.row .lamp img{transition:none;transform:none}
}

/* ---------- the altimeter, compact enough to ride inside the axis gap ---------- */
.alt{gap:8px}
.alt .stem{width:14px}
.alt .digits{font-size:22px}
.alt .lab{max-width:calc(var(--axis-gap) - 34px);line-height:1.35;letter-spacing:.1em}
.alt .lab b{display:none}
.alt.is-under .digits{display:none}
.alt.is-under .read::before{content:"Sous terre";font:400 13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper)}
.alt.is-under .stem{background:linear-gradient(90deg,rgba(255,240,220,.8),rgba(237,233,226,.3))}
@media (min-width:901px){ .hero ~ .alt, body .alt{} }

/* ---------- D voice in sections: Druk for the loud lines, tracked light Unica caps for the credits ---------- */
html[data-h1="D"] .h2 em{display:block;font-family:var(--credit);font-weight:300;font-style:normal;text-transform:uppercase;font-size:.25em;line-height:1.35;letter-spacing:.36em;margin-top:.8em;color:var(--paper)}
html[data-h1="D"] .L .h2 em{margin-right:-.36em}
html[data-h1="D"] .stop .name{font-family:var(--credit);font-weight:300;font-style:normal;text-transform:uppercase;font-size:calc(clamp(56px,7.4vw,140px) * 1.2 * .3);line-height:1;letter-spacing:.42em;padding-bottom:.35em;white-space:normal;max-width:12em}
html[data-h1="D"] .eyebrow-s,html[data-h1="D"] .stop .tag{font-family:var(--credit);font-weight:300;font-size:12px;letter-spacing:.34em}
html[data-h1="D"] .quote p{font-family:var(--credit);font-weight:300;font-style:normal;font-size:clamp(24px,2vw,32px);line-height:1.28;letter-spacing:-.005em}
html[data-h1="D"] .finale .h2 em{font-size:.24em;margin-top:1em}
html[data-h1="D"] .films .L .h3,html[data-h1="D"] .depths .h3{line-height:.9}

.js .trace svg{clip-path:inset(0 100% 0 0);transition:clip-path 2.8s cubic-bezier(.45,0,.25,1) .25s}
.js .trace.on svg{clip-path:inset(0 -2% 0 0)}
@media (prefers-reduced-motion:reduce){.trace svg{clip-path:none;transition:none}}
.alt.is-under .read::before{font-size:10.5px;letter-spacing:.08em}
/* the readout's first row (digits, or "Sous terre") sits exactly on the bead */
.alt{align-items:flex-start}
.alt .stem{margin-top:11px}
.alt .digits{height:22px;align-items:center}
.alt.is-under .read::before{display:block;line-height:22px}
@media (max-width:900px){ .alt .lab{max-width:none;white-space:nowrap} }

.trace .ctx{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:22px;font:400 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(237,233,226,.42)}
.trace .ctx svg{display:block;width:100%;height:28px}
.trace .ctx-r{color:var(--lava-hi)}
@media (max-width:900px){.trace .ctx{grid-template-columns:1fr;gap:8px}.trace .ctx-r{display:none}}

/* ================= round 3 ================= */
/* pacing: each altitude stop owns a screen of dark; the number arrives, then its content follows */
.stop{min-height:clamp(620px,96vh,1080px);display:flex;flex-direction:column;justify-content:center;padding:0;margin-top:clamp(80px,14vh,180px)}
.stop .split{align-items:center}
.stop .node{top:50%;bottom:auto;margin-top:-7.5px}
.summit,.slopes,.gallery{padding-bottom:clamp(60px,10vh,140px)}
.js .stop .num.rv{opacity:0;transform:translateY(46px) scale(.985);filter:blur(10px);transition:opacity 1.5s var(--settle),transform 1.9s var(--settle),filter 1.4s var(--settle)}
.js .stop .num.rv.on{opacity:1;transform:none;filter:none}
.js .stop .name.rv{transition-delay:.35s;transition-duration:1.4s,1.7s}
.stop .tag{transition:opacity .8s var(--settle)}
.stop .num{transition:color .8s var(--settle),text-shadow .8s var(--settle)}
.stop .num small{transition:color .8s var(--settle)}
.stop.is-docked .num{text-shadow:0 0 42px rgba(255,80,10,.28)}
.stop.is-docked .num small{color:var(--lava-hi)}
.stop.is-docked .node{box-shadow:0 0 0 5px rgba(7,6,5,.9),0 0 30px rgba(255,60,0,.6)}
.stop.is-docked .node::after{opacity:1}

/* lockup at footer size */
.foot .brand.brand--lg{gap:18px;margin-bottom:26px}
.foot .brand--lg .mark{height:58px}
.foot .brand--lg .wm{font-size:15px;gap:6px;letter-spacing:.38em}

/* the footer is the cave: transparent over the WebGL rock, text kept readable on its own dark */
.foot{background:transparent;border-top:0;padding-top:clamp(260px,46vh,520px);min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;cursor:default}
.foot::before{content:"";position:absolute;inset:auto 0 0 0;height:78%;pointer-events:none;background:linear-gradient(180deg,rgba(7,6,5,0),rgba(7,6,5,.55) 38%,rgba(7,6,5,.72))}
.foot>*{position:relative}
.foot,.foot a,.foot p,.foot li,.foot h4,.foot-base{text-shadow:0 1px 2px rgba(0,0,0,.85),0 0 10px rgba(0,0,0,.55)}
.foot p,.foot li{color:rgba(237,233,226,.7)}
.foot li a{color:rgba(237,233,226,.9)}
.foot .cave-cap{position:absolute;left:var(--gutter);top:clamp(40px,8vh,90px);font:400 10.5px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(237,233,226,.45)}
.foot .cave-cap b{font-weight:400;color:var(--lava-hi)}
.foot-base{border-top-color:rgba(237,233,226,.16)}
@media (max-width:900px){
  .stop{min-height:78vh;margin-top:60px}
  .foot{padding-top:46vh}
  .foot::before{height:88%}
}

.alt.no-digits .digits{display:none}

/* ================= booking sheet: their YoPlanning engine, same flow as their BookingModal ================= */
.booking{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:4vh 4vw}
.booking[hidden]{display:none}
.booking-scrim{position:absolute;inset:0;background:rgba(7,6,5,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .35s var(--settle)}
.booking-panel{position:relative;width:min(1100px,100%);height:min(88vh,900px);display:flex;flex-direction:column;background:#0f0c0a;border-radius:8px;box-shadow:0 0 0 1px var(--hair-2),0 40px 120px -20px rgba(0,0,0,.9);overflow:hidden;
  opacity:0;transform:translateY(18px) scale(.985);transition:opacity .35s var(--settle),transform .5s var(--settle)}
.booking.open .booking-scrim,.booking.open .booking-panel{opacity:1;transform:none}
.booking-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;border-bottom:1px solid var(--hair)}
.booking-k{font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lava-hi)}
.booking-t{margin-top:8px;font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);letter-spacing:var(--serif-track);font-size:calc(26px * var(--dscale));line-height:1;color:var(--paper)}
.booking-panel iframe{flex:1;width:100%;border:0;background:#fff}
.booking-foot{display:flex;justify-content:space-between;gap:16px;padding:12px 22px;border-top:1px solid var(--hair);font:400 10.5px/1.4 var(--mono);letter-spacing:.06em;color:var(--paper-3)}
.booking-foot a{color:var(--paper-2)}
body.booking-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){.booking-scrim,.booking-panel{transition:none}}

/* =====================================================================================================
   PART 3 - inner pages (shared by every builder). See SYSTEM.md for markup.
   ===================================================================================================== */
.inner .stage{padding-top:0}
/* page head: the loud line flush left of the axis, its credit + lede flush right */
.page-head{position:relative;z-index:10;padding:clamp(150px,22vh,230px) 0 clamp(70px,10vh,120px)}
.page-head .split{align-items:end}
.crumbs{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-bottom:26px;font:400 10.5px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-3)}
.crumbs a{color:var(--paper-2);--ofu-thick:1px}
.crumbs span[aria-hidden]{color:rgba(237,233,226,.3)}
.page-title{font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(52px,6.4vw,120px) * var(--dscale));line-height:calc(.95 * var(--dlh));color:var(--paper);text-wrap:balance}
.page-credit{font-family:var(--credit,var(--sans));font-weight:300;text-transform:uppercase;font-size:clamp(14px,1.25vw,20px);line-height:1.5;letter-spacing:.38em;color:var(--paper)}
html[data-h1="A"] .page-credit{font-family:var(--italic);font-style:italic;text-transform:none;letter-spacing:0;font-size:clamp(24px,2vw,34px);line-height:1.2}
.page-lede{margin-top:18px;font:400 clamp(16px,1.2vw,19px)/1.55 var(--sans);color:var(--paper-2);max-width:32em;text-wrap:pretty}
.page-lede strong{font-weight:500;color:var(--paper)}
.page-head .ctas{margin-top:28px}

/* the small stop: a section's arrival on the vein, label only (index left of the axis, name right) */
.stop.stop--mini{min-height:0;margin-top:clamp(90px,14vh,170px);margin-bottom:clamp(36px,5vh,56px);padding:0;display:block}
.stop--mini .split{align-items:center}
.stop--mini .stop-k{font:400 11px/1 var(--mono);letter-spacing:.14em;color:var(--lava-hi)}
.stop--mini .stop-k span{color:rgba(237,233,226,.35)}
.stop--mini .stop-n{font-family:var(--credit,var(--sans));font-weight:300;text-transform:uppercase;font-size:clamp(18px,1.7vw,26px);letter-spacing:.4em;line-height:1.2;color:var(--paper)}
html[data-h1="A"] .stop--mini .stop-n{font-family:var(--italic);font-style:italic;text-transform:none;letter-spacing:0;font-size:clamp(28px,2.4vw,40px)}
.stop--mini .node{top:50%;bottom:auto;margin-top:-7.5px}

/* long-form text (articles, legal pages): sits in a .R column, or .prose--wide on its own */
.prose{font:400 clamp(16px,1.12vw,18px)/1.7 var(--sans);color:rgba(237,233,226,.8);max-width:36em}
.prose>*+*{margin-top:1.05em}
.prose h2{font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);letter-spacing:var(--serif-track);font-size:calc(clamp(30px,2.6vw,44px) * var(--dscale));line-height:1;color:var(--paper);margin-top:1.6em}
.prose h3{font:500 clamp(17px,1.2vw,20px)/1.35 var(--sans);color:var(--paper);margin-top:1.5em}
.prose strong{font-weight:500;color:var(--paper)}
.prose a{color:var(--paper);background-image:linear-gradient(var(--lava),var(--lava));background-size:100% 1px;background-position:0 100%;background-repeat:no-repeat;padding-bottom:1px}
.prose ul,.prose ol{padding-left:1.2em}
.prose li+li{margin-top:.45em}
.prose li::marker{color:var(--lava-hi)}
.prose blockquote{border-left:1px solid var(--lava);padding-left:1em;color:var(--paper)}
.prose figure img{display:block;width:100%;height:auto;border-radius:2px}
.prose figcaption{margin-top:10px;font:400 10.5px/1.4 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--paper-3)}
.prose--wide{max-width:42em}

/* checklist rows (instrument style list): <ol class="checks"><li><span class="n">01</span><span>text</span></li></ol> */
.checks{list-style:none;border-top:1px solid var(--hair-2)}
.checks li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--hair);font:400 15px/1.5 var(--sans);color:var(--paper-2)}
.checks .n{font:400 10.5px/1 var(--mono);color:var(--lava-hi);letter-spacing:.06em}
.checks--minus .n{color:rgba(237,233,226,.45)}

/* key/value instrument rows (the HUD language, full width of a column) */
.readout{border-top:1px solid var(--hair-2)}
.readout .rr{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--hair)}
.readout .rk{font:400 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3)}
.readout .rv-{font:400 14px/1.3 var(--mono);color:var(--paper);text-align:right}

@media (max-width:900px){
  .page-head{padding:120px 0 60px}
  .crumbs{justify-content:flex-start}
  .page-title{font-size:calc(clamp(44px,13vw,64px) * var(--dscale))}
  .page-head .split>.R{margin-top:22px}
  .stop.stop--mini{margin-top:80px}
  .stop--mini .split{display:flex;gap:14px;align-items:baseline}
  .stop--mini .split>.R{margin-top:0}
  .stop--mini .node{left:22.5px;top:50%}
}

/* ================= fiche (experience/<slug>) - owned by the fiche builder ================= */
.fiche .page-head .split{align-items:start}
.fiche .page-title{max-width:9em;margin-left:auto}
.fiche .page-lede{margin-left:auto}
.fiche .page-head .ctas{justify-content:flex-end}
.brief{border-top:1px solid var(--hair-2);margin-top:clamp(40px,8vh,96px)}
.brief-grid{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:12px 28px;padding:20px 0 22px;border-bottom:1px solid var(--hair)}
.brief-grid dt{font:400 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(237,233,226,.45);margin-bottom:10px}
.brief-grid dd{font:400 15px/1.2 var(--mono);color:var(--paper);white-space:nowrap}
.brief-price{padding-top:22px}
.bp-k{font:400 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lava-hi)}
.bp-v{margin-top:12px;font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);font-size:calc(clamp(64px,6vw,112px) * var(--dscale));line-height:.85;color:var(--paper)}
.bp-v.small{font-size:calc(clamp(40px,3.6vw,64px) * var(--dscale));text-transform:var(--serif-case)}
.bp-u{margin-top:12px;font:400 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3)}
.fiche-photo{width:min(480px,100%);margin-left:auto}
.fiche-photo .ph{overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px var(--hair)}
.fiche-photo img{display:block;width:100%;height:auto;filter:saturate(.95) brightness(.94);transform:scale(1.02);transition:transform 1.6s var(--settle),filter 1s var(--settle)}
.fiche-photo:hover img{transform:none;filter:none}
.fiche-photo figcaption{display:flex;justify-content:space-between;flex-direction:row-reverse;gap:16px;margin-top:12px;font:400 10.5px/1.35 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--paper-3);text-align:right}
.fiche-desc .prose{font-size:clamp(17px,1.3vw,21px);line-height:1.6;color:var(--paper-2)}
.kit-h{font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);letter-spacing:var(--serif-track);font-size:calc(clamp(30px,2.6vw,44px) * var(--dscale));line-height:1;color:var(--paper);margin-bottom:22px}
.fiche-kit .L .kit-h,.fiche-req .L .kit-h{text-align:right}
.fiche-kit .L .checks li{grid-template-columns:1fr 34px;text-align:right}
.fiche-kit .L .checks .n{order:2;text-align:right}
.fiche-note{font:400 15px/1.55 var(--sans);color:var(--paper-3);max-width:22em;margin-left:auto}
.rdv-v{padding:18px 0 4px;font:400 clamp(18px,1.5vw,24px)/1.4 var(--sans);color:var(--paper);text-wrap:balance}
.fiche-rdv .L .readout .rr,.fiche-rdv .L .rdv-v{text-align:right}
.fiche-book{position:relative;padding:clamp(40px,8vh,90px) var(--gutter) 0;text-align:center}
.fiche-book .h2{font-size:calc(clamp(64px,8vw,150px) * var(--dscale));margin:22px auto 0}
.fiche-book .h2 em{display:block}
.fiche-book .ctas{justify-content:center;margin-top:40px}
.fiche-book .key{height:56px;padding:0 24px 0 26px;font-size:15px}
.fiche-book .small{margin-top:22px;font:400 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.fiche-book .landing{display:block;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lava-hi)}
.fiche-more{padding-top:clamp(140px,20vh,220px)}
.fiche-more .split{margin-bottom:34px;align-items:end}
@media (max-width:900px){
  .fiche .page-title,.fiche .page-lede{margin-left:0}
  .fiche .page-head .ctas{justify-content:flex-start}
  .brief-grid{grid-template-columns:repeat(2,auto);justify-content:start;gap:18px 40px}
  .fiche-photo{margin-left:0;width:100%}
  .fiche-photo figcaption{flex-direction:row;text-align:left}
  .fiche-kit .L .kit-h,.fiche-req .L .kit-h,.fiche-rdv .L .readout .rr,.fiche-rdv .L .rdv-v{text-align:left}
  .fiche-kit .L .checks li{grid-template-columns:34px 1fr;text-align:left}
  .fiche-kit .L .checks .n{order:0;text-align:left}
  .fiche-note{margin-left:0}
  .fiche-book{text-align:left;padding:30px var(--gutter) 0 46px}
  .fiche-book .h2{margin-left:0}
  .fiche-book .ctas{justify-content:flex-start;flex-direction:column;align-items:stretch}
  .fiche-book .key{justify-content:center;white-space:normal;height:auto;min-height:56px;padding:14px 20px;text-align:center}
  .fiche-more .split{display:block}
}

.page-head .eyebrow-s{margin-bottom:22px}
.page-head .eyebrow-s+.page-title{margin-top:0}

/* ================= parcours - owned by the fiche builder ================= */
.parcours .page-head .split{align-items:end}
.parcours .page-title{max-width:7em;margin-left:auto}
.parcours .page-credit{margin-top:22px}
.parcours-photo{margin-left:0;width:min(420px,100%)}
.parcours-photo figcaption{flex-direction:row;text-align:left}
.parcours-photo img{filter:grayscale(1) contrast(1.05) brightness(.95)}
.parcours-photo:hover img{filter:grayscale(.2)}
.parcours-bio .facts{display:flex;justify-content:flex-end;gap:44px}
.parcours-bio .facts div{text-align:right}
.parcours-bio .facts b{display:block;font-family:var(--serif);font-weight:var(--serif-w);font-size:calc(clamp(56px,5vw,88px) * var(--dscale));line-height:.9;color:var(--paper)}
.parcours-bio .facts span{display:block;margin-top:10px;font:400 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3)}
.parcours-bio .prose{font-size:clamp(17px,1.3vw,21px);line-height:1.6}
.creds{list-style:none;border-top:1px solid var(--hair-2)}
.cred{position:relative;display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);align-items:center;padding:34px var(--gutter);border-bottom:1px solid var(--hair)}
.cred::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--ground);box-shadow:0 0 0 1px rgba(255,106,43,.6)}
.cred-y{grid-column:1;justify-self:end;font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);font-size:calc(clamp(48px,4.6vw,84px) * var(--dscale));line-height:.9;color:var(--paper)}
.cred-b{grid-column:3;max-width:34em}
.cred-t{display:block;font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);letter-spacing:var(--serif-track);font-size:calc(clamp(24px,2vw,34px) * var(--dscale));line-height:1;color:var(--paper)}
.cred-s{display:block;margin-top:10px;font:400 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lava-hi)}
.cred-d{display:block;margin-top:12px;font:400 15px/1.6 var(--sans);color:var(--paper-2)}
.parcours-pro .readout .rr{grid-template-columns:auto 1fr}
.parcours-end{padding-top:clamp(140px,20vh,220px)}
@media (max-width:900px){
  .parcours .page-title{margin-left:0}
  .parcours-bio .facts{justify-content:flex-start}
  .parcours-bio .facts div{text-align:left}
  .cred{display:block;padding:26px var(--gutter) 26px 46px}
  .cred::after{left:22.5px;top:42px}
  .cred-y{display:block;font-size:44px}
  .cred-b{display:block;margin-top:12px}
}
/* page heads sit one margin tier wider than the body columns (nav < head < body) */
.page-head{--lcol:clamp(500px,calc(50vw - var(--axis-gap) - 110px),600px)}
.page-head .page-lede{max-width:none}
@media (max-width:900px){.page-head{--lcol:100%}}
@media (max-width:900px){ .row .data{grid-template-columns:repeat(3,auto) minmax(0,1fr);column-gap:14px} .row .price .dd.small{white-space:normal;text-align:right} }
@media (max-width:900px){
  .stop--mini .split{display:flex;justify-content:flex-start;gap:16px;align-items:baseline;padding:0 var(--gutter) 0 46px}
  .stop--mini .split>.L,.stop--mini .split>.R{width:auto;max-width:none;text-align:left}
  .stop--mini .stop-n{font-size:15px;letter-spacing:.3em;white-space:nowrap}
  .cred-y{text-align:left}
}
@media (max-width:900px){ .cred-y,.cred-b,.split>.L,.split>.R,.row .who,.step .k,.drow .m{justify-self:start} }

/* ================= content photos (assets/photos.js): closer look, in-frame parallax, lightbox ================= */
.zx{cursor:zoom-in;position:relative;display:block;overflow:hidden}
.zx-frame{display:block;overflow:hidden;border-radius:2px}
.zx:focus-visible{outline:1.5px solid var(--paper);outline-offset:4px}
.zx .pz{display:block;will-change:transform;transform-origin:50% 50%}
.zx .pz>img{transform:none;transition:transform .6s cubic-bezier(.25,.6,.3,1),filter .6s cubic-bezier(.25,.6,.3,1)}
@media (hover:hover){
  .zx:hover .pz>img{transform:scale(1.04);filter:brightness(1.07) saturate(1.02)}
  .parcours-photo .zx:hover .pz>img{filter:grayscale(.2) brightness(1.05)}
}
.zx.zx-src .pz>img{opacity:0;transition:none}
html:not(.zx-px) .zx .pz{transform:none!important}
@media (prefers-reduced-motion:reduce){.zx .pz>img{transition:none}.zx:hover .pz>img{transform:none}}
.lbx{position:fixed;inset:0;z-index:95;touch-action:none}
.lbx[hidden]{display:none}
.lbx-scrim{position:absolute;inset:0;background:rgba(5,4,3,.94)}
.lbx-img{position:fixed;display:block;object-fit:contain;transform-origin:0 0;box-shadow:0 30px 120px -30px rgba(0,0,0,.9);cursor:zoom-out;will-change:transform,clip-path;user-select:none;-webkit-user-drag:none}
.lbx-bar{position:fixed;left:max(var(--gutter),6vw);right:max(var(--gutter),6vw);bottom:28px;display:flex;justify-content:space-between;gap:24px;align-items:baseline;pointer-events:none}
.lbx-cap{font:400 11px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-2);max-width:70ch}
.lbx-n{font:400 11px/1 var(--mono);letter-spacing:.12em;color:var(--lava-hi)}
.lbx-x{position:fixed;top:18px;right:max(var(--gutter),6vw)}
.lbx-x span{margin-left:8px;font:400 10px/1 var(--mono);color:var(--paper-3)}
.lbx-btn{position:fixed;top:50%;width:52px;height:52px;margin-top:-26px;display:grid;place-items:center;border-radius:50%;color:var(--paper);background:rgba(16,12,10,.6);box-shadow:inset 0 0 0 1px var(--hair-2);transition:background-color .3s var(--settle),box-shadow .3s var(--settle)}
.lbx-btn svg{width:16px;height:16px}
.lbx-btn:hover{background:rgba(237,233,226,.08);box-shadow:inset 0 0 0 1px rgba(237,233,226,.6)}
.lbx-btn[hidden]{display:none}
.lbx-prev{left:max(14px,1.6vw)}.lbx-next{right:max(14px,1.6vw)}
body.lbx-open{overflow:hidden}
body.lbx-open .dock,body.lbx-open .nav,body.lbx-open .alt{visibility:hidden}
@media (max-width:900px){.lbx-btn{display:none}.lbx-x{top:12px;right:12px}.lbx-x span{display:none}.lbx-bar{bottom:20px;flex-direction:column;gap:8px}}

/* finale line on one line from 1280 up (phones wrap) */
@media (min-width:1280px){.finale .body{max-width:none;white-space:nowrap}}

@media (max-width:900px){.stop--mini .split>.R{flex:1;min-width:0}.stop--mini .stop-n{white-space:normal;line-height:1.5}}

/* ================= round 6: logo options, lockup, footer partner mark, contact panel ================= */
/* one 42x30 box for every mark (html[data-logo="0..4"], set in <head>), so switching never moves the nav */
.mark-box{position:relative;display:block;flex:0 0 auto;width:42px;height:30px}
.mark-box .mark{position:absolute;inset:0;width:100%;height:100%;display:none;overflow:visible}
.mark-box img.mark{object-fit:contain;filter:drop-shadow(0 0 14px rgba(255,60,0,.22))}
html:not([data-logo]) .mark-1,html[data-logo="1"] .mark-1,html[data-logo="0"] .mark-0,html[data-logo="2"] .mark-2,html[data-logo="3"] .mark-3,html[data-logo="4"] .mark-4{display:block}
.brand .mark-box .mark{height:100%}
.mark-1 .ember-glow{transform-origin:14.34px 19.40px;animation:ember 3.6s ease-in-out infinite}
.mark-1 .ember{filter:drop-shadow(0 0 2px rgba(255,60,0,.9))}
@keyframes ember{0%,100%{opacity:.22;transform:scale(.85)}50%{opacity:.5;transform:scale(1.15)}}
@media (prefers-reduced-motion:reduce){.mark-1 .ember-glow{animation:none}}
/* wordmark: VOLCANO larger and tracked, EXPLORER smaller and wider tracked, both the same measure */
.brand .wm{gap:5px}
.brand .wm span:first-child{font-size:12.5px;letter-spacing:.38em;color:var(--paper)}
.brand .wm span:last-child{font-size:8.2px;letter-spacing:.84em;color:var(--paper-2)}
.foot .brand--lg .mark-box{width:84px;height:60px}
.foot .brand--lg .wm{gap:9px}
.foot .brand--lg .wm span:first-child{font-size:19px}
.foot .brand--lg .wm span:last-child{font-size:12.5px}
@media (max-width:900px){.nav .mark-box{width:36px;height:26px}.brand .wm span:first-child{font-size:11px}.brand .wm span:last-child{font-size:7.2px}}
/* footer: the Bureau Montagne Rando Volcan badge is a partner mark beside the membership line; subfooter = (c) left, sources right */
.foot .partner{display:flex;align-items:center;gap:12px}
.foot .partner img{width:34px;height:34px;flex:0 0 auto;opacity:.9;filter:saturate(.9)}
.foot-base>span:first-child{text-align:left}
/* contact panel */
.contact{position:fixed;inset:0;z-index:85}
.contact[hidden]{display:none}
.contact-scrim{position:absolute;inset:0;background:rgba(7,6,5,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .3s var(--settle)}
.contact-panel{position:absolute;top:0;right:0;bottom:0;width:min(480px,100%);overflow:auto;overscroll-behavior:contain;background:#0e0b09;box-shadow:-1px 0 0 var(--hair-2),-40px 0 120px -40px rgba(0,0,0,.9);
  padding:28px 32px 32px;display:flex;flex-direction:column;gap:26px;transform:translateX(102%);transition:transform .34s cubic-bezier(.2,.75,.25,1)}
.contact.open .contact-scrim{opacity:1}
.contact.open .contact-panel{transform:none}
.contact-grip{display:none}
.contact-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.contact-k{font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lava-hi)}
.contact-name{margin-top:14px;font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);letter-spacing:var(--serif-track);font-size:calc(40px * var(--dscale));line-height:.95;color:var(--paper)}
.contact-role{margin-top:12px;font:400 14px/1.5 var(--sans);color:var(--paper-3);max-width:28em}
.contact-actions{display:grid;gap:8px}
.ca{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:0 18px;border-radius:6px;box-shadow:inset 0 0 0 1px var(--hair-2);transition:box-shadow .3s var(--settle),background-color .3s var(--settle)}
.ca:hover,.ca:focus-visible{box-shadow:inset 0 0 0 1px rgba(255,106,43,.7);background:rgba(255,60,0,.07)}
.ca:first-child{background:var(--lava);box-shadow:none;color:#160500}
.ca:first-child .ca-v{color:#2a0a00}
.ca:first-child:hover{background:var(--lava-hi)}
.ca-k{display:inline-flex;align-items:center;gap:10px;font:500 15px/1 var(--sans)}
.ca-k .wa{width:17px;height:17px;color:#25d366}
.ca-v{font:400 12px/1.2 var(--mono);color:var(--paper-2);text-align:right}
.contact-copy .rr{grid-template-columns:auto 1fr}
.contact-copy .rv-{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:10px;font-size:13px}
.rr--addr .rv-{display:block;line-height:1.6}
.rr--addr a{color:var(--lava-hi)}
.copy{font:400 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-2);padding:7px 9px;border-radius:4px;box-shadow:inset 0 0 0 1px var(--hair-2);transition:color .3s,box-shadow .3s}
.copy:hover{color:var(--paper);box-shadow:inset 0 0 0 1px rgba(237,233,226,.6)}
.copy.is-done{color:var(--lava-hi);box-shadow:inset 0 0 0 1px rgba(255,106,43,.6)}
.contact-note{font:400 11px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.contact-foot{margin-top:auto}
.contact-foot .key{width:100%;justify-content:center;height:54px}
body.contact-open{overflow:hidden}
@media (max-width:900px){
  .contact-panel{top:auto;left:0;width:100%;max-height:88vh;border-radius:14px 14px 0 0;padding:14px 20px calc(22px + env(safe-area-inset-bottom));transform:translateY(102%);box-shadow:0 -1px 0 var(--hair-2),0 -40px 120px -30px rgba(0,0,0,.9)}
  .contact-grip{display:block;width:44px;height:4px;border-radius:4px;background:rgba(237,233,226,.28);margin:0 auto -6px}
  .contact-name{font-size:calc(30px * var(--dscale));margin-top:10px}
  .contact-panel{gap:16px}
  .contact-role{font-size:13px;margin-top:8px}
  .ca{min-height:50px}
  .contact-copy .rr{padding:10px 0}
  .contact-foot .key{height:50px}
  body.contact-open .dock{visibility:hidden}
}
@media (prefers-reduced-motion:reduce){.contact-panel,.contact-scrim{transition:none}}

/* ================= editorial builder: journal, articles, videos, chasseurs-volcans, volcan-live, faq, legal =================
   Source of truth: assets/editorial.css (copied into this marked region of site.css by tools/editorial-lib.mjs on build;
   edit editorial.css, not the copy). Every rule is scoped by its page class on <main>. */

/* ---------- shared editorial bits ---------- */
.jrow::after,.art-nav::after,.qa-row .pin,.vrow::after,.ep::after{content:"";pointer-events:none;z-index:1;position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--ground);box-shadow:0 0 0 1px rgba(255,106,43,.6);transition:background-color .4s var(--settle),box-shadow .4s var(--settle),transform .5s var(--settle)}
.switch button[aria-pressed="true"]{background:rgba(255,60,0,.13);color:var(--paper);box-shadow:inset 0 0 0 1px rgba(255,106,43,.5)}
.switch button[aria-pressed="true"] small{color:var(--lava-hi)}
.mono-k{font:400 10.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-3)}
.page-head .page-credit+.page-lede{margin-top:22px}
/* accented caps (É, Ê) on a second line must clear the line above */
.journal .page-title,.article .page-title,.legal .page-title,.faqp .page-title,.videos .page-title,.chasseurs .page-title,.live .page-title{line-height:calc(1.13 * var(--dlh))}

/* ---------- /journal ---------- */
.une{margin-top:clamp(20px,4vh,40px);align-items:center;color:inherit}
.une .L{display:block}
.une-ph{display:block;overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px var(--hair);margin-left:auto;width:100%}
.une-ph img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;filter:saturate(.95) brightness(.9);transform:scale(1.02);transition:transform 1.6s var(--settle),filter 1s var(--settle)}
.une:hover .une-ph img{transform:none;filter:none}
.une .R{display:flex;flex-direction:column;align-items:flex-start}
.une-m{display:block;margin-top:22px;font:400 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3)}
.une-t{display:block;margin-top:14px;font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(38px,3.4vw,62px) * var(--dscale));line-height:calc(.98 * var(--dlh));color:var(--paper);transition:color .4s var(--settle);text-wrap:balance}
.une:hover .une-t{color:var(--lava-hi)}
.une-x{display:block;margin-top:18px;max-width:30em;font:400 clamp(15px,1.1vw,17px)/1.6 var(--sans);color:var(--paper-2)}
.une .link-arrow{margin-top:16px}
.une[hidden]{display:none}
.jfilter{margin-top:clamp(100px,14vh,160px);align-items:center}
.jcount{font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-3)}
.jcount b{font-weight:400;color:var(--lava-hi)}
.jfilter .switch{flex-wrap:nowrap;max-width:100%}
.jfilter .switch button{padding:0 11px;font-size:11px;letter-spacing:.05em;gap:7px}
.jlog{list-style:none;border-top:1px solid var(--hair-2)}
.jlog[hidden],.journal .stop[hidden]{display:none}
.jrow{position:relative;border-bottom:1px solid var(--hair)}
.jrow[hidden]{display:none}
.jrow a{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);align-items:center;padding:34px var(--gutter);color:inherit}
.jrow-l{grid-column:1;justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:12px;width:min(300px,100%)}
.jrow-ph{display:block;width:100%;overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px var(--hair)}
.jrow-ph img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;filter:saturate(.85) brightness(.8);transform:scale(1.04);transition:transform 1.4s var(--settle),filter .9s var(--settle)}
.jrow a:hover .jrow-ph img,.jrow a:focus-visible .jrow-ph img{transform:none;filter:none}
.jrow-d{font:400 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-3)}
.jrow-r{grid-column:3;display:block;max-width:560px}
.jrow-m{display:block;font:400 10.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-3)}
.jrow-m b{font-weight:400;color:var(--lava-hi)}
.jrow-t{display:block;margin-top:12px;font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(26px,2.2vw,38px) * var(--dscale));line-height:1.02;color:var(--paper);transition:color .4s var(--settle);text-wrap:balance}
.jrow-x{display:block;margin-top:12px;font:400 15px/1.55 var(--sans);color:var(--paper-3);max-width:34em;transition:color .5s var(--settle)}
.jrow-go{display:inline-flex;align-items:center;gap:10px;margin-top:16px;font:400 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-2)}
.jrow-go .arr,.une .arr{width:14px;height:14px;transition:transform .45s var(--settle)}
.jrow a:hover .jrow-t{color:var(--lava-hi)}
.jrow a:hover .jrow-x{color:var(--paper-2)}
.jrow a:hover .jrow-go .arr{transform:translateX(3px)}
.jrow:hover::after{background:var(--lava);box-shadow:0 0 0 1px var(--lava),0 0 0 6px rgba(255,60,0,.14),0 0 22px rgba(255,60,0,.7);transform:scale(1.25)}
.jempty{padding:60px var(--gutter);text-align:center;font:400 12px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.journal .jlog:last-of-type{margin-bottom:clamp(60px,10vh,120px)}

/* ---------- /journal/<slug> : the long read ---------- */
.article .page-head .split{align-items:end}
.art-title{font-size:calc(clamp(46px,4.6vw,84px) * var(--dscale))}
.art-title[data-len="m"]{font-size:calc(clamp(42px,4.1vw,74px) * var(--dscale))}
.art-title[data-len="l"]{font-size:calc(clamp(36px,3.4vw,60px) * var(--dscale))}
.art-title[data-len="xl"]{font-size:calc(clamp(34px,3.2vw,58px) * var(--dscale))}
.art-meta{max-width:440px}
.art-meta .rr{grid-template-columns:auto 1fr}
.art-lede{margin-top:26px;font-size:clamp(17px,1.3vw,21px);line-height:1.5;color:var(--paper)}
.art-intro{align-items:start;margin-top:clamp(30px,6vh,70px)}
.art-fig{width:100%;margin-left:auto}
.art-fig .ph{overflow:hidden;border-radius:2px;box-shadow:0 0 0 1px var(--hair)}
.art-fig img{display:block;width:100%;height:auto;filter:saturate(.95) brightness(.94)}
.art-fig figcaption{display:flex;justify-content:space-between;flex-direction:row-reverse;gap:16px;margin-top:12px;font:400 10.5px/1.35 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--paper-3)}
.art-prose{max-width:34em;font-size:clamp(16.5px,1.15vw,18.5px);line-height:1.72;color:rgba(237,233,226,.82)}
.art-prose ul,.art-prose ol{padding-left:0;list-style:none;border-top:1px solid var(--hair)}
.art-prose li{position:relative;padding:12px 0 12px 30px;border-bottom:1px solid var(--hair);margin:0}
.art-prose li+li{margin-top:0}
.art-prose ul li::before{content:"";position:absolute;left:4px;top:1.32em;width:12px;height:1px;background:var(--lava-hi)}
.art-prose ol{counter-reset:li}
.art-prose ol li{counter-increment:li}
.art-prose ol li::before{content:counter(li,decimal-leading-zero);position:absolute;left:0;top:15px;font:400 10.5px/1.6 var(--mono);color:var(--lava-hi);letter-spacing:.04em}
.art-first>p:first-child{font-size:1.14em;line-height:1.6;color:var(--paper)}
.art-first>p:first-child::first-letter{float:left;font-family:var(--serif);font-weight:var(--serif-w);text-transform:var(--serif-case);font-size:4.4em;line-height:.82;margin:.06em .1em 0 0;color:var(--lava-hi)}
.stop.art-sec,.stop.lg-sec{min-height:0;margin:0;padding:clamp(70px,11vh,120px) var(--gutter) 0;display:grid;align-items:start}
.stop.art-sec .node,.stop.lg-sec .node{top:calc(clamp(70px,11vh,120px) + 6px);margin-top:0}
.art-sec .L,.lg-sec .L{align-self:stretch}
.ed-side{position:sticky;top:110px;text-align:right}
.side-n{display:block;font:400 11px/1 var(--mono);letter-spacing:.14em;color:var(--lava-hi)}
.side-n span{color:rgba(237,233,226,.35)}
.side-h{margin-top:14px;font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(28px,2.3vw,40px) * var(--dscale));line-height:calc(1 * var(--dlh));color:var(--paper);text-wrap:balance;margin-left:auto}
.side-h.long{font-size:calc(clamp(24px,1.9vw,34px) * var(--dscale))}
.art-sec .art-prose{padding-top:2px}
.art-author{margin-top:clamp(110px,16vh,170px);align-items:center}
.art-author img{display:block;width:72px;height:72px;border-radius:50%;object-fit:cover;margin-left:auto;box-shadow:0 0 0 1px var(--hair-2);filter:grayscale(.3)}
.aa-n{font-family:var(--credit,var(--sans));font-weight:300;text-transform:uppercase;letter-spacing:.34em;font-size:16px;color:var(--paper)}
.aa-r{margin-top:8px;font:400 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.art-nav{position:relative;display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);margin-top:56px;padding:0 var(--gutter);border-top:1px solid var(--hair-2);border-bottom:1px solid var(--hair)}
.art-nav .an{display:flex;flex-direction:column;gap:12px;padding:30px 0;color:inherit}
.art-nav .an-prev{grid-column:1;align-items:flex-end;text-align:right}
.art-nav .an-next{grid-column:3}
.an-k{display:inline-flex;align-items:center;gap:10px;font:400 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-3)}
.an-k .arr{width:14px;height:14px}
.an-t{font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(22px,1.8vw,30px) * var(--dscale));line-height:1.04;color:var(--paper-2);max-width:18em;transition:color .4s var(--settle);text-wrap:balance}
.art-nav a.an:hover .an-t{color:var(--lava-hi)}
.art-back{padding:34px var(--gutter) clamp(80px,12vh,140px);text-align:center}
.art-back .link-arrow{color:var(--paper-2)}

/* ---------- legal pages ---------- */
.legal .page-title{font-size:calc(clamp(48px,5vw,92px) * var(--dscale))}
.legal .page-credit{font-size:clamp(13px,1.05vw,17px)}
.toc{list-style:none;margin-top:30px;border-top:1px solid var(--hair-2);max-width:460px}
.toc a{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--hair);font:400 14px/1.4 var(--sans);color:var(--paper-2);transition:color .35s var(--settle),padding .45s var(--settle)}
.toc a span{font:400 10.5px/1 var(--mono);color:var(--lava-hi);letter-spacing:.06em}
.toc a:hover{color:var(--paper);padding-left:4px}
.lg-body{max-width:34em}
.lg-body>*+*{margin-top:1em}
.lg-body p{font:400 clamp(15.5px,1.08vw,17.5px)/1.7 var(--sans);color:rgba(237,233,226,.8)}
.lg-body p.small{font-size:15px;color:var(--paper-3)}
.lg-body strong{font-weight:500;color:var(--paper)}
.lg-body a{color:var(--paper);background-image:linear-gradient(var(--lava),var(--lava));background-size:100% 1px;background-position:0 100%;background-repeat:no-repeat;padding-bottom:1px}
.lg-body h3{font:500 clamp(16px,1.15vw,18.5px)/1.35 var(--sans);color:var(--paper);margin-top:1.8em}
.lg-body h3 .hn{font:400 11px/1 var(--mono);color:var(--lava-hi);margin-right:12px;letter-spacing:.06em;vertical-align:text-top}
.lg-body>h3:first-child{margin-top:0}
.lg-body .checks{margin-top:14px}
.lg-body .checks li{font-size:15.5px}
.lg-body .readout{margin-top:14px}
.lg-body .readout .rr{grid-template-columns:minmax(120px,auto) 1fr}
.lg-body .readout .rv-{font:400 14px/1.45 var(--mono);text-align:right}
.lg-body .readout .rv- a{background:none;color:var(--paper)}
.lg-body .readout .rv- a:hover{color:var(--lava-hi)}
.lg-note{border-left:1px solid var(--lava);padding:2px 0 2px 20px}
.lg-note[data-tone="red"]{border-left-color:#e2452a}
.lg-note[data-tone="green"]{border-left-color:#7fb069}
.lg-note>*+*{margin-top:.6em}
.lg-note h3{margin-top:0}
.lg-note p{color:var(--paper)}
.lg-more{margin-top:clamp(110px,16vh,170px)}
.legal .art-nav{margin-top:0}

/* ---------- /faq : the questions as an instrument ---------- */
.qa-index{margin-top:clamp(10px,3vh,30px);align-items:start}
.qa-index .L p{font:400 11px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-3)}
.qa-index .L p b{display:block;font-family:var(--serif);font-weight:var(--serif-w);font-size:calc(clamp(64px,6vw,112px) * var(--dscale));line-height:.85;letter-spacing:var(--serif-track);color:var(--paper);margin-bottom:12px}
.qa-toc{list-style:none;columns:2;column-gap:28px;border-top:1px solid var(--hair-2);padding-top:6px}
.qa-toc li{break-inside:avoid}
.qa-toc a{display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:baseline;padding:9px 0;font:400 13.5px/1.4 var(--sans);color:var(--paper-2);border-bottom:1px solid var(--hair);transition:color .35s var(--settle)}
.qa-toc a span{font:400 10px/1 var(--mono);color:var(--lava-hi);letter-spacing:.06em}
.qa-toc a:hover{color:var(--paper)}
.qa{list-style:none;border-top:1px solid var(--hair-2)}
.qa-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);align-items:start;padding:40px var(--gutter);border-bottom:1px solid var(--hair);scroll-margin-top:90px;transition:background-color .8s var(--settle)}
.qa-row .pin{top:54px}
.qa-q{grid-column:1;justify-self:end;text-align:right;max-width:var(--lcol)}
.qa-n{display:block;font:400 10.5px/1 var(--mono);letter-spacing:.14em;color:var(--lava-hi);margin-bottom:12px}
.qa-q h2{font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(26px,2.15vw,38px) * var(--dscale));line-height:1.02;color:var(--paper);text-wrap:balance}
.qa-a{grid-column:3;max-width:34em;font:400 clamp(15.5px,1.1vw,17.5px)/1.68 var(--sans);color:rgba(237,233,226,.8);padding-top:24px}
.qa-row:target{background:linear-gradient(90deg,transparent,rgba(255,60,0,.06) 30%,rgba(255,60,0,.06) 70%,transparent)}
.qa-row:target .pin{background:var(--lava);box-shadow:0 0 0 1px var(--lava),0 0 18px rgba(255,60,0,.7)}
.faqp .finale{padding-top:clamp(150px,22vh,240px)}

/* ---------- /videos ---------- */
.player{position:relative;margin:clamp(20px,4vh,40px) auto 0;width:min(1180px,calc(100% - var(--gutter) * 2))}
.player-box{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:3px;background:#000;box-shadow:0 0 0 1px var(--hair-2),0 40px 120px -40px rgba(0,0,0,.9)}
.player-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.player-face{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:pointer}
.player-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.62) saturate(.9);transition:filter 1s var(--settle),transform 1.6s var(--settle);transform:scale(1.02)}
.player-face:hover img{filter:brightness(.8);transform:none}
.player-play{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:var(--lava);box-shadow:0 0 0 10px rgba(255,60,0,.16),0 0 60px rgba(255,60,0,.55);display:grid;place-items:center;color:#160500;transition:transform .5s var(--settle)}
.player-face:hover .player-play{transform:scale(1.06)}
.player-play svg{width:26px;height:26px;margin-left:4px}
.player-cap{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:baseline;padding:18px 2px 0;font:400 11px/1.45 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.player-cap b{display:block;font:400 16px/1.35 var(--sans);letter-spacing:-.005em;text-transform:none;color:var(--paper)}
.player-cap .pc-n{color:var(--lava-hi)}
.player-cap a{color:var(--paper-2);display:inline-flex;align-items:center;gap:8px;--ofu-thick:1px}
.player-cap a .arr{width:12px;height:12px}
.vlist{list-style:none;border-top:1px solid var(--hair-2)}
.vrow{position:relative;border-bottom:1px solid var(--hair)}
.vrow button{position:relative;display:grid;width:100%;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);align-items:center;padding:24px var(--gutter);text-align:left}
.vrow-l{grid-column:1;justify-self:end;text-align:right}
.vrow-dur{display:block;font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:-.01em;font-size:calc(clamp(34px,3vw,54px) * var(--dscale));line-height:.9;color:var(--paper-2);font-variant-numeric:tabular-nums;transition:color .4s var(--settle)}
.vrow-d{display:block;margin-top:10px;font:400 10.5px/1 var(--mono);letter-spacing:.1em;color:var(--paper-3)}
.vrow-r{grid-column:3;max-width:560px}
.vrow-t{display:block;font:400 clamp(16px,1.2vw,19px)/1.35 var(--sans);color:var(--paper);transition:color .4s var(--settle)}
.vrow-x{display:block;margin-top:6px;font:400 14px/1.5 var(--sans);color:var(--paper-3)}
.vrow button:hover .vrow-t,.vrow.is-on .vrow-t{color:var(--lava-hi)}
.vrow button:hover .vrow-dur,.vrow.is-on .vrow-dur{color:var(--paper)}
.vrow:hover::after,.vrow.is-on::after{background:var(--lava);box-shadow:0 0 0 1px var(--lava),0 0 0 6px rgba(255,60,0,.14),0 0 22px rgba(255,60,0,.7)}
.vrow.is-on .vrow-d{color:var(--lava-hi)}
.videos .finale .h2 em,.chasseurs .finale .h2 em{display:block}

/* ---------- /chasseurs-volcans ---------- */
.gate{max-width:440px}
.gate p{font:400 clamp(15px,1.1vw,17px)/1.6 var(--sans);color:var(--paper-2)}
.gate form{margin-top:24px}
.gate-field{position:relative;display:flex;align-items:center;border-bottom:1px solid var(--hair-2);transition:border-color .4s var(--settle)}
.gate-field:focus-within{border-color:var(--lava-hi)}
.gate-field.is-wrong{border-color:#e2452a;animation:gate-no .42s var(--settle)}
@keyframes gate-no{0%,100%{transform:none}20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
.gate input{flex:1;min-width:0;height:54px;background:none;border:0;outline:0;color:var(--paper);font:400 18px/1 var(--mono);letter-spacing:.1em}
.gate input::placeholder{color:var(--paper-3);letter-spacing:.12em;text-transform:uppercase;font-size:12px}
.gate .eye{width:44px;height:44px;display:grid;place-items:center;color:var(--paper-3)}
.gate .eye:hover{color:var(--paper)}
.gate .eye svg{width:18px;height:18px}
.gate .err{min-height:22px;margin-top:10px;font:400 11px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#ff6b4f}
.gate .key{margin-top:8px}
.chasseurs .page-head .split{align-items:end}
.series[hidden]{display:none}
.eps{list-style:none;border-top:1px solid var(--hair-2);margin-top:30px}
.ep{position:relative;border-bottom:1px solid var(--hair)}
.ep button{display:grid;width:100%;grid-template-columns:minmax(0,1fr) calc(var(--axis-gap) * 2) minmax(0,1fr);align-items:center;padding:18px var(--gutter);text-align:left}
.ep-t{grid-column:1;justify-self:end;text-align:right;font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(30px,2.6vw,46px) * var(--dscale));line-height:1;color:var(--paper-2);transition:color .4s var(--settle)}
.ep-n{grid-column:3;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-3)}
.ep button:hover .ep-t,.ep.is-on .ep-t{color:var(--paper)}
.ep.is-on .ep-n{color:var(--lava-hi)}
.ep:hover::after,.ep.is-on::after{background:var(--lava);box-shadow:0 0 0 1px var(--lava),0 0 18px rgba(255,60,0,.7)}

/* ---------- /volcan-live ---------- */
.live .page-head .hud-clock{display:block;margin-top:22px;font:400 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-3)}
.drum{position:relative;margin:0 auto;width:min(1240px,calc(100% - var(--gutter) * 2))}
.drum-cap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px;font:400 10.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.drum-cap b{font-weight:400;color:var(--paper)}
.drum-cap .live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#6f6a63;margin-right:8px;vertical-align:1px}
.drum.is-live .drum-cap .live-dot{background:var(--lava);box-shadow:0 0 8px rgba(255,60,0,.8)}
.ch{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;border-top:1px solid var(--hair)}
.ch:last-of-type{border-bottom:1px solid var(--hair)}
div.ch-k,.ch-k{font:400 10.5px/1.45 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.ch-k b{display:block;font-weight:400;font-size:13px;color:var(--paper);letter-spacing:.06em}
.ch-k span{display:block}
.ch svg{display:block;width:100%;height:clamp(70px,9vh,96px);overflow:visible}
.ch.bor svg{height:clamp(110px,15vh,150px)}
.drum-axis{display:flex;justify-content:space-between;margin:12px 0 0 168px;font:400 10.5px/1 var(--mono);letter-spacing:.06em;color:var(--paper-3)}
.drum-note{margin-top:16px;font:400 10.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:rgba(237,233,226,.4);text-align:center}
.bul{align-items:start}
.bul .L{position:sticky;top:120px;align-self:start}
.bul-alert{font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:var(--serif-track);text-transform:var(--serif-case);font-size:calc(clamp(64px,6.4vw,120px) * var(--dscale));line-height:.86;color:var(--paper);margin-top:16px}
.bul-alert .dot{width:14px;height:14px;margin-right:16px;vertical-align:.18em;background:#e8b13a;box-shadow:0 0 18px rgba(232,177,58,.7)}
.bul-meta{margin-top:20px;font:400 11px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.bul-meta b{font-weight:400;color:var(--paper)}
.bul .L .link-arrow{margin-top:18px}
.bul-sec{margin-top:34px}
.bul-sec:first-child{margin-top:0}
.bul-sec h3{font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lava-hi);margin-bottom:12px}
.bul .readout .rr{grid-template-columns:1fr auto}
.bul .readout .rk{text-transform:none;letter-spacing:.02em;font-size:13px;color:var(--paper-2);line-height:1.45}
.bul .readout .rv-{font-family:var(--serif);font-weight:var(--serif-w);font-size:calc(30px * var(--dscale));line-height:1}
.bul .sub{display:block;margin-top:5px;font:400 11.5px/1.5 var(--mono);color:var(--paper-3)}
.bul-lines p{font:400 15px/1.6 var(--sans);color:var(--paper-2);padding:10px 0;border-bottom:1px solid var(--hair)}
.bul-lines p:first-child{border-top:1px solid var(--hair-2)}
.bul-warn{margin-top:26px;font:400 12.5px/1.6 var(--sans);color:var(--paper-3);max-width:34em}
.cams{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.4vw,22px);width:min(1240px,calc(100% - var(--gutter) * 2));margin:0 auto}
.cam{position:relative;margin:0}
.cam button{display:block;width:100%;text-align:left}
.cam .ph{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:2px;background:#0c0a09;box-shadow:0 0 0 1px var(--hair)}
.cam img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform 1.4s var(--settle)}
.cam button:hover img{transform:scale(1.025)}
.cam .off{position:absolute;inset:0;display:none;place-items:center;font:400 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-3)}
.cam.is-off img{display:none}
.cam.is-off .off{display:grid}
.cam figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font:400 10.5px/1.35 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--paper-3)}
.cam figcaption b{font-weight:400;color:var(--paper)}
.cams-note{margin-top:18px}
.lightbox{position:fixed;inset:0;z-index:85;display:grid;place-items:center;padding:4vh 4vw;background:rgba(7,6,5,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.lightbox[hidden]{display:none}
.lightbox figure{max-width:min(1200px,100%)}
.lightbox img{display:block;max-width:100%;max-height:80vh;border-radius:2px;box-shadow:0 0 0 1px var(--hair-2)}
.lightbox figcaption{display:flex;justify-content:space-between;gap:20px;margin-top:12px;font:400 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-2)}
.lightbox .x{position:absolute;top:22px;right:var(--gutter)}
.wx{align-items:start}
.wx-t{font-family:var(--serif);font-weight:var(--serif-w);letter-spacing:-.01em;font-size:calc(clamp(88px,9vw,170px) * var(--dscale));line-height:.82;color:var(--paper);font-variant-numeric:tabular-nums}
.wx-t small{font-family:var(--mono);font-size:.16em;letter-spacing:.04em;color:var(--paper-3);margin-left:.2em;vertical-align:.9em}
.wx-sky{margin-top:16px;font-family:var(--credit,var(--sans));font-weight:300;text-transform:uppercase;letter-spacing:.34em;font-size:clamp(14px,1.2vw,18px);color:var(--paper)}
.wx-stamp{margin-top:14px;font:400 10.5px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-3)}
.wx .readout .rr{grid-template-columns:1fr auto}
.wx-fc{margin-top:26px}
.wx-fc .rr{grid-template-columns:110px 1fr auto!important}
.wx-fc .rk{text-transform:uppercase}
.wx .link-arrow{margin-top:18px}
.live-about{margin-top:clamp(120px,18vh,200px);padding-bottom:clamp(80px,12vh,140px)}
.live-about .lg-body p{font-size:14.5px;color:var(--paper-3)}
.live .stop--mini+.drum,.live .stop--mini+.cams{margin-top:0}

/* ---------- phones ---------- */
@media (max-width:900px){
  .une{display:block;padding:0 var(--gutter) 0 46px}
  .une .R{margin-top:22px}
  .jfilter .L{display:none}
  .jrow a{display:block;padding:26px var(--gutter) 26px 46px}
  .jrow-l{width:100%;align-items:flex-start}
  .jrow-r{margin-top:16px}
  .jrow::after,.vrow::after,.qa-row .pin,.ep::after{left:22.5px;top:40px}
  .art-title,.art-title[data-len]{font-size:calc(clamp(34px,10vw,46px) * var(--dscale))}
  .art-fig figcaption{flex-direction:row}
  .stop.art-sec,.stop.lg-sec{display:block;padding:70px var(--gutter) 0 46px}
  .stop.art-sec .node,.stop.lg-sec .node{left:22.5px;top:76px}
  .ed-side{position:static;text-align:left}
  .side-h{margin-left:0;font-size:calc(23px * var(--dscale))}
  .art-sec .R,.lg-sec .R{margin-top:20px}
  .art-author{display:flex;gap:18px;align-items:center}
  .art-author .R{margin-top:0}
  .art-author img{width:56px;height:56px;margin:0}
  .art-nav{display:block;padding:0 var(--gutter) 0 46px}
  .art-nav .an-prev{align-items:flex-start;text-align:left;border-bottom:1px solid var(--hair)}
  .art-nav::after{display:none}
  .art-back{text-align:left;padding-left:46px}
  .toc{max-width:none}
  .bul .L{position:static}
  .faqp .finale .h2,.videos .finale .h2{font-size:calc(40px * var(--dscale))}
  .drum-axis span:not(:first-child):not(:last-child){display:none}
  .jfilter .switch{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .jfilter .switch button{justify-content:space-between}
  .lg-body .readout .rr{grid-template-columns:1fr;gap:6px}
  .lg-body .readout .rv-{text-align:left;overflow-wrap:anywhere}
  .qa-toc{columns:1}
  .qa-index .L p b{font-size:64px}
  .qa-row{display:block;padding:30px var(--gutter) 30px 46px}
  .qa-q{text-align:left}
  .qa-a{padding-top:14px}
  .player{width:auto;margin-left:46px;margin-right:var(--gutter)}
  .player-cap{grid-template-columns:1fr;gap:8px}
  .player-play{width:64px;height:64px;margin:-32px 0 0 -32px}
  .vrow button,.ep button{display:block;padding:20px var(--gutter) 20px 46px}
  .vrow-l{display:flex;align-items:baseline;gap:14px;text-align:left}
  .vrow-d{margin-top:0}
  .vrow-r{display:block;margin-top:10px}
  .ep-t{display:block;text-align:left}
  .ep-n{display:block;margin-top:8px}
  .drum{width:auto;margin-left:46px;margin-right:var(--gutter)}
  .ch{grid-template-columns:1fr;gap:6px;padding-top:10px}
  .drum-axis{margin-left:0}
  .cams{grid-template-columns:1fr;width:auto;margin-left:46px;margin-right:var(--gutter)}
  .wx-t{font-size:96px}
  .bul-alert{font-size:64px}
}
@media (prefers-reduced-motion:reduce){
  .une-ph img,.jrow-ph img,.player-face img,.cam img{transition:none;transform:none}
  .gate-field.is-wrong{animation:none}
}
/* ================= /editorial builder ================= */

/* small laptops / iPad landscape: the filter chips wrap instead of running off the edge */
@media (min-width:901px) and (max-width:1180px){ .jfilter .switch{flex-wrap:wrap} .qa-toc{columns:1} }
/* a long address (the email) may break rather than push past the column */
.rr .rv-{max-width:100%;overflow-wrap:anywhere}

/* small laptops / iPad landscape: the filter chips wrap instead of running off the edge */
@media (min-width:901px) and (max-width:1180px){ .jfilter .switch{flex-wrap:wrap} }
/* a long address (the email) may break rather than push past the column */
.rr .rv-{max-width:100%;overflow-wrap:anywhere}

/* small laptops / iPad landscape: the filter chips wrap instead of running off the edge */
@media (min-width:901px) and (max-width:1180px){ .jfilter .switch{flex-wrap:wrap} }
/* a long address (the email) may break rather than push past the column */
.rr .rv-{max-width:100%;overflow-wrap:anywhere}

/* ================= round 7: footer balance + caption, lines broken by sense ================= */
/* each line is a phrase, never a separator left hanging at a line end */
.foot .cave-cap>span,.foot .role>span,.foot .partner>span>span{display:block}
.foot .cave-cap>span+span{color:rgba(237,233,226,.32)}
.foot .partner>span{line-height:1.55}
/* sources: dotted run on one line on desktop, a stacked list once it would wrap */
.foot-base .srcs>span+span::before{content:"·";margin:0 .8em;opacity:.7}
/* desktop: columns sized to their content with equal air between them; the last one closes on the right gutter,
   in line with the sources below it */
@media (min-width:1101px){
  .foot-grid{grid-template-columns:auto auto auto auto;justify-content:space-between;column-gap:56px}
  .foot-grid>div:first-child p{max-width:none}
}
@media (max-width:900px){
  .foot-base .srcs>span{display:block}
  .foot-base .srcs>span+span::before{content:none}
  .foot-base .srcs{display:flex;flex-direction:column;gap:4px}
}

/* ================= round 7b: small laptops / iPad landscape (901-1180) ================= */
@media (max-width:1100px){ .nav-cta{margin-left:auto} }      /* links fold into Menu: the buttons stay on the right */
@media (min-width:901px) and (max-width:1180px){
  .row .data{grid-template-columns:auto auto auto 1fr;column-gap:16px}
  .brief-grid{grid-template-columns:repeat(2,auto);justify-content:start;gap:18px 40px}
}
