
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Figtree";src:url(../fonts/figtree.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:swap}

:root{
  --night:#0F1D24; --night-2:#16272F; --night-3:#1E333C;
  --candle:#F6E9CF; --candle-2:#EFDDB9;
  --gold:#D2AA67; --gold-soft:#E8C98E; --light:#FFE3A6;
  --volet:#3FA9C3;
  --stone:#DCD5C6; --ink:#1B262B; --ink-soft:#56646A;
  --serif:"Fraunces",Georgia,serif;
  --sans:"Figtree","Helvetica Neue",Arial,sans-serif;
  --ts:1.056; --tv:.96; --tcf:1; --tw:600; --tls:-.012em; --tt:none; --lh:.9; --bs:19px; --wmax:600px;
  color-scheme: dark;
}
:root:not([data-theme="light"]) body{}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--night);color:var(--stone);font-family:var(--sans);font-size:var(--bs);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{max-width:none}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* loader */
#loader{position:fixed;inset:0;z-index:100;background:var(--night);display:grid;place-items:center;transition:opacity 1s ease .2s,visibility 0s linear 1.2s}
#loader.out{opacity:0;visibility:hidden}
#loader .lw{text-align:center}
#loader svg{width:120px;height:150px;display:block;margin:0 auto 22px}
#loader path{fill:none;stroke:var(--gold);stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s cubic-bezier(.6,.1,.3,1) forwards}
#loader path:nth-child(2){animation-delay:.4s}
#loader path:nth-child(3){animation-delay:.8s}
#loader .lt{font-family:var(--serif);font-size:30px;color:var(--candle);letter-spacing:.06em;opacity:0;animation:fade 1.2s ease .9s forwards}
#loader .ls{font-size:13px;opacity:0;margin-top:6px;color:var(--gold-soft);animation:fade 1.2s ease 1.3s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}


