.duel-overlay{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:#13181b;color:#eef1ec;font:14px/1.6 Arial,Malgun Gothic,sans-serif}.duel-overlay[hidden]{display:none}.duel-overlay>header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:none;margin:0;padding:12px 20px;border:0;border-bottom:1px solid #44534a;background:#1d2522}.duel-overlay h2{font-size:16px;margin:0}.duel-time{font:600 22px/1.2 ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}.duel-overlay button{min-height:40px;font-size:13px}.duel-viewport{position:relative;flex:1;min-height:0;overflow:hidden}.duel-canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.duel-overlay .duel-canvas:focus-visible{outline:2px solid #c8dfca;outline-offset:-3px}.duel-hud{position:absolute;top:16px;left:20px;right:20px;display:flex;justify-content:space-between;gap:20px;pointer-events:none}.duel-player-info{max-width:42%;padding:8px 12px;border:1px solid #56665b;background:#17201aeb;border-radius:5px;color:#e0eddf}.duel-player-info.enemy{background:#291c20eb;border-color:#7d5d64;color:#f1dce0;text-align:right}.duel-player-info strong{display:block;font-size:13px}.duel-player-info span{display:block;font-size:12px}.duel-player-info progress{display:block;width:150px;max-width:100%;height:5px;margin-top:7px;accent-color:#bad4b5}.duel-player-info.enemy progress{accent-color:#d6a5ae}.duel-crosshair{position:absolute;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 1px 2px #000)}.duel-crosshair:before,.duel-crosshair:after{content:"";position:absolute;background:#e4eee4}.duel-crosshair:before{left:8px;top:0;width:2px;height:18px}.duel-crosshair:after{left:0;top:8px;width:18px;height:2px}.duel-countdown{position:absolute;left:50%;top:28%;transform:translate(-50%);font-size:46px;font-weight:700;color:#f2e5bf;text-shadow:0 2px 10px #000;pointer-events:none}.duel-start-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 32px));padding:24px;border:1px solid #657a68;border-radius:8px;background:#1c2521f5;text-align:center;box-shadow:0 14px 38px #0005}.duel-start-panel h3{font-size:18px;margin:0 0 12px}.duel-start-panel p{font-size:13px;line-height:1.8;color:#bdcdbf;margin:12px 0}.duel-start-panel button{min-width:140px;background:#c4d3c2;color:#19221a}.duel-status{position:absolute;left:50%;bottom:18px;transform:translate(-50%);max-width:calc(100% - 32px);padding:8px 16px;background:#17201be8;border:1px solid #526856;border-radius:5px;font-size:13px;text-align:center;pointer-events:none}.duel-result{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#10171399;pointer-events:none}.duel-result span{max-width:80%;padding:20px 28px;background:#25362a;border:1px solid #b0c4a9;border-radius:7px;font-size:24px;text-align:center}.duel-result[hidden],.duel-start-panel[hidden],.duel-countdown[hidden],.duel-crosshair[hidden]{display:none}.duel-overlay>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:none;margin:0;padding:10px 20px;border-top:1px solid #44534a;font-size:12px;color:#b6c6bb}.duel-touch{position:absolute;left:16px;right:16px;bottom:20px;display:none;align-items:end;justify-content:space-between;gap:24px;pointer-events:none}.duel-pad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:4px;pointer-events:auto}.duel-pad button,.duel-action-pad button{padding:4px;min-width:44px;min-height:44px;background:#24382fdd;border-color:#8caa91;touch-action:none;user-select:none}.duel-pad [data-key=KeyW]{grid-column:2}.duel-pad [data-key=KeyA]{grid-column:1}.duel-pad [data-key=KeyS]{grid-column:2}.duel-pad [data-key=KeyD]{grid-column:3}.duel-action-pad{display:flex;gap:8px;pointer-events:auto}.duel-action-pad button{min-width:58px;min-height:58px}.duel-touch button:active{background:#69856b}.duel-controls-help{margin:0;font-size:12px;color:#b6c6bb}.duel-options{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #3d4641}.duel-options label{font-size:12px;color:#c0cec3}.duel-options select{width:100%;font-size:13px}.duel-options p{margin:0;font-size:12px;color:#b1c3b6}@media(pointer:coarse),(max-width:760px){.duel-touch{display:flex}.duel-status{bottom:130px}.duel-overlay>header{padding:10px 12px;flex-wrap:nowrap;gap:8px}.duel-overlay h2{font-size:14px}.duel-time{font-size:20px}.duel-overlay>header button{font-size:12px;min-height:44px;padding-inline:8px}.duel-hud{top:10px;left:10px;right:10px;gap:10px}.duel-player-info{padding:6px 8px;max-width:47%}.duel-player-info strong{font-size:12px}.duel-player-info span{font-size:11px}.duel-player-info progress{width:110px}.duel-overlay>footer{padding:8px 12px;font-size:11px}.duel-controls-help{font-size:11px}.duel-start-panel{padding:18px}.duel-options select{min-height:44px;font-size:16px}.duel-countdown{top:32%;font-size:38px}.duel-result span{font-size:20px}}@media(prefers-reduced-motion:reduce){.duel-overlay *{animation:none!important;transition:none!important}}.duel-map-label{position:absolute;left:20px;bottom:20px;font-size:11px;color:#d5ded5;background:#17201be8;padding:4px 8px;border-radius:3px;pointer-events:none}@media(pointer:coarse),(max-width:760px){.duel-map-label{left:10px;bottom:auto;top:90px;font-size:10px}}.duel-intro-art{display:block;width:calc(100% + 48px);height:126px;object-fit:cover;object-position:50% 61%;margin:-24px -24px 16px;border-radius:7px 7px 0 0;opacity:.9}.duel-kicker{display:block;font:600 10px/1.4 ui-monospace,Consolas,monospace;letter-spacing:.22em;color:#d0bf91;margin-bottom:7px}.duel-start-panel{max-height:calc(100% - 24px);overflow:auto;animation:duel-panel-enter .36s ease-out both}.duel-start-panel h3{animation:duel-type-enter .5s cubic-bezier(.2,.8,.2,1) both}.duel-count-pop{animation:duel-count-enter .38s cubic-bezier(.16,1,.3,1) both}.duel-result-card{position:relative;width:min(560px,calc(100% - 32px));padding:26px 28px;background:#1e2b24f2;border-block:1px solid #a9b797;text-align:center;overflow:hidden;animation:duel-result-enter .42s cubic-bezier(.16,1,.3,1) both}.duel-result .duel-result-type{display:block;color:#d5c18d;font:800 clamp(32px,6vw,64px)/1.05 Arial,sans-serif;letter-spacing:.08em;animation:duel-type-enter .56s cubic-bezier(.16,1,.3,1) both}.duel-result .duel-result-card>span{display:block;max-width:none;background:none;border:0;border-radius:0;padding:12px 0 18px;font-size:16px;color:#e7eee3}.duel-result-line{display:block;height:2px;width:70%;margin:auto;background:#c9b77f;transform-origin:left;animation:duel-line-enter .65s ease-out both}.duel-overlay[data-result=d] .duel-result-type{color:#e4b7bb}.duel-overlay[data-result=draw] .duel-result-type{color:#c2ccd1}@keyframes duel-panel-enter{0%{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur(0)}}@keyframes duel-type-enter{0%{opacity:0;transform:translateY(12px);letter-spacing:.22em}to{opacity:1;transform:translateY(0)}}@keyframes duel-count-enter{0%{opacity:0;transform:translate(-50%) scale(1.4)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes duel-result-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes duel-line-enter{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(max-width:760px){.duel-intro-art{width:calc(100% + 36px);height:104px;margin:-18px -18px 12px}.duel-result-card{padding:22px 16px}.duel-result .duel-result-card>span{font-size:14px}.duel-result .duel-result-type{font-size:36px}}@media(prefers-reduced-motion:reduce){.duel-start-panel,.duel-start-panel h3,.duel-count-pop,.duel-result-card,.duel-result-type,.duel-result-line{animation:none!important;filter:none!important}}
