:root{
  --ink:#0a0c0f;
  --ink-2:#12151a;
  --bone:#ece7df;
  --bone-2:rgba(236,231,223,.72);
  --mute:rgba(236,231,223,.5);
  --line:rgba(236,231,223,.16);
  --amber:#e9a55a;
  --serif:"Instrument Serif", "Times New Roman", serif;
  --sans:"Manrope", system-ui, sans-serif;
  --gutter:clamp(16px, 4vw, 56px);
  --ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--ink);color:var(--bone);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.is-loading{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
::selection{background:var(--amber);color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Typo */
.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--bone-2);margin:0 0 22px;display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.display{font-family:var(--serif);font-weight:400;font-size:clamp(46px,7.4vw,124px);line-height:.94;letter-spacing:-.02em;margin:0}
.display em{font-style:italic;color:#f4d9b6}
.display--xl{font-size:clamp(54px,9vw,150px)}
.lead{font-size:clamp(16px,1.25vw,19px);line-height:1.6;color:var(--bone-2);max-width:34ch;margin:26px 0 0}

/* Loader */
.loader{position:fixed;inset:0;z-index:100;background:var(--ink);display:grid;place-items:center;align-content:center;gap:26px;transition:opacity .9s var(--ease),visibility .9s}
.loader__mark{font-family:var(--serif);font-size:clamp(56px,9vw,120px);letter-spacing:-.02em;line-height:1}
.loader__bar{width:min(320px,60vw);height:1px;background:var(--line);overflow:hidden}
.loader__bar span{display:block;height:100%;width:100%;background:var(--bone);transform:scaleX(0);transform-origin:left;transition:transform .3s linear}
.loader__count{font-family:var(--serif);font-size:28px;font-variant-numeric:tabular-nums}
.loader__count sup{font-size:.5em;margin-left:2px}
.loader__note{margin:0;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mute)}
body:not(.is-loading) .loader{opacity:0;visibility:hidden}

/* Cursor */
.cursor{position:fixed;left:0;top:0;z-index:90;pointer-events:none;display:none}
.cursor__dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--bone);transform:translate(-50%,-50%)}
.cursor__ring{position:absolute;width:38px;height:38px;border:1px solid rgba(236,231,223,.5);border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center;transition:width .45s var(--ease),height .45s var(--ease),background .45s,border-color .45s}
.cursor__label{font-style:normal;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink);opacity:0;transition:opacity .3s}
.cursor.is-active .cursor__ring{width:86px;height:86px;background:var(--bone);border-color:var(--bone)}
.cursor.is-active .cursor__label{opacity:1}
.cursor.is-active .cursor__dot{opacity:0}
@media (hover:hover) and (pointer:fine){.cursor{display:block}body,a,button,label{cursor:none}input[type=range]{cursor:none}}

