/* Gakumon's own arena: luminous study symbols, two platforms and tactile move tiles. */
.visual-duel{border-color:#234e59;border-radius:24px;background:#122f43}
.visual-duel .battle-icon{display:inline-block;flex:none;width:28px;height:28px;vertical-align:middle}
.visual-duel .duel-top{background:#ffe38a;padding:4px 18px;min-height:34px;border-bottom:1px solid #bd9649}
.visual-duel .duel-round{font-size:15px;display:flex;gap:8px;align-items:center}.visual-duel .duel-round b{font-size:24px}
.duel-exchanges{display:flex;gap:7px}.duel-exchanges i{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#a58b4630;border:1px solid #b29a62;color:#63542f;font:900 14px Arial}
.duel-exchanges .current{background:#204956;color:#fff7c6;box-shadow:0 0 0 3px #fff5c8}.duel-exchanges .complete{background:#fff3bc;color:#726739}
.visual-duel .duel-hud{grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr);gap:10px;padding:12px 18px;background:linear-gradient(100deg,#173e4c,#162d42 60%,#383849);border-bottom:1px solid #b7ece02b}
.visual-duel .duel-hud>.fighter-hud{min-width:0;text-align:left}.visual-duel .fighter-name{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-width:0;line-height:1.2}
.visual-duel .fighter-name>span{flex:none;font-size:12px;font-weight:900;padding:3px 6px;border:1px solid #8ce6d1;border-radius:5px;color:#b9fff0}
.visual-duel .opponent-hud .fighter-name>span{color:#ffe5a5;border-color:#f4c774}.visual-duel .fighter-name>b{font-size:clamp(17px,1.7vw,25px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.visual-duel .fighter-life{display:grid;grid-template-columns:27px auto 1fr;align-items:center;gap:6px;margin:3px 0 6px;line-height:1}
.visual-duel .fighter-life>.battle-icon{width:24px;height:24px;color:#80f1c7}.visual-duel .opponent-hud .fighter-life>.battle-icon{color:#ffb987}
.visual-duel .fighter-life>strong{font:900 34px/1 Arial,sans-serif;color:#f7ffe4;font-variant-numeric:tabular-nums}.visual-duel .fighter-life>span{align-self:end;font:700 15px/1.4 Arial;color:#b8cece}
.visual-duel .duel-hp{grid-column:1/-1;height:17px;margin:0;border:2px solid #c3f3d9;border-radius:20px;background:#071e30;box-shadow:0 2px 0 #0003}
.visual-duel .duel-hp i{background:linear-gradient(#c5ff89,#47d4a3);border-radius:10px;box-shadow:0 0 10px #6df1b755}.visual-duel .enemy-hp{border-color:#ffe2b1}.visual-duel .enemy-hp i{background:linear-gradient(#ffed95,#ffa362)}.visual-duel .duel-hp.danger i{background:#ff647b}
.visual-duel .duel-versus{font-size:27px;align-self:center;color:#ffd783;transform:rotate(-8deg);text-shadow:2px 3px #0a2132}
.visual-duel .fighter-stock{display:flex;gap:10px;align-items:center;padding-top:3px}.visual-duel .opponent-hud .fighter-stock{justify-content:flex-end}
.visual-duel .stock-hand{display:grid;place-items:center;padding:3px;width:49px;height:47px;border:2px solid #758b90;border-radius:12px;background:linear-gradient(#f3ffed33,#d2f4e50a);box-shadow:0 3px #081e2e;color:#fff}
.visual-duel .fighter-stock .hand-icon{width:38px;height:38px}.visual-duel .stock-hand.favorite{border-color:#ffd768;background:linear-gradient(#fffab650,#dfa63020)}
.visual-duel .stock-hand em{position:absolute;right:-5px;top:-9px;font-style:normal;font-size:10px;font-weight:900;line-height:1.3;background:#ffdc65;color:#4d3a21;border-radius:4px;padding:1px 3px;z-index:2}
.visual-duel .stock-hand.used{background:#061b28;box-shadow:none;border-color:#5c717e}.visual-duel .stock-hand.used .hand-icon{opacity:.23}.visual-duel .stock-hand.used em{background:#7f8b8b;color:#142b34}.visual-duel .stock-hand b{color:#c9d3d5}.visual-duel .stock-hand b .battle-icon{width:35px;height:35px;filter:drop-shadow(0 2px #112633)}
.visual-duel .duel-arena{container-type:size;height:360px;background:radial-gradient(ellipse at 20% 70%,#1d786c70,transparent 50%),radial-gradient(ellipse at 80% 70%,color-mix(in srgb,var(--enemy-color) 30%,transparent),transparent 50%),linear-gradient(#132e44,#194556);isolation:isolate}
.visual-duel .arena-moon{width:220px;height:220px;left:calc(50% - 110px);top:15%;right:auto;opacity:.35;border:2px solid #82e8e14d;background:none;box-shadow:0 0 0 25px #82e8e107,0 0 0 55px #82e8e105}
.visual-duel .arena-pillars{background:linear-gradient(90deg,transparent 49.8%,#80e0d210 50%,transparent 50.2%),repeating-linear-gradient(0deg,transparent 0 47px,#82e1d60c 48px 49px);mask-image:linear-gradient(transparent,#000)}
.visual-duel .arena-ring{bottom:-100px;height:180px;left:-10%;right:-10%;border:2px solid #78e0d650;background:repeating-radial-gradient(ellipse,#123747 0 34px,#77e1d228 35px 37px);box-shadow:0 0 0 10px #69baaf10,0 0 40px #73daca18}
.arena-emblem{position:absolute;inset:8% 15% 35%;display:flex;justify-content:space-around;align-items:center;color:#a5efde0f;font:900 clamp(45px,8vw,100px) Arial;transform:rotate(-12deg);pointer-events:none}
.fighter-platform{position:absolute;bottom:35px;width:43%;height:60px;border:3px solid #9ffff04d;border-radius:50%;background:radial-gradient(ellipse,#88ffe625,transparent 70%);box-shadow:0 5px 0 #0b202d,0 0 18px #82ead31c}.player-platform{left:3%}.enemy-platform{right:3%;border-color:#ffdc8b55;background:radial-gradient(ellipse,#ffdc8b20,transparent 70%)}
.visual-duel .duel-actor{bottom:48px;width:min(45cqw,80cqh,440px);height:min(45cqw,80cqh,440px);max-width:none;z-index:2;filter:drop-shadow(0 15px 9px #031b3199)}
.visual-duel .player-actor{left:2%}.visual-duel .enemy-actor{right:2%}.visual-duel .duel-actor .sprite{width:100%;height:100%}.visual-duel .duel-actor .enemy-sprite{width:120%;height:106.67%;flex-shrink:0}
.visual-duel .enemy-intent{top:10px;left:auto;right:14px;transform:none;max-width:47%;width:auto;display:flex;gap:10px;align-items:center;padding:8px 12px;background:#f7f8e9;border:2px solid #eccc83;border-radius:16px;color:#294a54;z-index:4;text-align:left;box-shadow:0 4px #071e3150}
.visual-duel .intent-symbol{display:grid;place-items:center;width:49px;height:49px;border-radius:14px;background:#dcecec;color:#2e7488;flex:none}.visual-duel .intent-symbol .battle-icon{width:34px;height:34px}
.visual-duel .intent-copy b{font-size:16px;line-height:1.3}.visual-duel .intent-copy>span{display:flex;gap:8px;align-items:center}.visual-duel .intent-copy strong{font:900 26px/1.2 Arial;color:#2c6275}.visual-duel .intent-copy em{font-weight:800;font-size:13px;line-height:1.2;font-style:normal;white-space:nowrap}
.visual-duel .intent-poison .intent-symbol{background:#ebd9f3;color:#8c5198}.visual-duel .intent-heal .intent-symbol{background:#d8eeb5;color:#4e823b}.visual-duel .intent-flame .intent-symbol,.visual-duel .intent-sword .intent-symbol{background:#ffe2cc;color:#bc6437}.visual-duel .enemy-intent.spent{opacity:.72}
.visual-duel .duel-hands{bottom:7px;left:5%;right:5%;z-index:3;pointer-events:none}.visual-duel .duel-hands>span{display:flex;gap:9px;align-items:center;padding:4px 12px 4px 5px;background:#0e2a3ee8;border:1px solid #83cecb77;border-radius:30px;color:#e1faf0;box-shadow:0 3px #0b203290}.visual-duel .duel-hands>span:last-child{flex-direction:row-reverse;border-color:#d8b86a88;color:#ffe9b0}
.visual-duel .duel-hands .hand-icon{width:46px;height:46px}.visual-duel .duel-hands b{font-size:14px}.visual-duel .hand-question{font:900 33px/46px Arial;width:46px;text-align:center;background:#b6ece416;border-radius:50%;color:#b9dfdf}.visual-duel .duel-hands.unselected>span:first-child{visibility:hidden}
.visual-duel .duel-round-result{top:40%;bottom:auto;font-size:clamp(18px,2vw,27px);padding:12px 20px;border-radius:16px;max-width:88%;background:#102d43f2;border:2px solid #ffe88c;box-shadow:0 6px 22px #0005;z-index:9}.visual-duel .duel-round-result small{font-size:16px}
.visual-duel .damage-number{font-size:60px;top:28%;left:35%}.visual-duel .heal-number{font-size:43px;top:30%}.visual-duel .poison-status{left:12px;top:12px;bottom:auto;display:flex;align-items:center;gap:7px;padding:6px 10px;border:2px solid #d7b1ef;background:#503466;border-radius:13px;font-size:13px}.visual-duel .poison-status b{font-size:24px}.visual-duel .poison-status .battle-icon{width:27px;height:27px}
.visual-duel .duel-console{background:linear-gradient(145deg,#fffbed,#e8f3e1);color:#234b53;padding:16px;border-color:#a1c9b7}
.visual-duel .duel-choose-tip,.visual-duel .duel-learning-note{font-size:22px;line-height:1.25;font-weight:900;margin:0 0 15px;text-align:center}
.visual-duel .duel-hand-options{display:grid;gap:13px}.visual-duel .duel-hand-options .hand-choice{--hand:#e69a67;--hand-ink:#824727;--hand-light:#fff2da;display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:10px;min-height:110px;padding:10px 13px 10px 8px;border:3px solid var(--hand);border-radius:20px;background:linear-gradient(115deg,#fffef8,var(--hand-light));box-shadow:0 5px var(--hand-ink);text-align:left;position:relative;touch-action:manipulation;transition:transform .13s,filter .13s}
.visual-duel .duel-hand-options .choice-1{--hand:#72ba99;--hand-ink:#2d735b;--hand-light:#e1f5cb}.visual-duel .duel-hand-options .choice-2{--hand:#78bade;--hand-ink:#326681;--hand-light:#dbf2fd}
.visual-duel .duel-hand-options .hand-choice:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-3px)}.visual-duel .duel-hand-options .hand-choice:active:not(:disabled){transform:translateY(4px)}
.visual-duel .choice-orb{position:relative;display:grid;place-items:center;background:radial-gradient(#fff,#fffc 55%,var(--hand-light) 56%);border:2px solid var(--hand);border-radius:50%;width:80px;height:80px;box-shadow:inset 0 -5px #0000000b}.visual-duel .duel-hand-options .hand-icon{width:74px;height:74px}
.visual-duel .duel-hand-options .choice-copy{min-width:0;text-align:left;font-size:inherit}.visual-duel .duel-hand-options .hand-tech-name{display:block;font-size:24px;line-height:1.4;font-weight:900;margin:0;color:var(--hand-ink);overflow-wrap:anywhere;word-break:keep-all}.visual-duel .choice-effect{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:800;line-height:1.5;margin-top:8px;color:#365d60}.visual-duel .choice-effect>span{font-size:inherit;line-height:inherit;margin:0}.visual-duel .choice-effect .battle-icon{width:24px;height:24px}.visual-duel .choice-used{display:block;margin-top:6px;font-size:15px;color:#546868}
.visual-duel .duel-hand-options small{font-size:13px;right:9px;top:-10px;padding:2px 8px;border:1px solid #e2af46;border-radius:8px;background:#ffe076;box-shadow:0 2px #aa712655}
.visual-duel .favorite-choice .choice-orb{border-color:#e1ae3c;box-shadow:0 0 0 3px #ffdb7133}.visual-duel .duel-hand-options button:disabled{opacity:.6;filter:grayscale(.8);background:#dce3df;box-shadow:0 2px #a5b4af;border-color:#a5b4af}
.visual-duel .choice-orb>i{position:absolute;inset:0;display:grid;place-items:center;color:#4d616c;background:#f3f7f180;border-radius:50%}.visual-duel .choice-orb>i .battle-icon{width:55px;height:55px}
.visual-duel button:focus-visible{outline:4px solid #e5681e;outline-offset:3px}
.visual-duel .duel-math{display:grid;grid-template-columns:67px minmax(0,1fr);gap:14px}.visual-duel .duel-equation{display:flex;align-items:center;justify-content:center;gap:7px;font-size:27px}.visual-duel .duel-equation output{font-size:34px;width:72px;min-height:50px;margin:0}
.visual-duel .duel-time b{font-size:28px}.visual-duel .duel-keypad{grid-column:1/-1;max-width:none;gap:10px}.visual-duel .duel-keypad button{min-height:60px;font-size:30px;border-radius:12px}.visual-duel .duel-keypad .duel-submit{font-size:19px}
.visual-duel .ability-events{gap:7px;margin:0 0 12px}.visual-duel .ability-events p{display:flex;align-items:center;gap:10px;margin:0;padding:8px 12px;font-size:17px;line-height:1.2;min-height:48px}.visual-duel .ability-events b{font:900 25px Arial}.visual-duel .ability-events .battle-icon{width:29px;height:29px}
.visual-duel .math-feedback{display:grid;gap:6px;text-align:center;margin:9px 0;padding:12px 6px;background:#fffdf4;border:1px solid #d5d8ba;border-radius:14px;font-size:17px}.visual-duel .math-feedback span{font-size:29px}.visual-duel .duel-next{margin-top:14px}.visual-duel .duel-next .game-button{font-size:20px;min-height:62px;line-height:1.4;padding:10px;width:100%}
@media(min-width:900px){
 .visual-duel{height:var(--play-height);min-height:440px;display:grid;grid-template-columns:minmax(0,1fr) 350px;grid-template-rows:34px 164px minmax(0,1fr);max-width:none}
 .visual-duel .duel-top{grid-column:1/-1;grid-row:1}.visual-duel .duel-hud{grid-column:1;grid-row:2}.visual-duel .duel-arena{grid-column:1;grid-row:3;height:auto;min-height:0}
 .visual-duel .duel-console{grid-column:2;grid-row:2/4;display:flex;flex-direction:column;justify-content:center;min-height:0;border-top:0;border-left:3px solid #94b6ae;padding:20px 16px}
 .visual-duel .duel-hand-options{max-height:500px;min-height:0;flex:1;grid-template-rows:repeat(3,minmax(0,1fr))}.visual-duel .duel-choose-tip{flex:none}
 .visual-duel:has(.duel-finish) .duel-console{border:0;padding:10px;overflow:auto}
}
@media(min-width:900px) and (max-height:700px){
 .visual-duel{grid-template-rows:30px 139px minmax(0,1fr)}.visual-duel .duel-hud{padding:7px 14px}.visual-duel .fighter-life>strong{font-size:29px}.visual-duel .fighter-stock{padding-top:0}.visual-duel .stock-hand{width:43px;height:40px}.visual-duel .fighter-stock .hand-icon{width:34px;height:34px}
 .visual-duel .duel-console{padding:12px}.visual-duel .duel-hand-options{gap:10px}.visual-duel .duel-hand-options .hand-choice{min-height:88px;grid-template-columns:66px minmax(0,1fr);padding:7px 9px}.visual-duel .choice-orb{width:64px;height:64px}.visual-duel .duel-hand-options .hand-icon{width:60px;height:60px}.visual-duel .duel-choose-tip,.visual-duel .duel-learning-note{margin-bottom:12px;font-size:20px}.visual-duel .duel-keypad button{min-height:48px}.visual-duel .duel-keypad{gap:8px}.visual-duel .ability-events p{min-height:37px;padding:5px 8px;font-size:15px}.visual-duel .duel-next .game-button{min-height:51px;font-size:18px}.visual-duel .math-feedback{padding:7px}.visual-duel .math-feedback span{font-size:24px}
}
@media(max-width:899px){
 .visual-duel{display:block;border-width:3px;border-radius:18px}.visual-duel .duel-hud{padding:10px;gap:6px;grid-template-columns:minmax(0,1fr) 25px minmax(0,1fr)}.visual-duel .duel-versus{font-size:18px}.visual-duel .fighter-name{gap:5px;flex-wrap:wrap}.visual-duel .fighter-name>span{font-size:10px;padding:1px 4px}.visual-duel .fighter-name>b{font-size:16px}.visual-duel .fighter-life{grid-template-columns:22px auto 1fr;gap:4px;margin:5px 0 9px}.visual-duel .fighter-life>strong{font-size:29px}.visual-duel .fighter-life>span{font-size:13px}.visual-duel .fighter-life>.battle-icon{width:20px;height:20px}.visual-duel .duel-hp{height:15px}
 .visual-duel .fighter-stock{gap:7px}.visual-duel .stock-hand{width:37px;height:37px;padding:1px;border-radius:9px}.visual-duel .fighter-stock .hand-icon{width:31px;height:31px}.visual-duel .stock-hand b .battle-icon{width:27px;height:27px}.visual-duel .stock-hand em{font-size:9px;top:-8px;right:-4px}
 .visual-duel .duel-arena{height:270px}.visual-duel .duel-actor{width:min(47cqw,70cqh);height:min(47cqw,70cqh);bottom:43px}.visual-duel .player-actor{left:0}.visual-duel .enemy-actor{right:0}.visual-duel .fighter-platform{bottom:31px;height:33px}.visual-duel .arena-moon{top:15%;width:160px;height:160px;left:calc(50% - 80px)}
 .visual-duel .enemy-intent{right:8px;top:8px;max-width:65%;padding:5px 8px;gap:7px;border-radius:12px}.visual-duel .intent-symbol{width:36px;height:36px;border-radius:9px}.visual-duel .intent-symbol .battle-icon{width:27px;height:27px}.visual-duel .intent-copy b{font-size:14px}.visual-duel .intent-copy strong{font-size:23px}.visual-duel .intent-copy em{font-size:12px}
 .visual-duel .duel-hands{bottom:6px;left:5px;right:5px}.visual-duel .duel-hands>span{gap:4px;padding:2px 8px 2px 3px}.visual-duel .duel-hands .hand-icon{width:35px;height:35px}.visual-duel .hand-question{font-size:26px;line-height:35px;width:35px}.visual-duel .duel-hands b{font-size:12px}.visual-duel .duel-round-result{font-size:19px;top:37%;padding:8px 12px}.visual-duel .duel-round-result small{font-size:13px}.visual-duel .damage-number{font-size:43px}.visual-duel .poison-status{left:7px;top:8px;gap:3px;padding:5px 6px;font-size:10px;flex-wrap:wrap;max-width:105px}.visual-duel .poison-status b{font-size:21px}.visual-duel .poison-status .battle-icon{width:22px;height:22px}
 .visual-duel .duel-console{padding:12px 9px 15px;border-top:3px solid #a1c9b7}.visual-duel .duel-choose-tip,.visual-duel .duel-learning-note{font-size:21px;margin-bottom:13px}
 .visual-duel .duel-hand-options{grid-template-columns:1fr;gap:11px}.visual-duel .duel-hand-options .hand-choice{display:grid;grid-template-columns:67px minmax(0,1fr);gap:14px;min-height:94px;padding:10px 14px;border-width:2px;border-radius:16px;text-align:left}.visual-duel .choice-orb{width:67px;height:67px}.visual-duel .duel-hand-options .hand-icon{width:63px;height:63px}.visual-duel .duel-hand-options .hand-tech-name{font-size:23px}.visual-duel .choice-effect{font-size:15px;margin-top:4px}.visual-duel .duel-hand-options small{font-size:12px;right:9px;top:-9px;padding:1px 6px}
 .visual-duel .duel-math{grid-template-columns:65px 1fr;gap:12px}.visual-duel .duel-keypad button{min-height:53px}.visual-duel .duel-equation{font-size:28px}.visual-duel .duel-next .game-button{min-height:55px;font-size:20px}.visual-duel .ability-events{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:5px;margin-bottom:7px}.visual-duel .ability-events p{padding:7px;font-size:14px;gap:6px}.visual-duel .ability-events b{font-size:22px}.visual-duel .math-feedback{margin:6px 0}
}
@media(prefers-reduced-motion:reduce){.visual-duel *{transition:none!important;animation:none!important}}
