@font-face{font-family:Galmuri11;src:url(/fonts/galmuri/Galmuri11.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Galmuri11;src:url(/fonts/galmuri/Galmuri11-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Galmuri11Ui;src:url(/fonts/galmuri/Galmuri11-Bold.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg:#07090a;--bg-2:#0c1110;--grid:#39ff140f;--fg:#d6ffd6;--fg-dim:#6fa86f;--fg-dimmer:#3a5d3a;--green:#39ff14;--green-soft:#8bff70;--cyan:#00f0ff;--magenta:#ff2bd6;--red:#ff3b30;--amber:#ffc83d;--gold:#ffd84a;--silver:#d6dce6;--bronze:#d18a4a;--mono:"Nanum Gothic Coding", "JetBrains Mono", "Menlo", monospace;--pixel:"VT323", "Galmuri11Ui", "JetBrains Mono", monospace;--tiny:"Press Start 2P", "Galmuri11Ui", "VT323", monospace;--track-tight:.04em;--track-button:.06em;--track-brand:.08em;--track-tiny:.1em;--track-label:.16em;--track-label-wide:.18em;--track-wide:.3em;--track-ultra:.4em;--arc-btn-font-size:28px;--arc-btn-sm-font-size:18px;--arc-btn-line-height:1;--hud-value-font-size:28px;--hud-value-compact-font-size:20px}html:lang(ko){--track-tight:.01em;--track-button:.02em;--track-tiny:.04em;--track-label:.06em;--track-label-wide:.07em;--track-wide:.09em;--track-ultra:.12em}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--mono);min-height:100vh;margin:0;padding:0;overflow-x:hidden}body{background-image:radial-gradient(circle at 1px 1px, var(--grid) 1px, transparent 0);background-position:0 0;background-size:24px 24px}::selection{background:var(--green);color:#001000}.crt-shell{isolation:isolate;min-height:100vh;position:relative}.crt-scanlines{pointer-events:none;z-index:100;mix-blend-mode:multiply;opacity:var(--crt-scan,1);background:repeating-linear-gradient(#0000002e 0 1px,#0000 1px 3px);position:fixed;inset:0}.crt-vignette{pointer-events:none;z-index:101;opacity:var(--crt-vig,1);background:radial-gradient(#0000 55%,#000000b3 100%);position:fixed;inset:0}.crt-flicker{pointer-events:none;z-index:102;opacity:var(--crt-flick,1);background:#39ff1405;animation:.18s steps(2,end) infinite alternate crt-flicker;position:fixed;inset:0}@keyframes crt-flicker{0%{opacity:0}to{opacity:.04}}.crt-glow{pointer-events:none;z-index:99;opacity:var(--crt-glow,1);background:radial-gradient(at 50% 0,#39ff140f,#0000 60%),radial-gradient(at 50% 100%,#00f0ff0a,#0000 60%);position:fixed;inset:0}.crt-curve{transform:var(--crt-curve-transform,none);transform-origin:50%;transition:transform .2s}.neon-g{color:var(--green);text-shadow:0 0 6px #39ff1499,0 0 18px #39ff1440}.neon-c{color:var(--cyan);text-shadow:0 0 6px #00f0ff99,0 0 18px #00f0ff40}.neon-m{color:var(--magenta);text-shadow:0 0 6px #ff2bd699,0 0 18px #ff2bd640}.neon-a{color:var(--amber);text-shadow:0 0 6px #ffc83d8c,0 0 18px #ffc83d33}.neon-r{color:var(--red);text-shadow:0 0 6px #ff3b3099,0 0 18px #ff3b3040}.blink{animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}.blink-slow{animation:1.4s steps(2,end) infinite blink}.arc-btn{font-family:var(--pixel);font-size:var(--arc-btn-font-size);line-height:var(--arc-btn-line-height);letter-spacing:var(--track-button);color:var(--green);border:2px solid var(--green);box-shadow:inset 0 0 0 2px #000, 0 0 0 2px var(--green), 0 0 18px #39ff1459;cursor:pointer;text-transform:uppercase;text-shadow:0 0 8px #39ff148c;background:0 0;padding:18px 28px;transition:transform 80ms,background .15s,color .15s,box-shadow .15s}.arc-btn:hover{background:var(--green);color:#001000;text-shadow:none;box-shadow:inset 0 0 0 2px #000, 0 0 0 2px var(--green), 0 0 22px #39ff14b3}.arc-btn:active{transform:translateY(2px)}.arc-btn.alt{color:var(--cyan);border-color:var(--cyan);text-shadow:0 0 8px #00f0ff8c;box-shadow:inset 0 0 0 2px #000, 0 0 0 2px var(--cyan), 0 0 18px #00f0ff59}.arc-btn.alt:hover{background:var(--cyan);color:#001a1f}.arc-btn.warn{color:var(--magenta);border-color:var(--magenta);text-shadow:0 0 8px #ff2bd68c;box-shadow:inset 0 0 0 2px #000, 0 0 0 2px var(--magenta), 0 0 18px #ff2bd659}.arc-btn.warn:hover{background:var(--magenta);color:#1a0014}.arc-btn:disabled,.arc-btn:disabled:hover,.arc-btn.alt:disabled,.arc-btn.alt:disabled:hover,.arc-btn.warn:disabled,.arc-btn.warn:disabled:hover{border-color:var(--fg-dimmer);box-shadow:inset 0 0 0 2px #000, 0 0 0 2px var(--fg-dimmer);color:var(--fg-dimmer);cursor:not-allowed;text-shadow:none;background:0 0;transform:none}.arc-btn.sm{font-size:var(--arc-btn-sm-font-size);padding:10px 16px}.top-brand{appearance:none;color:var(--green);font:inherit;cursor:pointer;letter-spacing:var(--track-brand);white-space:nowrap;background:0 0;border:0;padding:0;font-size:24px}.top-brand:hover,.top-brand:focus-visible{text-shadow:0 0 10px #39ff14cc,0 0 24px #39ff1473}.top-brand:focus-visible{outline:1px solid var(--green);outline-offset:4px}.top-action{appearance:none;border:1px solid var(--fg-dimmer);color:inherit;font:inherit;cursor:pointer;letter-spacing:inherit;white-space:nowrap;background:#00000059;padding:5px 8px}.top-action:hover{border-color:var(--cyan);background:#00f0ff1f}.top-language{border:1px solid var(--fg-dimmer);white-space:nowrap;background:#00000059;align-items:center;padding:2px;display:inline-flex}.top-language-option{appearance:none;color:var(--fg-dim);font:inherit;cursor:pointer;min-width:30px;letter-spacing:inherit;background:0 0;border:0;padding:3px 7px}.top-language-option:hover{color:var(--cyan)}.top-language-option[data-active="1"]{color:var(--green);text-shadow:0 0 8px #39ff148c;background:#39ff1429}.top-credit{appearance:none;color:inherit;font:inherit;cursor:pointer;letter-spacing:inherit;white-space:nowrap;background:0 0;border:0;padding:0}.top-credit:hover{text-shadow:0 0 10px #39ff14bf,0 0 22px #39ff1459}.hud-chip{border:1px solid var(--fg-dimmer);background:#0009;flex-direction:column;gap:2px;min-width:100px;padding:6px 12px;display:inline-flex}.hud-chip>.lbl{font-family:var(--mono);letter-spacing:var(--track-label);color:var(--fg-dim);font-size:10px}.hud-chip>.val{font-family:var(--pixel);font-size:var(--hud-value-font-size);color:var(--green);text-shadow:0 0 6px #39ff148c;line-height:1}.hud-chip.c>.val{color:var(--cyan);text-shadow:0 0 6px #00f0ff8c}.hud-chip.m>.val{color:var(--magenta);text-shadow:0 0 6px #ff2bd68c}.hud-chip.a>.val{color:var(--amber);text-shadow:0 0 6px #ffc83d8c}.hud-chip.warn>.val{color:var(--red);text-shadow:0 0 6px #ff3b308c;animation:.5s steps(2,end) infinite blink}.hud-chip.compact{min-width:0;padding:4px 10px}.hud-chip.compact>.val{font-size:var(--hud-value-compact-font-size)}.hud-chip.compact>.lbl{font-size:9px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-2)}::-webkit-scrollbar-thumb{background:var(--fg-dimmer)}::-webkit-scrollbar-thumb:hover{background:var(--fg-dim)}.code-pane{font-family:var(--mono);white-space:pre;counter-reset:lineno;tab-size:4;font-size:20px;line-height:1.6}.code-line{gap:18px;padding:2px 0;display:flex}.code-line .ln{color:var(--fg-dimmer);text-align:right;-webkit-user-select:none;user-select:none;flex:none;width:3ch}.code-line.active .ln{color:var(--green);text-shadow:0 0 6px #39ff1499}.code-line.done .ln{color:var(--fg-dim)}.ch-correct{color:var(--green)}.ch-wrong{color:var(--red);text-shadow:0 0 4px #ff3b3099;background:#ff3b3026}.ch-pending{color:var(--fg-dim)}.ws{opacity:.45}.ws-tab{opacity:.45;text-align:left;width:4ch;display:inline-block}.ch-correct.ws,.ch-correct.ws-tab{opacity:.6}.ch-wrong.ws,.ch-wrong.ws-tab{opacity:1}.ch-cursor{background:var(--green);color:#001000;animation:.8s steps(2,end) infinite cur}.ch-cursor.space,.ch-cursor.tab{box-shadow:inset 0 -3px 0 0 var(--green);color:var(--green);background:0 0;animation:none}.ghost-cursor{vertical-align:-.25em;pointer-events:none;width:0;height:1.35em;display:inline-block;position:relative}.ghost-cursor:after{content:"";background:var(--magenta);width:2px;height:1.1em;animation:.7s steps(2,end) infinite ghost-cur;position:absolute;top:.08em;left:-1px;box-shadow:0 0 8px #ff2bd6f2,0 0 18px #ff2bd661}.ghost-ahead:after{background:var(--cyan);box-shadow:0 0 8px #00f0fff2,0 0 18px #00f0ff61}.ghost-even:after{background:var(--amber);box-shadow:0 0 8px #ffc83dd9,0 0 18px #ffc83d52}@keyframes cur{50%{color:var(--green);background:0 0}}@keyframes ghost-cur{50%{opacity:.25;transform:scaleY(.72)}}.kbd{font-family:var(--mono);border:1px solid var(--fg-dimmer);background:var(--bg-2);color:var(--fg-dim);border-radius:2px;margin:0 2px;padding:2px 6px;font-size:11px;display:inline-block}.card{border:1px solid var(--fg-dimmer);background:linear-gradient(#001e0066,#00000080);padding:16px;position:relative}.card.glow{border-color:var(--green);box-shadow:0 0 0 1px #39ff1433,0 0 24px #39ff142e}.card.glow-c{border-color:var(--cyan);box-shadow:0 0 0 1px #00f0ff33,0 0 24px #00f0ff2e}.card.glow-m{border-color:var(--magenta);box-shadow:0 0 0 1px #ff2bd633,0 0 24px #ff2bd62e}.brk{position:relative}.brk:before,.brk:after,.brk>.brk-c:before,.brk>.brk-c:after{content:"";border:2px solid var(--green);width:14px;height:14px;position:absolute}.brk:before{border-bottom:0;border-right:0;top:-2px;left:-2px}.brk:after{border-bottom:0;border-left:0;top:-2px;right:-2px}.brk>.brk-c:before{border-top:0;border-right:0;bottom:-2px;left:-2px}.brk>.brk-c:after{border-top:0;border-left:0;bottom:-2px;right:-2px}.row{align-items:center;display:flex}.col{flex-direction:column;display:flex}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.record-list-meta{color:var(--fg-dim);font-family:var(--tiny);letter-spacing:var(--track-label);text-align:right;font-size:10px}.record-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));align-items:start;gap:16px;display:grid}.record-load-more{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:4px;display:flex}.record-load-more-note{letter-spacing:var(--track-label)}.record-card-head{grid-template-columns:68px minmax(0,1fr);align-items:center;gap:14px;display:grid}.record-rank-slot{text-align:center;border:1px solid #ffffff1f;justify-content:center;align-items:center;min-width:0;min-height:48px;padding:6px 8px;font-size:34px;line-height:1;display:flex}.record-rank-slot.dim{color:var(--fg-dimmer);text-shadow:none;font-size:28px}.record-title-block{flex-direction:column;gap:4px;min-width:0;display:flex}.record-display-name{color:var(--green);letter-spacing:var(--track-tight);overflow-wrap:anywhere;text-shadow:0 0 8px #39ff1473;font-size:30px;line-height:1}.record-display-name.dim{color:var(--fg-dim);text-shadow:none}.record-stage-line{letter-spacing:var(--track-label);overflow-wrap:anywhere}.record-share-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:100%;display:grid}.record-share-actions .arc-btn.sm{white-space:nowrap;width:100%;min-width:0;padding:10px 8px;font-size:15px}.record-share-status{border:1px solid var(--fg-dimmer);color:var(--green);font-family:var(--pixel);letter-spacing:var(--track-label);text-align:center;text-shadow:0 0 8px #39ff146b;white-space:nowrap;justify-content:center;align-items:center;min-height:42px;padding:10px 8px;font-size:15px;display:flex}.record-local-state{color:var(--fg-dim);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;background:#00000080;border:1px solid #ffffff1f;max-width:100%;padding:8px 10px;overflow:hidden}.record-delete-button.arc-btn.sm{width:100%;min-width:0;margin-top:12px;padding:10px 8px}.record-modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:40;background:#000000b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.record-modal{border-color:#39ff1480;width:min(520px,100%);max-height:calc(100vh - 48px);padding:22px;overflow:auto}.record-modal-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.record-modal-head .arc-btn.sm{min-width:42px;padding:8px 12px}.record-modal-title{letter-spacing:var(--track-tight);margin-top:6px;font-size:clamp(28px,7vw,42px);line-height:1}.record-modal-stage{letter-spacing:var(--track-label);overflow-wrap:anywhere;margin-top:14px}.record-modal-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px;display:grid}.record-modal-copy{letter-spacing:var(--track-label);margin-top:16px;line-height:1.6}.record-modal-input{border:2px solid var(--green);color:var(--green);font-family:var(--pixel);letter-spacing:.08em;text-align:center;text-shadow:0 0 8px #39ff1499;text-transform:uppercase;background:#000;width:100%;height:72px;margin-top:18px;padding:8px 14px;font-size:clamp(36px,10vw,54px);line-height:1;display:block;box-shadow:0 0 16px #39ff1459}.record-modal-error{letter-spacing:var(--track-label);margin-top:10px}.record-modal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.center{justify-content:center;align-items:center;display:flex}.mono{font-family:var(--mono)}.pixel{font-family:var(--pixel)}.tiny{font-family:var(--tiny);letter-spacing:var(--track-tiny);font-size:10px}.dim{color:var(--fg-dim)}.dimmer{color:var(--fg-dimmer)}.up{text-transform:uppercase}.tabular{font-variant-numeric:tabular-nums}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.shake{animation:.14s shake}.megan{font-family:var(--pixel);letter-spacing:.02em;font-size:140px;line-height:.9}@media (width<=720px){.arc-btn{padding:14px 20px;font-size:22px}.hud-chip>.val{font-size:22px}.code-pane{font-size:16px}.megan{font-size:88px}}@media (width<=520px){.record-modal-backdrop{align-items:flex-end;padding:14px}.record-modal{max-height:calc(100vh - 28px);padding:18px}.record-modal-head{gap:10px}.record-modal-metrics,.record-modal-actions{grid-template-columns:1fr}}.hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.attract-bg{pointer-events:none;z-index:0;color:var(--fg-dimmer);opacity:.55;position:absolute;inset:0;overflow:hidden}.attract-row{font-family:var(--mono);white-space:nowrap;will-change:transform;font-size:13px;line-height:1.6}.rank-1{color:var(--gold);text-shadow:0 0 6px #ffd84a80}.rank-2{color:var(--silver);text-shadow:0 0 4px #d6dce666}.rank-3{color:var(--bronze);text-shadow:0 0 4px #d18a4a66}button:focus,input:focus{outline:none}button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
