:root{--felt:#0d3a2a;--felt-light:#155a40;--felt-dark:#08291e;color:var(--ivory);background:var(--felt);font-synthesis:none;text-rendering:optimizelegibility;font-family:Zen Kaku Gothic New,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background:radial-gradient(ellipse at 50% -10%, #ffffff14, transparent 50%), radial-gradient(ellipse at 50% 110%, #0000008c, transparent 60%), repeating-linear-gradient(30deg, #ffffff03 0 1px, transparent 1px 5px), var(--felt);min-width:320px;min-height:100vh}button{font:inherit}.app-shell{width:min(1560px,100%);min-height:100vh;margin:0 auto;padding:22px clamp(10px,2.5vw,28px) 28px}.app-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.eyebrow{color:var(--gold);letter-spacing:.3em;margin-bottom:2px;font-size:10px;font-weight:700}h1{letter-spacing:.1em;text-shadow:0 2px 8px #0000008c;font-family:Shippori Mincho B1,serif;font-size:clamp(28px,5vw,42px);line-height:1.1}.subtitle{color:#f7f2e4ad;margin-top:4px;font-size:12px}.title-row{align-items:center;gap:12px;display:flex}.mobile-round-summary{display:none}.game-layout,.play-column{min-width:0}.play-column{position:relative}.table-board{background:linear-gradient(135deg, #ffffff0a, transparent 36%), radial-gradient(circle at center, #23764e94, transparent 48%), var(--felt-light);border:1px solid #e8c87952;border-radius:24px;grid-template-columns:minmax(210px,1fr) minmax(190px,.9fr) minmax(210px,1fr);grid-template-areas:".north.""west center east"".south.";gap:12px;min-height:510px;padding:18px;display:grid;box-shadow:inset 0 0 45px #00000040,0 18px 45px #00000052}.river-panel{background:#0000001a;border:1px solid #0000;border-radius:12px;min-width:0;padding:10px;transition:border-color .12s,background .12s}.river-panel.active-player{background:#e8c87912;border-color:#e8c87985}.river-south{grid-area:south}.river-east{grid-area:east}.river-north{grid-area:north}.river-west{grid-area:west}.player-label{color:#f7f2e4d1;align-items:center;gap:7px;margin-bottom:9px;font-size:12px;font-weight:700;display:flex}.wind-badge{background:var(--ivory);width:25px;height:25px;color:var(--ink);box-shadow:0 2px 0 var(--amber);border-radius:50%;place-items:center;font-family:Shippori Mincho B1,serif;font-size:14px;display:grid}.hand-count{color:#f7f2e47a;margin-left:auto;font-size:10px;font-weight:500}.river{grid-template-columns:repeat(6,27px);align-content:start;gap:5px 4px;min-height:105px;display:grid}.river-empty{color:#f7f2e447;letter-spacing:.08em;text-align:center;grid-column:1/-1;align-self:center;font-size:10px}.table-center{aspect-ratio:1;background:linear-gradient(145deg, #ffffff0e, #0000003b), var(--felt-dark);text-align:center;border:1px solid #e8c87973;border-radius:18px;flex-direction:column;grid-area:center;justify-content:center;place-self:center;align-items:center;width:160px;display:flex;box-shadow:inset 0 0 20px #00000040,0 8px 24px #00000047}.round-label{color:var(--gold);letter-spacing:.16em;font-size:11px;font-weight:700}.table-center strong{min-height:24px;margin:6px 0;font-family:Shippori Mincho B1,serif;font-size:16px}.riichi-status{color:var(--gold);letter-spacing:.14em;border:1px solid #e8c8798c;border-radius:999px;margin-bottom:4px;padding:2px 9px;font-family:Shippori Mincho B1,serif;font-size:10px;font-weight:800}.wall-counter{color:#f7f2e49e;align-items:baseline;gap:4px;font-size:11px;display:flex}.wall-counter b{color:var(--ivory);font-family:Shippori Mincho B1,serif;font-size:30px;line-height:1}.table-center small{color:#f7f2e461;margin-top:8px;font-size:9px}.hand-zone{text-align:center;margin-top:18px}.mobile-hand-overview,.mobile-hand-guide,.mobile-block-guide,.mobile-block-count-guide,.desktop-block-guide,.desktop-block-count-guide,.mobile-hand-control,.hand.mobile-hand-rail{display:none}.hand{justify-content:center;align-items:flex-end;gap:clamp(2px,.35vw,5px);min-height:76px;padding:8px 5px 12px;display:flex}.hand .tile.drawn{margin-left:clamp(5px,1.2vw,13px)}.desktop-hand .tile.drawn{margin-left:0}.block-count-guide{color:#f7f2e4a3;white-space:nowrap;background:#0000002e;border:1px solid #f7f2e424;border-radius:999px;justify-content:center;align-items:center;gap:6px;width:fit-content;max-width:min(92vw,720px);margin:0 auto 4px;padding:4px 9px;font-size:10px;font-weight:700;line-height:1.2}.desktop-block-count-guide{display:inline-flex}.block-count-guide b{color:var(--ivory);font-family:Shippori Mincho B1,serif;font-size:12px}.block-count-guide span{color:var(--gold);align-items:center;gap:7px;display:inline-flex}.block-count-guide strong{color:var(--gold);font-size:11px}.block-count-guide em{color:var(--ivory);background:#f7f2e41a;border-radius:999px;padding:1px 6px;font-size:10px;font-style:normal}.block-count-guide small{color:#f7f2e485;font-size:9px;font-weight:700}.block-count-ready{background:#5dbe841a;border-color:#8ce3aa47}.block-count-overflow{background:#e29f431c;border-color:#f0b66b57}.block-count-shortage{background:#5295d11a;border-color:#86cbff52}.desktop-block-guide{--block-tile-width:clamp(30px, 5.4vw, 56px);--block-gap:clamp(2px, .35vw, 5px);grid-template-columns:repeat(var(--block-tile-count,14), var(--block-tile-width));gap:var(--block-gap);pointer-events:none;width:max-content;max-width:100%;min-height:17px;margin:0 auto 4px;padding:0 5px;display:grid}.block-guide-item{color:#f7f2e4ad;white-space:nowrap;background:#00000021;border-top:2px solid;border-radius:0 0 6px 6px;justify-content:center;align-items:center;min-width:0;height:16px;font-size:9px;font-weight:800;line-height:1;display:flex;overflow:hidden}.block-guide-item-meld{color:#e8c879e6;background:#e8c8791c}.block-guide-item-pair{color:#8ce3aae6;background:#5dbe841f}.block-guide-item-ryanmen{color:#86cbffe6;background:#5295d121}.block-guide-item-kanchan,.block-guide-item-penchan{color:#f0b66bf0;background:#e29f4321}.block-guide-item-floating{color:#f7f2e47a;background:#f7f2e40f}.block-guide-hidden{visibility:hidden;pointer-events:none}.hand-scroll-hint{display:none}.meld-area{flex-wrap:wrap;justify-content:center;gap:8px;width:min(100%,760px);margin:6px auto 0;display:flex}.meld{background:#0003;border:1px solid #f7f2e429;border-radius:8px;align-items:center;gap:6px;padding:5px 7px;display:inline-flex}.meld>span{color:var(--gold);font-size:11px;font-weight:800}.meld-tiles{gap:3px;display:flex}.meld .tile.called-tile{z-index:1;transform-origin:50%;box-shadow:0 0 0 2px #e8c879b8,0 4px 12px #00000052}.meld .tile.called-tile:after{background:var(--gold);width:15px;height:15px;color:var(--felt-dark);border:1px solid #fffdf6cc;border-radius:999px;place-items:center;font-family:system-ui,sans-serif;font-size:10px;font-weight:900;line-height:1;display:grid;position:absolute;top:-6px;right:-6px;box-shadow:0 2px 5px #00000052}.meld .tile.called-tile.from-left{transform:rotate(-8deg)translateY(-2px)}.meld .tile.called-tile.from-left:after{content:"←"}.meld .tile.called-tile.from-across{transform:translateY(-4px)}.meld .tile.called-tile.from-across:after{content:"↑"}.meld .tile.called-tile.from-right{transform:rotate(8deg)translateY(-2px)}.meld .tile.called-tile.from-right:after{content:"→"}.reaction-panel{background:#162122eb;border:1px solid #e8c87947;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:min(100%,760px);margin:10px auto 0;padding:10px 12px;display:flex;box-shadow:0 10px 26px #00000047}.reaction-panel strong{color:var(--ivory);font-family:Shippori Mincho B1,serif;font-size:18px;display:block}.reaction-kicker{color:#f7f2e499;font-size:11px;font-weight:800;display:block}.reaction-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.reaction-actions button,.reaction-primary,.reaction-secondary{min-height:34px;color:var(--ivory);cursor:pointer;background:#f7f2e41a;border:1px solid #f7f2e42e;border-radius:8px;padding:7px 12px;font-weight:800}.reaction-primary{background:linear-gradient(180deg, #f3db9c, var(--gold));color:#2a2110;border-color:#e8c87961}.reaction-secondary:hover,.reaction-actions button:hover{background:#e8c87929;border-color:#e8c87973}.declare-panel{grid-template-columns:1fr;display:grid}.reaction-event-list{gap:8px;width:100%;display:grid}.reaction-empty{color:#f7f2e4ad;text-align:center;background:#0000002e;border-radius:8px;margin:0;padding:10px 12px;font-size:12px;font-weight:800}.reaction-event{background:#0000002e;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px;display:flex}.reaction-target{color:#f7f2e4c7;align-items:center;gap:7px;min-width:0;font-size:12px;font-weight:800;display:flex}.hand-hint{min-height:20px;color:var(--gold);letter-spacing:.08em;margin-top:7px;font-size:12px;font-weight:700}.hand-action-buttons{justify-content:center;margin-top:5px;display:flex}.hand-action-buttons .win-button{min-width:156px;box-shadow:0 0 0 2px #e8c87959,0 4px 12px #0000004d}.hand-riichi-button{display:none}.learning-panel{background:linear-gradient(#ffffff0b,#00000021),#0f4632e0;border:1px solid #e8c8794d;border-radius:16px;grid-template-columns:minmax(230px,.75fr) minmax(340px,1.25fr);gap:12px;margin-top:12px;padding:14px;display:grid;box-shadow:0 10px 28px #0000003d}.learning-metrics{grid-column:1/-1;display:block}.metric-privacy-toggle{color:#f7f2e4b3;cursor:pointer;background:#00000026;border:1px solid #f7f2e421;border-radius:7px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px;align-items:stretch;width:100%;min-height:32px;padding:0;display:grid;overflow:hidden}.metric-chip{text-align:center;white-space:nowrap;border-right:1px solid #f7f2e41a;align-items:center;min-width:0;padding:6px 10px;font-size:11px;display:grid}.learning-metrics b{color:var(--ivory)}.metric-privacy-icon{color:#e8c879db;background:#e8c87914;place-items:center;display:grid}.metric-privacy-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.metric-privacy-toggle[aria-pressed=true]{background:#00000038;border-color:#f7f2e438}.metric-privacy-toggle[aria-pressed=true] .metric-privacy-icon{color:var(--gold);background:#0000002e}.metric-privacy-toggle:hover,.metric-privacy-toggle:focus-visible{background:#e8c8791a;border-color:#e8c87985;outline:none}.hand-plan-card{background:#00000024;border:1px solid #86cbff47;border-radius:11px;min-width:0;padding:11px 12px}.hand-plan-card strong{color:#86cbff;font-family:Shippori Mincho B1,serif;font-size:18px;line-height:1.35;display:block}.hand-plan-card p{color:#f7f2e4ad;margin-top:6px;font-size:11px;line-height:1.6}.hand-plan-reason{color:#f7f2e4d1;border-top:1px dashed #f7f2e41f;padding-top:6px;font-weight:800}.hand-plan-action{color:#e8c879e6;font-weight:800}.hand-plan-push{border-color:#e8c8797a}.hand-plan-push strong{color:var(--gold)}.hand-plan-fast{border-color:#5dbe846b}.hand-plan-fast strong{color:#8ce3aa}.hand-plan-value{border-color:#e29f436b}.hand-plan-value strong{color:#f0b66b}.hand-plan-patient{border-color:#f7f2e433}.hand-plan-patient strong{color:#f7f2e4d1}.learning-label{color:var(--gold);letter-spacing:.17em;margin-bottom:6px;font-size:10px;font-weight:700;display:block}.yaku-hints{background:#0000001f;border-radius:8px;min-width:0;padding:8px 9px}.hint-chips{flex-wrap:wrap;gap:6px;display:flex}.hint-chip{color:#f0db9f;background:#e8c8791a;border:1px solid #e8c87947;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700}.hint-empty{color:#f7f2e466;font-size:11px}.evaluation-card{background:#00000026;border:1px solid #0000;border-radius:10px;min-width:0;padding:10px 11px}.evaluation-card.recommendation-recommended{border-color:#e8c87980}.evaluation-card.recommendation-playable{border-color:#5dbe846b}.evaluation-card.recommendation-offPlan{border-color:#e29f436b}.evaluation-card.is-empty{color:#f7f2e46e;font-size:11px}.evaluation-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.evaluation-heading>div{min-width:0}.evaluation-grade{font-family:Shippori Mincho B1,serif;font-size:16px;line-height:1.55;display:block}.recommendation-recommended .evaluation-grade{color:var(--gold)}.recommendation-playable .evaluation-grade{color:#8ce3aa}.recommendation-offPlan .evaluation-grade{color:#f0b66b}.evaluation-meta,.evaluation-deltas{color:#f7f2e491;flex-wrap:wrap;gap:5px 12px;margin-top:7px;font-size:9.5px;display:flex}.evaluation-meta b,.evaluation-deltas b{color:#f7f2e4e0}.evaluation-deltas{border-top:1px dashed #f7f2e41f;padding-top:6px}.evaluation-card p{color:#f7f2e4b3;margin-top:7px;font-size:11px;line-height:1.65}.discard-insight-card{background:#f7f2e40b;border:1px solid #f7f2e41f;border-radius:9px;min-width:0;padding:9px 10px}.discard-insight-card p{color:#f7f2e4a8;margin-top:6px;font-size:10.5px;line-height:1.6}.discard-insight-card .beginner-advice{color:#e8c879db;border-top:1px dashed #f7f2e41f;padding-top:6px;font-weight:700}.beginner-advice b{color:var(--gold);margin-bottom:3px;font-size:9px;display:block}.insight-meta{flex-wrap:wrap;gap:5px;margin-top:7px;display:flex}.insight-meta span{color:#f7f2e4b8;background:#00000024;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:700}.evaluation-riichi{border-radius:999px;padding:3px 8px;font-weight:700;display:inline-block}.evaluation-riichi.declared{color:var(--gold);background:#e8c87926}.evaluation-riichi.missed{color:#f7f2e4c2;background:#f7f2e417}.riichi-wait-panel{background:#e8c87912;border:1px solid #e8c87959;border-radius:11px;grid-column:1/-1;padding:10px 11px}.riichi-wait-list{flex-wrap:wrap;gap:8px;display:flex}.riichi-wait-item{color:#f7f2e4b3;align-items:center;gap:6px;font-size:10px;display:flex}.riichi-wait-item b{color:var(--gold);font-size:12px}.yaku-info-panel{grid-column:1/-1;min-width:0;padding-top:2px}.yaku-info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.yaku-info-card{background:#00000021;border:1px solid #e8c87933;border-radius:10px;min-width:0;padding:10px}.yaku-info-card h4{color:var(--gold);margin-bottom:4px;font-family:Shippori Mincho B1,serif;font-size:13px}.yaku-reading{color:#e8c879ad;margin-left:3px;font-family:inherit;font-size:.78em;font-weight:700}.yaku-info-card p{color:#f7f2e49e;font-size:9.5px;line-height:1.55}.yaku-info-card .yaku-current{color:#f7f2e4db;margin-top:4px;font-weight:700}.yaku-examples{gap:5px;margin-top:7px;display:grid}.yaku-example-row{align-items:center;gap:6px;min-width:0;display:flex}.example-label{color:#f7f2e480;text-align:right;flex:0 0 36px;font-size:8px;font-weight:700}.example-label.ok{color:#8ce3aa}.example-label.ng{color:#f0a195}.example-groups{flex-wrap:wrap;align-items:center;gap:5px;min-width:0;display:flex}.example-group{gap:1px;display:flex}.example-groups small{color:#f7f2e48c;font-size:8px}.feedback-message{color:var(--gold);text-align:center;background:#e8c87917;border:1px solid #e8c87966;border-radius:8px;grid-column:1/-1;padding:7px 10px;font-size:12px;font-weight:700}.action-buttons{grid-column:1/-1;justify-content:center;gap:9px;display:flex}.action-buttons:empty{display:none}.side-call-toggle{z-index:7;color:#f7f2e4b8;cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;writing-mode:horizontal-tb;background:#08231ceb;border:1px solid #f7f2e42e;border-radius:999px;flex-direction:row;align-items:center;gap:8px;min-width:0;padding:7px 10px;font-size:12px;font-weight:900;line-height:1.15;display:inline-flex;position:absolute;bottom:20px;left:18px;box-shadow:0 8px 20px #00000047}.side-call-toggle input{appearance:none;writing-mode:horizontal-tb;background:#f7f2e41f;border:1px solid #f7f2e43d;border-radius:999px;place-items:center;width:34px;height:20px;padding:2px;transition:background .15s,border-color .15s;display:inline-grid}.side-call-toggle input:before{content:"";background:#f7f2e4d1;border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s}.side-call-toggle input:checked{background:#e8c87952;border-color:#e8c87994}.side-call-toggle input:checked:before{background:var(--gold);transform:translate(14px)}.side-call-toggle:has(input:checked){color:var(--gold);background:#e8c8791c;border-color:#e8c87961}.mobile-call-toggle{display:none}.riichi-button,.win-button,.restart-button{cursor:pointer;min-width:136px;color:var(--ink);border:0;border-radius:999px;padding:9px 18px;font-weight:700;box-shadow:0 4px 12px #0000004d}.riichi-button{background:linear-gradient(180deg, #f3db9c, var(--gold))}.riichi-button:disabled{cursor:default;opacity:.45;filter:saturate(.45);box-shadow:0 2px 7px #0003}.riichi-button.is-established:disabled{opacity:.7}.riichi-button.is-active{background:linear-gradient(#f5b4a9,#d66353);box-shadow:0 0 0 2px #ffe5de8c,0 4px 12px #0000004d}.win-button{background:linear-gradient(180deg, #fffdf6, var(--ivory-dim));font-family:Shippori Mincho B1,serif;font-size:17px}.win-celebration{z-index:11;pointer-events:none;position:fixed;inset:0;overflow:hidden}.win-celebration:before{content:"";background:radial-gradient(circle at 50% 42%,#fff5ae57,#0000 20%),radial-gradient(circle,#e8c87933,#0000 38%),conic-gradient(#0000 0deg 8deg,#ffea9a29 8deg 13deg,#0000 13deg 22deg);animation:1.25s ease-out both jackpot-flash;position:absolute;inset:-12%}.win-celebration span{background:var(--gold);border-radius:2px;width:8px;height:16px;animation:2.3s cubic-bezier(.12,.72,.24,1) both confetti-fall;position:absolute;top:-9vh;left:50%;box-shadow:0 0 10px #fff4bc59}.win-celebration span:nth-child(3n){background:#fff3b0;border-radius:50%;width:10px;height:10px}.win-celebration span:nth-child(4n){background:#ee7466}.win-celebration span:nth-child(5n){background:#5dd0a4}.win-celebration span:nth-child(6n){background:#78a8ff}.win-celebration span:first-child{--drift:18vw;--spin:260deg;animation-delay:20ms;left:4%}.win-celebration span:nth-child(2){--drift:-10vw;--spin:-310deg;animation-delay:.22s;left:8%}.win-celebration span:nth-child(3){--drift:14vw;--spin:420deg;animation-delay:80ms;left:12%}.win-celebration span:nth-child(4){--drift:-18vw;--spin:-260deg;animation-delay:.34s;left:17%}.win-celebration span:nth-child(5){--drift:10vw;--spin:360deg;animation-delay:.15s;left:21%}.win-celebration span:nth-child(6){--drift:-12vw;--spin:-430deg;animation-delay:.44s;left:25%}.win-celebration span:nth-child(7){--drift:16vw;--spin:300deg;animation-delay:40ms;left:29%}.win-celebration span:nth-child(8){--drift:-15vw;--spin:-380deg;animation-delay:.28s;left:33%}.win-celebration span:nth-child(9){--drift:8vw;--spin:460deg;animation-delay:.12s;left:37%}.win-celebration span:nth-child(10){--drift:-20vw;--spin:-290deg;animation-delay:.38s;left:41%}.win-celebration span:nth-child(11){--drift:19vw;--spin:390deg;animation-delay:.18s;left:45%}.win-celebration span:nth-child(12){--drift:-8vw;--spin:-440deg;animation-delay:60ms;left:49%}.win-celebration span:nth-child(13){--drift:14vw;--spin:320deg;animation-delay:.32s;left:53%}.win-celebration span:nth-child(14){--drift:-16vw;--spin:-360deg;animation-delay:.14s;left:57%}.win-celebration span:nth-child(15){--drift:12vw;--spin:470deg;animation-delay:.42s;left:61%}.win-celebration span:nth-child(16){--drift:-22vw;--spin:-300deg;animation-delay:10ms;left:65%}.win-celebration span:nth-child(17){--drift:15vw;--spin:410deg;animation-delay:.24s;left:69%}.win-celebration span:nth-child(18){--drift:-12vw;--spin:-470deg;animation-delay:.1s;left:73%}.win-celebration span:nth-child(19){--drift:20vw;--spin:280deg;animation-delay:.36s;left:77%}.win-celebration span:nth-child(20){--drift:-14vw;--spin:-390deg;animation-delay:.2s;left:81%}.win-celebration span:nth-child(21){--drift:9vw;--spin:450deg;animation-delay:.46s;left:85%}.win-celebration span:nth-child(22){--drift:-18vw;--spin:-330deg;animation-delay:50ms;left:89%}.win-celebration span:nth-child(23){--drift:11vw;--spin:370deg;animation-delay:.27s;left:93%}.win-celebration span:nth-child(24){--drift:-15vw;--spin:-420deg;animation-delay:.16s;left:97%}.win-celebration span:nth-child(n+25){animation-duration:2.7s;top:-16vh}.win-celebration span:nth-child(25){--drift:22vw;--spin:520deg;animation-delay:.55s;left:6%}.win-celebration span:nth-child(26){--drift:-11vw;--spin:-510deg;animation-delay:.66s;left:18%}.win-celebration span:nth-child(27){--drift:17vw;--spin:480deg;animation-delay:.52s;left:31%}.win-celebration span:nth-child(28){--drift:-21vw;--spin:-540deg;animation-delay:.7s;left:44%}.win-celebration span:nth-child(29){--drift:13vw;--spin:500deg;animation-delay:.58s;left:58%}.win-celebration span:nth-child(30){--drift:-17vw;--spin:-490deg;animation-delay:.74s;left:71%}.win-celebration span:nth-child(31){--drift:19vw;--spin:560deg;animation-delay:.62s;left:83%}.win-celebration span:nth-child(32){--drift:-13vw;--spin:-530deg;animation-delay:.78s;left:95%}.round-result{z-index:10;scrollbar-color:#e8c8799e #06201847;scrollbar-gutter:stable;scrollbar-width:thin;text-align:center;background:linear-gradient(#ffffff0f,#00000024),#104b36;border:1px solid #e8c879a6;border-radius:18px;width:min(720px,100% - 28px);max-height:min(86vh,760px);padding:24px;animation:.2s ease-out result-in;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 20px 70px #000000bf}.round-result::-webkit-scrollbar{width:13px}.round-result::-webkit-scrollbar-track{background:#06201847;border-radius:999px;margin:14px 4px}.round-result::-webkit-scrollbar-thumb{background:#e8c879ad padding-box padding-box;border:3px solid #104b36eb;border-radius:999px}.round-result::-webkit-scrollbar-thumb:hover{background:#ffe081e0 padding-box padding-box}.round-result.is-win-result{background:linear-gradient(#fff6bc17,#0000001f),radial-gradient(circle at 50% 0,#ffdc6b2e,#0000 38%),#104b36;border-color:#ffe081e0;animation:.46s cubic-bezier(.16,1.18,.3,1) both result-win-pop;box-shadow:0 0 0 1px #fff6bc2e,0 0 34px #e8c87952,0 24px 80px #000000c7}.round-result.is-win-result h2{color:#fff3b0;text-shadow:0 0 12px #ffe8859e,0 2px #00000038;animation:.9s ease-out 80ms both win-title-pulse}.round-result h2{margin:2px 0;font-family:Shippori Mincho B1,serif;font-size:38px}.round-result>p{color:#f7f2e4b3;font-size:12px}.result-hand{text-align:left;background:#0000001f;border:1px solid #f7f2e41f;border-radius:10px;gap:8px;margin-top:13px;padding:11px 12px 12px;display:grid}.result-hand-label,.score-section-label{color:#e8c879db;letter-spacing:.08em;font-size:11px;font-weight:900}.result-hand-tiles{flex-wrap:wrap;align-items:flex-end;gap:5px;display:flex}.result-hand .tile.mini{--tile-width:30px}.result-melds{flex-wrap:wrap;gap:7px;display:flex}.result-meld{background:#f7f2e40e;border:1px solid #e8c8792e;border-radius:8px;align-items:center;gap:5px;padding:5px 7px;display:flex}.result-meld>span{color:#f7f2e48f;font-size:10px;font-weight:900}.result-meld>div{gap:3px;display:flex}.result-meld .tile.tiny{--tile-width:22px}.score-result{text-align:left;background:#00000029;border:1px solid #e8c8795c;border-radius:12px;margin-top:15px;padding:14px}.score-limit-banner{background:linear-gradient(90deg,#ffeeab3b,#e8c87914 58%,#ffeeab33),#00000021;border:1px solid #ffeeab8a;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:11px;padding:9px 12px;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffff1a,0 0 18px #e8c87924}.score-limit-banner span{color:#fff3b0;text-shadow:0 0 14px #ffe98b75;font-family:Shippori Mincho B1,serif;font-size:clamp(26px,5vw,40px);line-height:1}.score-limit-banner small{color:#f7f2e4ad;flex:none;font-size:12px;font-weight:800}.score-main{color:#f7f2e4b3;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;display:flex}.score-main strong{color:var(--gold);font-family:Shippori Mincho B1,serif;font-size:clamp(28px,5vw,42px);line-height:1}.score-breakdown,.score-yaku-list{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.score-section-label{margin-top:12px;display:block}.score-breakdown span,.score-yaku-empty,.score-yaku-item{color:#f7f2e4b8;background:#f7f2e40f;border:1px solid #f7f2e41f;border-radius:7px;padding:5px 9px;font-size:11px}.score-yaku-item{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1px 7px;min-width:132px;display:grid}.score-yaku-name{color:#f7f2e4e0;min-width:0;font-weight:900;line-height:1.25}.score-yaku-reading{color:#e8c879b8;min-width:0;font-size:9px;font-weight:800;line-height:1.15}.score-breakdown b,.score-yaku-item b{color:var(--ivory)}.score-yaku-item b{white-space:nowrap;grid-area:1/2/span 2;align-self:center}.score-yaku-tiles,.score-yaku-note{grid-column:1/-1}.score-yaku-tiles{gap:4px;margin-top:5px;display:grid}.score-yaku-tile-row{align-items:center;gap:5px;min-width:0;display:flex}.score-yaku-tile-row>span,.score-yaku-note{color:#f7f2e485;font-size:9px;font-weight:800;line-height:1.2}.score-yaku-tile-row>div{flex-wrap:wrap;gap:3px;min-width:0;display:flex}.score-yaku-tile-row .tile.tiny{--tile-width:21px}.score-yaku-note{margin-top:4px}.score-note{color:#f7f2e475;margin-top:9px;font-size:10px}.discard-history{text-align:left;margin-top:16px}.discard-history h3{color:var(--gold);margin-bottom:8px;font-family:Shippori Mincho B1,serif;font-size:15px}.discard-history ol{gap:8px;list-style:none;display:grid}.discard-history li{color:#f7f2e4a8;background:#00000029;border-radius:9px;padding:10px 11px;font-size:10px;line-height:1.55}.history-title{color:var(--ivory);justify-content:space-between;gap:8px;font-size:12px;display:flex}.history-flag{color:var(--gold);background:#e8c87929;border-radius:999px;margin-top:5px;padding:2px 7px;font-weight:700;display:inline-block}.history-flag.missed{color:#f7f2e4b8;background:#f7f2e41a}.history-empty{color:#f7f2e473;font-size:11px}.round-result .restart-button{background:var(--gold);margin-top:17px}.result-affiliate{color:#f7f2e480;background:#0000001f;border:1px solid #f7f2e41f;border-radius:10px;gap:9px;width:min(100%,420px);max-width:100%;margin:13px auto 0;padding:11px 13px 10px;font-size:12px;line-height:1.35;display:grid}.result-affiliate>span{color:#f7f2e494;font-size:12px;font-weight:700}.affiliate-book-list{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:center;gap:9px;display:grid}.affiliate-book-card{color:#e8c879db;background:#f7f2e40b;border:1px solid #e8c87933;border-radius:8px;justify-items:center;gap:5px;min-width:0;padding:7px 7px 6px;text-decoration:none;display:grid}.affiliate-book-card:hover,.affiliate-book-card:focus-visible{color:var(--gold);text-underline-offset:3px;background:#e8c8791a;border-color:#e8c8796b;text-decoration:underline}.affiliate-cover{background:#f7f2e414;border-radius:4px;place-items:center;width:46px;height:64px;display:grid;overflow:hidden;box-shadow:0 3px 7px #00000047}.affiliate-cover img{object-fit:cover;width:100%;height:100%;display:block}.affiliate-book-card b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:900;line-height:1.1;overflow:hidden}.result-affiliate small{color:#f7f2e45c;font-size:11px}.draw-result{z-index:10;text-align:center;background:linear-gradient(#ffffff0f,#00000024),#104b36;border:1px solid #e8c879a6;border-radius:18px;width:min(350px,100% - 36px);padding:28px;animation:.2s ease-out result-in;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 70px #000000bf}.result-kicker{color:var(--gold);letter-spacing:.24em;font-size:10px;font-weight:700}.draw-result h2{margin:4px 0;font-family:Shippori Mincho B1,serif;font-size:42px}.draw-result p{color:#f7f2e4b8;font-size:13px}.draw-result button{background:var(--gold);color:var(--ink);cursor:pointer;border:0;border-radius:999px;margin-top:20px;padding:10px 30px;font-weight:700;box-shadow:0 4px 12px #00000059}.app-footer{color:#f7f2e49e;letter-spacing:.06em;text-align:center;background:#00000021;border:1px solid #e8c87938;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:9px 18px;margin-top:22px;padding:13px 18px;font-size:11px;display:flex}.footer-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:5px 7px;display:inline-flex}.app-footer a{color:#e8c879e6;border-radius:7px;padding:4px 7px;font-size:12px;font-weight:700;text-decoration:none;transition:color .15s,background .15s}.footer-note{color:#f7f2e485;letter-spacing:.02em;font-size:11px;font-weight:700}.app-footer a:hover,.app-footer a:focus-visible{color:var(--gold);text-underline-offset:3px;background:#e8c8791a;text-decoration:underline}@keyframes result-in{0%{opacity:0;transform:translate(-50%,-47%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes result-win-pop{0%{opacity:0;transform:translate(-50%,-47%)scale(.9)}58%{opacity:1;transform:translate(-50%,-50%)scale(1.035)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes win-title-pulse{0%{filter:brightness();transform:scale(.92)}42%{filter:brightness(1.45);transform:scale(1.08)}to{filter:brightness();transform:scale(1)}}@keyframes jackpot-flash{0%{opacity:0;transform:scale(.82)rotate(0)}18%{opacity:1}to{opacity:0;transform:scale(1.12)rotate(16deg)}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-10vh)rotate(0)}10%{opacity:1}82%{opacity:1}to{opacity:0;transform:translate3d(var(--drift), 118vh, 0) rotate(var(--spin))}}@media (prefers-reduced-motion:reduce){.win-celebration{display:none}.round-result,.round-result.is-win-result,.round-result.is-win-result h2{animation:none}}@media (width>=781px){.play-column .reaction-panel{z-index:6;width:min(430px,100% - 36px);margin:10px auto 0;padding:9px 11px;position:relative;inset:auto;transform:none}.play-column .declare-panel{width:min(620px,100% - 36px)}.play-column .reaction-panel strong{font-size:16px}.play-column .reaction-actions button,.play-column .reaction-primary,.play-column .reaction-secondary{min-height:31px;padding:6px 10px}.learning-panel{padding:17px}.metric-chip{font-size:12px}.learning-label{font-size:11px}.hint-chip,.hint-empty{font-size:12px}.hand-plan-card{padding:14px 15px}.hand-plan-card strong{font-size:20px}.hand-plan-card p{font-size:13px;line-height:1.65}.evaluation-card{padding:14px 15px}.evaluation-card.is-empty{font-size:13px}.evaluation-grade{font-size:20px}.discard-insight-card p{font-size:12px}.evaluation-meta,.evaluation-deltas{font-size:11px}.evaluation-card p{font-size:13px;line-height:1.7}.riichi-wait-item{font-size:12px}.riichi-wait-item b{font-size:13px}.yaku-info-card{padding:13px}.yaku-info-card h4{font-size:15px}.yaku-info-card p{font-size:12px;line-height:1.65}.example-label,.example-groups small{font-size:10px}.feedback-message{font-size:13px}}@media (width>=781px) and (width<=1099px) and (orientation:portrait){.play-column,.learning-panel,.app-footer{max-width:940px;margin-left:auto;margin-right:auto}.table-board{grid-template-columns:minmax(180px,1fr) minmax(155px,.72fr) minmax(180px,1fr);gap:10px;min-height:455px;padding:16px}.river-panel{padding:9px}.river{grid-template-columns:repeat(6,25px);gap:4px 3px;min-height:96px}.tile.river{--tile-width:25px}.table-center{width:145px}.hand-zone{margin-top:14px}.hand-action-buttons{gap:9px;margin-top:8px}.hand-action-buttons .hand-riichi-button{justify-content:center;min-width:156px;display:inline-flex}.learning-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.learning-panel>.action-buttons{display:none}.learning-panel>.evaluation-card{grid-column:1/-1}.yaku-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.game-layout{grid-template-columns:minmax(0,1fr) minmax(310px,380px);align-items:start;gap:clamp(16px,2vw,28px);display:grid}.play-column .tile.hand{--tile-width:clamp(42px, 3.6vw, 52px)}.play-column .desktop-block-guide{--block-tile-width:clamp(42px, 3.6vw, 52px)}.table-board.is-late-round{grid-template-rows:190px 150px 190px;min-height:0}.table-board.is-late-round .river-panel{align-self:stretch;padding:8px}.table-board.is-late-round .player-label{margin-bottom:6px}.table-board.is-late-round .river{grid-template-columns:repeat(6,23px);gap:4px 3px;min-height:0}.table-board.is-late-round .tile.river{--tile-width:23px}.table-board.is-late-round .table-center{width:150px}.game-layout .learning-panel{grid-template-columns:1fr;gap:8px;margin-top:0;padding:12px;position:sticky;top:16px}.game-layout .learning-metrics,.game-layout .feedback-message,.game-layout .action-buttons{grid-column:1}.game-layout .learning-metrics{display:block}.game-layout .metric-chip{text-align:center;padding:5px 7px;font-size:11px}.game-layout .yaku-hints,.game-layout .hand-plan-card,.game-layout .evaluation-card,.game-layout .riichi-wait-panel{padding:9px 10px}.game-layout .learning-label{margin-bottom:4px}.game-layout .hand-plan-card strong{font-size:17px}.game-layout .hand-plan-card p{margin-top:5px;font-size:11px;line-height:1.5}.game-layout .evaluation-grade{font-size:18px}.game-layout .evaluation-meta,.game-layout .evaluation-deltas{margin-top:5px;font-size:10px}.game-layout .evaluation-card p{margin-top:5px;font-size:12px;line-height:1.55}.game-layout .discard-insight-card{padding:8px 9px}.game-layout .discard-insight-card p{font-size:10px;line-height:1.5}.game-layout .yaku-info-grid{grid-template-columns:1fr 1fr;gap:6px}.game-layout .yaku-info-card{padding:9px}.game-layout .yaku-info-card h4{font-size:13px}.game-layout .yaku-info-card p{font-size:10px;line-height:1.5}.game-layout .yaku-examples{margin-top:5px}.game-layout .yaku-example-row:not(:first-child){display:none}.game-layout .example-label{flex-basis:30px;font-size:8px}.game-layout .example-groups small{font-size:8px}.game-layout .tile.tiny{--tile-width:18px}.game-layout .feedback-message{padding:6px 8px;font-size:12px}.game-layout .riichi-button{padding-block:8px}}@media (width>=1400px){.app-shell{width:min(1640px,100%)}.game-layout{grid-template-columns:minmax(780px,900px) minmax(460px,1fr);justify-content:center;gap:clamp(24px,2.25vw,40px)}.play-column{width:100%;max-width:900px}.game-layout .learning-panel{gap:10px;padding:16px}.game-layout .metric-chip,.game-layout .metric-privacy-toggle{font-size:14px}.game-layout .learning-label{font-size:13px}.game-layout .hint-chip,.game-layout .hint-empty{font-size:14px}.game-layout .hand-plan-card{padding:13px 14px}.game-layout .hand-plan-card strong{font-size:22px}.game-layout .hand-plan-card p{font-size:14px;line-height:1.6}.game-layout .evaluation-card{padding:13px 14px}.game-layout .evaluation-grade{font-size:23px}.game-layout .evaluation-meta,.game-layout .evaluation-deltas{font-size:13px}.game-layout .evaluation-card p{font-size:16px;line-height:1.65}.game-layout .discard-insight-card p{font-size:13px}.game-layout .yaku-info-card{padding:12px}.game-layout .yaku-info-card h4{font-size:17px}.game-layout .yaku-info-card p{font-size:14px;line-height:1.6}.game-layout .example-label,.game-layout .example-groups small{font-size:10px}.game-layout .tile.tiny{--tile-width:20px}.game-layout .feedback-message{font-size:14px}.game-layout .riichi-button{font-size:16px}}@media (width<=780px){.table-board{border-radius:18px;grid-template-columns:1fr 1fr;grid-template-areas:"north north""west east""center center""south south";min-height:0;padding:10px}.river-panel{padding:8px}.table-center{width:140px;margin:6px 0}.learning-panel{grid-template-columns:1fr}.learning-metrics,.feedback-message,.action-buttons{grid-column:1}.yaku-info-grid{grid-template-columns:1fr 1fr}.win-celebration span:nth-child(n+21){display:none}.result-hand{padding:10px}.result-hand .tile.mini{--tile-width:26px}.result-meld .tile.tiny{--tile-width:20px}.app-shell{padding-top:10px}.app-header{margin-bottom:8px;position:relative}.app-header>div{width:100%}.subtitle{display:none}.title-row{display:block}.mobile-round-summary{white-space:nowrap;background:#00000029;border:1px solid #e8c87961;border-radius:11px;flex-direction:column;min-width:92px;padding:6px 11px;line-height:1.2;display:flex;position:absolute;top:0;right:0}.mobile-round-summary b{color:var(--gold);letter-spacing:.05em;font-family:Shippori Mincho B1,serif;font-size:14px}.mobile-round-summary span{color:#f7f2e4ad;margin-top:3px;font-size:10px}.table-board{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"north east""west south";gap:5px;padding:7px;position:relative}.river-panel{min-height:92px;padding:6px}.player-label{gap:4px;margin-bottom:4px;font-size:10px}.wind-badge{width:22px;height:22px;font-size:12px}.hand-count{display:none}.river{grid-template-columns:repeat(6,21px);gap:3px 2px;min-height:58px}.tile.river{--tile-width:21px}.table-center{display:none}.app-footer{gap:8px;margin-top:16px;padding:12px 10px;font-size:10px}.footer-links{flex-wrap:wrap;justify-content:center;gap:4px}.app-footer a{font-size:11px}.hand-zone{margin-top:7px;position:relative}.desktop-call-toggle{display:none}.mobile-call-toggle{writing-mode:horizontal-tb;border-radius:999px;flex-direction:row;min-width:0;padding:5px 8px;font-size:9px;display:inline-flex;top:98px;bottom:auto;left:12px;transform:none}.mobile-call-toggle input{width:28px;height:17px}.mobile-call-toggle input:before{width:11px;height:11px}.mobile-call-toggle input:checked:before{transform:translate(11px)}.desktop-hand,.desktop-block-count-guide,.desktop-block-guide{display:none}.mobile-hand-guide{letter-spacing:.08em;border-radius:999px;justify-content:center;align-items:center;min-height:14px;padding:2px 7px;font-size:9px;font-weight:700;display:inline-flex}.overview-guide{color:#f7f2e4b8;background:#f7f2e417}.rail-guide{color:var(--gold);background:#e8c8791f;margin-top:1px}.meld-area{gap:5px;width:calc(100vw - 34px);margin-top:5px}.meld{gap:4px;padding:4px 5px}.meld>span{font-size:10px}.meld .tile.called-tile:after{width:13px;height:13px;font-size:9px;top:-5px;right:-5px}.reaction-panel{z-index:20;left:50%;right:auto;bottom:calc(env(safe-area-inset-bottom,0px) + clamp(188px, 28svh, 238px));background:#0c1f19f5;border-color:#e8c87980;flex-direction:column;align-items:stretch;gap:8px;width:min(360px,100vw - 28px);max-height:min(58svh,420px);margin:0;padding:9px;position:fixed;overflow-y:auto;transform:translate(-50%);box-shadow:0 0 0 1px #f7f2e40f,0 14px 34px #00000085}.reaction-panel strong{font-size:16px}.reaction-actions{justify-content:stretch}.reaction-actions button,.reaction-primary,.reaction-secondary{flex:96px;min-width:0;padding-inline:8px;font-size:12px}.reaction-event{flex-direction:column;align-items:stretch}.mobile-hand-overview{--overview-tile-width:calc((100vw - 58px) / 14);cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:1px;min-height:40px;padding:3px 5px 6px;display:flex;position:relative}.mobile-overview-window{z-index:3;border:1px solid var(--gold);background:#e8c87914;border-radius:5px;transition:left 40ms linear;position:absolute;top:0;bottom:3px;box-shadow:0 0 8px #e8c87938}.mobile-overview-slot{width:var(--overview-tile-width);flex:0 0 var(--overview-tile-width);justify-content:center;display:flex}.mobile-hand-overview .tile.hand{--tile-width:var(--overview-tile-width)}.mobile-hand-overview .tile.overview-selected{box-shadow:0 calc(var(--tile-width) * .09) 0 var(--amber), 0 0 0 1px var(--gold), 0 calc(var(--tile-width) * .13) calc(var(--tile-width) * .18) #00000073}.mobile-block-count-guide{gap:5px;max-width:calc(100vw - 36px);margin:-1px auto 1px;padding:3px 7px;font-size:8px;display:inline-flex}.mobile-block-count-guide b{font-size:10px}.mobile-block-count-guide small{display:none}.mobile-block-guide{grid-template-columns:repeat(var(--block-tile-count,14), minmax(0, 1fr));pointer-events:none;gap:1px;width:calc(100vw - 48px);min-height:15px;margin:-3px auto 1px;padding:0 5px;display:grid}.mobile-block-guide .block-guide-item{border-radius:0 0 5px 5px;height:14px;font-size:8px}.mobile-hand-control{--rail-width:min(356px, calc(100vw - 34px));--rail-tile-width:46px;--rail-gap:2px;--selected-rest-lift:16px;width:var(--rail-width);margin:0 auto;display:block;position:relative}.mobile-block-count-guide span{gap:5px}.mobile-block-count-guide strong,.mobile-block-count-guide em{font-size:9px}.mobile-block-count-guide em{padding:1px 5px}.hand.mobile-hand-rail{scrollbar-width:none;touch-action:none;overscroll-behavior-x:contain;justify-content:flex-start;width:100%;min-height:116px;margin:0;padding:46px 0 10px;display:flex;position:relative;overflow:auto hidden}.discard-threshold-guide{z-index:6;pointer-events:none;opacity:0;height:58px;transition:opacity .12s,transform .12s;display:block;position:absolute;top:0;left:0;right:0;transform:translateY(4px)}.hand-zone[data-has-selected-tile=true] .discard-threshold-guide{opacity:1;transform:translateY(0)}.discard-gradient-zone{background:radial-gradient(ellipse at 50% 0%, rgba(232, 200, 121, calc(.08 + var(--discard-progress,0) * .3)), transparent 58%), linear-gradient(180deg, rgba(232, 200, 121, calc(.1 + var(--discard-progress,0) * .34)), rgba(232, 200, 121, calc(.04 + var(--discard-progress,0) * .1)) 44%, transparent 100%);width:100%;height:100%;box-shadow:inset 0 1px 0 rgba(247, 242, 228, calc(.08 + var(--discard-progress,0) * .18));border-radius:18px 18px 999px 999px;display:block;-webkit-mask-image:linear-gradient(#000 0% 58%,#0000 100%);mask-image:linear-gradient(#000 0% 58%,#0000 100%)}.hand-zone[data-near-discard=true] .discard-gradient-zone{background:radial-gradient(at 50% 0,#f7f2e452,#0000 56%),linear-gradient(#e8c87994,#e8c87933 48%,#0000 100%);box-shadow:inset 0 1px #f7f2e442,0 -2px 18px #e8c87929}.hand.mobile-hand-rail::-webkit-scrollbar{display:none}.mobile-hand-track{align-self:flex-end;gap:var(--rail-gap);width:max-content;padding-right:1px;display:flex}.mobile-hand-rail .hand-tile-slot{width:var(--rail-tile-width);flex:0 0 var(--rail-tile-width);justify-content:center;align-self:flex-end;display:flex}.mobile-hand-rail .tile.hand{--tile-width:var(--rail-tile-width);z-index:1}.mobile-hand-rail .tile.hand:not(.selected):hover,.mobile-hand-rail .tile.hand:not(.selected):active{box-shadow:0 calc(var(--tile-width) * .09) 0 var(--amber), 0 calc(var(--tile-width) * .13) calc(var(--tile-width) * .18) #00000073;transform:none}.mobile-hand-rail .tile.selected{z-index:10;transform:translateY(calc((var(--selected-rest-lift) + var(--selected-lift,0px)) * -1));box-shadow:0 calc(var(--tile-width) * .09) 0 var(--amber), 0 0 0 2px var(--gold), 0 calc(var(--tile-width) * .13) calc(var(--tile-width) * .18) #00000073;transition:transform 40ms linear,box-shadow 80ms,opacity .12s}.mobile-hand-rail .tile.selected:hover,.mobile-hand-rail .tile.selected:active{transform:translateY(calc((var(--selected-rest-lift) + var(--selected-lift,0px)) * -1))}.hand-scroll-hint{color:#f7f2e47a;letter-spacing:.05em;min-height:14px;margin-top:1px;font-size:9px;display:block}.hand-action-buttons .win-button{min-width:144px}.hand-action-buttons{gap:8px;margin-top:4px}.hand-action-buttons .win-button,.hand-action-buttons .hand-riichi-button{justify-content:center;min-width:112px;display:inline-flex}.learning-panel>.action-buttons{display:none}.learning-panel{border-radius:13px;gap:6px;margin-top:5px;padding:8px}.metric-privacy-toggle{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px}.metric-chip{padding:5px 6px;font-size:9.5px}.metric-privacy-icon svg{width:16px;height:16px}.yaku-hints,.hand-plan-card,.evaluation-card{padding:9px}.hint-chip{padding:3px 7px;font-size:9.5px}.hand-plan-card strong{font-size:14px}.hand-plan-card p{font-size:10px}.evaluation-grade{font-size:14px}.discard-insight-card{padding:8px}.discard-insight-card p{font-size:9.5px}.evaluation-card p{font-size:10px}.evaluation-meta,.evaluation-deltas{font-size:9px}.yaku-info-grid{grid-template-columns:1fr;gap:6px}.yaku-info-card{padding:9px}.yaku-info-card p{font-size:9px}.yaku-examples{margin-top:5px}.riichi-button,.win-button{min-width:124px;padding:8px 14px}.round-result{padding:18px 13px}.result-affiliate{gap:7px;width:min(100%,330px);padding:9px 10px 8px;font-size:11px}.result-affiliate>span{font-size:11px}.affiliate-book-list{gap:7px}.affiliate-book-card{padding:6px 5px 5px}.affiliate-cover{width:40px;height:56px}.affiliate-book-card b{font-size:12px}.result-affiliate small{font-size:10px}.history-title{font-size:11px}}@media (width>=481px) and (width<=780px){.mobile-call-toggle{padding:6px 10px;font-size:10px;top:112px;left:28px}.mobile-hand-overview{--overview-tile-width:min(34px, calc((100vw - 240px) / 14));gap:2px;min-height:30px;padding:2px 12px 5px}.mobile-hand-control{--rail-width:min(560px, calc(100vw - 72px));--rail-tile-width:52px;--rail-gap:3px}.hand.mobile-hand-rail{min-height:124px}.reaction-panel{width:min(430px,100vw - 48px)}.learning-panel{gap:8px;padding:12px}.yaku-info-grid{grid-template-columns:1fr 1fr}}@media (width>=700px) and (width<=780px){.play-column,.learning-panel,.app-footer{max-width:720px;margin-left:auto;margin-right:auto}.table-board{border-radius:22px;grid-template-columns:minmax(145px,1fr) minmax(120px,.7fr) minmax(145px,1fr);grid-template-areas:".north.""west center east"".south.";gap:8px;min-height:385px;padding:12px}.river-panel{min-height:104px;padding:7px}.river{grid-template-columns:repeat(6,20px);gap:3px 2px;min-height:58px}.tile.river{--tile-width:20px}.table-center{width:118px;margin:0;display:flex}.overview-guide,.rail-guide,.mobile-hand-overview{display:none}.mobile-call-toggle{top:34px}.mobile-block-guide{width:min(720px,100vw - 40px);margin-top:2px}.mobile-hand-control{--rail-width:min(720px, calc(100vw - 40px));--rail-tile-width:min(48px, calc((100vw - 80px) / 14));--rail-gap:3px}.hand.mobile-hand-rail{min-height:112px;padding-top:34px;overflow-x:hidden}.mobile-hand-track{justify-content:center;width:100%}.hand-scroll-hint{display:none}}:root{--ivory:#f7f2e4;--ivory-dim:#e9e2cf;--amber:#d9a23e;--chun:#c0392b;--hatsu:#1e7a4c;--pin-blue:#2b4f9e;--ink:#2a241c;--gold:#e8c879}.tile{--tile-width:50px;width:var(--tile-width);min-width:var(--tile-width);height:calc(var(--tile-width) * 1.4);min-height:calc(var(--tile-width) * 1.4);max-height:calc(var(--tile-width) * 1.4);aspect-ratio:auto;background:linear-gradient(180deg, #fffdf6, var(--ivory) 60%, var(--ivory-dim));border-radius:calc(var(--tile-width) * .13);color:var(--ink);cursor:pointer;box-shadow:0 calc(var(--tile-width) * .09) 0 var(--amber), 0 calc(var(--tile-width) * .13) calc(var(--tile-width) * .18) #00000073;-webkit-user-select:none;user-select:none;border:none;flex-direction:column;flex:none;justify-content:center;align-self:end;align-items:center;padding:0;font-family:Shippori Mincho B1,serif;font-weight:800;line-height:1;transition:transform .12s,box-shadow .12s,opacity .12s;display:flex;position:relative}button.tile:hover{transform:translateY(-5px)}button.tile:active{box-shadow:0 2px 0 var(--amber), 0 4px 6px #0006;transform:translateY(3px)}.tile:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.tile .tile-reading{top:calc(var(--tile-width) * .08);max-width:calc(var(--tile-width) * .9);color:#2a241c85;font-family:system-ui,sans-serif;font-size:clamp(6px, calc(var(--tile-width) * .17), 10px);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;font-weight:800;line-height:1;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.tile .tile-suit-reading{bottom:calc(var(--tile-width) * .06);max-width:calc(var(--tile-width) * .86);color:#2a241c9e;font-family:system-ui,sans-serif;font-size:clamp(6px, calc(var(--tile-width) * .15), 9px);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;font-weight:800;line-height:1;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.tile .num{font-size:calc(var(--tile-width) * .43);line-height:1.05}.tile .suit{font-size:calc(var(--tile-width) * .28);line-height:1.05}.tile.man .suit{color:var(--chun)}.tile.pin .num,.tile.pin .suit{color:var(--pin-blue)}.tile.sou .num,.tile.sou .suit{color:var(--hatsu)}.tile .honor{font-size:calc(var(--tile-width) * .5)}.tile .honor.chun{color:var(--chun)}.tile .honor.hatsu{color:var(--hatsu)}.tile.static{cursor:default}.tile.picked-right{box-shadow:0 5px 0 var(--hatsu), 0 0 0 3px var(--hatsu), 0 8px 10px #00000073}.tile.picked-wrong{box-shadow:0 5px 0 var(--chun), 0 0 0 3px var(--chun), 0 8px 10px #00000073}.tile.dim{opacity:.45}.tile.hand{--tile-width:clamp(30px, 5.4vw, 56px)}.tile.river{--tile-width:27px}.tile.mini{--tile-width:30px;box-shadow:0 3px 0 var(--amber), 0 4px 5px #0006;border-radius:4px}.tile.tiny{--tile-width:21px;box-shadow:0 2px 0 var(--amber), 0 3px 4px #00000059;border-radius:3px}.tile.river .tile-reading,.tile.river .tile-suit-reading,.tile.mini .tile-reading,.tile.mini .tile-suit-reading,.tile.tiny .tile-reading,.tile.tiny .tile-suit-reading,.mobile-hand-overview .tile-suit-reading,.mobile-hand-overview .tile-reading{display:none}.tile.latest-discard{box-shadow:0 3px 0 var(--amber), 0 0 0 2px var(--gold), 0 5px 9px #0000008c;animation:.2s ease-out discard-pop}@keyframes discard-pop{0%{opacity:.4;transform:translateY(-8px)scale(1.08)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=780px){.tile.river{--tile-width:24px}}@media (width<=480px){.tile.river{--tile-width:23px}}
