@font-face{font-family:Roboto;src:url(../fonts/roboto-latin.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--kg-green:#0e4437;--kg-green-dark:#0b362c;--kg-green-light:#145a43;--kg-red:#a02824;--kg-signal:#d22a1e;--kg-grey:#8c969e;--kg-light:#e4e8ea;--white:#fff;--radius:4px;--shadow:0 18px 50px #00000059;--font:"Roboto", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{background:var(--kg-green-dark);height:100%;font-family:var(--font);color:var(--white);-webkit-user-select:none;user-select:none;touch-action:manipulation;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#game{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}body:not(.touch) .touch-only,body.touch .keys-only{display:none}.screen{background:linear-gradient(90deg,#0b362ceb 0%,#0b362c99 45%,#0b362c00 75%);justify-content:flex-start;align-items:center;padding:0 6vw;display:flex;position:fixed;inset:0}#loading,#pause,#gameover,#staff{background:#0b362cb8;justify-content:center}#loading{background:var(--kg-green-dark)}#menu{grid-template-columns:minmax(0,520px) minmax(0,380px);place-content:safe center space-between;align-items:stretch;gap:24px;display:grid}#gameover,#staff,#menu{overflow-y:auto}#gameover>.panel,#staff>.panel{margin:auto 0}#menu>.panel{width:auto}.panel{background:var(--kg-green);border-top:6px solid var(--kg-red);border-radius:var(--radius);width:min(520px,92vw);box-shadow:var(--shadow);padding:36px 40px}.panel--center{text-align:center}.logo{width:100%;max-width:360px;margin:0 auto 22px 0;display:block}.panel--center .logo{margin:0 auto 22px}#menu .logo{max-width:200px;margin:0 auto 16px}.title{letter-spacing:-.5px;text-transform:uppercase;margin:0 0 8px;font-size:54px;font-weight:900;line-height:1}.title span{color:var(--kg-grey)}h2{text-transform:uppercase;margin:0 0 6px;font-size:40px;font-weight:900}.lead{color:var(--kg-light);margin:0 0 24px;font-size:16px;line-height:1.5}.muted{color:var(--kg-grey)}.small{font-size:13px}.btn{border-radius:var(--radius);background:var(--kg-signal);min-width:220px;color:var(--white);font:700 17px/1 var(--font);letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:0;margin:6px 0;padding:14px 28px;transition:background .15s,transform .15s;display:inline-block}.btn:hover,.btn:focus-visible{background:var(--kg-red);transform:translateY(-1px)}.btn:focus-visible{outline:3px solid var(--white);outline-offset:2px}.btn--ghost{border:2px solid var(--kg-grey);color:var(--kg-light);background:0 0}.btn--ghost:hover,.btn--ghost:focus-visible{background:var(--kg-green-light)}.btn--small{min-width:0;padding:12px 16px;font-size:13px}.actions{flex-wrap:wrap;align-items:center;gap:0 12px;display:flex}.menu-toggles{flex:none;gap:8px;width:max-content;margin-left:auto;display:grid}.menu-toggles .btn{text-align:center;white-space:nowrap;margin:0}.actions:has(.menu-toggles){justify-content:space-between;row-gap:10px}.actions:has(.menu-toggles)>.btn{white-space:nowrap;min-width:0;padding:14px 24px}.best{color:var(--kg-light);margin:12px 0 0}.legal{color:#5f6970;gap:8px;margin:14px 0 0;display:flex}.legal a{color:inherit;text-decoration:underline}.legal a:hover,.legal a:focus-visible{color:var(--kg-green)}.controls{color:var(--kg-light);grid-template-columns:auto 1fr;gap:8px 14px;margin:24px 0 0;font-size:14px;display:grid}.controls dt{text-align:right}.controls dd{align-self:center;margin:0}kbd{background:var(--kg-green-dark);border-bottom:2px solid var(--kg-red);min-width:26px;font:700 12px/1.3 var(--font);text-align:center;border-radius:3px;margin-left:4px;padding:3px 6px;display:inline-block}.pu{width:22px;height:22px;font:900 11px/1 var(--font);border-radius:50%;flex:none;place-items:center;display:inline-grid}.pu--magnet{background:var(--kg-signal)}.pu--magnet:after{content:"U"}.pu--helmet{background:var(--white);color:var(--kg-green)}.pu--helmet:after{content:"▲";font-size:9px}.pu--spring{background:var(--kg-green-light);border:2px solid var(--kg-light)}.pu--spring:after{content:"≋";font-size:13px}.pu--multiplier{background:var(--kg-light);color:var(--kg-green)}.pu--multiplier:after{content:"×2"}.progress{background:var(--kg-green-dark);border-radius:3px;height:6px;margin:10px 0 14px;overflow:hidden}.progress__bar{background:var(--kg-signal);width:0;height:100%;transition:width .2s}.panel--board{padding:26px 28px}.board-title{margin-bottom:14px;font-size:28px}.board{margin:0;padding:0;font-size:16px;list-style:none}.board__row{border-radius:var(--radius);border-left:4px solid #0000;grid-template-columns:2.6em 1fr auto;align-items:center;gap:10px;padding:7px 10px;display:grid}.board__row:nth-child(odd){background:#0b362cb3}.board__row--own{border-left-color:var(--kg-signal);font-weight:700;background:var(--kg-green-light)!important}.board__row--gap{margin-top:10px}.board__rank{color:var(--kg-grey);font-variant-numeric:tabular-nums;text-align:left}.board__name{text-align:left;align-items:center;gap:8px;min-width:0;display:flex}.board__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.medal{width:20px;height:20px;font:900 11px/1 var(--font);color:#0000009e;border-radius:50%;flex:none;place-items:center;display:inline-grid;box-shadow:inset 0 0 0 2px #0000002e,0 1px 2px #00000040}.medal--1{background:radial-gradient(circle at 35% 30%,#fff3b0 0%,#f2c230 45%,#b8860b 100%)}.medal--2{background:radial-gradient(circle at 35% 30%,#fff 0%,#d5dadd 45%,#8d969c 100%)}.medal--3{background:radial-gradient(circle at 35% 30%,#f6cfa6 0%,#cd7f32 50%,#8a4f1c 100%)}.board__score{font-variant-numeric:tabular-nums;font-weight:900}.board--compact{margin:6px 0 16px;font-size:15px}.rank{text-transform:uppercase;letter-spacing:1px;margin:14px 0 0;font-weight:900}.name-form{text-align:left;margin:18px 0 14px}.name-form label{letter-spacing:1px;text-transform:uppercase;color:var(--kg-light);margin-bottom:6px;font-size:13px;font-weight:700;display:block}.name-form__row{gap:10px;display:flex}.name-form input,#staff-login input{border:2px solid var(--kg-grey);border-radius:var(--radius);background:var(--kg-green-dark);min-width:0;color:var(--white);font:500 18px/1.2 var(--font);-webkit-user-select:text;user-select:text;flex:1;padding:11px 12px}.name-form input:focus-visible,#staff-login input:focus-visible{outline:3px solid var(--white);outline-offset:1px;border-color:var(--white)}.name-form__row .btn{min-width:0;margin:0}.name-form--menu{margin:0}.name-form--menu input{width:100%;display:block}.name-form--menu .actions{margin-top:10px}.hint{min-height:1.3em;color:var(--kg-grey);margin:6px 0 0;font-size:13px}.hint--warn{color:#ffc2bc;font-weight:700}.panel--staff{width:min(640px,94vw)}#staff-login label{text-transform:uppercase;letter-spacing:1px;margin:10px 0 6px;font-size:13px;font-weight:700;display:block}.board--staff{max-height:42vh;margin:8px 0 12px;font-size:14px;overflow-y:auto}.board--staff .board__row{grid-template-columns:2.6em 1fr auto auto 32px}.board__date{color:var(--kg-grey);font-size:12px}.board__delete{width:30px;height:30px;color:var(--kg-light);font:700 20px/1 var(--font);cursor:pointer;background:0 0;border:0;border-radius:50%}.board__delete:hover,.board__delete:focus-visible{background:var(--kg-signal);color:var(--white)}.btn:disabled{opacity:.45;cursor:default;transform:none}#hud{pointer-events:none;position:fixed;inset:0}.hud__left{top:calc(20px + env(safe-area-inset-top));left:calc(24px + env(safe-area-inset-left));position:absolute}.hud__right{top:calc(18px + env(safe-area-inset-top));right:calc(24px + env(safe-area-inset-right));text-align:right;position:absolute}.bags{border-radius:var(--radius);font:900 26px/1 var(--font);background:#0e4437d9;align-items:center;gap:10px;padding:8px 16px 8px 10px;display:inline-flex}.bag-icon{width:28px;height:28px;display:block}.score{border-bottom:4px solid var(--kg-red);border-radius:var(--radius);font:900 40px/1 var(--font);font-variant-numeric:tabular-nums;background:#0e4437d9;padding:6px 16px;display:inline-block}.multiplier{background:var(--kg-light);color:var(--kg-green);border-radius:var(--radius);font:900 20px/1 var(--font);margin-top:6px;padding:4px 10px;display:inline-block}.hud__right .small{text-shadow:0 1px 2px #0009;color:var(--white);margin-top:6px}.hud__powerups{flex-direction:column;gap:8px;margin-top:12px;display:flex}.hud-pu{border-radius:var(--radius);width:200px;font:700 13px/1 var(--font);background:#0e4437d9;grid-template-columns:22px 1fr;align-items:center;gap:4px 10px;padding:8px 10px;display:grid}.hud-pu .pu{grid-row:span 2}.hud-pu__bar{background:var(--kg-green-dark);border-radius:2px;height:4px;overflow:hidden}.hud-pu__bar i{background:var(--kg-signal);height:100%;display:block}.toast{background:var(--kg-green);border-left:6px solid var(--kg-red);border-radius:var(--radius);font:900 22px/1.2 var(--font);text-transform:uppercase;box-shadow:var(--shadow);padding:10px 22px;animation:1.6s forwards toast;position:absolute;top:22%;left:50%;transform:translate(-50%)}@keyframes toast{0%{opacity:0;transform:translate(-50%,10px)}12%,75%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}.hud__buttons{bottom:calc(20px + env(safe-area-inset-bottom));right:calc(24px + env(safe-area-inset-right));gap:10px;display:flex;position:absolute}.icon-btn{width:40px;height:40px;color:var(--white);font:700 18px/1 var(--font);cursor:pointer;pointer-events:auto;background:#0e4437d9;border:0;border-radius:50%}.icon-btn.off{color:var(--kg-grey);text-decoration:line-through}.stats{justify-content:center;gap:14px;margin:22px 0 8px;display:flex}.stats div{background:var(--kg-green-dark);border-radius:var(--radius);flex:1;padding:12px 8px}.stats span{text-transform:uppercase;letter-spacing:1px;color:var(--kg-grey);font-size:12px;display:block}.stats strong{margin-top:4px;font-size:26px;font-weight:900;display:block}.badge{background:var(--kg-signal);border-radius:var(--radius);text-transform:uppercase;margin:8px 0 0;padding:6px 12px;font-weight:900;display:inline-block}#menu{background:linear-gradient(90deg,#ffffff8c 0%,#ffffff40 45%,#fff0 75%)}#pause,#gameover{background:#ffffff73}#staff{background:#ffffffbf}:is(#menu,#pause,#gameover,#staff) .panel{background:var(--white);color:#1a1a1a;box-shadow:0 18px 50px #0003}:is(#menu,#pause,#gameover,#staff) :is(.title,h2){color:var(--kg-green)}#menu .title span{color:var(--kg-red)}:is(#menu,#gameover,#staff) :is(.lead,.best,.controls,.name-form label,#staff-login label){color:#3a4247}:is(#menu,#pause,#gameover,#staff) :is(.muted,.hint,.board__rank,.board__date){color:#5f6970}:is(#menu,#gameover,#staff) .hint--warn{color:var(--kg-signal)}#menu kbd{background:var(--kg-light);color:var(--kg-green)}:is(#menu,#pause,#gameover,#staff) .btn:focus-visible{outline-color:var(--kg-green)}:is(#menu,#pause,#gameover,#staff) .btn:not(.btn--ghost){background:var(--kg-green)}:is(#menu,#pause,#gameover,#staff) .btn:not(.btn--ghost):is(:hover,:focus-visible){background:var(--kg-green-light)}:is(#menu,#gameover,#staff) .btn--ghost{border-color:var(--kg-green);color:var(--kg-green)}:is(#menu,#gameover,#staff) .btn--ghost:is(:hover,:focus-visible){background:var(--kg-light)}:is(#menu,#gameover,#staff) :is(.name-form input,#staff-login input){background:var(--white);border-color:var(--kg-grey);color:#1a1a1a}:is(#menu,#gameover,#staff) :is(.name-form input,#staff-login input):focus-visible{outline-color:var(--kg-green);border-color:var(--kg-green)}:is(#menu,#gameover,#staff) .board__row:nth-child(odd){background:#f1f4f5}:is(#menu,#gameover,#staff) .board__row--own{color:var(--kg-green);background:#dfece7!important}:is(#menu,#gameover,#staff) .board__score{color:var(--kg-green)}#staff .board__delete{color:#5f6970}#staff .board__delete:is(:hover,:focus-visible){background:var(--kg-signal);color:var(--white)}#gameover .stats div{background:#f1f4f5}#gameover .stats span{color:#5f6970}#gameover .stats strong{color:var(--kg-green)}#gameover .badge{color:var(--white)}.mode-switch{border:2px solid var(--kg-green);border-radius:var(--radius);margin:6px 0 4px;display:inline-flex;overflow:hidden}.mode-switch__btn{background:var(--white);min-width:120px;color:var(--kg-green);font:700 14px/1 var(--font);letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:0;padding:10px 18px}.mode-switch__btn[aria-pressed=true]{background:var(--kg-green);color:var(--white)}.mode-switch__btn:focus-visible{outline:3px solid var(--kg-signal);outline-offset:-3px}.group-current{border-left:4px solid var(--kg-signal);border-radius:var(--radius);background:#dfece7;margin:14px 0 0;padding:12px 14px}.group-current__code{color:var(--kg-green);margin:0 0 4px;font-size:18px}.group-current__code strong{letter-spacing:3px;font-size:24px}.board--groups{margin:0 0 10px;font-size:14px}.board--groups .board__row{grid-template-columns:4em 1fr auto}.board--groups .btn{margin:0}#staff .board--groups .board__rank{color:var(--kg-green);letter-spacing:2px;font-weight:900}.group-badge{border-radius:var(--radius);background:var(--kg-green);color:var(--white);font:700 13px/1.2 var(--font);letter-spacing:1px;text-transform:uppercase;margin:-6px 0 12px;padding:5px 10px;display:inline-block}body.beamer{background:var(--kg-light);color:#1a1a1a;overflow:auto}.beamer__layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:3vw;min-height:100vh;padding:4vh 4vw;display:grid}.beamer .panel{background:var(--white);width:auto;box-shadow:0 18px 50px #0000001f}.beamer .logo{max-width:220px;margin-bottom:14px}.beamer .title{color:var(--kg-green);font-size:clamp(40px,4.5vw,72px)}.beamer .title span{color:var(--kg-red)}.beamer .lead{color:#3a4247;margin-bottom:16px;font-size:clamp(16px,1.5vw,24px)}.beamer .muted,.beamer .board__rank{color:#5f6970}.beamer .hint--warn{color:var(--kg-signal)}.beamer__join{text-align:center}.beamer__join .logo{margin:0 auto 14px}.beamer__qr{width:min(46vh,100%);margin:0 auto}.beamer__qr svg{width:100%;height:auto;display:block}.beamer__url{color:var(--kg-green);word-break:break-all;margin:10px 0 0;font-size:clamp(14px,1.3vw,22px);font-weight:700}.beamer__code{color:#3a4247;text-transform:uppercase;letter-spacing:1px;margin:8px 0 0;font-size:clamp(18px,1.8vw,30px)}.beamer__code strong{color:var(--kg-green);letter-spacing:6px;font-size:1.6em}.beamer .board-title{color:var(--kg-green);margin-bottom:4px;font-size:clamp(28px,3vw,48px)}.beamer #beamer-group{margin:0;font-size:clamp(16px,1.4vw,24px)}.beamer .board{margin-top:14px;font-size:clamp(18px,1.9vw,32px)}.beamer .board__row{padding:.35em .6em}.beamer .board__row:nth-child(odd){background:#f1f4f5}.beamer .board__score{color:var(--kg-green)}.beamer .medal{width:1.2em;height:1.2em;font-size:.6em}.beamer__fullscreen{border-color:var(--kg-green);min-width:0;color:var(--kg-green);opacity:.6;position:fixed;bottom:16px;right:16px}.beamer__fullscreen:hover,.beamer__fullscreen:focus-visible{opacity:1;background:var(--white)}:fullscreen .beamer__fullscreen{display:none}@media (max-width:900px){.beamer__layout{grid-template-columns:1fr}}@media (max-height:760px){.panel{padding:24px 30px}.title{font-size:42px}.controls{font-size:13px}}body.touch .icon-btn{width:48px;height:48px;font-size:20px}@media (max-width:720px){.screen{padding:calc(16px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom));background:#0b362c8c}#menu{grid-template-columns:1fr;place-content:start stretch;gap:14px}#menu>.panel{width:100%}.panel{padding:22px 20px}.logo{max-width:260px;margin-bottom:14px}#menu .logo{max-width:150px;margin-bottom:12px}.title{font-size:40px}.lead{margin-bottom:16px;font-size:15px}.actions:has(.menu-toggles){flex-direction:column;align-items:stretch;gap:10px}.actions .btn:not(.btn--small){flex:100%}.menu-toggles{align-self:flex-end}.panel--center>.btn{width:100%;min-width:0}.controls{margin-top:16px}h2{font-size:32px}.stats{gap:8px;margin-top:16px}.stats strong{font-size:20px}.bags{padding:6px 12px 6px 8px;font-size:20px}.bag-icon{width:22px;height:22px}.score{padding:5px 12px;font-size:30px}.hud-pu{width:150px;font-size:12px}.toast{white-space:nowrap;font-size:18px}.board--staff .board__date{display:none}.board--staff .board__row{grid-template-columns:2.6em 1fr auto 32px}}