/* Topbar */
.topbar{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px var(--gutter);pointer-events:none;text-shadow:0 1px 20px rgba(0,0,0,.35);transition:background .5s,padding .5s}
.topbar.is-scrolled{background:rgba(10,12,15,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:14px;padding-bottom:14px;border-bottom:1px solid rgba(236,231,223,.08)}
.topbar>*{pointer-events:auto}
.brand{display:flex;flex-direction:column;line-height:1}
.brand__mark{font-family:var(--serif);font-size:30px;letter-spacing:-.01em}
.brand__sub{font-size:10px;letter-spacing:.24em;text-transform:uppercase;margin-top:6px;opacity:.75}
.nav{display:flex;gap:34px;font-size:13px;font-weight:600;letter-spacing:.04em}
.nav a{position:relative;padding:4px 0}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.topbar__mail{font-size:13px;font-weight:600}

/* Pill */
.pill{position:fixed;z-index:50;left:50%;bottom:26px;transform:translate(-50%,30px);opacity:0;display:flex;align-items:center;gap:6px;transition:transform 1s var(--ease) .2s,opacity 1s var(--ease) .2s}
body.is-ready .pill{transform:translate(-50%,0);opacity:1}
.pill__txt{white-space:nowrap;background:var(--bone);color:var(--ink);font-weight:700;font-size:14px;padding:15px 24px;border-radius:999px;transition:transform .5s var(--ease)}
.pill__arrow{width:50px;height:50px;border-radius:50%;background:var(--bone);color:var(--ink);display:grid;place-items:center;transition:transform .5s var(--ease)}
.pill:hover .pill__arrow{transform:rotate(45deg)}
.pill:hover .pill__txt{transform:translateX(-4px)}
body.at-contact .pill{opacity:0;transform:translate(-50%,30px);pointer-events:none}

/* Journey */
.journey{position:relative;height:1250vh}
.journey__anchor{position:absolute;left:0;top:0;width:1px;height:1px}
.journey__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:#05070a}
.journey__gl,.journey__fallback{position:absolute;inset:0;width:100%;height:100%}
.journey__fallback{object-fit:cover;opacity:0;transition:opacity .6s}
.no-webgl .journey__fallback{opacity:1}
.chapters{position:absolute;inset:0;pointer-events:none}
.journey__sticky::after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(rgba(5,7,10,0),rgba(5,7,10,.55));pointer-events:none}
.chapters,.hud{z-index:2}
.chapter{position:absolute;left:var(--gutter);right:var(--gutter);top:50%;transform:translateY(-50%);visibility:hidden;text-shadow:0 2px 40px rgba(0,0,0,.35)}
.chapter.is-on{visibility:visible}
.chapter::before{content:"";position:absolute;inset:-35% -25%;z-index:-1;background:radial-gradient(closest-side,rgba(4,6,9,.62),rgba(4,6,9,0));pointer-events:none}
.chapter--hero::before{inset:-40% -10% -30% -30%}
.chapter:not(.chapter--hero) .display{font-size:clamp(40px,min(5.4vw,10vh),100px)}
.chapter--hero{text-align:left;top:auto;bottom:clamp(110px,16vh,170px);transform:none}
.chapter--hero .display{font-size:clamp(54px,9.2vw,156px)}
.chapter--right{left:auto;width:min(500px,31vw);right:var(--gutter);top:58%}
.chapter--right .display{font-size:clamp(38px,min(4.2vw,8.6vh),78px)!important}
.chapter--left{width:min(640px,52vw)}
.chapter .eyebrow,.chapter .lead{opacity:0;transform:translateY(16px)}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .02em .08em;margin-bottom:-.08em}
.split .w>span{display:inline-block;transform:translateY(105%);will-change:transform}

.hud{position:absolute;z-index:3;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--bone-2)}
.hud--alt{right:var(--gutter);bottom:34px;display:grid;justify-items:end;gap:6px;text-align:right}
.hud__value{font-family:var(--serif);text-transform:none;letter-spacing:0;font-size:34px;line-height:1;color:var(--bone);font-variant-numeric:tabular-nums;font-weight:400}
.hud__place{color:var(--mute)}
.hud--chapters{list-style:none;margin:0;padding:0;left:var(--gutter);bottom:34px;display:flex;gap:22px}
.hud--chapters li{display:grid;gap:10px;opacity:.5;transition:opacity .4s}
.hud--chapters li.is-on{opacity:1}
.hud__bar{display:block;width:64px;height:1px;background:var(--line);overflow:hidden}
.hud__bar i{display:block;height:100%;background:var(--bone);transform:scaleX(0);transform-origin:left}
.scroll-hint{position:absolute;right:var(--gutter);top:50%;transform:translateY(-50%);writing-mode:vertical-rl;display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--bone-2);transition:opacity .5s}
.scroll-hint__mouse{width:18px;height:28px;border:1px solid currentColor;border-radius:10px;display:grid;justify-items:center;padding-top:5px}
.scroll-hint__mouse i{width:2px;height:6px;background:currentColor;border-radius:2px;animation:wheel 1.8s var(--ease) infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}70%{transform:translateY(9px);opacity:0}100%{opacity:0}}

/* Manifesto */
.manifesto{position:relative;padding:clamp(120px,22vh,220px) var(--gutter) clamp(90px,14vh,160px);background:#e8e3db;color:var(--ink)}
.manifesto .stats{border-top-color:rgba(10,12,15,.16)}
.manifesto .stat+.stat{border-left-color:rgba(10,12,15,.16)}
.manifesto .stat__lbl,.manifesto__kicker{color:rgba(10,12,15,.6)}
.manifesto__kicker{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--mute);margin:0 0 34px}
.manifesto__text{font-family:var(--serif);font-size:clamp(32px,4.6vw,76px);line-height:1.08;letter-spacing:-.015em;margin:0}
.words .wd{opacity:.14;transition:opacity .2s linear}
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(70px,12vh,130px);border-top:1px solid var(--line)}
.stat{padding:30px 24px 0 0;display:grid;gap:8px}
.stat+.stat{padding-left:24px;border-left:1px solid var(--line)}
.stat__num{font-family:var(--serif);font-size:clamp(52px,6vw,96px);line-height:1;font-variant-numeric:tabular-nums}
.stat__lbl{font-size:13px;color:var(--bone-2);font-weight:500}

