@font-face{font-family:NightDisplay;src:url(../fonts/display.ttf) format("truetype");font-display:swap;font-weight:600}@font-face{font-family:NightMincho;src:url(../fonts/mincho.ttf) format("truetype");font-display:swap;font-weight:600}:root{color-scheme:dark;font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,system-ui,sans-serif;font-synthesis:none;--ink:#eee9d8;--muted:#b3b6a4;--gold:#bd9c5d;--gold-bright:#e4c783;--jade:#8ec2ad;--red:#d99c83;--line:#b89b5840;--display:NightMincho,"Yu Mincho",serif;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;background:#080e0c}body{color:var(--ink);overscroll-behavior:none}button,select,input{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold-bright);outline-offset:4px}[tabindex="-1"]:focus{outline:none}::selection{background:#d2b46b;color:#11231b}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-thumb{background:#927743;border-radius:4px}.app-shell{position:relative;height:100vh;height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 50% 8%,#243b2b 0,#111c15 45%,#070d0b 85%)}.screen{position:absolute;inset:0;display:none;isolation:isolate;overflow:hidden}.screen.is-active{display:flex}.screen:after{content:"";position:absolute;inset:10px;border:1px solid #bda06030;pointer-events:none;z-index:15}svg{display:block;flex-shrink:0}.primary-button,.secondary-button,.confirm-button{min-height:56px;padding:14px 22px;border-radius:5px;border:1px solid var(--line);transition:transform .16s var(--ease-out),background .16s ease}.primary-button{display:flex;align-items:center;justify-content:center;gap:14px;color:#19261c;background:linear-gradient(115deg,#eee0ba,#c3a263);box-shadow:0 8px 24px #0007,inset 0 1px #ffffeb80;font-weight:700;letter-spacing:.12em}.secondary-button{color:#dedac5;background:#172a20;border-color:#b69a5c40;display:flex;gap:12px;align-items:center;justify-content:center}.text-button{border:0;background:none;color:#c5cbb9;min-height:44px;padding:6px 12px;text-underline-offset:6px;font-size:12px}.primary-button:active,.secondary-button:active,.confirm-button:active{transform:translateY(1px) scale(.985)}.icon-button,.back-button{width:42px;height:42px;border:1px solid #b39a5b40;border-radius:50%;background:#0d1a15d9;display:grid;place-items:center;padding:8px;color:#d1c5a2}.screen-header{display:flex;align-items:center;gap:14px;padding:28px 22px 18px;z-index:3}.screen-header h2{margin:0;font:600 clamp(22px,5vw,32px) var(--display);letter-spacing:.06em}.screen-header span{display:none}.title-screen{flex-direction:column;align-items:center;justify-content:center;padding:72px 28px 36px;gap:18px}.title-atmosphere{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(180deg,#030a08c9 0,#06120c45 36%,#07110cd9 75%,#070e0b),url(../key-art-v2.webp);background-size:cover;background-position:50% 55%}.title-atmosphere:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 34%,#8e71371c,transparent 48%);pointer-events:none}.title-atmosphere span{display:none}.title-status{position:absolute;top:25px;left:28px;display:flex;gap:10px;align-items:center;font-size:10px;letter-spacing:.15em;color:#bcb795}.title-status i{height:1px;width:22px;background:#9d8b56}.title-mark{text-align:center;z-index:2}.title-kicker{display:none}.title-mark h1{margin:0;font:600 clamp(88px,24vw,126px)/.82 NightDisplay,Georgia,serif;color:#f1e5c7;letter-spacing:.11em;text-indent:.11em;text-shadow:0 5px 30px #000a}.title-mark p{max-width:360px;margin:23px 0 0;color:#e1d6bc;font:600 15px/1.7 var(--display);letter-spacing:.12em}.hero-stage{position:relative;display:flex;align-items:center;justify-content:center;width:min(100%,390px);height:clamp(184px,29dvh,276px)}.hero-tile,.hero-orbit,.hero-caption{display:none}.hero-portrait{width:108px;height:auto;border-radius:9px;transform:perspective(800px) rotateY(-8deg) rotate(-5deg);box-shadow:12px 18px 24px #000a,2px 4px #bba875;position:relative;z-index:2;outline:3px solid #d5cbb0}.hero-companion{position:absolute;width:82px;border-radius:6px;box-shadow:6px 15px 20px #0008;opacity:.75;top:54%;transform:translateY(-50%) rotate(-18deg)}.hero-companion.left{left:calc(50% - 133px)}.hero-companion.right{right:calc(50% - 128px);transform:translateY(-50%) rotate(15deg)}.title-ruleline{display:flex;justify-content:center;align-items:center;gap:10px;color:#d2d1b7;font-size:10px;letter-spacing:.12em}.title-ruleline i{width:3px;height:3px;background:#c4a46a;border-radius:50%}.title-actions{width:min(100%,330px);display:grid;gap:7px;text-align:center}.title-actions .primary-button{justify-content:space-between;font:600 19px var(--display)}.records{width:min(100%,290px);display:flex;justify-content:space-around;border-top:1px solid #bd9c5d33;padding-top:14px;gap:14px}.records div{display:flex;gap:6px;align-items:baseline}.records strong{font:600 24px NightDisplay,Georgia,serif;color:#e0c68d}.records span{font-size:10px;color:#afb8a5}.title-footer{display:flex;justify-content:center;gap:20px;width:100%;margin-top:8px;color:#929b85;font-size:9px;letter-spacing:.15em}.title-footer i,.title-footer span:last-child{display:none}.locale-picker{position:absolute;top:25px;right:80px;z-index:4}.locale-picker>span{display:none}.locale-picker select{color:#d7ceb0;border:0;background:#0b1712a6;border-radius:4px;padding:7px;font-size:11px;min-height:36px;max-width:108px}.title-settings{position:absolute;top:22px;right:25px;z-index:4}@keyframes room-arrival{0%{opacity:.45}to{opacity:1}}@keyframes word-arrival{0%{opacity:.6;transform:translateY(8px)}to{opacity:1;transform:none}}.title-screen.is-active .title-atmosphere{animation:room-arrival .8s var(--ease-out) both}.title-screen.is-active .title-mark{animation:word-arrival .6s var(--ease-out) both}.opponent-screen{flex-direction:column;background:radial-gradient(ellipse at 60% 15%,#243e2d,#081610 65%);overflow-y:auto}.opponent-screen:before{content:"";position:absolute;inset:0;background-image:url(../materials/timber.webp);background-size:220px;opacity:.12;z-index:-1}.opponent-list{width:min(100%,600px);display:flex;flex-direction:column;justify-content:center;gap:17px;padding:10px 24px 34px;margin:auto}.opponent-card{position:relative;text-align:left;display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:center;background:linear-gradient(115deg,#223a2e,#101e17);border:1px solid #b59a5b40;border-radius:7px;padding:23px 18px;min-height:148px;box-shadow:0 12px 20px #0003;transition:transform .16s var(--ease-out),border-color .16s ease}.opponent-seal{width:61px;height:78px;display:grid;place-items:center;font:600 36px var(--display);color:var(--gold-bright);border:1px solid #b29b60;border-radius:22px 22px 5px 5px;background:#091911}.opponent-card.easy .opponent-seal{color:#ddaa8b;border-color:#bd8367}.opponent-card.hard .opponent-seal{color:#91baa8;border-color:#659581}.opponent-copy{display:grid;gap:7px;min-width:0}.opponent-copy small{font-size:10px;letter-spacing:.1em;color:#c3b57f}.opponent-copy strong{font:600 25px var(--display);letter-spacing:.13em}.opponent-copy em{font-style:normal;font-size:12px;line-height:1.8;color:#bdc7b8}.opponent-threat{display:none}.opponent-rank{position:absolute;right:15px;top:13px;color:#6e775b;font:600 17px NightDisplay,serif}.opponent-arrow{grid-column:2;justify-self:end;font-size:11px;color:#d0bd86;display:flex;gap:6px;align-items:center}.opponent-card:active{transform:scale(.99)}.battle-screen{display:none;grid-template-rows:62px 56px 66px minmax(0,1fr) 88px;padding:10px;gap:0;max-width:760px;margin:0 auto;background-image:linear-gradient(#0b1715f5,#08130fec),url(../materials/timber.webp);background-size:auto,200px}.battle-screen.is-active{display:grid}.battle-screen:after{inset:8px;border-color:#bda06035}.table-brand,.table-watermark,.duel-side-labels{display:none}.battle-header{grid-area:1/1;display:grid;grid-template-columns:minmax(0,1fr) auto 37px 37px;align-items:center;gap:8px;padding:2px 12px 7px;border-bottom:1px solid #b39a5b28;z-index:5}.battle-header .icon-button{width:35px;height:35px;padding:7px}.battle-header .icon-button svg{width:17px;height:17px}.cpu-identity{display:flex;align-items:center;gap:10px;min-width:0}.mini-seal{width:34px;height:39px;display:grid;place-items:center;border:1px solid #b0975b85;border-radius:12px 12px 3px 3px;color:#dbbd77;font:600 20px var(--display)}.cpu-identity div{display:grid;gap:2px}.cpu-identity small{font-size:9px;color:#b2bba7}.cpu-identity strong{font:600 19px var(--display);letter-spacing:.1em}.round-meter{min-width:73px;text-align:center}.round-meter>span{color:#d4cead;font-size:9px;letter-spacing:.06em}.round-meter div{display:flex;gap:3px;margin-top:7px;justify-content:center}.round-meter i{display:block;width:5px;height:3px;background:#334739;border-radius:2px}.round-meter i.done{background:#8c8352}.round-meter i.current{background:#f1d596}.scoreboard{grid-area:2/1;display:grid;grid-template-columns:1fr 28px 1fr;gap:8px;padding:7px 13px;align-items:center;z-index:4}.score{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 10px;background:#091610;border-radius:4px;transition:background .2s ease}.score span{font-size:10px;letter-spacing:.16em;color:#bfbea5}.score strong{font:600 29px/1 NightDisplay,Georgia,serif;font-variant-numeric:tabular-nums}.cpu-score strong{color:#d6bd83}.player-score strong{color:#a3cfb5}.score-divider{text-align:center;font:600 11px var(--display);color:#a58b50}.score.is-scoring{background:#34553c}.round-history{grid-area:3/1;padding:5px 13px 9px;z-index:4}.round-history-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;gap:8px}.round-history-heading>span{font-size:9px;color:#d0d3bc;letter-spacing:.07em}.round-history-heading b{display:none}.round-history-heading small{font-size:8px;color:#c1c3ae}.round-history-heading small i{display:none}.round-history-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px}.round-record{border:1px solid #9a9b6d1c;border-radius:3px;display:grid;grid-template-rows:10px 12px 12px;min-width:0;text-align:center;padding:1px 2px;background:#1d3026}.round-record small{font-size:7px;color:#b8bca6}.history-value{font:600 11px/1 NightDisplay,serif;min-width:0}.history-value.cpu{color:#dcc38b}.history-value.player{color:#9dcaaf}.round-record.is-pending{background:#15251c}.round-record.is-pending .history-value{color:#829581}.round-record.winner-player{border-bottom-color:#8bc4a8}.round-record.winner-cpu{border-top-color:#cdb477}.history-value.is-winner{color:#f5e6ba}.three-layer,.tile-hit-grid,.table-surface,.duel-announcer{grid-area:4/1;position:relative;min-height:0;min-width:0;align-self:stretch}.table-surface{z-index:0;border-radius:8px;background-image:radial-gradient(ellipse at 46% 44%,#264f3c,#133326 58%,#091e17);box-shadow:inset 0 0 0 8px #111b14,inset 0 0 0 9px #9c874a6b,inset 0 0 0 13px #0e271d;overflow:hidden}.table-surface:before{content:"";position:absolute;inset:14px;border:1px solid #a9945423;border-radius:3px;background:url(../materials/felt.webp) 0 0/220px;mix-blend-mode:soft-light;opacity:.22}.table-surface:after{content:"";position:absolute;inset:14px;box-shadow:inset 0 0 75px #020d08bb;border-radius:3px;pointer-events:none}.table-seat{position:absolute;left:0;right:0;text-align:center;color:#c2ba91;font-size:9px;letter-spacing:.14em;z-index:1}.table-seat.cpu{top:3%}.table-seat.you{bottom:3%}.discard-caption{position:absolute;top:24%;left:7%;font-size:8px;letter-spacing:.12em;color:#a8b29b;z-index:1}.table-mark{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);font:600 clamp(50px,15vw,90px)/1 NightDisplay,Georgia,serif;letter-spacing:.2em;color:#b9a66315}.three-layer{z-index:1}.three-layer canvas{width:100%;height:100%;display:block;outline:none;transition:opacity .2s ease}.battle-screen.is-loading .three-layer{opacity:0}.tile-hit-grid{z-index:5;pointer-events:none}.tile-hit-grid button{position:absolute;display:block;padding:0;background:transparent;border:0;border-radius:7px;pointer-events:auto;touch-action:manipulation}.tile-hit-grid button:disabled,.tile-hit-grid.is-locked button{pointer-events:none}.tile-hit-grid button:focus-visible{outline:2px solid #e4c783;outline-offset:-2px}.duel-announcer{align-self:start;justify-self:center;top:65%;width:95%;z-index:4;pointer-events:none;text-align:center;display:grid;justify-items:center;gap:4px;color:var(--ink);text-shadow:0 3px 12px #000}.duel-announcer>span{font-size:10px;color:#d7c49c;letter-spacing:.12em}.duel-announcer>strong{font:600 14px/1.35 var(--display);letter-spacing:.06em}.duel-announcer>em{display:none;font-style:normal;font:600 36px/1 NightDisplay,serif}.duel-announcer.is-result{top:64%;gap:2px}.duel-announcer.is-result>strong{font-size:11px;color:#d2d3bb}.duel-announcer.is-result>span{font:600 clamp(17px,4.5vw,24px)/1.2 var(--display);color:#e7cd91;letter-spacing:.06em}.duel-announcer.is-result>em{display:block}.duel-announcer>em.player{color:#a5d8bb}.duel-announcer>em.cpu{color:#e5bf85}.duel-announcer>em.draw{font:600 17px var(--display)}.battle-screen[data-phase=hold] .duel-announcer>strong{color:#f0ddac}.battle-screen[data-phase=hold] .table-surface{filter:brightness(.76);transition:filter .3s ease}.battle-screen[data-phase=result] .duel-announcer{animation:result-arrival .24s var(--ease-out) both}@keyframes result-arrival{0%{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:none}}.battle-controls{grid-area:5/1;padding:13px 12px 10px;display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.5fr);gap:12px;align-items:stretch;z-index:6;background:linear-gradient(180deg,#111c15,#0a130e)}.selection-readout{display:flex;align-items:center;gap:10px;min-width:0}.selection-readout span{font-size:10px;color:#bbc4ac;letter-spacing:.06em}.selection-readout strong{font:600 34px/1 NightDisplay,serif;color:#e7d4a2;min-width:22px}.confirm-button{position:relative;min-height:57px;border:1px solid #d3b574;background:linear-gradient(110deg,#efdeb5,#c2a362);color:#182d22;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 16px;box-shadow:0 5px 15px #0008,inset 0 1px #fff7d1a1;border-radius:5px}.confirm-button:before{content:"";position:absolute;inset:4px;border:1px solid #8e6d2c4d;border-radius:2px;pointer-events:none}.confirm-seal{display:none}.confirm-copy{display:grid;gap:3px;text-align:left;min-width:0}.confirm-copy small{font-size:9px;letter-spacing:.08em;color:#354a35;white-space:nowrap}.confirm-copy strong{font:600 22px/1.15 var(--display);letter-spacing:.1em}.confirm-button>i{display:none}.confirm-button:disabled{background:#25362a;color:#a8b6a0;border-color:#64724e;box-shadow:inset 0 1px #ffffff0c}.confirm-button:disabled .confirm-copy small{color:#a2af99}.confirm-button:disabled:before{border-color:#68734f33}.confirm-button:disabled svg{opacity:.35}.match-intro{position:absolute;inset:184px 10px 88px;z-index:10;display:grid;grid-template-columns:1fr 40px 1fr;align-content:center;align-items:center;gap:17px;padding:25px;background:#061510ed;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease}.match-intro.is-active{visibility:visible;opacity:1}.match-intro>span{font:600 28px var(--display);text-align:center;color:#dfd6b8}.match-intro>.intro-you{color:#acd0b8}.match-intro>strong{font:600 18px var(--display);text-align:center;color:#b99b60}.match-intro>small{grid-column:1/-1;text-align:center;font-size:11px;color:#c2c3a9;letter-spacing:.16em;margin-top:20px}.result-screen{flex-direction:column;align-items:center;overflow-y:auto;padding:50px 23px 30px;background-image:radial-gradient(ellipse at 50% 10%,#354536,#0a1b13 58%,#07120e),url(../materials/timber.webp)}.result-header{text-align:center;position:relative;z-index:1}.result-header>span{display:block;margin-bottom:17px;font-size:11px;color:#c3bd98;letter-spacing:.15em}.result-header h2{font:600 clamp(48px,13vw,76px)/1.15 var(--display);color:#dac48f;margin:0 0 18px;letter-spacing:.14em}.result-screen.is-loss .result-header h2{color:#d6a588}.result-screen.is-draw .result-header h2{color:#becfbe}.result-header p{font-size:12px;color:#c9cbb4;margin:0}.result-glow{display:none}.final-score{display:flex;align-items:center;justify-content:center;gap:30px;width:min(100%,440px);padding:25px 0 18px;margin:20px 0 0;border-top:1px solid #b59a5b55;border-bottom:1px solid #b59a5b33}.final-score>div{display:grid;gap:6px;text-align:center;min-width:65px}.final-score span{font-size:10px;color:#c7cdb8}.final-score strong{font:600 48px/1 NightDisplay,serif;color:#eee4c7;font-variant-numeric:tabular-nums}.final-score>em{font-style:normal;color:#929c7f}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);width:min(100%,500px);gap:10px;padding:20px 0}.result-stats>div{display:grid;gap:7px;text-align:center;min-width:0}.result-stats span{font-size:10px;color:#c0c5ac}.result-stats strong{font:600 19px NightDisplay,var(--display);color:#dcc893}.timeline-panel{width:min(100%,500px);padding:17px 0;border-top:1px solid #b59a5b33}.timeline-panel h3{font:600 15px var(--display);color:#dedcc5;margin:0 0 13px}.timeline{display:grid;gap:4px}.timeline-row{display:grid;grid-template-columns:28px 30px 20px 30px 1fr;align-items:center;gap:7px;min-height:34px;padding:3px 8px;background:#11281c;border-radius:3px}.timeline-row>span{font-size:9px;color:#c1c5ad}.timeline-value{font:600 17px NightDisplay,serif;text-align:center}.timeline-value.cpu{color:#dbbb7a}.timeline-value.player{color:#a6cbb2}.timeline-row em{font:600 9px var(--display);text-align:center;color:#9baa91}.timeline-row strong{justify-self:end;font-size:10px;font-weight:500;color:#c1c5b0}.timeline-row.player strong{color:#abd2b9}.timeline-row.cpu strong{color:#e0bb84}.result-actions{display:grid;width:min(100%,500px);gap:10px;margin-top:13px}.result-actions .primary-button{font:600 18px var(--display)}.result-screen.is-active .result-header{animation:word-arrival .5s var(--ease-out) both}.modal{width:min(calc(100% - 28px),480px);max-height:calc(100dvh - 36px);overflow-y:auto;border:1px solid #baa05f80;border-radius:9px;padding:0;color:#e9e5cf;background:#10281d;box-shadow:0 22px 75px #000c}.modal::backdrop{background:#020907cc;backdrop-filter:blur(4px)}.modal form{position:relative;padding:30px 25px 22px}.modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;display:grid;place-items:center;background:none;border:0;color:#c3c8b3}.modal-kicker{display:none}.modal h2{margin:7px 30px 18px 0;font:600 25px var(--display);letter-spacing:.05em}.rule-lead{color:#c8cebb;font-size:12px;line-height:1.9;margin-bottom:23px}.modal ol{padding:0;margin:0;list-style:none;display:grid;gap:18px;counter-reset:rules}.modal li{display:grid;grid-template-columns:105px 1fr;gap:10px;line-height:1.7;counter-increment:rules}.modal li strong{font-size:12px;color:#e0c88f}.modal li strong:before{content:counter(rules) ".";margin-right:6px;color:#a4b99c}.modal li span{color:#d0d6c2;font-size:12px}.rule-note{color:#c8cdb7;font-size:12px;line-height:1.8;border-top:1px solid #bea26733;padding-top:15px}.rule-note strong{display:block;margin-bottom:6px;color:#dcc78c}.rules-sticky{padding-top:8px}.rules-sticky .primary-button{width:100%;font-size:14px}.score-example{display:flex;align-items:center;gap:10px;padding:16px 0;margin-top:10px}.example-tile{width:42px;height:58px;background:#e8e5d6;border-radius:4px;overflow:hidden;box-shadow:2px 4px 7px #0006}.example-tile img{width:100%;height:100%;object-fit:contain}.example-tile i{display:none}.score-example em{font:600 10px var(--display);color:#aab797}.score-example strong{color:#b4d5b9;font-size:11px;margin-left:auto;line-height:1.6;max-width:140px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:73px;border-top:1px solid #b99e6030}.setting-row span{display:grid;gap:6px}.setting-row strong{font-size:14px}.setting-row small{font-size:11px;color:#c2cab5}.setting-row input{width:24px;height:24px;accent-color:#bc9c5b}.setting-row select{min-height:42px;padding:7px;background:#0a1c12;border:1px solid #b39a5b50;border-radius:4px;color:#dfdcc6}.danger-button{width:100%;min-height:45px;background:none;border:1px solid #a96d5550;color:#d4a68f;border-radius:4px;margin:12px 0;font-size:12px}.settings-modal .primary-button{width:100%}.modal.is-fallback-open{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:100;display:block}body.has-fallback-modal:before{content:"";position:fixed;inset:0;background:#03100bc9;z-index:99}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.is-embedded .share-button{display:none}@media(hover:hover)and (pointer:fine){.primary-button:hover{background:linear-gradient(115deg,#f4e8c9,#d5b673)}.opponent-card:hover{border-color:#d6bd77;transform:translateY(-2px)}.secondary-button:hover{background:#25412e}.text-button:hover{color:#e9d5a2}.icon-button:hover{background:#243a27}}@media(min-width:780px)and (min-height:600px){.title-screen{gap:23px}.title-atmosphere{background-position:center 50%}.title-mark h1{font-size:126px}.title-mark p{font-size:19px;max-width:580px}.hero-stage{height:275px}.hero-portrait{width:136px}.hero-companion{width:99px}.hero-companion.left{left:calc(50% - 161px)}.hero-companion.right{right:calc(50% - 156px)}.title-status{left:45px;top:35px}.title-settings{right:44px;top:30px}.locale-picker{right:104px;top:33px}.title-actions{width:360px}.opponent-list{gap:24px}.battle-screen{grid-template-rows:68px 63px 73px minmax(0,1fr) 95px;padding:14px 24px}.battle-header{padding-inline:8px}.round-meter>span{font-size:12px}.round-meter i{width:9px}.score strong{font-size:34px}.round-history-heading>span{font-size:11px}.round-history-heading small{font-size:10px}.round-record{grid-template-rows:13px 15px 15px}.round-record small{font-size:9px}.history-value{font-size:14px}.match-intro{inset:204px 24px 95px}.duel-announcer>strong{font-size:17px}.confirm-copy strong{font-size:25px}.table-seat{font-size:11px}}@media(max-height:690px)and (orientation:portrait){.title-screen{padding-top:63px;gap:12px}.title-mark h1{font-size:80px}.title-mark p{margin-top:17px;font-size:13px}.hero-stage{height:150px}.hero-portrait{width:83px}.hero-companion{width:62px}.hero-companion.left{left:calc(50% - 106px)}.hero-companion.right{right:calc(50% - 101px)}.title-footer{display:none}.records{padding-top:9px}.title-actions .primary-button{min-height:50px}.battle-screen{grid-template-rows:52px 47px 59px minmax(0,1fr) 77px}.battle-header{gap:5px;padding-inline:8px}.cpu-identity{gap:6px}.cpu-identity small{display:none}.cpu-identity strong{font-size:17px}.mini-seal{height:34px;width:29px}.battle-header .icon-button{width:31px;height:31px}.duel-announcer{top:64%;gap:2px}.duel-announcer>strong{font-size:12px}.duel-announcer>span{font-size:9px}.duel-announcer.is-result>span{font-size:15px}.duel-announcer>em{font-size:27px}.battle-controls{padding:9px 10px;gap:8px}.confirm-button{min-height:55px}.confirm-copy strong{font-size:20px}.match-intro{inset:158px 10px 77px}}@media(orientation:landscape)and (max-height:599px){.title-screen{padding:50px 50px 20px;display:none;grid-template-columns:1fr 1fr;grid-template-areas:"mark hero" "rule hero" "actions hero" "records hero";gap:12px 40px;align-content:center}.title-screen.is-active{display:grid}.title-mark{grid-area:mark}.title-mark h1{font-size:76px}.title-mark p{font-size:12px;margin-top:12px}.hero-stage{grid-area:hero;height:190px}.title-ruleline{grid-area:rule;font-size:9px}.title-actions{grid-area:actions}.records{grid-area:records}.title-footer{display:none}.title-status{top:14px;left:25px;font-size:8px}.title-settings{top:12px}.locale-picker{top:15px}.opponent-list{flex-direction:row;max-width:none;gap:14px;padding:5px 24px 24px}.opponent-card{grid-template-columns:1fr;gap:9px;padding:15px;min-height:0;flex:1}.opponent-seal{display:none}.opponent-arrow{grid-column:1}.opponent-copy strong{font-size:22px}.opponent-copy em{font-size:11px}.screen-header{padding:17px 24px}.battle-screen{max-width:980px;grid-template-columns:210px 1fr;grid-template-rows:55px 1fr 76px;gap:0 16px;padding:10px 16px}.battle-header{grid-area:1/1;grid-template-columns:1fr 32px 32px;gap:4px;padding:0}.round-meter{display:none}.scoreboard{grid-area:2/1;align-self:start;padding:13px 0;grid-template-columns:1fr;gap:8px}.score-divider{display:none}.round-history{grid-area:2/1;align-self:end;padding:0 0 12px}.round-history-heading{display:block}.round-history-heading small{display:block;margin-top:3px}.round-history-grid{grid-template-columns:repeat(9,1fr);gap:2px}.round-record{padding:1px}.three-layer,.tile-hit-grid,.table-surface,.duel-announcer{grid-area:1/2/4/3}.battle-controls{grid-area:3/1;padding:4px 0;grid-template-columns:38px 1fr;gap:8px}.selection-readout span{display:none}.selection-readout strong{font-size:25px}.confirm-button{padding:8px 12px;min-height:50px}.confirm-copy strong{font-size:18px}.confirm-copy small{font-size:8px}.duel-announcer>strong{font-size:12px}.duel-announcer.is-result>span{font-size:16px}.duel-announcer>em{font-size:25px}.match-intro{inset:10px 16px 10px 242px}.result-screen{padding:25px 24px;display:none;grid-template-columns:1fr 1.3fr;grid-template-areas:"result timeline" "scores timeline" "stats timeline" "actions timeline";gap:5px 30px;align-content:start}.result-screen.is-active{display:grid}.result-header{grid-area:result}.result-header>span{margin-bottom:5px;font-size:9px}.result-header h2{font-size:36px;margin-bottom:9px}.result-header p{font-size:10px}.final-score{grid-area:scores;margin:8px 0 0;padding:10px 0;gap:20px}.final-score strong{font-size:35px}.result-stats{grid-area:stats;padding:10px 0}.timeline-panel{grid-area:timeline;padding-top:0;border:0}.result-actions{grid-area:actions;gap:6px}.result-actions .primary-button,.result-actions .secondary-button{min-height:40px;padding:10px;font-size:12px}.result-actions .text-button{min-height:30px}}@media(prefers-reduced-motion:reduce){.title-screen.is-active .title-atmosphere,.title-screen.is-active .title-mark,.battle-screen[data-phase=result] .duel-announcer,.result-screen.is-active .result-header{animation:none}.primary-button,.secondary-button,.confirm-button,.opponent-card{transition:background .16s ease}.primary-button:active,.secondary-button:active,.confirm-button:active,.opponent-card:active{transform:none}}.battle-screen[data-phase=result] .battle-controls,.battle-screen[data-phase=archive] .battle-controls{opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .22s ease,transform .22s var(--ease-out)}.result-details{display:contents}@media(orientation:portrait)and (max-width:779px){.result-screen.is-active{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;padding:20px 23px 16px;overflow:hidden;align-items:stretch}.result-header>span{margin-bottom:8px}.result-header h2{font-size:clamp(32px,6cqh,48px);margin-bottom:10px}.result-header p{font-size:11px;line-height:1.6}.final-score{margin:0;padding:9px 0;justify-self:center;width:100%}.final-score strong{font-size:clamp(32px,5cqh,43px)}.result-details{display:block;min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;justify-self:center;width:100%;padding-right:3px}.result-details:focus-visible{outline:1px solid var(--gold-bright);outline-offset:-1px}.result-stats{padding:12px 0;justify-self:center;width:100%}.timeline-panel{display:block;overflow:visible;width:100%;padding:10px 0 0}.timeline-panel h3{margin:0 0 10px}.timeline{overflow:visible}.result-actions{position:static;justify-self:center;width:100%;padding:0;margin:0;background:none;grid-template-columns:1fr 1fr;gap:8px}.result-actions .primary-button{grid-column:1/-1;min-height:48px;padding:10px;font-size:16px}.result-actions .secondary-button{min-height:44px;padding:8px;font-size:11px}.result-actions .text-button{grid-column:1/-1;min-height:44px}}@media(min-width:780px)and (min-height:600px){.result-screen{max-width:1120px;margin:0 auto;padding:36px 40px}.result-screen.is-active{display:grid;grid-template-columns:1fr 1.1fr;grid-template-areas:"verdict timeline" "scores timeline" "stats timeline" "actions timeline";gap:16px 48px;align-content:center;align-items:start;justify-items:center}.result-header{grid-area:verdict}.result-header h2{font-size:60px;margin-bottom:12px}.result-header>span{margin-bottom:10px}.final-score{grid-area:scores;margin:0;padding:16px 0}.final-score strong{font-size:46px}.result-stats{grid-area:stats;padding:10px 0}.timeline-panel{grid-area:timeline;max-height:calc(100dvh - 72px);overflow-y:auto}.timeline-row{min-height:42px}.result-actions{grid-area:actions;margin:0;gap:8px}.result-actions .primary-button,.result-actions .secondary-button{min-height:48px;padding:10px}.result-actions .text-button{min-height:32px}}:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}.app-shell{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);container-type:size;container-name:game-viewport}.screen{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}.title-screen{overflow-y:auto;justify-content:safe center}.title-screen>.title-mark,.title-screen>.hero-stage,.title-screen>.title-ruleline,.title-screen>.title-actions,.title-screen>.records{flex-shrink:0}.icon-button,.back-button,.modal-close{width:44px;height:44px}.locale-picker select{min-height:44px}.modal-close{top:8px;right:8px}.modal{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px)}.battle-header{grid-template-columns:minmax(0,1fr) auto 44px 44px;gap:6px;padding-inline:8px}.battle-header .icon-button{width:44px;height:44px}.cpu-identity div{min-width:0}.cpu-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-status{max-width:calc(100% - 210px);flex-wrap:wrap;gap:4px 8px}.table-seat.cpu{top:10px}.table-seat.you{bottom:10px}.battle-screen.is-compact-table .duel-announcer.is-result{top:var(--duel-text-top)}.battle-screen.is-compact-table .duel-announcer.is-result>span{font-size:15px}.battle-screen.is-compact-table .duel-announcer.is-result>em{font-size:27px}.battle-screen.is-compact-table[data-phase=result] .table-seat.you,.battle-screen.is-compact-table[data-phase=archive] .table-seat.you{visibility:hidden}@media(orientation:portrait)and (max-width:779px){@container game-viewport (max-height:700px){.battle-screen{grid-template-rows:58px 46px 0 minmax(0,1fr) 80px}.round-history{display:none}.match-intro{inset:104px 10px 80px}}@container game-viewport (max-height:620px){.title-screen{padding:64px 24px 20px;gap:10px}.title-mark h1{font-size:clamp(64px,22vw,80px)}.title-mark p{font-size:12px;margin-top:16px}.hero-stage{height:clamp(105px,24cqh,150px)}.title-actions .primary-button{min-height:48px}.records{padding-top:9px}.title-footer{display:none}}}@media(orientation:landscape)and (max-height:599px){.battle-header{grid-template-columns:minmax(0,1fr) 44px 44px;padding-inline:0}}
