*{box-sizing:border-box;margin:0;padding:0}body{color:#e8efe8;overscroll-behavior-x:none;background:#1e4637;overflow:hidden}#app{width:100vw;height:100dvh}img[data-v-e2fa52d1]{object-fit:contain;box-sizing:border-box;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;padding:6%;display:block}.tutorial[data-v-7d89909f]{z-index:30;background:radial-gradient(120% 80% at 50% 30%, #245442 0%, var(--felt) 45%, var(--felt-dark) 100%);background-color:var(--felt);position:fixed;inset:0;overflow:auto}.progress[data-v-7d89909f]{color:var(--muted);font-size:12px}.lesson[data-v-7d89909f]{border:1px solid var(--line);background:#0003;border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.lesson h2[data-v-7d89909f]{font-family:var(--f-tile);letter-spacing:.06em;margin:0;font-size:20px}.lesson p[data-v-7d89909f]{margin:0;font-size:14px;line-height:1.7}.about[data-v-90140fd1]{flex-direction:column;gap:4px;display:flex}.about h3[data-v-90140fd1]{margin:0;font-size:15px}a[data-v-90140fd1]{color:var(--gold)}.version[data-v-90140fd1]{text-align:right}textarea[data-v-90458eff]{width:100%;font:inherit;color:var(--fg);background:var(--felt-dark);border:1px solid var(--line);resize:vertical;border-radius:8px;padding:8px 10px;font-size:16px}textarea[data-v-90458eff]:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.count[data-v-90458eff]{text-align:right}.tabs[data-v-29be828b]{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.tab[data-v-29be828b]{font:inherit;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:6px 10px;font-size:13px}.tab.on[data-v-29be828b]{background:var(--fg);color:var(--felt-dark);border-color:var(--fg);font-weight:700}.yaku-list[data-v-29be828b]{flex-direction:column;gap:10px;display:flex}.yaku[data-v-29be828b]{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding-top:8px;display:flex}.yaku .head[data-v-29be828b]{justify-content:space-between;display:flex}.yaku .han[data-v-29be828b]{color:var(--gold);font-variant-numeric:tabular-nums}.guide[data-v-29be828b]{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.guide h3[data-v-29be828b]{margin:0;font-size:15px}.tilesline[data-v-29be828b]{padding-bottom:4px}.character-icon[data-v-93732b0d]{vertical-align:middle;flex-shrink:0}.nameform[data-v-93e857db],.nameform form[data-v-93e857db]{flex-direction:column;gap:8px;display:flex}.subhead[data-v-93e857db]{margin:4px 0 0;font-size:15px}input[data-v-93e857db]{font:inherit;background:var(--felt-dark);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:16px}.player[data-v-5f77b1d1]{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding-bottom:12px;display:flex}.player b[data-v-5f77b1d1]{font-size:17px}.link[data-v-5f77b1d1]{color:var(--muted)}.menu[data-v-5f77b1d1]{flex-direction:column;gap:8px;display:flex}.ranking .me[data-v-9e2ebc44]{color:var(--gold);font-weight:700}.who[data-v-9e2ebc44]{color:var(--muted);font-size:12px;font-weight:400;display:block}h3[data-v-f153dab4]{color:var(--muted);margin:0 0 6px;font-size:14px}.choices[data-v-f153dab4]{flex-direction:column;gap:6px;display:flex}.choice[data-v-f153dab4]{text-align:left;font:inherit;color:inherit;border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.text[data-v-f153dab4]{flex-direction:column;gap:2px;display:flex}.choice b[data-v-f153dab4]{font-size:16px}.choice:disabled .character-icon[data-v-f153dab4]{filter:grayscale()}.choice.on[data-v-f153dab4],.dan.on[data-v-f153dab4]{border-color:var(--gold);color:var(--gold)}.choice[data-v-f153dab4]:disabled,.dan[data-v-f153dab4]:disabled{opacity:.5;cursor:default}.choice[data-v-f153dab4]:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.dans[data-v-f153dab4]{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.rules[data-v-f153dab4]{margin:6px 0 0;padding-left:18px}.unlocks[data-v-84ac5ac3]{border:1px solid var(--gold);border-radius:8px;padding:8px 12px}.unlocks h3[data-v-84ac5ac3]{color:var(--gold);margin:0 0 4px;font-size:14px}.unlocks ul[data-v-84ac5ac3]{margin:0;padding-left:18px}:root{--felt:#1e4637;--felt-dark:#142f25;--line:#2f5f4c;--fg:#e8efe8;--muted:#9db6a8;--gold:#d8aa45;--gold-ink:#2a1e05;--ivory:#f4eedb;--ivory-edge:#d9cfb3;--tile-side:#3c7d63;--ink:#1c1b18;--man:#b0262f;--pin:#1d4f9a;--sou:#18763f;--danger:#e07a6a;--f-tile:"Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;--f-body:"Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{background:radial-gradient(120% 80% at 50% 30%, #245442 0%, var(--felt) 45%, var(--felt-dark) 100%);background-color:var(--felt);color:var(--fg);font-family:var(--f-body);font-size:14px}.app{max-width:520px;height:100%;padding-block:calc(8px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-bottom,0px));padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));box-sizing:border-box;flex-direction:column;gap:10px;margin:0 auto;display:flex}header{align-items:center;gap:8px;display:flex}h1{font-family:var(--f-tile);letter-spacing:.06em;margin:0;font-size:18px;font-weight:800}h1 .beta{border:1px solid var(--gold);color:var(--gold);font-family:var(--f-body);letter-spacing:0;vertical-align:3px;border-radius:4px;margin-left:4px;padding:0 5px;font-size:11px;font-weight:700}.spacer{flex:1}.ghost{border:1px solid var(--line);color:var(--fg);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:5px 10px;font-size:12px}.ghost:focus-visible,.btn:focus-visible,.tile:focus-visible,.river:focus-visible,.slot:focus-visible,.c:focus-visible,.pick:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.band{background:#0003;border-radius:12px;flex-direction:column;gap:6px;padding:8px 10px 10px;display:flex}.segs{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.seg{height:22px;color:var(--muted);letter-spacing:.05em;background:#ffffff0f;border-radius:5px;place-items:center;font-size:11px;display:grid;position:relative}.seg.done{color:var(--fg);background:#ffffff1f}.seg.cur{background:var(--fg);color:var(--felt-dark);font-weight:700}.seg .boss{background:var(--fg);color:var(--felt-dark);border-radius:4px;padding:0 3px;font-size:10px;line-height:15px;position:absolute;top:-5px;left:-3px}.seg.cur .boss{background:var(--man);color:#fff}.seg .oya{background:var(--man);color:#fff;border-radius:4px;padding:0 3px;font-size:10px;line-height:15px;position:absolute;top:-5px;right:-3px}.nums{font-variant-numeric:tabular-nums;align-items:baseline;gap:12px;display:flex}.nums .rd{font-size:15px;font-weight:700}.nums .tn{color:var(--muted);background:#0003;border-radius:8px;padding:2px 8px;font-size:14px}.nums .tn b{color:var(--fg);font-size:20px}.nums .tn.low{color:var(--gold);background:#d8aa4533}.nums .tn.low b{color:var(--gold)}.nums .tn.last{background:var(--danger);color:#2a0b06}.nums .tn.last b{color:#2a0b06}.nums .sc{margin-left:auto;font-size:18px;font-weight:700}.nums .sc small{color:var(--muted);font-size:12px;font-weight:400}.bar{background:#00000059;border-radius:2px;height:4px;overflow:hidden}.bar i{background:var(--gold);height:100%;transition:width .3s;display:block}.info{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;display:flex}.info .tile{--w:28px}.info .c{border:1px solid var(--line);box-sizing:border-box;border-radius:10px;align-items:center;gap:5px;min-height:36px;padding:4px 10px 6px 6px;display:inline-flex}.info .c b{color:var(--fg);font-size:15px;font-weight:500}.info .c.boss{border-color:var(--danger);color:var(--danger)}.info .c.boss b{color:var(--danger)}.inv .c{font:inherit;color:var(--muted);background:0 0;min-height:32px;font-size:13px}.inv .money{border-color:var(--gold);color:var(--gold)}.inv .money b{color:var(--gold)}.inv button.c{cursor:pointer;color:var(--fg)}.inv .use{border-style:dashed;border-color:var(--gold)}.inv .use:disabled{opacity:.4;cursor:default}.badge{background:var(--gold);color:var(--gold-ink);letter-spacing:.1em;border-radius:999px;padding:3px 10px;font-weight:700}.river{cursor:pointer;color:inherit;font:inherit;text-align:left;box-sizing:border-box;background:#0000001f;border:none;border-radius:10px;align-items:center;gap:8px;width:100%;padding:6px 8px;display:flex}.river .rl{color:var(--muted);letter-spacing:.1em;flex:none;font-size:11px}.river .rt{flex-wrap:nowrap;flex:1;justify-content:flex-end;gap:3px;min-width:0;display:flex;overflow:hidden}.river.open .rt{flex-wrap:wrap;justify-content:flex-start}.river .rt .empty{color:var(--muted);font-size:12px}.stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.callout{text-align:center;flex-direction:column;align-items:center;gap:8px;max-width:100%;display:flex}.callout .msg{color:var(--muted);font-size:13px}.callout.win{border:1px solid var(--gold);background:#d8aa451f;border-radius:14px;padding:12px 16px}.callout.win .yk{font-family:var(--f-tile);letter-spacing:.06em;text-wrap:balance;font-size:20px;font-weight:800}.callout.win .pt{color:var(--gold);font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.waits{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.waits .w{color:var(--muted);font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;gap:2px;font-size:11px;display:flex}.waits .w.dead{opacity:.4}.play{flex-direction:column;gap:10px;display:flex}.holdrow{flex-wrap:wrap;align-items:flex-end;gap:8px;min-height:66px;display:flex}.hg{align-items:flex-end;gap:6px;display:flex}.holdrow .nextin{border:1px dashed var(--line);border-radius:10px;align-items:flex-end;gap:4px;margin-left:auto;padding:5px 8px 8px;display:flex}.nextin .tile{--w:42px;cursor:default}.nextin.many .tile{--w:26px}.nextin .arr{color:var(--muted);align-self:center;font-size:15px}.nextin .nl,.holdrow .hl{color:var(--muted);letter-spacing:.12em;writing-mode:vertical-rl;align-self:center;font-size:11px}.slot{border:1.5px dashed var(--line);width:40px;height:54px;color:var(--line);cursor:pointer;background:0 0;border-radius:6px;place-items:center;font-family:inherit;font-size:11px;display:grid}.slot.target{border-color:var(--gold);color:var(--gold)}.handrow{justify-content:center;align-items:flex-end;gap:5px;padding-top:12px;display:flex}.handrow .gap{width:10px}.actions{gap:8px;min-height:48px;display:flex}.actions .btn{flex:1}.actions .btn.wide{flex:2}.actions .idle{color:var(--muted);flex:1;place-items:center;font-size:12px;display:grid}.sheet .actions{grid-template-columns:1fr 1fr;display:grid}.btn{font:inherit;border:1px solid var(--line);color:var(--fg);cursor:pointer;background:#0003;border-radius:10px;padding:12px 8px;font-size:15px;font-weight:700}.btn:disabled{opacity:.35;cursor:default}.btn.win{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}.btn.riichi{border-color:var(--gold);color:var(--gold)}.cards{gap:8px;display:grid}.card{border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 12px;display:grid}.card .ct{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.card .ct b{font-size:16px}.card .ty{color:var(--gold);border:1px solid var(--gold);letter-spacing:.06em;border-radius:4px;padding:0 5px;font-size:11px}.card p{color:var(--muted);grid-column:1;margin:0;font-size:12px;line-height:1.5}.card .btn{grid-area:1/2/3;padding:10px 12px;font-size:14px}.card .btn.buy{border-color:var(--gold);color:var(--gold)}.card.sold{opacity:.5}.owns{gap:6px;display:grid}.own{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding-top:6px;display:grid}.own small{color:var(--muted);grid-column:1;font-size:12px}.own .ghost{grid-area:1/2/3}.picker{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;display:grid}.pick{border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;display:flex}.pick small{font-size:10px}.pick:disabled{opacity:.3;cursor:default}.note.warn{color:var(--danger)}.tile{--w:52px;width:var(--w);height:calc(var(--w) * 1.36);background:linear-gradient(180deg, #fffaf0, var(--ivory));border-radius:calc(var(--w) * .12);box-shadow:0 4px 0 var(--ivory-edge), 0 6px 0 var(--tile-side), 0 8px 10px #00000059;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:none;flex:none;padding:0;transition:transform .12s;display:inline-block;position:relative}span.tile{cursor:default}.tile.sm{--w:26px;box-shadow:0 2px 0 var(--ivory-edge), 0 3px 0 var(--tile-side)}.tile.md{--w:40px}.tile.xs{--w:22px;box-shadow:0 2px 0 var(--ivory-edge), 0 3px 0 var(--tile-side)}.tile.sel{transform:translateY(-12px)}.tile.used{outline:2px solid var(--gold);outline-offset:2px}.tile.kin{background:linear-gradient(#fff3c4,#e9c867)}.tile.joker:after{content:"J";font-family:var(--f-body);font-weight:700;font-size:calc(var(--w) * .2);color:var(--gold-ink);background:var(--gold);border-radius:3px;padding:0 2px;line-height:1.2;position:absolute;top:2px;right:3px}.tile.akamark:before{content:"";top:calc(var(--w) * .08);left:calc(var(--w) * .08);width:calc(var(--w) * .18);height:calc(var(--w) * .18);background:var(--man);border-radius:50%;position:absolute;box-shadow:0 0 0 1px #fff}.tile.drawn{margin-left:4px}.veil{z-index:20;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));background:#050f0a99;place-items:end center;display:grid;position:fixed;inset:0}.sheet{border:1px solid var(--line);box-sizing:border-box;background:#173a2d;border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:488px;max-height:85vh;padding:18px;display:flex;overflow:auto}.sheet>*{flex-shrink:0}.sheet h2{font-family:var(--f-tile);letter-spacing:.08em;text-wrap:balance;margin:0;font-size:26px}.sheet h2 .pts{color:var(--gold);font-family:var(--f-body);font-variant-numeric:tabular-nums;margin-left:8px;font-size:22px}.yakulist{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;gap:4px 12px;font-size:15px;display:grid}.yakulist span:nth-child(2n){color:var(--gold);text-align:right}.tilesline{flex-wrap:wrap;gap:4px;display:flex}.settings{grid-template-columns:auto 1fr;align-items:center;gap:10px 14px;font-size:14px;display:grid}.settings select{font:inherit;background:var(--felt-dark);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:6px 8px}.ref{grid-template-columns:1fr auto;gap:3px 12px;font-size:13px;display:grid}.ref .h{color:var(--gold);text-align:right;font-variant-numeric:tabular-nums}.ref .c{color:var(--muted);grid-column:1/-1;margin:-2px 0 4px;font-size:12px}.note{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.pulse{z-index:1;animation:1.2s ease-out infinite pulse-ring;position:relative}.pulse:after{content:"👇";pointer-events:none;font-size:22px;line-height:1;animation:.8s ease-in-out infinite alternate pulse-point;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.btn.pulse:after{content:none}.tile.joker.pulse:after{content:"J";font-family:var(--f-body);font-weight:700;font-size:calc(var(--w) * .2);color:var(--gold-ink);background:var(--gold);border-radius:3px;padding:0 2px;line-height:1.2;animation:none;inset:2px 3px auto auto;transform:none}@keyframes pulse-ring{0%{outline:2px solid var(--gold);outline-offset:2px;box-shadow:0 0 #d8aa45e6}to{outline:2px solid var(--gold);outline-offset:2px;box-shadow:0 0 0 14px #d8aa4500}}@keyframes pulse-point{0%{transform:translate(-50%)}to{transform:translate(-50%,-6px)}}@media (prefers-reduced-motion:reduce){.tile,.bar i{transition:none}.pulse,.pulse:after{animation:none}.pulse{outline:3px solid var(--gold);outline-offset:2px}}@media (width<=420px){.tile{--w:46px}.nextin .tile{--w:38px}.slot{width:36px;height:50px}.tile.md{--w:36px}}