/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(18px,4vw,48px);transition:background .4s,color .4s,transform .5s}
.nav.solid{background:rgba(15,29,36,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.page-light .nav{color:var(--ink)}
.page-light .nav.solid{background:rgba(246,233,207,.9)}
.brand{font-family:var(--serif);font-size:26px;text-decoration:none;line-height:1;color:inherit}
.brand small{display:block;font-family:var(--sans);font-size:calc(var(--bs) * 0.647);letter-spacing:.05em;opacity:.75;margin-top:5px}
.nav ul{display:flex;gap:clamp(14px,2.4vw,34px);list-style:none;margin:0;padding:0;align-items:center}
.nav a.lnk{text-decoration:none;font-size:calc(var(--bs) * 0.882);opacity:.85;padding:6px 0;border-bottom:1px solid transparent}
.nav a.lnk:hover,.nav a.lnk[aria-current="page"]{opacity:1;border-color:currentColor}
.btn{display:inline-flex;align-items:center;gap:10px;font:500 calc(var(--bs) * 0.882)/1 var(--sans);padding:15px 24px;border-radius:999px;border:1px solid var(--gold);background:var(--gold);color:var(--night);text-decoration:none;cursor:pointer;transition:background .25s,color .25s,transform .25s}
.btn:hover{background:transparent;color:var(--gold)}
.btn.line{background:transparent;color:inherit;border-color:currentColor}
.btn.line:hover{background:var(--candle);color:var(--night);border-color:var(--candle)}
.nav .btn{padding:11px 18px}
@media (max-width:760px){ .nav .hide-m{display:none} .brand small{display:none} .brand{font-size:calc(var(--bs) * 1.294)} .nav ul{gap:14px} .nav a.lnk{font-size:calc(var(--bs) * 0.824)} .nav .btn{padding:9px 14px;font-size:calc(var(--bs) * 0.824)} }

.page{display:none}
.page.on{display:block}
body.page-light{background:var(--candle);color:var(--ink)}

/* ================= STAGE (shared) ================= */
.chap{position:relative;background:var(--night)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.frame{position:absolute;inset:0;overflow:hidden;will-change:clip-path}
.media{position:absolute;inset:0;overflow:hidden;background:#0b161b}
.media video,.media img{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.media img.fb{display:none}
.fallback .media video{display:none}
.fallback .media img.fb{display:block}
.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,20,26,0.95) 0%,rgba(10,20,26,0.6) 36%,rgba(10,20,26,0) 64%),linear-gradient(0deg,rgba(10,20,26,0.66) 0%,rgba(10,20,26,0) 34%),linear-gradient(180deg,rgba(10,20,26,0.54) 0%,rgba(10,20,26,0) 18%)}
.ghost-num{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:62vh;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(210,170,103,.35);pointer-events:none;user-select:none}
.copy{position:absolute;left:clamp(22px,6vw,96px);bottom:clamp(96px,15vh,150px);max-width:min(560px,86vw);z-index:3}
.num{display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:20px;letter-spacing:.08em;color:var(--gold-soft);margin-bottom:14px}
.num::after{content:"";width:56px;height:1px;background:var(--gold)}
.title{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5.4vw,84px);line-height:1.04;letter-spacing:.005em;margin:0;color:#FFF9EE;text-wrap:balance;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.title .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.06em}
.title .w > span{display:inline-block;transform:translateY(105%);will-change:transform}
.lines{position:relative;height:2.9em;margin-top:24px;font-family:var(--serif);font-size:clamp(20px,1.8vw,27px);line-height:1.3;color:#F7EEDD;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.lines p{position:absolute;inset:0 auto auto 0;margin:0;max-width:30ch;opacity:0;will-change:transform,opacity,filter}
.offer{list-style:none;margin:22px 0 0;padding:0;opacity:0}
.offer li{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-top:1px solid rgba(232,201,142,.28);font-size:calc(var(--bs) * 0.941);font-weight:400;color:#F3EBDC}
.offer li:last-child{border-bottom:1px solid rgba(232,201,142,.28)}
.offer li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none;transform:translateY(-2px)}
.cta-row{margin-top:24px;opacity:0;display:flex;gap:12px;flex-wrap:wrap}
.clock{position:absolute;left:clamp(22px,6vw,96px);bottom:34px;z-index:3;display:flex;align-items:center;gap:12px;font-size:calc(var(--bs) * 0.824);color:#EFE6D4;opacity:0}
.clock b{font-family:var(--serif);font-weight:400;font-size:28px;color:#FBF4E6;min-width:3.4em;font-variant-numeric:tabular-nums}
.clock .bar{width:120px;height:2px;background:rgba(255,255,255,.2);border-radius:2px;overflow:hidden}
.clock .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--light),var(--volet))}
.note{position:absolute;right:clamp(16px,3vw,40px);bottom:30px;z-index:3;font-size:calc(var(--bs) * 0.706);opacity:.6;color:#EFE6D4}

/* hero */
#c-portes{height:340vh}
.hero-title{position:absolute;left:0;right:0;top:50%;transform:translateY(-54%);text-align:center;z-index:3;pointer-events:none}
.hero-title h1{font-family:var(--serif);font-weight:400;font-size:clamp(60px,11.5vw,184px);line-height:.95;letter-spacing:.03em;margin:0;color:#FFF9EE;text-shadow:0 10px 60px rgba(0,0,0,.4)}
.hero-title h1 .ch{display:inline-block;opacity:0;transform:translateY(40px);filter:blur(12px);animation:rise 1.4s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes rise{to{opacity:1;transform:none;filter:none}}
.hero-title p{margin:22px 0 0;font-size:clamp(15px,1.3vw,18px);letter-spacing:.06em;font-weight:400;color:#FFF3DC;opacity:0;animation:fade 1.2s ease 1.6s forwards;text-shadow:0 2px 16px rgba(0,0,0,.6)}
.cue{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:calc(var(--bs) * 0.765);color:#FFF3DC;opacity:0;animation:fade 1s ease 2.2s forwards}
.cue i{width:1px;height:46px;background:linear-gradient(#FFF3DC,transparent);animation:cue 2s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.veil{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;background:radial-gradient(ellipse 70% 45% at 50% 50%,rgba(10,20,26,0.72),rgba(10,20,26,0) 75%)}
.hero-lines{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;z-index:3;pointer-events:none}
.hero-lines p{position:absolute;left:0;right:0;margin:0;transform:translateY(-50%);font-family:var(--serif);font-size:clamp(32px,4.6vw,72px);line-height:1.1;letter-spacing:.005em;color:#FFF9EE;opacity:0;text-shadow:0 2px 30px rgba(0,0,0,.65),0 0 2px rgba(0,0,0,.35);padding:0 6vw}

/* interlude */
.inter{background:var(--candle);color:var(--ink);padding:clamp(70px,14vh,150px) clamp(22px,6vw,96px) clamp(90px,16vh,170px);position:relative}
.inter h2{font-family:var(--serif);font-weight:400;font-size:clamp(42px,6vw,92px);line-height:1.02;margin:0 0 clamp(40px,7vh,80px);max-width:18ch}
.menu{list-style:none;margin:0;padding:0;border-top:1px solid rgba(27,38,43,.2)}
.menu button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:20px;padding:clamp(18px,3vh,30px) 0;border-bottom:1px solid rgba(27,38,43,.2);position:relative}
.menu .n{font-family:var(--serif);font-size:22px;letter-spacing:.06em;color:#9A7440}
.menu .t{font-family:var(--serif);font-size:clamp(30px,4.2vw,62px);line-height:1.05;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.menu .d{font-size:calc(var(--bs) * 0.882);color:var(--ink-soft);max-width:28ch;text-align:right}
.menu .thumb{position:absolute;right:30%;top:50%;width:220px;aspect-ratio:3/2;border-radius:12px;background-size:cover;background-position:center;opacity:0;transform:translateY(-50%) rotate(-3deg) scale(.9);transition:opacity .35s,transform .5s cubic-bezier(.2,.7,.2,1);pointer-events:none;box-shadow:0 24px 60px rgba(27,38,43,.25)}
.menu button:hover .t,.menu button:focus-visible .t{transform:translateX(18px)}
.menu button:hover .thumb,.menu button:focus-visible .thumb{opacity:1;transform:translateY(-50%) rotate(-3deg) scale(1)}
.inter .or{margin-top:34px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:calc(var(--bs) * 1.0)}
.inter .or .btn{background:var(--ink);border-color:var(--ink);color:var(--candle)}
.inter .or .btn:hover{background:transparent;color:var(--ink)}
@media (max-width:820px){ .menu button{grid-template-columns:44px 1fr} .menu .d{grid-column:2;text-align:left} .menu .thumb{display:none} }

/* chapters */
.chap.ev{height:360vh}
@media (max-width:820px){
  #c-portes{height:300vh}
  .chap.ev{height:320vh}
  .copy{bottom:auto;top:92px;right:22px;max-width:none}
  .shade{background:linear-gradient(180deg,rgba(10,20,26,0.95) 0%,rgba(10,20,26,0.72) 34%,rgba(10,20,26,0) 58%),linear-gradient(0deg,rgba(10,20,26,0.9) 0%,rgba(10,20,26,0) 30%)}
  .offer{display:none}
  .cta-row{position:absolute;left:0;right:0;top:calc(100svh - 92px - 170px);margin:0}
  .ghost-num{font-size:44vh}
  .note{bottom:auto;top:auto;right:16px;bottom:88px;display:none}
  .clock{bottom:26px}
  .clock .bar{display:none}
}

@media (min-width:821px) and (max-height:780px){ .title{font-size:clamp(40px,5vw,70px)} .copy{bottom:86px} .lines{margin-top:14px} .offer li{padding:6px 0} }

/* ================= BUILDER (wizard) ================= */
.builder{background:var(--night-2);padding:clamp(90px,12vh,130px) clamp(22px,4vw,64px) clamp(70px,10vh,110px)}
.bw{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,1fr);gap:clamp(24px,3.5vw,60px);align-items:stretch;max-width:1500px;margin:0 auto}
.screen{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:1152/798;background:#0b161b;box-shadow:0 40px 90px rgba(0,0,0,.45)}
.screen > div.pl{position:absolute;inset:0;opacity:0;transition:opacity .9s ease}
.screen > div.pl.on{opacity:1}
.screen > div.pl video,.screen > div.pl img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.screen > div.pl img.fb{display:none}
.screen > div.pl.fallback video{display:none}
.screen > div.pl.fallback img.fb{display:block}
.screen .tag{position:absolute;left:18px;top:18px;z-index:2;background:rgba(12,24,30,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(232,201,142,.3);border-radius:999px;padding:7px 14px;font-size:calc(var(--bs) * 0.794);color:#FBF4E6;display:flex;gap:9px;align-items:center}
.screen .tag i{width:7px;height:7px;border-radius:50%;background:var(--volet);box-shadow:0 0 10px var(--volet)}
.screen .hour{position:absolute;right:20px;top:14px;z-index:2;font-family:var(--serif);font-size:32px;letter-spacing:.04em;color:#FFF9EE;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.screen .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:60px 24px 20px;background:linear-gradient(0deg,rgba(10,20,26,.85),rgba(10,20,26,0));font-family:var(--serif);font-size:clamp(18px,1.7vw,26px);line-height:1.25;color:#FFF9EE}
.panel{display:flex;flex-direction:column;min-height:100%}
.panel h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.2vw,52px);line-height:1.04;margin:0 0 10px;color:#FFF9EE}
.panel .intro{margin:0 0 26px;color:#CFC8B9}
.prog{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 30px;padding:0}
.prog button{all:unset;cursor:pointer;display:block;width:100%;box-sizing:border-box;font-size:calc(var(--bs) * 0.735);color:#9C968A;padding-top:10px;border-top:2px solid rgba(220,213,198,.18);transition:color .3s,border-color .3s}
.prog button.done{color:#DCD5C6;border-color:rgba(210,170,103,.6)}
.prog button.cur{color:#FFF9EE;border-color:var(--gold)}
.prog button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.stwrap{position:relative;flex:1;display:grid;align-content:start}
.st{grid-area:1/1;border:0;margin:0;padding:0;min-width:0;display:block;visibility:hidden;opacity:0;pointer-events:none}
.st.on{visibility:visible;opacity:1;pointer-events:auto;animation:stIn .55s cubic-bezier(.2,.7,.2,1)}
.st.summary:not(.on){display:none}
@keyframes stIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.st legend,.st .q{font-family:var(--serif);font-size:clamp(24px,2.2vw,32px);line-height:1.15;color:#FFF9EE;margin:0 0 20px;padding:0}
.st legend:focus{outline:none}
.fmt{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fmt label{position:relative;display:block;border-radius:14px;overflow:hidden;aspect-ratio:16/11;cursor:pointer;border:1px solid rgba(232,201,142,.2);background-size:cover;background-position:center;transition:transform .3s}
.fmt label:hover{transform:translateY(-2px)}
.fmt label::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,20,26,.9),rgba(10,20,26,.05) 65%)}
.fmt label span{position:absolute;left:14px;right:14px;bottom:12px;z-index:1;color:#FFF9EE;font-family:var(--serif);font-size:19px;line-height:1.2}
.fmt input{position:absolute;opacity:0}
.fmt input:checked + label{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}
.fmt input:focus-visible + label{outline:2px solid var(--light);outline-offset:3px}
.guests{display:flex;align-items:baseline;gap:14px}
.guests output{font-family:var(--serif);font-size:84px;line-height:1;color:var(--light)}
.guests span{font-size:calc(var(--bs) * 0.941);color:#CFC8B9}
.config{margin:18px 0 0;padding:0;list-style:none;font-size:calc(var(--bs) * 0.912)}
.config li{padding:9px 0;border-bottom:1px solid rgba(232,201,142,.16);display:flex;justify-content:space-between;gap:16px}
.config li b{font-weight:500;color:#FFF9EE;text-align:right}
.config .fine{border:0;font-size:calc(var(--bs) * 0.765);color:#9C968A}
.quick{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}
.quick button{cursor:pointer;background:transparent;border:1px solid rgba(220,213,198,.3);border-radius:999px;padding:10px 16px;font-size:calc(var(--bs) * 0.853);transition:all .2s}
.quick button.on{background:var(--gold);border-color:var(--gold);color:var(--night)}
.hourbig{font-family:var(--serif);font-size:64px;line-height:1;color:var(--light);margin:0 0 6px}
.slide-row{display:flex;justify-content:space-between;font-size:calc(var(--bs) * 0.765);color:#9C968A;margin-top:4px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:rgba(255,255,255,.18)}
input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:rgba(255,255,255,.18)}
input[type=range].sky::-webkit-slider-runnable-track{background:linear-gradient(90deg,#8FC7E0,#F2C27A 55%,#27425A)}
input[type=range].sky::-moz-range-track{background:linear-gradient(90deg,#8FC7E0,#F2C27A 55%,#27425A)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#FFF3DC;border:3px solid var(--gold);margin-top:-10px;box-shadow:0 2px 10px rgba(0,0,0,.4)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#FFF3DC;border:3px solid var(--gold)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0}
.chip label{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border-radius:999px;border:1px solid rgba(220,213,198,.28);font-size:calc(var(--bs) * 0.853);cursor:pointer;transition:all .2s;user-select:none}
.chip label::before{content:"+";color:var(--gold)}
.chip input[type=radio] + label::before{content:none}
.chip input:checked + label{background:var(--gold);border-color:var(--gold);color:var(--night)}
.chip input:checked + label::before{content:"✓";color:var(--night)}
.chip input[type=radio]:checked + label::before{content:none}
.chip input:focus-visible + label{outline:2px solid var(--light);outline-offset:2px}
.chips.big .chip label{padding:16px 22px;font-size:calc(var(--bs) * 0.941)}
.summary .pt{font-family:var(--serif);font-size:clamp(26px,2.4vw,36px);line-height:1.15;color:#FFF9EE;margin:0 0 18px}
.summary ul{margin:0 0 26px;padding:0;list-style:none;font-size:calc(var(--bs) * 0.912);color:#DCD5C6}
.summary li{padding:8px 0;border-bottom:1px solid rgba(232,201,142,.16)}
.summary .acts{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.linkbtn{all:unset;cursor:pointer;font-size:calc(var(--bs) * 0.853);color:var(--gold-soft);text-decoration:underline;text-underline-offset:4px}
.linkbtn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.bnav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;padding-top:22px;border-top:1px solid rgba(232,201,142,.2)}
.bnav span{font-size:calc(var(--bs) * 0.824);color:#9C968A}
.bnav .btn[hidden]{display:none}
.bnav .btn.line{padding:13px 20px}
@media (max-width:980px){
  .bw{grid-template-columns:1fr}
  .screen{border-radius:16px}
  .prog button{font-size:0;padding-top:0;height:10px}
  .fmt{grid-template-columns:repeat(4,1fr)}
  .fmt label{aspect-ratio:3/4}
  .fmt label span{font-size:calc(var(--bs) * 0.941)}
}
@media (max-width:560px){ .fmt{grid-template-columns:1fr 1fr} .fmt label{aspect-ratio:4/3} }

/* real photos */
.real{padding:clamp(80px,12vh,130px) clamp(22px,5vw,80px);background:var(--night)}
.real-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:40px}
.real h2{font-family:var(--serif);font-weight:400;font-size:clamp(38px,4.6vw,70px);line-height:1.05;margin:0;color:#FBF4E6}
.real-head p{margin:0;max-width:46ch}
.strip{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:auto auto;gap:14px}
.strip figure{margin:0;border-radius:16px;overflow:hidden;position:relative}
.strip figure:first-child{grid-row:span 2}
.strip img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.strip figure:hover img{transform:scale(1.04)}
.strip figcaption{position:absolute;left:14px;bottom:12px;font-size:calc(var(--bs) * 0.765);color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.7)}
.facts{margin-top:clamp(50px,8vh,90px);display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(232,201,142,.25)}
.facts div{padding:24px 24px 0 0}
.facts dt{font-family:var(--serif);font-size:clamp(28px,2.6vw,40px);color:var(--light);line-height:1.1}
.facts dd{margin:6px 0 0;font-size:calc(var(--bs) * 0.882)}
@media (max-width:820px){ .real-head{grid-template-columns:1fr} .strip{grid-template-columns:1fr 1fr} .strip figure:first-child{grid-column:span 2;grid-row:auto} .facts{grid-template-columns:1fr 1fr} }

.final{position:relative;min-height:90vh;display:grid;place-items:center;text-align:center;overflow:hidden;padding:80px 22px}
.final .bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.08)}
.final::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 55%,rgba(10,20,26,.35),rgba(10,20,26,.85) 75%)}
.final > div{position:relative;z-index:1}
.final h2{font-family:var(--serif);font-weight:400;font-size:clamp(42px,6vw,96px);line-height:1.04;margin:0 auto 26px;max-width:14ch;color:#FFF8EA}
.final p{margin:0 auto 34px;max-width:44ch;color:#F1E8D6}

footer{padding:40px clamp(22px,5vw,80px);display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;font-size:calc(var(--bs) * 0.824);border-top:1px solid rgba(232,201,142,.18);background:var(--night)}
footer a{text-decoration:none;opacity:.8}
footer a:hover{opacity:1}
.page-light footer{background:var(--candle-2);color:var(--ink);border-color:rgba(27,38,43,.12)}

/* ================= HISTOIRE ================= */
.hist{padding:clamp(120px,18vh,180px) clamp(22px,6vw,96px) 90px;color:var(--ink)}
.hist-top{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,6vw,90px);align-items:end;margin-bottom:clamp(50px,8vh,90px)}
.hist h1{font-family:var(--serif);font-weight:400;font-size:clamp(48px,7vw,112px);line-height:1.02;margin:0}
.lede{font-size:calc(var(--bs) * 1.235);line-height:1.55;max-width:34ch;margin:0}
.wide{border-radius:20px;overflow:hidden;aspect-ratio:21/9;margin:0 0 clamp(60px,10vh,110px)}
.wide img,.duo img,.place img{width:100%;height:100%;object-fit:cover;display:block}
.chapters{list-style:none;margin:0 auto;padding:0;max-width:1000px}
.chapters li{display:grid;grid-template-columns:190px 1fr;gap:clamp(20px,4vw,60px);padding:38px 0;border-top:1px solid rgba(27,38,43,.15)}
.chapters .when{font-family:var(--serif);font-size:28px;color:#8A6A3A;line-height:1.1}
.chapters h3{font-family:var(--serif);font-weight:400;font-size:36px;margin:0 0 10px;line-height:1.1}
.chapters p{margin:0 0 10px;max-width:62ch;font-size:calc(var(--bs) * 1.059);line-height:1.7;color:var(--ink-soft)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:1000px;margin:20px auto 0}
.duo figure{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:4/3}
.todo{display:inline-block;border:1px dashed #B08A4E;border-radius:6px;padding:1px 8px;font-family:var(--sans);font-size:calc(var(--bs) * 0.765);color:#8A6A3A;background:rgba(210,170,103,.1)}
.place{margin:clamp(60px,10vh,110px) auto 0;max-width:1000px;display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:40px;border-top:1px solid rgba(27,38,43,.15);align-items:start}
.place h2{font-family:var(--serif);font-weight:400;font-size:46px;margin:0 0 18px;line-height:1.05}
.place p{margin:0 0 14px;color:var(--ink-soft);font-size:calc(var(--bs) * 1.059)}
.place figure{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:3/2}
@media (max-width:820px){ .hist-top,.place,.duo{grid-template-columns:1fr} .chapters li{grid-template-columns:1fr;gap:8px} .wide{aspect-ratio:4/3} }

/* ================= RÉSERVER ================= */
.book{padding:clamp(120px,18vh,170px) clamp(22px,6vw,96px) 90px;display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(36px,6vw,100px);max-width:1360px;margin:0 auto;color:var(--ink)}
.book h1{font-family:var(--serif);font-weight:400;font-size:clamp(46px,6vw,92px);line-height:1.02;margin:0 0 24px}
.book .lede{margin-bottom:30px}
.book figure{margin:0 0 30px;border-radius:16px;overflow:hidden;aspect-ratio:3/2}
.book figure img{width:100%;height:100%;object-fit:cover;display:block}
.steps3{list-style:none;margin:0 0 34px;padding:0;counter-reset:k}
.steps3 li{counter-increment:k;display:grid;grid-template-columns:40px 1fr;gap:10px;padding:12px 0;border-top:1px solid rgba(27,38,43,.15)}
.steps3 li::before{content:counter(k);font-family:var(--serif);font-size:24px;color:#9A7440}
.contact-list{margin:0;padding:0;list-style:none;border-top:1px solid rgba(27,38,43,.15)}
.contact-list li{padding:14px 0;border-bottom:1px solid rgba(27,38,43,.15);display:grid;grid-template-columns:110px 1fr;gap:14px}
.contact-list span{color:var(--ink-soft);font-size:calc(var(--bs) * 0.882)}
.contact-list a{text-decoration:none;border-bottom:1px solid rgba(27,38,43,.3)}
form.req{background:#FFFCF5;border:1px solid rgba(27,38,43,.1);border-radius:24px;padding:clamp(22px,3.5vw,44px);align-self:start;position:sticky;top:100px;box-shadow:0 30px 80px rgba(27,38,43,.08)}
form.req h2{font-family:var(--serif);font-weight:400;font-size:36px;margin:0 0 6px}
form.req > p{margin:0 0 24px;color:var(--ink-soft)}
.proj-card{display:none;margin:0 0 24px;padding:16px 18px;border-radius:14px;background:var(--night);color:var(--stone);gap:14px;grid-template-columns:96px 1fr;align-items:center}
.proj-card.on{display:grid}
.proj-card .pv{width:96px;aspect-ratio:4/3;border-radius:10px;background-size:cover;background-position:center}
.proj-card b{display:block;font-weight:500;color:#FBF4E6;font-size:calc(var(--bs) * 0.882);line-height:1.3}
.proj-card span{font-size:calc(var(--bs) * 0.765);color:var(--gold-soft)}
.proj-card button{all:unset;cursor:pointer;font-size:calc(var(--bs) * 0.765);text-decoration:underline;color:var(--gold-soft);margin-top:4px;display:inline-block}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f{display:flex;flex-direction:column;gap:6px}
.f.full{grid-column:1/-1}
.f label{font-size:calc(var(--bs) * 0.824);font-weight:500}
.f input,.f select,.f textarea{font:inherit;font-size:calc(var(--bs) * 0.941);color:var(--ink);background:#fff;border:1px solid rgba(27,38,43,.2);border-radius:12px;padding:12px 14px}
.f textarea{min-height:120px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:transparent}
.err{color:#A3402F;font-size:calc(var(--bs) * 0.765)}
form.req .btn{margin-top:24px;color:var(--candle);background:var(--ink);border-color:var(--ink);width:100%;justify-content:center;padding:18px}
form.req .btn:hover{background:transparent;color:var(--ink)}
.done{display:none;padding:26px;border-radius:14px;background:rgba(63,169,195,.1);border:1px solid rgba(63,169,195,.45);margin-top:22px}
.done.on{display:block}
.done h3{font-family:var(--serif);font-weight:400;font-size:30px;margin:0 0 8px}
@media (max-width:900px){ .book{grid-template-columns:1fr} .fgrid{grid-template-columns:1fr} form.req{position:static} }


/* ================= TYPOGRAPHY SYSTEM (driven by the review panel) ================= */
h1,h2,h3,legend,.title,.q,.pt{text-wrap:balance}
p,li,dd{text-wrap:pretty}
.title,.hero-title h1,.inter h2,.menu .t,.panel h2,.final h2,.real h2,.hist h1,.book h1{font-weight:var(--tw);letter-spacing:var(--tls);text-transform:var(--tt);line-height:var(--lh);font-synthesis:none}
.hero-lines p,.lines,.st legend,.st .q,.summary .pt,.chapters h3,.place h2,form.req h2,.screen .cap,.facts dt,.guests output,.hourbig,.clock b,.screen .hour,.num,.fmt label span,.proj-card b,.menu .n{font-weight:var(--tw);font-synthesis:none}
.hero-lines p,.lines,.screen .cap{letter-spacing:var(--tls)}
.title{font-size:calc(var(--ts) * var(--tcf) * clamp(40px,5.4vw,84px))}
.hero-title h1{font-size:calc(var(--ts) * var(--tcf) * clamp(56px,10.5vw,170px))}
.inter h2{font-size:calc(var(--ts) * var(--tcf) * clamp(42px,6vw,92px))}
.menu .t{font-size:calc(var(--ts) * var(--tcf) * clamp(30px,4.2vw,62px))}
.panel h2{font-size:calc(var(--ts) * var(--tcf) * clamp(32px,3.1vw,50px))}
.final h2{font-size:calc(var(--ts) * var(--tcf) * clamp(42px,6vw,96px))}
.real h2{font-size:calc(var(--ts) * var(--tcf) * clamp(38px,4.6vw,70px))}
.hist h1{font-size:calc(var(--ts) * var(--tcf) * clamp(48px,7vw,112px))}
.book h1{font-size:calc(var(--ts) * var(--tcf) * clamp(46px,6vw,92px))}
.st legend,.st .q{font-size:calc(var(--ts) * clamp(24px,2.2vw,32px))}
.summary .pt{font-size:calc(var(--ts) * clamp(26px,2.4vw,36px))}
.chapters h3{font-size:calc(var(--ts) * 36px)}
.place h2{font-size:calc(var(--ts) * 46px)}
form.req h2{font-size:calc(var(--ts) * 36px)}
.fmt label span{font-size:calc(var(--ts) * 19px)}
.guests output{font-size:calc(var(--ts) * 84px)}
.hourbig{font-size:calc(var(--ts) * 64px)}
.facts dt{font-size:calc(var(--ts) * clamp(28px,2.6vw,40px))}
.num{font-size:calc(var(--ts) * 20px)}
.menu .n{font-size:calc(var(--ts) * 22px)}
.clock b,.screen .hour{font-size:calc(var(--tv) * 30px)}
.hero-lines p{font-size:calc(var(--tv) * clamp(30px,4.4vw,68px));line-height:calc(var(--lh) + .06)}
.lines{font-size:calc(var(--tv) * clamp(20px,1.8vw,27px));line-height:calc(var(--lh) + .24)}
.screen .cap{font-size:calc(var(--tv) * clamp(18px,1.7vw,26px))}
.hero-title p{font-size:calc(var(--bs) * 1.02)}
.lede{font-size:calc(var(--bs) * 1.24)}
.chapters p,.place p{font-size:calc(var(--bs) * 1.06)}
.panel .intro,.b-head p,.real-head p,.final p{font-size:var(--bs)}
.copy{max-width:min(var(--wmax),86vw)}
.lines{display:grid;height:auto}
.lines p{position:relative;inset:auto;grid-area:1/1;align-self:start}
.hero-lines p,.lines p,.title{text-shadow:0 2px 31px rgba(0,0,0,.66)}

/* layouts (desktop) */
@media (min-width:821px){
  :root[data-lay="center"] .chap.ev .copy{left:50%;right:auto;transform:translateX(-50%);bottom:clamp(70px,10vh,110px);text-align:center;max-width:min(900px,90vw);width:100%}
  :root[data-lay="center"] .chap.ev .num{justify-content:center}
  :root[data-lay="center"] .chap.ev .num::before{content:"";width:56px;height:1px;background:var(--gold)}
  :root[data-lay="center"] .chap.ev .lines p{left:0;right:0;max-width:none}
  :root[data-lay="center"] .chap.ev .offer{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 28px}
  :root[data-lay="center"] .chap.ev .offer li,:root[data-lay="center"] .chap.ev .offer li:last-child{border:0;padding:4px 0}
  :root[data-lay="center"] .chap.ev .cta-row{justify-content:center}
  :root[data-lay="center"] .chap.ev .shade{background:linear-gradient(0deg,rgba(10,20,26,0.95) 0%,rgba(10,20,26,0.72) 34%,rgba(10,20,26,0) 64%),linear-gradient(180deg,rgba(10,20,26,0.54),rgba(10,20,26,0) 18%)}
  :root[data-lay="center"] .chap.ev .clock{top:108px;bottom:auto}
  :root[data-lay="edit"] .chap.ev .copy{inset:clamp(100px,14vh,140px) clamp(22px,6vw,96px) clamp(84px,12vh,120px);max-width:none;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.75fr);grid-template-rows:auto auto 1fr auto auto auto;column-gap:6vw}
  :root[data-lay="edit"] .chap.ev .num{grid-column:1;grid-row:1}
  :root[data-lay="edit"] .chap.ev .title{grid-column:1;grid-row:2;max-width:13ch}
  :root[data-lay="edit"] .chap.ev .lines{grid-column:2;grid-row:4;margin-top:0}
  :root[data-lay="edit"] .chap.ev .offer{grid-column:2;grid-row:5}
  :root[data-lay="edit"] .chap.ev .cta-row{grid-column:2;grid-row:6}
  :root[data-lay="edit"] .chap.ev .shade{background:linear-gradient(160deg,rgba(10,20,26,0.95) 0%,rgba(10,20,26,0.42) 30%,rgba(10,20,26,0) 50%),linear-gradient(340deg,rgba(10,20,26,0.95) 0%,rgba(10,20,26,0.54) 30%,rgba(10,20,26,0) 52%)}
}

.nw{white-space:nowrap}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;animation-delay:0s !important;transition-duration:.01ms !important}
}

/* WordPress integration */
body.lmx{margin:0!important;padding:0!important}
body:not(.go) .hero-title .ch,body:not(.go) .hero-title p,body:not(.go) .cue{animation-play-state:paused}
.title,.hero-title h1,.inter h2,.menu .t,.panel h2,.final h2,.real h2,.hist h1,.book h1,.hero-lines p,.lines{font-optical-sizing:auto}
.title .w{padding-top:.14em;margin-top:-.14em;padding-bottom:.14em;margin-bottom:-.14em}
.admin-bar .nav{top:32px}
@media (max-width:782px){.admin-bar .nav{top:46px}}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:calc(var(--bs) * .78);color:var(--ink-soft);margin-top:18px;line-height:1.45}
.consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--ink);flex:none}
.consent a{color:inherit}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-error{display:none;margin-top:16px;padding:14px 16px;border-radius:12px;background:rgba(163,64,47,.08);border:1px solid rgba(163,64,47,.35);color:#7d3022;font-size:calc(var(--bs) * .82)}
.form-error.on{display:block}
.legal{display:flex;gap:18px;flex-wrap:wrap}

/* =====================================================================
   LEGIBILITY — the scrim follows the text, whatever the screen
   ===================================================================== */
.copy::before,.hero-title::before,.hero-lines p::before,.cta-row::before{content:"";position:absolute;z-index:-1;pointer-events:none}
/* chapter text block */
.copy::before{inset:-90px -140px -90px -140px;background:radial-gradient(closest-side,rgba(10,20,26,.42),rgba(10,20,26,.26) 55%,rgba(10,20,26,0))}
/* hero title (top of page) */
.hero-title::before{left:50%;top:50%;width:min(1200px,130vw);height:calc(100% + 200px);transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(10,20,26,.66),rgba(10,20,26,.5) 45%,rgba(10,20,26,.2) 75%,rgba(10,20,26,0))}
.hero-title p{font-weight:500}
.hero-title p{text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 22px rgba(0,0,0,.75)}
/* hero sentences */
.hero-lines p::before{left:50%;top:50%;width:min(1200px,130vw);height:calc(100% + 160px);transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(10,20,26,.55),rgba(10,20,26,.32) 50%,rgba(10,20,26,0))}
.hero-lines p,.hero-title h1{text-shadow:0 1px 3px rgba(0,0,0,.45),0 4px 34px rgba(0,0,0,.6)}
.clock{text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 16px rgba(0,0,0,.7)}
.veil{display:none}
.cta-row{position:relative}
.nav .brand,.nav .brand small{white-space:nowrap}

/* navigation: never wraps */
@media (max-width:1080px){ .nav .hide-m{display:none} }
@media (max-width:400px){ .nav .lnk{display:none} .brand{font-size:21px} }

/* ---------- phones & tablets in portrait: text sits at the top ---------- */
@media (max-width:820px){
  /* light global mood: nav at top, clock and buttons at the bottom */
  .shade{background:linear-gradient(180deg,rgba(10,20,26,.62) 0%,rgba(10,20,26,.25) 16%,rgba(10,20,26,0) 30%),linear-gradient(0deg,rgba(10,20,26,.78) 0%,rgba(10,20,26,.35) 20%,rgba(10,20,26,0) 36%)}
  /* the text block gets its own, centred scrim */
  .copy::before{inset:-110px -60px -80px -60px;background:radial-gradient(closest-side,rgba(10,20,26,.78),rgba(10,20,26,.55) 50%,rgba(10,20,26,0))}
  .cta-row{position:absolute}
  .cta-row::before{inset:-50px -40px -40px -40px;background:radial-gradient(closest-side,rgba(10,20,26,.6),rgba(10,20,26,.35) 55%,rgba(10,20,26,0))}
  .title{font-size:calc(var(--ts) * clamp(38px,7.4vw,64px))}
  .lines{font-size:calc(var(--tv) * clamp(19px,3.1vw,26px))}
  .hero-title::before{height:calc(100% + 240px);width:170vw;background:radial-gradient(closest-side,rgba(10,20,26,.8),rgba(10,20,26,.64) 50%,rgba(10,20,26,.25) 80%,rgba(10,20,26,0))}
  .hero-title p{padding:0 28px;font-size:calc(var(--bs) * .92)}
  .hero-lines p::before{height:calc(100% + 220px);width:170vw;background:radial-gradient(closest-side,rgba(10,20,26,.74),rgba(10,20,26,.55) 50%,rgba(10,20,26,.2) 80%,rgba(10,20,26,0))}
}
@media (min-width:600px) and (max-width:820px){
  .copy{top:110px;right:auto;max-width:min(620px,86vw)}
  .cta-row{top:calc(100svh - 110px - 150px)}
}

/* ---------- phones in landscape & very short screens ---------- */
@media (min-width:821px) and (max-height:560px){
  .nav{padding:8px 22px}
  .nav .brand small{display:none}
  .copy{bottom:44px;max-width:min(520px,60vw)}
  .num{margin-bottom:4px;font-size:15px}
  .title{font-size:calc(var(--ts) * clamp(26px,8.2vh,40px))}
  .lines{margin-top:8px;font-size:calc(var(--tv) * clamp(15px,4.6vh,20px))}
  .offer{display:none}
  .cta-row{margin-top:12px}
  .cta-row .btn{padding:10px 16px}
  .clock{bottom:12px}
  .clock b{font-size:20px}
  .clock .bar,.note{display:none}
  .hero-title h1{font-size:calc(var(--ts) * clamp(44px,20vh,96px))}
  .hero-title p{margin-top:10px}
  .hero-lines p{font-size:calc(var(--tv) * clamp(22px,8.5vh,40px))}
  .cue{bottom:12px}
  .cue i{height:24px}
  .copy::before{inset:-60px -110px -50px -110px;background:radial-gradient(closest-side,rgba(10,20,26,.6),rgba(10,20,26,.36) 55%,rgba(10,20,26,0))}
}

/* nav and scroll cue readable over bright photos */
.nav::before{content:"";position:absolute;inset:0 0 -110% 0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(10,20,26,.78),rgba(10,20,26,.45) 45%,rgba(10,20,26,0));opacity:1;transition:opacity .4s}
.nav.solid::before,.page-light .nav::before{opacity:0}
.nav:not(.solid) .brand,.nav:not(.solid) .lnk{text-shadow:0 1px 3px rgba(0,0,0,.5),0 2px 14px rgba(0,0,0,.45)}
.cue{text-shadow:0 1px 3px rgba(0,0,0,.6),0 2px 14px rgba(0,0,0,.7)}
.cue::before{content:"";position:absolute;left:50%;top:50%;width:260px;height:160px;transform:translate(-50%,-50%);z-index:-1;background:radial-gradient(closest-side,rgba(10,20,26,.55),rgba(10,20,26,0))}

/* =====================================================================
   BUILDER — everything in one screen, the step navigation never moves
   ===================================================================== */
.builder{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:clamp(84px,11vh,110px) clamp(22px,4vw,64px) clamp(24px,4vh,48px);box-sizing:border-box}
.bw{width:100%}
.panel h2{font-size:calc(var(--ts) * clamp(30px,2.7vw,44px));margin-bottom:6px}
.panel .intro{margin-bottom:clamp(12px,2.2vh,22px)}
.prog{margin-bottom:clamp(14px,2.6vh,26px)}
.st legend,.st .q{margin-bottom:clamp(12px,2vh,20px)}
.bnav{margin-top:clamp(14px,2.2vh,24px);padding-top:clamp(12px,1.8vh,20px)}
.bv{align-self:center}
@media (min-width:981px) and (max-height:820px){
  .fmt label{aspect-ratio:16/9}
  .guests output{font-size:calc(var(--ts) * 64px)}
  .hourbig{font-size:calc(var(--ts) * 50px)}
  .config li{padding:6px 0}
  .quick{margin-bottom:12px}
}
@media (max-width:980px){
  .builder{display:block;min-height:0;padding:76px 18px 40px}
  .screen{aspect-ratio:16/9}
  .screen .cap{padding:34px 16px 12px}
  .bw{gap:18px}
  .panel h2{font-size:calc(var(--ts) * clamp(28px,6.4vw,40px))}
  .panel .intro{font-size:calc(var(--bs) * .86)}
  .fmt label{aspect-ratio:16/10}
  .guests output{font-size:calc(var(--ts) * 56px)}
  .hourbig{font-size:calc(var(--ts) * 44px)}
  .config li{padding:6px 0}
  .st legend,.st .q{font-size:calc(var(--ts) * clamp(21px,5.4vw,28px))}
}
@media (max-width:560px){ .fmt label{aspect-ratio:4/3} .fmt label span{font-size:calc(var(--ts) * 15px)} .chip label{padding:8px 12px;font-size:calc(var(--bs) * .72)} .chips.big .chip label{padding:12px 16px} }
/* the step bar pins to the bottom of the screen whenever the builder is taller than the screen */
.bnav{position:sticky;bottom:0;z-index:4;background:var(--night-2);padding-bottom:clamp(10px,1.6vh,16px);box-shadow:0 -18px 24px -18px rgba(8,16,20,.9)}
@media (min-width:981px) and (max-width:1200px){ .bw{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
@media (max-width:980px){ .bnav{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px;padding-bottom:calc(12px + env(safe-area-inset-bottom))} }
@media (max-width:560px){ .panel .intro{display:none} }
.bnav .btn{white-space:nowrap}
.bnav span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
@media (max-width:420px){ .bnav span{display:none} }
.st.summary.measuring{display:block!important}
.summary li.wl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary li.wl.none{opacity:.55}
.st legend:focus,.st legend:focus-visible,.st .q:focus,.st .q:focus-visible{outline:none;box-shadow:none}
@media (max-width:560px){ .panel h2{margin-bottom:14px} }

/* =====================================================================
   PAGES — dedicated "Dessinez votre événement" page + calm transitions
   ===================================================================== */
.fadejump{position:fixed;inset:0;z-index:90;background:var(--night);opacity:0;pointer-events:none;transition:opacity .26s ease}
.fadejump.on{opacity:1;pointer-events:auto}
.page-light .fadejump{background:var(--candle)}
#p-dessiner .builder{padding-top:clamp(92px,12vh,120px)}
.next{background:var(--night);padding:clamp(60px,10vh,110px) clamp(22px,5vw,80px);border-top:1px solid rgba(232,201,142,.18)}
.next h2{font-family:var(--serif);font-weight:var(--tw);font-size:calc(var(--ts) * clamp(32px,3.6vw,54px));line-height:var(--lh);letter-spacing:var(--tls);color:#FFF9EE;margin:0 0 clamp(26px,4vh,44px)}
.next-steps{list-style:none;margin:0 0 clamp(28px,4vh,44px);padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,44px);counter-reset:n}
.next-steps li{counter-increment:n;border-top:1px solid rgba(232,201,142,.3);padding-top:18px}
.next-steps li::before{content:counter(n);display:block;font-family:var(--serif);font-weight:var(--tw);font-size:calc(var(--ts) * 34px);line-height:1;color:var(--gold);margin-bottom:12px}
.next-steps b{display:block;font-weight:500;color:#FFF9EE;margin-bottom:4px}
.next-steps span{color:#CFC8B9;font-size:calc(var(--bs) * .9)}
@media (max-width:760px){ .next-steps{grid-template-columns:1fr} }
.proj-card .edit-link{font-size:calc(var(--bs) * .72);text-decoration:underline;text-underline-offset:3px;color:var(--gold-soft);margin-top:4px;display:inline-block}
