@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+KR:wght@400;500;700&family=Orbitron:wght@500;700&display=swap";:root{--bg:#040711;--bg-gradient:linear-gradient(180deg, #040711 0%, #071224 46%, #02050d 100%);--bg-elevated:#080f1cd6;--bg-panel:#0a1222e0;--line:#75aeff2e;--line-strong:#75aeff59;--text:#f4fbff;--text-dim:#e4f0ffb8;--accent-cyan:#1cd8ff;--accent-amber:#f7a931;--accent-rose:#ff6474;--shadow:0 24px 80px #0000006b;--radius-xl:28px;--radius-lg:20px;--radius-md:14px;--grid-gap:clamp(1rem, 2vw, 1.5rem);--font-display:"Orbitron", "IBM Plex Sans KR", sans-serif;--font-body:"IBM Plex Sans KR", sans-serif;--hud-bg:linear-gradient(180deg, #050c18eb, #070e1cd1)}[data-theme=light]{--bg:#f0f4f8;--bg-gradient:linear-gradient(180deg, #e0e8f0 0%, #f4f7f9 46%, #d8e2ea 100%);--bg-elevated:#ffffffe6;--bg-panel:#fffffff2;--line:#0000001a;--line-strong:#0003;--text:#1a202c;--text-dim:#4a5568;--accent-cyan:#0077b6;--accent-amber:#dd6b20;--accent-rose:#e53e3e;--shadow:0 10px 30px #0000001a;--hud-bg:linear-gradient(180deg, #fffffff2, #f0f4f8e6)}[data-theme=neon]{--bg:#090014;--bg-gradient:linear-gradient(180deg, #0f0022 0%, #170033 46%, #05000a 100%);--bg-elevated:#140028d9;--bg-panel:#1e003ce6;--line:#ff00ff4d;--line-strong:#00ffff80;--text:#fff;--text-dim:#f0a8ff;--accent-cyan:#0ff;--accent-amber:#f0f;--accent-rose:#f05;--shadow:0 0 40px #ff00ff4d;--hud-bg:linear-gradient(180deg, #190032e6, #0f001ed9)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg-gradient);min-height:100vh;color:var(--text);font-family:var(--font-body)}body:before{content:"";opacity:.24;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:32px 32px;position:fixed;top:0;bottom:0;left:0;right:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{flex-direction:column;min-height:100vh;padding:clamp(.75rem,1.5vw,1.4rem);display:flex}.hud-bar,.viewport-panel,.hint-panel,.fallback-panel{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--bg-panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:relative;overflow:hidden}.hud-bar:after,.hint-panel:after,.viewport-panel:after,.fallback-panel:after{border-radius:inherit;content:"";pointer-events:none;border:1px solid #ffffff08;position:absolute;top:0;bottom:0;left:0;right:0}.hud-title-row h1,.hint-block h2,.modal-header h2,.fallback-panel h1{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(1.4rem,2vw,2rem)}.modal-description,.fallback-panel p,.fallback-list,.hint-list,.settings-row p,.result-message p{color:var(--text-dim);line-height:1.65}.hud-bar{border-color:var(--line-strong);background:var(--hud-bg);width:min(1180px,100%);box-shadow:var(--shadow);pointer-events:auto;gap:1.1rem;padding:1rem 1.15rem;display:grid}.hud-brand{gap:.75rem;display:grid}.hud-brandline{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.hud-title-row h1{letter-spacing:.08em;text-shadow:0 0 28px #1cd8ff26;font-size:clamp(2rem,4.2vw,3.35rem)}.hud-subtitle{color:#e5efffb8;max-width:52ch;margin:0;font-size:.96rem;line-height:1.6}.hud-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;display:grid}.hud-stat,.result-card,.hint-metric{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-elevated);padding:.92rem 1rem}.hud-stat strong,.result-card strong,.hint-metric strong{margin-top:.35rem;font-size:1.05rem;display:block}.hud-stat span,.result-card span,.hint-metric span{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.hud-actions{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.hud-bottom-row{gap:1rem;display:grid}.hud-button-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:inline-flex}.difficulty-switch{border:1px solid var(--line);background:var(--bg-panel);border-radius:999px;flex-wrap:wrap;gap:.35rem;padding:.3rem;display:inline-flex}.difficulty-pill,.hud-button,.modal-close,.toggle-button{border:1px solid var(--line);background:var(--bg-elevated);min-height:44px;color:var(--text);transition:transform var(--ui-motion,.18s) ease, border-color var(--ui-motion,.18s) ease, box-shadow var(--ui-motion,.18s) ease, opacity var(--ui-motion,.18s) ease;border-radius:999px;padding:.72rem 1rem}.difficulty-pill.is-active,.toggle-button.is-on{border-color:var(--accent-cyan);box-shadow:0 10px 24px #1cd8ff29}.hud-button.ghost,.modal-close,.toggle-button{border-color:var(--line-strong)}.difficulty-pill:hover,.hud-button:hover,.modal-close:hover,.toggle-button:hover,.action-button:hover{border-color:var(--accent-cyan);transform:translateY(-1px);box-shadow:0 10px 24px #1cd8ff1f}.hud-status{text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line);border-radius:999px;align-items:center;min-height:32px;padding:.42rem .88rem;font-size:.78rem;font-weight:700;display:inline-flex}.hud-status-idle{background:var(--bg-elevated);color:var(--text-dim)}.hud-status-playing{background:var(--bg-elevated);color:var(--accent-cyan)}.hud-status-won{background:var(--bg-elevated);color:#34d399}.hud-status-lost{background:var(--bg-elevated);color:var(--accent-rose)}.status-label,.eyebrow{color:var(--accent-cyan);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:700}.game-stage{isolation:isolate;min-height:calc(100vh - clamp(1.5rem,3vw,2.8rem));display:block}.stage-atmosphere,.stage-gridlines,.stage-frame{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.stage-atmosphere{z-index:0;background:radial-gradient(circle at 50% 22%,#1cd8ff2e,#0000 34%),radial-gradient(circle at 12% 86%,#f7a9311f,#0000 24%),radial-gradient(circle at 88% 16%,#ff64741f,#0000 22%)}[data-theme=light] .stage-atmosphere{background:radial-gradient(circle at 50% 22%,#0077b626,#0000 34%),radial-gradient(circle at 12% 86%,#dd6b201a,#0000 24%),radial-gradient(circle at 88% 16%,#e53e3e1a,#0000 22%)}[data-theme=neon] .stage-atmosphere{background:radial-gradient(circle at 50% 22%,#00ffff40,#0000 34%),radial-gradient(circle at 12% 86%,#f0f3,#0000 24%),radial-gradient(circle at 88% 16%,#f053,#0000 22%)}.stage-gridlines{z-index:0;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:38px 38px;-webkit-mask-image:linear-gradient(#0000,#000000b3 15%,#000 40%,#000000a6 85%,#0000);mask-image:linear-gradient(#0000,#000000b3 15%,#000 40%,#000000a6 85%,#0000)}[data-theme=light] .stage-gridlines{background-image:linear-gradient(#0000000d 1px,#0000 1px),linear-gradient(90deg,#0000000d 1px,#0000 1px)}[data-theme=neon] .stage-gridlines{background-image:linear-gradient(#ff00ff1a 1px,#0000 1px),linear-gradient(90deg,#ff00ff1a 1px,#0000 1px)}.stage-frame{z-index:2;border:1px solid var(--line);border-radius:calc(var(--radius-xl) - 8px);top:.9rem;bottom:.9rem;left:.9rem;right:.9rem;box-shadow:inset 0 0 0 1px #ffffff05,inset 0 -120px 160px #0003}[data-theme=light] .stage-frame{box-shadow:inset 0 0 0 1px #0000000d,inset 0 -120px 160px #ffffff4d}.stage-canvas{z-index:1;position:absolute;top:0;bottom:0;left:0;right:0}.stage-overlay{z-index:3;pointer-events:none;flex-direction:column;justify-content:space-between;gap:1.2rem;min-height:calc(100vh - clamp(1.5rem,3vw,2.8rem));padding:clamp(1rem,2vw,1.5rem);display:flex;position:relative}.canvas-shell,.canvas-shell canvas{width:100%;height:100%;display:block}.hint-panel{pointer-events:auto;border-color:var(--line-strong);background:var(--bg-panel);align-content:start;gap:1.1rem;width:min(380px,100%);padding:1.15rem;display:grid}.hint-block{gap:.75rem;display:grid}.hint-block.wide{border-top:1px solid var(--line);grid-column:1/-1;margin-top:.5rem;padding-top:1rem}.hint-copy{color:var(--text-dim);margin:0;line-height:1.65}.hint-metrics,.result-grid,.help-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.hint-list{margin:0;padding-left:1.15rem}.hint-list.compact,.hint-list.spacious{gap:.4rem;display:grid}.stage-footer{pointer-events:none;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.notice-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-panel);width:min(320px,100%);box-shadow:var(--shadow);pointer-events:auto;gap:.75rem;padding:1rem;display:grid}.notice-list{gap:.75rem;display:grid}.notice-card{border:1px solid var(--line);background:var(--bg-elevated);border-radius:16px;padding:.85rem .9rem}.notice-card span{color:var(--accent-amber);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:700;display:block}.notice-card strong{margin-top:.3rem;font-size:1.05rem;display:block}.notice-card p{color:var(--text-dim);margin:.35rem 0 0;line-height:1.55}.wide{width:100%}.control-actions{flex-wrap:wrap;gap:.8rem;display:flex}.action-button{border:1px solid var(--line);background:var(--bg-elevated);min-width:120px;color:var(--text);border-radius:999px;padding:.85rem 1.15rem;transition:transform .18s,border-color .18s,box-shadow .18s}.action-button.ghost{border-color:var(--line-strong)}.action-button:focus-visible{outline:2px solid var(--accent-amber);outline-offset:3px}.hud-button:focus-visible{outline:2px solid var(--accent-amber);outline-offset:3px}.difficulty-pill:focus-visible{outline:2px solid var(--accent-amber);outline-offset:3px}.modal-close:focus-visible{outline:2px solid var(--accent-amber);outline-offset:3px}.toggle-button:focus-visible{outline:2px solid var(--accent-amber);outline-offset:3px}.settings-slider:focus-visible{outline:2px solid var(--accent-amber);outline-offset:3px}.modal-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#0000008c;place-items:center;padding:1.5rem;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal-card{border:1px solid var(--line-strong);border-radius:var(--radius-xl);background:var(--bg-panel);width:min(720px,100%);box-shadow:var(--shadow);padding:1.25rem}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.modal-header h2{font-size:clamp(1.3rem,2vw,1.7rem)}.modal-description{margin:.35rem 0 0}.result-body,.settings-body,.help-body{gap:1rem;margin-top:1rem;display:grid}.result-message{border:1px solid var(--line);background:var(--bg-elevated);border-radius:16px;padding:1rem}.modal-actions{flex-wrap:wrap;gap:.75rem;display:flex}.hud-progress-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-panel);gap:.65rem;min-width:min(100%,280px);padding:.95rem 1rem;display:grid}.hud-progress-copy{justify-content:space-between;align-items:center;gap:1rem;display:flex}.hud-progress-copy span{color:var(--text-dim);letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:700}.hud-progress-copy strong{font-size:1rem}.hud-progress-track{background:var(--line);border-radius:999px;height:10px;position:relative;overflow:hidden}.hud-progress-fill{border-radius:inherit;background:var(--accent-cyan);height:100%;box-shadow:0 0 18px var(--accent-cyan)}.settings-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.settings-note{border:1px solid var(--line);background:var(--bg-elevated);color:var(--accent-amber);border-radius:16px;padding:.9rem 1rem;line-height:1.6}.settings-row.stacked{flex-direction:column;align-items:stretch}.settings-row strong{display:block}.settings-row p{margin:.25rem 0 0}.slider-row{align-items:center;gap:1rem;display:flex}.settings-slider{width:100%}kbd{border:1px solid var(--line);background:var(--bg-elevated);color:var(--text);border-radius:8px;padding:.15rem .4rem;font-size:.88em}.fallback-screen{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.fallback-panel{width:min(640px,100%);padding:1.75rem}.fallback-code{border:1px solid var(--line);color:var(--accent-rose);background:#0000003d;border-radius:12px;margin-top:1rem;padding:.85rem 1rem;display:block;overflow-x:auto}.fallback-list{margin:1rem 0 0;padding-left:1.2rem}@media (min-width:1100px){.hud-bar{grid-template-columns:minmax(320px,1.15fr) minmax(320px,.95fr);grid-template-areas:"brand stats""bottom bottom";align-items:end}.hud-brand{grid-area:brand}.hud-stats{grid-area:stats;align-self:stretch}.hud-bottom-row{grid-area:bottom;grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:end}.hud-actions{justify-content:space-between}.stage-footer{align-items:flex-end}}@media (max-width:1099px){.stage-overlay{min-height:calc(100vh - 1.5rem)}.hud-stats,.result-grid,.help-grid,.hint-metrics{grid-template-columns:1fr}.stage-footer{flex-direction:column;align-items:stretch}.hint-panel,.notice-panel,.hud-bar{width:100%}.hud-bottom-row{grid-template-columns:1fr}.hud-actions,.hud-button-row{width:100%}.modal-header,.settings-row{flex-direction:column;align-items:stretch}}@media (max-width:720px){.app-shell{padding:.5rem}.stage-overlay{padding:.75rem}.hud-title-row h1{font-size:clamp(1.55rem,8vw,2.35rem)}.hud-subtitle{font-size:.88rem}}.app-shell[data-motion=low]{--ui-motion:80ms}.app-shell[data-motion=medium]{--ui-motion:.18s}.app-shell[data-motion=high]{--ui-motion:.28s}@media (prefers-reduced-motion:reduce){.app-shell{--ui-motion:0s}}.stage-header{pointer-events:none;flex-direction:column;gap:.5rem;width:min(1180px,100%);margin:0 auto;display:flex}.hud-bar.compact{border-radius:var(--radius-lg);pointer-events:auto;flex-direction:column;gap:0;width:100%;padding:.5rem 1rem;display:flex}.hud-top-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.hud-brand-compact{align-items:center;gap:.75rem;display:flex}.hud-brand-compact h1{font-family:var(--font-display);letter-spacing:.04em;text-shadow:0 0 20px var(--accent-cyan);margin:0;font-size:clamp(1rem,1.5vw,1.4rem)}.hud-stats-compact{align-items:center;gap:1rem;display:flex}.hud-stat-mini{align-items:center;gap:.4rem;font-size:.85rem;display:flex}.hud-stat-mini span{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.hud-stat-mini strong{font-size:.95rem}.hud-actions-compact{align-items:center;gap:.5rem;display:flex}.difficulty-switch.mini{padding:.15rem}.difficulty-pill.mini,.hud-button.mini{min-height:32px;padding:.4rem .75rem;font-size:.8rem}.hud-button.ghost.mini{padding:.4rem .5rem}.hud-progress-track.mini{background:0 0;border-radius:0;height:3px;position:absolute;bottom:0;left:0;right:0}.control-hint-compact{background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:.4rem 1rem;font-size:.8rem;display:flex;box-shadow:0 4px 12px #0003}.control-hint-compact strong{color:var(--accent-cyan)}.hint-mission,.hint-controls{color:var(--text-dim)}.text-button{color:var(--accent-amber);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:600;-webkit-text-decoration:underline #f7a93166;text-decoration:underline #f7a93166}.text-button:hover{color:#ffc163}.camera-controls-panel{background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);z-index:10;pointer-events:auto;flex-direction:column;gap:.5rem;padding:.5rem;display:flex;position:absolute;bottom:1.5rem;right:1.5rem}.camera-controls-row{justify-content:center;gap:.35rem;display:flex}.camera-controls-divider{background:var(--line);height:1px;margin:.2rem 0}.camera-button{border:1px solid var(--line);background:var(--bg-elevated);width:36px;height:36px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;transition:all .15s;display:flex}.camera-button.reset{width:auto;padding:0 .75rem;font-size:.85rem;font-weight:600}.camera-button:hover:not(:disabled){background:var(--line-strong);border-color:var(--accent-cyan);transform:translateY(-1px)}.camera-button:active:not(:disabled){transform:translateY(1px)}.camera-button:disabled{opacity:.4;cursor:not-allowed}@media (max-width:720px){.camera-controls-panel{transform-origin:100% 100%;bottom:.75rem;right:.75rem;transform:scale(.9)}}@media (max-width:767px){.app-shell{padding:.25rem}.hud-bar.compact{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0fbf;padding:.4rem .75rem}.hud-top-row{gap:.5rem}.hud-brand-compact h1{display:none}.hud-status{padding:.2rem .5rem;font-size:.7rem}.hud-stats-compact{gap:.5rem}.hud-stat-mini{gap:.25rem}.hud-stat-mini span{font-size:.65rem}.hud-stat-mini strong{font-size:.85rem}.difficulty-switch.mini{display:none}.hud-actions-compact{gap:.35rem}.hud-button.mini,.hud-button.ghost.mini{min-width:36px;min-height:36px;padding:.5rem;font-size:1rem}.hud-progress-track.mini{height:2px}.control-hint-compact{display:none}.stage-overlay{padding:.5rem}.stage-header{gap:.35rem}.stage-footer{padding:.5rem;position:absolute;bottom:0;left:0;right:0}.notice-panel{padding:.5rem .75rem;font-size:.75rem}.notice-card{padding:.4rem .6rem}.notice-card span{font-size:.65rem}.notice-card strong{font-size:.75rem}.notice-card p{font-size:.7rem}.camera-controls-panel{transform:scale(.8)}.app-shell{padding-top:max(.25rem, env(safe-area-inset-top));padding-bottom:max(.25rem, env(safe-area-inset-bottom));padding-left:max(.25rem, env(safe-area-inset-left));padding-right:max(.25rem, env(safe-area-inset-right))}.stage-header{padding-top:env(safe-area-inset-top)}.stage-footer{padding-bottom:env(safe-area-inset-bottom)}.modal-backdrop{align-items:stretch;padding:0}.modal-card{border:none;border-radius:0;flex-direction:column;width:100%;height:100%;max-height:100vh;padding:1rem;display:flex;overflow-y:auto}.modal-header{border-bottom:1px solid var(--line);flex-shrink:0;padding-bottom:.75rem}.modal-header h2{font-size:1.3rem}.modal-close{min-width:44px;min-height:44px;padding:.75rem}.result-body,.settings-body,.help-body{flex:1;margin-top:.75rem;overflow-y:auto}.settings-row{min-height:52px;padding:.75rem 0}.result-message{text-align:center;padding:1.5rem 1rem}.result-message h3{margin-bottom:.75rem;font-size:1.8rem}.result-message p{font-size:1rem}.modal-actions{gap:.5rem}.modal-actions button{min-height:52px;padding:.85rem 1.25rem;font-size:.95rem}.result-grid{grid-template-columns:1fr;gap:.75rem}.result-card{padding:.85rem 1rem}.hud-progress-panel{padding:.75rem .85rem}.modal-card{padding-top:max(1rem, env(safe-area-inset-top));padding-bottom:max(1rem, env(safe-area-inset-bottom));padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right))}}
