@import"https://fonts.googleapis.com/css2?family=Gowun+Dodum&family=Nanum+Myeongjo:wght@700;800&display=swap";:root{--ink: #eef5f0;--muted: #aebeb7;--canvas: #101114;--surface: #202228;--surface-raised: #2a2c32;--line: #555963;--accent: #f0bb68;--danger: #e56560;--success: #9bcfae;font-family:Gowun Dodum,system-ui,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#3a3d45,#202229 48%,#101114)}button{font:inherit}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:20px 0 56px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 0 30px}.brand{color:#f7d491;font-family:Nanum Myeongjo,serif;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:800;text-decoration:none}.site-header p{margin:0;color:var(--muted);font-size:.92rem}.section-heading{text-align:center;margin:22px auto 30px}.section-heading span,.target-panel>div>span,#result-kicker{color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.2em}h1,h2,p{margin-top:0}h1,h2{font-family:Nanum Myeongjo,serif}.section-heading h1{margin:6px 0 10px;color:var(--ink);font-size:clamp(2rem,7vw,3.8rem)}.section-heading p{color:var(--muted)}.stage-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.stage-card{min-height:175px;border:1px solid rgba(207,214,224,.26);border-radius:20px;padding:16px;color:var(--ink);background:linear-gradient(145deg,#121317e6,#2f323abf),linear-gradient(145deg,color-mix(in srgb,var(--stage-color) 54%,#282a30),var(--stage-color));box-shadow:0 10px 24px #0000004d;text-align:left;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.stage-card:hover{transform:translateY(-3px);border-color:#f0bb68b3;box-shadow:0 16px 28px #00000052}.stage-card.is-locked{filter:grayscale(.8);cursor:not-allowed;opacity:.65}.stage-card__number{display:block;color:#d6e5df;opacity:.8;font-size:.72rem;letter-spacing:.14em}.stage-card strong{display:block;margin-top:28px;font-size:1.25rem}.stage-card small{display:block;margin:4px 0 14px;color:#c8d7d0;line-height:1.3}.stage-card em{color:var(--accent);font-size:.72rem;font-style:normal}.game-screen{width:100%}.game-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-bottom:14px}.text-button{width:max-content;border:0;background:transparent;color:#c6cad3;cursor:pointer;padding:10px 0}.text-button:hover{color:var(--accent)}.stage-title-wrap{text-align:center}.stage-title-wrap span{display:block;color:var(--accent);font-size:.68rem;font-weight:800;letter-spacing:.15em}.stage-title-wrap strong{color:var(--ink);font-family:Nanum Myeongjo,serif;font-size:1.1rem}.timer{justify-self:end;min-width:84px;border-radius:100px;background:var(--accent);color:#14211e;padding:10px 14px;font-variant-numeric:tabular-nums;font-weight:800;text-align:center}.timer.is-danger{background:var(--danger);color:#fff;animation:pulse .8s ease infinite alternate}.game-feedback{min-height:1.5em;margin:-4px 0 10px;color:var(--muted);font-size:.9rem;font-weight:700;text-align:center}.game-feedback:empty{visibility:hidden}.game-feedback.success{color:var(--success)}.game-feedback.miss{color:#ff9b94}.play-area{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px;align-items:start}.game-board{position:relative;width:calc(80vh - 176px)!important;height:calc(100vh - 220px)!important;max-width:100%;max-height:760px;min-height:0;justify-self:center}.game-canvas{position:relative;width:100%!important;height:100%!important;overflow:hidden;border:8px solid #51555f;border-radius:24px;background:#15161a;box-shadow:0 18px 40px #00000075;touch-action:manipulation}.game-canvas canvas{display:block;width:100%!important;height:100%!important;aspect-ratio:4 / 5}.qa-overlay{position:absolute;inset:0;z-index:2;width:100%;height:100%;cursor:crosshair}.qa-overlay__area{fill:#49c5b629;stroke:#49c5b6;stroke-width:5;pointer-events:all}.qa-overlay__area.is-selected{fill:#f0bb6833;stroke:#ffd166;stroke-width:8}.qa-overlay__anchor{fill:#ffd166;stroke:#1b1c22;stroke-width:5;pointer-events:all}.qa-overlay__handle{fill:#ffd166;stroke:#211b12;stroke-width:5;cursor:nwse-resize;pointer-events:all}.qa-overlay__handle:hover{fill:#fff7d0;stroke-width:7}.qa-overlay__label{fill:#fff9dc;font:600 32px system-ui;paint-order:stroke;stroke:#16171c;stroke-width:9;stroke-linejoin:round}.target-panel{position:sticky;top:16px;border:1px solid var(--line);border-radius:20px;background:#1f2127f0;padding:18px;box-shadow:0 10px 24px #0000004d}.target-panel h2{margin:4px 0 14px;color:var(--ink);font-size:1.25rem}.target-list{display:grid;gap:7px;margin:0;padding:0;list-style:none}.target-list li{display:grid;grid-template-columns:32px 1fr 18px;align-items:center;gap:7px;min-height:42px;padding:4px 7px;border-radius:9px;background:#343740;color:#e8eaf0;font-size:.84rem}.target-icon{position:relative;display:inline-grid;width:30px;height:30px;place-items:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--target-color) 66%,white);border-radius:8px;background:color-mix(in srgb,var(--target-color) 35%,#25272d);box-shadow:inset 0 0 0 1px #00000024;font-size:1.05rem;line-height:1}.target-icon--beret,.target-icon--watch{font-size:0}.target-icon--beret:before{width:21px;height:14px;border:1px solid #ffd0cc;border-radius:65% 48% 52% 46%;background:linear-gradient(135deg,#a72d35,var(--target-color));box-shadow:inset -4px -2px #380b1147;content:"";transform:rotate(-12deg) translateY(3px)}.target-icon--beret:after{position:absolute;top:4px;left:15px;width:3px;height:7px;border-radius:3px;background:#f18a83;content:"";transform:rotate(17deg)}.target-icon--watch:before{width:15px;height:15px;border:2px solid #f0c96d;border-radius:50%;background:#fcf1c9;box-shadow:inset 0 0 0 2px #8a642e;content:""}.target-icon--watch:after{position:absolute;top:3px;left:17px;width:7px;height:7px;border:2px solid #f0c96d;border-bottom:0;border-left:0;border-radius:0 8px 0 0;content:"";transform:rotate(-38deg)}.target-list li.is-found{color:var(--success);text-decoration:line-through;opacity:.82}.target-list li.is-selected{outline:2px solid var(--accent);background:#424652}.target-list b{color:var(--danger)}.tap-hint{margin:16px 0 0;color:var(--muted);font-size:.75rem;line-height:1.5}.qa-editor{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.qa-editor>span{display:block;color:var(--accent);font-size:.66rem;font-weight:800;letter-spacing:.14em}.qa-editor>strong{display:block;margin-top:4px;color:#fff9dc;font-size:.9rem}.qa-editor>p{margin:6px 0 10px;color:var(--muted);font-size:.7rem;line-height:1.4}.qa-editor__fields{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.qa-editor__fields label{color:var(--muted);font-size:.68rem}.qa-editor__fields input{width:100%;margin-top:3px;border:1px solid #5f6571;border-radius:6px;padding:5px;background:#17181d;color:var(--ink);font:inherit;font-size:.78rem}.qa-editor__copy,.qa-editor__reset{width:100%;margin-top:8px;border:1px solid #587870;border-radius:7px;padding:7px;background:#263a37;color:#e7f5ef;cursor:pointer;font:inherit;font-size:.74rem}.qa-editor__reset{border-color:#655f68;background:#302d34;color:#ded9df}.result-modal{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:20px;background:#010809bf}.result-card{width:min(420px,100%);border:1px solid var(--line);border-radius:28px;padding:34px;background:var(--surface);box-shadow:0 20px 70px #00000080;text-align:center}.result-card h2{margin:8px 0 10px;color:var(--ink);font-size:1.8rem}.result-card p{color:var(--muted);line-height:1.6}.result-actions{display:flex;gap:10px;justify-content:center;margin-top:24px}.primary-button,.secondary-button{min-height:46px;border-radius:100px;padding:0 18px;cursor:pointer}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#14211e;font-weight:800}.secondary-button{border:1px solid #53766d;background:var(--surface-raised);color:#e5f0e9}@keyframes pulse{to{transform:scale(1.04)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(min-width:821px){body.is-playing{overflow:hidden}body.is-playing .app-shell{padding-bottom:0}}@media(max-width:820px){.stage-grid{grid-template-columns:repeat(2,1fr)}.play-area{grid-template-columns:1fr}.target-panel{position:static}.target-list{grid-template-columns:repeat(2,1fr)}.game-board{width:calc(80vh - 216px)!important;height:calc(100vh - 270px)!important;max-width:100%;max-height:680px}.site-header{align-items:flex-start;flex-direction:column;gap:7px;padding-bottom:16px}}@media(max-width:480px){.app-shell{width:min(100% - 20px,1180px);padding-top:12px}.stage-card{min-height:150px;padding:13px}.stage-card strong{margin-top:17px}.game-topbar{grid-template-columns:1fr auto}.stage-title-wrap{grid-column:1 / -1;grid-row:1}.text-button{grid-column:1;grid-row:2}.timer{grid-column:2;grid-row:2}.game-canvas{border-width:5px;border-radius:18px}.target-panel{padding:14px}.target-list{gap:5px}.target-list li{font-size:.78rem}.result-card{padding:28px 20px}}
