[hidden]{display:none!important}.duel-main{max-width:1120px;margin:auto;padding:48px 24px}.duel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.duel-heading h1{font-size:clamp(40px,6vw,66px);margin:12px 0}.duel-heading h1 em{color:#c45773;font-style:normal}.connection{font-size:13px;padding:10px 16px;border:1px solid #37415b;border-radius:30px;white-space:nowrap}.duel-notice{background:#451e32;border:1px solid #b65a75;padding:16px;border-radius:12px;margin:16px 0}.lobby-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:24px}.lobby-panel{padding:30px}.lobby-panel label{display:block;font-size:13px;margin:20px 0 8px}.duel-field{box-sizing:border-box;width:100%;background:#11182b;color:#eef1ff;border:1px solid #414b67;border-radius:10px;padding:15px;font:inherit;outline:none}.duel-field:focus{border-color:#88c7ff;box-shadow:0 0 0 3px #88c7ff22}.duel-main button{cursor:pointer;border-radius:10px;padding:13px 18px;background:#26314c;border:1px solid #46516d;color:#fff;font:inherit;font-weight:600}.duel-main button.primary{background:#913751;border-color:#b04e69}.duel-main button:disabled{opacity:.45;cursor:not-allowed}.full{width:100%;margin-top:18px;display:flex;justify-content:space-between}.or-line{border-top:1px solid #354058;text-align:center;margin:30px 0 20px}.or-line span{position:relative;top:-12px;background:#182136;padding:0 10px;font-size:12px;color:#abb7cf}.join-row{display:flex;gap:10px}.join-row input{min-width:0;text-transform:uppercase;letter-spacing:3px}.join-row button{white-space:nowrap}.tiny{font-size:12px;line-height:1.7;color:#aeb8cf}.arena-preview{position:relative;overflow:hidden;min-height:450px;border:1px solid #3f4563;border-radius:20px;background:radial-gradient(ellipse at 80% 20%,#53314f,transparent 60%),#151f36}.preview-title{position:relative;z-index:2;padding:32px}.preview-title h2{font-size:36px;line-height:1.15}.preview-knight{position:absolute;right:24px;bottom:24px;width:190px}.preview-floor{height:60px;background:#29324a;position:absolute;bottom:0;width:100%;transform:skewY(-5deg)}.room-bar,.room-actions,.match-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.room-bar{margin-bottom:16px}.room-bar strong{font:700 23px monospace;letter-spacing:3px;margin:0 15px}.battle-stage{height:360px;position:relative;overflow:hidden;border:1px solid #47506c;border-radius:18px;background:radial-gradient(ellipse at 50% 20%,#393556,#141e35 70%)}.scoreboards{position:relative;z-index:5;display:grid;grid-template-columns:1fr 110px 1fr;gap:24px;padding:24px}.player-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px}.player-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag{font-size:10px;letter-spacing:1px;color:#a7b7d3}.hp-track{height:12px;border-radius:20px;background:#080d1b;overflow:hidden}.hp-fill{height:100%;width:100%;background:linear-gradient(90deg,#498ebd,#9be1ff);transition:width .25s}.enemy .hp-fill{background:linear-gradient(90deg,#a43e5e,#f3a1b2)}.hp-meta{display:flex;gap:12px;justify-content:space-between;font-size:11px;margin-top:9px;color:#b8c7df}.hp-meta b{color:#eef3ff}.match-clock{text-align:center}.match-clock strong{display:block;font:700 28px monospace}.match-clock span{font-size:10px;color:#b8c7df}.moon{position:absolute;top:100px;left:48%;width:55px;height:55px;border-radius:50%;background:#c6bad5;box-shadow:0 0 70px #d0b6cf55}.mountain{position:absolute;width:400px;height:180px;bottom:48px;background:#232c43;clip-path:polygon(0 100%,30% 15%,45% 45%,65% 0,100% 100%)}.m-one{left:0}.m-two{right:0;transform:scaleX(-1);background:#282c43}.arena-floor{position:absolute;bottom:0;height:63px;width:100%;background:linear-gradient(#4d4358 2px,#28283c 3px,#171f32);border-top:4px solid #727084}.fighters{position:absolute;bottom:30px;left:15%;right:15%;display:flex;justify-content:space-between}.fighter{position:relative;width:170px;--cape:#284f7d;--metal:#4a7194;--metal-dark:#243f5b;--edge:#8faac9;--glow:#a7e2ff}.fighter.opponent{--cape:#7b2946;--metal:#906079;--metal-dark:#4d2941;--edge:#c69aaa;--glow:#ffb4ce}.knight-shape{position:relative;z-index:2}.knight-shape svg{display:block;width:100%}.opponent .knight-shape{transform:scaleX(-1)}.ward{position:absolute;inset:4% -8%;border:2px solid var(--glow);border-radius:50%;opacity:0;box-shadow:inset 0 0 24px #8cc8ff44,0 0 24px #8cc8ff33;transition:opacity .2s}.shielded .ward{opacity:.65}.damage-pop{position:absolute;top:0;left:35%;font:bold 30px monospace;color:#ffb0c5;z-index:8;opacity:0}.attacking .sword-arm{transform-origin:120px 90px;animation:sword .3s ease}.attacking.you .knight-shape{animation:lunge .3s}.attacking.opponent .knight-shape{animation:lunge-back .3s}.hurt .knight-shape{filter:brightness(1.9)}.hurt .damage-pop{animation:damage .65s}.countdown{position:absolute;z-index:10;inset:0;display:grid;place-items:center;background:#10172b88;font:800 90px monospace;color:#fff}.battle-caption{position:absolute;bottom:9px;width:100%;text-align:center;font-size:12px;color:#c2c9dd;z-index:6}.match-controls{padding:16px 0;font-size:13px;color:#bdc6dd}.combat-input{padding:22px!important}.target-header,.combat-meta{display:flex;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:.6px;color:#a5b4cd}.rune-label{color:#b2dfff}.target-word{font-size:38px;font-weight:750;letter-spacing:1px;color:#f2f5ff;line-height:1.5}.target-word.wrong{color:#f19aaf}.next-words{color:#8494b1;font-size:15px;word-spacing:15px;margin:0 0 18px}.combat-input input{font-size:21px}.combat-meta{margin-top:12px;letter-spacing:0}.battle-log{min-height:28px;margin:16px 0;color:#aab9d4;font-size:12px}.duel-result{padding:24px;border:1px solid #8f607e;background:#302239;border-radius:14px;margin-bottom:16px}.duel-result h2{font-size:30px;margin:8px 0}.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:13px}.result-stats p{padding:14px;background:#151e32;border-radius:8px;line-height:1.9;margin:0}.duel-rules{margin-top:48px}.rule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:24px 0}.rule-grid article{border-top:1px solid #44445b;padding-top:18px}.rule-grid article>span{color:#cc7894;font:16px monospace}.rule-grid h3{font-size:17px}.rule-grid p{font-size:13px;line-height:1.7;color:#adb9d0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@keyframes sword{50%{transform:rotate(75deg)}}@keyframes lunge{50%{transform:translateX(35px)}}@keyframes lunge-back{50%{transform:translateX(-35px) scaleX(-1)}}@keyframes damage{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-45px)}}@media(max-width:700px){.duel-main{padding:25px 16px}.duel-heading{display:block}.connection{display:inline-block;margin-top:12px}.lobby-layout{grid-template-columns:1fr}.arena-preview{min-height:290px}.preview-title h2{font-size:29px}.preview-knight{width:145px}.rule-grid{grid-template-columns:1fr 1fr}.room-bar{flex-wrap:wrap}.room-actions{width:100%}.scoreboards{padding:16px 12px;gap:10px;grid-template-columns:1fr 65px 1fr}.hp-meta{flex-wrap:wrap;gap:5px;font-size:10px}.player-title{font-size:12px}.tag{display:none}.match-clock strong{font-size:21px}.battle-stage{height:310px}.fighters{left:5%;right:5%}.fighter{width:125px}.match-controls{align-items:flex-start}.match-controls button{white-space:nowrap;font-size:12px}.combat-meta{flex-wrap:wrap}.result-stats{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.duel-main *{animation:none!important;transition:none!important}}
