:root{--brand-lacquer:#17191b;--brand-surface:#202326;--brand-surface-raised:#2b2e31;--brand-line:#c8ac6e40;--brand-line-neutral:#494c4e;--brand-washi:#fcfaf2;--brand-text-secondary:#c6c3ba;--brand-text-muted:#aba9a2;--brand-gold:#c8ac6e;--brand-gold-light:#dfc890;--brand-on-gold:#17191b;--brand-urushi-red:maroon;--brand-kaya:#e3c08d;--brand-warning:#ffcf66;--brand-critical:#ff8d8d;--brand-danger-surface:#372523;--brand-danger-line:#8c554e;--brand-danger-text:#ffb6ad}@font-face{font-family:Cinzel;src:url(/fonts/Cinzel.woff2)format("woff2");font-weight:400 700;font-display:swap}:root{--color-lacquer:#0a0a0a;--color-urushi-red:var(--brand-urushi-red);--color-gold:#c8ac6e;--color-gold-light:#f1d592;--color-washi:var(--brand-washi);--color-kaya:var(--brand-kaya);--surface-low:#141414;--surface-base:#1e1e1e;--surface-high:#2a2a2a;--bg-urushi:none;--bg-kinpaku:none;--bg-washi:none;--font-piece:"Cinzel", Georgia, serif;--color-piece-white:#fbf7ee;--color-piece-black:#1c1714;--color-square-light:#ecd9b9;--color-square-dark:#ae7f58;--color-coord:#ffffff9e;--font-main:"Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-accent:var(--font-main);--spacing-ma-sm:.5rem;--spacing-ma-md:1.5rem;--spacing-ma-lg:3rem;--spacing-ma-xl:4rem;--radius-sharp:0px;--shadow-premium:0 20px 40px #0009}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--color-lacquer);background-image:var(--bg-urushi);color:var(--color-washi);-webkit-font-smoothing:antialiased;touch-action:manipulation;background-size:cover;background-attachment:fixed;margin:0;padding:0;overflow-x:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}body:after{content:"";background-image:var(--bg-washi);opacity:.05;pointer-events:none;z-index:9999;width:100%;height:100%;position:fixed;top:0;left:0}h1,h2,h3{font-family:var(--font-accent);letter-spacing:.3em;background:linear-gradient(to bottom, var(--color-gold-light), var(--color-gold));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-weight:700}button{background:var(--bg-kinpaku);background-color:var(--color-gold);color:var(--color-lacquer);font-family:var(--font-main);cursor:pointer;border-radius:var(--radius-sharp);letter-spacing:.15em;background-size:cover;border:none;padding:1rem 2rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}button:before{content:"";background:#ffffff1a;width:100%;height:100%;transition:transform .3s;position:absolute;top:0;left:0;transform:translate(-100%)}@media (hover:hover){button:hover:before{transform:translate(0)}button:hover{filter:brightness(1.1);box-shadow:0 0 20px #c8ac6e4d}}input,select,textarea{font:inherit;color:inherit;font-size:1rem}.panel{background-color:var(--surface-low);padding:var(--spacing-ma-md);border-radius:var(--radius-sharp);box-shadow:var(--shadow-premium)}@media (width<=900px){body{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--color-lacquer:var(--brand-lacquer);--color-gold:var(--brand-gold);--color-gold-light:var(--brand-gold-light);--radius-sharp:6px;--shadow-premium:none}body{background:var(--color-lacquer);line-height:1.6}body:after,button:before{display:none}.back-btn{justify-self:start;width:auto;min-width:72px;min-height:40px;padding:0 .9rem;font-size:.875rem}@media (pointer:coarse){.back-btn{min-height:44px}}h1,h2,h3{-webkit-text-fill-color:currentColor;color:var(--color-washi);letter-spacing:.02em;background:0 0}button{background:var(--brand-surface-raised);border:1px solid var(--brand-line-neutral);color:#f3f1eb;letter-spacing:0;min-height:44px;padding:.65rem 1rem;font-size:1rem;font-weight:600;transition:background .15s,border-color .15s}button.primary{background:var(--color-gold);border-color:var(--color-gold);color:var(--brand-on-gold)}button.danger{color:var(--brand-danger-text);border-color:var(--brand-danger-line);background:var(--brand-danger-surface)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-gold-light);outline-offset:4px}input:focus-visible,select:focus-visible{outline-offset:1px}input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--brand-surface);border:1px solid #56595c;border-radius:6px;max-width:100%;min-height:44px;padding:.6rem .75rem}input[type=checkbox],input[type=radio]{accent-color:var(--color-gold)}summary{cursor:pointer;color:#d7d5ce;padding:.65rem 0;font-size:.875rem}.text-button{color:#d0cec7;background:0 0;border-color:#0000;padding:.5rem .75rem;font-size:.875rem}@media (hover:hover){button:hover{box-shadow:none;filter:none;border-color:#a99b7e}button.primary:hover{background:var(--brand-gold-light)}.text-button:hover{background:var(--brand-surface-raised)}}.app-header .logo-text span{font-family:var(--font-piece);color:var(--color-gold-light);font-size:1.5rem}.app-footer{opacity:1;color:var(--brand-text-muted);letter-spacing:0;font-size:.75rem}.engine-status{color:#c0beb6;font-size:.875rem}.history-import{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:24px;display:flex}.history-import p{color:#bdbbb4;font-size:.875rem}.result-record-tools{text-align:left;border-top:1px solid #464646;margin-top:24px}.result-modal{max-height:calc(100dvh - 32px);overflow-y:auto}.secondary-tools{color:var(--brand-text-secondary);margin:16px 0}.secondary-tools summary,.rule-card summary,.tester-section>summary,.replay-log summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}.secondary-tools[open]>summary{margin-bottom:8px}.secondary-tools p,.room-id{overflow-wrap:anywhere}.rule-card summary .rule-summary{margin:8px 0 0;font-size:.875rem;font-weight:400;display:block}.rule-card[open]>p{margin-top:16px}.pvp-seat-grid{margin-top:20px}.result-content .result-actions{margin:20px 0}.result-content .result-summary{color:var(--brand-text-secondary);flex-wrap:wrap;gap:12px;display:flex}.result-content .result-reason{margin-bottom:12px}.tutorial-screen,.tester-screen{background:0 0}.rule-card,.online-guide,.tester-section{background:var(--brand-surface);box-shadow:none;border-color:#414447;border-radius:8px}.rule-card .rule-summary{color:var(--brand-text-secondary)!important}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}p,li,dd,small,summary{word-break:auto-phrase;text-wrap:pretty}.app-container{flex-direction:column;min-height:100dvh;display:flex}.app-header{padding:1rem var(--spacing-ma-lg);backdrop-filter:blur(5px);z-index:100;background-color:#0000004d;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.logo-text{margin:0;font-size:1.5rem}.logo-text span{font-family:var(--font-main);opacity:1;letter-spacing:.12em;margin-left:0;font-size:1.25rem}.logo-home-button{appearance:none;min-height:0;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0;overflow:visible}.logo-home-button:hover{filter:none;box-shadow:none}.app-header-actions{align-items:center;gap:.75rem;display:flex}.site-share-button{color:#fcfaf2d1;background:#1414146b;border:1px solid #c8ac6e47;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;min-height:40px;padding:.45rem .7rem;font-size:.75rem;display:inline-flex}.site-share-button svg{fill:currentColor;width:17px;height:17px;overflow:visible}.site-share-button path{fill:none;stroke:currentColor;stroke-width:1.5px}.site-share-status{z-index:120;color:var(--color-washi);box-shadow:var(--shadow-premium);background:#141414f0;border:1px solid #c8ac6e4d;border-radius:6px;margin:0;padding:.65rem .85rem;font-size:.75rem;position:fixed;top:4.75rem;right:1rem}.engine-status{font-family:var(--font-accent);letter-spacing:.1em;color:var(--color-gold);font-size:.6875rem}main{flex-grow:1}.route-notice{width:min(560px,100% - 2rem);margin:var(--spacing-ma-lg) auto;box-shadow:var(--shadow-premium);text-align:center;background:#141414e6;border:1px solid #c8ac6e38;padding:2rem}.route-notice h2{letter-spacing:.12em;text-transform:none;margin:0 0 .8rem;font-size:1.5rem}.route-notice p{color:#fcfaf2d6;line-height:1.7}.route-notice-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1.4rem;display:flex}.route-notice-actions button{min-width:120px;color:var(--color-washi);background:#1e1e1edb;border:1px solid #c8ac6e40;padding:.8rem 1.2rem;font-size:.875rem}.app-footer{text-align:center;color:var(--brand-text-muted);letter-spacing:.2em;padding:1rem;font-size:.75rem}@media (width<=600px){.app-header{padding:.85rem 1rem}.logo-text span{font-size:1rem}.engine-status{font-family:var(--font-main);letter-spacing:.04em;font-size:.625rem}.app-header-actions{gap:.35rem}.site-share-button{width:40px;padding:0}.site-share-label{display:none}.site-share-status{top:4.25rem}}@media (width<=1000px){.app-container.screen-play .app-header{display:none}}.board-outer-container{--cell:var(--board-cell,60px);background-color:var(--surface-low);padding:clamp(6px, calc(var(--cell) * .2), 12px);user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;border:1px solid #ffffff14;border-radius:6px;flex-direction:column;align-items:center;display:flex;position:relative;box-shadow:0 16px 40px #0000008c}.shogi-board,.captured-piece-container{touch-action:none}.board-outer-container.read-only .shogi-board,.board-outer-container.read-only .captured-piece-container{touch-action:manipulation}@media (width<=600px){.board-outer-container{padding:4px}}.board-row{justify-content:flex-start;width:100%;display:flex}.board-middle-content{justify-content:flex-start;align-items:stretch;display:flex}.corner-spacer{width:calc(var(--cell) * .34)}.coords-files{width:calc(var(--cell) * 8);display:flex}.coords-files .coord-label{width:var(--cell);height:calc(var(--cell) * .34);font-size:clamp(9px, calc(var(--cell) * .25), 15px);color:var(--color-coord);font-weight:700;font-family:var(--font-accent);opacity:.9;justify-content:center;align-items:center;display:flex}.coords-ranks{width:calc(var(--cell) * .34);flex-direction:column;display:flex}.coords-ranks .coord-label{height:var(--cell);width:calc(var(--cell) * .34);font-size:clamp(9px, calc(var(--cell) * .25), 15px);color:var(--color-coord);font-weight:700;font-family:var(--font-piece);opacity:.9;justify-content:center;align-items:center;display:flex}.shogi-board{grid-template-columns:repeat(8, var(--cell));grid-template-rows:repeat(8, var(--cell));background-color:var(--color-square-light);border:0;display:grid;position:relative}.cell.dark-square{background-color:var(--color-square-dark)}.cell{width:var(--cell);height:var(--cell);cursor:pointer;z-index:0;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:relative}@media (hover:hover){.cell:hover{background-color:#cdd26a4d}}.cell.last-move{background-color:#cdd26a8c}.cell.selected{background-color:#6aaa649e}.cell-highlight-layer{pointer-events:none;z-index:3;position:absolute;inset:0}.true-king-mark{z-index:4;width:max(15px, calc(var(--cell) * .31));height:max(15px, calc(var(--cell) * .31));font:bold max(11px, calc(var(--cell) * .24))/1 sans-serif;color:#261604;pointer-events:none;background:#ffe07d;border:1.5px solid #2b1806;border-radius:50%;place-items:center;display:grid;position:absolute;top:1px;left:1px;box-shadow:0 1px 4px #000000b3,0 0 0 1px #ffe07de6}.cell:has(.true-king-mark){box-shadow:inset 0 0 0 2px #d4af37b8}.cell.phase-moved{background:linear-gradient(135deg,#22222229,#22222205),#00000014}.cell.phase-moved .piece-wrapper{opacity:.58}.cell.trap-marker:before{content:"";pointer-events:none;border:2px dashed #41201375;position:absolute;inset:6px}.cell.trap-marker.sente:before{border-color:#7c1e1e9e}.cell.trap-marker.gote:before{border-color:#2654749e}.trap-badge{z-index:8;min-width:17px;height:17px;color:var(--color-gold-light);background:#141414d6;border:1px solid #d4af3780;justify-content:center;align-items:center;padding:0 4px;font-size:.65rem;font-weight:800;line-height:1;display:inline-flex;position:absolute;top:3px;right:3px}.cell.disappearance-marker.forecast,.cell.disappearance-marker.confirmed{--danger:.5;--k-rgb:103, 91, 240;background:radial-gradient(circle at 50% 50%, rgba(var(--k-rgb), calc(.14 + .42 * var(--danger))), transparent calc(58% + 30% * var(--danger))), rgba(var(--k-rgb), calc(.06 + .34 * var(--danger)));transition:background .4s}.cell-fx.forecast-rings i{inset:calc(var(--cell) * (.035 + .11 * var(--ring)));border:max(2px, calc(var(--cell) * (.036 + .012 * var(--danger)))) solid rgba(var(--k-rgb), calc(.55 + .4 * var(--danger)));opacity:0;transition:opacity .35s,border-color .4s;position:absolute}.cell-fx.forecast-rings i.on{opacity:1}.cell-fx.forecast-rings i:first-child{--ring:0}.cell-fx.forecast-rings i:nth-child(2){--ring:1}.cell-fx.forecast-rings i:nth-child(3){--ring:2}.cell-fx.forecast-rings i:nth-child(4){--ring:3}.cell.disappearance-marker.vanished:before,.cell.disappearance-marker.immune:before{content:"";pointer-events:none;border:2px solid #0000;position:absolute;inset:7px}.cell.disappearance-marker.vanished{background:radial-gradient(circle,#1010106b,#0000 60%),#0000002e}.cell.disappearance-marker.vanished:before{border-color:#121212b3}.cell.disappearance-marker.immune{background:radial-gradient(circle,#d4af374d,#0000 58%),#d4af371a}.cell.disappearance-marker.immune:before{border-color:#d4af37c2}.cell-fx{pointer-events:none;z-index:6;position:absolute;inset:0}.cell-fx.under{z-index:-1}.cell-fx.kagemusha-glow{opacity:0;background:#d4af37e6;border-radius:3px;animation:1.5s .3s both kagemusha-glow}@keyframes kagemusha-glow{0%{opacity:0}26.7%{opacity:.8}66.7%{opacity:.8}to{opacity:0}}.cell-fx.forbidden-flash{background:#ef4444;animation:.2s forwards forbidden-flash}@keyframes forbidden-flash{0%{opacity:0}50%{opacity:.5}to{opacity:0}}.cell.jiggle{animation:.15s ease-in-out cell-jiggle}.cell.jiggle.jiggle-b{animation-name:cell-jiggle-b}@keyframes cell-jiggle{0%{transform:translateY(0)}50%{transform:translateY(-3px)}to{transform:translateY(0)}}@keyframes cell-jiggle-b{0%{transform:translateY(0)}50%{transform:translateY(-3px)}to{transform:translateY(0)}}.cell-fx.check-attacker{background:#b9891b2e}.cell-fx.check-king{background:#ae392b1f;border:2px solid #ae392b}.cell-fx.check-king.level-2{border-width:3px}.cell-fx.check-king.level-3,.cell-fx.check-king.level-4,.cell-fx.check-king.level-5{border-width:4px}.cell-fx.check-king.pulse{animation:.5s ease-in-out infinite check-king-pulse}@keyframes check-king-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@media (prefers-reduced-motion:reduce){.cell-fx.kagemusha-glow{animation:1.5s step-end .3s both kagemusha-glow-static!important}.cell.jiggle{animation:none!important}}@keyframes kagemusha-glow-static{0%,99%{opacity:.8}to{opacity:0}}.integrated-komadai{width:calc(var(--cell) * 8);height:auto;min-height:max(var(--cell), 44px);margin-left:calc(var(--cell) * .34);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.integrated-komadai.gote,.integrated-komadai.sente{background:0 0}.integrated-komadai.top{margin-bottom:4px}.integrated-komadai.bottom{margin-top:4px}.grid-with-labels{flex-direction:column;align-items:flex-start;display:flex}.captured-pieces-tray{background-color:#0000;align-items:center;gap:10px;width:100%;height:100%;margin:0;padding:0 4px;display:flex}.player-indicator{text-align:center;justify-content:center;align-items:center;min-width:45px;font-size:1.05rem;font-weight:700;display:flex}.player-indicator.sente,.player-indicator.gote{color:#ffffffb8;font-size:.85rem;font-weight:600}.pieces-row{flex-flow:row;justify-content:flex-start;gap:8px;width:100%;min-width:0;display:flex;overflow:visible}.captured-piece-container{flex:0 1 var(--board-cell,60px);min-width:28px;height:clamp(40px, calc(var(--board-cell,60px) * .86), 56px);color:inherit;cursor:pointer;background:0 0;border:1.5px solid #0000;border-radius:0;justify-content:center;align-items:center;padding:2px;transition:border-color .18s,background-color .18s,box-shadow .18s;display:flex;position:relative}.captured-piece-container:disabled{cursor:default}.captured-piece-container.active{border-color:var(--color-gold);background-color:#d4af371a;box-shadow:0 0 10px #d4af3773}.captured-piece-wrapper{width:100%;max-width:calc(var(--board-cell,60px) * .94);aspect-ratio:1;transition:transform .2s}@media (hover:hover){.captured-piece-container:not(:disabled):hover .captured-piece-wrapper{transform:translateY(-2px)}}@media (pointer:coarse){.captured-piece-container{min-height:40px}}@media (width<=600px){.captured-pieces-tray{gap:8px;padding:0 8px}.player-indicator{min-width:32px;font-size:.85rem}.pieces-row{gap:4px}}.piece-count{--badge-size:clamp(17px, calc(var(--board-cell,60px) * .42), 21px);background-color:var(--color-urushi-red);color:#fff;font-variant-numeric:tabular-nums;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:clamp(12px, calc(var(--board-cell,60px) * .3), 15px);min-width:var(--badge-size);height:var(--badge-size);box-sizing:border-box;z-index:5;pointer-events:none;border:1.5px solid #fff;border-radius:999px;justify-content:center;align-items:center;padding:0 3px;font-weight:800;line-height:1;display:flex;position:absolute;top:2px;right:-3px;box-shadow:0 1px 3px #000000b3}.empty-tray-horizontal{color:#ffffff57;font-size:.78rem}.integrated-komadai.top .captured-piece-container{min-width:22px}@media (width<=600px){.integrated-komadai.top .pieces-row{gap:2px}}.board-fx-layer{pointer-events:none;z-index:10;position:absolute;inset:0;overflow:visible}.board-fx-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.light-thread line{fill:none;stroke:#fbbf24;stroke-linecap:round;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:.5s cubic-bezier(.25,.46,.45,.94) forwards thread-draw,1s linear .5s forwards thread-pulse-core}.light-thread line.glow{stroke-width:.1px;opacity:.25;animation-name:thread-draw,thread-pulse-glow}.light-thread line.core{stroke-width:.033px;opacity:1}@keyframes thread-draw{to{stroke-dashoffset:0}}@keyframes thread-pulse-core{0%{opacity:1}35%{opacity:.6}70%{opacity:1}to{opacity:0}}@keyframes thread-pulse-glow{0%{opacity:.25}35%{opacity:.15}70%{opacity:.25}to{opacity:0}}.board-fx-item{animation:fx-lifetime var(--life,1s) linear forwards}@keyframes fx-lifetime{0%{visibility:visible}to{visibility:visible}}.board-fx-cell{left:calc(var(--dcol) * var(--cell));top:calc(var(--drow) * var(--cell));width:var(--cell);height:var(--cell);justify-content:center;align-items:center;display:flex;position:absolute}.board-fx-ghost{--exit-scale:1;animation:fx-vanish var(--life,.35s) ease-in forwards, fx-lifetime var(--life,.35s) linear forwards}.board-fx-ghost.exit-pitfall{--exit-scale:0;z-index:2}.board-fx-ghost.exit-explosion{--exit-scale:.5}@keyframes fx-vanish{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(var(--exit-scale,1))}}.board-fx-check-flash{border:3px solid #c0392bcc;animation:.35s forwards fx-check-flash;position:absolute;inset:0}@keyframes fx-check-flash{0%{opacity:0}25%{opacity:1}to{opacity:0}}.board-fx-phase-flash{border:3px solid var(--brand-gold);opacity:0;border-radius:4px;animation:.3s forwards fx-phase-flash;position:absolute;inset:-2px}.board-fx-phase-flash.initial{animation-delay:.25s}@keyframes fx-phase-flash{0%{opacity:0}26.7%{opacity:.8}to{opacity:0}}.board-fx-forecast-pulse span{width:calc(var(--cell) * 1.6);height:calc(var(--cell) * 1.6);opacity:0;animation:fx-forecast-pulse .72s var(--pulse-delay,0s) forwards;background:#9333ea73;border-radius:50%;flex:none}@keyframes fx-forecast-pulse{0%{opacity:0;transform:scale(.2)}16.7%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1)}}.game-start-cue{z-index:260;pointer-events:auto;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.game-start-cue-card{border-top:1px solid var(--color-gold,#c9a961);border-bottom:1px solid var(--color-gold,#c9a961);background:#101112e0;justify-items:center;gap:6px;padding:18px 36px;animation:1.4s ease-out forwards game-start-cue;display:grid}.game-start-cue-card b{font-family:var(--font-piece);font-size:clamp(26px, calc(var(--cell,60px) * .7), 40px);letter-spacing:6px;color:var(--color-gold-light,#e6cf95)}.game-start-cue-card span{font-size:clamp(13px, calc(var(--cell,60px) * .28), 16px);color:#e8e4da}@keyframes game-start-cue{0%{opacity:0;transform:scale(.96)}11%{opacity:1;transform:scale(1)}82%{opacity:1}to{opacity:0}}.trap-telop{pointer-events:none;z-index:250;justify-content:center;display:flex;position:absolute;top:15%;left:0;right:0}.trap-telop-text{font-family:var(--font-piece);font-size:clamp(24px, calc(var(--cell,60px) * .6), 36px);letter-spacing:4px;color:#a4161a;text-shadow:2px 3px 6px #000000b3;font-weight:900;animation:.88s forwards trap-telop}@keyframes trap-telop{0%{opacity:0;transform:scale(0)}9%{opacity:1}13.6%{transform:scale(1.2)}22.7%{transform:scale(1)}77.3%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.false-victory{pointer-events:none;z-index:250;justify-content:center;align-items:flex-start;padding-top:4%;display:flex;position:absolute;inset:0;overflow:hidden}.false-victory-sign{border:3px solid var(--brand-gold);background:#1a1005;border-radius:6px;align-items:center;padding:8px 14px;animation:.95s forwards fv-sign;display:flex;box-shadow:0 6px 10px #0009}@keyframes fv-sign{0%{transform:translateY(-35px)rotate(0)}15.8%{transform:translateY(0)rotate(0)}63.2%{transform:translateY(0)rotate(0)}84.2%{transform:translateY(0)rotate(15deg)}to{transform:translateY(70px)rotate(15deg)}}.fv-char{font-family:var(--font-piece);color:var(--brand-gold);text-shadow:0 0 8px #c8ac6e80;opacity:0;font-size:clamp(28px,6vw,42px);line-height:1.1}.fv-katsu{animation:.2s .15s forwards fv-fade}.fv-ri{animation:.1s .5s forwards fv-ri}@keyframes fv-fade{to{opacity:1}}@keyframes fv-ri{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 50% 0 0)}}@media (prefers-reduced-motion:reduce){.game-start-cue-card{animation:none!important}.trap-telop-text{opacity:1;transform:none;animation:none!important}.false-victory-sign{transform:none;animation:none!important}.fv-char{opacity:1;animation:none!important}.fv-ri{clip-path:inset(0 50% 0 0)}.board-fx-item{animation:fx-lifetime var(--life,.6s) linear forwards!important;animation-duration:var(--life,.6s)!important}}.thread-dot{fill:#fff3d6;stroke:var(--brand-gold);stroke-width:.015px;animation:.5s ease-out forwards thread-dot}@keyframes thread-dot{0%{opacity:1;transform:translate(0)}99%{opacity:1}to{opacity:0;transform:translate(var(--tx), var(--ty))}}@media (prefers-reduced-motion:reduce){.thread-dot{display:none}}.ui-dialog{background:var(--brand-surface);width:min(440px,100% - 32px);max-height:calc(100dvh - 48px);color:var(--color-washi);border:1px solid var(--brand-line-neutral);border-radius:12px;margin:auto;padding:24px;overflow-y:auto}.ui-dialog::backdrop{background:#000000a6}@media (width>=1001px){.ui-dialog.ui-dialog-anchored{inset:auto;top:var(--ui-dialog-anchor-y,50%);left:var(--ui-dialog-anchor-x,50%);margin:0;position:fixed;transform:translate(-50%,-50%)}}.ui-dialog-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.ui-dialog-heading h2{letter-spacing:0;font-size:1.25rem}.ui-dialog p{margin-bottom:16px;line-height:1.8}.ui-dialog input{width:100%}.ui-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.ui-dialog.promotion-dialog{backdrop-filter:blur(2px);text-shadow:0 0 3px #000000f2,0 0 6px #000c;background:#18120fb8;border:1px solid #c8ac6e8c;width:min(332px,100% - 24px);margin:calc(50dvh + 42px) auto auto;padding:14px 16px;box-shadow:0 8px 24px #00000073}.ui-dialog.promotion-dialog::backdrop{background:#0000002e}@media (width>=1001px){.ui-dialog.ui-dialog-anchored.promotion-dialog{top:calc(var(--ui-dialog-anchor-y,50%) + 92px);margin:0}}.ui-dialog.promotion-dialog .ui-dialog-heading{margin-bottom:10px}.ui-dialog.promotion-dialog .ui-dialog-heading h2{font-size:1.05rem}.ui-dialog.promotion-dialog .ui-dialog-actions{justify-content:center;gap:8px;margin-top:8px}.promotion-overlay{z-index:1000;backdrop-filter:blur(10px);background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.promotion-modal{width:min(400px,100vw - 32px);padding:clamp(1.25rem, 5vw, var(--spacing-ma-lg));border:1px solid var(--color-gold);background:var(--surface-base);background-image:var(--bg-urushi);background-size:cover;flex-direction:column;align-items:center;display:flex}.promotion-title{margin-bottom:.5rem}.promotion-sub{font-family:var(--font-accent);color:var(--color-gold);letter-spacing:.3em;margin-bottom:2rem;font-size:.8125rem}.promotion-options{gap:var(--spacing-ma-md);width:100%;margin-bottom:2rem;display:flex}.promo-btn{flex-direction:column;flex:1;align-items:center;padding:1.5rem;display:flex}.promo-btn.yes{background:var(--bg-kinpaku);background-color:var(--color-gold)}.promo-btn.no{background:var(--surface-high);color:var(--color-washi)}.promo-btn .btn-label{font-size:1.5rem;font-weight:700}.promo-btn .btn-sub{opacity:.8;font-size:.625rem}.promo-cancel{color:var(--color-gold);text-transform:none;letter-spacing:normal;background:0 0;min-height:44px;padding:.5rem;font-size:.8125rem}.promo-cancel:hover{box-shadow:none;filter:none;text-decoration:underline}@media (width<=480px){.promotion-options{gap:var(--spacing-ma-sm)}.promo-btn{padding:1.1rem .75rem}}.promotion-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.promotion-choices button{flex-direction:column;align-items:center;gap:4px;min-height:44px;padding:8px 4px;display:flex}.promotion-choice-piece{background:var(--color-kaya);border-radius:6px;width:48px;height:48px}.promotion-choice-label{font-size:.8rem}.game-info-sidebar{background-color:#1e1e1e;border:1px solid #ffffff0d;border-radius:4px;flex-direction:column;height:100%;display:flex;overflow:hidden;box-shadow:0 4px 20px #0006}.player-box{background-color:#0000004d;padding:12px 16px;transition:all .3s}.player-box.active{box-shadow:inset 4px 0 0 var(--color-gold);background-color:#c8ac6e1a}.player-main{isolation:isolate;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.player-action{display:none}.timer-display{font-family:var(--font-accent);font-variant-numeric:tabular-nums;color:var(--color-washi);white-space:nowrap;flex:none;font-size:1.8rem;font-weight:700;line-height:1}.timer-display[data-tone=byoyomi]{color:#ffe29a}.timer-display[data-tone=low]{color:var(--brand-warning)}.timer-display[data-tone=critical]{color:var(--brand-critical)}.player-box.active .timer-display{color:#fff;text-shadow:0 0 15px #fff3}.player-box.active .timer-display[data-tone=byoyomi]{color:#ffe29a}.player-box.active .timer-display[data-tone=low]{color:var(--brand-warning)}.player-box.active .timer-display[data-tone=critical]{color:var(--brand-critical)}.phase-bar{z-index:-1;transform-origin:100%;opacity:0;pointer-events:none;background-color:#c8ac6e61;border-radius:2px;position:absolute;inset:-2px 0 -2px 20px}.phase-bar[data-state=on]{opacity:1;will-change:transform}.phase-bar[data-tone=critical]{background-color:#c8323280}.player-info{align-items:center;gap:10px;min-width:0;display:flex}.status-dot{background-color:#ffffff29;border:1px solid #ffffff47;border-radius:50%;width:10px;height:10px;transition:background-color .2s,box-shadow .2s}.player-box.active .status-dot{background-color:#4caf50;border-color:#81c784;animation:2s infinite blink;box-shadow:0 0 10px #4caf50}.player-box:not(.active) .player-info .name{color:#ffffffad}.player-box:not(.active) .timer-display{opacity:.72}.player-info .name{color:#fffffff2;font-size:1.125rem;font-weight:700}.player-info .rank{opacity:.4;background:#ffffff1a;border-radius:3px;padding:2px 6px;font-size:.8125rem}.player-info .rank:empty{display:none}.history-section{background-color:var(--brand-surface);flex-direction:column;flex:1;min-height:0;display:flex}.move-history-container{--history-row-height:33px;--history-visible-rows:5;height:calc(var(--history-row-height) * (var(--history-visible-rows) + 1));overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-gold) transparent;flex:none;overflow-y:auto}.history-table{border-collapse:collapse;table-layout:fixed;width:100%}.history-table th{z-index:1;height:var(--history-row-height);background-color:var(--brand-surface);color:var(--color-gold);text-align:left;padding:0 0 0 15px;font-size:.75rem;font-weight:700;position:sticky;top:0;box-shadow:inset 0 -1px #ffffff14}.history-table th.index{text-align:center;width:40px;padding:0}.history-row{border-bottom:1px solid #ffffff05}.history-row td{height:var(--history-row-height);padding:0;font-size:.875rem;line-height:1.2}.history-row .index{text-align:center;width:40px;color:var(--brand-text-muted);border-right:1px solid #ffffff05;font-size:.75rem}.move-val{color:#ffffffb3;width:50%;transition:all .2s;padding-left:15px!important}.move-val.last{color:var(--color-gold-light);background-color:#c8ac6e26;font-weight:700}.move-val.clickable{cursor:pointer}@media (hover:hover){.move-val.clickable:hover{color:var(--color-washi);background-color:#ffffff14}}.sidebar-controls{background-color:#0006;border-top:1px solid #ffffff0d;justify-content:space-between;padding:10px 20px;display:flex}.control-btn{color:#ffffff80;cursor:pointer;background:0 0;border:none;padding:5px;font-size:1.4rem;line-height:1;transition:all .2s}@media (hover:hover){.control-btn:hover{color:var(--color-gold);transform:scale(1.1)}}@media (pointer:coarse){.control-btn{min-width:44px;min-height:44px}}@keyframes blink{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@media (width<=1000px){.move-history-container{--history-visible-rows:3}.sidebar-controls{display:none}}.player-info{min-width:0}.player-status{text-overflow:ellipsis;white-space:nowrap;color:#d7f6ff;min-width:0;font-size:.75rem;font-weight:800;overflow:hidden}.player-info .name,.player-info .rank{white-space:nowrap;flex:none}@media (width>=1001px){.player-status{display:none}}.game-end-board{z-index:300;cursor:pointer;position:fixed;inset:0;overflow:hidden}.game-end-board-backdrop{animation:game-end-backdrop var(--backdrop-ms) ease-out both;background:#0000008c;position:absolute;inset:0}.game-end-board-drop{left:var(--board-center-x,50%);top:var(--board-center-y,50%);width:0;height:0;animation:game-end-drop var(--slide-ms) ease-out var(--slide-delay) both;justify-content:center;align-items:center;display:flex;position:absolute}.game-end-board-sign{position:relative}.game-end-board-plate{box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;padding:20px 44px;display:flex;position:relative;box-shadow:4px 8px 24px #000000b3}.game-end-board.victory .game-end-board-plate{border:2px solid var(--color-gold,var(--brand-gold));background:#2a1e08}.game-end-board.defeat .game-end-board-plate{background:#1a0808;border:2px solid #5c1010}.game-end-board-char{font-family:var(--font-piece);letter-spacing:.06em;text-transform:uppercase;opacity:0;font-size:clamp(40px,11vw,64px);line-height:1.1}.game-end-board.victory .game-end-board-char{color:var(--color-gold,var(--brand-gold));text-shadow:0 0 10px #c8ac6e99}.game-end-board.defeat .game-end-board-char{color:#c0a090;text-shadow:2px 2px 4px #000c}.game-end-board-char.first{animation:game-end-char var(--char-ms) ease-out var(--char1-delay) forwards}.game-end-board-char.second{animation:game-end-char var(--char-ms) ease-out var(--char2-delay) forwards}.game-end-board.victory .game-end-board-sign{animation:game-end-zoom .5s cubic-bezier(.34, 1.56, .64, 1) var(--zoom-delay) forwards}.game-end-board.defeat .game-end-board-sign{transform-origin:50% -22px;animation:game-end-tilt var(--tilt-ms) ease-in var(--tilt-delay) forwards}.game-end-board.defeat .game-end-board-exit{animation:game-end-exit var(--exit-ms) ease-in var(--exit-delay) forwards}@keyframes game-end-backdrop{0%{opacity:0}to{opacity:1}}@keyframes game-end-drop{0%{transform:translateY(-340px)}to{transform:translateY(0)}}@keyframes game-end-char{0%{opacity:0}to{opacity:1}}@keyframes game-end-zoom{0%{transform:scale(1)}to{transform:scale(1.08)}}@keyframes game-end-tilt{0%{transform:rotate(0)}to{transform:rotate(12deg)}}@keyframes game-end-exit{0%{transform:translateY(0)}to{transform:translateY(600px)}}@media (prefers-reduced-motion:reduce){.game-end-board-drop,.game-end-board.victory .game-end-board-sign,.game-end-board.defeat .game-end-board-sign,.game-end-board.defeat .game-end-board-exit{animation:none}}.sound-toggle{width:32px;min-width:32px;min-height:32px;color:var(--brand-text-secondary);justify-content:center;align-items:center;padding:4px;display:inline-flex}.sound-toggle[aria-pressed=true]{color:var(--color-gold-light)}.sound-toggle svg{flex:none}.app-container.screen-play .app-footer{display:none}.play-arena{justify-content:center;gap:var(--spacing-ma-md);padding:var(--spacing-ma-md) var(--spacing-ma-lg) .75rem;align-items:flex-start;max-width:1400px;margin:0 auto;display:flex;position:relative}.arena-main-content{flex:0 auto;justify-content:center;align-items:center;min-width:0;display:flex}.board-stack{--board-vertical-reserve:11.5rem;--board-cell:min(60px, calc((100vh - var(--board-vertical-reserve)) / 11.4), calc((100vw - 350px - 10rem - 72px) / 8));flex-direction:column;align-items:center;gap:15px;display:flex}@media (width>=1001px){.board-stack.replay-active{--board-vertical-reserve:19.75rem}}.variant-state-strip{scrollbar-width:none;flex-wrap:nowrap;flex:0 0 38px;justify-content:safe center;align-items:center;gap:.4rem;width:min(100%,576px);height:38px;display:flex;overflow:auto hidden}.variant-state-strip::-webkit-scrollbar{display:none}.variant-state-strip span{color:#fcfaf2d6;white-space:nowrap;font-variant-numeric:tabular-nums;background:#141414c7;border:1px solid #c8ac6e38;flex:none;align-items:center;min-height:28px;padding:0 .55rem;font-size:.75rem;font-weight:800;display:inline-flex}.variant-state-strip span span{background:0 0;border:0;min-height:0;padding:0}.variant-state-strip .danger{color:#ffd0c8;border-color:#be1f1f80}.variant-state-strip .effect{color:#d7f6ff;border-color:#508fa46b}.engine-dot{background:#fcfaf26b;border-radius:50%;width:9px;height:9px;min-height:9px}.engine-dot.ready{background:#74d49b}.engine-dot.loading,.engine-dot.uninitialized{background:var(--brand-gold);animation:1.5s infinite pulse-dot}.engine-dot.error{background:#d46a5f}.invader-phase-panel{width:min(100%,576px);height:38px;color:var(--color-washi);background:#141414c7;border:1px solid #c8ac6e47;flex-wrap:nowrap;flex:0 0 38px;justify-content:space-between;align-items:center;gap:.75rem;padding:0 .6rem;display:flex}.invader-phase-panel div{flex:auto;gap:.12rem;min-width:0;display:grid}.invader-phase-panel b{font-size:.8125rem}.invader-phase-panel span{color:#fcfaf2ad;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.invader-phase-panel button{min-width:96px;min-height:30px;color:var(--color-gold-light);background:#c8ac6e1f;border:1px solid #c8ac6e52;flex:none;padding:0 .75rem;font-size:.75rem;font-weight:800}.invader-phase-panel button:disabled{opacity:.45;cursor:default}.replay-panel{width:min(100%,576px);box-shadow:var(--shadow-premium);background:#151008eb;border:1px solid #c8ac6e75;gap:.65rem;padding:.85rem;display:grid}.replay-panel-heading{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.replay-panel-heading b{color:var(--color-gold-light);font-size:.875rem}.replay-panel-heading span{color:#fcfaf2c2;text-align:right;font-size:.75rem}.replay-panel-controls{flex-wrap:wrap;gap:.42rem;display:flex}.replay-panel-controls button{min-height:34px;color:var(--color-washi);background:#c8ac6e1a;border:1px solid #c8ac6e52;padding:0 .66rem;font-size:.75rem;font-weight:800}.replay-panel-controls button:disabled{cursor:not-allowed;opacity:.42}.replay-panel-controls .replay-play{color:var(--color-gold-light);background:#c8ac6e38}.replay-panel-controls .replay-exit{margin-left:auto}.trap-setup-panel{--trap-panel-height:76px;width:min(100%,576px);height:var(--trap-panel-height);flex:0 0 var(--trap-panel-height);color:var(--color-washi);background:#230e0ed1;border:1px solid #be1f1f52;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .7rem;display:flex;overflow:hidden}.trap-setup-panel.done{opacity:.7;background:#14141499;border-color:#d4af3733}.trap-setup-panel.waiting{background:#2c200cd1;border-color:#c8ac6e57}.trap-setup-panel div:first-child{gap:.12rem;min-width:0;display:grid}.trap-setup-panel b{font-size:.8125rem}.trap-setup-panel span{color:#fcfaf2ad;font-size:.8125rem}.trap-setup-panel h3{font-family:var(--font-main);letter-spacing:.04em;-webkit-text-fill-color:var(--color-gold-light);color:var(--color-gold-light);background:0 0;margin:0;font-size:.82rem;font-weight:800}.trap-setup-panel p{color:#fcfaf2ad;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}.trap-setup-panel b,.trap-setup-panel h3,.trap-setup-panel span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trap-setup-confirm{z-index:250;pointer-events:none;justify-content:center;align-items:flex-start;padding:22% 12px 0;display:flex;position:absolute;inset:0}.trap-setup-confirm-card{width:min(100%,320px);color:var(--color-washi);text-align:center;pointer-events:auto;background:#18100ef0;border:1px solid #be1f1f80;border-radius:8px;justify-items:center;gap:8px;padding:14px 16px;display:grid;box-shadow:0 12px 32px #0000008c}.trap-setup-confirm-card b{font-size:1rem}.trap-setup-confirm-card span{color:#fcfaf2b8;font-size:.8rem}.trap-setup-confirm-actions{gap:10px;margin-top:4px;display:flex}.trap-setup-confirm-actions button{min-width:112px;min-height:44px}.trap-setup-actions{flex-shrink:0;gap:.45rem;display:flex}.trap-setup-actions button{min-width:72px;min-height:34px;color:var(--color-gold-light);background:#c8ac6e1a;border:1px solid #c8ac6e47;padding:0 .65rem;font-size:.75rem;font-weight:800}.trap-setup-actions button:disabled{opacity:.45;cursor:default}.trap-setup-panel strong{min-width:56px;color:var(--color-gold-light);text-align:right;font-size:.8125rem}.disappearance-forecast-panel{width:min(100%,576px);height:64px;color:var(--color-washi);background:#1b1230d6;border:1px solid #845cd257;flex-wrap:nowrap;flex:0 0 64px;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex;overflow:hidden}.disappearance-forecast-panel.idle{opacity:.55}.disappearance-forecast-panel.revealed{background:#28124ce0;border-color:#be86ff94}.disappearance-forecast-panel.type-c{background:#300e21d6;border-color:#be1f1f61}.disappearance-forecast-panel div{flex:auto;gap:.14rem;min-width:0;display:grid}.disappearance-forecast-panel b{color:#eadcff;font-size:.8125rem}.disappearance-forecast-panel b,.disappearance-forecast-panel span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.disappearance-forecast-panel span{color:#fcfaf2ad;font-size:.75rem}.disappearance-forecast-panel strong{max-width:52%;color:var(--color-gold-light);text-align:right;word-break:keep-all;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:0 auto;font-size:.75rem;line-height:1.35;display:-webkit-box;overflow:hidden}.tray-container{justify-content:center;width:100%;display:flex}.arena-sidebar{gap:var(--spacing-ma-md);flex-direction:column;flex:0 0 350px;width:350px;height:100%;display:flex}.play-topbar{display:none}.play-actions{justify-content:flex-end;gap:.5rem;display:flex}.record-save-notice{color:#ffd0c8;background:#4412128f;border:1px solid #be1f1f75;width:min(100%,576px);margin:0 auto .5rem;padding:.6rem .85rem;font-size:.75rem;line-height:1.5}.resign-button{min-width:92px;min-height:40px;color:var(--color-washi);background:#2a2a2aeb;border:1px solid #c8ac6e3d;padding:0 1rem;font-size:.8125rem}.resign-button:disabled{opacity:.45;cursor:default}.resign-button.secondary{background:#ffffff0f}.matchmaking-overlay{background:var(--bg-kinpaku);background-color:var(--color-gold);border-bottom:1px solid var(--color-gold);z-index:100;min-height:44px;color:var(--color-lacquer);justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:flex;position:absolute;top:0;left:0;right:0;box-shadow:0 4px 10px #0000004d}.matchmaking-content{align-items:center;gap:16px;display:flex}.matchmaking-status{align-items:center;gap:12px;display:flex}.matchmaking-status b,.matchmaking-status small{display:block}.matchmaking-status small{color:#1a0e0ea3;margin-top:.12rem;font-size:.75rem}.matchmaking-actions{gap:.5rem;display:flex}.matchmaking-actions button,.matchmaking-restore{min-height:32px;color:var(--color-lacquer);background:#1a0e0e14;border:1px solid #1a0e0e3d;padding:0 .75rem;font-size:.75rem;font-weight:800}.matchmaking-overlay.compact{top:.75rem;right:var(--spacing-ma-lg);min-height:0;box-shadow:none;background:0 0;border:0;justify-content:flex-end;left:auto}.matchmaking-restore{color:var(--color-washi);background:#141414d6;border-color:#c8ac6e47}.pulse-dot{background-color:var(--color-lacquer);border-radius:50%;width:10px;height:10px;animation:1.5s infinite pulse-dot}.play-context-bar{flex-wrap:wrap;gap:.35rem;display:flex}.play-context-bar span{color:var(--color-gold-light);letter-spacing:.02em;background:#141414d1;border:1px solid #c8ac6e38;padding:.35rem .5rem;font-size:.75rem;font-weight:800}.play-context-bar .cpu-status-chip{color:#d7f6ff;letter-spacing:0;border-color:#508fa46b}.play-context-bar .cpu-status-chip.idle{visibility:hidden}.spectator-notice{top:3.3rem;left:var(--spacing-ma-lg);z-index:20;max-width:min(560px,100vw - 32px);color:var(--color-washi);box-shadow:var(--shadow-premium);background:#141414e6;border:1px solid #c8ac6e47;align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex;position:absolute}.spectator-notice span{font-size:.8125rem}.spectator-notice button{min-height:34px;color:var(--color-washi);background:#c8ac6e1f;border:1px solid #c8ac6e4d;padding:0 .75rem;font-weight:800}.pvp-connection-notice{bottom:1rem;right:var(--spacing-ma-lg);z-index:22;max-width:min(620px,100vw - 32px);color:var(--color-washi);box-shadow:var(--shadow-premium);background:#141414eb;border:1px solid #c8ac6e47;align-items:center;gap:.65rem;padding:.75rem .9rem;display:flex;position:fixed}.pvp-connection-notice.connected,.pvp-connection-notice.idle{display:none}.pvp-connection-notice.error,.pvp-connection-notice.disconnected{background:#300e0ef0;border-color:#be1f1f6b}.pvp-connection-notice.connecting{background:#2a200cf0;border-color:#c8ac6e57}.pvp-connection-notice span{font-size:.8125rem}.pvp-connection-notice button{min-height:34px;color:var(--color-washi);background:#c8ac6e1f;border:1px solid #c8ac6e4d;padding:0 .75rem;font-size:.75rem;font-weight:800}.result-overlay{z-index:300;backdrop-filter:blur(4px);background:#0000009e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.result-modal{background:linear-gradient(180deg, #222222f5, #0a0a0af5), var(--bg-washi);width:min(560px,100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-premium);text-align:center;border:1px solid #c8ac6e61;padding:2rem;overflow:auto}.result-modal h2{margin:.35rem 0 .75rem;font-size:1.8rem}.result-modal .mode-kicker{color:var(--brand-gold);letter-spacing:.08em;margin:0;font-size:.8125rem;font-weight:800}.result-reason{color:#fcfaf2c2;margin-bottom:1.4rem}.result-summary{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.5rem;display:grid}.result-summary span{color:var(--color-gold-light);background:#d4af371a;border:1px solid #d4af372e;padding:.5rem;font-size:.75rem;font-weight:800}.result-share-status{color:#fcfaf2b8;margin:.75rem 0 0;font-size:.75rem;line-height:1.5}.result-app-cta{color:var(--color-gold-light);background:#c8ac6e14;border:1px solid #c8ac6e40;gap:.2rem;margin-top:1.25rem;padding:.8rem 1rem;font-size:.8125rem;font-weight:800;text-decoration:none;display:grid}.result-app-cta small{color:#fcfaf2a8;font-size:.6875rem;font-weight:500}.result-app-cta:hover{background:#c8ac6e29;border-color:#c8ac6e99}.cpu-fallback-summary{text-align:left;background:#32210a61;border:1px solid #c8ac6e3d;gap:.25rem;margin:-.4rem 0 1.2rem;padding:.75rem;display:grid}.cpu-fallback-summary b{color:var(--color-gold-light);font-size:.75rem}.cpu-fallback-summary span{color:#fcfaf2c7;word-break:break-word;font-size:.75rem}.result-actions{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;margin-bottom:1rem;display:grid}.result-actions .primary{grid-column:1/-1}.result-actions button{letter-spacing:.06em;min-height:48px;padding:0 1rem;font-size:.875rem}.result-actions .secondary{color:var(--color-washi);background:#1e1e1edb;border:1px solid #c8ac6e40}.kifu-preview{text-align:left;background:#0000003d;border:1px solid #c8ac6e2e;margin-bottom:1.5rem;padding:1rem}.true-king-reveal{text-align:left;background:#6c14142e;border:1px solid #c8ac6e2e;margin-bottom:1.5rem;padding:1rem}.true-king-reveal h3{margin:0 0 .6rem;font-size:.9375rem}.true-king-reveal ul,.true-king-reveal p{color:#fcfaf2d1;margin:0;padding-left:1.1rem;font-size:.8125rem}.true-king-reveal p{padding-left:0}.kifu-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.kifu-header h3{margin:0;font-size:.9375rem}.kifu-header span,.jkf-details summary{color:#fcfaf2ad;font-size:.75rem}.kifu-meta{grid-template-columns:80px 1fr;gap:.35rem .75rem;margin:0 0 .85rem;font-size:.75rem;display:grid}.kifu-meta dt{color:#fcfaf28f}.kifu-meta dd{color:var(--color-washi);word-break:break-all;margin:0}.kifu-moves{gap:.3rem;margin-bottom:.75rem;display:grid}.kifu-moves p{color:#fcfaf2ad;margin:0;font-size:.8125rem}.kifu-move-row{background:#fcfaf20d;grid-template-columns:32px 1fr 1fr;align-items:center;gap:.5rem;min-height:28px;padding:.25rem .4rem;font-size:.75rem;display:grid}.kifu-move-row span{color:#fcfaf28a}.kifu-move-row b{color:var(--color-washi);font-weight:700}.kifu-move-row em{color:#c8ac6ec7;grid-column:2/-1;font-size:.6875rem;font-style:normal}.jkf-details pre{color:#fcfaf2c7;white-space:pre-wrap;background:#0000005c;max-height:160px;margin:.6rem 0 0;padding:.75rem;font-size:.6875rem;overflow:auto}@keyframes pulse-dot{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}@media (width<=1000px){.play-topbar-status{scrollbar-width:none;white-space:nowrap;color:#ffffffb8;flex:1;align-items:center;gap:.35rem;min-width:0;font-size:.75rem;font-weight:700;display:flex;overflow-x:auto}.play-arena{padding:8px 1rem var(--spacing-ma-lg);flex-direction:column;align-items:center;gap:8px}.play-context-bar{display:none}.arena-sidebar,.arena-sidebar .game-info-sidebar{display:contents}.arena-sidebar .player-box{background-color:#1e1e1e;border:1px solid #ffffff0f;border-radius:4px;width:100%;max-width:576px;padding:6px 12px}.arena-sidebar .player-box.active{background-color:#c8ac6e1f}.arena-sidebar .player-box .timer-display{font-size:1.35rem}.arena-sidebar .player-box.top{order:-2}.arena-main-content,.board-stack{display:contents}.arena-sidebar .player-box.bottom{order:1}.arena-sidebar .play-actions{order:3;justify-content:center;width:100%;max-width:576px;margin-top:8px}.arena-sidebar .history-section{background-color:#1e1e1e;border:1px solid #ffffff0d;border-radius:4px;order:4;width:100%;max-width:576px}.board-stack{--board-cell:clamp(30px, min(calc((100vw - 2rem - 72px) / 8), calc((100vh - 14rem) / 11.4)), 60px)}.play-topbar{flex:0 0 36px;order:-3;align-items:center;gap:8px;width:100%;max-width:576px;height:36px;display:flex}.play-topbar-status{scrollbar-width:none;white-space:nowrap;min-width:0;color:var(--brand-text-secondary);flex:1;align-items:center;gap:.35rem;font-size:.75rem;font-weight:700;display:flex;overflow-x:auto}.play-topbar-status::-webkit-scrollbar{display:none}.play-topbar-status .danger{color:var(--brand-danger-text)}.play-topbar-status .effect{color:#d7f6ff}.play-topbar-actions{flex:none;gap:6px;display:flex}.play-topbar-actions button:after{content:"";position:absolute;inset:-6px 0}.play-topbar-actions button{min-height:32px;padding:0 .75rem;font-size:.8125rem;position:relative}.variant-state-strip,.trap-setup-panel,.invader-phase-panel,.arena-sidebar .play-actions{display:none}.arena-sidebar .player-action{min-height:40px;color:var(--color-gold-light);white-space:nowrap;background:#141414b8;border:1px solid #c8ac6e80;flex:none;justify-content:center;align-items:center;margin-inline-start:auto;padding:0 .75rem;font-size:.8125rem;font-weight:800;display:inline-flex}.arena-sidebar .player-action:disabled{opacity:.45;cursor:default}.arena-sidebar .player-box:has(.player-action){padding-block:3px}.trap-setup-panel.trap-setup-confirm{left:.5rem;right:.5rem;bottom:calc(.5rem + env(safe-area-inset-bottom,0px));z-index:120;border-radius:10px;flex-wrap:wrap;justify-content:center;gap:.5rem .75rem;width:auto;max-width:576px;height:auto;margin-inline:auto;padding:.6rem .75rem;display:flex;position:fixed;box-shadow:0 8px 24px #00000080}.trap-setup-confirm-actions button{min-width:96px;min-height:44px}.trap-hidden-note,.disappearance-count{display:none}.matchmaking-overlay{order:-3;width:100%;position:static}.matchmaking-overlay.compact{order:-3;justify-content:center;padding:0}.matchmaking-content{flex-wrap:wrap;justify-content:center;padding:.5rem}.spectator-notice,.pvp-connection-notice{top:auto;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom,0px));z-index:120;text-align:center;flex-wrap:wrap;justify-content:center;width:auto;max-width:none;margin:0;position:fixed}}@media (width<=600px){.play-arena{--stack-overhead:13rem;padding:8px 4px 1rem}.board-stack{--board-cell:clamp(26px, min(calc((100vw - 24px) / 8.36), calc((100vh - var(--stack-overhead) - 118px) / 8.53)), 60px)}.variant-state-strip,.invader-phase-panel,.replay-panel,.trap-setup-panel,.disappearance-forecast-panel,.record-save-notice{width:100%}.trap-setup-panel p{-webkit-line-clamp:1;line-clamp:1}.trap-setup-actions{gap:.3rem}.trap-setup-actions button{min-width:60px;padding:0 .4rem}.trap-setup-actions{margin-left:auto}.result-summary{grid-template-columns:1fr}}@media (pointer:coarse){.matchmaking-actions button,.matchmaking-restore,.replay-panel-controls button,.invader-phase-panel button,.trap-setup-actions button,.spectator-notice button,.pvp-connection-notice button{min-height:44px}}@supports (height:1dvh){.board-stack{--board-cell:min(60px, calc((100dvh - var(--board-vertical-reserve)) / 11.4), calc((100vw - 350px - 10rem - 72px) / 8))}@media (width<=1000px){.board-stack{--board-cell:clamp(30px, min(calc((100vw - 2rem - 72px) / 8), calc((100dvh - 14rem) / 11.4)), 60px)}}@media (width<=600px){.board-stack{--board-cell:clamp(26px, min(calc((100vw - 24px) / 8.36), calc((100dvh - var(--stack-overhead) - 118px) / 8.53)), 60px)}}}@supports selector(:has(*)){@media (width<=600px){.play-arena{--stack-overhead:10.25rem}.play-arena:has(.player-action){--stack-overhead:10.625rem}.play-arena:has(.replay-panel){--stack-overhead:15.75rem}}}.play-rule-help-toggle{min-width:32px;color:var(--brand-text-secondary);padding-inline:8px}.play-rule-help{background:var(--brand-surface);width:min(320px,100vw - 32px);max-height:calc(100dvh - 110px);color:var(--color-washi);border:1px solid var(--brand-line-neutral);border-radius:8px;margin:0;padding:16px;font-size:.8125rem;line-height:1.7;position:fixed;inset:88px 16px auto auto;overflow-y:auto;box-shadow:0 8px 24px #00000059}.play-rule-help::backdrop{pointer-events:none;background:0 0}.play-rule-help p{margin:8px 0}.play-rule-help small{color:var(--brand-text-secondary)}@media (width<=1000px){.play-rule-help{top:48px;right:8px}.play-topbar-actions .play-rule-help-toggle{padding-inline:6px}.play-trap-progress{gap:4px;width:100%;min-width:0;display:flex}.play-trap-progress>span{text-overflow:ellipsis;overflow:hidden}.play-trap-progress>b{color:var(--color-washi);font-variant-numeric:tabular-nums;flex:none;margin-left:auto}}.narrow-only,.variant-state-strip .narrow-only{display:none}@media (width<=1000px){.wide-only{display:none}.narrow-only{display:inline}}.play-rotate-notice{display:none}@media (orientation:landscape) and (height<=500px) and (pointer:coarse){.play-rotate-notice{z-index:110;color:var(--color-washi);text-align:center;background:#0c0c0cf0;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1rem;display:flex;position:fixed;inset:0}.play-rotate-notice b{font-size:1.125rem}.play-rotate-notice span{color:#fcfaf2b8;font-size:.875rem}.play-rotate-notice button{min-height:44px;padding:0 1.25rem}}@media (width>=600px) and (width<=1000px) and (height<=500px) and (orientation:landscape){.play-arena{box-sizing:border-box;grid-template-rows:36px 44px 76px minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);align-items:start;gap:6px 12px;width:100%;max-width:900px;height:100dvh;padding:6px 12px;display:grid}.play-topbar{grid-area:1/1/auto/-1;max-width:none}.board-stack{--board-cell:min(36px, calc((100dvh - 190px) / 9.53), calc((100vw - 280px) / 9.6))}.board-outer-container{grid-area:2/1/5;justify-self:center}.arena-sidebar .player-box.top{grid-area:2/2}.arena-sidebar .player-box.bottom{grid-area:3/2}.arena-sidebar .player-box{box-sizing:border-box;min-width:0;padding:6px 8px}.arena-sidebar .player-main{flex-wrap:wrap;gap:6px}.arena-sidebar .player-box.top .player-main{flex-wrap:nowrap}.arena-sidebar .player-box.top .player-info{flex:auto;gap:4px;min-width:0;overflow:hidden}.arena-sidebar .player-box.top .name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.arena-sidebar .player-info{flex:100%}.arena-sidebar .timer-display{margin-left:auto;font-size:1.25rem}.arena-sidebar .player-action{min-height:32px;margin-left:0;padding-inline:8px}.arena-sidebar .history-section{flex-direction:column;grid-area:4/2;height:100%;min-height:0;margin:0;display:flex;overflow:hidden}.arena-sidebar .move-history-container{min-height:0;overflow-y:auto}.replay-panel{grid-area:4/2;max-height:100%;overflow-y:auto}.play-arena:has(.replay-panel) .history-section,.play-rotate-notice{display:none}.trap-setup-panel.trap-setup-confirm{grid-area:4/2;max-width:100%;margin:0;position:static}}@media (width<=1000px){.play-topbar-actions .sound-toggle{padding:4px}}.tutorial-screen{min-height:calc(100vh - 120px);padding:var(--spacing-ma-lg)}.tutorial-content{width:min(960px,100%);margin:0 auto}.tutorial-header{gap:var(--spacing-ma-md);grid-template-columns:auto 1fr;align-items:start;margin-bottom:2rem;display:grid}.section-title{margin:0 0 .75rem;font-size:clamp(1.5rem,4vw,2rem)}.tutorial-header p:last-child{color:#fcfaf2bd;line-height:1.8}.rule-list{gap:1rem;display:grid}.rule-card,.online-guide{box-shadow:var(--shadow-premium);background:#161616e6;border:1px solid #c8ac6e3d;padding:1.5rem}.rule-card-heading{align-items:baseline;gap:1rem;margin-bottom:.8rem;display:flex}.rule-card-heading>span{color:var(--color-gold);font-weight:900}.rule-card h3,.online-guide h3{font-family:var(--font-main);text-transform:none;margin:0;font-size:1.25rem}.rule-card p,.online-guide p{color:#fcfaf2cc;line-height:1.85}.rule-summary{margin-bottom:.5rem;font-weight:900;color:var(--color-gold-light)!important}.rule-ui-guide{border-top:1px solid #c8ac6e24;margin-top:.8rem;padding-top:.8rem;color:#fcfaf2a8!important}.online-guide{margin-top:1rem}.online-guide h3{margin-bottom:.75rem}.online-guide p+p{margin-top:.5rem}@media (width<=720px){.tutorial-screen{padding:var(--spacing-ma-md)}.tutorial-header{grid-template-columns:1fr}.rule-card,.online-guide{padding:1.1rem}.rule-card-heading{flex-direction:column;align-items:flex-start;gap:.35rem}}.rule-scene{aspect-ratio:5/2;background:repeating-conic-gradient(var(--color-square-dark) 0 25%, var(--color-square-light) 0 50%) 0 0 / 40% 100%;pointer-events:none;border-radius:3px;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(5,minmax(0,1fr));width:100%;display:grid;overflow:hidden}.rule-scene-cell{min-width:0;min-height:0;display:block;position:relative}.rule-scene-cell:after{content:"";pointer-events:none;position:absolute}.rule-scene-cell.mark-capture:after{border:2px solid #ae392b;border-radius:50%;inset:4%}.rule-scene-cell.mark-source:after{border:2px solid #ae392b;inset:3%}.rule-scene-cell.mark-king:after{aspect-ratio:1;background:var(--color-gold);border:1px solid #fff5d0;border-radius:50%;width:26%;top:2%;right:6%}.rule-scene-cell.mark-moved .piece-wrapper{opacity:.58}.rule-scene-cell.mark-trap:after{border:2px dashed #7c1e1ee6;inset:10%}.rule-scene-cell.mark-vanish{background:#9333ea38}.rule-scene-cell.mark-vanish:after{border:2px solid #9333ea;inset:4%}.rule-scene-cell.mark-vanish .piece-wrapper{opacity:.45}.rule-scene-arrow{z-index:2;background:var(--color-gold-light);width:3px;height:52%;margin-left:-1.5px;position:absolute;bottom:14%;left:50%;box-shadow:0 0 2px #000000b3}.rule-scene-cell:not(.empty) .rule-scene-arrow{height:34%;bottom:92%}.rule-scene-arrow:before{content:"";border-inline:6px solid #0000;border-bottom:8px solid var(--color-gold-light);margin-left:-6px;position:absolute;top:-7px;left:50%}.pvp-lobby-screen{width:min(1000px,100% - 40px);margin:0 auto;padding:24px 0 16px}.pvp-lobby-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;display:flex}.pvp-lobby-header h2{font-size:1.8rem}.mode-kicker{color:#bfbcb3;letter-spacing:.04em;font-size:.875rem}.lobby-utilities{flex-wrap:wrap;gap:4px;display:flex}.lobby-section-heading{justify-content:space-between;align-items:center;gap:16px;margin:12px 0 14px;display:flex}.lobby-section-heading h3{font-size:1rem}@media (pointer:coarse){.lobby-section-heading .sound-toggle{min-width:44px;min-height:44px}}.lobby-variants{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.lobby-variants button{text-align:left;background:var(--brand-surface);border-color:#424548;border-radius:8px;flex-direction:column;gap:8px;padding:8px 8px 10px;display:flex}.lobby-variants b{font-size:1rem}.lobby-variants span{color:var(--brand-text-secondary);font-size:.875rem;font-weight:400;line-height:1.7}.lobby-variants button[aria-pressed=true]{border-color:var(--color-gold);box-shadow:inset 0 0 0 1px var(--color-gold);background:#2d2b24}.lobby-variants button[aria-pressed=true] b{color:var(--color-gold-light)}.lobby-variant-desc{color:var(--brand-text-secondary);margin:10px 0 0;font-size:.875rem;line-height:1.7}.lobby-play-settings{flex-wrap:wrap;align-items:flex-start;gap:16px 40px;margin-top:24px;display:flex}.lobby-join label{gap:8px;font-size:.875rem;display:grid}.lobby-fixed-time,.lobby-cpu-level{gap:8px;min-width:180px;font-size:.875rem;display:grid}.lobby-fixed-time span,.lobby-cpu-level span{color:#bdbbb5}.lobby-fixed-time b{min-height:44px;color:var(--color-washi);align-items:center;font-size:1rem;display:flex}.lobby-cpu-level select{width:120px}.lobby-cpu-level small{color:#bdbbb5;font-size:.8125rem}.lobby-start-row{border-top:1px solid #373a3c;justify-content:flex-end;align-items:center;gap:20px;margin-top:20px;padding-top:16px;display:flex}.lobby-start-description{color:#bdbbb5;margin:16px 0 0;font-size:.8125rem;line-height:1.7}.lobby-start-actions{flex-shrink:0;gap:12px;display:flex}.lobby-start-actions button{min-width:160px}.lobby-start-actions button.primary{min-width:220px}.lobby-more{flex-wrap:wrap;gap:4px 16px;margin-top:16px;display:flex}.lobby-more .text-button{border:1px solid var(--brand-line-neutral);min-height:44px;color:var(--color-washi);border-radius:6px;padding:0 14px;font-size:.875rem}.lobby-more .text-button[aria-expanded=true]{border-color:var(--color-gold);color:var(--color-gold-light)}.lobby-bottom-bar{display:none}.lobby-footer{text-align:center;margin-top:40px}.lobby-footer .text-button{color:var(--brand-text-muted)}.lobby-footer-link{margin-left:16px;font-size:.8125rem;text-decoration:none;display:inline-block}.lobby-join,.lobby-public{scroll-margin-bottom:calc(148px + env(safe-area-inset-bottom))}.lobby-join{gap:20px;width:min(460px,100%);padding:16px 0 20px;display:grid}.lobby-join p,.lobby-public .lobby-section-heading p{color:#bdbbb5;font-size:.875rem}.lobby-join button{justify-self:start;min-width:180px}.lobby-public{padding-top:8px}.pvp-room-list{gap:10px;display:grid}.pvp-room-card{border-bottom:1px solid #3c3e40;justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex}.pvp-room-card b{overflow-wrap:anywhere}.pvp-room-card p,.pvp-room-card small{color:var(--brand-text-secondary);font-size:.875rem}.pvp-room-card-actions{gap:8px;display:flex}.pvp-empty{text-align:center;color:var(--brand-text-secondary);background:var(--brand-surface);border-radius:8px;padding:40px 20px}.pvp-empty p{margin-top:8px}.pvp-error,.pvp-service-status{background:var(--brand-danger-surface);color:#ffcbc5;overflow-wrap:anywhere;border-radius:6px;margin-bottom:16px;padding:12px 16px}.pvp-service-status{align-items:center;gap:16px;display:flex}.lobby-status{color:#cbc8bf;margin-bottom:16px;font-size:.875rem}.pvp-active-room{background:var(--brand-surface);border:1px solid #414447;border-radius:10px;max-width:720px;margin:0 auto;padding:28px}.pvp-active-room-header{gap:16px;display:grid}.pvp-active-room-header>div:first-child{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pvp-active-room-header b{overflow-wrap:anywhere}.pvp-active-room-header small,.pvp-room-status small{color:#bfbdb6;font-size:.875rem}.pvp-room-status{gap:4px;display:grid}.pvp-room-meta{flex-wrap:wrap;gap:12px;display:flex}.pvp-room-progress{color:var(--brand-text-muted);gap:16px;margin:24px 0;font-size:.875rem;display:flex}.pvp-room-progress span{border-bottom:2px solid #454748;padding-bottom:6px}.pvp-room-progress .active{border-color:var(--color-gold);color:var(--color-gold-light)}.pvp-seat-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.pvp-seat{border:1px solid var(--brand-line-neutral);border-radius:8px;gap:8px;padding:20px;display:grid}.pvp-seat.current{border-color:#998761}.pvp-seat small{color:#bfbcb4;font-size:.875rem}.pvp-seat b{overflow-wrap:anywhere}.pvp-seat.ready{background:var(--brand-surface-raised)}.pvp-room-controls{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.pvp-invite-panel{gap:12px;margin-top:20px;display:grid}.pvp-invite-panel>div{gap:8px;display:grid}.pvp-invite-panel small{color:#bfbcb4;font-size:.875rem;line-height:1.7}.pvp-invite-panel button{justify-self:start}.pvp-open-toggle{border-bottom:1px solid #404346;gap:6px;margin:16px 0 4px;padding-bottom:16px;display:grid}.pvp-open-toggle label{align-items:center;gap:8px;font-size:.9375rem;display:flex}.pvp-open-toggle small{color:#bfbcb4;font-size:.8125rem;line-height:1.7}.pvp-start-note{color:#bfbcb4;margin-top:16px;font-size:.875rem}@media (width<=760px){.pvp-lobby-screen{width:calc(100% - 32px);padding-top:24px}.pvp-lobby-header{align-items:flex-start;gap:12px;margin-bottom:20px}.pvp-lobby-header h2{font-size:1.5rem}.lobby-utilities{justify-content:flex-end;gap:0}.lobby-utilities button{padding:.5rem}.lobby-variants{grid-template-columns:1fr 1fr}.lobby-section-heading{gap:8px}.lobby-section-heading .text-button{padding-right:0;font-size:.875rem}.lobby-play-settings{gap:12px 24px}.lobby-fixed-time b{min-height:0}.pvp-lobby-screen:has(.lobby-bottom-bar){padding-bottom:calc(132px + env(safe-area-inset-bottom))}.pvp-lobby-header.is-browsing{clip-path:inset(50%);width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.pvp-lobby-header.is-browsing .lobby-utilities,.lobby-start-row{display:none}.lobby-bottom-bar{z-index:5;padding:8px 16px calc(10px + env(safe-area-inset-bottom));background:var(--brand-lacquer);border-top:1px solid #373a3c;display:block;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 16px #00000059}.lobby-bottom-summary{color:#bdbbb5;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;font-size:.875rem;display:flex}.lobby-bottom-actions{align-items:stretch;gap:6px;display:flex}.lobby-bottom-actions button{white-space:nowrap;flex:none;min-height:48px;padding:0 10px;font-size:.8125rem}.lobby-bottom-actions button.primary{flex:auto;font-size:.9375rem}.pvp-active-room{padding:20px 16px}.pvp-seat{padding:12px}.pvp-room-controls button{flex:auto}.pvp-invite-panel button{justify-self:stretch;min-height:48px}.pvp-service-status{flex-wrap:wrap}}@media (width<=380px){.lobby-bottom-bar{padding-inline:10px}.lobby-bottom-actions{gap:4px}.lobby-bottom-actions button{padding:0 7px;font-size:.75rem}.lobby-bottom-actions button.primary{padding:0 8px;font-size:.875rem}}@media (width<=360px){.pvp-lobby-header{flex-direction:column}.lobby-section-heading{flex-wrap:wrap}}.history-screen{--kifu-gutter:var(--spacing-ma-lg);min-height:calc(100vh - 120px);padding:var(--kifu-gutter)}.history-content{width:min(1040px,100%);margin:0 auto}.history-header{gap:var(--spacing-ma-md);grid-template-columns:auto 1fr auto;align-items:start;margin-bottom:1.5rem;display:grid}.history-header h2{text-transform:none;margin:0 0 .6rem;font-size:clamp(1.5rem,4vw,2rem)}.history-header .mode-kicker{margin:0;font-size:.8125rem}.history-lead{color:#fcfaf2cc;line-height:1.8}.history-clear-btn{min-width:84px;color:#ffd0c8;background:#1e1e1edb;border:1px solid #be1f1f80;padding:.8rem 1.2rem;font-size:.8125rem}.history-error{color:#ffd0c8;background:#4412128f;border:1px solid #be1f1f75;margin:0 0 1rem;padding:.7rem .9rem;font-size:.8125rem;line-height:1.5}.history-empty{text-align:center;box-shadow:var(--shadow-premium);background:#141414e6;border:1px dashed #c8ac6e59;padding:3rem 2rem}.history-empty p{color:#fcfaf2db;font-size:1.05rem}.history-empty-sub{margin-top:.5rem;color:#fcfaf299!important;font-size:.85rem!important}.history-play-btn{min-height:48px;margin-top:1.5rem}.history-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.history-card{box-shadow:var(--shadow-premium);cursor:pointer;background:#141414e6;border:1px solid #c8ac6e38;border-left:3px solid #c8ac6e80;flex-direction:column;gap:.7rem;padding:1.1rem;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.history-card:focus-visible{border-color:var(--color-gold);background:#c8ac6e14;outline:none;transform:translateY(-3px)}@media (hover:hover){.history-card:hover{border-color:var(--color-gold);background:#c8ac6e14;outline:none;transform:translateY(-3px)}}.history-card.win{border-left-color:#6fbf73}.history-card.loss{border-left-color:#be1f1fcc}.history-card.draw{border-left-color:#fcfaf259}.history-card-top,.history-card-middle,.history-card-bottom{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.history-card-middle{color:#fcfaf2e0;border-bottom:1px solid #ffffff14;padding-bottom:.5rem;font-size:.875rem}.history-variant{color:var(--color-gold-light);background:#c8ac6e1a;border:1px solid #c8ac6e4d;padding:.15rem .55rem;font-size:.75rem;font-weight:800}.history-date,.history-moves,.history-reason{color:#fcfaf29e;font-size:.75rem}.history-outcome{color:var(--color-washi);border:1px solid #ffffff24;padding:.12rem .55rem;font-size:.75rem;font-weight:800}.history-outcome.win{color:#a9e0ac;border-color:#6fbf7399}.history-outcome.loss{color:#ffd0c8;border-color:#be1f1f99}.history-outcome.draw{color:#fcfaf2b3}@media (width<=720px){.history-screen{--kifu-gutter:var(--spacing-ma-md)}.history-header,.history-list{grid-template-columns:1fr}}.kifu-sticky-bar{top:var(--app-header-h,0px);z-index:20;margin:0 calc(-1 * var(--kifu-gutter,0px)) 1.25rem;padding:0 var(--kifu-gutter,0px) .75rem;background:color-mix(in srgb, var(--brand-lacquer) 94%, transparent);backdrop-filter:blur(6px);border-bottom:1px solid #c8ac6e38;position:sticky}.kifu-sticky-bar .kifu-tabs{margin-bottom:.75rem}@media (width<=560px){.kifu-sticky-bar{padding-bottom:.6rem}.kifu-sticky-bar .kifu-tabs{margin-bottom:.6rem}.kifu-sticky-bar .kifu-tab{min-height:40px;padding:.5rem .8rem}}.kifu-tabs{border-bottom:1px solid #c8ac6e38;gap:0;margin-bottom:1.25rem;display:flex}.kifu-tab{color:#fcfaf299;letter-spacing:.08em;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:auto;max-width:220px;padding:.85rem 1.2rem;font-size:.9375rem;transition:all .2s}.kifu-tab.selected{color:var(--color-gold);border-bottom-color:var(--color-gold)}@media (hover:hover){.kifu-tab:not(.selected):hover{color:#fcfaf2e6;border-bottom-color:#c8ac6e66}}.kifu-db-screen{--kifu-gutter:var(--spacing-ma-lg);min-height:calc(100vh - 120px);padding:var(--kifu-gutter)}.kifu-db-content{width:min(1040px,100%);margin:0 auto}.kifu-db-header{gap:var(--spacing-ma-md);grid-template-columns:auto 1fr;align-items:start;margin-bottom:1.25rem;display:grid}@media (width<=560px){.kifu-db-screen{--kifu-gutter:var(--spacing-ma-md)}.kifu-db-header{grid-template-columns:1fr;gap:.75rem}}.kifu-db-header h2{margin:0 0 .6rem;font-size:clamp(1.5rem,4vw,2rem)}.kifu-db-lead{color:#fcfaf2cc;margin:0;line-height:1.8}.kifu-db-filters{flex-direction:column;gap:.5rem;display:flex}.kifu-db-filter-row{flex-wrap:wrap;gap:.4rem;display:flex}@media (width<=560px){.kifu-db-filters{margin:0 calc(-1 * var(--kifu-gutter));gap:.4rem}.kifu-db-filter-row{scrollbar-width:none;padding:0 var(--kifu-gutter);flex-wrap:nowrap;gap:.35rem;overflow-x:auto;mask-image:linear-gradient(90deg,#000 88%,#0000)}.kifu-db-filter-row::-webkit-scrollbar{display:none}.kifu-db-filter-row .chip{white-space:nowrap;flex:none;padding:.35rem .65rem;font-size:.75rem}}.kifu-db-filter-row .chip{color:#fcfaf2c7;cursor:pointer;background:#141414e6;border:1px solid #c8ac6e38;padding:.45rem .9rem;font-size:.8125rem;transition:all .2s}.kifu-db-filter-row .chip.selected{border-color:var(--color-gold);color:var(--color-washi);background:#c8ac6e24}@media (hover:hover){.kifu-db-filter-row .chip:hover{border-color:var(--color-gold)}}.kifu-db-error{color:#ffd0c8;background:#4412128f;border:1px solid #be1f1f75;margin:0 0 1rem;padding:.7rem .9rem;font-size:.8125rem;line-height:1.5}.kifu-db-empty{text-align:center;color:#fcfaf2db;background:#141414e6;border:1px dashed #c8ac6e59;padding:3rem 2rem}.kifu-db-list{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.kifu-db-card{width:100%;box-shadow:var(--shadow-premium);color:inherit;text-align:left;cursor:pointer;background:#141414e6;border:1px solid #c8ac6e38;border-left:3px solid #c8ac6e80;flex-direction:column;gap:.7rem;padding:1.1rem;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.kifu-db-card:focus-visible{border-color:var(--color-gold);background:#c8ac6e14;outline:none;transform:translateY(-3px)}@media (hover:hover){.kifu-db-card:hover{border-color:var(--color-gold);background:#c8ac6e14;transform:translateY(-3px)}}.kifu-db-card-top,.kifu-db-card-bottom{color:#fcfaf29e;justify-content:space-between;align-items:center;gap:.6rem;font-size:.75rem;display:flex}.kifu-db-variant{color:var(--color-gold);letter-spacing:.08em;border:1px solid #c8ac6e66;padding:.2rem .6rem}.kifu-db-card-main{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.kifu-db-outcome{color:var(--color-washi);letter-spacing:.06em;font-size:1.05rem}.kifu-db-moves{color:#fcfaf2c7;font-size:.875rem}.kifu-db-reason{text-align:right}.kifu-db-more{justify-content:center;margin-top:1.5rem;display:flex}.kifu-db-more button{min-width:200px;min-height:48px}.app-container.screen-replay .app-footer{display:none}.replay-screen{min-height:calc(100dvh - 120px);padding:1rem var(--spacing-ma-lg)}.replay-content{width:min(1240px,100%);margin:0 auto}.replay-header{gap:var(--spacing-ma-md);grid-template-columns:auto 1fr auto;align-items:center;margin-bottom:.75rem;display:grid}.replay-title{flex-wrap:wrap;align-items:baseline;gap:.2rem .75rem;min-width:0;display:flex}.replay-header h2{text-transform:none;margin:0;font-size:1.5rem}.replay-header .mode-kicker{margin:0;font-size:.8125rem}.replay-lead{color:#fcfaf2cc;font-size:.875rem;line-height:1.7}.replay-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.replay-share-btn,.replay-mute-btn{min-width:84px;color:var(--color-washi);background:#1e1e1edb;border:1px solid #c8ac6e40;padding:.8rem 1.2rem;font-size:.8125rem}.replay-share-btn{color:var(--color-gold-light);border-color:#c8ac6e8c}.replay-mute-btn.muted{color:#ffd0c8;border-color:#be1f1f80}.replay-notice{color:#fcfaf2db;background:#32210a61;border:1px solid #c8ac6e47;margin:0 0 .85rem;padding:.65rem .9rem;font-size:.8125rem;line-height:1.6}.replay-notice a{color:var(--color-gold-light);word-break:break-all}.replay-layout{justify-content:center;gap:var(--spacing-ma-md);grid-template-columns:minmax(0,auto) 360px;align-items:start;display:grid}.replay-board-area{--board-cell:min(60px, calc((100vh - 15rem) / 11.4), calc((100vw - 32rem - 72px) / 8));justify-content:center;align-items:center;display:flex}.replay-sidebar{flex-direction:column;gap:1rem;display:flex}.replay-controls,.replay-log,.replay-moves{box-shadow:var(--shadow-premium);background:#141414e6;border:1px solid #c8ac6e38;padding:1rem}.replay-progress{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.8rem;padding-bottom:.6rem;display:flex}.replay-progress b{color:var(--color-gold-light);font-size:1rem}.replay-progress span{color:#fcfaf2b8;font-size:.8125rem}.replay-buttons{flex-wrap:wrap;gap:.42rem;margin-bottom:.8rem;display:flex}.replay-buttons button{min-height:38px;color:var(--color-washi);background:#c8ac6e1a;border:1px solid #c8ac6e52;padding:0 .7rem;font-size:.75rem;font-weight:800}.replay-buttons button:disabled{cursor:not-allowed;opacity:.42}.replay-buttons .replay-play{color:var(--color-gold-light);background:#c8ac6e3d;flex:1}.replay-speed{color:#fcfaf2b8;justify-content:space-between;align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.replay-speed select{color:var(--color-washi);font-family:var(--font-main);background:#1e1e1ee6;border:1px solid #c8ac6e4d;padding:.35rem .5rem}.replay-log h3,.replay-moves h3{border-left:3px solid var(--color-gold);font-family:var(--font-main);letter-spacing:.08em;text-transform:none;margin:0 0 .6rem;padding-left:.5rem;font-size:.9375rem}.replay-log ul{color:#fcfaf2d6;min-height:3.6rem;margin:0;padding-left:1.1rem;font-size:.8125rem;line-height:1.7}.replay-log li:first-child{color:var(--color-gold-light);font-weight:800}.replay-move-grid{scrollbar-width:thin;scrollbar-color:var(--color-gold) transparent;grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px;display:grid;overflow-y:auto}.replay-move-grid button{color:#fcfaf2cc;text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-bottom:1px solid #ffffff0f;border-radius:0;padding:8px 0 8px 10px;font-size:.875rem;font-weight:400;overflow:hidden}.replay-move-grid button:first-child{grid-column:1/-1}.replay-move-grid button.active{color:var(--color-gold-light);background:#c8ac6e26;font-weight:800}@media (width<=1000px){.replay-layout{grid-template-columns:minmax(0,1fr)}.replay-board-area{--board-cell:clamp(30px, min(calc((100vw - 7rem - 72px) / 8), calc((100vh - 14rem) / 11.4)), 60px)}}@media (width<=720px){.replay-screen{padding:.6rem .75rem 1rem}.replay-header{grid-template-columns:1fr auto;align-items:center;gap:.4rem .6rem;margin-bottom:.55rem}.replay-header .secondary-tools{justify-self:end}.replay-header .replay-title{order:1;grid-column:1/-1}.replay-header .mode-kicker{display:none}.replay-header h2{font-size:1.2rem}.replay-lead{margin:0;font-size:.8125rem;line-height:1.4}.replay-header-actions{justify-content:flex-start}.replay-layout{gap:.5rem}.replay-sidebar{gap:.6rem}.replay-controls{padding:.65rem .75rem}.replay-progress{margin-bottom:.5rem;padding-bottom:.4rem}.replay-buttons{margin-bottom:.5rem}.replay-board-area{--board-cell:clamp(28px, min(calc((100vw - 1.5rem - 72px) / 8), calc((100vh - 17.5rem) / 11.4)), 60px)}}@media (pointer:coarse){.replay-buttons button,.replay-move-grid button,.replay-speed select{min-height:44px}}@supports (height:1dvh){.replay-board-area{--board-cell:min(60px, calc((100dvh - 15rem) / 11.4), calc((100vw - 32rem - 72px) / 8))}@media (width<=1000px){.replay-board-area{--board-cell:clamp(30px, min(calc((100vw - 7rem - 72px) / 8), calc((100dvh - 14rem) / 11.4)), 60px)}}@media (width<=720px){.replay-board-area{--board-cell:clamp(28px, min(calc((100vw - 1.5rem - 72px) / 8), calc((100dvh - 17.5rem) / 11.4)), 60px)}}}@media (width<=600px){.replay-screen{padding-left:4px;padding-right:4px}.replay-board-area{--board-cell:clamp(26px, min(calc((100vw - 26px) / 8.36), calc((100vh - 17.5rem) / 11.4)), 60px)}}@supports (height:1dvh){@media (width<=600px){.replay-board-area{--board-cell:clamp(26px, min(calc((100vw - 26px) / 8.36), calc((100dvh - 17.5rem) / 11.4)), 60px)}}}@media (width<=600px){.replay-header,.replay-notice,.replay-sidebar{margin-left:.6rem;margin-right:.6rem}}.consent-banner{background:var(--brand-surface);border-bottom:1px solid var(--brand-line);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}.consent-banner-text{max-width:720px;color:var(--brand-text-secondary);flex:320px;margin:0;font-size:.875rem;line-height:1.5}.consent-banner-text a{color:var(--brand-gold-light)}.consent-banner-actions{gap:8px;display:flex}.consent-banner-actions button{min-width:96px}
