@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-latin-400-normal-_wFEWmAB.woff2)format("woff2"),url(/assets/press-start-2p-latin-400-normal-KLytu4cr.woff)format("woff")}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-latin-ext-400-normal-DpfYvR5A.woff2)format("woff2"),url(/assets/press-start-2p-latin-ext-400-normal-DBgyq7ky.woff)format("woff")}:root{--bg:#0b0a14;--bg-2:#12101f;--panel:#1a1a2e;--panel-2:#23233c;--line:#9aa7b5;--line-dark:#4a4a6a;--ink:#e8e8f0;--dim:#8f8fa8;--gold:#ffd166;--gold-dark:#d9a93f;--red:#e63946;--red-dark:#b02734;--green:#7fb069;--blue:#5b8fb9;--danger:#ff5a5a;--shadow:0 4px 0 #0009;--font:"Press Start 2P", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);image-rendering:pixelated;-webkit-font-smoothing:none;font-size:10px;line-height:1.6;overflow-x:hidden}::selection{background:var(--gold);color:var(--bg)}button,input,select{font-family:var(--font)}button{cursor:pointer}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.app{background:radial-gradient(ellipse at 50% 0%, #5b8fb91a, transparent 60%), var(--bg);flex-direction:column;align-items:center;min-height:100%;display:flex}.screen{flex-direction:column;align-items:center;gap:20px;width:100%;max-width:980px;padding:28px 24px 48px;display:flex}.h1{color:var(--gold);text-shadow:0 3px 0 var(--red-dark), 0 6px 0 #00000080;letter-spacing:2px;text-align:center;font-size:26px}.h2{color:var(--gold);text-shadow:0 2px #0009;letter-spacing:1px;text-align:center;font-size:14px}.h3{color:var(--ink);letter-spacing:1px;font-size:10px}.dim{color:var(--dim)}.danger{color:var(--danger)}.panel{background:var(--panel);border:3px solid var(--line-dark);box-shadow:inset 0 2px 0 #ffffff0d, inset 0 -2px 0 #0006, var(--shadow);padding:16px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;width:100%;display:grid}.btn{background:var(--panel-2);color:var(--ink);border:3px solid var(--line);box-shadow:var(--shadow);letter-spacing:1px;text-transform:uppercase;text-align:center;-webkit-user-select:none;user-select:none;padding:12px 18px;font-size:10px;transition:transform 60ms steps(2,end),box-shadow 60ms steps(2,end);display:inline-block}.btn:hover{border-color:var(--gold);color:var(--gold);background:#2c2c4a}.btn:active{transform:translateY(3px);box-shadow:0 1px #0009}.btn.primary{background:var(--gold-dark);border-color:var(--gold);color:var(--bg)}.btn.primary:hover{background:var(--gold);color:var(--bg)}.btn.danger{border-color:var(--red);color:var(--red)}.btn.danger:hover{background:var(--red-dark);color:var(--ink);border-color:var(--red)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:var(--shadow);transform:none}.btn-row{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.bar{border:3px solid var(--line-dark);background:#0d0d1c;width:100%;height:18px;position:relative}.bar-fill{background:var(--gold);height:100%;transition:width .2s steps(4,end)}.bar-fill.red{background:var(--red)}.bar-fill.green{background:var(--green)}.bar-label{color:var(--ink);text-shadow:1px 1px #0d0d1c,2px 2px #0d0d1c,-1px -1px #0d0d1c,1px -1px #0d0d1c,-1px 1px #0d0d1c;letter-spacing:1px;pointer-events:none;justify-content:center;align-items:center;font-size:8px;display:flex;position:absolute;inset:0}.hearts{align-items:center;gap:8px;display:flex}.heart{width:22px;height:22px;image-rendering:pixelated}.heart-lost{animation:.3s steps(3,end) heartPop}@keyframes heartPop{50%{filter:brightness(2);transform:scale(1.4)}}.level-card{flex-direction:column;gap:10px;display:flex;position:relative}.level-card.locked{filter:saturate(.25)brightness(.7)}.level-card.locked:after{content:"LOCKED";letter-spacing:2px;color:var(--dim);pointer-events:none;background:#06060e73;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;inset:0}.level-card .num{color:var(--dim);font-size:8px}.level-card .h2{overflow-wrap:anywhere}.level-card .mastery-pips{gap:5px;display:flex}.pip{border:2px solid var(--line-dark);background:#0d0d1c;width:14px;height:14px}.pip.done{background:var(--gold);border-color:var(--gold)}.lock-badge{width:18px;height:18px;image-rendering:pixelated;position:absolute;top:10px;right:10px}.word-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;width:100%;display:grid}.word-cell{background:var(--panel);border:2px solid var(--line-dark);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:8px;display:flex}.word-cell .gloss{color:var(--dim);font-size:8px}.word-cell .german{color:var(--gold);font-size:8px}.word-cell .article{color:var(--blue);font-size:8px}.word-cell .tier{letter-spacing:1px;font-size:7px}.tier.UNDISCOVERED{color:var(--dim)}.tier.DISCOVERED{color:var(--blue)}.tier.NEEDS{color:var(--danger)}.tier.MASTERED{color:var(--green)}.input-shell{align-items:center;gap:10px;width:100%;max-width:760px;display:flex}.game-input{border:3px solid var(--line);min-width:0;color:var(--gold);letter-spacing:2px;caret-color:var(--gold);text-transform:none;background:#0d0d1c;flex:1;padding:14px 16px;font-size:16px;box-shadow:inset 0 0 0 2px #10101f}.game-input:focus{border-color:var(--gold);outline:none;box-shadow:inset 0 0 0 2px #1a1a30,0 0 0 2px #ffd16666}.game-input.shake{border-color:var(--red);color:var(--red);animation:.18s steps(4,end) 2 shake}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.crt:before{content:"";pointer-events:none;z-index:40;background:repeating-linear-gradient(#0000 0 2px,#00000029 3px,#0000 4px),radial-gradient(#0000 55%,#00000059 100%);position:fixed;inset:0}.crt:after{content:"";pointer-events:none;z-index:41;background:radial-gradient(#0000 60%,#0b0a1480 100%);position:fixed;inset:0}.game-screen{flex-direction:column;align-items:center;gap:10px;width:100%;min-height:100%;padding:12px;display:flex}.canvas-frame{aspect-ratio:16/9;border:4px solid var(--line-dark);width:min(96vw,1440px);box-shadow:0 0 0 4px #0d0d1c, var(--shadow);background:#0d0d1c;position:relative;overflow:hidden}.game-canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.hud{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;width:min(96vw,1440px);display:flex}.hud .hud-left,.hud .hud-right{align-items:center;gap:14px;display:flex}.hud-progress{flex:1;min-width:220px;max-width:460px}.floating-msg{pointer-events:none;color:var(--danger);text-shadow:0 2px #000000b3;font-size:14px;animation:.7s steps(6,end) forwards floatUp;position:absolute}.floating-msg.ok{color:var(--gold)}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-26px)}}.pause-overlay{z-index:10;background:#06060ed1;flex-direction:column;justify-content:center;align-items:center;gap:22px;display:flex;position:absolute;inset:0}.briefing-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;width:100%;max-height:56vh;padding:10px;display:grid;overflow-y:auto}.briefing-grid .word-cell{background:#161628;border:3px solid #3a3a5c}.briefing-grid .word-cell .german{font-size:9px}.stat-row{border-bottom:2px solid #10101f;justify-content:space-between;gap:20px;padding:6px 0;font-size:8px;display:flex}.stat-row span:first-child{color:var(--dim)}.stat-row span:last-child{color:var(--ink);text-align:right}.settings-block{flex-direction:column;gap:12px;width:100%;max-width:640px;display:flex}.setting-row{border-bottom:2px solid #10101f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.setting-row .label{flex:1;min-width:220px}.setting-row .hint{color:var(--dim);margin-top:4px;font-size:7px}.toggle{border:3px solid var(--line);background:#0d0d1c;flex-shrink:0;width:64px;height:30px;transition:background .12s steps(2,end),border-color .12s steps(2,end);position:relative;box-shadow:inset 0 0 0 2px #060614}.toggle.on{background:var(--panel-2);border-color:var(--gold)}.toggle .knob{background:var(--line);width:16px;height:16px;transition:transform .12s steps(2,end),background .12s steps(2,end);position:absolute;top:3px;left:3px}.toggle.on .knob{background:var(--gold);transform:translate(32px)}.settings-section-title{color:var(--gold);letter-spacing:2px;padding-top:10px;font-size:9px}select.setting-select{color:var(--ink);border:3px solid var(--line-dark);background:#0d0d1c;padding:8px;font-size:9px}input[type=range]{accent-color:var(--gold);cursor:pointer;width:180px;height:24px}.setting-row.sub{border-bottom:none;padding:4px 0 12px 16px}.setting-row.sub .label{min-width:0}.confetti-piece{z-index:30;pointer-events:none;width:10px;height:10px;animation:linear forwards confettiFall;position:fixed;top:-20px}@keyframes confettiFall{to{transform:translateY(110vh)rotate(540deg)}}.trophy-bounce{animation:.6s steps(6,end) trophyBounce}@keyframes trophyBounce{0%{transform:scale(.2)}60%{transform:scale(1.25)}to{transform:scale(1)}}.keycap{background:var(--panel-2);border:2px solid var(--line);color:var(--gold);border-bottom-width:4px;margin:0 2px;padding:3px 7px;font-size:9px;display:inline-block}.help-table{border-collapse:collapse;width:100%;max-width:720px}.help-table td,.help-table th{border:2px solid var(--line-dark);text-align:left;vertical-align:top;padding:10px;font-size:8px}.help-table th{color:var(--gold)}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=720px){body{font-size:9px}.h1{font-size:18px}.h2{font-size:12px}.screen{gap:14px;padding:16px 12px 36px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.word-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}.btn{padding:10px 14px;font-size:8px}.game-input{padding:10px;font-size:13px}.game-input::placeholder{font-size:9px}.input-shell{flex-wrap:wrap;justify-content:center;gap:8px}.game-screen{gap:8px;padding:8px}.hud{justify-content:center;gap:8px}}
