@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Josefin Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Josefin Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Josefin Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/font-6.ttf) format('truetype');
}
@font-face {
  font-family: 'Josefin Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/font-7.ttf) format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/font-8.ttf) format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/font-9.ttf) format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/font-10.ttf) format('truetype');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/font-11.ttf) format('truetype');
}

:root{font-family:'DM Sans',sans-serif;color:#F2F8F7;background:#0A2E2A;font-synthesis:none;--accent:#4CCCB8;--ink:#0A2E2A;--cta:#FDA100;--teal-dark:#1C7269}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{color:inherit;border:0}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}.welcome{min-height:100svh;position:relative;overflow:hidden;padding:42px 5vw 26px}.welcome-photo,.welcome-shade{position:absolute;inset:0;pointer-events:none}.welcome-photo{background:url('assets/classroom.png') center/cover;transform:scale(1.025)}.welcome-shade{background:linear-gradient(90deg,rgba(10,46,42,.96),rgba(10,46,42,.82) 47%,rgba(10,46,42,.57)),linear-gradient(0deg,#0A2E2Abb,transparent 35%)}.welcome-top,.welcome-content,.welcome-footer{position:relative}.welcome-top{display:flex;justify-content:space-between;align-items:center}.brand{font-family:'Space Grotesk',sans-serif;font-size:30px;letter-spacing:-1.8px;font-weight:700;line-height:1;background:none;padding:0;text-align:left}.brand>span{color:var(--accent)}.brand small{display:block;font-family:'DM Sans',sans-serif;font-size:8px;font-weight:500;letter-spacing:2px;margin-top:12px}.edition{font-size:10px;letter-spacing:2px;color:#D0E7E2;display:flex;align-items:center;gap:16px}.edition i{width:6px;height:6px;background:var(--accent);border-radius:50%}.welcome-content{display:grid;grid-template-columns:1.4fr 1fr;gap:7vw;align-items:center;max-width:1440px;margin:72px auto 66px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;line-height:1.7;color:var(--accent)}.eyebrow>span{display:inline-block;width:24px;height:1px;background:var(--accent);vertical-align:middle;margin-right:10px}h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(46px,5.3vw,88px);line-height:1.03;letter-spacing:-4px;font-weight:500;margin:30px 0}h1 em{font-style:normal;color:var(--accent)}.lead{color:#D0E7E2;font-size:16px;line-height:1.7}.title-lockup{font-size:12px;letter-spacing:4px;border-left:2px solid var(--accent);padding-left:18px;margin-top:42px}.title-lockup b{display:block;font-family:'Space Grotesk',sans-serif;font-size:27px;letter-spacing:3px;margin:6px 0}.title-lockup span{font-size:7px;letter-spacing:1.7px;color:#D0E7E2}.entry-card{background:#F2F8F7;color:var(--ink);border-radius:3px;padding:34px 32px 24px;max-width:420px;box-shadow:0 24px 80px #0003}.card-index{font-size:9px;letter-spacing:1.6px;font-weight:700;color:#48635F}h2{font-family:'Space Grotesk',sans-serif;font-size:27px;font-weight:500;letter-spacing:-1px;margin:25px 0 12px}.entry-card>p{font-size:14px;line-height:1.6;color:#48635F;margin-bottom:26px}label{font-size:11px;font-weight:700;display:block;margin:20px 0 9px}label span{font-weight:400;color:#5B7570}input,select{width:100%;padding:13px 14px;border:1px solid #B9D8D2;background:#FFFFFF;color:var(--ink);border-radius:2px;font-size:14px}select{appearance:auto}.primary{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--cta);color:var(--ink);padding:15px 18px;width:100%;font-weight:700;border-radius:2px;margin-top:24px;font-size:14px}.primary:hover{background:#FFB52E}.primary>span{font-size:inherit;line-height:1.4}.entry-card .privacy,.privacy{font-size:10px;line-height:1.65;color:#48635F;margin:16px 0}.entry-rules{border-top:1px solid #CDE3DE;margin-top:22px;padding-top:18px;display:flex;justify-content:space-between;font-size:8px;color:#48635F}.welcome-footer{display:flex;justify-content:space-between;gap:20px;color:#B9D8D2;font-size:8px;letter-spacing:1.4px}.scene-note{opacity:.7}#game{position:fixed;inset:0;background:#071615}#viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;outline:none}#viewport.dragging{cursor:grabbing}#scene{position:absolute;transform-origin:0 0;will-change:transform}#photo{display:block;width:100%;height:100%;user-select:none;pointer-events:none}.game-top,.game-bottom{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.game-top{top:0;padding:24px 30px;background:linear-gradient(#071615d9,transparent)}.game-top>*:not(.counter),.game-bottom>*:not(.instructions){pointer-events:auto}.game-top .brand{font-size:25px;filter:drop-shadow(0 2px 4px #0005)}.game-top .brand small{font-size:7px;margin-top:8px}.counter{text-align:center;background:#0A2E2Ae0;backdrop-filter:blur(12px);padding:12px 24px;border:1px solid #fff2;border-radius:4px;font-family:'Space Grotesk',sans-serif;min-width:182px}.counter>span{font-size:28px}.counter #count{color:var(--accent)}.slash{color:#B9D8D2;margin:0 9px}.counter small{display:block;font-size:7px;letter-spacing:2px;margin-top:4px}.progress{height:2px;background:#ffffff2b;margin-top:10px}.progress i{display:block;height:100%;background:var(--accent);transition:width .4s}.round{width:38px;height:38px;border:1px solid #fff4;border-radius:50%;background:#0A2E2Aab;font-size:23px}.game-bottom{bottom:0;padding:40px 24px 22px;background:linear-gradient(transparent,#071615e8)}.player{display:flex;align-items:center;gap:10px}.avatar{border:1px solid #B9D8D288;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:12px;background:#0A2E2A}.player strong{font-size:12px}.player small{display:block;font-size:8px;color:#D0E7E2;margin-top:4px}.instructions{font-size:10px;letter-spacing:.6px;color:#F2F8F7}.game-actions{display:flex;align-items:center;gap:8px}.game-actions button,.zoom-tools button{background:#0A2E2Ad9;backdrop-filter:blur(10px);border:1px solid #fff3;border-radius:3px;padding:11px 13px;font-size:14px}.game-actions button span{font-size:10px;margin-left:5px}.game-actions b{font-size:9px;margin-left:8px;color:var(--accent)}.zoom-tools{position:absolute;right:25px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;align-items:center}.zoom-tools button{width:38px;padding:7px;font-size:22px}.zoom-tools output{background:#0A2E2Ae6;font-size:9px;padding:7px 3px;width:38px;text-align:center;border-radius:2px}.found-marker{position:absolute;transform:translate(-50%,-50%) scale(calc(1 / var(--scene-scale,1)));width:25px;height:25px;display:grid;place-items:center;background:#0A2E2Acc;color:var(--accent);border:1px solid var(--accent);border-radius:50%;font-size:14px;pointer-events:none}#selection{position:absolute;border:2px solid var(--accent);border-radius:50%;width:72px;height:72px;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #4CCCB822;pointer-events:none}dialog{border:1px solid #fff2;border-radius:5px;background:#F2F8F7;color:var(--ink);padding:32px;width:min(440px,calc(100% - 32px));max-height:85svh;overflow-y:auto;box-shadow:0 30px 100px #0007}dialog::backdrop{background:#071615aa;backdrop-filter:blur(6px)}dialog .eyebrow{color:#1C7269;font-size:8px;margin-top:0}dialog>p:not(.eyebrow){font-size:13px;line-height:1.6;color:#48635F}.close{position:absolute;top:10px;right:12px;font-size:25px;background:none;color:#48635F}.secondary{background:none;color:var(--ink);padding:14px;width:100%;font-size:11px;text-decoration:underline}#feedback{min-height:20px;font-size:12px;line-height:1.5;color:#A63228}#feedback.success{color:#1C7269}#discoveries{list-style:none;padding:0;display:grid;gap:12px}#discoveries li{border-top:1px solid #CDE3DE;padding:14px 0 0;display:flex;gap:14px;align-items:center}#discoveries li>span{font-size:23px;color:#1C7269}#discoveries strong{font-size:14px}#discoveries small{display:block;font-size:10px;color:#48635F;margin-top:4px}#toast{position:fixed;bottom:105px;left:50%;transform:translateX(-50%);background:#0A2E2Aee;border:1px solid #4CCCB866;color:#F2F8F7;border-radius:3px;padding:14px 22px;font-size:12px;text-align:center;z-index:10;max-width:90vw;width:max-content;box-shadow:0 10px 30px #0004}
@media(min-width:1500px){.welcome-content{margin-top:100px;margin-bottom:100px}}@media(max-width:900px){.welcome{padding:25px}.welcome-content{gap:30px;grid-template-columns:1fr 1fr;margin:65px 0 45px}h1{font-size:48px;letter-spacing:-2.5px}.entry-card{padding:27px 24px}.edition{font-size:8px;letter-spacing:1px}.welcome-footer{font-size:7px}.instructions{display:none}.game-top{padding:20px}.game-bottom{padding:30px 16px 18px}.zoom-tools{right:16px}.player small{max-width:125px;line-height:1.4}}
@media(max-width:600px){.welcome{padding:24px 22px}.welcome-top .brand{font-size:26px}.welcome-top .brand small{font-size:6px;letter-spacing:1.3px}.edition{display:none}.welcome-content{grid-template-columns:1fr;margin:44px 0 24px;gap:30px}h1{font-size:49px;margin:20px 0;letter-spacing:-2.8px}.lead{font-size:13px}.title-lockup{display:none}.eyebrow{font-size:8px}.entry-card{max-width:none;padding:25px}.entry-card h2{font-size:25px;margin-top:17px}.welcome-footer{justify-content:center}.welcome-footer>span:not(.scene-note){display:none}.game-top .brand{font-size:21px}.game-top{padding:16px}.counter{min-width:120px;padding:9px 12px}.counter>span{font-size:23px}.counter small{font-size:6px;letter-spacing:1px}.round{width:32px;height:32px;font-size:20px}.game-actions{gap:4px}.game-actions button{padding:10px}.game-actions button span{display:none}.player small{font-size:7px;max-width:115px}.zoom-tools{top:45%;right:12px}.zoom-tools button{width:34px}.zoom-tools output{width:34px}.game-bottom{padding-bottom:max(18px,env(safe-area-inset-bottom))}dialog{padding:26px}#toast{bottom:88px}h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* AcadéNice palette: turquoise for identity, orange for primary actions. */
.game-actions button:hover,.zoom-tools button:hover,.round:hover{background:#1C7269;border-color:var(--accent)}
.entry-card input:focus,.entry-card select:focus,dialog input:focus{border-color:var(--teal-dark)}

/* Original AcadéNice logo, with its intrinsic proportions and colors. */
.brand-logo{display:block;width:230px;height:auto}
.game-top .brand-logo{width:175px}
@media(max-width:600px){.welcome-top .brand-logo{width:205px}.game-top .brand-logo{width:110px}}

.timer-row{border-top:1px solid #ffffff22;margin-top:10px;padding-top:9px;display:flex;align-items:center;justify-content:center;gap:10px}.timer-row output{font-size:18px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:1px}.timer-row span{font-family:"DM Sans",sans-serif;font-size:6px;letter-spacing:1px;max-width:38px;line-height:1.5;text-align:left}
@media(max-width:600px){.timer-row{gap:6px;margin-top:7px;padding-top:6px}.timer-row output{font-size:14px;letter-spacing:.5px}.timer-row span{font-size:5px;max-width:30px}}

.ranking-link{padding:0;background:none;color:var(--accent);font-size:10px;letter-spacing:1px}.ranking-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}#scores-dialog{width:min(550px,calc(100% - 32px))}#ranking{padding:0;list-style:none}#ranking li{display:flex;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid #CDE3DE}#ranking li>span{font-size:22px;min-width:30px}#ranking li>div{flex:1;min-width:0}#ranking strong{display:block;font-size:14px;overflow-wrap:anywhere}#ranking small{display:block;font-size:9px;color:#48635F;margin-top:5px}#ranking li>b{font-family:'Space Grotesk',sans-serif;font-size:18px;font-variant-numeric:tabular-nums;color:var(--teal-dark)}
@media(max-width:600px){.welcome-footer{gap:15px;flex-wrap:wrap}.game-actions button{padding:9px}.ranking-link{font-size:9px}#ranking li>b{font-size:16px}}

/* AcadéRef: an uncluttered entrance, then the campus room selection. */
.landing{min-height:100svh;background:#071E1B;display:grid;grid-template-rows:1fr auto;padding:0 6vw;color:#F2F8F7}
.landing-center{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0 65px;text-align:center}
.acaderef-lockup{display:inline-block;width:max-content;max-width:100%}
.acaderef-lockup h1{font-family:'Josefin Sans',sans-serif;font-size:clamp(64px,12vw,128px);font-weight:600;line-height:1;letter-spacing:-6px;color:#4CCCB8;margin:0}
.acaderef-lockup h1>span{color:#FDA100}
.brand-byline{display:flex;align-items:center;gap:22px;margin:12px 5px 0}
.brand-byline i{height:2px;background:#fff;flex:1}
.brand-byline>span{font-family:'Josefin Sans',sans-serif;white-space:nowrap;font-size:13px;letter-spacing:1px;color:#B9D8D2}
.brand-byline b{font-size:17px;font-weight:600;letter-spacing:1.5px;color:#5EBDB0;margin-left:5px}
.brand-byline b>span{color:#F6A017}
.welcome-phrase{font-size:clamp(16px,1.65vw,21px);font-weight:400;line-height:1.6;max-width:590px;min-height:68px;margin:52px 0 22px;color:#D0E7E2;text-wrap:balance}
.campus-cta{display:flex;align-items:center;justify-content:space-between;gap:36px;background:#FDA100;color:#071E1B;border-radius:2px;padding:17px 22px;font-size:13px;font-weight:700;transition:background .2s}
.campus-cta:hover{background:#FFB52E}.campus-cta>span{font-size:20px;font-weight:400}
.landing-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #4CCCB81c;padding:23px 0;font-size:11px;color:#8CADAA}
.landing-footer a,.rooms-footer a{color:inherit;text-decoration:none}.landing-footer a:hover,.rooms-footer a:hover{color:#4CCCB8;text-decoration:underline}
.landing-footer button>.ranking-icon,.rooms-footer button>.ranking-icon{margin:0 5px 0 0}
.landing-footer button,.rooms-footer button{background:none;color:#B9D8D2;font-size:11px;padding:0}.landing-footer button:hover,.rooms-footer button:hover{color:#4CCCB8}.landing-footer button>span{margin-left:8px}
#boot-error{font-size:12px;color:#FDA100;max-width:500px}#boot-error:empty{display:none}
#entry-dialog{width:min(425px,calc(100% - 32px))}.profile-form .eyebrow{color:#1C7269}.profile-form>p:not(.eyebrow):not(.privacy){font-size:13px;color:#48635F;line-height:1.6}.profile-form h2{margin-top:18px}.profile-form #profile-feedback{color:#A63228;font-size:12px}.profile-form #profile-feedback:empty{display:none}
.mini-wordmark{font-family:'Josefin Sans',sans-serif;font-weight:600;font-size:30px;letter-spacing:-1.4px;line-height:1;color:#4CCCB8;display:block}.mini-wordmark b{color:#FDA100;font-weight:600}.brand .mini-wordmark+small{font-size:7px;letter-spacing:2px;margin-top:5px;color:#B9D8D2}.game-top .mini-wordmark{font-size:27px}
.rooms-page{min-height:100svh;background:#071E1B;display:flex;flex-direction:column;padding:30px 6vw 0}
.rooms-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.profile-link{background:none;border:1px solid #4CCCB833;border-radius:2px;padding:10px 14px;font-size:11px;color:#B9D8D2}
.rooms-content{width:100%;max-width:1120px;margin:80px auto 70px;flex:1}.rooms-content h2{font-family:'Josefin Sans',sans-serif;font-size:clamp(30px,4vw,48px);letter-spacing:-1.5px;line-height:1.1;margin:20px 0 12px;outline:none}.rooms-intro{font-size:14px;line-height:1.6;color:#8CADAA;margin-bottom:38px}
.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px;max-width:100%}
.room-card{width:100%;max-width:340px;aspect-ratio:1;position:relative;padding:0;overflow:hidden;background:#0A2E2A;border:1px solid #4CCCB833;text-align:left;border-radius:2px}
.room-card>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .35s,filter .35s;filter:brightness(.8)}
.room-coming-soon{cursor:default;opacity:1}
.room-coming-soon>img,.room-coming-soon:hover>img{filter:blur(12px) brightness(.5);transform:scale(1.12)}
.room-coming-soon-label{position:absolute;inset:32% 10% auto;z-index:4;padding:14px 8px;border:1px solid #f2f8f766;background:#071e1bcc;color:#F2F8F7;font-size:clamp(14px,2vw,22px);font-weight:700;text-align:center}
.preview-room .counter,.preview-room #time-track,.preview-room #hints,.preview-room #journal{display:none}
.room-card-body{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:25px;background:linear-gradient(transparent 35%,#071E1Bee)}
.room-index{position:absolute;top:20px;left:22px;font-size:10px;letter-spacing:2px;border:1px solid #ffffff66;background:#071E1B99;padding:7px 9px}
.room-card strong{font-family:'Josefin Sans',sans-serif;font-size:26px;letter-spacing:-.8px;font-weight:600;color:#F2F8F7}.room-details{font-size:10px;color:#D0E7E2;margin-top:8px}.room-arrow{position:absolute;right:22px;bottom:26px;color:#FDA100;font-size:26px;font-weight:400}.room-card:hover{border-color:#4CCCB8}.room-card:hover>img{transform:scale(1.045);filter:brightness(1)}
.rooms-footer{border-top:1px solid #4CCCB81c;padding:23px 0;display:flex;justify-content:space-between;color:#8CADAA;font-size:11px}
@media(max-width:600px){.landing{padding:0 24px}.landing-center{padding:65px 0 55px}.acaderef-lockup h1{font-size:clamp(61px,16vw,85px);letter-spacing:-3px}.brand-byline{gap:15px;margin-top:10px}.brand-byline>span{font-size:10px}.brand-byline b{font-size:13px;letter-spacing:1px}.welcome-phrase{margin-top:40px;min-height:80px;font-size:16px}.campus-cta{font-size:12px;padding:16px 19px;gap:28px}.landing-footer{font-size:9px;padding:22px 0}.landing-footer button{font-size:10px}.rooms-page{padding:26px 24px 0}.rooms-content{margin:60px auto 50px}.room-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.room-card{max-width:340px}.rooms-footer{font-size:9px}.game-top .mini-wordmark{font-size:22px}.brand .mini-wordmark+small{font-size:6px}.rooms-header .mini-wordmark{font-size:27px}}

/* La petite carte qui donne la réf de l’accroche. */
.welcome-hook{display:flex;align-items:center;justify-content:center;gap:16px;margin:54px auto 38px;max-width:820px}
.welcome-hook .welcome-phrase{margin:0;min-height:0;max-width:650px}
.origin-trigger{flex-shrink:0;display:flex;align-items:center;gap:7px;background:#4CCCB80d;border:1px solid #4CCCB838;border-radius:999px;color:#B9D8D2;padding:9px 12px;font-size:10px;white-space:nowrap;transition:background .2s,border-color .2s,transform .2s}
.origin-trigger>span:first-child{font-size:16px;color:#FDA100}.origin-trigger:hover{background:#4CCCB821;border-color:#4CCCB8;transform:translateY(-2px)}.origin-trigger:focus-visible{outline:2px solid #FDA100;outline-offset:4px}
.origin-dialog{width:min(520px,calc(100vw - 32px));padding:36px;border:1px solid #4CCCB850;background:radial-gradient(ellipse at top left,#1C726940,transparent 65%),#0A2421;border-radius:24px;box-shadow:0 30px 100px #0009}
.origin-dialog[open]{animation:origin-reveal .25s ease-out}.origin-spark{width:42px;height:42px;display:grid;place-items:center;border:1px solid #FDA10055;border-radius:14px;color:#FDA100;background:#FDA1000d;font-size:25px;margin-bottom:22px}.origin-dialog .eyebrow{font-size:9px;letter-spacing:2px}.origin-dialog h2{font-size:29px;margin:12px 0}.origin-adaptation{color:#A6C9C1;font-size:13px;line-height:1.6;margin-bottom:24px}
.origin-ticket{position:relative;text-align:left;background:#4CCCB809;border:1px solid #4CCCB826;border-radius:14px;padding:23px}.origin-label{font-size:9px;font-weight:600;letter-spacing:1.5px;color:#7CAC9F}.origin-ticket blockquote{font-family:Georgia,serif;font-style:italic;color:#fff;font-size:22px;line-height:1.45;margin:14px 0 24px}.origin-source{display:flex;gap:13px;border-top:1px dashed #4CCCB844;padding-top:19px}.origin-source>span{font-size:24px;color:#FDA100}.origin-source p{color:#4CCCB8;font-size:13px;line-height:1.7;margin:7px 0 0}.origin-done{width:100%;margin-top:24px;border-radius:10px;padding:15px 18px;background:#FDA100;color:#0A2E2A;font-weight:600;display:flex;justify-content:space-between}
@keyframes origin-reveal{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:600px){.welcome-hook{flex-wrap:wrap;gap:16px;margin:40px auto 30px}.welcome-hook .welcome-phrase{width:100%;font-size:16px}.origin-dialog{padding:28px 22px}.origin-dialog h2{font-size:25px}.origin-ticket{padding:19px}.origin-ticket blockquote{font-size:20px}}
@media(prefers-reduced-motion:reduce){.origin-dialog[open]{animation:none}.origin-trigger{transition:none}}

.origin-dialog{color:#F2F8F7}.origin-dialog .eyebrow{color:#4CCCB8}.origin-dialog>p.origin-adaptation{color:#A6C9C1}.origin-dialog .close{color:#B9D8D2}

.welcome-hook{flex-direction:column;gap:12px}.hook-content{width:100%;max-width:650px;position:relative}.welcome-hook .welcome-phrase{max-width:none}.origin-trigger-slot{min-height:36px;display:flex;justify-content:center}.origin-trigger-slot .origin-trigger{animation:trigger-arrive .4s ease-out}.inline-origin{text-align:center}.inline-origin blockquote{font-family:Georgia,serif;font-style:italic;font-size:clamp(18px,2.5vw,25px);line-height:1.5;margin:13px 0;color:#F2F8F7}.inline-origin>p{font-size:12px;line-height:1.7;color:#4CCCB8;margin:12px 0}.restore-hook{background:transparent;color:#9BBFB6;font-size:10px;padding:8px 12px;border-radius:99px;border:1px solid #4CCCB830;margin-top:8px}.restore-hook:hover{color:#FDA100;border-color:#FDA10066}.hook-frequency{animation:frequency-shift .42s steps(2,end) both}.hook-tremble{animation:signal-tremble .42s ease-in both}.hook-dissolve{animation:signal-dissolve .42s ease-in both}.hook-tuned{animation:signal-tuned .3s ease-out both}
@keyframes frequency-shift{0%{transform:translateX(0);filter:blur(0)}20%{transform:translateX(-3px);text-shadow:3px 0 #FDA100,-3px 0 #4CCCB8}40%{transform:translateX(4px) skewX(2deg);filter:blur(1px)}60%{transform:translateX(-2px);text-shadow:-4px 0 #FDA100,4px 0 #4CCCB8}100%{opacity:0;filter:blur(4px);transform:translateX(2px)}}
@keyframes signal-tremble{0%{transform:none}20%{transform:translate(-3px,1px) rotate(-.4deg)}40%{transform:translate(3px,-1px) rotate(.4deg)}60%{transform:translate(-2px,1px)}80%{transform:translate(2px,-1px);opacity:.6}100%{transform:none;opacity:0}}
@keyframes signal-dissolve{to{filter:blur(7px);opacity:0;transform:translateY(-4px)}}
@keyframes signal-tuned{from{opacity:0;filter:blur(3px);transform:translateY(3px)}to{opacity:1;filter:blur(0);transform:none}}
@keyframes trigger-arrive{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.origin-trigger-slot .origin-trigger{animation:none}}

.landing-footer,.rooms-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}.landing-footer>a,.rooms-footer>a{justify-self:start}.landing-footer>button:last-child,.rooms-footer>button:last-child{justify-self:end}.landing-footer>button,.rooms-footer>button{white-space:nowrap}
.about-dialog{width:min(590px,calc(100% - 32px));background:radial-gradient(ellipse at top left,#1C726940,transparent 60%),#0A2421;color:#F2F8F7;border:1px solid #4CCCB844;border-radius:20px;padding:36px}.about-dialog .close{color:#B9D8D2}.about-dialog .eyebrow{color:#4CCCB8;font-size:9px;letter-spacing:1.5px;padding-right:15px}.about-dialog h2{font-size:32px;margin:19px 0}.about-dialog>p:not(.eyebrow),.about-dialog div p{color:#B9D8D2;font-size:13px;line-height:1.8}.about-dna{display:flex;gap:15px;padding:22px 0;margin:22px 0;border-top:1px solid #4CCCB833;border-bottom:1px solid #4CCCB833}.about-dna>span{font-size:26px;color:#FDA100}.about-dialog h3{font-size:15px;font-weight:600;margin:0 0 10px}.about-dna p{margin:0}.about-campus .about-signature{font-family:"Josefin Sans",sans-serif;font-weight:600;color:#4CCCB8;font-size:24px;margin:0}.about-signature span{color:#FDA100;padding:0 8px}.about-campus h3{margin-top:24px}.about-site{display:flex;justify-content:space-between;align-items:center;background:#FDA100;color:#0A2E2A;text-decoration:none;padding:15px 18px;border-radius:8px;font-size:13px;font-weight:700;margin-top:16px}.about-site:hover{background:#FFB52E}.about-site:focus-visible{outline:3px solid #4CCCB8;outline-offset:4px}
@media(max-width:600px){.landing-footer,.rooms-footer{gap:10px}.landing-footer button,.rooms-footer button{font-size:9px}.about-dialog{padding:28px 23px}.about-dialog h2{font-size:27px}}
@media(max-width:360px){.landing-footer,.rooms-footer{grid-template-columns:1fr 1fr;row-gap:18px}.landing-footer>button:nth-child(2),.rooms-footer>button:nth-child(2){grid-column:1 / -1;grid-row:2}.landing-footer>button:last-child,.rooms-footer>button:last-child{grid-column:2;grid-row:1}}

.hook-in-decode{animation:signal-tuned .5s ease-out both}

.rooms-content{max-width:1380px}.room-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:32px}.room-card{max-width:none;border-radius:6px;--tilt-x:0deg;--tilt-y:0deg;transform:perspective(1200px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transform-style:preserve-3d;transition:transform .16s ease-out,box-shadow .16s ease-out;border-color:#4CCCB833}.room-card::before{content:"";position:absolute;inset:0 0 auto;height:10px;background:var(--room-color);z-index:3}.room-card::after{content:"";position:absolute;inset:10px 0 0;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--glare-x,50%) var(--glare-y,50%),#FFFFFF45,transparent 60%);transition:opacity .2s}.room-card.is-tilted{box-shadow:0 22px 45px #0006}.room-card.is-tilted::after{opacity:1}.room-card-body{padding:32px}.room-card strong{font-size:34px}.room-details{font-size:12px}.room-card:disabled{opacity:1;cursor:default}.room-card:disabled:hover{border-color:#4CCCB833}.room-card:disabled .room-card-body{background:linear-gradient(transparent,#071E1Baa)}.room-placeholder{position:absolute;inset:10px 0 0;background:radial-gradient(ellipse at 70% 15%,color-mix(in srgb,var(--room-color) 22%,transparent),transparent 70%),#0B302B}.room-card:disabled strong{color:#B9D8D2}.room-card:disabled .room-details{color:#8CADAA}
.profile-link{display:grid;min-width:120px;text-align:center}.profile-link>span{grid-area:1/1}.profile-link .logout-label{visibility:hidden;color:#FDA100}.profile-link:hover #rooms-pseudo,.profile-link:focus-visible #rooms-pseudo{visibility:hidden}.profile-link:hover .logout-label,.profile-link:focus-visible .logout-label{visibility:visible}.ranking-filters{grid-template-columns:1fr}
@media(max-width:600px){.room-grid{grid-template-columns:1fr;gap:24px}.room-card{max-width:none}.rooms-content{margin-top:48px}.room-card-body{padding:26px}.room-card strong{font-size:32px}}
@media(prefers-reduced-motion:reduce){.room-card{transform:none;transition:none}}

/* Palette et halos du hero AcadéNice, bouton soleil/lune du navbar. */
:root{--hero-bg:#080F0E;--text-primary:#FFFFFF;--text-body:#1A2827;--border-dark:rgba(255,255,255,.1);--border-light:#DCE8E7;--page-muted:#B9D8D2;--surface:#111A19;--page-text:#FFFFFF;--page-accent:#4CCCB8;background:var(--hero-bg);color:var(--page-text)}
[data-theme=light]{--hero-bg:#F2FFFE;--page-text:#1A2827;--page-muted:#5B7572;--surface:#F2F8F7;--page-accent:#1C7269;color-scheme:light}
[data-theme=dark]{color-scheme:dark}
.landing,.rooms-page{background:radial-gradient(ellipse 50% 80% at 30% 60%,rgba(76,204,184,.1) 0%,transparent 60%),radial-gradient(ellipse 40% 60% at 80% 20%,rgba(253,161,0,.05) 0%,transparent 50%),var(--hero-bg);color:var(--page-text)}
[data-theme=light] .landing,[data-theme=light] .rooms-page{background:radial-gradient(ellipse 50% 80% at 30% 60%,rgba(76,204,184,.15) 0%,transparent 60%),radial-gradient(ellipse 40% 60% at 80% 20%,rgba(253,161,0,.07) 0%,transparent 50%),var(--hero-bg)}
.theme-toggle{position:fixed;top:28px;right:28px;z-index:5;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);border:1.5px solid var(--border-dark);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;color:rgba(255,255,255,.7);padding:0}.theme-toggle:hover{background:rgba(255,255,255,.15);color:#fff}[data-theme=light] .theme-toggle{background:rgba(0,0,0,.04);border-color:var(--border-light);color:rgba(26,40,39,.6)}[data-theme=light] .theme-toggle:hover{background:rgba(0,0,0,.08);color:var(--text-body)}.theme-toggle .icon-moon{display:block}.theme-toggle .icon-sun{display:none}[data-theme=light] .theme-toggle .icon-moon{display:none}[data-theme=light] .theme-toggle .icon-sun{display:block}
body:has(#game:not([hidden]))>.theme-toggle{display:none}.rooms-header{padding-right:52px}.rooms-content{text-align:center}.room-card{text-align:center}.room-card-body{align-items:center}.primary{justify-content:center}.rooms-intro,.welcome-phrase{color:var(--page-muted)}.brand-byline>span,.landing-footer,.rooms-footer,.landing-footer button,.rooms-footer button,.profile-link{color:var(--page-muted)}.landing-footer,.rooms-footer{border-color:var(--border-dark)}.origin-trigger,.restore-hook{color:var(--page-muted)}.origin-label{color:var(--page-muted)}.inline-origin blockquote{color:var(--page-text)}.inline-origin>p{color:var(--page-accent)}
[data-theme=light] .landing-footer,[data-theme=light] .rooms-footer{border-color:var(--border-light)}[data-theme=light] .brand-byline i{background:#1A2827}[data-theme=light] .mini-wordmark,[data-theme=light] .acaderef-lockup h1{color:#1C7269}[data-theme=light] .origin-trigger,[data-theme=light] .restore-hook{border-color:#1C726940}[data-theme=light] .room-placeholder{background:radial-gradient(ellipse at 70% 15%,color-mix(in srgb,var(--room-color) 18%,transparent),transparent 70%),#F2F8F7}[data-theme=light] .room-card:disabled .room-card-body{background:linear-gradient(transparent,#E8F3F188)}[data-theme=light] .room-card:disabled strong{color:#1A2827}[data-theme=light] .room-card:disabled .room-details{color:#5B7572}[data-theme=light] .room-card{border-color:#DCE8E7}[data-theme=light] .rooms-content>.eyebrow{color:#1C7269}[data-theme=light] .brand .mini-wordmark+small{color:#5B7572}
[data-theme=light] .about-dialog{background:radial-gradient(ellipse at top left,#4CCCB820,transparent 60%),#F2F8F7;color:#1A2827;border-color:#DCE8E7}[data-theme=light] .about-dialog>p:not(.eyebrow),[data-theme=light] .about-dialog div p,[data-theme=light] .about-dialog .close{color:#5B7572}[data-theme=light] .about-dialog .eyebrow,[data-theme=light] .about-campus .about-signature{color:#1C7269}
@media(max-width:600px){.theme-toggle{top:25px;right:24px}.rooms-header{padding-right:48px}.rooms-header .profile-link{min-width:95px;padding:10px;font-size:10px}}

[data-theme=dark] dialog{background:var(--surface);color:#FFFFFF;border-color:var(--border-dark)}[data-theme=dark] dialog>p:not(.eyebrow),[data-theme=dark] .profile-form>p:not(.eyebrow):not(.privacy),[data-theme=dark] dialog .privacy,[data-theme=dark] dialog .close,[data-theme=dark] dialog label span,[data-theme=dark] #discoveries small,[data-theme=dark] #ranking small{color:#B9D8D2}[data-theme=dark] dialog .eyebrow,[data-theme=dark] #ranking li>b,[data-theme=dark] .secondary{color:#4CCCB8}[data-theme=dark] dialog input,[data-theme=dark] dialog select{background:#172220;color:#FFFFFF;border-color:#FFFFFF26}[data-theme=dark] #discoveries li,[data-theme=dark] #ranking li{border-color:var(--border-dark)}[data-theme=dark] #feedback.success{color:#4CCCB8}[data-theme=dark] #feedback,[data-theme=dark] .profile-form #profile-feedback{color:#FFAC9D}

/* La photo et le footer occupent deux zones distinctes, même en plein écran. */
#game{display:grid;grid-template-rows:6px minmax(0,1fr) auto;background:var(--hero-bg);color:var(--page-text)}#viewport{position:relative;inset:auto;min-height:0;width:100%;height:100%}.time-track{position:relative;background:var(--hero-bg);overflow:hidden;height:6px}.time-track>#time-fill{position:relative;height:100%;background:#4CCCB8;max-width:100%}.time-track>#time-fill::after{content:"";position:absolute;right:0;top:0;bottom:0;width:4px;background:#FDA100;box-shadow:0 0 5px #FDA10088}
.game-footer{position:relative;background:var(--surface);color:var(--page-text);border-top:1px solid var(--border-dark);display:flex;align-items:center;justify-content:center;gap:20px;padding:16px 22px max(16px,env(safe-area-inset-bottom));flex-wrap:wrap;z-index:1}.game-footer .brand{font-size:22px}.game-footer .mini-wordmark{font-size:25px}.game-footer .player small{color:var(--page-muted);font-size:8px}.game-footer .avatar{background:var(--hero-bg);color:var(--page-accent);border-color:var(--page-accent)}.game-footer .counter{background:none;backdrop-filter:none;border:0;padding:0;min-width:120px}.reference-counter{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap}.reference-counter>span{font-family:"Space Grotesk",sans-serif;font-size:24px}.reference-counter #count{color:var(--page-accent)}.reference-counter small{width:100%;font-size:7px;letter-spacing:1px;color:var(--page-muted)}.game-footer .progress{margin-top:7px;background:var(--border-dark)}.game-footer .timer-row{margin:0;border:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:5px}.game-footer #timer{color:var(--page-accent);font-family:"Space Grotesk",sans-serif;font-variant-numeric:tabular-nums;font-size:23px;line-height:1;min-width:130px}.game-footer #timer-caption{font-size:7px;letter-spacing:.6px;color:var(--page-muted)}.game-footer .zoom-tools{position:static;transform:none;display:flex;flex-direction:row;gap:4px}.game-footer .game-actions button,.game-footer .zoom-tools button{background:var(--hero-bg);border:1px solid var(--border-dark);color:var(--page-text);backdrop-filter:none;padding:9px 11px}.game-footer .zoom-tools button{width:34px;height:34px;padding:2px;font-size:21px}.game-footer .zoom-tools output{background:none;color:var(--page-muted);width:42px;padding:0;font-size:10px}.game-footer .instructions{display:none}.game-footer .game-actions{gap:5px}.game-footer .round{border-radius:3px}.game-footer .slash{color:var(--page-muted)}
[data-theme=light] .game-footer{border-color:var(--border-light)}[data-theme=light] .game-footer .game-actions button,[data-theme=light] .game-footer .zoom-tools button{border-color:var(--border-light)}[data-theme=light] .game-footer .progress{background:var(--border-light)}
@media(max-width:1100px){.game-footer{gap:14px}.game-footer .game-actions button span{display:none}.game-footer .player{display:none}}
@media(max-width:600px){.game-footer{gap:12px;padding:12px 12px max(12px,env(safe-area-inset-bottom))}.game-footer .brand{display:none}.game-footer .counter{min-width:110px}.game-footer .timer-row{min-width:140px}.game-footer .game-actions{justify-content:center}.game-footer .zoom-tools{margin:0}.game-footer .game-actions button{padding:8px}.game-footer .zoom-tools button{width:32px;height:32px}}

.game-footer #timer-caption{max-width:none;text-align:center;white-space:nowrap}.game-footer .reference-counter small{max-width:none}@media(max-width:600px){.game-footer .brand{display:block}.game-footer .brand .mini-wordmark{font-size:20px}.game-footer .brand small{font-size:6px}}

.game-footer .counter .chances{display:block;font-size:9px;letter-spacing:0;color:var(--page-muted);margin-top:5px}#answer-form .primary>span{font-size:14px;line-height:1.4}

.time-track>#time-fill{width:100%;margin-left:auto}.time-track>#time-fill::after{display:none}#time-marker{position:absolute;top:0;bottom:0;left:0;width:4px;background:#FDA100;box-shadow:0 0 5px #FDA10088}
.discovery-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.difficulty-badge{font-size:9px;font-weight:600;line-height:1.4;padding:4px 8px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}.difficulty-badge[data-level=easy]{color:#77DDAD;background:#77DDAD12}.difficulty-badge[data-level=medium]{color:#FFCA65;background:#FFCA6512}.difficulty-badge[data-level=hard]{color:#FF9D9D;background:#FF9D9D12}[data-theme=light] .difficulty-badge[data-level=easy]{color:#117D64;background:#117D6410}[data-theme=light] .difficulty-badge[data-level=medium]{color:#956000;background:#FDA10015}[data-theme=light] .difficulty-badge[data-level=hard]{color:#B63444;background:#B6344410}#discoveries li>div{min-width:0;flex:1}

.footer-links{display:flex;align-items:center;justify-content:center;gap:20px}.footer-links button{white-space:nowrap}.game-footer .game-actions [data-question]{font-size:10px;white-space:nowrap}textarea{font:inherit;width:100%;padding:13px 14px;border:1px solid #B9D8D2;background:#FFFFFF;color:var(--ink);border-radius:2px;font-size:13px;resize:vertical}textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[data-theme=dark] dialog textarea{background:#172220;color:#FFFFFF;border-color:#FFFFFF26}#question-dialog{width:min(500px,calc(100% - 32px))}@media(max-width:600px){.footer-links{flex-direction:column;gap:10px}}@media(max-width:360px){.landing-footer>.footer-links,.rooms-footer>.footer-links{grid-column:1 / -1;grid-row:2;flex-direction:row}}

.game-footer>.theme-toggle{position:static;top:auto;right:auto;z-index:auto;width:36px;height:36px;flex-shrink:0}

.ranking-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.ranking-hints{font-size:8px;padding:4px 7px;border:1px solid #4CCCB844;border-radius:999px;color:#1C7269;white-space:nowrap}[data-theme=dark] .ranking-hints{color:#4CCCB8}.game-footer #penalty-summary{font-size:8px;color:#FDA100;line-height:1.5;text-align:center}[data-theme=light] .game-footer #penalty-summary{color:#956000}

.room-exit-dialog .replay-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-decoration:none;font-size:14px;padding:15px 18px;border-radius:3px}.room-exit-dialog .replay-choice small{font-size:10px;font-weight:400;line-height:1.5}.room-exit-dialog .abandon-choice{border:1px solid currentColor;margin-top:12px}.room-exit-dialog .replay-choice:hover{filter:brightness(1.1)}

/* Signature AcadéRef commune aux salles et au jeu. */
:is(#rooms-home,#legal-home),#home{flex-shrink:0}
:is(#rooms-home,#legal-home) .mini-wordmark,#home .mini-wordmark{font-family:'Josefin Sans',sans-serif;font-weight:600;letter-spacing:-2px;line-height:1;color:#4CCCB8}
:is(#rooms-home,#legal-home) .mini-wordmark{font-size:48px}
#home .mini-wordmark{font-size:32px;letter-spacing:-1.5px}
:is(#rooms-home,#legal-home) .mini-wordmark b,#home .mini-wordmark b{color:#FDA100;font-weight:600}
:is(#rooms-home,#legal-home) small,#home small{font-family:'DM Sans',sans-serif;font-weight:600;line-height:1.4;letter-spacing:3px;color:var(--page-muted);margin-top:9px;font-size:10px}
#home small{font-size:8px;letter-spacing:2px;margin-top:7px}
[data-theme=light] :is(#rooms-home,#legal-home) .mini-wordmark,[data-theme=light] #home .mini-wordmark{color:#1C7269}
@media(max-width:600px){:is(#rooms-home,#legal-home) .mini-wordmark{font-size:36px;letter-spacing:-1.6px}:is(#rooms-home,#legal-home) small{font-size:8px;letter-spacing:2px}#home .mini-wordmark{font-size:28px}#home small{font-size:7px;letter-spacing:1.7px}}

.game-footer .player-logout{display:flex;background:none;border:1px solid var(--border-dark);border-radius:3px;padding:8px 10px;color:var(--page-text);text-align:left;max-width:260px}
.player-label{display:grid;align-items:center;min-width:0}
.player-label>strong,.player-logout-label{grid-area:1/1;overflow-wrap:anywhere;transition:opacity .15s}
.player-logout-label{font-size:11px;opacity:0;visibility:hidden;color:var(--page-accent);line-height:1.4}
.player-logout:hover #player-name,.player-logout:focus-visible #player-name{opacity:0;visibility:hidden}
.player-logout:hover .player-logout-label,.player-logout:focus-visible .player-logout-label{opacity:1;visibility:visible}
@media(hover:none){.player-label{gap:3px}.player-logout-label{grid-area:2/1;opacity:1;visibility:visible;font-size:9px}.player-logout:hover #player-name{opacity:1;visibility:visible}}
[data-theme=light] .game-footer .player-logout{border-color:var(--border-light)}

#game:fullscreen{display:block;overflow:hidden}
#game:fullscreen #viewport{position:absolute;inset:0}
#game:fullscreen .time-track{position:absolute;top:0;left:0;right:0;height:6px;z-index:3;transform:translateY(-100%);transition:transform .35s ease}
#game:fullscreen .game-footer{position:absolute;left:0;right:0;bottom:0;z-index:3;transform:translateY(100%);pointer-events:none;visibility:hidden;transition:transform .35s ease,visibility 0s .35s}
#game:fullscreen.fullscreen-chrome-visible .time-track,#game:fullscreen.fullscreen-chrome-visible .game-footer{transform:translateY(0)}
#game:fullscreen.fullscreen-chrome-visible .game-footer{pointer-events:auto;visibility:visible;transition:transform .35s ease,visibility 0s}
@media(prefers-reduced-motion:reduce){#game:fullscreen .time-track,#game:fullscreen .game-footer{transition:none}}

.game-footer{flex-direction:column;gap:12px}
.game-footer-main{display:flex;align-items:center;gap:22px;width:100%;max-width:1400px}
.game-footer-main .theme-toggle{position:static;flex-shrink:0;margin-left:auto;width:36px;height:36px}
.game-footer .game-pseudo{display:block;background:none;border:0;padding:6px 0;font-size:11px;color:var(--page-muted);max-width:160px;overflow-wrap:anywhere;text-align:left}
.game-footer .game-pseudo strong{font-size:11px;font-weight:500}
.game-footer .game-pseudo:hover{color:var(--page-accent);text-decoration:underline;text-underline-offset:4px}
.game-footer-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px}
.game-footer-links{display:flex;justify-content:center;gap:24px;width:100%}
.game-footer-links button{background:none;border:0;padding:4px 0;color:var(--page-muted);font-size:10px}
.game-footer-links button:hover{color:var(--page-accent);text-decoration:underline;text-underline-offset:4px}
#game-profile-dialog h3{font-size:14px;margin-top:24px}
#personal-scores{padding:0;list-style:none;display:grid;gap:10px}
#personal-scores li{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--border-dark);padding-top:12px}
#personal-scores strong{font-family:'Space Grotesk',sans-serif;color:var(--page-accent);font-variant-numeric:tabular-nums}
#personal-scores small{font-size:10px;color:var(--page-muted)}
@media(max-width:700px){.game-footer-main{display:grid;grid-template-columns:1fr 1fr 36px;gap:12px}.game-footer-main .brand{grid-column:1;grid-row:1}.game-footer-main .game-pseudo{grid-column:2;grid-row:1}.game-footer-main .theme-toggle{grid-column:3;grid-row:1}.game-footer-main .counter{grid-column:1;grid-row:2}.game-footer-main .timer-row{grid-column:2/4;grid-row:2}.game-footer{gap:10px;padding-top:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}}

.game-footer .counter .chances{display:flex;justify-content:center;align-items:center;gap:5px;margin-top:7px}
.pixel-heart{display:block;width:24px;height:22px;shape-rendering:crispEdges}
.heart-outline{fill:#8B2439}.heart-fill{fill:#F04B62}.heart-shine{fill:#FFD5DC}
.pixel-heart.empty .heart-outline{fill:var(--page-muted);opacity:.6}
.pixel-heart.empty .heart-fill{fill:var(--surface)}
.pixel-heart.empty .heart-shine{display:none}

#game>.time-track{grid-row:1;grid-column:1}#game>#viewport{grid-row:2;grid-column:1}#game>.game-footer{grid-row:3;grid-column:1}
#game>.photo-tools{grid-row:2;grid-column:1;position:relative;top:auto;right:auto;left:auto;align-self:end;justify-self:center;transform:none;display:flex;flex-direction:row;gap:7px;margin:0 12px 12px;z-index:2;padding:7px;border-radius:7px;background:color-mix(in srgb,var(--surface) 65%,transparent);border:1px solid color-mix(in srgb,var(--page-muted) 20%,transparent);backdrop-filter:blur(4px)}
.photo-tools button{display:grid;place-items:center;width:40px;height:40px;padding:0;font-size:25px;border-radius:4px;color:var(--page-text);background:color-mix(in srgb,var(--hero-bg) 55%,transparent);border:1px solid color-mix(in srgb,var(--page-muted) 22%,transparent);backdrop-filter:none}
.photo-tools button:hover{background:color-mix(in srgb,var(--page-accent) 35%,transparent)}
.photo-tools output{background:none;color:var(--page-text);align-self:center;font-size:12px;min-width:49px;width:auto;padding:0 3px}
#game:fullscreen>.photo-tools{position:absolute;left:50%;bottom:calc(var(--footer-height,130px) + 12px);margin:0;transform:translate(-50%,calc(var(--footer-height,130px) + 80px));visibility:hidden;pointer-events:none;transition:transform .35s ease,visibility 0s .35s}
#game:fullscreen.fullscreen-chrome-visible>.photo-tools{transform:translate(-50%,0);visibility:visible;pointer-events:auto;transition:transform .35s ease,visibility 0s}
@media(prefers-reduced-motion:reduce){#game:fullscreen>.photo-tools{transition:none}}

:is(#rooms-home,#legal-home) .brand-byline,#home .brand-byline{display:flex;align-items:center;gap:8px;margin:7px 1px 0;letter-spacing:normal;color:var(--page-muted)}
:is(#rooms-home,#legal-home) .brand-byline i,#home .brand-byline i{flex:1;min-width:12px;height:1px;background:#FFFFFF}
:is(#rooms-home,#legal-home) .brand-byline>span,#home .brand-byline>span{font-family:'Josefin Sans',sans-serif;white-space:nowrap;font-size:7px;font-weight:500;letter-spacing:.5px;color:var(--page-muted)}
:is(#rooms-home,#legal-home) .brand-byline b,#home .brand-byline b{font-family:'Josefin Sans',sans-serif;font-size:9px;font-weight:600;letter-spacing:.7px;margin-left:3px;color:#5EBDB0}
:is(#rooms-home,#legal-home) .brand-byline b>span,#home .brand-byline b>span{color:#F6A017}
#home .brand-byline{gap:5px;margin-top:6px}#home .brand-byline>span{font-size:6px}#home .brand-byline b{font-size:8px;letter-spacing:.3px;margin-left:2px}
[data-theme=light] :is(#rooms-home,#legal-home) .brand-byline i,[data-theme=light] #home .brand-byline i{background:#1A2827}

#home,:is(#rooms-home,#legal-home){width:max-content;max-width:100%;justify-self:start}

@media(min-width:1024px){
 .game-footer{flex-direction:row;flex-wrap:nowrap;justify-content:space-between;gap:18px;padding:14px 22px}
 .game-footer-main{display:contents}
 .game-footer-main .brand{order:0}
 .game-footer-main .game-pseudo{order:1;flex-shrink:1}
 .game-footer-main .counter{order:2;flex-shrink:0}
 .game-footer-main .timer-row{order:3;flex-shrink:0}
 .game-footer-controls{order:4;flex-wrap:nowrap;flex-shrink:0}
 .game-footer-links{order:5;width:auto;gap:18px;flex-shrink:0}
 .game-footer-main .theme-toggle{order:6;margin-left:0;flex-shrink:0}
 .game-footer-links button{white-space:nowrap}
}

@media(min-width:1024px) and (max-width:1280px){.game-footer{gap:10px;padding:12px 16px}.game-footer .game-actions button span{display:none}.game-footer-links{gap:12px}.game-footer .game-pseudo{max-width:100px}.game-footer .counter{min-width:110px}.game-footer #timer{min-width:120px}}

#game-profile-dialog{width:min(650px,calc(100% - 32px))}
.personal-room h4{font-family:'Josefin Sans',sans-serif;font-size:21px;color:var(--page-accent);margin:24px 0 12px}
.personal-room ol{list-style:none;margin:0;padding:0}
#personal-scores li{display:block;padding:14px 0;border-top:1px solid var(--border-dark)}
.personal-score-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.personal-score-row small{display:block;margin-top:6px;line-height:1.5}
.share-score{background:var(--page-accent);color:var(--hero-bg);padding:10px 13px;font-size:10px;font-weight:700;border-radius:3px;flex-shrink:0}
.score-share-panel{padding-top:16px}.score-share-panel textarea{font-size:12px;line-height:1.6;resize:none}
.share-networks{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.share-networks a,.share-networks button{font:inherit;font-size:11px;text-decoration:none;color:var(--page-text);background:none;border:1px solid var(--page-muted);padding:8px 11px;border-radius:3px}
.share-networks a:hover,.share-networks button:hover{border-color:var(--page-accent);color:var(--page-accent)}
@media(max-width:450px){.personal-score-row{align-items:flex-start;flex-direction:column;gap:10px}}

.game-footer .game-pseudo,.game-footer-links button{background:var(--hero-bg);border:1px solid var(--border-dark);border-radius:3px;padding:9px 11px;color:var(--page-text);text-decoration:none;font-size:11px}
.game-footer .game-pseudo:hover,.game-footer-links button:hover{border-color:var(--page-accent);color:var(--page-accent);text-decoration:none}
.game-footer-links{gap:7px}
[data-theme=light] .game-footer .game-pseudo,[data-theme=light] .game-footer-links button{border-color:var(--border-light)}
@media(min-width:1024px) and (max-width:1280px){.game-footer{gap:8px}.game-footer-links{gap:5px}.game-footer .game-pseudo,.game-footer-links button{padding:8px;font-size:10px}}

.geek-avatar{width:32px;height:32px;border-radius:50%;object-fit:contain;background:#DDEEEA;border:1px solid #4CCCB877;padding:3px;flex-shrink:0}
.game-footer .game-pseudo,#rooms-profile{display:flex;align-items:center;gap:8px}
#rooms-profile .logout-label{margin-left:40px}
.profile-heading{display:flex;align-items:center;gap:14px}.profile-heading h2{margin:15px 0}.profile-heading .geek-avatar{width:60px;height:60px;padding:5px}
.avatar-credits{font-size:9px!important;line-height:1.5}.avatar-credits a{color:var(--page-accent)}
@media(min-width:1024px) and (max-width:1280px){.game-footer .game-pseudo{max-width:145px}.game-footer .geek-avatar{width:26px;height:26px}}

.avatar-sheet{background:#080F0E;color:#F2FFFE;padding:24px;font-family:'DM Sans',sans-serif}.avatar-sheet h1{font-size:35px;letter-spacing:-1px;margin:0 0 8px;color:#4CCCB8}.avatar-sheet>p{font-size:12px;color:#B9D8D2}#avatar-gallery{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:12px;margin:24px 0}#avatar-gallery figure{margin:0;padding:10px 4px;border:1px solid #4CCCB833;border-radius:8px;text-align:center;background:#172220}#avatar-gallery img{width:70px;height:70px;object-fit:contain;border-radius:50%;background:#DDEEEA;padding:5px}#avatar-gallery figcaption{font-size:10px;line-height:1.4;margin-top:8px;min-height:28px}@media(max-width:700px){#avatar-gallery{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* Catalogue Icons8 et sélection d’un personnage lors du choix du pseudo. */
#entry-dialog{width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow-y:auto}
.avatar-picker{border:0;padding:0;margin:22px 0 18px;min-width:0}.avatar-picker legend{font-size:15px;font-weight:700;margin-bottom:12px}.avatar-picker-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.avatar-picker-tools label{margin:0;font-size:12px}.avatar-picker-tools label[for=avatar-category]{grid-column:1;grid-row:1}.avatar-picker-tools label[for=avatar-search]{grid-column:2;grid-row:1}.avatar-picker-tools input,.avatar-picker-tools select{width:100%;min-width:0;margin:0;padding:10px;font-size:13px}.avatar-picker-tools select{grid-column:1}.avatar-picker-tools input{grid-column:2}#avatar-choice{font-size:12px;color:var(--turquoise,#1C7269);margin:12px 0}
.avatar-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;max-height:240px;overflow-y:auto;padding:4px}.avatar-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border:2px solid transparent;border-radius:10px;background:var(--surface);color:inherit;cursor:pointer}.avatar-option img{width:48px;height:48px;border-radius:50%;background:#DDEEEA;padding:3px;object-fit:contain}.avatar-option span{font-size:10px;line-height:1.3}.avatar-option:hover,.avatar-option:focus-visible{border-color:#4CCCB8}.avatar-option[aria-pressed=true]{border-color:#FCA000;background:#FCA00018}.avatar-credits a{color:inherit}
#avatar-gallery{display:block}#avatar-gallery section{margin:32px 0;scroll-margin-top:16px}#avatar-gallery h2{font-size:23px;color:#4CCCB8}.avatar-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:12px}#avatar-category-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}#avatar-category-links a{color:#B9D8D2;border:1px solid #4CCCB833;border-radius:20px;padding:7px 12px;font-size:12px;text-decoration:none}#avatar-category-links a:hover{color:#FCA000;border-color:#FCA000}.avatar-sheet>p a{color:inherit}@media(max-width:520px){.avatar-options{grid-template-columns:repeat(4,minmax(0,1fr))}.avatar-picker-tools{grid-template-columns:1fr}.avatar-picker-tools label[for=avatar-search]{grid-column:1;grid-row:3}.avatar-picker-tools select{grid-row:2}.avatar-picker-tools input{grid-column:1;grid-row:4}.avatar-sheet{padding:16px}}

[data-theme=dark] #avatar-choice{color:#4CCCB8}

.icons8-credit{font-size:10px;color:inherit;opacity:.8;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}

.legal-page{min-height:100vh;background:var(--surface,#080F0E);color:var(--text,#E9F8F5)}.legal-header,.legal-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1000px;margin:auto;padding:28px 24px}.legal-page a{color:var(--accent);text-underline-offset:3px}.legal-header .brand{text-decoration:none}.legal-content{max-width:1000px;margin:auto;padding:16px 24px 50px}.legal-content h1{font-size:clamp(34px,5vw,58px);letter-spacing:-2px;line-height:1.12}.legal-content h2{font-size:27px;margin:0 0 18px}.legal-content h3{font-size:18px;margin:25px 0 10px}.legal-content p,.legal-content td,.legal-content th{font-size:14px;line-height:1.8}.legal-date{opacity:.7}.legal-nav{display:flex;flex-wrap:wrap;gap:12px;margin:25px 0 35px}.legal-nav a{padding:8px 12px;border:1px solid #4CCCB855;border-radius:6px;font-size:12px;text-decoration:none}.legal-content section{padding:32px 0;border-top:1px solid #4CCCB833;scroll-margin-top:20px}.legal-table-wrap{overflow-x:auto}.legal-content table{width:100%;border-collapse:collapse;min-width:620px}.legal-content th,.legal-content td{text-align:left;vertical-align:top;padding:12px;border:1px solid #4CCCB833}.legal-content th{color:var(--accent)}.legal-data-actions{padding:18px;border:1px solid #4CCCB855;border-radius:8px;margin-top:24px}.legal-data-actions h3{margin-top:0}.legal-page .primary{padding:14px 18px}.legal-page .secondary{padding:14px 18px;margin-top:12px}.legal-page #erase-status:empty{display:none}

.legal-header .brand>span{color:#FDA100}

#scores-dialog{width:min(740px,calc(100% - 24px))}.ranking-filters{display:flex;flex-wrap:wrap;gap:16px}.ranking-filters>div{flex:1;min-width:180px}.ranking-filters select{width:100%}.ranking-total{white-space:nowrap;text-align:right}.ranking-total small{font-size:10px;font-weight:500;display:block;margin-top:5px}.ranking-room-times{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.ranking-room-times span{font-size:11px;border:1px solid #4CCCB844;border-radius:5px;padding:5px 7px;color:var(--accent)}#ranking .ranking-empty{display:block;font-size:13px}@media(max-width:520px){#ranking li{flex-wrap:wrap}#ranking li>div{min-width:0}.ranking-total{font-size:16px}.ranking-title{flex-wrap:wrap}}

.legal-content details{margin:14px 0;border:1px solid #4CCCB833;border-radius:8px;padding:16px 18px}.legal-content summary{cursor:pointer;font-weight:600;font-size:15px;line-height:1.5}.legal-content summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.legal-content details[open] summary{margin-bottom:14px;color:var(--accent)}

.about-developers{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid #4CCCB833}.about-developers .secondary{padding:12px 16px;font-size:13px}

.legal-phone{display:inline-block;vertical-align:middle;line-height:1}.legal-phone img{height:14px;width:auto;vertical-align:baseline}.legal-phone .phone-light{display:none}[data-theme=light] .legal-phone .phone-dark{display:none}[data-theme=light] .legal-phone .phone-light{display:inline-block}

.about-campus+.about-developers{margin:26px 0 0;padding:24px 0 0;border-top:1px solid #4CCCB833;border-bottom:0}

#game-disconnect{flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center}#game-disconnect small{font-size:10px;font-weight:400;line-height:1.5;max-width:340px}

.landing-footer,.rooms-footer,.game-footer{position:relative;padding-bottom:44px}.legal-footer-link{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--page-muted);text-decoration:none;white-space:nowrap}.legal-footer-link:hover{color:var(--page-accent);text-decoration:underline}.game-footer .legal-footer-link{color:var(--page-muted)}@media(min-width:1024px){.game-footer{padding-bottom:40px}}@media(max-width:600px){.landing-footer,.rooms-footer,.game-footer{padding-bottom:max(44px,calc(32px + env(safe-area-inset-bottom)))}}

#game>.photo-tools{background:color-mix(in srgb,var(--surface) 25%,transparent);border-color:color-mix(in srgb,var(--page-muted) 12%,transparent);backdrop-filter:blur(1px)}.photo-tools button{background:color-mix(in srgb,var(--hero-bg) 15%,transparent);border-color:color-mix(in srgb,var(--page-muted) 12%,transparent);color:color-mix(in srgb,var(--page-text) 60%,transparent);transition:background .2s,color .2s}.photo-tools output{color:color-mix(in srgb,var(--page-text) 60%,transparent)}.photo-tools button:hover,.photo-tools button:focus-visible{background:color-mix(in srgb,var(--page-accent) 25%,transparent);color:var(--page-text)}

.game-footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}.game-footer .timer-row .legal-footer-link{position:static;transform:none;font-size:9px;line-height:1.3;margin-top:2px}@media(min-width:1024px){.game-footer{padding-bottom:14px}}@media(max-width:600px){.game-footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}}

.scene-effects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;overflow:visible}.scene-saber-pulse{animation:scene-saber-breathe 5.8s ease-in-out infinite;transform-origin:560px 375px}.scene-lamp-pulse{animation:scene-lamp-breathe 9s ease-in-out infinite -3s}.scene-car-light{animation:scene-car-signal 7.4s linear infinite -1s}.scene-portal-pulse{animation:scene-portal-breathe 6.2s ease-in-out infinite -2s}@keyframes scene-saber-breathe{0%,100%{opacity:.15}50%{opacity:.8}}@keyframes scene-lamp-breathe{0%,100%{opacity:.1}45%,65%{opacity:.65}}@keyframes scene-car-signal{0%,48%,60%,100%{opacity:.06}51%,56%{opacity:.75}}@keyframes scene-portal-breathe{0%,100%{opacity:.1}50%{opacity:.65}}

.returning-player{text-align:center;padding:18px 0 6px}.returning-player .geek-avatar{width:70px;height:70px;display:block;margin:0 auto 14px}.returning-player strong{font-family:"Josefin Sans",sans-serif;font-size:26px;color:var(--page-accent)}.returning-player p{font-size:15px;line-height:1.7;margin:16px 0}#change-profile{display:block;margin:20px auto 0;font-size:12px;text-align:center}

.scene-saber-pulse{animation-duration:2.8s}.scene-lamp-pulse{animation-duration:4.8s}.scene-car-light{animation-duration:3.4s}.scene-portal-pulse{animation-duration:3s}@keyframes scene-saber-breathe{0%,100%{opacity:.03}50%{opacity:1}}@keyframes scene-lamp-breathe{0%,100%{opacity:.08}50%{opacity:.95}}@keyframes scene-car-signal{0%,40%,65%,100%{opacity:.05}45%,60%{opacity:1}}@keyframes scene-portal-breathe{0%,100%{opacity:.03}50%{opacity:1}}.scene-matrix-scan{animation:scene-matrix-scan 3.2s linear infinite}@keyframes scene-matrix-scan{from{transform:translateY(0)}to{transform:translateY(160px)}}

.matrix-rain{font-family:monospace;font-size:7px;font-weight:500}.matrix-rain-column{animation:matrix-digital-rain 5s linear infinite;will-change:transform}@keyframes matrix-digital-rain{from{transform:translateY(-180px)}to{transform:translateY(0)}}

.scene-effects{mix-blend-mode:normal}

.share-card-preview{display:block;width:min(100%,300px);height:auto;margin:14px auto;border-radius:8px}.share-main-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:16px 0}.share-main-actions button,.share-main-actions a{padding:12px 16px;border:1px solid var(--page-accent);border-radius:4px;color:var(--page-text);background:var(--hero-bg);text-decoration:none;font-size:12px}.share-main-actions .share-native{background:#FDA100;color:#0A2E2A;border-color:#FDA100;font-weight:700}

.score-share-panel .privacy{color:var(--page-muted)}

#gp-end-dialog.room-result{width:min(540px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:42px 32px 24px;border-radius:18px;border:1px solid color-mix(in srgb,var(--page-accent) 28%,transparent);background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--page-accent) 13%,transparent),transparent 65%),var(--surface);text-align:center;overflow-y:auto;box-shadow:0 24px 100px #0006}
#gp-end-dialog .close{top:14px;right:14px}
#gp-end-dialog .result-eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:var(--page-accent);margin:0 0 18px}
#gp-end-dialog h2{font:600 clamp(27px,5vw,36px)/1.15 'Josefin Sans',sans-serif;margin:0 auto 14px;max-width:380px;text-wrap:balance;outline:none;letter-spacing:-.6px}
#gp-end-dialog .result-intro{font-size:13px;line-height:1.7;max-width:365px;margin:0 auto 24px;color:var(--page-muted)}
.result-score{padding:22px 12px 20px;border-radius:12px;border:1px solid color-mix(in srgb,var(--page-accent) 20%,transparent);background:color-mix(in srgb,var(--hero-bg) 70%,transparent);display:grid;gap:10px}
.result-score>span{font-size:9px;letter-spacing:1.8px;color:var(--page-muted)}
.result-score>strong{font:600 clamp(38px,8vw,54px)/1 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-2px;color:#FDA100;white-space:nowrap}
.result-score>small{font-size:10px;color:var(--page-muted)}.result-score>small:empty{display:none}
.result-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:22px 0 26px;gap:10px}.result-stats>div{display:grid;gap:7px}.result-stats>div+div{border-left:1px solid color-mix(in srgb,var(--page-muted) 20%,transparent)}.result-stats strong{font:600 20px 'Space Grotesk',sans-serif;color:var(--page-accent)}.result-stats span{font-size:10px;color:var(--page-muted)}
.result-share{width:100%;padding:15px 16px;border:0;border-radius:7px;background:#FDA100;color:#08231f;font:700 13px 'DM Sans',sans-serif;cursor:pointer}.result-share:hover{background:#ffb329}.result-share[hidden]{display:none}
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.result-actions a,.result-actions button{display:flex;align-items:center;justify-content:center;min-height:47px;border:1px solid color-mix(in srgb,var(--page-accent) 35%,transparent);border-radius:7px;padding:11px 10px;background:transparent;color:var(--page-text);font:500 11px/1.4 'DM Sans',sans-serif;text-decoration:none;cursor:pointer}.result-actions a:visited{color:var(--page-text)}.result-actions a:hover,.result-actions button:hover{background:color-mix(in srgb,var(--page-accent) 10%,transparent);border-color:var(--page-accent)}
.result-dismiss{display:block;background:transparent;border:0;color:var(--page-muted);font:400 11px 'DM Sans',sans-serif;margin:20px auto 0;padding:5px 12px;cursor:pointer}.result-dismiss:hover{color:var(--page-accent)}
#gp-end-dialog :is(button,a):focus-visible{outline:2px solid var(--page-accent);outline-offset:4px}
#gp-end-dialog[data-outcome=lost] .result-score>strong{color:var(--page-muted)}
@media(max-width:420px){#gp-end-dialog.room-result{padding:36px 20px 20px}.result-actions{grid-template-columns:1fr}.result-stats{margin:20px 0}.result-score{padding:20px 8px}.result-stats strong{font-size:18px}}
.discovery-celebration{border:0;background:transparent;color:var(--page-text);text-align:center;overflow:visible;padding:32px;max-width:calc(100% - 24px);outline:none;box-shadow:none}
.discovery-celebration::backdrop{background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(7px)}
.discovery-celebration strong{display:block;font:600 clamp(25px,5vw,36px)/1.2 'Josefin Sans',sans-serif;margin-top:20px}
.discovery-celebration p{color:var(--page-muted);font-size:18px;margin:12px 0 0}
.answer-prompt{width:min(560px,calc(100% - 32px));padding:48px 28px 28px}
.answer-prompt label{font:500 clamp(22px,4vw,30px)/1.3 'Space Grotesk',sans-serif;letter-spacing:-.6px;margin:0 0 22px;color:var(--page-text)}
.answer-prompt input{min-height:72px;padding:18px 20px;font-size:clamp(20px,4vw,26px)}
.answer-prompt .primary{justify-content:center;font-size:17px;min-height:54px;margin-top:12px}
.answer-prompt [role=status]{font-size:13px;line-height:1.5;margin:12px 0 0}
.answer-prompt [role=status]:empty{display:none}
.discovery-check{display:block;width:clamp(130px,22vw,200px);height:auto;margin:auto;overflow:visible;animation:discovery-pop .8s cubic-bezier(.2,.8,.3,1) both}
.discovery-check circle{fill:#20c77818;stroke:#29d781;stroke-width:5;stroke-dasharray:334;stroke-dashoffset:334;animation:discovery-circle .5s ease-out forwards}
.discovery-check path{fill:none;stroke:#29d781;stroke-width:9;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:85;stroke-dashoffset:85;animation:discovery-tick .4s .35s ease-out forwards}
@keyframes discovery-pop{0%{transform:scale(.5);opacity:0}55%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@keyframes discovery-circle{to{stroke-dashoffset:0}}@keyframes discovery-tick{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.discovery-check,.discovery-check circle,.discovery-check path{animation:none;stroke-dashoffset:0}}

.loss-heart{display:block;width:clamp(130px,22vw,200px);height:auto;margin:auto;shape-rendering:crispEdges;overflow:visible;animation:heart-damage .4s ease-in-out both,heart-vanish .45s 1.25s ease-in forwards}
.loss-heart-fill{animation:heart-drain .85s .25s ease-in forwards}
.chance-loss strong{color:#F04B62}
@keyframes heart-damage{0%,100%{transform:translateX(0) scale(1)}20%,60%{transform:translateX(-9px) scale(1.07)}40%,80%{transform:translateX(9px) scale(1.07)}}
@keyframes heart-drain{0%{clip-path:inset(0)}100%{clip-path:inset(100% 0 0)}}
@keyframes heart-vanish{to{transform:translateY(30px) scale(.65);opacity:0}}
@media(prefers-reduced-motion:reduce){.loss-heart,.loss-heart-fill{animation:none}.loss-heart-fill{display:none}}

/* Photo-calibrated decorative light; never intercept object selection. */
.vulcan-effects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.vulcan-effects .ve-led{opacity:.3;animation:ve-led-breathe 21s cubic-bezier(.45,0,.55,1) infinite}
.vulcan-effects .ve-warm{opacity:.3;animation:ve-warm-drift 21s cubic-bezier(.45,0,.55,1) infinite}
.vulcan-effects .ve-lamp{opacity:.3;animation:ve-lamp-drift 21s cubic-bezier(.45,0,.55,1) infinite}
.vulcan-effects .ve-scan{animation:ve-scan 10.5s linear infinite}
.vulcan-effects .ve-glitch{opacity:0;animation:ve-glitch 13s linear infinite}
@keyframes ve-led-breathe{0%,10%,100%{opacity:.3}3.5%{opacity:1}}
@keyframes ve-warm-drift{0%,10%,100%{opacity:.3;transform:translate(0,0)}3.5%{opacity:1;transform:translate(1px,2px)}}
@keyframes ve-lamp-drift{0%,10%,100%{opacity:.3;transform:translate(0,0)}3.5%{opacity:1;transform:translate(2px,1px)}}
@keyframes ve-scan{from{transform:translateY(0)}to{transform:translateY(240px)}}
@keyframes ve-glitch{0%,90%,94%,100%{opacity:0;transform:translateX(0)}91%{opacity:.16;transform:translateX(1px)}92%{opacity:.04;transform:translateX(-1px)}93%{opacity:.1;transform:translateX(0)}}
#game[hidden] .vulcan-effects *, .vulcan-effects[data-paused="true"] *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.vulcan-effects *{animation:none!important}.vulcan-effects .ve-scan,.vulcan-effects .ve-glitch{display:none}}
