:root{color-scheme:dark;--bg:#090d12;--panel:#11181e;--panel2:#151d25;--ink:#edeae0;--muted:#99aaa8;--fine:#63767a;--border:#29393e;--gold:#e6cb75;--mint:#93e0bc;--red:#ff8a7a;--mono:'IBM Plex Mono',Consolas,monospace;--display:'Space Grotesk',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 8% -8%,#24453a66,transparent 35%),radial-gradient(ellipse at 98% 32%,#1c283d77,transparent 42%),linear-gradient(140deg,#091014,#0b0e15 60%,#090e10);font-family:var(--display);min-height:100vh;line-height:1.6}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.10;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 4px,#0008 5px,#0008 6px)}a{color:var(--gold)}.topbar{height:68px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(18px,5vw,70px);background:#0d1419bc}.brand{font-weight:700;letter-spacing:.13em;display:flex;align-items:center;gap:10px}.brand-mark{border:1px solid var(--mint);border-radius:5px;color:var(--mint);font-size:27px;width:35px;height:35px;display:grid;place-items:center}.brand em{font-style:normal;color:var(--mint)}.topbar-note,.session-tag{font:500 10px var(--mono);letter-spacing:.11em;color:var(--fine)}.session-tag{color:var(--gold)}.wrap{max-width:1300px;margin:0 auto;padding:clamp(16px,3vw,36px)}.panel{border:1px solid var(--border);border-radius:5px;background:linear-gradient(145deg,#162027e6,#0f151bdc);box-shadow:0 8px 36px #0003}.gate{max-width:840px;margin:28px auto 48px;padding:clamp(26px,6vw,66px);text-align:center;position:relative;overflow:hidden}.gate:before{content:'';height:4px;position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,transparent,var(--mint),var(--gold),transparent)}.eyebrow,.chapter-tag,.side-label{font:600 11px var(--mono);letter-spacing:.11em;color:var(--mint)}.indicator{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 14px var(--mint);margin-right:10px}.tiny-glyph{margin:34px auto 22px}.glitch-circle{width:85px;height:85px;display:inline-grid;place-items:center;border:2px dashed var(--gold);border-radius:50%;font:700 30px var(--mono);color:var(--gold);box-shadow:0 0 0 15px #e6cb7509}.gate h1{font-size:clamp(31px,6.1vw,60px);line-height:1.09;letter-spacing:-.038em;margin:20px 0 22px;font-weight:700}.gate h1 span{color:var(--gold)}.gate-lead{font-size:clamp(14px,2vw,18px);color:#c5d0cd;line-height:1.85}.gate-lead strong{color:var(--mint);letter-spacing:.03em}.gate-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:590px;margin:30px auto;padding:19px 8px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.gate-rules>div{display:flex;flex-direction:column;align-items:center;gap:6px}.gate-rules b{font:700 21px var(--mono);color:var(--gold)}.gate-rules span{font-size:11px;color:var(--muted)}.gate-form{max-width:450px;margin:auto;display:grid;gap:10px;text-align:left}.gate-form label,.chat-form label{font:600 10px var(--mono);letter-spacing:.08em;color:var(--muted);margin-top:9px}input,textarea{background:#081117;color:var(--ink);border:1px solid #385052;border-radius:3px;padding:14px 16px;font:400 14px var(--display);width:100%;outline:none;transition:border-color .15s}input:focus,textarea:focus{border-color:var(--mint);box-shadow:0 0 0 2px #93e0bc20}textarea{resize:vertical}.button{border:1px solid transparent;border-radius:3px;font:700 11px var(--mono);letter-spacing:.04em;padding:14px 17px;cursor:pointer;transition:transform .12s,filter .12s,background .12s}.button:hover{filter:brightness(1.1);transform:translateY(-1px)}.button:focus-visible,.choice-button:focus-visible,.npc-button:focus-visible,.text-button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.button:disabled,.choice-button:disabled{opacity:.55;cursor:wait}.button.primary{color:#101a18;background:var(--mint)}.button.secondary{color:var(--gold);border-color:var(--gold);background:#242319}.button.ghost{color:var(--ink);background:transparent;border-color:var(--border)}.gate-form .button{margin-top:9px;width:100%;display:flex;justify-content:space-between}.fineprint{color:var(--fine);font:400 11px/1.75 var(--mono);margin-top:24px}.error{color:var(--red);font:500 12px var(--mono)}.game{animation:appear .45s ease}.status-bar{display:grid;grid-template-columns:2fr 1fr 1.2fr 1.4fr;gap:0;overflow:hidden}.status-block{padding:15px 22px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--border)}.status-block:last-child{border:0}.status-block small{font:600 10px var(--mono);color:var(--muted);letter-spacing:.1em}.status-block strong{font:700 18px var(--mono);white-space:nowrap}.status-block strong span{font:500 10px var(--mono);color:var(--fine)}.status-block.token strong{color:var(--gold)}.status-block.token i{font-style:normal;color:#827456}.status-block.result strong{color:var(--mint)}.progress-shell{height:3px;background:#1c2a2d;margin:12px 0 20px;overflow:hidden}.progress-shell>div{height:100%;width:0;background:linear-gradient(90deg,var(--mint),var(--gold));transition:width .45s ease}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:20px;align-items:start}.reader{padding:clamp(24px,4vw,46px);position:relative;min-height:660px}.chapter-tag{margin-bottom:23px}.chapter-tag span{color:var(--fine)}.scene-heading{display:flex;align-items:flex-start;gap:18px;border-bottom:1px solid var(--border);padding-bottom:23px}.scene-heading>span{font:400 25px var(--mono);color:var(--gold)}.scene-heading h2{font-size:clamp(25px,3.2vw,39px);margin:-4px 0 0;line-height:1.15;letter-spacing:-.025em}.story{margin:32px 0 28px;color:#d3dad5;font:400 clamp(15px,1.55vw,17px)/1.83 var(--display);max-width:68ch}.story p{margin:0 0 19px;white-space:pre-line}.story p:first-of-type::first-letter{font-size:1.08em}.story p strong{color:var(--gold)}.choices{margin-top:28px;display:grid;gap:11px}.choice-button{display:flex;gap:16px;text-align:left;width:100%;background:#19272b;color:#eaf3ed;border:1px solid #365455;padding:16px 18px;border-radius:3px;cursor:pointer;font:600 14px/1.55 var(--display);align-items:flex-start;transition:background .15s,border .15s,transform .15s}.choice-button:hover{background:#203539;border-color:var(--mint);transform:translateX(2px)}.choice-button .choice-arrow{font:700 19px var(--mono);color:var(--mint);margin-left:auto}.choice-button .choice-index{font:700 12px var(--mono);color:var(--gold);border:1px solid #7b6d48;min-width:25px;height:25px;display:grid;place-items:center;border-radius:2px}.reader-footer{border-top:1px solid var(--border);margin-top:40px;padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:6px;color:var(--fine);font:500 9px var(--mono);letter-spacing:.06em}.feedback{border-left:3px solid var(--mint);background:#19332c;padding:14px 17px;margin:20px 0;color:#d3f5e4;font:500 13px/1.8 var(--display)}.puzzle{background:#0c151b;border:1px solid #436259;padding:22px;margin-top:24px}.puzzle-header{display:flex;align-items:center;gap:12px;font:700 11px var(--mono);color:var(--mint);margin-bottom:24px}.puzzle-header>span{font-size:20px}.puzzle-header>div{flex:1}.puzzle-header small{display:block;color:var(--fine);margin-top:5px}.puzzle-header strong{color:var(--gold);font-size:18px}.puzzle label{display:block;margin-bottom:13px;font-size:15px;color:var(--ink);font-weight:600}.answer-row{display:flex;gap:8px}.answer-row input{flex:1;min-width:0}.text-button{margin-top:15px;border:0;background:none;color:var(--gold);text-decoration:underline;text-decoration-style:dotted;cursor:pointer;font:500 11px var(--mono);padding:6px 0;text-align:left}.hint-content{margin:12px 0;padding:12px 16px;border:1px dashed var(--gold);font:400 13px var(--display);color:#f1dc9f}.attempts{display:block;color:var(--muted);font:400 11px var(--mono);margin-top:10px}.sidebar{display:grid;gap:18px}.side-card{padding:22px}.side-label{padding-bottom:14px;border-bottom:1px solid var(--border)}.side-description{font:400 12px/1.7 var(--display);color:var(--muted)}.side-foot,.quota{font:400 10px/1.65 var(--mono);color:var(--fine);margin:14px 0 0}.milestones{margin-top:10px}.milestone{padding:11px 0;border-bottom:1px solid #27373c;display:flex;gap:11px;align-items:flex-start}.milestone:last-child{border:0}.milestone .marker{display:grid;place-items:center;width:23px;height:23px;flex-shrink:0;border:1px solid #55645a;border-radius:50%;color:var(--fine);font:700 10px var(--mono)}.milestone.done .marker{background:var(--mint);border-color:var(--mint);color:#101d18}.milestone .milestone-text{flex:1}.milestone .milestone-text b{display:block;font-size:12px;font-weight:600}.milestone .milestone-text small{font:400 10px var(--mono);color:var(--muted)}.milestone .amount{font:700 13px var(--mono);color:var(--gold)}.npc-buttons{display:flex;gap:7px;flex-wrap:wrap}.npc-button{border:1px solid #455d5c;color:#d9e1dc;background:transparent;font:600 10px var(--mono);padding:10px 9px;border-radius:3px;cursor:pointer}.npc-button.selected{background:#29453e;border-color:var(--mint);color:var(--mint)}.chat-log{margin-top:15px;display:grid;gap:7px;max-height:230px;overflow-y:auto;padding:3px}.chat-line{font-size:12px;line-height:1.55;padding:10px 11px;background:#111f23;border-left:2px solid var(--gold)}.chat-line.you{background:#1b2826;border-color:var(--mint)}.chat-line b{display:block;font:600 9px var(--mono);color:var(--gold);margin-bottom:4px}.chat-line.you b{color:var(--mint)}.chat-form{margin-top:13px}.chat-form label{display:block;margin-bottom:7px}.chat-form textarea{font-size:12px;padding:11px}.chat-form .button{width:100%;margin-top:8px}.side-quote>span{font:bold 40px Georgia,serif;color:var(--gold)}.side-quote p{font-style:italic;line-height:1.5;color:#c8d2c8;margin:0 0 16px}.side-quote small{font:500 9px var(--mono);color:var(--fine)}.ending{border-top:1px solid var(--gold);padding-top:25px;margin-top:15px}.ending h2{font-size:clamp(25px,4vw,38px);color:var(--gold);line-height:1.13}.ending>p{font-size:15px;line-height:1.9}.prize{margin:30px 0;text-align:center;border:1px solid #887446;padding:27px 15px;background:linear-gradient(135deg,#39311a,#151b19)}.prize small,.prize span{display:block;font:600 10px var(--mono);color:#e1d3b0;letter-spacing:.08em}.prize strong{display:block;font:700 60px var(--mono);color:var(--gold);margin:7px 0}.ending .dedication{padding:15px 20px;border-left:3px solid var(--mint);color:#c3e7d5;font-style:italic}.end-actions{display:flex;flex-wrap:wrap;gap:10px}.demo-ending-note{color:var(--red);font:700 12px var(--mono);border:1px solid var(--red);padding:10px}.footer{text-align:center;padding:40px 0;color:var(--fine);font:400 9px var(--mono)}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);border:1px solid var(--gold);padding:12px 18px;background:#2a281d;color:var(--gold);font:500 12px var(--mono);z-index:50;max-width:85vw;text-align:center;box-shadow:0 8px 30px #0007}@keyframes appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
[hidden]{display:none!important}
@media(max-width:960px){.game-layout{grid-template-columns:minmax(0,1fr)}.sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.side-quote{display:none}.reader{min-height:auto}.status-block{padding:13px}}@media(max-width:610px){.topbar{height:58px;padding:0 14px}.topbar-note{display:none}.session-tag{font-size:9px}.wrap{padding:12px}.gate{margin:14px 0;padding:24px 18px}.gate-rules span{font-size:9px}.status-bar{grid-template-columns:1fr 1fr}.status-block:nth-child(2){border-right:0}.status-block:nth-child(-n+2){border-bottom:1px solid var(--border)}.status-block strong{font-size:16px}.status-block:first-child strong span{display:none}.game-layout{gap:12px}.reader{padding:23px 18px}.chapter-tag{font-size:10px}.story{font-size:15px}.sidebar{grid-template-columns:1fr;gap:12px}.answer-row{flex-direction:column}.answer-row button{width:100%}.prize strong{font-size:49px}.reader-footer{font-size:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{body{background:white;color:black}.scanlines,.topbar,.status-bar,.progress-shell,.story,.choices,.puzzle,.sidebar,.reader-footer,.footer,.end-actions,.feedback,.scene-heading,.chapter-tag{display:none!important}.wrap{max-width:750px}.reader{border:0;box-shadow:none}.ending{display:block!important;color:black}.ending h2{color:black}.prize{background:white}.prize strong{color:black}}

/* Guide d'accueil et barre d'état. */
.game-guide{margin:30px auto;padding:24px;text-align:left;border:1px solid var(--border);background:#0b171b}
.game-guide h2{margin:8px 0 12px;color:var(--gold);font-size:24px;line-height:1.2}
.game-guide p,.game-guide li{color:#d3dad5;font-size:14px;line-height:1.7}
.game-guide ul{padding-left:20px;margin:16px 0}
.game-guide li{margin:10px 0}
.game-guide strong{color:var(--mint)}
.status-bar{grid-template-columns:2fr 1fr 1.4fr}
@media(max-width:610px){.game-guide{padding:18px}.status-bar{grid-template-columns:1fr 1fr}.status-block:last-child{grid-column:1 / -1}}