/* Sun */
.sun{position:relative;padding:clamp(110px,16vh,180px) var(--gutter) clamp(60px,10vh,120px);display:grid;grid-template-columns:minmax(300px,.8fr) 2fr;gap:clamp(30px,4vw,70px);align-items:center;background:linear-gradient(#0a0c0f,#0d1117 60%,#0a0c0f)}
.sun__head .display{font-size:clamp(50px,6.4vw,110px)}
.sun__stage{position:relative;height:min(78vh,760px);min-height:520px;border-radius:6px;overflow:hidden;background:#1a2230;border:1px solid var(--line);touch-action:pan-y}
.sun__gl{position:absolute;inset:0;width:100%;height:100%}
.sun__stage::after{content:"";position:absolute;inset:0 0 auto 0;height:42%;background:linear-gradient(rgba(6,8,12,.55),rgba(6,8,12,0));pointer-events:none}
.sun__time,.sun__readout,.sun__hint{z-index:2}
.sun__time{position:absolute;left:28px;top:24px;display:grid;line-height:1;pointer-events:none}
.sun__clock{font-family:var(--serif);font-size:clamp(56px,6vw,96px);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.sun__date{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;margin-top:10px;color:var(--bone-2)}
.sun__readout{position:absolute;right:24px;top:24px;display:grid;gap:12px;text-align:right;pointer-events:none}
.sun__readout div{display:grid;gap:2px}
.sun__readout span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-2);font-weight:600}
.sun__readout b{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.sun__controls{position:absolute;left:24px;right:24px;bottom:22px;display:flex;align-items:flex-end;gap:24px;padding:16px 18px;border-radius:14px;background:rgba(10,12,15,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line)}
.sun__seasons{display:flex;gap:6px;flex:0 0 auto}
.sun__seasons button{border:1px solid var(--line);background:transparent;border-radius:99px;padding:9px 14px;font-size:12px;font-weight:700;letter-spacing:.04em;transition:background .3s,color .3s}
.sun__seasons button.is-on{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.sun__slider{flex:1;display:grid;gap:6px}
.sun__range{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:0}
.sun__range::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,#3b4a66,#e9a55a 30%,#fff3d6 50%,#e9a55a 70%,#3b4a66)}
.sun__range::-moz-range-track{height:2px;background:linear-gradient(90deg,#3b4a66,#e9a55a 30%,#fff3d6 50%,#e9a55a 70%,#3b4a66)}
.sun__range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#ffd79a;margin-top:-10px;box-shadow:0 0 0 6px rgba(255,215,154,.18),0 0 24px rgba(255,200,120,.8)}
.sun__range::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:#ffd79a;box-shadow:0 0 0 6px rgba(255,215,154,.18),0 0 24px rgba(255,200,120,.8)}
.sun__ticks{display:flex;justify-content:space-between;font-size:10px;color:var(--mute);font-weight:600;letter-spacing:.08em}
.sun__ticks i{font-style:normal}
.sun__hint{position:absolute;left:50%;top:auto;bottom:118px;transform:translateX(-50%);margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--bone-2);padding:8px 14px;border-radius:99px;background:rgba(10,12,15,.4);pointer-events:none;transition:opacity .6s;white-space:nowrap}
.sun__stage.touched .sun__hint{opacity:0}

/* Method */
.method{padding:clamp(100px,16vh,180px) var(--gutter);display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(40px,6vw,100px);align-items:start}
.method__head{position:sticky;top:18vh}
.method__head .display{font-size:clamp(46px,5.4vw,92px)}
.steps{list-style:none;margin:0;padding:0}
.step{display:grid;grid-template-columns:80px 1fr;column-gap:24px;padding:42px 0;border-top:1px solid var(--line)}
.step:last-child{border-bottom:1px solid var(--line)}
.step__n{font-family:var(--serif);font-size:30px;color:var(--amber);line-height:1}
.step h3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.4vw,54px);margin:0;line-height:1}
.step p{grid-column:2;margin:14px 0 0;color:var(--bone-2);max-width:46ch;font-size:clamp(15px,1.15vw,18px)}

/* Contact */
.contact{position:relative;min-height:100vh;padding:clamp(110px,16vh,170px) var(--gutter) clamp(120px,16vh,170px);overflow:hidden;display:flex;align-items:center}
.contact__bg{position:absolute;inset:-10% 0;z-index:0}
.contact__bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.42) saturate(.9)}
.contact__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,12,15,.92) 0%,rgba(10,12,15,.55) 55%,rgba(10,12,15,.35) 100%),linear-gradient(180deg,var(--ink) 0%,transparent 22%,transparent 80%,var(--ink) 100%)}
.contact__inner{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,110px);align-items:center}
.contact__lines{list-style:none;padding:0;margin:40px 0 0;display:grid;gap:12px;font-size:15px}
.contact__lines li{display:grid;grid-template-columns:110px 1fr;border-top:1px solid var(--line);padding-top:12px}
.contact__lines span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);font-weight:600;padding-top:3px}
.contact__lines a{border-bottom:1px solid var(--line)}
.form{display:grid;gap:18px;padding:clamp(24px,3vw,40px);border-radius:16px;background:rgba(14,17,22,.62);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line)}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form label{display:grid;gap:8px}
.form label>span,.chips legend{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--bone-2)}
.form input:not([type=radio]),.form textarea{width:100%;background:rgba(236,231,223,.06);border:1px solid var(--line);border-radius:10px;padding:14px 14px;outline:none;transition:border-color .3s,background .3s;resize:vertical}
.form input::placeholder,.form textarea::placeholder{color:rgba(236,231,223,.35)}
.form input:focus,.form textarea:focus{border-color:rgba(236,231,223,.6);background:rgba(236,231,223,.09)}
.form .is-err{border-color:#e07a5f!important}
.chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips legend{margin-bottom:10px;padding:0}
.chips label{display:block}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:block;padding:10px 15px;border-radius:99px;border:1px solid var(--line);font-size:13px;font-weight:600;transition:background .3s,color .3s,border-color .3s}
.chips input:checked+span{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.chips input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px}
.form__send{margin-top:6px;display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-radius:99px;background:var(--bone);color:var(--ink);font-weight:700;font-size:15px;padding:8px 8px 8px 26px}
.form__send span{width:46px;height:46px;border-radius:50%;background:var(--ink);color:var(--bone);display:grid;place-items:center;transition:transform .5s var(--ease)}
.form__send:hover span{transform:rotate(45deg)}
.form__ok{margin:0;padding:14px 16px;border-radius:10px;background:rgba(233,165,90,.14);border:1px solid rgba(233,165,90,.4);font-weight:600}

