:root{
  --bg:#09060d; --purple:#5a2ca0; --purple2:#2a123f; --orange:#ff7a00;
  --gold:#d4af37; --ghost:#8fffd2; --ink:#f7f1df; --muted:#cfc4d3;
  --panel:rgba(17,9,24,.76); --line:rgba(212,175,55,.34);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{overflow-x:hidden}.hidden{display:none!important}.screen{min-height:100svh;position:relative;overflow:hidden}
.prelaunch{display:grid;place-items:center;padding:32px 18px}.portal-bg{position:absolute;inset:0;background:url('assets/portal.png') center/cover no-repeat;transform:scale(1.02);filter:saturate(.92) contrast(1.04)}
.vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 38%,transparent 10%,rgba(5,2,9,.2) 48%,rgba(4,2,7,.82) 100%),linear-gradient(180deg,rgba(6,2,10,.05),rgba(6,2,10,.72))}
.glass{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(180deg,rgba(22,10,32,.78),rgba(9,5,14,.78));border:1px solid var(--line);box-shadow:0 28px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08)}
.prelaunch-card{position:relative;z-index:5;width:min(760px,94vw);margin-top:32vh;padding:24px 28px 22px;border-radius:24px;text-align:center}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:800;font-size:.72rem;color:#efc85a;margin:0 0 8px}.prelaunch h1,.cemetery h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.1rem,6vw,4rem);line-height:.95;margin:0;text-shadow:0 3px 18px rgba(0,0,0,.8),0 0 30px rgba(90,44,160,.35)}
.lead{font-size:clamp(1rem,2vw,1.25rem);color:#eee5ef;margin:14px auto 18px;max-width:620px}.opening-date{margin:16px 0 7px;color:#f7e9c0}.tiny{font-size:.78rem;color:#bdb1c2;margin:5px 0}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:560px;margin:0 auto}.countdown div{padding:10px 8px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.26);border-radius:13px}.countdown strong{display:block;font-size:clamp(1.45rem,4vw,2.4rem);color:#fff1c1}.countdown span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:#bea8c4}
.fog{position:absolute;left:-20%;width:140%;height:26%;bottom:-3%;opacity:.34;filter:blur(16px);background:radial-gradient(ellipse at 25% 50%,rgba(154,255,218,.45),transparent 36%),radial-gradient(ellipse at 65% 50%,rgba(255,255,255,.25),transparent 40%);animation:fog 18s linear infinite alternate;pointer-events:none}.fog-b{bottom:8%;opacity:.18;animation-duration:27s;animation-direction:alternate-reverse}@keyframes fog{to{transform:translateX(11%) scale(1.08)}}
.cemetery{background:radial-gradient(circle at 50% 8%,#423052 0,#181021 30%,#0b0710 64%,#050307 100%);padding:28px 18px 46px}.cemetery:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,transparent 0 120px,rgba(255,255,255,.012) 121px 122px);pointer-events:none}.night-sky{position:absolute;inset:0 0 auto 0;height:360px;overflow:hidden;pointer-events:none}.moon{position:absolute;width:150px;height:150px;border-radius:50%;right:7%;top:30px;background:radial-gradient(circle at 35% 35%,#fffde8,#d9d1db 55%,#9d91a5 100%);box-shadow:0 0 60px rgba(238,230,255,.32)}.moon:after{content:"";position:absolute;inset:20px;border-radius:50%;background:radial-gradient(circle at 25% 30%,rgba(78,70,89,.25) 0 8%,transparent 9%),radial-gradient(circle at 65% 64%,rgba(78,70,89,.23) 0 12%,transparent 13%)}.witch{position:absolute;right:9%;top:92px;font-size:2.1rem;transform:rotate(-10deg);filter:grayscale(1) brightness(.15);animation:witch 9s ease-in-out infinite}@keyframes witch{50%{transform:translate(-28px,-10px) rotate(-8deg)}}
.cemetery-header{position:relative;z-index:2;text-align:center;max-width:900px;margin:0 auto 24px}.cemetery-header h1{font-size:clamp(2.3rem,5.2vw,4.5rem)}.cemetery-header p:not(.eyebrow){color:#d5cad9}.clock-pill{display:inline-block;margin-top:5px;padding:7px 12px;border:1px solid rgba(212,175,55,.3);border-radius:99px;background:rgba(12,7,18,.64);color:#f3db8b;font-size:.8rem}
.tomb-grid{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,2vw,24px);max-width:1180px;margin:0 auto;padding:8px}.tomb{appearance:none;border:0;background:transparent;color:inherit;padding:0;cursor:pointer;min-width:0;transition:transform .25s ease,filter .25s ease}.tomb:hover{transform:translateY(-5px)}.tomb-stage{display:block;position:relative;aspect-ratio:2/3;filter:drop-shadow(0 18px 18px rgba(0,0,0,.5));border-radius:18px}.tomb-img{display:block;width:100%;height:100%;object-fit:contain;transition:filter .35s ease,opacity .5s ease,transform .3s ease}.tomb-caption{display:block;text-align:center;font-family:Georgia,serif;font-weight:700;letter-spacing:.04em;margin-top:-3px;color:#e4d4b0}.tomb.future .tomb-img{filter:grayscale(.62) brightness(.58) saturate(.55)}.tomb.future:hover{transform:none}.tomb.future{cursor:not-allowed}.lock-label{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);display:inline-flex;align-items:center;justify-content:center;min-width:72%;padding:7px 9px;border-radius:99px;background:rgba(5,3,8,.84);border:1px solid rgba(220,187,95,.35);color:#eed98d;font-size:clamp(.6rem,1.5vw,.78rem);font-weight:800;box-shadow:0 8px 20px rgba(0,0,0,.35)}
.tomb.today{filter:drop-shadow(0 0 10px rgba(255,122,0,.35))}.tomb.today .tomb-stage:before{content:"";position:absolute;inset:5% 8%;border-radius:50%;box-shadow:0 0 30px 10px rgba(255,122,0,.3),0 0 55px 22px rgba(90,44,160,.24);animation:pulse 1.8s ease-in-out infinite;z-index:-1}@keyframes pulse{50%{opacity:.45;transform:scale(1.03)}}.tomb.today .lock-label{background:linear-gradient(90deg,#4e1a75,#9e3d23);color:#fff5d6;border-color:rgba(255,219,118,.55);animation:labelpulse 1.5s ease-in-out infinite}@keyframes labelpulse{50%{box-shadow:0 0 20px rgba(255,122,0,.38)}}
.tomb.consumed{cursor:default}.tomb.consumed:hover{transform:none}.tomb.consumed .tomb-img{opacity:.11;filter:grayscale(1) blur(.6px) brightness(.7)}.tomb.consumed .lock-label{background:rgba(5,5,7,.72);color:#bed8ca;border-color:rgba(143,255,210,.24)}.smoke-layer{position:absolute;inset:20% 0 4%;overflow:hidden;pointer-events:none;opacity:0}.consumed .smoke-layer{opacity:1}.smoke-layer i{position:absolute;width:42%;height:30%;border-radius:50%;background:radial-gradient(circle,rgba(197,255,231,.4),rgba(105,181,154,.16) 45%,transparent 70%);filter:blur(9px);animation:spirit 5.5s infinite ease-in-out}.smoke-layer i:nth-child(1){left:2%;bottom:4%}.smoke-layer i:nth-child(2){left:32%;bottom:10%;animation-delay:-1.9s}.smoke-layer i:nth-child(3){right:0;bottom:3%;animation-delay:-3.5s}@keyframes spirit{50%{transform:translateY(-70%) translateX(12%) scale(1.2);opacity:.42}100%{transform:translateY(-130%) translateX(-12%) scale(.8);opacity:0}}
.ghost-passed{position:absolute;left:50%;top:44%;font-size:clamp(2rem,5vw,4rem);opacity:0;filter:drop-shadow(0 0 18px rgba(143,255,210,.6));transform:translate(-50%,0)}.consumed .ghost-passed{animation:ghostpass 8s ease-in-out infinite}@keyframes ghostpass{0%,62%,100%{opacity:0;transform:translate(-100%,10px) scale(.8)}72%{opacity:.8}86%{opacity:.45;transform:translate(40%,-25px) scale(1.02)}}
.tomb.shake{animation:shake .35s ease}@keyframes shake{25%{transform:translateX(-5px)}50%{transform:translateX(5px)}75%{transform:translateX(-3px)}}
.cemetery-footer{position:relative;z-index:2;text-align:center;margin:24px auto 0;color:#b8acbc;font-size:.82rem}.cemetery-footer p{margin:4px}
.modal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(3,2,5,.82);backdrop-filter:blur(8px)}.offer-card{position:relative;width:min(620px,96vw);padding:28px;border-radius:24px;background:radial-gradient(circle at 50% 0,rgba(90,44,160,.24),transparent 42%),linear-gradient(180deg,#1d1127,#0e0913);border:1px solid rgba(212,175,55,.42);box-shadow:0 32px 100px rgba(0,0,0,.65),0 0 55px rgba(90,44,160,.2);overflow:hidden;text-align:center}.offer-card:before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.05);border-radius:18px;pointer-events:none}.close{position:absolute;right:12px;top:9px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.13);background:rgba(0,0,0,.25);color:#fff;font-size:1.5rem;cursor:pointer}.offer-card h2{font-family:Georgia,serif;font-size:clamp(1.7rem,5vw,2.8rem);margin:6px 0 12px;color:#fff0bd}.offer-text{font-size:clamp(1rem,2.5vw,1.25rem);line-height:1.55;color:#eee5ef}.promo-box{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:18px auto;padding:14px;border:1px dashed rgba(212,175,55,.5);border-radius:14px;background:rgba(0,0,0,.22)}.promo-box span{color:#cdbfd0}.promo-box strong{font-size:1.2rem;letter-spacing:.08em;color:#ffdb6d}.promo-box button{border:0;border-radius:9px;padding:7px 10px;background:#2f2140;color:#fff;cursor:pointer}.conditions{font-size:.75rem;line-height:1.45;color:#b9acbc}.cta{display:inline-flex;text-decoration:none;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:12px;background:linear-gradient(135deg,#6f32b8,#d85b1f);color:#fff7df;font-weight:900;box-shadow:0 12px 35px rgba(87,38,128,.4);margin-top:8px}.vanish-note{font-size:.72rem;color:#9cc6b3;margin:15px 0 0}.offer-smoke{position:absolute;left:-20%;right:-20%;bottom:-40px;height:140px;background:radial-gradient(ellipse,rgba(130,231,187,.19),transparent 65%);filter:blur(18px);animation:fog 9s ease-in-out infinite alternate;pointer-events:none}
@media(max-width:840px){.tomb-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px}.moon{width:110px;height:110px;right:-20px;top:10px}.prelaunch-card{margin-top:38vh}.cemetery{padding-inline:8px}.tomb-caption{font-size:.84rem}}
@media(max-width:480px){.prelaunch{padding:10px}.prelaunch-card{margin-top:44vh;padding:18px 14px 16px;border-radius:18px}.countdown{gap:5px}.countdown div{padding:8px 4px}.cemetery-header{margin-bottom:12px}.tomb-grid{gap:2px;padding:0}.lock-label{bottom:5%;min-width:80%;padding:6px 5px}.offer-card{padding:26px 16px 20px}.moon{opacity:.55}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* --- Mode test, transition portail et fiche recette --- */
.gate-transition{position:fixed;inset:0;z-index:70;overflow:hidden;background:#050307;pointer-events:none}
.gate-transition-bg{position:absolute;inset:-4%;background:url('assets/portal.png') center/cover no-repeat;filter:brightness(.78) saturate(.9);transform:scale(1.02)}
.gate-transition-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(77,255,181,.06),rgba(8,3,13,.15) 35%,rgba(3,1,5,.82) 100%)}
.gate-transition-copy{position:absolute;z-index:4;left:50%;top:51%;transform:translate(-50%,-50%);width:min(92vw,720px);text-align:center;text-shadow:0 4px 18px #000,0 0 24px rgba(105,255,194,.35)}
.gate-transition-copy span{display:block;text-transform:uppercase;letter-spacing:.22em;font-size:.8rem;color:#d4af37;font-weight:900}
.gate-transition-copy strong{display:block;margin-top:8px;font-family:Georgia,serif;font-size:clamp(2rem,7vw,4.8rem);color:#fff2c9}
.gate-transition-fog{position:absolute;left:-20%;right:-20%;bottom:-10%;height:40%;background:radial-gradient(ellipse at 30% 50%,rgba(151,255,218,.42),transparent 40%),radial-gradient(ellipse at 72% 60%,rgba(224,255,240,.28),transparent 38%);filter:blur(20px);opacity:.85}
.gate-transition.is-playing .gate-transition-bg{animation:gatezoom 3.2s cubic-bezier(.2,.65,.2,1) both}
.gate-transition.is-playing .gate-transition-copy{animation:gatecopy 3.2s ease both}
.gate-transition.is-playing .gate-transition-fog{animation:gatefog 3.2s ease both}
.gate-transition.is-playing{animation:gatefade 3.2s ease both}
@keyframes gatezoom{0%{transform:scale(1.02);filter:brightness(.68) saturate(.78)}30%{transform:scale(1.045);filter:brightness(.9) saturate(1)}70%{transform:scale(1.14);filter:brightness(1.15) saturate(1.15)}100%{transform:scale(1.25);filter:brightness(1.25) blur(2px)}}
@keyframes gatecopy{0%,12%{opacity:0;transform:translate(-50%,-42%)}26%,62%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-58%)}}
@keyframes gatefog{0%{transform:translateX(-8%) scale(.9);opacity:.2}60%{transform:translateX(7%) scale(1.25);opacity:.95}100%{transform:translateX(15%) scale(1.5);opacity:0}}
@keyframes gatefade{0%,78%{opacity:1}100%{opacity:0;visibility:hidden}}
.tomb.opening .tomb-img{animation:tombopening .85s cubic-bezier(.2,.8,.2,1) both}
.tomb.opening .tomb-stage:after{content:"";position:absolute;inset:18% 12% 10%;border-radius:50%;background:radial-gradient(circle,rgba(205,255,231,.72),rgba(97,221,168,.24) 38%,transparent 70%);filter:blur(10px);animation:unlockflash .85s ease both;pointer-events:none}
@keyframes tombopening{0%{transform:translateX(0) rotate(0);filter:brightness(1)}18%{transform:translateX(-5px) rotate(-1deg)}35%{transform:translateX(6px) rotate(1deg)}52%{transform:translateX(-4px) rotate(-.5deg)}72%{transform:scale(1.04);filter:brightness(1.35) saturate(1.2)}100%{transform:scale(.97);filter:brightness(1.05)}}
@keyframes unlockflash{0%{opacity:0;transform:scale(.7)}55%{opacity:1;transform:scale(1.15)}100%{opacity:0;transform:scale(1.5)}}
.test-panel{position:fixed;z-index:90;left:12px;right:12px;bottom:12px;margin:auto;max-width:1080px;padding:12px 14px;border:1px solid rgba(212,175,55,.42);border-radius:16px;background:rgba(10,6,14,.94);backdrop-filter:blur(12px);box-shadow:0 14px 45px rgba(0,0,0,.5);color:#f4ebf6}
.test-title{font-weight:900;color:#f4d878;margin-bottom:8px}.test-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:7px}.test-panel button,.test-panel input{border:1px solid rgba(255,255,255,.16);border-radius:9px;background:#24172e;color:#fff;padding:8px 10px;font:inherit}.test-panel button{cursor:pointer}.test-panel button:hover{background:#3a2250}.test-panel small{display:block;margin-top:8px;color:#ac9eb2}.test-panel code{color:#f2d06e}
.recipe-content{text-align:left;max-height:min(54vh,560px);overflow:auto;padding:0 7px 2px;scrollbar-width:thin}.recipe-content .offer-lead{text-align:center;font-size:1.03rem;color:#f4e8f6}.recipe-content h3{font-family:Georgia,serif;color:#f4d77a;margin:18px 0 8px;font-size:1.08rem}.recipe-content ul,.recipe-content ol{padding-left:1.25rem;margin:6px 0 12px;color:#ece2ee}.recipe-content li{margin:5px 0;line-height:1.42}.witch-tip{padding:11px 13px;border:1px solid rgba(212,175,55,.28);border-radius:12px;background:rgba(212,175,55,.06);color:#f2e5c0}.expert-tasting{margin:14px 0 8px;padding:14px;border:1px solid rgba(115,255,197,.25);border-radius:14px;background:rgba(70,166,126,.08);text-align:center}.expert-tasting>strong{font-family:Georgia,serif;color:#d9ffe9;font-size:1.08rem}.expert-tasting p{margin:8px 0}.phone-offer{font-size:1.35rem!important;font-weight:900;color:#fff0b8}.phone-offer span{font-size:.78rem;font-weight:600;color:#c8becb}
@media(max-width:620px){.test-panel{left:6px;right:6px;bottom:6px;padding:9px}.test-row.presets{display:grid;grid-template-columns:repeat(3,1fr)}.test-panel button,.test-panel input{font-size:.72rem;padding:7px 6px}.recipe-content{max-height:48vh}.gate-transition-copy{top:47%}}
