@font-face{font-family:Zen Maru Gothic;font-style:normal;font-weight:500;font-display:swap;src:url(./zen-maru-gothic-500-latin-CjOoJPzZ.woff2) format("woff2");unicode-range:U+0000-024F,U+2018-2022,U+2026,U+3000-303F}@font-face{font-family:Zen Maru Gothic;font-style:normal;font-weight:500;font-display:swap;src:url(./zen-maru-gothic-500-japanese-B68psu1q.woff2) format("woff2")}@font-face{font-family:Zen Maru Gothic;font-style:normal;font-weight:700;font-display:swap;src:url(./zen-maru-gothic-700-latin-BKoVz01m.woff2) format("woff2");unicode-range:U+0000-024F,U+2018-2022,U+2026,U+3000-303F}@font-face{font-family:Zen Maru Gothic;font-style:normal;font-weight:700;font-display:swap;src:url(./zen-maru-gothic-700-japanese-BGH5rXDo.woff2) format("woff2")}@font-face{font-family:Zen Maru Gothic;font-style:normal;font-weight:900;font-display:swap;src:url(./zen-maru-gothic-900-latin-DmYROnJb.woff2) format("woff2");unicode-range:U+0000-024F,U+2018-2022,U+2026,U+3000-303F}@font-face{font-family:Zen Maru Gothic;font-style:normal;font-weight:900;font-display:swap;src:url(./zen-maru-gothic-900-japanese-DOT3nyUi.woff2) format("woff2")}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:700;font-display:swap;src:url(./shippori-mincho-700-latin-DW7RM2NR.woff2) format("woff2");unicode-range:U+0000-024F,U+2018-2022,U+2026,U+3000-303F}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:700;font-display:swap;src:url(./shippori-mincho-700-japanese-BSbwhxsU.woff2) format("woff2")}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:800;font-display:swap;src:url(./shippori-mincho-800-latin-pis9UfHh.woff2) format("woff2");unicode-range:U+0000-024F,U+2018-2022,U+2026,U+3000-303F}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:800;font-display:swap;src:url(./shippori-mincho-800-japanese-CYh9I47t.woff2) format("woff2")}:root{--washi: #f6f0e3;--washi-deep: #efe6d2;--panel: #fffdf7;--ink: #4a4038;--ink-soft: #8c8074;--kaki: #e8734a;--kaki-deep: #d55a31;--matcha: #7ba05b;--sora: #5b8fb5;--board-wood: #ecc078;--board-wood-dark: #dfa95e;--board-line: #a97b3f;--piece-ink: #3b2a12;--beni: #d1493e;--shadow-soft: 0 4px 16px rgba(120, 96, 60, .14);--maru: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;--mincho: "Shippori Mincho", "Hiragino Mincho ProN", serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--maru);font-weight:500;background:radial-gradient(ellipse 120% 60% at 50% -10%,#fdf8ec 0%,transparent 60%),radial-gradient(ellipse 80% 50% at 90% 100%,#f0e4cb55 0%,transparent 70%),var(--washi);background-attachment:fixed;-webkit-tap-highlight-color:transparent}.app{max-width:480px;margin:0 auto;min-height:100vh;padding:calc(8px + env(safe-area-inset-top,0px)) 12px calc(28px + env(safe-area-inset-bottom,0px))}h1,h2{font-family:var(--maru)}.btn{border:none;background:var(--panel);color:var(--ink);border-radius:999px;padding:9px 16px;font-size:14px;font-family:var(--maru);font-weight:700;cursor:pointer;box-shadow:0 2px 8px #78603c2e,inset 0 0 0 1.5px #e5d9c2;transition:transform .12s,box-shadow .12s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:linear-gradient(150deg,#f28c5f,var(--kaki-deep));color:#fff;box-shadow:0 4px 14px #d85a3166}.btn.danger{background:#fff5f3;color:var(--beni);box-shadow:0 2px 8px #78603c24,inset 0 0 0 1.5px #f0c4be}.btn.small{padding:5px 14px;font-size:16px;line-height:1}.btn.option.active{background:linear-gradient(150deg,#f28c5f,var(--kaki-deep));color:#fff;box-shadow:0 4px 14px #d85a3159}.app-header{text-align:center;padding:26px 0 10px}.app-header h1{margin:0;font-size:38px;font-weight:900;letter-spacing:.1em;color:var(--kaki-deep);text-shadow:0 2px 0 #fff,0 5px 14px rgba(216,90,49,.25)}.tagline{margin:8px 0 0;color:var(--ink-soft);font-size:13px;letter-spacing:.06em}.help-button{margin-top:14px}.header-buttons{display:flex;gap:8px;justify-content:center}.avatar{width:38px;height:38px;border-radius:50%;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 2px 8px #78603c33;flex:none}.avatar.frame-sora{box-shadow:0 0 0 3px var(--sora),0 2px 8px #78603c33}.avatar.frame-sakura{box-shadow:0 0 0 3px #e094b6,0 2px 8px #78603c33}.avatar.frame-gold{box-shadow:0 0 0 3px #d9a422,0 0 12px #d9a422a6}.title-chip{font-size:10px;font-weight:900;background:var(--washi);border-radius:999px;padding:3px 9px;color:var(--ink-soft)}.cpu-level-chip{background:var(--sora);color:#fff}.profile-preview{display:flex;gap:14px;align-items:center}.profile-preview .avatar{width:52px;height:52px;font-size:28px}.profile-preview-text{display:flex;flex-direction:column;gap:2px}.profile-preview-title{font-size:12px;font-weight:900;color:var(--kaki-deep)}.profile-preview-name{font-size:16px;font-weight:900}.swatch-row{display:flex;flex-wrap:wrap;gap:8px}.swatch{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--washi);border:none;border-radius:14px;padding:10px 8px 8px;min-width:74px;cursor:pointer}.swatch.selected{outline:3px solid var(--kaki);background:#fff}.swatch-name{font-size:11px;font-weight:900}.premium-badge{margin-left:2px}.swatch-koma{display:block;width:32px;height:36px}.swatch-koma .piece{width:100%;height:100%}.swatch-koma .koma{font-size:17px}.swatch-board{width:44px;height:44px;border-radius:8px;background:linear-gradient(160deg,var(--board-wood),var(--board-wood-dark));border:2.5px solid var(--board-line)}.swatch-icon{font-size:26px;line-height:38px}.account-box{display:flex;flex-direction:column;gap:10px}.account-status{margin:0;font-size:13px;line-height:1.7}.account-message{margin:0;font-size:12.5px;font-weight:700;color:var(--matcha)}.account-email-input{letter-spacing:normal;font-size:14px}.swatch-title{font-size:13px;font-weight:900;line-height:38px;color:var(--kaki-deep)}.volume-row{display:flex;align-items:center;gap:10px;margin-top:8px}.volume-label{width:86px;font-weight:900;font-size:14px;flex:none}.volume-row input[type=range]{flex:1;accent-color:var(--kaki);height:22px}.volume-value{width:34px;text-align:right;font-weight:900;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.help-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:13.5px;line-height:1.65}.help-cards{display:flex;flex-direction:column;gap:8px}.help-card-row{display:flex;gap:12px;align-items:center;background:var(--washi);border-radius:12px;padding:9px 12px}.help-card-icon{font-size:22px;flex:none}.help-card-body{display:flex;flex-direction:column}.help-card-name{font-weight:900;font-size:14.5px}.help-card-desc{font-size:11.5px;color:var(--ink-soft);line-height:1.5}.help-note{font-size:11.5px;color:var(--ink-soft);margin:12px 0 0;line-height:1.65}.setup-section{background:var(--panel);border-radius:20px;padding:16px;margin-top:14px;box-shadow:var(--shadow-soft)}.setup-section h2{margin:0 0 12px;font-size:15px;font-weight:900;color:var(--ink);display:flex;align-items:center;gap:6px}.setup-section h2:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--kaki)}.card-count-list{display:flex;flex-direction:column;gap:8px}.card-count-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--washi);border-radius:14px;padding:9px 12px}.card-count-row.style-crimson{background:linear-gradient(90deg,#fbeae8,#f7ddd9);box-shadow:inset 0 0 0 1px #b4465038}.card-count-row.style-crimson .card-count-name{color:#8c2f3d}.card-count-info{display:flex;flex-direction:column;min-width:0}.card-count-name{font-weight:900;font-size:15px}.card-count-desc{font-size:11px;color:var(--ink-soft)}.stepper{display:flex;align-items:center;gap:8px}.hand-size-row{display:flex;align-items:center;justify-content:space-between;background:var(--washi);border-radius:14px;padding:8px 12px;margin-top:8px}.hand-size-label{font-weight:900;font-size:14px}.stepper-value{min-width:44px;text-align:center;font-size:16px;font-weight:900}.option-row{display:flex;gap:8px;flex-wrap:wrap}.option-row+.option-row{margin-top:8px}.time-hint{font-size:12px;color:var(--ink-soft);margin:8px 2px 0}.help-footer{text-align:center;margin-top:18px;font-size:12px}.help-footer a{color:var(--ink-soft)}.onboard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#281e128c;display:flex;align-items:center;justify-content:center;padding:24px}.onboard-card{background:var(--washi, #f6f0e3);border-radius:20px;max-width:340px;width:100%;padding:22px 20px 18px;box-shadow:0 14px 40px #0000004d}.onboard-title{font-family:var(--maru);color:var(--kaki-deep, #d85a31);font-size:18px;text-align:center;margin:0 0 14px}.onboard-points{list-style:none;padding:0;margin:0 0 14px}.onboard-points li{display:flex;align-items:center;gap:10px;font-size:14px;padding:7px 0;border-bottom:.5px solid #e5d9c2}.onboard-points li:last-child{border-bottom:none}.onboard-emoji{font-size:20px;width:24px;text-align:center}.onboard-hint{font-size:12px;color:var(--ink-soft);text-align:center;margin:0 0 16px}.onboard-actions{display:flex;flex-direction:column;gap:8px}.onboard-actions .btn{width:100%}.coach-bar{position:fixed;left:50%;bottom:14px;transform:translate(-50%);z-index:150;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;max-width:92%;background:#281e12eb;color:#fdf6e9;border-radius:999px;padding:8px 16px;font-size:13px;box-shadow:0 6px 20px #00000059}.coach-title{font-weight:700;color:#f2c17a}.coach-item{opacity:.7}.coach-item.on{opacity:1;color:#b7e3b0;font-weight:700}.coach-clear{font-weight:700}.coach-bar .btn.small{background:#f2c17a;color:#4a320f;border:none;padding:3px 12px}.rating-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:linear-gradient(150deg,#fff7e6,#f6e8c6);border:.5px solid #e2cf9a;border-radius:12px;padding:8px 12px;margin-bottom:10px}.rating-rank{font-family:var(--maru);font-weight:800;color:#b8860b;font-size:17px}.rating-value{font-weight:700;color:var(--ink)}.rating-record{font-size:12px;color:var(--ink-soft);margin-left:auto}.rating-change{display:block;margin-top:4px;font-size:14px;font-weight:700;color:var(--ink)}.rating-change .rc-up{color:#2e8b57}.rating-change .rc-down{color:#c0503a}.eval-bar{position:relative;height:16px;margin:6px 2px;border-radius:999px;background:linear-gradient(180deg,#6b7f96,#4c5f75);overflow:hidden;box-shadow:inset 0 1px 3px #00000040}.eval-fill{height:100%;background:linear-gradient(90deg,#f2a26b,var(--kaki, #e8734a));border-radius:999px 0 0 999px;transition:width .6s ease}.eval-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45);pointer-events:none}.sound-toggle.off{opacity:.45}.analysis-invite{display:flex;flex-direction:column;align-items:center;gap:4px;margin:10px 0 4px}.analysis-progress{text-align:center;font-size:13px;color:var(--ink-soft);margin:10px 0}.analysis-panel{margin:10px 0 4px}.analysis-now{font-size:14px;text-align:center;margin-bottom:4px}.analysis-now strong{font-size:16px;color:var(--kaki-deep, #d85a31)}.move-mark{margin-left:8px;font-weight:800;color:#c92a2a;background:#fff0ee;border-radius:8px;padding:1px 8px;font-size:12px}.move-mark.card{color:#6a4cb3;background:#f0ebfb}.eval-graph{width:100%;height:84px;background:linear-gradient(180deg,#fdf6e9,#f3e8d2);border-radius:12px;box-shadow:inset 0 0 0 1.5px #e5d9c2;touch-action:manipulation;cursor:pointer}.eval-zero{stroke:#c9b989;stroke-width:1;stroke-dasharray:4 3}.eval-line{fill:none;stroke:var(--kaki, #e8734a);stroke-width:2}.eval-cursor{stroke:#5b8fb5cc;stroke-width:1.5}.mark-blunder{fill:#c92a2a}.mark-dubious{fill:#e8a30d}.mark-card{fill:#8a6bd1}.online-panel{margin-top:14px;background:var(--washi);border-radius:14px;padding:14px}.online-host-btn{width:100%;padding:12px;font-size:15px}.online-join-row{display:flex;gap:8px;margin-top:10px}.online-code-input{flex:1;min-width:0;border:2px solid #e5d9c2;border-radius:999px;padding:9px 16px;font-size:16px;font-family:var(--maru);font-weight:700;letter-spacing:.15em;background:var(--panel);color:var(--ink);outline:none}.online-code-input:focus{border-color:var(--kaki)}.online-note{font-size:11.5px;color:var(--ink-soft);margin:10px 0 0;line-height:1.6}.online-error{color:var(--beni);font-size:12.5px;font-weight:700;margin:10px 0 0}.online-waiting{text-align:center}.online-waiting-label{margin:0;font-size:13px;font-weight:700;color:var(--ink-soft)}.online-room-code{margin:8px 0;font-size:44px;font-weight:900;letter-spacing:.2em;color:var(--kaki-deep);font-variant-numeric:tabular-nums}.online-waiting-status{margin:0 0 12px;font-size:13px;color:var(--ink-soft);animation:pulse 1s infinite alternate}.disconnect-banner{display:flex;align-items:center;justify-content:center;gap:12px;background:#fff3ec;border:2px solid var(--kaki);color:var(--kaki-deep);font-weight:900;font-size:13px;border-radius:14px;padding:10px 14px}.preset-label{font-size:12px;font-weight:900;color:var(--ink-soft);margin:12px 0 8px}.editor-board{margin:4px 0 12px}.editor-palette{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.palette-item{width:42px;height:46px;border:none;border-radius:10px;background:var(--washi);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px}.palette-item.selected{outline:3px solid var(--kaki);background:#fff}.palette-item .piece{width:30px;height:34px;pointer-events:none}.palette-item .koma{font-size:16px}.palette-erase{font-size:22px}.editor-hand-row{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}.editor-hand-list{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.editor-hand-item{position:relative;border:none;border-radius:10px;background:var(--washi);font-family:var(--mincho);font-weight:800;font-size:16px;width:40px;height:38px;cursor:pointer}.editor-hand-count{position:absolute;right:-4px;bottom:-4px;background:var(--kaki);color:#fff;font-family:var(--maru);font-size:10px;font-weight:900;border-radius:999px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center}.editor-error{text-align:center;margin:8px 0}.level-picker{margin-top:14px;background:var(--washi);border-radius:14px;padding:12px 14px}.level-picker-head{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--ink-soft);font-weight:700}.level-value{font-size:16px;font-weight:900;color:var(--kaki-deep)}.level-picker input[type=range]{width:100%;margin:10px 0 4px;accent-color:var(--kaki);height:22px}.level-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-soft)}.deck-summary{font-size:12px;color:var(--ink-soft);margin:12px 0 0}.deck-summary.warn{color:var(--kaki-deep);font-weight:700}.start-button{width:100%;margin-top:20px;padding:16px;font-size:18px;font-weight:900;letter-spacing:.24em;border-radius:999px}.game-screen{display:flex;flex-direction:column;gap:10px;padding-top:8px}.player-strip{background:var(--panel);border-radius:16px;padding:10px 12px;box-shadow:var(--shadow-soft);border:2px solid transparent;transition:border-color .2s}.player-strip.sente.active{border-color:var(--kaki)}.player-strip.gote.active{border-color:var(--sora)}.player-strip-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.player-name{font-weight:900;font-size:15px}.player-strip.gote .player-name{color:var(--sora)}.player-strip.sente .player-name{color:var(--kaki-deep)}.player-cards{font-size:12px;color:var(--ink-soft);font-weight:700}.open-cards{font-size:11px}.shield-badge{background:linear-gradient(150deg,#8fd6c9,#5bb5a2);color:#fff;font-size:11px;font-weight:900;border-radius:999px;padding:3px 10px;box-shadow:0 2px 6px #5bb5a266}.clock{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:900;font-size:16px;color:var(--ink-soft);background:var(--washi);border-radius:999px;padding:3px 12px}.clock.ticking{color:var(--ink);background:#fdf0d5}.clock.low{color:#fff;background:var(--beni)}.board-status{min-height:24px;text-align:center}.result-banner{display:flex;align-items:baseline;justify-content:center;gap:10px;background:linear-gradient(150deg,#f28c5f,var(--kaki-deep));color:#fff;border-radius:999px;padding:8px 20px;width:fit-content;margin:0 auto;box-shadow:0 4px 14px #d85a3159;animation:bannerPop .4s ease-out}.result-title{font-weight:900;font-size:17px}.result-reason{font-size:12px;opacity:.92;font-weight:700}@keyframes bannerPop{0%{transform:scale(.6);opacity:0}}.end-panel{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;background:var(--panel);border-radius:20px;padding:14px;box-shadow:var(--shadow-soft)}.turn-indicator{font-size:13px;font-weight:700;color:var(--ink-soft)}.check-badge{margin-left:8px;color:#fff;background:var(--beni);border-radius:999px;padding:2px 10px;font-weight:900;font-size:12px;animation:pulse .9s infinite alternate}@keyframes pulse{0%{opacity:.7}to{opacity:1}}.board-wrap{position:relative}.file-labels{display:grid;grid-template-columns:repeat(9,1fr);padding:0 18px 3px 0;color:var(--ink-soft);font-size:10px;font-weight:700;text-align:center}.board-row{display:flex}.board{flex:1;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);aspect-ratio:1;background:radial-gradient(circle at 30% 15%,rgba(255,255,255,.35),transparent 55%),linear-gradient(160deg,var(--board-wood),var(--board-wood-dark));border:4px solid var(--board-line);border-radius:12px;box-shadow:0 8px 24px #8c64324d,inset 0 0 0 1px #ffffff40;overflow:hidden}.rank-labels{display:grid;grid-template-rows:repeat(9,1fr);width:18px;align-items:center;justify-items:center;color:var(--ink-soft);font-size:10px;font-weight:700}.cell{border:.5px solid var(--board-cell-line, rgba(169, 123, 63, .55));background:transparent;padding:0;position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background .03s}.cell.selected{background:#5b8fb566}.cell:active{background:#5b8fb547}.cell:active .koma{transform:scale(.9);transition:transform .05s ease-out}.cell.move-dest:after{content:"";position:absolute;width:32%;height:32%;border-radius:50%;background:#3b76a080}.cell.move-dest:has(.piece):after{width:86%;height:86%;background:transparent;border:3px solid rgba(59,118,160,.75);border-radius:30%}.cell.card-dest{animation:cardGlow .9s infinite alternate}.cell.last-to{background:#e8734a4d}.cell.last-from{background:#e8734a24}.cell.last-to .koma{animation:placePop .2s ease-out}@keyframes placePop{0%{transform:scale(1.45)}60%{transform:scale(.95)}to{transform:scale(1)}}@keyframes cardGlow{0%{background:#e8734a4d}to{background:#e8734a99}}.piece{width:90%;height:96%;display:block;filter:drop-shadow(0 2px 1.5px rgba(90,60,20,.45));-webkit-user-select:none;user-select:none;pointer-events:none}.piece.gote{transform:rotate(180deg)}.koma{width:100%;height:100%;clip-path:polygon(50% 1%,84% 15%,97% 99%,3% 99%,16% 15%);background:var(--koma-grad, linear-gradient(168deg, #fdf0cd 0%, #f0cc8c 40%, #e0ab60 100%));display:flex;align-items:center;justify-content:center;padding-top:13%;box-sizing:border-box;font-family:var(--mincho);font-weight:800;color:var(--koma-ink, var(--piece-ink));font-size:clamp(13px,4.5vw,22px);line-height:1}.piece.promoted .koma{color:var(--koma-beni, var(--beni))}[data-piece-skin=byakudan]{--koma-grad: linear-gradient(168deg, #fffdf6 0%, #f4ead2 45%, #e2cfa6 100%)}[data-piece-skin=sakura]{--koma-grad: linear-gradient(168deg, #fff0f5 0%, #ffd6e3 45%, #f5aec7 100%);--koma-ink: #74364d;--koma-beni: #d1264c}[data-piece-skin=shikkoku]{--koma-grad: linear-gradient( 168deg, #63646f 0%, #3a3b45 14%, #22232c 38%, #101117 68%, #0a0b10 88%, #181920 100% );--koma-ink: #eed595;--koma-beni: #ffa48f}.piece[data-piece-skin=shikkoku]{filter:drop-shadow(0 2px 2px rgba(0,0,0,.65)) drop-shadow(0 0 1px rgba(212,175,90,.35))}.piece[data-piece-skin=shikkoku] .koma{text-shadow:0 1px 1px rgba(0,0,0,.9),0 0 3px rgba(255,216,130,.4)}[data-piece-skin=ougon]{--koma-grad: linear-gradient(160deg, #fff4c2 0%, #f5ce53 40%, #dca827 80%, #b8860b 100%);--koma-ink: #5c3d05;--koma-beni: #a8231a}[data-board-skin=yozakura]{--board-wood: #4a3a5e;--board-wood-dark: #342847;--board-line: #7a6699;--board-cell-line: rgba(216, 180, 235, .35)}[data-board-skin=hisui]{--board-wood: #58996f;--board-wood-dark: #417c57;--board-line: #2d5a42;--board-cell-line: rgba(20, 70, 45, .45)}[data-board-skin=shikkoku]{--board-wood: #1e1f27;--board-wood-dark: #0c0d12;--board-line: #b98f3e;--board-cell-line: rgba(212, 175, 90, .26)}[data-board-skin=shikkoku] .board{background:radial-gradient(ellipse 130% 65% at 28% 8%,rgba(255,255,255,.09) 0%,transparent 55%),radial-gradient(ellipse 80% 45% at 78% 100%,rgba(212,175,90,.07) 0%,transparent 70%),linear-gradient(155deg,#262730,#15161d 55%,#0a0b10);box-shadow:0 12px 32px #0000008c,0 2px 10px #d4af5a47,inset 0 0 0 1px #f0cd7866,inset 0 0 26px #0000008c}[data-board-skin=shikkoku] .file-labels,[data-board-skin=shikkoku] .rank-labels{color:#ab945c}[data-board-skin=shikkoku] .cell.selected{background:#d4af5a52}[data-board-skin=shikkoku] .cell.move-dest:after{background:#d4af5a80}[data-board-skin=shikkoku] .cell.move-dest:has(.piece):after{border-color:#d4af5abf;background:transparent}[data-board-skin=shikkoku] .cell.last-to{background:#d4af5a3d}[data-board-skin=shikkoku] .cell.last-from{background:#d4af5a1a}[data-board-skin=shikkoku] .cell.card-dest{animation:cardGlowGold .9s infinite alternate}@keyframes cardGlowGold{0%{background:#d4af5a40}to{background:#d4af5a80}}[data-board-skin=kinbyobu]{--board-wood: #f0d689;--board-wood-dark: #ddb84f;--board-line: #a8842d;--board-cell-line: rgba(120, 90, 20, .45)}.hand-area{display:flex;gap:6px;margin-top:8px;min-height:36px;flex-wrap:wrap}.hand-empty{color:var(--ink-soft);font-size:12px;align-self:center}.hand-piece{position:relative;background:transparent;border:none;border-radius:10px;width:40px;height:40px;padding:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s}.hand-piece:active{transform:scale(.94)}.hand-piece .piece{width:32px;height:35px}.hand-piece .piece.gote{transform:none}.hand-piece .koma{font-size:17px}.hand-piece.selected{background:#5b8fb540;outline:2.5px solid var(--sora)}.hand-piece.card-dest{outline:2.5px solid var(--kaki);animation:cardGlow .9s infinite alternate}.hand-count{position:absolute;right:-5px;bottom:-5px;background:var(--kaki);color:#fff;font-size:10px;font-weight:900;border-radius:999px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #d85a3180}.card-hand-wrap{background:var(--panel);border-radius:20px;padding:12px;box-shadow:var(--shadow-soft)}.card-hand-label{font-size:12px;font-weight:900;color:var(--ink-soft);margin-bottom:10px;letter-spacing:.06em}.card-used-note{color:var(--kaki-deep);margin-left:6px}.card-hand{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px}.game-card{flex:0 0 auto;width:96px;min-height:118px;border-radius:16px;border:none;padding:10px 7px 8px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;color:#fff;text-align:center;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 10px #503c2840;position:relative}.card-count-badge{position:absolute;top:-6px;right:-6px;background:var(--ink);color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:2px 7px;box-shadow:0 2px 6px #0000004d}.game-card.style-lightning{background:linear-gradient(160deg,#f7c948,#e8912d)}.game-card.style-flame{background:linear-gradient(160deg,#f28c5f,#d94f35)}.game-card.style-light{background:linear-gradient(160deg,#66c6d4,#3d92ad)}.game-card.style-sakura{background:linear-gradient(160deg,#f4a3bd,#e06a92)}.game-card.style-dark{background:linear-gradient(160deg,#9d84d6,#6a4cb3)}.game-card.style-crimson{background:linear-gradient(160deg,#b33a4a,#701828);animation:crimsonPulse 2.2s ease-in-out infinite}@keyframes crimsonPulse{0%,to{box-shadow:0 4px 10px #78142859,0 0 6px #dc3c5040,inset 0 0 0 1.5px #ff828c66}50%{box-shadow:0 4px 12px #78142880,0 0 18px #e13c5599,inset 0 0 0 1.5px #ffa0a5bf}}.game-card.selected{transform:translateY(-8px) rotate(-2deg);box-shadow:0 12px 22px #503c2859}.game-card.disabled{opacity:.45;cursor:default;filter:saturate(.5)}.card-icon{font-size:22px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.card-name{font-weight:900;font-size:16px;letter-spacing:.08em;text-shadow:0 1px 3px rgba(0,0,0,.3)}.card-desc{font-size:9.5px;line-height:1.4;color:#ffffffeb;font-weight:700}.card-confirm-bar{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:13px;font-weight:700;flex-wrap:wrap}.card-history{background:var(--panel);border-radius:16px;padding:10px 12px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;box-shadow:var(--shadow-soft)}.card-history-title{font-size:11px;font-weight:900;color:var(--ink-soft);flex:0 0 auto}.card-history-empty{font-size:11px;color:var(--ink-soft)}.card-history-list{display:flex;gap:6px;flex-wrap:wrap}.card-history-item{font-size:11px;font-weight:900;border-radius:999px;padding:2px 9px;color:#fff}.card-history-item.sente{background:var(--kaki)}.card-history-item.gote{background:var(--sora)}.game-controls{display:flex;gap:10px;justify-content:center;margin-top:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a403873;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:40}.modal{background:var(--panel);border-radius:24px;padding:26px;max-width:320px;width:calc(100% - 48px);text-align:center;box-shadow:0 18px 50px #3c2d1e59;font-weight:700}.modal-buttons{display:flex;gap:10px;justify-content:center;margin-top:16px}.modal-buttons.column{flex-direction:column}.end-dialog h2{margin:0;color:var(--kaki-deep);font-size:24px;font-weight:900}.win-reason{color:var(--ink-soft);margin:8px 0 0}.promo-dialog{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a403859;display:flex;align-items:center;justify-content:center;z-index:30}.promo-box{background:var(--panel);border-radius:20px;padding:20px 26px;text-align:center;box-shadow:0 14px 40px #3c2d1e4d}.promo-box p{margin:0 0 14px;font-weight:900;font-size:16px}.promo-buttons{display:flex;gap:12px}.fx-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none;overflow:hidden}.fx-flash{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;animation:flash .5s ease-out}.fx-lightning .fx-flash{background:radial-gradient(circle,#fff6cf 0%,#f7c94866 40%,transparent 75%)}.fx-flame .fx-flash{background:radial-gradient(circle,#ffe0d0 0%,#f28c5f66 40%,transparent 75%)}.fx-light .fx-flash{background:radial-gradient(circle,#e8fbff 0%,#66c6d466 40%,transparent 75%)}.fx-sakura .fx-flash{background:radial-gradient(circle,#ffeaf2 0%,#f4a3bd66 40%,transparent 75%)}.fx-dark .fx-flash{background:radial-gradient(circle,#e9e0ff 0%,#9d84d666 40%,transparent 75%)}.fx-crimson .fx-flash{background:radial-gradient(circle,#ffe3e3 0%,#c9304566 40%,transparent 75%)}@keyframes flash{0%{opacity:0}15%{opacity:1}to{opacity:0}}.fx-particle{position:absolute;top:-30px;animation:fall 1.5s linear forwards;filter:drop-shadow(0 0 6px rgba(255,255,255,.7))}@keyframes fall{to{transform:translateY(110vh) rotate(300deg);opacity:.2}}.fx-banner{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);text-align:center;animation:bannerIn 1.6s ease-out forwards}.fx-player{display:block;font-size:15px;font-weight:900;color:#fff;text-shadow:0 1px 6px rgba(60,40,20,.8)}.fx-name{font-family:var(--maru);font-size:54px;font-weight:900;letter-spacing:.22em;color:#fff;text-shadow:0 0 18px var(--kaki),0 0 44px var(--kaki),0 3px 6px rgba(60,40,20,.6)}@keyframes bannerIn{0%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}20%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0}}.victory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;pointer-events:none;overflow:hidden}.confetti{position:absolute;top:-24px;border-radius:2px;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) rotateY(0);opacity:1}to{transform:translateY(108vh) rotate(540deg) rotateY(720deg);opacity:.4}}.firework{position:absolute;font-size:40px;opacity:0;animation:fireworkPop 1.1s ease-out forwards;filter:drop-shadow(0 0 10px rgba(255,200,100,.8))}@keyframes fireworkPop{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1.5)}70%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.3)}}.replay-header{display:flex;align-items:baseline;gap:12px;padding:4px 4px 0}.replay-header h2{margin:4px 0;font-size:18px;font-weight:900;color:var(--kaki-deep)}.replay-progress{color:var(--ink-soft);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.replay-controls{display:flex;gap:8px;justify-content:center}.replay-result{text-align:center;font-size:16px;font-weight:900;color:var(--kaki-deep);margin:2px 0}@media(min-width:480px){.app{padding-top:16px}}.achievements-screen .ach-summary{font-weight:700;color:var(--kaki-deep);align-self:center;margin-right:8px}.ach-note{margin:0;padding:4px 16px 0;font-size:12px;line-height:1.5;color:var(--ink-soft)}.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;padding:12px}.ach-badge{border-radius:14px;padding:14px 12px;text-align:center;background:var(--panel);border:1px solid rgba(120,96,60,.12);box-shadow:var(--shadow-soft);transition:transform .12s ease}.ach-badge.unlocked{background:linear-gradient(160deg,#fffaf1,#ffe9d4);border-color:#d85a3159;box-shadow:0 2px 10px #d85a3133}.ach-badge.locked{background:var(--washi);filter:grayscale(.9);opacity:.65;box-shadow:none}.ach-emoji{font-size:30px;line-height:1.2}.ach-name{font-weight:900;margin-top:4px;color:var(--ink)}.ach-desc{font-size:12px;color:var(--ink-soft);margin-top:2px}.ach-progress{position:relative;height:16px;margin-top:8px;border-radius:8px;background:#78603c1f;overflow:hidden}.ach-progress-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#f28c5f,var(--kaki-deep))}.ach-progress-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;line-height:1;color:var(--ink)}.ach-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:160;display:flex;flex-direction:column;gap:8px;animation:ach-toast-in .35s ease}.ach-toast-item{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;background:#281e12eb;color:#fdf6e9;box-shadow:0 6px 20px #00000059;border:1px solid rgba(232,115,74,.5)}.ach-toast-emoji{font-size:26px}.ach-toast-title{font-size:11px;letter-spacing:.1em;color:#f2c17a;opacity:.9}.ach-toast-name{font-size:16px;font-weight:900;color:#fdf6e9}@keyframes ach-toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.coin-balance{display:inline-flex;align-items:center;gap:2px;font-weight:900;color:var(--kaki-deep);padding:2px 8px;border-radius:999px;background:#e8734a1a}.swatch{position:relative}.swatch.unowned .swatch-name{opacity:.75}.swatch.locked{filter:grayscale(.6);opacity:.7}.swatch-price{display:block;margin-top:2px;font-size:11px;font-weight:900;color:var(--kaki-deep)}.swatch-lock{position:absolute;top:4px;right:6px;font-size:12px}.result-coins{display:inline-block;margin-left:8px;font-weight:900;color:var(--kaki-deep)}.purchase-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:180;display:flex;align-items:center;justify-content:center;background:#0006}.purchase-modal{background:var(--panel);border-radius:16px;padding:20px;width:min(88vw,340px);box-shadow:var(--shadow-soft);text-align:center}.purchase-modal-title{font-weight:900;font-size:16px;color:var(--ink)}.purchase-modal-cost{margin-top:8px;color:var(--ink-soft)}.purchase-modal-short{margin-top:8px;color:#c0392b;font-size:13px}.purchase-modal-actions{margin-top:16px;display:flex;gap:10px;justify-content:center}.thinking-dots span{display:inline-block;animation:thinking-blink 1.2s infinite}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-blink{0%,60%,to{opacity:.15}30%{opacity:1}}