/* Footer */
.footer{padding:40px var(--gutter) 30px;border-top:1px solid var(--line);overflow:hidden}
.footer__big{font-family:var(--serif);font-size:clamp(90px,27vw,420px);line-height:.8;letter-spacing:-.04em;margin:0 0 30px -.04em;color:#f4ece0}
.footer__row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--mute)}

/* Reveal helper */
.rv{opacity:0;transform:translateY(40px)}

/* Responsive */
@media (max-width:1100px){
  .sun{grid-template-columns:1fr}
  .sun__head .lead{max-width:52ch}
}
@media (max-width:900px){
  .nav,.topbar__mail{display:none}
  .brand__mark{font-size:26px}
  .journey{height:1050vh}
  .chapter--left,.chapter--right{width:auto;left:var(--gutter);right:var(--gutter)}
  .chapter{top:auto;bottom:150px;transform:none}
  .journey__sticky::after{height:62%;background:linear-gradient(rgba(5,7,10,0),rgba(5,7,10,.78) 70%)}
  .chapter--right{top:auto;width:auto}
  .chapter--right .display{font-size:clamp(40px,11vw,60px)!important}
  .chapter--hero{bottom:150px}
  .chapter .lead{max-width:30ch}
  .hud--chapters{display:none}
  .hud--alt{left:var(--gutter);right:auto;bottom:auto;top:84px;justify-items:start;text-align:left}
  .hud__value{font-size:26px}
  .scroll-hint{display:none}
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){padding-left:0;border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line);margin-top:28px}
  .sun__stage{height:auto;aspect-ratio:auto;min-height:0;height:72svh;max-height:640px}
  .sun__readout{top:auto;bottom:150px;right:16px;gap:8px}
  .sun__readout b{font-size:13px}
  .sun__time{left:18px;top:18px}
  .sun__hint{display:none}
  .sun__controls{left:12px;right:12px;bottom:12px;flex-direction:column;align-items:stretch;gap:12px;padding:14px}
  .sun__seasons button{flex:1}
  .method{grid-template-columns:1fr}
  .method__head{position:static}
  .step{grid-template-columns:52px 1fr;column-gap:14px;padding:32px 0}
  .contact__inner{grid-template-columns:1fr}
  .contact__bg::after{background:linear-gradient(180deg,var(--ink) 0%,rgba(10,12,15,.7) 30%,rgba(10,12,15,.85) 100%)}
  .form__row{grid-template-columns:1fr}
  .pill{bottom:16px}
  .pill__txt{padding:14px 20px;font-size:14px}
  .pill__arrow{width:48px;height:48px}
  .footer__row{flex-direction:column;padding-bottom:80px}
}
@media (max-height:720px) and (min-width:901px){
  .chapter--hero .display{font-size:clamp(50px,7.6vw,118px)}
  .chapter--hero{bottom:110px}
  .chapter .lead{margin-top:18px}
}
@media (prefers-reduced-motion:reduce){
  .scroll-hint__mouse i{animation:none}
}

