:root{--phosphor:#33ff66;--phosphor-dim:#1a8f3c;--phosphor-faint:#0d4a20;--alert:#ff3344;--amber:#ffb000;--bg:#030905;--panel:#06120a}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%}body{background:var(--bg);color:var(--phosphor);font-family:Courier New,Courier,monospace;font-size:16px;line-height:1.5;overflow:hidden}.crt{position:relative;height:100vh;height:100dvh;overflow-y:auto;padding:24px 20px calc(120px + env(safe-area-inset-bottom));text-shadow:0 0 6px rgba(51,255,102,.55)}.crt:before{background:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0 1px,transparent 1px 3px);z-index:10}.crt:after,.crt:before{content:"";position:fixed;inset:0;pointer-events:none}.crt:after{background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%);z-index:11}@media (prefers-reduced-motion:no-preference){.flicker{animation:flicker 4s infinite}@keyframes flicker{0%,97%,to{opacity:1}98%{opacity:.82}99%{opacity:.95}}}.line{white-space:pre-wrap;word-break:break-word;min-height:1.5em}.dim{color:var(--phosphor-dim)}.alert{color:var(--alert);text-shadow:0 0 8px rgba(255,51,68,.6)}.amber{color:var(--amber);text-shadow:0 0 8px rgba(255,176,0,.5)}.big{font-size:clamp(20px,5vw,34px);letter-spacing:.12em;font-weight:700}.box{border:1px solid var(--phosphor-dim);padding:14px 16px;margin:14px 0;background:var(--panel)}.box,.inputrow{max-width:720px}.inputrow{display:flex;align-items:center;gap:8px;margin-top:10px}.prompt-symbol{color:var(--phosphor);flex-shrink:0}input[type=password],input[type=text]{background:transparent;border:none;border-bottom:1px solid var(--phosphor-dim);color:var(--phosphor);font-family:inherit;font-size:16px;text-shadow:inherit;outline:none;flex:1 1;min-width:0;padding:8px 2px;text-transform:uppercase;letter-spacing:.08em}input:focus{border-bottom-color:var(--phosphor);box-shadow:0 1px 0 var(--phosphor)}button{background:var(--phosphor-faint);border:1px solid var(--phosphor-dim);color:var(--phosphor);font-family:inherit;font-size:16px;min-height:44px;padding:6px 18px;cursor:pointer;letter-spacing:.1em;text-transform:uppercase;touch-action:manipulation}button:focus-visible,button:hover{background:var(--phosphor-dim);color:#001a08;outline:2px solid var(--phosphor);outline-offset:2px}.bar{height:14px;border:1px solid var(--phosphor-dim);max-width:720px;margin:8px 0;position:relative;overflow:hidden}.bar>i{display:block;height:100%;background:var(--phosphor-dim);width:0;transition:width .15s linear}.cursor:after{content:"█";animation:blink 1s steps(1) infinite}.typing-cursor:after{content:"█"}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor:after{animation:none}}.glitch{position:relative;display:inline-block}.reveal-city{font-size:clamp(48px,14vw,120px);letter-spacing:.18em;font-weight:700;color:var(--phosphor);text-shadow:0 0 18px rgba(51,255,102,.8),0 0 40px rgba(51,255,102,.4);margin:20px 0}@media (prefers-reduced-motion:no-preference){.reveal-city.afterglow{animation:afterglow 7s infinite}@keyframes afterglow{0%,86%,93%,to{opacity:1}88%{opacity:.6}89%{opacity:.95}91%{opacity:.75}}}.level-tag{border:1px solid var(--amber);color:var(--amber);padding:2px 10px;letter-spacing:.15em;margin-top:22px;margin-bottom:8px}.level-tag,.stamp{display:inline-block}.stamp{border:3px double var(--alert);color:var(--alert);padding:6px 16px;letter-spacing:.2em;transform:rotate(-3deg);font-weight:700;margin:10px 0}.numgrid{font-family:inherit;letter-spacing:.12em;line-height:1.9;max-width:720px;margin:10px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;word-break:break-all}.numgrid>div{display:flex}.numgrid span{flex:1 1;text-align:center;padding:0 3px;color:var(--phosphor-dim);cursor:pointer;transition:color .35s,text-shadow .35s}.numgrid span.locked{color:var(--phosphor);background:var(--phosphor-faint);outline:1px solid var(--phosphor-dim);text-shadow:0 0 8px rgba(51,255,102,.7)}@media (prefers-reduced-motion:no-preference){.numgrid span.locked{animation:lockpop .3s ease-out}@keyframes lockpop{0%{transform:scale(1.5);text-shadow:0 0 18px rgba(51,255,102,1)}to{transform:scale(1)}}}.numgrid span.wrongpick{color:var(--alert);text-shadow:0 0 8px rgba(255,51,68,.6)}.numgrid span.pulse{color:var(--phosphor);text-shadow:0 0 12px rgba(51,255,102,.95)}.numgrid span.revealed{color:var(--amber);text-shadow:0 0 10px rgba(255,176,0,.9);border-bottom:1px solid var(--amber)}@media (prefers-reduced-motion:no-preference){.numgrid span.revealed{animation:revealpulse 1.2s infinite}@keyframes revealpulse{0%,to{opacity:1}50%{opacity:.55}}}@media (prefers-reduced-motion:no-preference){.numgrid span.tick{animation:cellflicker 3s infinite}@keyframes cellflicker{0%,92%,to{opacity:1}95%{opacity:.35}}}.knobs{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;margin:14px 0 6px}.knob-cell{display:flex;flex-direction:column;align-items:center;gap:8px}.knob{width:110px;height:110px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#124a26,#04140a 70%);border:3px outset #2a7a45;position:relative;touch-action:none;cursor:-webkit-grab;cursor:grab;box-shadow:0 0 12px rgba(51,255,102,.15),inset 0 0 18px rgba(0,0,0,.6)}.knob:active{cursor:-webkit-grabbing;cursor:grabbing}.knob:before{content:"";position:absolute;left:50%;top:7px;width:6px;height:26px;margin-left:-3px;border-radius:3px;background:var(--phosphor);box-shadow:0 0 8px var(--phosphor)}.knob.locked{border-style:inset;opacity:.85;cursor:default}.knob.locked:before{background:var(--amber);box-shadow:0 0 8px var(--amber)}.knob-label{font-size:12px;letter-spacing:.12em;color:var(--phosphor-dim)}.knob-cell.locked .knob-label{color:var(--amber)}.knob-sig{width:110px;height:8px;border:1px solid var(--phosphor-dim);background:var(--panel)}.knob-sig i{display:block;height:100%;width:0;background:var(--phosphor-dim)}.knob-cell.locked .knob-sig i{background:var(--amber)}.knob-readout{text-align:center;margin:4px 0 10px}.knob-readout-label{font-size:12px;letter-spacing:.14em;color:var(--phosphor-dim);margin-bottom:2px}.knob-readout-value{color:var(--amber);letter-spacing:.05em;font-size:17px;text-shadow:0 0 8px rgba(255,176,0,.4)}.timing{max-width:720px;margin:12px 0}.timing>button{display:block;width:100%;min-height:48px}.timing-track{position:relative;height:34px;border:1px solid var(--phosphor-dim);background:var(--panel);overflow:hidden;margin-bottom:10px}.timing-zone{background:var(--phosphor-faint);border-left:1px solid var(--phosphor);border-right:1px solid var(--phosphor)}.timing-marker,.timing-zone{position:absolute;top:0;bottom:0}.timing-marker{width:3px;background:var(--phosphor);box-shadow:0 0 8px var(--phosphor)}.timing-marker.hit{background:var(--amber);width:5px;box-shadow:0 0 14px var(--amber)}.timing-marker.miss{background:var(--alert);width:5px;box-shadow:0 0 14px var(--alert)}.choices{display:flex;flex-direction:column;gap:8px;max-width:720px;margin:10px 0}.choices button{text-align:left;text-transform:none;letter-spacing:.04em}.choices button.confirm{text-align:center;letter-spacing:.12em}.choices button:disabled{cursor:default}.choices button.wrong{border-color:var(--alert);color:var(--alert);opacity:.55}.choices.done button{opacity:.45}.choices.done button.right{opacity:1;color:var(--amber);border-color:var(--amber);text-shadow:0 0 8px rgba(255,176,0,.5)}@media (prefers-reduced-motion:no-preference){.choices button{animation:choicein .3s ease-out backwards}.choices button:nth-child(2){animation-delay:.09s}.choices button:nth-child(3){animation-delay:.18s}.choices button:nth-child(4){animation-delay:.27s}@keyframes choicein{0%{opacity:0;transform:translateY(6px)}}}input.raw{text-transform:none;letter-spacing:.04em}.typing-cmd{border:1px dashed var(--amber);padding:8px 12px;margin:8px 0;max-width:720px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wordle-row{display:flex;gap:6px;margin:4px 0}.wordle-cell{width:40px;height:40px;border:1px solid var(--phosphor-dim);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;text-transform:uppercase}.wordle-cell.correct{background:var(--phosphor-dim);color:#001a08;border-color:var(--phosphor);text-shadow:none}.wordle-cell.present{border-color:var(--amber);color:var(--amber)}.wordle-cell.absent{opacity:.35}.chips{display:flex;flex-wrap:wrap;gap:10px;max-width:720px;margin:12px 0}.chips button{text-transform:none;letter-spacing:.04em;padding:10px 14px}.chips button.used{opacity:.25;pointer-events:none}.chips button.wrong{border-color:var(--alert);color:var(--alert)}.assembled{border:1px dashed var(--phosphor-dim);padding:10px 12px;margin:8px 0;max-width:720px;min-height:1.5em;color:var(--amber);word-break:break-all}.shake{animation:shake .3s}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}@media (prefers-reduced-motion:reduce){.shake{animation:none}}.overlay{position:fixed;inset:0;background:rgba(1,6,3,.94);z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px}.overlay-label{letter-spacing:.22em;font-size:clamp(13px,3.5vw,20px);color:var(--alert);text-shadow:0 0 10px rgba(255,51,68,.7);animation:blinkfast .5s steps(1) infinite;text-align:center;padding:0 16px}@keyframes blinkfast{50%{opacity:.2}}.count-digit{font-size:clamp(130px,42vw,280px);font-weight:700;line-height:1;color:var(--phosphor);text-shadow:0 0 30px rgba(51,255,102,.9),0 0 90px rgba(51,255,102,.5)}.count-digit.pop{animation:pop 1s ease-out}@keyframes pop{0%{transform:scale(1.7);opacity:0}15%{opacity:1}to{transform:scale(.92);opacity:.9}}.flashout{position:fixed;inset:0;background:#eaffe9;z-index:40;pointer-events:none;animation:flashfade .65s ease-out forwards}@keyframes flashfade{0%{opacity:1}to{opacity:0}}.bigshake{animation:bigshake .5s}@keyframes bigshake{0%,to{transform:none}20%{transform:translate(-10px,4px)}40%{transform:translate(8px,-6px)}60%{transform:translate(-6px,-4px)}80%{transform:translate(6px,4px)}}.confetti-canvas{position:fixed;inset:0;z-index:25;pointer-events:none}@media (prefers-reduced-motion:reduce){.bigshake,.count-digit.pop,.flashout,.overlay-label{animation:none}}.kb{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(#0a2413,#04140a);border-top:3px ridge #2a7a45;box-shadow:0 -6px 24px rgba(0,0,0,.7);padding:10px 8px calc(10px + env(safe-area-inset-bottom));z-index:50;transform:translateY(110%);transition:transform .25s ease-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation}.kb.open{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.kb{transition:none}}.kb-row{display:flex;gap:5px;width:min(100%,520px);margin:0 auto 6px}.kb button{flex:1 1;min-width:0;min-height:46px;padding:0;font-size:17px;font-family:inherit;color:var(--phosphor);text-shadow:0 0 6px rgba(51,255,102,.5);background:linear-gradient(#124a26,#082613);border:2px outset #2a7a45;border-radius:3px;letter-spacing:0;touch-action:manipulation}.kb button:active{border-style:inset;background:linear-gradient(#082613,#124a26);transform:translateY(1px)}.kb button.kb-back{flex:1.6 1;font-size:19px}.kb button.kb-submit{flex:1 1;min-height:50px;font-size:16px;letter-spacing:.15em;color:var(--amber);text-shadow:0 0 8px rgba(255,176,0,.6);border-color:#8a6200;background:linear-gradient(#3d2c00,#1f1600)}.kb button.kb-submit:active{background:linear-gradient(#1f1600,#3d2c00)}.kb button.wd-correct{background:linear-gradient(#1a8f3c,#0e5c25);color:#001a08;text-shadow:none}.kb button.wd-present{border-color:#8a6200;color:var(--amber);text-shadow:0 0 6px rgba(255,176,0,.5)}.kb button.wd-absent{opacity:.35;text-shadow:none}body.kb-open .crt{padding-bottom:360px}.kb-display .dim{opacity:.5}.kb-tappable{cursor:pointer}.kb-tappable:before{content:"▸ ANTIPPEN ZUM EINGEBEN";display:block;font-size:12px;letter-spacing:.08em;color:var(--phosphor-dim);opacity:.7;margin-bottom:2px}@media (max-width:520px){body{font-size:15px}.crt{padding:14px 12px calc(150px + env(safe-area-inset-bottom))}.box{padding:12px}.numgrid{font-size:16px;letter-spacing:.06em;line-height:2.2}.numgrid span{padding:3px 6px}.wordle-cell{width:34px;height:34px;font-size:17px}.timing-track{height:56px}.inputrow{flex-wrap:wrap}.inputrow input{flex:1 1;min-width:0}.inputrow button{flex:1 1 100%;min-height:48px}.choices button{min-height:48px}.reveal-city{letter-spacing:.1em}}