@font-face{font-family:Murecho;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/murecho-var-subset.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-500-latin.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-600-latin.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/cormorant-700-latin.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-500-italic-latin.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../fonts/cormorant-600-italic-latin.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/cormorant-700-italic-latin.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ebgaramond-400-latin.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ebgaramond-500-latin.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/ebgaramond-600-latin.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/ebgaramond-400-italic-latin.woff2) format("woff2")}@font-face{font-family:"Noto Serif JP";font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/noto-serif-jp-subset.woff2) format("woff2")}:root{--gold: #e7c56a;--gold-lt: #f0dfa4;--cream: #f4ecd6;--parchment: #e9dfc4;--muted: #c8bfa4;--muted2: #8a7f66;--muted3: #9aa79a;--ink: #1a130a;--bg: #0a0805;--felt: var(--felt-green);--felt-green: radial-gradient(58% 44% at 50% 28%, rgba(255,226,150,.15), transparent 70%), radial-gradient(128% 128% at 50% 46%, #327050 0%, #1d4e35 44%, #0f3122 76%, #071b12 100%);--felt-red: radial-gradient(58% 44% at 50% 28%, rgba(255,220,150,.17), transparent 70%), radial-gradient(128% 128% at 50% 46%, #832c30 0%, #5c1e21 44%, #371113 76%, #1d080a 100%);--felt-blue: radial-gradient(58% 44% at 50% 28%, rgba(255,226,160,.14), transparent 70%), radial-gradient(128% 128% at 50% 46%, #2f5687 0%, #23406b 44%, #16294a 76%, #0a1626 100%);--felt-wood: radial-gradient(62% 46% at 50% 30%, rgba(255,222,150,.16), transparent 72%), repeating-linear-gradient(90deg, rgba(46,27,10,.42) 0 2px, transparent 2px 7px, rgba(255,224,165,.05) 7px 8px, transparent 8px 15px), linear-gradient(180deg, #7d5632 0%, #5c3d20 45%, #3c2814 78%, #22140a 100%);--ui: "Murecho", "Segoe UI", system-ui, sans-serif;--display: "Cormorant Garamond", "EB Garamond", Georgia, serif;--jp: "Murecho", "Noto Serif JP", "Yu Mincho", serif;--serif: "EB Garamond", Georgia, serif;--display-serif: "Cormorant Garamond", Georgia, serif}.tm-stage[data-table=green]{--felt: var(--felt-green)}.tm-stage[data-table=red]{--felt: var(--felt-red)}.tm-stage[data-table=blue]{--felt: var(--felt-blue)}.tm-stage[data-table=wood]{--felt: var(--felt-wood)}.tm-stage[data-back=amber]{--tile-back-1: #e7c579;--tile-back-2: #c99a3e;--tile-back-edge: #a87e2e}.tm-stage[data-back=green]{--tile-back-1: #3f8560;--tile-back-2: #215f42;--tile-back-edge: #184b33}.tm-stage[data-back=red]{--tile-back-1: #a4453f;--tile-back-2: #7a2a26;--tile-back-edge: #5e211d}.tm-stage[data-back=blue]{--tile-back-1: #476a9c;--tile-back-2: #2c477a;--tile-back-edge: #223a63}.tm-stage[data-back=charcoal]{--tile-back-1: #4a4a4e;--tile-back-2: #2b2b2f;--tile-back-edge: #202024}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--parchment);font-family:var(--ui);overflow:hidden}#app,.tm-root{height:100%}.tm-stage-frame{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(120% 110% at 50% 42%,#1d160e,#0c0906 60%,#050302)}.tm-stage{position:relative;transform-origin:center center;overflow:hidden;background:radial-gradient(120% 110% at 50% 42%,#1d160e,#0c0906 60%,#050302)}.tm-board{overflow:hidden;background:var(--felt);box-shadow:0 34px 90px #000000b8,0 0 0 14px #2a1a0c,0 0 0 15px #e7c56a4d,inset 0 3px 4px #e7c56a38,inset 0 -4px 8px #00000080}.tm-board:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.018) 0 2px,transparent 2px 6px);pointer-events:none}.tm-board:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 180px #0000008c;pointer-events:none}:root{--tile-face-1: #fbf7ec;--tile-face-2: #e6ddc6;--tile-edge: #cabf9f;--tile-back-1: #e7c579;--tile-back-2: #c99a3e;--tile-back-edge: #a87e2e}.tm-tile{position:relative;display:flex;align-items:center;justify-content:center;border-radius:4px;-webkit-user-select:none;user-select:none}.tm-tile--front{background:linear-gradient(var(--tile-face-1),var(--tile-face-2));border:1px solid var(--tile-edge);box-shadow:0 2px 3px #00000059,inset 0 1px #ffffffb3}.tm-tile--front:after{content:"";position:absolute;top:5%;right:6%;bottom:5%;left:6%;background:var(--glyph, none) center / contain no-repeat;pointer-events:none}.tm-tile--back{background:linear-gradient(var(--tile-back-1),var(--tile-back-2));border:1px solid var(--tile-back-edge);box-shadow:0 2px 3px #00000059,inset 0 1px #ffffff40}.tm-tile--side{background:linear-gradient(#e0d7bd,#c8bd9d);border:1px solid #b3a884;box-shadow:0 1px 2px #0000004d}.tm-tile__label{font-family:var(--display);font-weight:600;font-size:22px;line-height:1;letter-spacing:.02em}.tm-tile--back .tm-tile__label,.tm-tile--side .tm-tile__label{display:none}.tm-tile--front[data-tile^=haku] .tm-tile__label,.tm-tile--front[data-tile^=hatsu] .tm-tile__label,.tm-tile--front[data-tile^=chun] .tm-tile__label{letter-spacing:.04em}.tm-row{display:flex}.tm-col{display:flex;flex-direction:column}.tm-tile-layer{position:absolute;top:0;right:0;bottom:0;left:0}.tm-tile-layer .tm-tile{position:absolute;left:0;top:0;transition:transform .28s cubic-bezier(.22,.9,.3,1),width .28s ease,height .28s ease,opacity .2s ease;will-change:transform}.tm-tile.is-hidden{opacity:0;pointer-events:none}.tm-tile.is-clickable{cursor:pointer}.tm-tile.is-clickable:hover{filter:brightness(1.12);outline:2px solid var(--gold);outline-offset:1px}.tm-tile.is-highlight{box-shadow:0 0 12px #e7c56abf,0 2px 3px #00000059}.tm-panel{position:relative;overflow:hidden;background:#1a1410;border:2px solid #4a4438;box-shadow:inset 0 0 60px #00000080;transition:border-color .2s ease,box-shadow .2s ease}.tm-panel--self{border-color:#e7c56a8c}.tm-panel.is-turn{border-color:var(--gold-lt);box-shadow:inset 0 0 60px #00000080,0 0 40px #e7c56a80}.tm-panel__img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%}.tm-panel__wind{position:absolute;left:0;top:0;width:52px;height:52px;display:grid;place-items:center;border-bottom-right-radius:12px;font-family:var(--jp);font-weight:700;font-size:30px;color:#fdf6e6;box-shadow:0 2px 6px #0006}.tm-panel__riichi{position:absolute;right:8px;top:8px;padding:2px 10px;border-radius:5px;background:#d94f4f;color:#fff;font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:.1em;display:none}.tm-panel__riichi.is-on{display:block}.tm-panel__info{position:absolute;left:0;right:0;bottom:0;padding:12px 14px 14px;background:linear-gradient(180deg,transparent,rgba(8,5,2,.9) 55%)}.tm-panel__row{display:flex;align-items:baseline;gap:10px}.tm-panel__place{font-family:var(--display);font-size:24px;color:var(--gold);letter-spacing:.04em}.tm-panel__name{font-family:var(--display);font-weight:600;font-size:26px;color:var(--cream);text-shadow:0 1px 3px #000}.tm-panel__score{font-family:var(--display);font-weight:700;font-size:40px;line-height:1;color:#f4ecd6;letter-spacing:.02em}.tm-panel__menu{position:absolute;right:12px;top:12px;padding:8px 16px;border-radius:10px;background:linear-gradient(180deg,#140e07f0,#090603eb);border:1px solid rgba(231,197,106,.5);color:var(--gold);font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:.06em;cursor:pointer;z-index:2}.tm-panel__menu:hover{filter:brightness(1.2)}.tm-counter{width:180px;height:180px;border-radius:22px;background:linear-gradient(158deg,#221909,#140d05 60%,#0d0803);box-shadow:0 16px 40px #0009,inset 0 0 34px #e7c56a1f,inset 0 0 0 1.5px #e7c56a8c;padding:52px 12px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.tm-menu-ov .tm-overlay__card{width:460px;gap:16px}.tm-menu-ov input[type=range]{cursor:pointer}.tm-btn{min-width:56px;text-align:center;padding:7px 12px;border-radius:22px;font-family:var(--display);font-size:22px;letter-spacing:.06em;line-height:1;border:1.5px solid;box-shadow:0 4px 12px #00000073;cursor:pointer;transition:filter .15s ease,transform .1s ease}.tm-btn:hover{filter:brightness(1.1)}.tm-btn:active{transform:translateY(1px)}.tm-btn--primary{color:var(--ink);background:linear-gradient(var(--gold-lt),var(--gold));border-color:var(--gold-lt)}.tm-btn--normal{color:var(--cream);background:#0a120cd9;border-color:var(--gold)}.tm-btn--muted{color:var(--muted);background:#0a120cb3;border-color:#5f6f60}.tm-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#060a08c7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tm-overlay.is-hidden{display:none}.tm-overlay__card{width:520px;max-width:92%;border-radius:14px;border:2px solid var(--gold);background:linear-gradient(165deg,#14120d,#201a10);box-shadow:0 24px 70px #000000b3,inset 0 0 30px #e7c56a1a;padding:22px 26px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.tm-overlay__kyoku{font-size:11px;letter-spacing:.24em;color:var(--muted2);text-transform:uppercase}.tm-overlay__title{font-family:var(--display);font-weight:700;font-size:64px;line-height:.9;font-style:italic;letter-spacing:.02em;background:linear-gradient(180deg,#fbf0c8,#e7c56a 46%,#b98a29);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 6px 26px rgba(0,0,0,.5)}.tm-overlay__sub{font-family:var(--display);font-size:18px;letter-spacing:.12em;color:var(--muted)}.tm-yaku-list{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.tm-yaku-pill{font-weight:600;font-size:14px;color:var(--ink);background:linear-gradient(var(--gold-lt),var(--gold));padding:2px 11px;border-radius:5px}.tm-yaku-pill.is-muted{background:#3a4238;color:var(--muted)}.tm-score-line{display:flex;align-items:baseline;gap:14px;font-family:var(--display)}.tm-score-line span{font-size:24px;letter-spacing:.06em;color:var(--muted)}.tm-score-line b{font-size:44px;line-height:.9;color:var(--cream);text-shadow:0 4px 14px rgba(0,0,0,.55)}.tm-deltas{width:100%;display:flex;flex-direction:column;gap:4px;margin-top:4px}.tm-delta{display:flex;align-items:baseline;gap:10px;padding:3px 10px;border-radius:6px;background:#060c098c;font-family:var(--display);font-size:18px}.tm-delta span{flex:1;text-align:left;color:var(--muted);letter-spacing:.06em}.tm-delta b{color:var(--cream)}.tm-delta.is-plus b{color:#9fd98a}.tm-delta.is-minus b{color:#e08a8a}.tm-delta i{font-style:normal;color:var(--muted2);min-width:64px;text-align:right}.tm-overlay__continue{margin-top:8px}.tm-select{min-height:100%;display:flex;flex-direction:column;align-items:center;gap:18px;padding:28px 20px 32px;box-sizing:border-box}.tm-select__head{text-align:center}.tm-select__title{display:block;font-family:var(--jp);font-size:46px;letter-spacing:.14em;color:var(--gold);font-weight:600}.tm-select__sub{display:block;margin-top:4px;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted2)}.tm-select__slots{display:flex;gap:14px}.tm-slot{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:6px 8px;border-radius:10px}.tm-slot.is-current{background:#e7c56a1a;outline:1.5px solid var(--gold)}.tm-slot__label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted2)}.tm-slot.is-current .tm-slot__label{color:var(--gold)}.tm-slot__frame{width:84px;height:100px;border-radius:8px;overflow:hidden;border:2px solid #7c8a7f;background:repeating-linear-gradient(135deg,#26303a 0,#26303a 9px,#2d3844 9px,#2d3844 18px);display:grid;place-items:center}.tm-slot.is-current .tm-slot__frame{border-color:var(--gold)}.tm-slot__frame img{width:100%;height:100%;object-fit:cover;object-position:top}.tm-slot__q{font-family:var(--display);font-size:34px;color:#5f6f7e}.tm-slot__name{font-size:12px;font-weight:700;color:var(--cream);min-height:15px}.tm-select__grid{display:grid;grid-template-columns:repeat(6,96px);gap:10px}.tm-char{display:flex;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:0}.tm-char img{width:96px;height:112px;object-fit:cover;object-position:top;border-radius:8px;border:2px solid rgba(231,197,106,.25);transition:border-color .15s ease,transform .12s ease,filter .15s ease}.tm-char:hover img{border-color:var(--gold);transform:translateY(-3px)}.tm-char span{font-size:12px;font-weight:600;color:var(--parchment);text-align:center}.tm-char.is-taken{pointer-events:none}.tm-char.is-taken img{filter:grayscale(.9) brightness(.45);border-color:#3a4238}.tm-char.is-taken span{color:var(--muted2)}.tm-select__actions{display:flex;gap:12px}.tm-select__actions .tm-btn:disabled{opacity:.35;cursor:default}.tm-select__hint{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted2)}.tm-menu{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:40px 20px;box-sizing:border-box;background:radial-gradient(80% 60% at 50% 30%,rgba(231,197,106,.08),transparent 70%),radial-gradient(120% 120% at 50% 40%,#1d160e,#0c0906 62%,#050302)}.tm-menu__hero{text-align:center}.tm-menu__jp{font-family:var(--jp);font-weight:700;font-size:18px;letter-spacing:.42em;padding-left:.42em;color:#c8ab63}.tm-menu__title{margin:6px 0 8px;font-family:var(--jp);font-style:italic;font-weight:700;font-size:76px;line-height:.9;background:linear-gradient(180deg,#fbf0c8,#e7c56a 46%,#b98a29);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 6px 26px rgba(0,0,0,.5)}.tm-menu__tag{font-family:var(--serif);font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:#8a7f66}.tm-menu__play{font-family:var(--display-serif);font-weight:700;font-size:26px;letter-spacing:.08em;padding:10px 34px}.tm-menu__settings{width:340px;max-width:90%;border-radius:12px;border:1px solid rgba(231,197,106,.28);background:#0a07038c;padding:16px 20px 18px}.tm-menu__settings-title{font-family:var(--serif);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#b7a880;margin-bottom:12px;text-align:center}.tm-menu__sliders{display:flex;flex-direction:column;gap:10px}.tm-menu__slider{display:grid;grid-template-columns:64px 1fr 30px;align-items:center;gap:12px}.tm-menu__slider-label{font-family:var(--serif);font-size:14px;color:var(--cream)}.tm-menu__slider input[type=range]{width:100%;accent-color:var(--gold);cursor:pointer}.tm-menu__slider-val{font-family:var(--display-serif);font-weight:600;font-size:15px;color:var(--gold);text-align:right}.tm-menu__credits{font-family:var(--serif);font-size:11px;letter-spacing:.04em;color:#6f6650;text-align:center;max-width:460px}.tm-win{position:absolute;width:1280px;height:720px;left:50%;top:50%;transform-origin:center center;transform:translate(-50%,-50%) scale(1.5);z-index:70;overflow:hidden;background:radial-gradient(90% 120% at 68% 44%,#20543a,#123723 46%,#08160e);animation:tm-win-in .35s ease-out}@keyframes tm-win-in{0%{opacity:0;transform:translate(-50%,-50%) scale(1.545)}to{opacity:1;transform:translate(-50%,-50%) scale(1.5)}}.tm-win__rays{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-conic-gradient(from 0deg at 70% 42%,rgba(231,197,106,.08) 0deg 2deg,transparent 2deg 9deg);pointer-events:none}.tm-win__art{position:absolute;right:70px;bottom:0;width:430px;height:660px;border-radius:16px 16px 0 0;overflow:hidden;border:2px solid rgba(231,197,106,.4);border-bottom:none;box-shadow:0 0 60px #00000080}.tm-win__art img{width:100%;height:100%;object-fit:cover;object-position:top}.tm-win__body{position:absolute;left:70px;top:64px;bottom:30px;width:620px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.tm-win__kyoku{font-size:11px;letter-spacing:.24em;color:var(--muted2);text-transform:uppercase}.tm-win__kanji{font-family:var(--jp);font-weight:700;font-size:38px;color:var(--gold);letter-spacing:.1em;text-shadow:0 3px 12px rgba(0,0,0,.6)}.tm-win__title{font-family:var(--display);font-weight:700;font-size:128px;line-height:.82;letter-spacing:.02em;font-style:italic;background:linear-gradient(180deg,#fbf0c8,#e7c56a 46%,#b98a29);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 6px 26px rgba(0,0,0,.5)}.tm-win__name{display:inline-flex;align-items:center;gap:12px;background:#080e0ab8;border-left:4px solid var(--gold);border-radius:0 8px 8px 0;padding:8px 18px}.tm-win__name b{font-weight:700;font-size:22px;letter-spacing:.08em;color:var(--cream)}.tm-win__name span{font-family:var(--jp);font-weight:700;font-size:15px;color:#8fbf9f}.tm-win__from{font-size:14px;color:var(--muted)}.tm-win__yaku{max-width:520px;justify-content:flex-start}.tm-win__score{display:flex;align-items:baseline;gap:14px;font-family:var(--display)}.tm-win__score span{font-size:28px;letter-spacing:.06em;color:var(--muted)}.tm-win__score b{font-size:54px;line-height:.8;color:var(--cream);text-shadow:0 4px 14px rgba(0,0,0,.55)}.tm-win__hand{display:flex;align-items:flex-end;margin-top:auto;gap:3px}.tm-win__gap{width:8px}.tm-win__gap--wide{width:18px}.tm-win__meld-slot{position:relative;width:38px;height:53px;flex:0 0 auto;display:grid;place-items:center;overflow:visible}.tm-win__meld-slot--sideways{width:53px;height:38px}.tm-win__meld-slot--sideways>.tm-tile:not(.tm-win__tile--stack){transform:rotate(90deg)}.tm-win__tile--stack{position:absolute;left:50%;top:50%;z-index:1;transform:translate(-50%,calc(-50% - 38px)) rotate(90deg)}.tm-win__wintile{filter:drop-shadow(0 3px 12px rgba(231,197,106,.75))}.tm-win__continue{margin-top:12px}