/* Visite 3D */
.journey__sticky{background:#0b1426}
.chapter--right{top:50%}
.journey.is-clay .chapter--clay{color:var(--ink);text-shadow:none}
.journey.is-clay .chapter--clay .eyebrow,.journey.is-clay .chapter--clay .lead{color:rgba(10,12,15,.68)}
.journey.is-clay .chapter--clay .display em{color:#8a5a2b}
.chapter--clay::before{display:none}
.journey.is-clay .journey__sticky::after{opacity:0}
.journey__sticky::after{transition:opacity .6s}
.journey.is-clay .hud{color:rgba(10,12,15,.6)}
.journey.is-clay .hud__bar{background:rgba(10,12,15,.15)}
.journey.is-clay .hud__bar i{background:var(--ink)}

.labels{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.tag{position:absolute;left:0;top:0;opacity:0;display:flex;align-items:center;will-change:transform,opacity}
.tag__dot{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--bone);box-shadow:0 0 0 5px rgba(236,231,223,.18),0 0 18px rgba(255,220,170,.7)}
.tag__line{position:absolute;left:0;top:0;width:calc(56px * var(--v,1));height:1px;background:rgba(236,231,223,.7);transform-origin:left}
.tag__txt{position:absolute;left:64px;top:0;transform:translateY(-50%);white-space:nowrap;font-size:12px;font-weight:600;letter-spacing:.06em;padding:8px 12px;border-radius:99px;background:rgba(10,12,15,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(236,231,223,.18)}
.tag--left .tag__line{left:auto;right:0;transform-origin:right}
.tag--left .tag__txt{left:auto;right:64px}
.tag--below .tag__line{display:none}
.tag--below .tag__txt{top:16px;right:auto;transform:none}
.journey.is-clay .tag__dot{background:var(--ink);box-shadow:0 0 0 5px rgba(10,12,15,.1)}
.journey.is-clay .tag__line{background:rgba(10,12,15,.55)}
.journey.is-clay .tag__txt{background:rgba(255,255,255,.7);color:var(--ink);border-color:rgba(10,12,15,.12)}

.workcap{position:absolute;z-index:3;left:var(--gutter);bottom:96px;max-width:420px;padding:22px 24px 20px;border-radius:14px;background:rgba(10,12,15,.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .6s var(--ease),transform .8s var(--ease)}
.workcap.is-on{opacity:1;transform:none;pointer-events:auto}
.workcap__num{font-size:11px;letter-spacing:.2em;font-weight:700;color:var(--mute)}
.workcap__num b{color:var(--amber);font-weight:700}
.workcap__title{font-family:var(--serif);font-weight:400;font-size:clamp(30px,2.6vw,44px);line-height:1;margin:10px 0 0}
.workcap__meta{margin:8px 0 0;font-size:13px;color:var(--bone-2)}
.workcap__open{margin-top:16px;display:inline-flex;align-items:center;gap:10px;border:0;border-radius:99px;background:var(--bone);color:var(--ink);font-weight:700;font-size:13px;padding:10px 16px}
.workcap__open svg{transition:transform .5s var(--ease)}
.workcap__open:hover svg{transform:rotate(45deg)}

.hud--plan{right:var(--gutter);bottom:34px;display:grid;justify-items:end;gap:10px;opacity:0;transition:color .5s}
.plan{width:200px;height:auto;overflow:visible}
.plan__slab{fill:rgba(236,231,223,.06);stroke:none}
.plan__wall{fill:none;stroke:rgba(236,231,223,.75);stroke-width:.4}
.plan__glass{fill:none;stroke:#9cc4e8;stroke-width:.22}
.plan__works path{stroke:var(--amber);stroke-width:.32}
.plan__dock{stroke:rgba(236,231,223,.35);stroke-width:.2}
.plan__cone{fill:rgba(255,214,160,.22)}
.plan__dot{fill:#fff3dc}

.scroll-hint{right:auto;left:50%;top:auto;bottom:110px;transform:translateX(-50%);writing-mode:horizontal-tb}

/* Mode clair (maquette) : barre du haut et bouton */
body.is-light .topbar{color:var(--ink);text-shadow:none}
body.is-light .topbar.is-scrolled{background:rgba(232,227,219,.82);border-bottom-color:rgba(10,12,15,.08)}
body.is-light .pill__txt,body.is-light .pill__arrow{background:var(--ink);color:var(--bone)}
body.is-light .cursor__dot{background:var(--ink)}
body.is-light .cursor__ring{border-color:rgba(10,12,15,.4)}
.topbar,.pill__txt,.pill__arrow{transition:background .5s,color .5s,padding .5s,transform .5s var(--ease)}

/* Visionneuse */
.lightbox[hidden]{display:none}
.lightbox{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:clamp(16px,4vw,60px)}
.lightbox__veil{position:absolute;inset:0;background:rgba(6,8,11,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);opacity:0;transition:opacity .5s var(--ease)}
.lightbox__fig{position:relative;margin:0;display:grid;grid-template-columns:auto minmax(260px,360px);gap:clamp(24px,3vw,48px);align-items:end;max-height:100%;opacity:0;transform:translateY(30px) scale(.98);transition:opacity .6s var(--ease),transform .8s var(--ease)}
.lightbox.is-open .lightbox__veil{opacity:1}
.lightbox.is-open .lightbox__fig{opacity:1;transform:none}
.lightbox__media img{max-height:calc(100vh - 120px);max-height:calc(100svh - 120px);max-width:min(58vw,900px);width:auto;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox.is-wide .lightbox__fig{grid-template-columns:1fr}
.lightbox.is-wide .lightbox__media img{max-width:min(86vw,1300px);max-height:calc(100svh - 300px)}
.lightbox__cap{display:grid;gap:10px;padding-bottom:6px}
.lightbox.is-wide .lightbox__cap{grid-template-columns:1fr auto;align-items:end;column-gap:40px}
.lightbox.is-wide .lightbox__cap>*:not(.lightbox__nav){grid-column:1}
.lightbox.is-wide .lightbox__nav{grid-column:2;grid-row:1/span 5}
.lightbox__num{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--amber)}
.lightbox__title{font-family:var(--serif);font-weight:400;font-size:clamp(36px,3.6vw,60px);line-height:1;margin:0}
.lightbox__meta{margin:0;font-size:13px;color:var(--bone-2);font-weight:600}
.lightbox__text{margin:6px 0 0;color:var(--bone-2);max-width:40ch;line-height:1.6}
.lightbox__area{justify-self:start;font-size:12px;font-weight:700;padding:6px 12px;border:1px solid var(--line);border-radius:99px}
.lightbox__nav{display:flex;gap:8px;margin-top:14px}
.lightbox__nav button{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:transparent;font-size:18px;transition:background .3s,color .3s}
.lightbox__nav button:hover{background:var(--bone);color:var(--ink)}
.lightbox__close{position:absolute;top:22px;right:var(--gutter);border:1px solid var(--line);background:rgba(10,12,15,.4);border-radius:99px;padding:10px 16px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

@media (max-width:900px){
  .workcap{left:12px;right:12px;bottom:88px;max-width:none;padding:16px 18px}
  .workcap__title{font-size:30px}
  .hud--plan{display:none}
  .tag__txt{font-size:11px;padding:6px 10px}
  .lightbox__fig{grid-template-columns:1fr;gap:18px;align-items:start}
  .lightbox__media img{max-width:100%;max-height:52svh;margin:0 auto}
  .lightbox.is-wide .lightbox__media img{max-height:40svh}
  .lightbox.is-wide .lightbox__cap{grid-template-columns:1fr}
  .lightbox.is-wide .lightbox__nav{grid-column:1;grid-row:auto}
  .lightbox__close{top:14px}
}
