@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;600;700&family=Prosto+One&display=swap');
:root{--ink:#201e1f;--lime:#daff02;--milk:#f3f0eb;--muted:#a7a5a0;--line:#ffffff20}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--milk);font-family:Jost,Arial,sans-serif}.app{max-width:1600px;margin:auto;padding:0 4vw}header{height:106px;display:flex;align-items:center;gap:35px;border-bottom:1px solid var(--line)}.logo{width:160px;height:66px;object-fit:contain}.edition{font-size:10px;letter-spacing:2px;color:var(--muted)}.tools{margin-left:auto;display:flex;gap:10px}button,input{font:inherit}button{cursor:pointer;color:inherit;background:none;border:1px solid var(--line);border-radius:7px;padding:10px 14px;transition:background .18s,transform .18s}button:hover{background:#ffffff10}button:focus-visible,input:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button:disabled{cursor:default;opacity:.45}.tools button{font-size:13px}main{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:5vw;padding:38px 0 25px}.eyebrow{font-size:10px;letter-spacing:2.4px;display:flex;align-items:center;gap:8px}.dot{height:6px;width:6px;background:var(--lime);border-radius:50%}h1{font-family:'Prosto One',Arial,sans-serif;font-size:clamp(36px,4.7vw,72px);line-height:1.03;letter-spacing:-2.5px;margin:23px 0 12px;position:relative}h1 span{color:var(--lime)}h1 i{position:absolute;right:4%;top:0;color:var(--lime);font-style:normal;font-family:Arial;font-size:110px;font-weight:400}.subhead{color:var(--muted);font-size:15px}.game{margin-top:26px;padding:23px 30px 16px;border:1px solid #ffffff29;border-radius:12px;background:radial-gradient(ellipse at 50% 20%,#daff020b,transparent 70%),#ffffff02;position:relative;overflow:hidden}.game-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.game-top b{color:var(--lime);font-size:12px;margin-left:7px}.timer{font-family:'Jost',Arial,sans-serif;font-weight:500;font-variant-numeric:tabular-nums;font-size:clamp(95px,10.6vw,176px);letter-spacing:-6px;line-height:1.2;text-align:center;margin:9px 0;color:var(--milk)}.timer span{color:var(--lime)}.timer.hidden-time{font-size:clamp(70px,9vw,135px);letter-spacing:10px}.track{height:3px;background:#ffffff14;position:relative;margin:0 8px}.track div{height:100%;width:0;background:var(--lime)}.target-mark{position:absolute;left:66.666%;top:-4px;height:11px;width:2px;background:var(--milk)}.feedback{text-align:center;min-height:48px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--muted);padding:12px 0}.primary{background:var(--lime);border:0;color:var(--ink);width:100%;display:flex;align-items:center;justify-content:space-between;padding:17px 23px;font-weight:700;letter-spacing:1px}.primary:hover{background:#e6ff52;transform:translateY(-1px)}.primary kbd{font-size:10px;padding:3px 10px;border-color:#201e1f40;letter-spacing:1px}.primary>span:last-child{font-size:26px;line-height:1}.hints{display:flex;justify-content:center;gap:19px;margin-top:15px;color:#aaa8a5;font-size:10px}kbd{font-family:inherit;border:1px solid #ffffff30;border-radius:4px;padding:1px 5px;margin-right:4px;font-size:9px}.bottom-note{display:flex;justify-content:space-between;margin-top:18px;font-size:9px;letter-spacing:2px;color:#8e8c89}aside{padding-top:4px}.section-title{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.6px;color:var(--muted);margin-bottom:23px}.section-title>span:last-child{font-size:20px;color:var(--lime);line-height:.6}label,.mode-label{display:block;font-size:13px;margin-bottom:9px}input{background:#ffffff05;border:1px solid #ffffff2a;border-radius:7px;padding:12px 14px;width:100%;color:var(--milk);font-size:15px}input::placeholder{color:#817f7b}.mode-label{margin-top:19px}.modes{display:flex;padding:4px;border-radius:8px;background:#171617;gap:3px}.modes button{flex:1;font-size:12px;border:0;padding:11px 7px}.modes .selected{background:var(--milk);color:var(--ink)}.settings p{font-size:12px;color:var(--muted);min-height:18px;margin:10px 0 25px}.leaderboard{border-top:1px solid var(--line);padding-top:23px}.leaderboard .section-title{margin-bottom:12px}.board-head{display:flex;align-items:center;justify-content:space-between}h2{font-size:21px;letter-spacing:-.5px;margin:0}.board-head button{border:0;font-size:11px;text-decoration:underline;color:var(--muted);padding:5px}.table-labels{display:flex;justify-content:space-between;color:#8f8d88;letter-spacing:1px;font-size:8px;border-bottom:1px solid var(--line);padding:17px 0 10px}ol{list-style:none;margin:0;padding:0;max-height:208px;overflow:auto}li{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #ffffff12;font-size:13px}li .rank{color:#8e8c89;font-size:10px;width:18px}li:first-child .rank{color:var(--lime)}li .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}li b{font-weight:500;color:var(--lime);font-variant-numeric:tabular-nums}li small{color:var(--muted);font-size:10px;margin-left:6px}#empty{text-align:center;padding:19px 0}.empty-symbol{font-size:30px;color:var(--lime);display:block;margin-bottom:4px}#empty strong{font-size:13px;font-weight:500}#empty p{font-size:12px;line-height:1.5;color:#898783;margin:6px 0}.board-note{font-size:10px;line-height:1.5;color:#8e8c89;margin-top:11px}.rules{display:flex;align-items:center;gap:20px;background:var(--milk);color:var(--ink);padding:17px 20px;margin-top:22px;border-radius:8px}.rule-number{font-family:'Prosto One',Arial,sans-serif;font-size:45px;letter-spacing:-4px}.rules strong{font-size:10px;letter-spacing:1px}.rules p{font-size:11px;line-height:1.55;margin:5px 0 0;color:#686566}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0 22px;color:#8e8c89;font-size:9px;letter-spacing:1px}body.running .dot{animation:pulse 1s infinite}body.running .game{border-color:#daff0260}body.winner .game{box-shadow:0 0 50px #daff0222;border-color:var(--lime)}body.winner .feedback{color:var(--lime);font-weight:600}#confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:5}.piece{position:absolute;top:-20px;width:8px;height:15px;animation:fall 2s ease-in forwards}@keyframes fall{to{transform:translateY(110vh) rotate(600deg)}}@keyframes pulse{50%{opacity:.2}}@media(min-width:1600px){main{gap:90px}}@media(max-width:1000px){main{grid-template-columns:minmax(0,1fr) 290px;gap:30px}h1{font-size:45px}h1 i{font-size:80px}.game{padding:20px 18px}.hints{gap:8px}.edition{display:none}.timer{font-size:115px}}@media(max-width:760px){.app{padding:0 6vw}header{height:85px}.logo{width:127px}.tools button{padding:9px;font-size:11px}.tools span{display:none}main{display:block;padding-top:26px}h1{font-size:clamp(39px,9vw,65px);letter-spacing:-2px}h1 i{font-size:80px}.subhead{font-size:12px}.game{margin-top:23px}.timer{font-size:clamp(94px,23vw,160px);letter-spacing:-5px}.hints{flex-wrap:wrap;font-size:9px}.primary{font-size:13px}.primary kbd{display:none}aside{margin-top:38px}.settings p{min-height:0}.leaderboard{margin-top:20px}.rules{margin-top:24px}footer{font-size:8px;gap:20px}.eyebrow{font-size:8px}.game-top{font-size:8px}.feedback{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}body:fullscreen .app{max-width:1700px}
/* Stage view: one landscape canvas, legible from the audience. */
#screenPlayer{display:none}
body.screen-mode{overflow:hidden}
.screen-mode .app{width:100%;max-width:none;height:100dvh;padding:0 4vw;display:grid;grid-template-rows:10vh minmax(0,1fr)}
.screen-mode header{height:auto;min-height:0;gap:2vw}
.screen-mode .logo{width:clamp(110px,12vw,220px);height:7vh}
.screen-mode .edition{display:none}
.screen-mode .tools{gap:.6vw}
.screen-mode .tools button{font-size:clamp(10px,1vw,18px);padding:.8vh 1vw}
.screen-mode main{display:block;padding:2vh 0 2.5vh;min-height:0}
.screen-mode aside,.screen-mode footer,.screen-mode .eyebrow,.screen-mode .subhead,.screen-mode .bottom-note{display:none}
.screen-mode .stage{height:100%;display:flex;flex-direction:column;min-height:0}
.screen-mode h1{font-size:clamp(22px,4.5vh,64px);line-height:1.2;text-align:center;letter-spacing:-.04em;margin:0 0 1.7vh;flex-shrink:0}
.screen-mode h1 br{display:none}
.screen-mode h1 i{display:none}
.screen-mode .game{margin:0;flex:1;min-height:0;padding:2vh 3vw 1.8vh;display:flex;flex-direction:column;border-radius:1.5vh}
.screen-mode .game-top{font-size:clamp(11px,1.8vh,26px);letter-spacing:.12em;align-items:center;gap:2vw;flex-shrink:0}
.screen-mode .game-top>span:first-child{display:flex;gap:2vw;align-items:center;min-width:0}
.screen-mode .game-top>span:last-child{white-space:nowrap}
.screen-mode .game-top b{font-size:clamp(15px,2.7vh,38px)}
.screen-mode #screenPlayer{display:inline;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--milk);max-width:35vw;letter-spacing:0;font-size:clamp(14px,2.7vh,38px)}
.screen-mode .timer{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;font-size:min(29vw,43vh);line-height:1;letter-spacing:-.035em;margin:0;font-weight:600}
.screen-mode .timer.hidden-time{font-size:min(25vw,37vh);letter-spacing:.04em}
.screen-mode .track{height:.5vh;margin:0;flex-shrink:0}
.screen-mode .feedback{font-size:clamp(16px,3vh,44px);min-height:7.8vh;padding:1.4vh 0;line-height:1.25;flex-shrink:0}
.screen-mode .primary{width:min(58vw,1000px);align-self:center;font-size:clamp(12px,2vh,28px);padding:1.5vh 2vw;border-radius:.8vh;flex-shrink:0}
.screen-mode .primary kbd{font-size:clamp(9px,1.3vh,20px)}
.screen-mode .hints{margin-top:1.2vh;font-size:clamp(9px,1.4vh,20px);gap:2vw;flex-shrink:0}
.screen-mode .hints kbd{font-size:inherit}
@media(orientation:portrait){
 body.screen-mode{overflow:auto}
 .screen-mode .app{height:auto;min-height:100dvh;grid-template-rows:80px 1fr}
 .screen-mode header{flex-wrap:wrap;align-content:center;gap:8px}
 .screen-mode .logo{width:100px;height:32px}
 .screen-mode .tools button{font-size:9px;padding:7px}
 .screen-mode main{padding-top:26px}
 .screen-mode h1{font-size:7vw;margin-bottom:25px}
 .screen-mode .game{min-height:65dvh;padding:20px 12px}
 .screen-mode .timer{font-size:25vw;min-height:160px}
 .screen-mode .timer.hidden-time{font-size:22vw}
 .screen-mode .game-top,.screen-mode .game-top b{font-size:10px}
 .screen-mode #screenPlayer{font-size:12px;max-width:22vw}
 .screen-mode .feedback{font-size:16px;min-height:70px}
 .screen-mode .primary{width:100%;font-size:13px;padding:18px}
 .screen-mode .hints{font-size:10px;margin-top:18px;gap:10px}
}
