@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f6f1e7;--paper-2:#efe7d8;--card:#fffdf8;--ink:#1d2433;--ink-2:#4a5263;--muted:#7a7f8c;--line:#e2d8c6;--brick:#b5452b;--brick-dark:#8f3420;--gold:#e9a92a;--green:#2f8a4c;--danger:#c0392b;--night:#121826;--radius:14px;--shadow:0 1px 0 #1d24330a, 0 6px 18px -10px #1d243340;--display:"Fraunces Variable", Georgia, serif;--body:"DM Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:16px/1.5 var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}img{max-width:100%;display:block}a{color:var(--brick)}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;margin:0;line-height:1.15}h1{font-size:clamp(1.6rem,6vw,2.2rem);font-weight:650}h1 em{color:var(--brick);font-style:italic;font-weight:500}p{margin:0}button{font:inherit;color:inherit}input,textarea{font:inherit;border:1.5px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:.7rem .8rem;font-size:16px}input:focus,textarea:focus{border-color:var(--brick);outline:none;box-shadow:0 0 0 3px #b5452b26}input[readonly],textarea[readonly]{background:var(--paper-2)}textarea{resize:vertical;min-height:3rem}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--brick);margin-bottom:.3rem;font-size:.72rem;font-weight:700}.muted{color:var(--muted)}.small{font-size:.85rem}.hint{color:var(--muted);font-size:.85rem}.loading{color:var(--muted);text-align:center;padding:3rem 1rem}.error-note{color:var(--danger);background:#fdecea;border-radius:10px;margin-top:.5rem;padding:.6rem .8rem;font-size:.9rem}.notice{background:#fff4dc;border:1px solid #f3dca7;border-radius:10px;padding:.7rem .9rem;font-size:.95rem}.notice.small{margin-bottom:.7rem;padding:.5rem .7rem;font-size:.88rem}.center{text-align:center;margin:0 auto;display:block}.stack{flex-direction:column;gap:1rem;display:flex}.btn{border:1.5px solid var(--ink);min-height:46px;color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.1rem;font-weight:600;text-decoration:none;transition:transform 80ms,background .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--brick);border-color:var(--brick);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brick-dark)}.btn-block{width:100%}.btn.small{min-height:36px;padding:.35rem .85rem;font-size:.88rem}.btn.big{flex:1;min-height:64px;font-size:1.1rem}.btn.danger{border-color:var(--danger);color:var(--danger)}.link-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.4rem;text-decoration:underline}.segmented{background:var(--paper-2);border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:1rem;padding:4px;display:grid}.segmented.three{grid-template-columns:repeat(3,1fr)}.segmented button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:999px;padding:.6rem .4rem;font-size:.9rem;font-weight:600}.segmented button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.field{flex-direction:column;gap:.3rem;margin-bottom:.9rem;display:flex}.field>span{font-size:.95rem;font-weight:600}.field>small{color:var(--muted);margin-top:-.2rem;font-size:.82rem}.field.inline{flex-direction:row;justify-content:space-between;align-items:center}.field.inline input{width:auto}.toggle{cursor:pointer;align-items:center;gap:.6rem;font-weight:500;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--brick)}.shell{min-height:100dvh;padding-bottom:calc(76px + var(--safe-bottom))}.topbar{z-index:20;padding:calc(.6rem + env(safe-area-inset-top,0px)) 1rem .6rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f6f1e7eb;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.topbar-title{font-family:var(--display);font-size:1.1rem;font-weight:700}.topbar-title:before{content:"◉ ";color:var(--brick)}.topbar-team{background:var(--team,var(--ink));color:var(--team-ink,#fff);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:55vw;padding:.25rem .75rem;font-size:.85rem;font-weight:600;text-decoration:none;overflow:hidden}.page{max-width:680px;margin:0 auto;padding:1rem 1rem 2rem}.page-head h1{margin-bottom:.3rem}.tabbar{z-index:30;background:var(--card);border-top:1px solid var(--line);padding:.35rem .25rem calc(.35rem + var(--safe-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:.1rem;padding:.3rem 0;font-size:.72rem;font-weight:600;text-decoration:none;display:flex}.tab-icon{font-size:1.35rem;line-height:1.2;position:relative}.tab.active{color:var(--brick)}.tab-badge{background:var(--gold);border-radius:50%;width:8px;height:8px;position:absolute;top:0;right:-6px}.back{color:var(--ink-2);font-size:.92rem;font-weight:600;text-decoration:none;display:inline-block}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem}.card-title{font-family:var(--display);margin-bottom:.7rem;font-size:1.15rem;font-weight:650}.card-title-row{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.7rem;display:flex}.card-title-row .card-title{margin-bottom:0}details.card summary{cursor:pointer;margin-bottom:0;list-style:none}details.card summary:after{content:" +";color:var(--brick)}details[open].card summary{margin-bottom:.7rem}details[open].card summary:after{content:" −"}details.card ol,details.card ul{margin:.6rem 0 0;padding-left:1.2rem}details.card li{margin-bottom:.35rem}.safety summary:before{content:"⚠ ";color:var(--gold)}.grid-2{gap:1rem;display:grid}@media (width>=560px){.grid-2{grid-template-columns:1fr 1fr}}.team-badge{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:100%;padding:.3rem .8rem;font-size:.92rem;font-weight:700;display:inline-block;overflow:hidden}.team-badge.small{padding:.15rem .6rem;font-size:.8rem}.status{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.12rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.status-vide{background:var(--paper-2);color:var(--ink-2)}.status-en_cours{color:#8a5a00;background:#fff1d0}.status-complet{color:var(--green);background:#dcf1e2}.welcome{max-width:460px;min-height:100dvh;padding:2rem 1rem calc(2rem + var(--safe-bottom));flex-direction:column;justify-content:center;gap:1.5rem;margin:0 auto;display:flex}.welcome-hero h1{margin-bottom:.8rem;font-size:clamp(2.3rem,11vw,3.2rem);font-weight:700}.lede{color:var(--ink-2);font-size:1.02rem}.welcome-card h1{margin-bottom:1rem;font-size:1.6rem}.code-input{letter-spacing:.25em;text-transform:uppercase;text-align:center;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.3rem}.welcome-foot{text-align:center;font-family:var(--display);color:var(--brick);font-style:italic}.team-hero{background:var(--team);color:var(--team-ink);border-radius:calc(var(--radius) + 4px);padding:1.3rem 1.2rem;position:relative;overflow:hidden}.team-hero:after{content:"";opacity:.12;border:22px solid;border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-40px}.team-hero .eyebrow{color:inherit;opacity:.8}.team-hero h1{word-break:break-word;margin-bottom:1rem;font-size:clamp(1.9rem,8vw,2.6rem)}.team-code{justify-content:space-between;align-items:end;gap:1rem;display:flex}.team-code small{opacity:.8;font-size:.78rem;display:block}.team-code strong{letter-spacing:.18em;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.7rem}.btn-on-team{color:inherit;border-color:currentColor}.progress-dots{gap:.4rem;margin-bottom:.5rem;display:flex}.progress-dots span{aspect-ratio:1;border:2px dashed var(--line);max-width:46px;color:var(--muted);border-radius:50%;flex:1;place-items:center;font-size:.9rem;font-weight:700;display:grid}.progress-dots span.started{border:2px solid var(--gold);color:#8a5a00}.progress-dots span.done{background:var(--brick);border-color:var(--brick);color:#fff}.card .btn-block{margin-top:.8rem}.members{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.members li{background:var(--paper-2);border-radius:999px;padding:.3rem .75rem;font-weight:500}.phase-tag{background:var(--paper-2);border-radius:999px;margin-bottom:.7rem;padding:.2rem .7rem;font-weight:700;display:inline-block}.phase-presentation{color:#8a5a00;background:#fff1d0}.phase-terminee{background:var(--ink);color:#fff}.return-time{flex-direction:column;display:flex}.return-time span{color:var(--muted);font-size:.82rem}.return-time strong{font-family:var(--display);font-size:2rem;line-height:1.1}.return-time small{color:var(--ink-2)}.return-time.urgent strong,.return-time.urgent small{color:var(--danger)}.challenge-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.challenge-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:inherit;box-shadow:var(--shadow);align-items:center;gap:.9rem;padding:.8rem;text-decoration:none;display:flex}.challenge-card:active{transform:scale(.99)}.challenge-num{background:var(--ink);width:44px;height:44px;color:var(--paper);font-family:var(--display);border-radius:12px;flex:none;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.challenge-card.status-complet .challenge-num{background:var(--brick)}.challenge-num.big{background:var(--brick);border-radius:16px;width:64px;height:64px;font-size:2rem}.challenge-body{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.challenge-body strong{font-family:var(--display);font-size:1.08rem;font-weight:600;line-height:1.2}.challenge-meta{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.challenge-thumb{object-fit:cover;border-radius:10px;flex:none;width:58px;height:58px}.challenge-thumb.placeholder{border:2px dashed var(--line);color:var(--muted);place-items:center;font-size:1.4rem;display:grid}.chevron{color:var(--muted);font-size:1.6rem}.challenge-head{align-items:center;gap:1rem;display:flex}.challenge-head h1{margin-bottom:.35rem}.brief p+p{margin-top:.5rem}.mission{border-left:3px solid var(--gold);color:var(--ink-2);padding-left:.8rem}.brief .mission{margin-top:.8rem}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;margin:0 0 .8rem;padding:0;list-style:none;display:grid}.photo-grid li{aspect-ratio:1;background:var(--paper-2);border-radius:10px;position:relative;overflow:hidden}.photo-grid li.cover{outline:3px solid var(--gold);outline-offset:-3px}.photo-grid img{object-fit:cover;width:100%;height:100%}.photo-flag{background:var(--gold);color:var(--ink);border-radius:6px;padding:.1rem .4rem;font-size:.65rem;font-weight:700;position:absolute;top:4px;left:4px}.photo-actions{background:linear-gradient(#0000,#000000a6);justify-content:space-around;padding:.6rem .2rem .25rem;display:flex;position:absolute;bottom:0;left:0;right:0}.photo-actions button{color:#fff;cursor:pointer;background:#fff3;border:0;border-radius:8px;width:32px;height:30px}.photo-actions button.on{background:var(--green)}.photo-buttons{grid-template-columns:1.4fr 1fr;gap:.5rem;display:grid}.upload-progress{flex-direction:column;gap:.3rem;margin-bottom:.8rem;font-size:.88rem;display:flex}.upload-progress progress{width:100%;accent-color:var(--brick)}.location-row{gap:.5rem;display:flex}.location-row .btn{border-radius:10px;flex:none}.map-link{margin-top:.5rem;font-size:.9rem;display:inline-block}.save-state{color:var(--muted);font-size:.8rem}.save-state.saved{color:var(--green)}.save-state.error{color:var(--danger)}.pager{justify-content:space-between;padding:.5rem 0;display:flex}.pager a{font-weight:600;text-decoration:none}.comments h3{margin-bottom:.7rem;font-size:1.15rem}.comments .count{font-family:var(--body);background:var(--paper-2);vertical-align:middle;border-radius:999px;padding:.1rem .5rem;font-size:.8rem}.comments ul{flex-direction:column;gap:.7rem;margin:0 0 .8rem;padding:0;list-style:none;display:flex}.comment{gap:.6rem;display:flex}.comment-dot{border-radius:50%;flex:none;width:10px;height:10px;margin-top:.45rem}.comment-body{flex:1;min-width:0}.comment-meta{flex-wrap:wrap;align-items:center;font-size:.85rem;display:flex}.comment-meta .link-btn{margin-left:auto;padding:0 .3rem;text-decoration:none}.comment-body p{white-space:pre-wrap;overflow-wrap:anywhere}.comment-form{align-items:flex-end;gap:.5rem;display:flex}.comment-form .btn{flex:none}.reactions{flex-wrap:wrap;gap:.4rem;display:flex}.reaction{border:1.5px solid var(--line);background:var(--card);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.3rem;min-width:52px;min-height:44px;padding:.3rem .7rem;display:inline-flex}.reaction:disabled{cursor:default}.reaction.mine{border-color:var(--brick);background:#fbe9e3}.reaction-emoji{font-size:1.25rem}.reaction-count{font-size:.9rem;font-weight:700}.reaction:not(:disabled):active .reaction-emoji{transform:scale(1.4)}.vote-btn{border-color:var(--gold);width:100%;min-height:54px;font-size:1.05rem}.vote-btn.voted{background:var(--gold);color:var(--ink)}.vote .hint{text-align:center;margin-top:.3rem}.vote-done{color:#8a5a00;font-weight:600}.gallery{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=560px){.gallery{grid-template-columns:1fr 1fr}}.gallery-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:inherit;box-shadow:var(--shadow);text-decoration:none;display:block;overflow:hidden}.gallery-card.voted{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}.gallery-card.live{border-color:var(--brick);box-shadow:0 0 0 2px var(--brick)}.gallery-photo{aspect-ratio:4/3;background:var(--paper-2);position:relative}.gallery-photo img{object-fit:cover;width:100%;height:100%}.gallery-photo .placeholder{color:var(--muted);place-items:center;display:grid;position:absolute;inset:0}.live-tag,.vote-tag{background:var(--brick);color:#fff;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;position:absolute;top:.5rem;left:.5rem}.live-tag.inline{position:static}.vote-tag{background:var(--gold);color:var(--ink);left:auto;right:.5rem}.gallery-body{flex-direction:column;gap:.4rem;padding:.8rem;display:flex}.gallery-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.gallery-place{color:var(--ink-2);font-size:.85rem}.gallery-what{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.gallery-stats{color:var(--ink-2);flex-wrap:wrap;gap:.7rem;font-size:.85rem;display:flex}.carousel{margin:0 -1rem;position:relative}.carousel.empty{aspect-ratio:4/3;background:var(--paper-2);color:var(--muted);border-radius:var(--radius);place-items:center;margin:0;display:grid}.carousel-track{scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.carousel-track::-webkit-scrollbar{display:none}.carousel-slide{scroll-snap-align:center;background:#111;flex:none;width:100%}.carousel-slide img{object-fit:contain;width:100%;max-height:70vh;margin:0 auto}.carousel-dots{justify-content:center;gap:6px;padding-top:.5rem;display:flex}.carousel-dots button{background:var(--line);cursor:pointer;border:0;border-radius:50%;width:8px;height:8px;padding:0}.carousel-dots button.on{background:var(--brick);border-radius:4px;width:20px}@media (width>=712px){.carousel{border-radius:var(--radius);margin:0;overflow:hidden}}.submission-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.place{color:var(--ink-2)}.answers{flex-direction:column;gap:.8rem;display:flex}.answer{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem}.answer h3{color:var(--brick);margin-bottom:.3rem;font-size:.95rem}.answer p{white-space:pre-wrap;overflow-wrap:anywhere}.presenting-banner{top:calc(49px + env(safe-area-inset-top,0px));z-index:19;background:var(--ink);color:var(--paper);align-items:center;gap:.7rem;padding:.5rem 1rem;text-decoration:none;display:flex;position:sticky}.presenting-text{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.presenting-text small{opacity:.7;font-size:.75rem}.presenting-text strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.live-dot{background:#ff5a3c;border-radius:50%;flex:none;width:10px;height:10px;animation:1.4s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.timer{flex:none;width:44px;height:44px;position:relative}.timer svg{width:100%;height:100%;transform:rotate(-90deg)}.timer-track{fill:none;stroke:#7f7f7f40;stroke-width:8px}.timer-arc{fill:none;stroke:var(--gold);stroke-width:8px;stroke-linecap:round;stroke-dasharray:276.5;transition:stroke-dashoffset .2s linear}.timer.warn .timer-arc,.timer.done .timer-arc{stroke:#ff5a3c}.timer-text{font-variant-numeric:tabular-nums;place-items:center;font-size:.72rem;font-weight:700;display:grid;position:absolute;inset:0}.timer-big{width:180px;height:180px}.timer-big .timer-text{font-family:var(--display);font-size:2.6rem}.timer-big.done .timer-text{color:#ff5a3c;font-size:2rem}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:.9rem;padding:3rem 1rem;display:flex}.empty-icon{color:var(--brick);font-size:3rem}.empty-state p{color:var(--ink-2);max-width:30rem}.podium{grid-template-columns:1fr 1fr 1fr;align-items:end;gap:.5rem;margin:0 0 1.2rem;padding:0;list-style:none;display:grid}.podium li{text-align:center;background:var(--card);border:1px solid var(--line);border-top:6px solid var(--team);border-radius:12px;flex-direction:column;justify-content:flex-end;align-items:center;gap:.2rem;padding:.8rem .4rem;display:flex}.podium .place-1{order:2;min-height:160px}.podium .place-2{order:1;min-height:130px}.podium .place-3{order:3;min-height:110px}.podium-rank{font-family:var(--display);color:var(--brick);font-size:2rem;font-weight:700}.podium .place-1 .podium-rank{color:var(--gold);font-size:2.6rem}.podium strong{overflow-wrap:anywhere;font-size:.95rem}.podium-score{color:var(--muted);font-size:.82rem}.table-wrap{overflow-x:auto}.ranking-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.ranking-table th,.ranking-table td{text-align:center;border-bottom:1px solid var(--line);padding:.5rem .4rem}.ranking-table th:first-child,.ranking-table td:first-child{text-align:left}.ranking-table td.winner{color:var(--brick);font-weight:800}.ranking-table td.winner:after{content:"★";color:var(--gold);margin-left:2px;font-size:.7em}.ranking-table .total{font-weight:800}.ranking-table .team-badge{max-width:7.5rem}@media (width<=480px){.ranking-table th,.ranking-table td{padding:.45rem .2rem;font-size:.9rem}}.admin{max-width:900px;margin:0 auto;padding:1rem 1rem 3rem}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.admin-head-links{gap:.5rem;display:flex}.admin-tabs{scrollbar-width:none;gap:.3rem;margin:0 -1rem 1rem;padding:0 1rem;display:flex;overflow-x:auto}.admin-tabs button{border:1.5px solid var(--line);background:var(--card);cursor:pointer;border-radius:999px;flex:none;padding:.45rem .95rem;font-weight:600}.admin-tabs button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.hint-list{color:var(--ink-2);margin:0;padding-left:1.1rem;font-size:.88rem}.hint-list li+li{margin-top:.3rem}.stats{text-align:center;grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.stats strong{font-family:var(--display);font-size:2rem;display:block}.stats span{color:var(--muted);font-size:.82rem}.now-showing{font-family:var(--display);margin-bottom:.9rem;font-size:1.35rem}.remote{gap:.6rem;display:flex}.timer-card{flex-direction:column;align-items:center;gap:.9rem;display:flex}.timer-controls{gap:.5rem;display:flex}.presets{gap:.4rem;display:flex}.chip{border:1.5px solid var(--line);background:var(--card);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .8rem;font-weight:600;display:inline-flex}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chip button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 .1rem}.chips{flex-wrap:wrap;gap:.4rem;margin:.6rem 0;padding:0;list-style:none;display:flex}.steps{flex-direction:column;gap:2px;margin:0 0 .6rem;padding:0;list-style:none;display:flex}.steps button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:.55rem .7rem}.steps button:hover{background:var(--paper-2)}.steps .step-defi button{font-weight:700;font-family:var(--display);margin-top:.4rem}.steps .step-soumission button{padding-left:1.6rem}.steps .step-soumission button:before{content:"↳ ";color:var(--muted)}.steps .current button{background:var(--brick);color:#fff}.steps .current button:before{color:#fff}.inline-form{gap:.5rem;display:flex}.inline-form .btn{border-radius:10px;flex:none}.code{letter-spacing:.15em;background:var(--paper-2);border-radius:6px;padding:.2rem .5rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-weight:700}.row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.team-subs{border-top:1px solid var(--line);flex-direction:column;gap:.3rem;margin:.8rem 0 0;padding:.6rem 0 0;list-style:none;display:flex}.team-subs li{align-items:center;gap:.6rem;font-size:.9rem;display:flex}.team-subs li>span:first-child{width:2rem;font-weight:700}.team-subs a{align-items:center;gap:.5rem;text-decoration:none;display:flex}.team-subs img{object-fit:cover;border-radius:6px;width:36px;height:36px}.danger-zone{border-color:#f1c3bd}.projector{--proj-paper:#f6f1e7;background:radial-gradient(1200px 700px at 85% -10%, #2a2032 0%, transparent 60%), var(--night);height:100vh;min-height:100vh;color:var(--proj-paper);cursor:default;flex-direction:column;display:flex;overflow:hidden}.projector .loading{color:#9aa0ad}.proj-header{opacity:.85;justify-content:space-between;align-items:center;padding:1.2vw 2.5vw;font-size:clamp(.9rem,1.2vw,1.3rem);display:flex}.proj-brand{font-family:var(--display)}.proj-brand em{color:var(--gold)}.proj-phase{border:1px solid #f6f1e74d;border-radius:999px;padding:.2em .8em}.proj-body{flex:1;min-height:0;padding:1vw 3vw 3vw}.proj-center{text-align:center;place-items:center;display:grid}.proj-center h1{max-width:20ch;font-size:clamp(2rem,4vw,4.5rem)}.proj-eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.14em;margin-bottom:.6vw;font-size:clamp(.8rem,1.1vw,1.3rem);font-weight:700}.proj-welcome{grid-template-columns:1.4fr 1fr;align-items:center;gap:4vw;display:grid}.proj-welcome h1{margin-bottom:2vw;font-size:clamp(2.5rem,5.4vw,6.5rem);font-weight:700}.proj-welcome h1 em{color:var(--gold)}.proj-return{margin-bottom:1.5vw;font-size:clamp(1.1rem,1.8vw,2rem)}.proj-teams{flex-direction:column;gap:.7vw;margin:0;padding:0;font-size:clamp(.9rem,1.3vw,1.5rem);list-style:none;display:flex}.proj-teams li{grid-template-columns:minmax(0,14em) 1fr auto;align-items:center;gap:1vw;display:grid}.proj-teams .team-badge{font-size:inherit}.proj-progress{background:#f6f1e71f;border-radius:999px;height:.6em;overflow:hidden}.proj-progress span{border-radius:999px;height:100%;transition:width .6s;display:block}.proj-qr{text-align:center}.proj-qr img{border-radius:1vw;width:min(26vw,52vh);margin:0 auto 1vw}.proj-qr p{letter-spacing:.02em;font-size:clamp(1rem,1.8vw,2.2rem);font-weight:700}.proj-defi{align-items:center;gap:4vw;padding-left:6vw;padding-right:8vw;display:flex}.proj-num{font-family:var(--display);color:var(--brick);font-size:clamp(8rem,22vw,26rem);font-weight:700;line-height:.8}.proj-defi h1{margin-bottom:2vw;font-size:clamp(2.5rem,5vw,6rem)}.proj-desc{opacity:.9;max-width:40ch;margin-bottom:.8vw;font-size:clamp(1.1rem,1.9vw,2.3rem)}.proj-mission{border-left:.3vw solid var(--gold);max-width:40ch;margin-top:2vw;padding-left:1.2vw;font-size:clamp(1.1rem,1.9vw,2.3rem)}.proj-submission{grid-template-columns:1.35fr 1fr;gap:2.5vw;display:grid;position:relative}.proj-photo{background:#000;border-radius:1.2vw;min-height:0;position:relative;overflow:hidden}.proj-photo img{object-fit:contain;width:100%;height:100%;animation:.8s fade}@keyframes fade{0%{opacity:0}}.proj-photo-dots{justify-content:center;gap:.5vw;display:flex;position:absolute;bottom:1vw;left:0;right:0}.proj-photo-dots i{background:#fff6;border-radius:50%;width:.7vw;height:.7vw}.proj-photo-dots i.on{background:#fff}.proj-info{flex-direction:column;gap:1vw;min-height:0;padding-bottom:12vw;display:flex;overflow:hidden}.proj-team{background:var(--team);color:var(--team-ink);border-radius:.4em;align-self:flex-start;padding:.15em .55em;font-size:clamp(2rem,3.6vw,4.5rem);display:inline-block}.proj-place{opacity:.85;font-size:clamp(1rem,1.5vw,1.8rem)}.proj-answers{flex-direction:column;gap:.3vw;margin:0;display:flex}.proj-answers dt{color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin-top:.8vw;font-size:clamp(.75rem,1vw,1.2rem);font-weight:700}.proj-answers dd{-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;font-size:clamp(1rem,1.55vw,1.9rem);line-height:1.35;display:-webkit-box;overflow:hidden}.proj-reactions{gap:1.2vw;font-size:clamp(1.1rem,1.8vw,2.2rem);display:flex}.proj-reactions .zero{opacity:.35}.proj-comments{opacity:.9;flex-direction:column;gap:.4vw;margin:0;padding:0;font-size:clamp(.9rem,1.2vw,1.5rem);list-style:none;display:flex}.proj-timer{position:absolute;bottom:3vw;right:3vw}.proj-timer .timer-big{width:11vw;min-width:120px;height:11vw;min-height:120px}.proj-timer .timer-big .timer-text{font-size:clamp(1.6rem,2.8vw,3.4rem)}.bursts{pointer-events:none;position:absolute;inset:0;overflow:hidden}.bursts span{font-size:clamp(2.5rem,5vw,6rem);animation:3s ease-out forwards rise;position:absolute;bottom:0}@keyframes rise{0%{opacity:0;transform:translateY(0)scale(.6)}15%{opacity:1;transform:translateY(-10vh)scale(1.1)}to{opacity:0;transform:translateY(-80vh)scale(1)}}.proj-ranking h1{text-align:center;margin-bottom:2vw;font-size:clamp(2rem,4vw,4.5rem)}.ranking.dark{max-width:1400px;margin:0 auto;font-size:clamp(1rem,1.5vw,1.8rem)}.ranking.dark .podium li{border-color:#ffffff1f;border-top-color:var(--team);background:#ffffff0f}.ranking.dark .podium .place-1{min-height:14vw}.ranking.dark .podium .place-2{min-height:11vw}.ranking.dark .podium .place-3{min-height:9vw}.ranking.dark .podium strong{font-size:1.2em}.ranking.dark .podium-score{color:#b6bac4}.ranking.dark .ranking-table td,.ranking.dark .ranking-table th{border-color:#ffffff1f}.ranking.dark .ranking-table td.winner{color:var(--gold)}.proj-fullscreen{color:#fff;cursor:pointer;opacity:.6;background:#0006;border:1px solid #ffffff4d;border-radius:999px;padding:.5rem 1rem;position:fixed;bottom:1rem;right:1rem}.proj-fullscreen:hover{opacity:1}@media (width<=800px){.projector{height:auto;min-height:100vh;overflow:auto}.proj-welcome,.proj-submission{grid-template-columns:1fr}.proj-defi{flex-direction:column;align-items:flex-start;padding:1rem}.proj-photo{aspect-ratio:4/3}.proj-info{padding-bottom:1rem}.proj-timer{justify-content:center;display:flex;position:static}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.toast{left:50%;bottom:calc(88px + var(--safe-bottom));z-index:50;background:var(--ink);max-width:calc(100vw - 2rem);color:var(--paper);border-radius:999px;padding:.75rem 1.2rem;font-weight:600;animation:.25s ease-out toast-in;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px -10px #00000080}.toast:before{content:"";background:var(--green);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:.6rem;display:inline-block}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}}.submit-block{flex-direction:column;gap:.6rem;display:flex}.big-submit{min-height:56px;font-size:1.08rem}.form-feedback{border-radius:var(--radius);color:#7d2318;background:#fdecea;border:1.5px solid #f1b5ad;padding:.9rem 1rem}.form-feedback ul{margin:.5rem 0 .4rem;padding-left:1.1rem}.form-feedback li+li{margin-top:.25rem}.form-feedback li button{color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.form-feedback .link-btn{color:#7d2318;padding-left:0}input.missing,textarea.missing{border-color:var(--danger);background:#fff7f6}.card.missing{border-color:var(--danger);box-shadow:0 0 0 2px #c0392b40}.avatar{object-fit:cover;background:var(--paper-2);box-shadow:0 0 0 2px var(--team,var(--line));font-family:var(--display);border-radius:50%;flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid}.avatar.in-badge{box-shadow:0 0 0 2px #ffffffd9}.team-badge{align-items:center;gap:.45rem;padding-left:.25rem;display:inline-flex}.team-badge-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-team{align-items:center;gap:.45rem;padding-left:.2rem;display:inline-flex}.comment-avatar{width:26px;height:26px;margin-top:.05rem}select{font:inherit;border:1.5px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;max-width:60%;padding:.5rem .7rem;font-size:16px}.animal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}@media (width>=560px){.animal-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.animal{background:var(--paper-2);cursor:pointer;border:2px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:.25rem;padding:.35rem .2rem .4rem;transition:transform .1s,border-color .15s;display:flex;position:relative}.animal img{aspect-ratio:1;object-fit:cover;border-radius:50%;width:100%}.animal-label{letter-spacing:-.01em;text-align:center;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:clamp(.6rem,2.55vw,.75rem);font-weight:600;line-height:1.1;overflow:hidden}.animal:active:not(:disabled){transform:scale(.95)}.animal.selected{border-color:var(--brick);background:#fbe9e3}.animal.selected:after{content:"✓";background:var(--brick);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.75rem;font-weight:800;display:grid;position:absolute;top:2px;right:2px}.animal.taken{cursor:not-allowed;opacity:.45}.animal.taken img{filter:grayscale()}.team-hero-top{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.team-hero-top h1{margin-bottom:0}.team-avatar-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;position:relative}.team-avatar-btn .avatar{box-shadow:0 0 0 4px #ffffffe6}.edit-chip{background:var(--ink);width:28px;height:28px;color:var(--paper);border-radius:50%;place-items:center;font-size:.85rem;display:grid;position:absolute;bottom:-2px;right:-2px}.presenting-banner .avatar{box-shadow:0 0 0 2px var(--team)}.podium li .avatar{margin-bottom:.2rem}.proj-team-row{align-items:center;gap:1.2vw;display:flex}.proj-avatar{box-shadow:0 0 0 .35vw var(--team);width:clamp(64px,7vw,140px)!important;height:clamp(64px,7vw,140px)!important}.proj-teams .avatar.in-badge{width:1.6em!important;height:1.6em!important}.avatar-picker{flex-direction:column;gap:.6rem;display:flex}.group-tabs{scrollbar-width:none;scroll-snap-type:x proximity;gap:.35rem;margin:0 -1.1rem;padding:.15rem 1.1rem .25rem;display:flex;overflow-x:auto}.group-tabs::-webkit-scrollbar{display:none}.group-tab{scroll-snap-align:start;border:1.5px solid var(--line);background:var(--card);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;flex:none;align-items:flex-start;gap:.05rem;padding:.4rem .75rem;font-size:.88rem;font-weight:600;display:flex}.group-tab small{color:var(--muted);font-size:.72rem;font-weight:500}.group-tab.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.group-tab.on small{color:#f6f1e7bf}.group-tab.has-selected span:after{content:" ✓";color:var(--brick)}.group-tab.on.has-selected span:after{color:var(--gold)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#a3301f}.dialog-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1218268c;place-items:center;padding:1rem;animation:.15s ease-out dialog-fade;display:grid;position:fixed;inset:0}.dialog{background:var(--card);border-radius:18px;flex-direction:column;gap:.75rem;width:min(100%,420px);padding:1.3rem 1.2rem 1.1rem;animation:.18s ease-out dialog-pop;display:flex;box-shadow:0 30px 60px -20px #00000073}.dialog-title{font-size:1.3rem}.dialog-message{color:var(--ink-2);white-space:pre-line;overflow-wrap:anywhere}.dialog-input.code-input{font-size:1.2rem}.dialog-input[readonly]{background:var(--paper-2);font-size:.95rem}.dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:.3rem;display:flex}.dialog-actions .btn{flex:1}@media (width<=559px){.dialog-backdrop{place-items:end center;padding:0}.dialog{width:100%;padding-bottom:calc(1.1rem + var(--safe-bottom));border-radius:22px 22px 0 0;animation:.22s ease-out dialog-slide}}@keyframes dialog-fade{0%{opacity:0}}@keyframes dialog-pop{0%{opacity:0;transform:scale(.96)}}@keyframes dialog-slide{0%{transform:translateY(100%)}}
