/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.hidden{display:none}.table{display:table}.resize{resize:both}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg:#08111e;--panel:#101b2b;--panel-2:#162437;--line:#94a3b838;--table:#087a67;--table-dark:#055c50;--tile:#f6f0e4;--cyan:#35d7e5;--amber:#f4b740;--text:#f5f7fa;--muted:#94a3b8}*{box-sizing:border-box}html,body{min-height:100%}body{background:radial-gradient(circle at 44% 18%, #1b525f2e, transparent 42%), var(--bg);color:var(--text);margin:0;font-family:Inter,Noto Sans JP,Yu Gothic,sans-serif}button{font:inherit}.game-shell{background-image:linear-gradient(#ffffff04 1px,#0000 1px);background-size:100% 4px;min-height:100vh;overflow:hidden}.topbar{border-bottom:1px solid var(--line);background:#060f1bf0;grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 22px;display:grid;box-shadow:0 10px 40px #0000003d}.brand,.match-labels,.top-actions,.section-title,.round-heading,.dora,.turn-notice,.call-actions{align-items:center;display:flex}.brand{gap:11px}.brand-mark{width:34px;height:34px;color:var(--cyan);background:linear-gradient(145deg,#142c3d,#0c1826);border:1px solid #35d7e573;border-radius:9px;place-items:center;font-weight:800;display:grid}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.02em;font-size:17px}.brand small{color:var(--muted);letter-spacing:.08em;margin-top:2px;font-size:10px}.match-labels{color:#cbd5e1;gap:18px;font-size:13px;font-weight:700}.secure-pill{color:#8be9f0;background:#35d7e512;border:1px solid #35d7e52e;border-radius:999px;padding:7px 11px}.top-actions{justify-content:flex-end;gap:4px}.top-actions button{color:#cbd5e1;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px 12px}.top-actions button:hover{color:#fff;background:#ffffff0f}.lobby-header-actions{align-items:center;gap:8px;display:flex}.sound-toggle,.top-actions .sound-toggle{color:#eadcae;white-space:nowrap;cursor:pointer;background:#08131fb8;border:1px solid #fbd57d4d;border-radius:999px;align-items:center;gap:6px;padding:7px 11px;font-size:12px;font-weight:700;display:inline-flex}.sound-toggle span{background:#fbd57d29;border-radius:50%;place-items:center;width:17px;height:17px;font-size:12px;display:grid}.sound-toggle.is-off{color:#94a3b8;border-color:#94a3b83d}.sound-toggle.is-off span{background:#94a3b81f}.play-layout{grid-template-columns:minmax(760px,1fr) 272px;gap:14px;height:calc(100vh - 64px);padding:14px;display:grid}.table-wrap{border:1px solid var(--line);background:#0b1624;border-radius:20px;grid-template-rows:minmax(0,1fr) 88px;min-width:0;display:grid;overflow:hidden;box-shadow:0 24px 80px #00000052}.mahjong-table{background:radial-gradient(circle at 50% 45%, #139a8047, transparent 36%), linear-gradient(135deg, transparent 49.8%, #02372f6b 50%, transparent 50.2%), linear-gradient(45deg, transparent 49.8%, #02372f6b 50%, transparent 50.2%), var(--table);border:14px solid #132438;min-height:560px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 3px #061521,inset 0 0 70px #00000052}.mahjong-table:after{content:"";pointer-events:none;mix-blend-mode:soft-light;opacity:.4;background-image:radial-gradient(#ffffff14 .6px,#0000 .6px);background-size:4px 4px;position:absolute;inset:0}.tile{z-index:2;background:linear-gradient(150deg, #fffdf7 0%, var(--tile) 72%);color:#12202a;cursor:default;border:1px solid #b8ae9e;border-bottom:5px solid #c8b993;border-radius:6px;flex:none;place-items:center;width:clamp(42px,4vw,58px);height:clamp(58px,5.4vw,78px);padding:0;transition:transform .12s ease-out,border-color .12s ease-out,box-shadow .12s ease-out;display:grid;position:relative;box-shadow:0 5px 8px #00000047}.tile span{font-family:"Noto Sans Symbols 2",Segoe UI Symbol,sans-serif;font-size:clamp(35px,3.6vw,51px);line-height:1;display:block}.tile:not([tabindex="-1"]){cursor:pointer}.tile:not([tabindex="-1"]):hover{transform:translateY(-4px)}.tile--selected{border-color:var(--cyan);box-shadow:0 0 0 2px var(--cyan), 0 8px 22px #35d7e557;transform:translateY(-8px)}.tile--compact{border-bottom-width:3px;border-radius:4px;width:clamp(26px,2.4vw,34px);height:clamp(37px,3.3vw,47px)}.tile--compact span{font-size:clamp(22px,2.15vw,29px)}.tile--sideways{margin:6px 7px;transform:rotate(90deg)}.tile--dimmed{filter:grayscale(.85)brightness(.58);opacity:.68}.tile--red{color:#ba2731}.tile--call-candidate{z-index:8;background:linear-gradient(150deg,#fffdf7 0%,#fff0b8 72%);border-color:#ffd35c;animation:.85s ease-in-out infinite alternate call-candidate-pulse;box-shadow:0 0 0 3px #ffd35cf2,0 0 22px #ffd35cbf}.tile--claimed{z-index:8;border-color:#ff6d73;animation:.7s ease-in-out infinite alternate claimed-tile-pulse;box-shadow:0 0 0 3px #ff5860f2,0 0 24px #ff4850d9}@keyframes call-candidate-pulse{0%{box-shadow:0 0 0 2px #ffd35cb8,0 0 10px #ffd35c7a}to{box-shadow:0 0 0 4px #ffd35c,0 0 28px #ffd35ceb}}@keyframes claimed-tile-pulse{0%{box-shadow:0 0 0 2px #ff5860b8,0 0 12px #ff485080}to{box-shadow:0 0 0 4px #ff5860,0 0 30px #ff4850f2}}.red-five-dot{background:#d52e38;border-radius:50%;width:5px;height:5px;position:absolute;bottom:7px;right:4px;box-shadow:0 0 0 1px #fffc}.player{z-index:4;background:#0a1826f0;border:1px solid #94a3b859;border-radius:10px;grid-template-columns:29px 1fr auto;align-items:center;gap:9px;min-width:154px;padding:8px 10px;display:grid;position:absolute;box-shadow:0 8px 18px #0000003d}.player strong,.player small{display:block}.player strong{font-size:13px}.player small{color:var(--muted);margin-top:2px;font-size:9px}.player b{font-variant-numeric:tabular-nums;font-size:13px}.player--top{top:11px;left:50%;transform:translate(-50%)}.player--bottom{bottom:101px;left:50%;transform:translate(-50%)}.player--left{top:50%;left:76px;transform:translateY(-50%)}.player--right{top:50%;right:76px;transform:translateY(-50%)}.wind{color:#fff;background:#26374b;border-radius:7px;place-items:center;width:26px;height:26px;font-size:12px;font-style:normal;font-weight:800;display:inline-grid}.wind--東{background:#a83d42}.wind--南{background:#4f7f47}.wind--西{background:#3e69a0}.wind--北{background:#5a567f}.river{z-index:3;transform-origin:50%;grid-template-columns:repeat(6,max-content);gap:2px;display:grid;position:absolute}.river--bottom{bottom:178px;left:50%;transform:translate(-50%)}.river--top{top:132px;left:50%;transform:translate(-50%)rotate(180deg)}.river--left,.river--right{grid-template-rows:repeat(6,max-content);grid-template-columns:none;grid-auto-flow:column;top:45%;transform:translateY(-50%)}.river--left .tile,.river--right .tile{border-bottom-width:3px;width:47px;height:34px;margin:0}.river--left .tile span{transform:rotate(90deg)}.river--right .tile span{transform:rotate(-90deg)}.opponent-hand{z-index:2;opacity:.92;gap:1px;display:flex;position:absolute}.opponent-hand--top{top:68px;left:50%;transform:translate(-50%)rotate(180deg)}.opponent-hand--right,.opponent-hand--left{flex-direction:column;top:50%;transform:translateY(-50%)}.opponent-hand--right .tile,.opponent-hand--left .tile{border-bottom-width:3px;width:47px;height:26px}.melds{z-index:4;gap:8px;display:flex;position:absolute}.meld{align-items:flex-end;gap:1px;display:flex}.melds--bottom{bottom:16px;right:max(22px,50% - 515px)}.melds--top{top:68px;left:max(22px,50% - 350px);transform:rotate(180deg)}.melds--right,.melds--left{flex-direction:column;bottom:74px}.melds--right{right:18px}.melds--left{left:18px}.melds--right .meld,.melds--left .meld{flex-direction:column}.melds--right .tile,.melds--left .tile{width:47px;height:34px;margin:0}.melds--right .tile span{transform:rotate(-90deg)}.melds--left .tile span{transform:rotate(90deg)}.round-center{z-index:5;background:#081420f2;border:1px solid #35d7e540;border-radius:14px;width:154px;padding:12px;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);box-shadow:0 15px 34px #00000052}.round-heading{justify-content:space-between}.round-heading span{color:var(--amber);font-size:18px;font-weight:800}.round-heading small{color:var(--muted)}.round-grid{grid-template-columns:1fr 1fr;gap:6px;margin:10px 0;display:grid}.round-grid div{background:var(--panel-2);border-radius:7px;padding:7px}.round-grid small,.round-grid strong{display:block}.round-grid small,.dora small{color:var(--muted);font-size:9px}.round-grid strong{margin-top:2px;font-size:14px}.dora{justify-content:space-between}.dora .tile{width:27px;height:37px}.hand{z-index:6;align-items:flex-end;gap:20px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.hand-main{align-items:flex-end;gap:2px;display:flex}.drawn-tile{display:flex}.wait-display{z-index:12;background:#07111df0;border:1px solid #35d7e5b8;border-radius:12px;align-items:center;gap:9px;min-height:54px;padding:8px 12px;display:flex;position:absolute;bottom:16px;left:18px;box-shadow:0 12px 34px #0000005c,0 0 24px #35d7e521}.wait-display>div:first-child{color:#e8f6f8;gap:1px;font-size:11px;display:grid}.wait-display>div:first-child span,.wait-display>small{color:var(--cyan);font-size:10px;font-weight:800}.wait-tiles{gap:3px;display:flex}.wait-display .tile{pointer-events:none}.wait-display--hint{color:#e8f6f8;font-size:12px}.result-overlay{z-index:20;text-align:center;background:#07111df5;border:1px solid #f4b740b8;border-radius:16px;gap:16px;width:min(620px,100% - 32px);padding:24px 28px;display:grid;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 80px #0000008c,0 0 40px #f4b7401f}.result-overlay--win{opacity:0;animation:.38s cubic-bezier(.2,.8,.2,1) 1.15s forwards result-reveal}.result-title{gap:5px;display:grid}.result-title strong{color:var(--amber);letter-spacing:.14em;font-size:34px}.result-title>span{color:#e5edf3;font-size:16px;font-weight:800}.score-transfers{gap:7px;display:grid}.score-transfer,.score-bonus{color:#eef5f7;background:#ffffff0b;border:1px solid #ffffff1c;border-radius:9px;grid-template-columns:minmax(80px,1fr) auto 28px minmax(80px,1fr) auto;align-items:center;gap:8px;padding:9px 12px;font-size:15px;display:grid}.score-transfer i,.score-bonus i{color:var(--amber);font-size:19px;font-style:normal}.score-transfer b{color:#ff8589}.score-transfer .score-plus,.score-bonus b{color:#5fe3cf}.score-changes{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.score-changes span{color:#9cabba;background:#ffffff12;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.score-changes .is-plus{color:#5fe3cf}.score-changes .is-minus{color:#ff8589}.winning-tile-label{color:#ffd66c;letter-spacing:.12em;justify-content:center;align-items:center;gap:10px;font-size:13px;font-weight:900;display:flex}.winning-tile-label .tile{pointer-events:none;filter:drop-shadow(0 0 10px #ffd35c73);width:38px;height:52px}.result-confirm{color:#251808;letter-spacing:.06em;cursor:pointer;background:linear-gradient(#f6d878,#bd862d);border:1px solid #ffe29a;border-radius:10px;min-height:48px;font-size:16px;font-weight:950;transition:transform .15s,filter .15s,box-shadow .15s;box-shadow:inset 0 1px #ffffff80,0 5px #704513,0 10px 22px #00000057}.result-confirm:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.result-confirm:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 1px #ffffff59,0 2px #704513,0 5px 12px #0000004d}.result-confirm:disabled{cursor:wait;filter:grayscale(.65);opacity:.68;box-shadow:none}.win-impact{z-index:24;pointer-events:none;width:330px;height:390px;animation:1.55s ease-out forwards win-impact-stage;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.win-impact:before{content:"";opacity:0;background:radial-gradient(circle,#fff6ab70,#53c3ff29 36%,#0000 67%);border-radius:50%;animation:.55s ease-out .25s both impact-flash;position:absolute;inset:30px 20px 0}.dandama-strike{z-index:3;opacity:0;filter:drop-shadow(0 0 8px #fff)drop-shadow(0 0 24px #5bd9ff);width:235px;animation:.72s cubic-bezier(.12,.76,.18,1.16) .22s both dandama-drop;position:absolute;top:2px;left:50%;transform:translate(-50%,-165%)scale(.35)}.dandama-strike img{width:100%;height:auto;display:block}.winning-tile{z-index:4;opacity:0;animation:.62s cubic-bezier(.18,.9,.23,1.3) .54s both winning-tile-impact;position:absolute;bottom:18px;left:50%;transform:translate(-50%)scale(.7)}.winning-tile .tile{pointer-events:none;border-color:#fff4a8;width:82px;height:112px;box-shadow:0 0 0 4px #fff39ab8,0 0 28px #ffed71f2,0 18px 32px #0000008c}.lightning{z-index:2;opacity:0;clip-path:polygon(46% 0,72% 0,55% 36%,83% 36%,37% 100%,48% 52%,20% 52%);filter:drop-shadow(0 0 7px #fff)drop-shadow(0 0 18px #47bfff);background:linear-gradient(90deg,#0000,#fff 32%,#75dcff 58%,#0000);width:52px;height:300px;animation:.48s steps(2,end) 80ms both lightning-strike;position:absolute;top:-80px}.lightning--left{left:54px;transform:rotate(-10deg)}.lightning--right{animation-delay:.17s;right:48px;transform:rotate(11deg)scaleX(-1)}@keyframes lightning-strike{0%{opacity:0;transform:translateY(-35px)scaleY(.65)}22%,48%{opacity:1}35%,70%{opacity:.2}to{opacity:0;transform:translateY(35px)scaleY(1.05)}}@keyframes impact-flash{0%{opacity:0;transform:scale(.35)}35%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@keyframes dandama-drop{0%{opacity:0;transform:translate(-50%,-165%)scale(.35)}45%{opacity:1}72%{transform:translate(-50%,42px)scale(1.06)}to{opacity:1;transform:translate(-50%,28px)scale(1)}}@keyframes winning-tile-impact{0%{opacity:0;transform:translate(-50%)scale(.45)}60%{opacity:1;transform:translate(-50%)scale(1.12)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes win-impact-stage{0%,82%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes result-reveal{0%{opacity:0;transform:translate(-50%,calc(18px - 50%))scale(.97)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.action-rail{border-top:1px solid var(--line);background:#0a1522;grid-template-columns:minmax(150px,1fr) auto minmax(130px,190px);align-items:center;gap:10px;padding:12px 16px;display:grid;position:relative}.meld-picker{z-index:30;background:#07111df7;border:1px solid #ffd35cb8;border-radius:14px;min-width:310px;padding:12px;position:absolute;bottom:calc(100% + 10px);right:12px;box-shadow:0 18px 55px #00000080}.meld-picker-title{color:var(--amber);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;display:flex}.meld-picker-title button{color:#fff;cursor:pointer;background:#ffffff14;border:0;border-radius:7px;width:28px;height:28px}.meld-option-list{gap:8px;display:grid}.meld-option{background:var(--panel-2);color:#e7edf2;cursor:pointer;border:1px solid #94a3b847;border-radius:10px;align-items:center;gap:2px;padding:8px 10px;display:flex}.meld-option:hover{background:#1d3147;border-color:#ffd35c}.meld-option>span{color:#f7d36f;margin-left:auto;padding-left:12px;font-size:11px;font-weight:800}.turn-notice{color:#dce8ef;gap:9px;font-size:13px}.pulse-dot,.live-dot{background:var(--cyan);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #35d7e51a}.call-actions{gap:5px}.action,.discard-button{cursor:pointer;border-radius:10px;height:52px;font-weight:800}.action{background:var(--panel-2);color:#dbe5ee;border:1px solid #94a3b847;min-width:53px;padding:0 9px}.action:hover:not(:disabled),.action.active{border-color:var(--cyan);transform:translateY(-1px)}.action.amber{color:var(--amber);border-color:#f4b7408c}.action.win{color:#ff8c8c;border-color:#dd494994}.action:disabled{opacity:.32;cursor:not-allowed}.discard-button{color:#05202b;background:linear-gradient(135deg,#4edee8,#2bc4d5);border:1px solid #7af1f6;font-size:17px;box-shadow:0 8px 22px #35d7e533,inset 0 1px #fff6}.discard-button:disabled{filter:saturate(.2);opacity:.45}.discard-button kbd{border:1px solid #0003;border-radius:4px;margin-left:8px;padding:2px 5px;font-size:9px}.side-panel{flex-direction:column;gap:12px;min-height:0;display:flex}.side-panel section{border:1px solid var(--line);background:#0f1c2ceb;border-radius:14px;overflow:hidden}.section-title{border-bottom:1px solid var(--line);color:#dce5ed;justify-content:space-between;min-height:43px;padding:0 14px;font-size:12px;font-weight:800}.info-hero{padding:14px}.info-hero strong,.info-hero span{display:block}.info-hero strong{color:var(--amber);font-size:21px}.info-hero span{color:var(--muted);margin-top:4px;font-size:11px}.round-meta{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.round-meta div{padding:11px 14px}.round-meta div+div{border-left:1px solid var(--line)}.round-meta small,.round-meta b{display:block}.round-meta small{color:var(--muted);font-size:9px}.round-meta b{margin-top:3px;font-size:12px}.score-list{margin:0;padding:7px;list-style:none}.score-list li{border-radius:8px;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:9px 8px;display:grid}.score-list li+li{border-top:1px solid #94a3b81a}.score-list li.is-you{background:#35d7e50f}.score-list strong,.score-list small{display:block}.score-list strong{font-size:12px}.score-list small{color:var(--muted);margin-top:2px;font-size:9px}.score-list b{font-variant-numeric:tabular-nums;font-size:12px}.rule-card{flex:1}.rule-card dl{margin:0;padding:7px 14px}.rule-card dl div{border-bottom:1px solid #94a3b81a;justify-content:space-between;padding:8px 0;font-size:11px;display:flex}.rule-card dt{color:var(--muted)}.rule-card dd{margin:0;font-weight:700}.game-loading{place-content:center;justify-items:center;gap:14px;display:grid}.loading-mark{width:72px;height:72px;color:var(--cyan);background:linear-gradient(145deg,#142c3d,#0c1826);border:1px solid #35d7e580;border-radius:20px;place-items:center;font-size:34px;font-weight:900;display:grid;box-shadow:0 0 40px #35d7e529}.game-loading p{color:var(--muted);margin:0;font-size:13px}@media (width<=1120px){.play-layout{grid-template-columns:1fr;overflow:auto}.side-panel{display:none}.play-layout,.table-wrap{min-height:760px}}@media (width<=780px){.topbar{grid-template-columns:1fr auto}.match-labels,.wall--left,.wall--right{display:none}.play-layout{min-width:720px;padding:8px}.action-rail{grid-template-columns:1fr auto}.turn-notice{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.online-lobby{isolation:isolate;color:#fff9e9;background:radial-gradient(circle at 42% 40%,#50b57057,#0000 38%),radial-gradient(circle at 50% 105%,#00160db8,#0000 45%),linear-gradient(120deg,#00261b26,#011f199e),#08623f;min-height:100vh;padding:0 clamp(24px,5vw,84px) 38px;position:relative;overflow:hidden}.online-lobby:before{content:"";z-index:-2;pointer-events:none;opacity:.7;background:repeating-radial-gradient(circle at 0 100%,#0000 0 22px,#f5cb6721 23px 25px,#0000 26px 42px) 0 0/230px 230px,repeating-radial-gradient(circle at 100% 0,#0000 0 28px,#f5cb671a 29px 31px,#0000 32px 52px) 0 0/270px 270px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(100deg,#000 0%,#0000 42% 68%,#000 100%);mask-image:linear-gradient(100deg,#000 0%,#0000 42% 68%,#000 100%)}.online-lobby:after{content:"";z-index:-1;pointer-events:none;mix-blend-mode:soft-light;opacity:.65;background-image:radial-gradient(#ffffff1f .65px,#0000 .7px),radial-gradient(#00000024 .65px,#0000 .7px);background-position:0 0,2px 2px;background-size:4px 4px;position:absolute;inset:0}.lobby-header{z-index:20;border-bottom:1px solid #fbd57d45;justify-content:space-between;align-items:center;min-height:84px;display:flex;position:relative}.lobby-logo-lockup{align-items:center;gap:12px;display:flex}.lobby-logo-lockup strong,.lobby-logo-lockup small{display:block}.lobby-logo-lockup strong{color:#fff4d1;letter-spacing:.12em;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:19px}.lobby-logo-lockup small{color:#ffeec794;letter-spacing:.18em;margin-top:3px;font-size:9px;font-weight:700}.header-mon{color:#ffe5a3;background:radial-gradient(circle,#a71f2b,#5f0710);border:1px solid #f8cd68ad;border-radius:50%;place-items:center;width:40px;height:40px;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-weight:900;display:grid;box-shadow:0 0 0 3px #5b1415b3,0 4px 16px #00000047}.lobby-status{color:#ffe4a0;letter-spacing:.08em;align-items:center;gap:7px;font-size:12px;font-weight:800;display:flex}.lobby-status i{background:#72e29d;border-radius:50%;width:8px;height:8px;box-shadow:0 0 12px #72e29dcc}.lobby-hero{grid-template-columns:minmax(0,1.35fr) minmax(360px,.8fr);align-items:center;gap:clamp(38px,6vw,96px);width:min(1280px,100%);min-height:calc(100vh - 122px);margin:0 auto;display:grid}.lobby-brand-stage{place-items:center;min-height:610px;display:grid;position:relative}.dankon-brand{z-index:4;justify-items:center;width:min(720px,92%);display:grid;position:relative}.dankon-brand img{object-fit:contain;filter:drop-shadow(0 18px 22px #00000075);width:100%;height:auto}.dankon-subtitle{color:#ffe7ab;letter-spacing:.22em;white-space:nowrap;align-items:center;gap:13px;width:min(420px,76%);margin-top:-9px;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(14px,1.5vw,19px);font-weight:800;display:flex}.dankon-subtitle i{background:linear-gradient(90deg,#0000,#e6bd63);flex:1;height:1px}.dankon-subtitle i:last-child{transform:scaleX(-1)}.dankon-brand>p{color:#fff8debf;letter-spacing:.1em;text-shadow:0 2px 5px #0006;margin:15px 0 0;font-size:12px;font-weight:600}.dankon-brand--compact{border-radius:8px;width:43px;height:43px;overflow:hidden}.dankon-brand--compact img{object-fit:cover;object-position:38% 50%;width:74px;max-width:none;height:43px}.lobby-art-tile{z-index:2;filter:drop-shadow(0 14px 14px #0000006b);width:100px;position:absolute}.lobby-art-tile svg{width:100%;height:auto;display:block}.lobby-art-tile--east{top:6%;left:2%;transform:rotate(-18deg)}.lobby-art-tile--red{bottom:5%;right:0;transform:rotate(12deg)}.lobby-art-tile--sou{width:82px;bottom:2%;left:11%;transform:rotate(14deg)}.lobby-cloud{z-index:1;opacity:.75;border-top:3px solid #f3c057a3;border-radius:50%;width:170px;height:28px;position:absolute}.lobby-cloud:before,.lobby-cloud:after{content:"";border:3px solid #f3c057a3;border-bottom:0;border-radius:22px 22px 0 0;width:38px;height:18px;position:absolute;top:-16px}.lobby-cloud:before{left:34px}.lobby-cloud:after{left:72px}.lobby-cloud--one{top:54%;left:-4%;transform:rotate(-4deg)}.lobby-cloud--two{top:24%;right:0;transform:scaleX(-1)rotate(5deg)}.eyebrow{color:#f2c664;letter-spacing:.18em;text-transform:uppercase;font-size:11px;font-weight:900}.waiting-card>p{color:#fff4d7a8;font-size:14px;line-height:1.8}.lobby-panel,.waiting-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#ffffff0a,#0000 26%),#171310e6;border:1px solid #ecc66d66;border-radius:8px;box-shadow:0 0 0 5px #4d2a17cc,0 0 0 6px #ecc66d61,0 28px 80px #0000006b}.lobby-panel-wrap{width:min(440px,100%);padding-top:61px;position:relative}.panel-heading{z-index:3;color:#ffe8ad;background:linear-gradient(#8e271e,#51100e);border:1px solid #dfb75b;border-radius:50% 50% 9px 9px;align-content:center;justify-items:center;width:210px;height:76px;display:grid;position:absolute;top:0;left:50%;transform:translate(-50%);box-shadow:0 5px #35130c,0 10px 25px #00000059}.panel-heading span{letter-spacing:.28em;font-size:9px;font-weight:800}.panel-heading strong{letter-spacing:.12em;margin-top:2px;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:24px}.lobby-panel{grid-template-columns:minmax(0,1fr);gap:14px;padding:38px 28px 28px;display:grid}.lobby-panel label{gap:7px;display:grid}.lobby-panel label>span{color:#dbcba7;font-size:11px;font-weight:800}.lobby-panel input{color:#fff9e9;width:100%;min-width:0;height:52px;font:inherit;background:#041711b8;border:1px solid #debd7147;border-radius:6px;outline:none;padding:0 15px}.lobby-panel input:focus{border-color:#efc967;box-shadow:0 0 0 3px #efc96721}.room-code-input{text-align:center;letter-spacing:.24em;font-size:22px!important;font-weight:900!important}.primary-lobby-button,.secondary-lobby-button,.copy-room-button,.lobby-link-button{cursor:pointer;border-radius:6px;min-height:50px;font-weight:900;transition:transform .14s,filter .14s,box-shadow .14s}.primary-lobby-button:hover,.secondary-lobby-button:hover,.copy-room-button:hover,.lobby-link-button:hover{filter:brightness(1.08);transform:translateY(-1px)}.primary-lobby-button{color:#fff4d1;text-shadow:0 1px 2px #0006;background:linear-gradient(#c8452e,#8f211d);border:1px solid #ffd986;box-shadow:inset 0 1px #ffffff3d,0 5px #4f1714}.secondary-lobby-button,.copy-room-button{color:#ffebbd;background:linear-gradient(#1c593ef5,#0c3928f5);border:1px solid #e7c06680}.primary-lobby-button:disabled,.secondary-lobby-button:disabled{cursor:not-allowed;filter:grayscale(.7);opacity:.42}.lobby-divider{color:#8e826a;align-items:center;gap:10px;font-size:10px;display:flex}.lobby-divider:before,.lobby-divider:after{content:"";background:#e7c06633;flex:1;height:1px}.cpu-practice-button{color:#fff4d7d1;cursor:pointer;background:#00221785;border:1px solid #ffe19b3d;border-radius:999px;width:max-content;margin:18px auto 0;padding:8px 14px;font-size:11px;display:block}.cpu-practice-button span{color:#f0c86d;margin-right:6px;font-weight:900}.waiting-card{text-align:center;width:min(680px,100%);margin:72px auto 0;padding:36px}.waiting-card h1{margin:12px 0 6px;font-size:22px}.waiting-card h1 b{color:#f2c55e;letter-spacing:.16em;margin-top:8px;font-size:46px;display:block}.copy-room-button{min-height:40px;margin:8px 0 24px;padding:0 18px}.lobby-seats{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 24px;display:grid}.lobby-seat{color:#968c77;text-align:left;border:1px dashed #e7c06640;border-radius:11px;grid-template-columns:34px 1fr 10px;align-items:center;gap:10px;padding:13px;display:grid}.lobby-seat>span{background:#ffffff0d;border-radius:8px;place-items:center;width:30px;height:30px;font-size:11px;font-weight:900;display:grid}.lobby-seat div{gap:2px;display:grid}.lobby-seat strong{color:#fff2d0;font-size:13px}.lobby-seat small{font-size:10px}.lobby-seat i{background:#536674;border-radius:50%;width:7px;height:7px}.lobby-seat.is-filled{border-style:solid;border-color:#e7c06661}.lobby-seat.is-filled i{background:#3ddc97;box-shadow:0 0 10px #3ddc9799}.start-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.waiting-pulse{color:#a9bcc8;font-size:12px}.waiting-pulse span{background:#f2c55e;border-radius:50%;width:7px;height:7px;margin-right:8px;animation:.85s ease-in-out infinite alternate call-candidate-pulse;display:inline-block}.lobby-error{color:#ff8e93;background:#ff5c631a;border-radius:8px;margin:0;padding:10px;font-size:11px}.host-note{color:#f1c96b!important;margin:-4px 0 10px!important;font-size:11px!important}.sync-error{font-weight:900;color:#ff7479!important}.game-shell{background:radial-gradient(circle at 50% -20%,#2746567a,#0000 48%),#050b12}.game-shell .topbar{z-index:50;background:linear-gradient(#0d161ffa,#050c13f5);border-bottom-color:#d8a95238;height:54px;padding:0 18px;position:relative;box-shadow:0 8px 28px #0000006b}.game-shell .brand-mark{color:#f3c96f;background:linear-gradient(145deg,#2a3440,#111a24);border-color:#d9b2679e;box-shadow:inset 0 0 0 1px #ffffff0d,0 3px 10px #00000059}.game-shell .play-layout{height:calc(100vh - 54px);padding:0;display:block}.game-shell .table-wrap{height:100%;min-height:690px;box-shadow:none;background:#071018;border:0;border-radius:0;grid-template-rows:minmax(0,1fr) 80px}.game-shell .side-panel{display:none}.mahjong-table{background:radial-gradient(at 50% 46%,#1f9a7b52,#0000 39%),linear-gradient(135deg,#0000 49.88%,#002b2647 50%,#0000 50.12%),linear-gradient(45deg,#0000 49.88%,#002b2647 50%,#0000 50.12%),linear-gradient(155deg,#087a68 0%,#076454 49%,#064d43 100%);border:clamp(12px,1.25vw,20px) solid #3a281e;border-image:linear-gradient(135deg,#6f4b31,#261812 35%,#51351f 70%,#1d120e) 1;min-height:610px;box-shadow:inset 0 0 0 4px #071820,inset 0 0 80px #0000007a,inset 0 20px 50px #16b79312}.mahjong-table:before{content:"";z-index:1;pointer-events:none;clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%);border:1px solid #04393394;position:absolute;inset:5.8%;box-shadow:inset 0 0 32px #00000014}.mahjong-table:after{opacity:.45;background-image:radial-gradient(#ffffff17 .55px,#0000 .7px),linear-gradient(100deg,#0000 0 48%,#ffffff05 50%,#0000 52%);background-size:4px 4px,110px 100%}.tile{--tile-w:clamp(43px, 3.95vw, 60px);--tile-h:clamp(61px, 5.55vw, 84px);width:var(--tile-w);height:var(--tile-h);background:linear-gradient(115deg,#ffffffeb,#0000 27%),linear-gradient(160deg,#fffefa 0%,#f3efe4 62%,#ddd4c2 100%);border-top:1px solid #d4cdbf;border-bottom:clamp(5px,.48vw,7px) solid #a99a7d;border-left:1px solid #d4cdbf;border-right:1px solid #aaa293;border-radius:7px 7px 5px 5px;overflow:visible;box-shadow:inset 0 0 0 1px #ffffffe6,inset -2px -2px 4px #6452331f,0 5px #76684f,0 9px 13px #0000005c}.tile:after{content:"";pointer-events:none;border:1px solid #7e70572b;border-radius:4px;position:absolute;inset:3px}.tile:not([tabindex="-1"]):hover{filter:brightness(1.04);transform:translateY(-7px)}.tile--selected{border-color:#ffdc78;transform:translateY(-11px);box-shadow:inset 0 0 0 1px #ffffffe6,0 5px #806a3e,0 0 0 3px #f3c75e,0 10px 28px #ffca4e7a}.tile--compact{--tile-w:clamp(27px, 2.25vw, 35px);--tile-h:clamp(39px, 3.25vw, 50px);width:var(--tile-w);height:var(--tile-h);border-bottom-width:3px;border-radius:5px 5px 3px 3px;box-shadow:inset 0 0 0 1px #fffc,0 3px #76684f,0 5px 7px #00000047}.tile--back{background:linear-gradient(135deg,#ffffff3d,#0000 32%),repeating-linear-gradient(45deg,#0000 0 5px,#54330a14 5px 7px),linear-gradient(155deg,#e9ad46,#b96f1e);border-color:#a57730;box-shadow:inset 0 0 0 3px #f2c161,inset 0 0 0 5px #683a0d38,0 3px #704319,0 7px 10px #0000004f}.tile--back:before{content:"◇";color:#6f3b0d61;font-size:calc(var(--tile-w) * .35);border:1px solid #6c380c57;place-items:center;display:grid;position:absolute;inset:22%}.tile .tile-mark{z-index:2;place-items:center;width:86%;height:86%;line-height:1;display:grid;position:relative}.tile-mark--man{grid-template-rows:1fr auto;padding:4% 0 2%;font-family:Yu Mincho,Hiragino Mincho ProN,serif}.tile-mark--man b{color:#17242a;font-size:calc(var(--tile-w) * .54);letter-spacing:-.12em;text-shadow:0 1px #ffffff80;font-weight:900}.tile-mark--man i{color:#b92b30;font-size:calc(var(--tile-w) * .37);margin-top:-5%;font-style:normal;font-weight:900}.tile-mark--pin{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:3%;padding:8%}.tile-mark--pin i{aspect-ratio:1;border:max(1px, calc(var(--tile-w) * .028)) solid #164f74;background:radial-gradient(circle, #f4efe3 0 19%, #26658a 21% 33%, transparent 35%), repeating-conic-gradient(#2c7599 0 13deg, #f4efe3 13deg 26deg);border-radius:50%;place-self:center;width:84%;box-shadow:inset 0 0 0 1px #0a31483d}.tile-mark--pin i:nth-child(2n){background:radial-gradient(circle, #f4efe3 0 19%, #2a8867 21% 33%, transparent 35%), repeating-conic-gradient(#38a078 0 13deg, #f4efe3 13deg 26deg);border-color:#228461}.tile-mark--pin i.is-red,.tile--red .tile-mark--pin i{background:radial-gradient(circle, #f4efe3 0 19%, #c83d43 21% 33%, transparent 35%), repeating-conic-gradient(#d44a4f 0 13deg, #f4efe3 13deg 26deg);border-color:#b72f34}.tile-mark--pin-1{grid-template-columns:1fr;padding:17%}.tile-mark--pin-1 i{width:100%}.tile-mark--pin-2{grid-template-columns:1fr;padding:10% 29%}.tile-mark--pin-3{grid-template-columns:1fr;padding:4% 30%}.tile-mark--pin-4{grid-template-columns:repeat(2,1fr);padding:13%}.tile-mark--pin-5{grid-template-columns:repeat(2,1fr);padding:7% 12%}.tile-mark--pin-5 i:nth-child(5){grid-area:2/1/auto/3;width:38%}.tile-mark--pin-6{grid-template-columns:repeat(2,1fr);padding:7% 13%}.tile-mark--pin-7,.tile-mark--pin-8,.tile-mark--pin-9{padding:5%}.tile-mark--sou{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:1%;padding:5% 8%}.tile-mark--sou i{background:linear-gradient(90deg,#1f6b47,#4aa66a 45%,#16563b);border-radius:999px;place-self:center;width:25%;min-width:2px;height:90%;position:relative;transform:rotate(4deg);box-shadow:0 0 0 1px #144c302e}.tile-mark--sou i:after{content:"";background:#286b47;border-radius:99px;width:240%;height:8%;position:absolute;top:45%;left:50%;transform:translate(-50%)rotate(-12deg)}.tile-mark--sou i:nth-child(2n){transform:rotate(-4deg)}.tile-mark--sou i.is-red,.tile--red .tile-mark--sou i:first-child{background:linear-gradient(90deg,#9f2f33,#d24b4e 45%,#81272b)}.tile-mark--sou i.is-red:after,.tile--red .tile-mark--sou i:first-child:after{background:#9d3034}.tile-mark--sou-1{grid-template-columns:1fr;padding:13% 34%}.tile-mark--sou-1 i{width:36%}.tile-mark--sou-2{grid-template-columns:1fr;padding:6% 35%}.tile-mark--sou-3{grid-template-columns:1fr;padding:3% 35%}.tile-mark--sou-4{grid-template-columns:repeat(2,1fr);padding:8% 18%}.tile-mark--sou-5{grid-template-columns:repeat(2,1fr);padding:5% 16%}.tile-mark--sou-5 i:nth-child(5){grid-area:2/1/auto/3}.tile-mark--sou-6{grid-template-columns:repeat(2,1fr);padding:4% 18%}.tile .tile-mark--honor{color:#18252b;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:calc(var(--tile-w) * .66);text-shadow:0 1px #fff9;font-weight:900}.tile-mark--honor-5{border:max(1px, calc(var(--tile-w) * .035)) solid #2b7292;box-shadow:inset 0 0 0 max(2px, calc(var(--tile-w) * .07)) #f4efe3;font-size:0}.tile-mark--honor-6{color:#19845c}.tile-mark--honor-7{color:#bb2d34}.tile--compact .tile-mark--man b{font-size:calc(var(--tile-w) * .55)}.tile--compact .tile-mark--man i{font-size:calc(var(--tile-w) * .34)}.player{background:linear-gradient(135deg,#212d38fa,#081119f5);border-color:#e2be7047;border-radius:8px;grid-template-columns:36px 25px minmax(62px,1fr) auto;gap:8px;min-width:172px;padding:7px 10px 7px 7px;box-shadow:inset 0 0 0 1px #ffffff09,0 8px 18px #00000061}.player-avatar{color:#ffe8b6;background:radial-gradient(circle at 35% 25%,#fff3,#0000 22%),linear-gradient(145deg,#6e354a,#2d263d);border:1px solid #f0c86f7a;border-radius:5px;place-items:center;width:36px;height:36px;font-family:Yu Mincho,serif;font-size:16px;font-weight:900;display:grid}.player-copy{min-width:0}.player strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player--active{border-color:#f2c866;box-shadow:0 0 0 2px #f2c86630,0 0 22px #f2c86624}.player--top{top:8px}.player--bottom{bottom:97px}.player--left{left:58px}.player--right{right:58px}.opponent-hand{gap:2px}.opponent-hand--top{top:59px}.opponent-hand--left{left:15px}.opponent-hand--right{right:15px}.river{gap:3px}.river--top{top:calc(46% - 176px)}.river--bottom{bottom:calc(54% - 178px)}.river--left,.river--right{top:46%}.river--left{left:calc(50% - 267px)}.river--right{right:calc(50% - 267px)}.round-center{background:linear-gradient(135deg,#252b32f7,#070f17fa);border:1px solid #e2be706b;border-radius:8px;width:170px;padding:13px;top:46%;box-shadow:inset 0 0 0 3px #ffffff06,inset 0 0 0 5px #0000002e,0 13px 30px #0000006e}.round-heading span{color:#f0c568}.round-grid div{background:#0a161fb8;border:1px solid #ffffff0a}.hand{gap:clamp(15px,1.5vw,25px);bottom:16px}.hand-main{filter:drop-shadow(0 10px 8px #0000002e);gap:2px}.melds--bottom{bottom:14px}.melds--top{top:59px}.melds--left{bottom:45px;left:64px}.melds--right{bottom:45px;right:64px}.wait-display{background:linear-gradient(135deg,#1c2630f7,#070f17f7);border-color:#f2c8668c;border-radius:8px;bottom:15px;left:18px}.action-rail{background:linear-gradient(#111c27,#071019);border-top:1px solid #e2be702e;grid-template-columns:minmax(190px,1fr) auto minmax(130px,180px);padding:10px 18px;box-shadow:0 -8px 28px #0000005c}.action,.discard-button{border-radius:7px;height:50px}.action{background:linear-gradient(#23303d,#111c27);border-color:#d2b1693b}.action:hover:not(:disabled),.action.active{border-color:#f1c967;box-shadow:inset 0 0 0 1px #f1c96726}.discard-button{color:#2a1d0b;background:linear-gradient(#f5d77f,#c99635);border-color:#f0cd77;box-shadow:inset 0 1px #ffffff8c,0 5px 18px #c996353d}@media (width<=1040px){.game-shell .play-layout{min-width:780px;overflow:auto}.game-shell .table-wrap{min-height:720px}.player--left{left:48px}.player--right{right:48px}}.tile{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.tile:after,.tile--back:before{content:none}.tile--back{box-shadow:none;background:0 0;border:0}.tile-art,.tile .tile-art{z-index:2;pointer-events:none;width:100%;height:100%;line-height:0;display:block;position:absolute;inset:0}.tile-art svg{filter:drop-shadow(0 5px 4px #00000047);width:100%;height:100%;display:block;overflow:visible}.tile--compact .tile-art svg{filter:drop-shadow(0 3px 2px #0000003d)}.tile--selected{background:0 0;border:0;box-shadow:0 0 0 3px #f3c75e,0 10px 28px #ffca4e7a}.tile--call-candidate{background:#ffe1761f;border:0}.tile--claimed{border:0}.lobby-link-button{color:#b9c9d2;background:#ffffff0f;min-height:38px;padding:0 15px}@media (width<=820px){.online-lobby{padding:0 20px 40px;overflow:auto}.lobby-header{min-height:70px}.lobby-logo-lockup small{display:none}.lobby-hero{grid-template-columns:1fr;gap:10px;padding:18px 0 44px}.lobby-brand-stage{min-height:430px}.dankon-brand{width:min(530px,94%)}.dankon-brand>p{text-align:center;max-width:320px;line-height:1.7}.lobby-art-tile{width:72px}.lobby-art-tile--sou{width:60px}.lobby-panel-wrap,.lobby-panel{width:100%}.lobby-seats,.start-options{grid-template-columns:1fr}.waiting-card{margin-top:36px;padding:24px}}@media (width<=520px){.lobby-brand-stage{min-height:330px}.dankon-subtitle{letter-spacing:.13em;width:88%;font-size:12px}.lobby-art-tile--east{top:1%;left:-4%}.lobby-art-tile--red{right:-4%}.lobby-cloud{transform:scale(.72)}.lobby-panel{padding-inline:20px}}.game-shell .player,.game-shell .play-layout.has-chat .player{overflow:visible}.game-shell .melds--bottom,.game-shell .play-layout.has-chat .melds--bottom{flex-direction:column-reverse;align-items:flex-end;top:auto;bottom:14px;right:clamp(10px,1.2cqw,18px)}.landing-lobby{--party-green:#006848;--party-green-deep:#004b3b;--party-cream:#fff7e5;--party-coral:#f13b26;--party-cyan:#18c1d9;--party-yellow:#f4c542;background:radial-gradient(circle at 37% 40%, #19ab763d, transparent 35%), linear-gradient(105deg, #ffffff06, transparent 42%), var(--party-green);min-height:100vh;padding:0}.landing-lobby:before{opacity:.32;background:linear-gradient(90deg,#0000 48px,#00302561 49px 52px,#0000 53px) 0 0/100% 100%,linear-gradient(0deg,#0000 48px,#0030253d 49px 52px,#0000 53px) 0 0/100% 100%;inset:72px 0 0;-webkit-mask-image:none;mask-image:none}.landing-lobby:after{opacity:.42}.landing-lobby .lobby-header{background:radial-gradient(#b4915214 .6px, transparent .7px), var(--party-cream);background-size:4px 4px;border-bottom:4px solid #005440;min-height:72px;padding:0 clamp(28px,4vw,64px)}.landing-lobby .lobby-logo-lockup{gap:16px}.landing-lobby .lobby-logo-lockup strong{color:#064a3c;letter-spacing:.03em;font-family:Noto Sans JP,Yu Gothic,sans-serif;font-size:clamp(23px,2.1vw,32px);font-weight:950}.landing-lobby .lobby-logo-lockup small{color:#075244;letter-spacing:.08em;border-left:2px solid #e3b83f;margin:0;padding-left:16px;font-size:11px;font-weight:900}.landing-lobby .lobby-status{color:#075244;font-size:13px}.landing-lobby .lobby-status i{background:var(--party-cyan);box-shadow:0 0 0 4px #18c1d91a}.landing-lobby .lobby-hero{z-index:2;grid-template-columns:minmax(0,1.24fr) minmax(390px,.76fr);gap:clamp(22px,3vw,48px);width:min(1460px,100%);min-height:calc(100vh - 72px);padding:18px clamp(42px,5.5vw,88px) 24px;position:relative}.landing-lobby .lobby-brand-stage{align-content:center;min-height:690px;padding-bottom:148px}.landing-lobby .dankon-brand{width:min(680px,92%)}.landing-lobby .dankon-brand img{filter:drop-shadow(0 15px 11px #00231a47)}.landing-lobby .dankon-subtitle,.landing-lobby .dankon-brand>p{display:none}.landing-lobby .lobby-cloud{z-index:3;border-color:#f5be3fc7}.landing-lobby .lobby-cloud:before,.landing-lobby .lobby-cloud:after{border-color:#f5be3fc7}.landing-lobby .lobby-cloud--one{top:52%;left:5%}.landing-lobby .lobby-cloud--two{top:25%;right:2%}.lobby-tile-rack{z-index:6;background:0 0;align-items:flex-end;gap:5px;display:flex;position:absolute;bottom:12px;left:8%}.lobby-tile-rack .lobby-art-tile{filter:drop-shadow(0 10px 7px #00231952);width:clamp(58px,5.7vw,82px);position:relative;transform:none}.lobby-tile-rack .lobby-art-tile:nth-child(2){transform:rotate(-1deg)}.lobby-tile-rack .lobby-art-tile:nth-child(3){transform:rotate(1deg)}.lobby-tile-rack .lobby-art-tile:nth-child(5){transform:rotate(-1deg)}.landing-lobby .lobby-panel-wrap{background:var(--party-cream);border:3px solid #f4e4bf;border-radius:28px;width:min(460px,100%);padding:22px 22px 18px;box-shadow:0 0 0 3px #08725a,0 14px #003f2e57,0 24px 42px #002d213d}.landing-lobby .panel-heading{width:auto;height:auto;box-shadow:none;color:var(--party-green-deep);background:0 0;border:0;border-radius:0;grid-template-columns:60px 1fr 76px;place-items:center start;gap:12px;display:grid;position:static;transform:none}.landing-lobby .panel-heading .lobby-art-tile{filter:drop-shadow(0 5px 4px #332a152e);width:56px;position:relative}.landing-lobby .panel-heading strong{color:var(--party-green-deep);letter-spacing:.02em;margin:0;font-family:Noto Sans JP,Yu Gothic,sans-serif;font-size:clamp(27px,2.4vw,38px);font-weight:950}.landing-lobby .panel-heading-tiles{align-items:flex-end;gap:2px;display:flex}.landing-lobby .panel-heading-tiles .lobby-art-tile{filter:drop-shadow(0 3px 2px #332a1524);width:34px}.landing-lobby .lobby-panel{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-top:1px solid #0058421f;border-radius:0;gap:13px;padding:17px 0 0}.landing-lobby .lobby-panel label{gap:7px}.landing-lobby .lobby-panel label>span{color:#075244;font-size:12px}.landing-lobby .lobby-panel input{color:#073f36;background:#fffaf0;border:1px solid #b7a987;border-radius:12px;height:54px;font-size:17px;font-weight:800}.landing-lobby .lobby-panel input:focus{border-color:var(--party-cyan);box-shadow:0 0 0 3px #18c1d933}.landing-lobby .room-code-input{text-align:left;letter-spacing:.13em;font-size:24px!important}.landing-lobby .primary-lobby-button,.landing-lobby .secondary-lobby-button{border-radius:16px;min-height:62px;font-size:clamp(17px,1.55vw,23px)}.landing-lobby .primary-lobby-button{background:linear-gradient(180deg, #fb553f, var(--party-coral));color:#fff;text-shadow:0 1px 2px #640b0547;border:2px solid #ff765e;box-shadow:inset 0 1px #fff6,0 5px #a91f17}.landing-lobby .secondary-lobby-button{color:#064c3f;background:#fffaf0;border:3px solid #08725a;box-shadow:0 4px #004d3a40}.landing-lobby .lobby-divider{color:#075244;font-size:12px;font-weight:900}.landing-lobby .lobby-divider:before,.landing-lobby .lobby-divider:after{background:#00584252}.landing-lobby .cpu-practice-button{background:var(--party-cream);color:#064c3f;border:2px solid #e5d5b2;border-radius:22px;width:100%;min-height:68px;margin:22px 0 0;padding:0 24px;font-size:clamp(17px,1.6vw,23px);font-weight:950;box-shadow:0 7px #00443342,0 10px 22px #002d2133}.landing-lobby .cpu-practice-button .lobby-art-tile{vertical-align:middle;filter:drop-shadow(0 4px 3px #332a152e);width:43px;margin-right:14px;display:inline-block;position:relative}.landing-lobby .cpu-practice-button strong{vertical-align:middle}.resume-dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040a0fb8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.resume-dialog{text-align:center;background:linear-gradient(145deg,#141d23fa,#091015fa);border:1px solid #e0b44e8c;border-radius:18px;width:min(520px,100%);padding:32px;box-shadow:0 24px 80px #0000007a,0 0 34px #35cbd21f}.resume-dialog-kicker{color:#e6bf68;letter-spacing:.16em;margin-bottom:10px;font-size:12px;display:block}.resume-dialog h1{color:#fff7df;white-space:nowrap;margin:0;font-size:clamp(22px,3vw,30px);line-height:1.35}.resume-dialog p{color:#b8c2c7;margin:14px 0 24px;font-size:14px}.resume-dialog-actions{justify-content:center;gap:12px;display:flex}.resume-dialog-actions button{min-width:150px}@media (width<=560px){.resume-dialog{padding:24px 18px}.resume-dialog h1{font-size:21px}.resume-dialog-actions{flex-direction:column}.resume-dialog-actions button{width:100%}}.lobby-party-decor{z-index:1;pointer-events:none;position:absolute;inset:72px 0 0;overflow:hidden}.party-ribbon{filter:drop-shadow(0 5px 3px #00281d38);border:18px solid #0000;border-left-color:currentColor;border-radius:50%;width:160px;height:310px;position:absolute}.party-ribbon--orange{color:#f08e2d;top:-65px;left:5%;transform:rotate(19deg)}.party-ribbon--cyan{color:var(--party-cyan);top:270px;left:1%;transform:rotate(-18deg)scale(.76)}.party-ribbon--coral{color:#f15a3a;bottom:-90px;right:-70px;transform:rotate(23deg)scale(.9)}.party-ribbon--red-low{color:#ef583a;bottom:-230px;left:41%;transform:rotate(78deg)scale(.68)}.party-confetti{background:var(--party-yellow);border-radius:2px;width:13px;height:13px;position:absolute;transform:rotate(35deg);box-shadow:0 3px 4px #00281d33}.party-confetti--one{background:#ff684f;top:7%;left:37%}.party-confetti--two{background:var(--party-cyan);top:16%;left:51%}.party-confetti--three{background:var(--party-yellow);top:22%;right:5%}.party-confetti--four{background:var(--party-cyan);bottom:13%;left:48%}.party-confetti--five{background:#ff684f;bottom:35%;right:9%}.party-confetti--six{background:var(--party-yellow);top:24%;left:6%}.party-confetti--seven{background:#ff684f;top:49%;left:42%}.party-confetti--eight{background:var(--party-cyan);bottom:11%;right:2%}.lobby-edge-tiles{z-index:5;pointer-events:none;position:absolute;inset:72px 0 0;overflow:hidden}.landing-lobby .lobby-edge-tile{filter:drop-shadow(0 11px 7px #00231957);width:76px;position:absolute}.landing-lobby .lobby-edge-tile--red{top:28px;left:3.2%;transform:rotate(-11deg)}.landing-lobby .lobby-edge-tile--sou{top:30%;left:-30px;transform:rotate(-28deg)}.landing-lobby .lobby-edge-tile--pin{top:51%;left:-18px;transform:rotate(-18deg)}.landing-lobby .lobby-edge-tile--east{top:22px;right:2.4%;transform:rotate(12deg)}.landing-lobby .lobby-edge-tile--right-pin{top:35%;right:-44px;transform:rotate(24deg)}.landing-lobby .lobby-edge-tile--green{bottom:25px;right:2.3%;transform:rotate(14deg)}@media (width<=900px){.landing-lobby{overflow:auto}.landing-lobby .lobby-hero{grid-template-columns:1fr;padding-top:10px}.landing-lobby .lobby-brand-stage{min-height:590px}.landing-lobby .lobby-panel-wrap{justify-self:center}.party-ribbon--cyan,.party-confetti--four,.party-confetti--five{display:none}}@media (width<=520px){.landing-lobby .lobby-header{padding:0 16px}.landing-lobby .lobby-logo-lockup small{display:none}.landing-lobby .lobby-brand-stage{min-height:420px;padding-bottom:105px}.landing-lobby .dankon-brand{width:96%}.lobby-tile-rack{gap:2px;left:50%;transform:translate(-50%)}.lobby-tile-rack .lobby-art-tile{width:clamp(45px,14.5vw,58px)}.landing-lobby .lobby-edge-tile,.landing-lobby .lobby-cloud,.party-ribbon{display:none}.landing-lobby .lobby-panel-wrap{padding:18px 16px 16px}.landing-lobby .panel-heading{grid-template-columns:50px 1fr}.landing-lobby .panel-heading .lobby-art-tile{width:48px}.landing-lobby .panel-heading-tiles{display:none}}.sumi-lobby{--sumi-black:#05070b;--sumi-navy:#0a1320;--sumi-panel:#0c1723;--sumi-gold:#b89a55;--sumi-gold-bright:#dfc17b;--sumi-red:#c93331;--sumi-red-dark:#801b1c;--sumi-cyan:#26c6c8;--sumi-ivory:#eee6d5;background:radial-gradient(circle at 34% 45%,#3d247352,#0000 31%),radial-gradient(circle at 74% 75%,#0f81912b,#0000 32%),linear-gradient(115deg,#06080d 0%,#070a11 53%,#07101a 100%);min-height:100vh;position:relative;overflow:hidden}.sumi-lobby:before{opacity:.68;background:radial-gradient(at 18% 84%,#15202ab8,#0000 42%),radial-gradient(at 88% 12%,#151b27c2,#0000 35%),repeating-radial-gradient(circle at 33% 46%,#ffffff06 0 1px,#0000 1px 5px);inset:0;-webkit-mask-image:none;mask-image:none}.sumi-lobby:after{opacity:.38;background:linear-gradient(112deg,#0000 0 49%,#26c6c80d 58%,#0000 66%),radial-gradient(#ffffff0e .55px,#0000 .7px) 0 0/4px 4px}.sumi-lobby .lobby-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#05070bf5,#05070bc7);border-bottom:1px solid #b89a5538;min-height:68px;padding:0 clamp(24px,4vw,68px);position:relative;box-shadow:0 15px 40px #0003}.sumi-lobby .lobby-logo-lockup{gap:16px}.sumi-lobby .lobby-logo-lockup strong{color:var(--sumi-ivory);letter-spacing:.08em;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(23px,2.1vw,31px);font-weight:800}.sumi-lobby .lobby-logo-lockup small{color:var(--sumi-gold);letter-spacing:.18em;border-left:1px solid #b89a559e;margin:0;padding-left:16px;font-size:10px;font-weight:700}.sumi-lobby .lobby-status{color:#dce7e5;letter-spacing:.08em;font-size:12px}.sumi-lobby .lobby-status i{background:var(--sumi-cyan);box-shadow:0 0 0 4px #26c6c81a,0 0 18px #26c6c88c}.sumi-lobby .lobby-hero{z-index:4;grid-template-columns:minmax(0,1.28fr) minmax(390px,.72fr);gap:clamp(28px,4vw,74px);width:min(1540px,100%);min-height:calc(100vh - 68px);padding:clamp(24px,4vh,52px) clamp(42px,6vw,96px);position:relative}.sumi-lobby .lobby-brand-stage{align-content:center;min-height:0;padding:0}.sumi-lobby .dankon-brand{width:min(770px,100%);transform:translate(-2%)}.sumi-lobby .dankon-brand img{filter:saturate(1.05)contrast(1.06)drop-shadow(0 0 16px #c933311f)drop-shadow(0 28px 42px #0000007a);width:100%}.sumi-lobby .dankon-subtitle,.sumi-lobby .dankon-brand>p{display:none}.sumi-lobby .lobby-cloud{z-index:-1;filter:drop-shadow(0 0 8px #b89a551f);border-color:#b89a558a;width:165px}.sumi-lobby .lobby-cloud:before,.sumi-lobby .lobby-cloud:after{border-color:#b89a558a}.sumi-lobby .lobby-cloud--one{top:67%;left:4%}.sumi-lobby .lobby-cloud--two{top:15%;right:-3%}.sumi-lobby .lobby-panel-wrap{background:linear-gradient(145deg, #101d2bf7, #060d17fa), var(--sumi-panel);border:1px solid #b89a55a8;border-radius:4px;width:min(460px,100%);padding:34px 36px 32px;position:relative;box-shadow:inset 0 0 0 1px #dfc17b14,0 0 0 5px #03070c6b,0 24px 65px #00000085,0 0 26px #26c6c812}.sumi-lobby .lobby-panel-wrap:before,.sumi-lobby .lobby-panel-wrap:after{content:"";pointer-events:none;width:72px;height:72px;position:absolute}.sumi-lobby .lobby-panel-wrap:before{border-top:2px solid var(--sumi-gold-bright);border-left:2px solid var(--sumi-gold-bright);top:-2px;left:-2px}.sumi-lobby .lobby-panel-wrap:after{border-right:2px solid var(--sumi-cyan);border-bottom:2px solid var(--sumi-cyan);filter:drop-shadow(0 0 8px #26c6c880);bottom:-2px;right:-2px}.sumi-lobby .panel-heading{width:auto;height:auto;box-shadow:none;background:0 0;border:0;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid;position:static;transform:none}.sumi-lobby .panel-heading i{background:linear-gradient(90deg,#0000,#b89a55b8);height:1px;display:block}.sumi-lobby .panel-heading i:last-child{background:linear-gradient(90deg,#b89a55b8,#0000)}.sumi-lobby .panel-heading strong{color:var(--sumi-gold-bright);letter-spacing:.12em;white-space:nowrap;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(24px,2.2vw,32px);font-weight:700}.sumi-lobby .lobby-panel{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;gap:15px;padding:26px 0 0}.sumi-lobby .lobby-panel label{gap:8px}.sumi-lobby .lobby-panel label>span{color:#d8d3c7;letter-spacing:.08em;font-size:12px;font-weight:700}.sumi-lobby .display-name-picker{border:0;min-width:0;margin:0;padding:0}.sumi-lobby .display-name-picker legend{color:#d8d3c7;letter-spacing:.08em;margin-bottom:9px;font-size:12px;font-weight:700}.sumi-lobby .display-name-picker>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.sumi-lobby .display-name-picker button{color:#d8d3c7;letter-spacing:.02em;white-space:nowrap;background:#03080eb3;border:1px solid #b89a556b;border-radius:5px;min-width:0;min-height:42px;padding:8px 5px;font-size:clamp(12px,1vw,14px);font-weight:700;transition:border-color .16s,background .16s,color .16s,box-shadow .16s}.sumi-lobby .display-name-picker button:hover{color:#fff7df;border-color:#e2c477e6}.sumi-lobby .display-name-picker button.is-selected{border-color:var(--sumi-cyan);color:#fff7df;background:linear-gradient(#26c6c833,#0d3a415c);box-shadow:0 0 0 2px #26c6c824,inset 0 0 18px #26c6c814}.sumi-lobby .display-name-picker button:focus-visible{outline:2px solid var(--sumi-cyan);outline-offset:2px}.sumi-lobby .lobby-panel input{color:#f1ede4;background:#03080eb8;border:1px solid #b89a5594;border-radius:5px;height:54px;font-size:17px;font-weight:700;box-shadow:inset 0 3px 14px #00000038}.sumi-lobby .lobby-panel input::placeholder{color:#dcd9cf47}.sumi-lobby .lobby-panel input:focus{border-color:var(--sumi-cyan);box-shadow:0 0 0 3px #26c6c824,inset 0 3px 14px #00000038}.sumi-lobby .room-code-input{text-align:left;letter-spacing:.14em;font-size:24px!important}.sumi-lobby .primary-lobby-button,.sumi-lobby .secondary-lobby-button{letter-spacing:.04em;border-radius:4px;min-height:60px;font-size:clamp(16px,1.45vw,21px);font-weight:800;transition:transform .18s,box-shadow .18s,border-color .18s}.sumi-lobby .primary-lobby-button{background:linear-gradient(135deg, transparent 0 9%, #ffffff0b 9% 10%, transparent 10% 90%, #0000001f 90%), linear-gradient(180deg, #d74740, var(--sumi-red));box-shadow:inset 0 0 0 1px #ffd2b029, 0 4px 0 var(--sumi-red-dark), 0 12px 28px #801b1c38;color:#fff;text-shadow:0 1px 2px #3c00006b;border:1px solid #e56b5f}.sumi-lobby .primary-lobby-button:hover:not(:disabled){box-shadow:inset 0 0 0 1px #ffd2b033, 0 6px 0 var(--sumi-red-dark), 0 16px 34px #c9333147;transform:translateY(-2px)}.sumi-lobby .secondary-lobby-button{color:var(--sumi-ivory);background:#070e1794;border:1px solid #b89a55b8;box-shadow:inset 0 0 18px #b89a5506}.sumi-lobby .secondary-lobby-button:hover:not(:disabled){border-color:var(--sumi-gold-bright);transform:translateY(-2px);box-shadow:0 0 18px #b89a5521}.sumi-lobby .lobby-divider{color:var(--sumi-gold-bright);font-size:12px;font-weight:700}.sumi-lobby .lobby-divider:before,.sumi-lobby .lobby-divider:after{background:linear-gradient(90deg,#0000,#b89a559e)}.sumi-lobby .lobby-divider:after{background:linear-gradient(90deg,#b89a559e,#0000)}.sumi-lobby .cpu-practice-button{color:#e8e6df;letter-spacing:.04em;background:#050f19d6;border:1px solid #26c6c89e;border-radius:4px;width:100%;min-height:58px;margin:24px 0 0;font-size:clamp(16px,1.4vw,20px);font-weight:700;transition:transform .18s,box-shadow .18s,border-color .18s;box-shadow:inset 0 0 20px #26c6c806}.sumi-lobby .cpu-practice-button:hover{border-color:var(--sumi-cyan);transform:translateY(-2px);box-shadow:0 0 20px #26c6c821}.sumi-atmosphere{pointer-events:none;position:absolute;inset:68px 0 0;overflow:hidden}.sumi-atmosphere--back{z-index:3}.sumi-atmosphere--front{z-index:6}.sumi-lobby .lobby-panel-wrap{z-index:10}.sakura{--petal-size:1;--petal-opacity:.9;--petal-blur:0px;--petal-glow:12px;--drift-x:18vw;width:18px;height:12px;box-shadow:0 0 var(--petal-glow) #ff7ea494, 0 0 calc(var(--petal-glow) * 2) #e9497c2e;opacity:var(--petal-opacity);filter:blur(var(--petal-blur));transform:scale(var(--petal-size));transform-origin:50%;will-change:translate, rotate, transform;background:radial-gradient(circle at 35% 32%,#fff8fb 0 13%,#0000 14%),linear-gradient(135deg,#ffe6ee,#f58ead 52%,#bd3c67);border-radius:90% 10% 85% 15%;animation-name:sakura-fall,sakura-flutter;animation-duration:12s,2.7s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;position:absolute;top:-12%}.sakura--one{--petal-size:.52;--petal-opacity:.58;--drift-x:10vw;animation-duration:17s,3.5s;animation-delay:-13s,-1s;left:2%}.sakura--two{--petal-size:.78;--petal-opacity:.72;--drift-x:22vw;animation-duration:14s,2.9s;animation-delay:-5s,-.8s;left:13%}.sakura--three{--petal-size:.45;--petal-opacity:.55;--drift-x:15vw;animation-duration:18s,3.8s;animation-delay:-10s,-2s;left:28%}.sakura--four{--petal-size:.68;--petal-opacity:.72;--drift-x:25vw;animation-duration:15s,3.1s;animation-delay:-2s,-1.4s;left:41%}.sakura--five{--petal-size:.42;--petal-opacity:.52;--drift-x:12vw;animation-duration:19s,4s;animation-delay:-16s,-.3s;left:57%}.sakura--six{--petal-size:.7;--petal-opacity:.62;--drift-x:18vw;animation-duration:16s,3.2s;animation-delay:-8s,-2.2s;left:69%}.sakura--seven{--petal-size:.5;--petal-opacity:.5;--drift-x:10vw;animation-duration:18s,3.7s;animation-delay:-4s,-1.7s;left:82%}.sakura--eight{--petal-size:.62;--petal-opacity:.56;--drift-x:-8vw;animation-duration:15s,3s;animation-delay:-12s,-.6s;left:92%}.sakura--nine{--petal-size:1.05;--petal-blur:.3px;--petal-glow:16px;--drift-x:28vw;animation-duration:11s,2.3s;animation-delay:-7s,-.7s;left:6%}.sakura--ten{--petal-size:1.42;--petal-blur:.8px;--petal-glow:19px;--drift-x:19vw;animation-duration:13s,2.6s;animation-delay:-1s,-1.1s;left:20%}.sakura--eleven{--petal-size:.92;--petal-glow:15px;--drift-x:31vw;animation-duration:10s,2.1s;animation-delay:-9s,-.4s;left:37%}.sakura--twelve{--petal-size:1.18;--petal-blur:.4px;--petal-glow:17px;--drift-x:24vw;animation-duration:12s,2.5s;animation-delay:-4s,-1.8s;left:51%}.sakura--thirteen{--petal-size:.88;--petal-glow:15px;--drift-x:20vw;animation-duration:11s,2.2s;animation-delay:-6s,-.9s;left:70%}.sakura--fourteen{--petal-size:1.28;--petal-blur:.7px;--petal-glow:20px;--drift-x:-16vw;animation-duration:14s,2.8s;animation-delay:-11s,-1.5s;left:88%}@keyframes sakura-fall{0%{translate:-8vw -8vh;rotate:none}38%{translate:calc(var(--drift-x) * .42) 40vh;rotate:145deg}72%{translate:calc(var(--drift-x) * .74 - 5vw) 78vh;rotate:286deg}to{translate:var(--drift-x) 118vh;rotate:430deg}}@keyframes sakura-flutter{0%,to{transform:scale(var(--petal-size)) skewX(-7deg) rotateY(0deg)}50%{transform:scale(calc(var(--petal-size) * .72), var(--petal-size)) skewX(12deg) rotateY(72deg)}}@media (width<=980px){.sumi-lobby{overflow:auto}.sumi-lobby .lobby-hero{grid-template-columns:1fr;gap:8px;padding:18px clamp(20px,6vw,54px) 44px}.sumi-lobby .lobby-brand-stage{min-height:430px}.sumi-lobby .dankon-brand{width:min(670px,94%);margin-inline:auto;transform:none}.sumi-lobby .lobby-panel-wrap{justify-self:center}}@media (width<=520px){.sumi-lobby .lobby-header{padding:0 16px}.sumi-lobby .lobby-logo-lockup small{display:none}.sumi-lobby .lobby-brand-stage{min-height:330px}.sumi-lobby .lobby-panel-wrap{padding:28px 20px 24px}.sumi-lobby .panel-heading{grid-template-columns:42px auto 42px}.sumi-lobby .panel-heading strong{font-size:25px}}@media (prefers-reduced-motion:reduce){.sakura{animation:none}}.game-shell{--match-ink:#080b10;--match-navy:#0d1826;--match-jade:#075f52;--match-gold:#b6924a;--match-gold-bright:#e2c477;--match-cyan:#36d6e5;background:radial-gradient(circle at 3% 18%, #2c3d8f3d, transparent 19%), radial-gradient(circle at 97% 80%, #0e828f29, transparent 24%), radial-gradient(circle at 50% 0, #2b40535c, transparent 46%), var(--match-ink)}.game-shell .topbar{background:linear-gradient(#090e15fa,#060b11f5);border-bottom:1px solid #b6924a61;height:62px;padding:0 22px}.game-shell .play-layout{height:calc(100vh - 62px)}.game-brand-logo{object-fit:contain;object-position:center;filter:saturate(.95)contrast(1.05)drop-shadow(0 3px 8px #00000061);width:78px;height:48px}.game-shell .brand strong{color:#f1eadc;letter-spacing:.1em;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:17px}.game-shell .table-wrap{background:#080e15;grid-template-rows:minmax(0,1fr) 82px}.game-shell .mahjong-table{background:radial-gradient(ellipse at 50% 45%, #1b997d3d, transparent 42%), linear-gradient(135deg, transparent 49.88%, #0027234d 50%, transparent 50.12%), linear-gradient(45deg, transparent 49.88%, #0027234d 50%, transparent 50.12%), linear-gradient(155deg, #087264 0%, var(--match-jade) 50%, #05493f 100%);border:clamp(12px,1.2vw,18px) solid #151c22;border-image:linear-gradient(135deg,#493920,#0e151c 28%,#70562c 52%,#111a22 76%,#3c2f1e) 1;box-shadow:inset 0 0 0 4px #061218,inset 0 0 95px #00000080,inset 0 24px 54px #36d6e509}.game-shell .mahjong-table:before{border-color:#b6924a33;inset:6.7%;box-shadow:inset 0 0 0 1px #022d288c,inset 0 0 40px #00000017}.game-shell .player{background:radial-gradient(circle at 10% 0,#ffffff0e,#0000 30%),linear-gradient(135deg,#111d2afa,#050c14fa);border:1px solid #b6924aad;border-radius:10px;grid-template-columns:56px minmax(72px,1fr) auto;gap:12px;min-width:250px;min-height:76px;padding:9px 14px 9px 10px;box-shadow:inset 0 0 0 1px #ffffff08,0 12px 25px #00000070}.game-shell .player-avatar{display:none}.game-shell .player .wind{color:#fff6dd;border:1px solid #e2c477a6;border-radius:8px;width:56px;height:56px;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:26px;box-shadow:inset 0 0 16px #ffffff0d,0 4px 10px #0000004d}.game-shell .player-copy{align-content:center;gap:3px;display:grid}.game-shell .player strong{color:#f4efe6;letter-spacing:.04em;font-size:18px;font-weight:800}.game-shell .player small{color:#93a4af;margin:0;font-size:11px}.game-shell .player b{color:#fff8e9;letter-spacing:-.03em;text-align:right;font-variant-numeric:tabular-nums;text-shadow:0 2px 8px #00000052;min-width:108px;font-size:31px;font-weight:850;line-height:1}.game-shell .player--top,.game-shell .player--bottom{min-width:352px}.game-shell .player--top{top:7px}.game-shell .player--bottom{bottom:100px;left:50%;right:auto;transform:translate(-50%)}.game-shell .player--active{border-color:var(--match-cyan);box-shadow:inset 0 0 0 1px #36d6e51f,0 0 0 2px #36d6e51c,0 0 24px #36d6e53d,0 12px 25px #0000006b}.game-shell .player--active:after{content:"";background:linear-gradient(90deg, transparent, var(--match-cyan), transparent);height:2px;animation:1.8s ease-in-out infinite player-turn-glow;position:absolute;bottom:-1px;left:12%;right:12%}@keyframes player-turn-glow{0%,to{opacity:.4;filter:blur(.2px)}50%{opacity:1;filter:blur(1px)}}.game-shell .opponent-hand--top{top:88px}.game-shell .round-center{background:linear-gradient(145deg,#0c1722fa,#040a11fc);border-color:#b6924ab8;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:minmax(174px,1fr) 96px;column-gap:10px;width:300px;min-height:0;padding:12px 14px 13px;display:grid;box-shadow:inset 0 0 0 3px #ffffff05,inset 0 0 0 5px #b6924a0f,0 15px 34px #0000007a}.game-shell .river--top{top:auto;bottom:calc(54% + 94px)}.game-shell .river--bottom{top:calc(46% + 94px);bottom:auto}.game-shell .river--right{direction:ltr;right:calc(50% - 470px)}.game-shell .river--left,.game-shell .river--right{grid-template-rows:none;grid-template-columns:repeat(6,max-content);grid-auto-flow:row}.game-shell .round-heading{grid-column:1/-1;gap:16px}.game-shell .round-heading span{color:var(--match-gold-bright);font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:28px;line-height:1.1}.game-shell .round-heading small{color:#bcc6d2;font-size:14px;font-weight:700}.game-shell .round-grid{grid-area:2/1;gap:8px;margin:8px 0 0}.game-shell .round-grid div{background:#0d1c28e6;border:1px solid #90a8b921;min-height:62px;padding:8px}.game-shell .round-grid small,.game-shell .dora small{color:#aeb9c7;font-size:14px;font-weight:700}.game-shell .round-grid strong{margin-top:4px;font-size:27px;line-height:1}.game-shell .dora{flex-direction:column;grid-area:2/2;align-items:stretch;gap:8px;min-height:62px;margin-top:8px}.game-shell .dora-list{justify-content:flex-end;gap:4px;min-width:0;display:flex}.game-shell .dora .tile{width:29px;height:41px}.game-shell .player-riichi{color:#ffcf59;letter-spacing:.08em;font-weight:900}.game-shell .player--riichi{border-color:#ffcf59;box-shadow:inset 0 0 0 1px #ffcf5938,0 0 0 2px #ff444b26,0 0 30px #ff444b52,0 12px 25px #00000070}.game-shell .riichi-badge{z-index:8;pointer-events:none;color:#fff8d9;letter-spacing:.18em;text-align:center;background:linear-gradient(#d94249,#8f1821);border:1px solid #ffd66c;border-radius:999px;min-width:56px;padding:3px 10px;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:14px;font-weight:900;animation:1.35s ease-in-out infinite alternate riichi-badge-pulse;position:absolute;top:-13px;right:12px;box-shadow:0 4px 14px #00000073,0 0 18px #ff414a59}@keyframes riichi-badge-pulse{0%{filter:brightness(.94);transform:translateY(0)}to{filter:brightness(1.18);transform:translateY(-1px)}}.game-shell .action-rail{background:linear-gradient(#111c28,#071019);border-top-color:#b6924a57}.game-shell .action:hover:not(:disabled),.game-shell .action.active,.game-shell .tile--selected{border-color:var(--match-cyan);box-shadow:0 0 0 2px #36d6e52e,0 0 24px #36d6e547}@media (width<=1180px){.game-shell .player{grid-template-columns:48px minmax(60px,1fr) auto;gap:9px;min-width:218px}.game-shell .player--top,.game-shell .player--bottom{min-width:310px}.game-shell .player .wind{width:48px;height:48px;font-size:23px}.game-shell .player b{min-width:92px;font-size:27px}.game-shell .opponent-hand--left{left:246px}.game-shell .opponent-hand--right{right:246px}.game-shell .round-center{grid-template-columns:minmax(158px,1fr) 90px;column-gap:8px;width:280px;min-height:0;padding:11px 12px 12px}.game-shell .river--top{bottom:calc(54% + 86px)}.game-shell .river--bottom{top:calc(46% + 86px)}.game-shell .round-heading span{font-size:26px}.game-shell .round-heading small{font-size:13px}.game-shell .round-grid div{min-height:58px;padding:8px}.game-shell .round-grid strong{font-size:25px}.game-shell .round-grid small,.game-shell .dora small{font-size:13px}.game-shell .dora .tile{width:27px;height:38px}}@media (prefers-reduced-motion:reduce){.game-shell .player--active:after,.game-shell .riichi-badge{animation:none}.game-shell .win-impact{display:none}.game-shell .result-overlay--win{opacity:1;animation:none}}.game-shell .play-layout.has-chat{background:#070d13;grid-template-columns:minmax(780px,1fr) 340px;gap:0;display:grid}.game-shell .play-layout.has-chat .table-wrap{min-width:0}.game-shell .chat-toggle{color:#e8d39f;background:#b6924a14;border:1px solid #b6924a59;align-items:center;gap:7px;font-weight:800;display:inline-flex}.game-shell .chat-toggle.is-open{color:#82edf4;background:#36d6e51a;border-color:#36d6e58c}.game-shell .chat-toggle span{color:#fff;background:#d14a4f;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:10px;display:inline-grid}.table-chat{z-index:55;background:radial-gradient(circle at 100% 0,#36d6e512,#0000 32%),linear-gradient(#111c28,#070e15);border-left:1px solid #b6924a5c;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;position:relative;box-shadow:-16px 0 38px #00000047}.table-chat__header{border-bottom:1px solid #b6924a40;justify-content:space-between;align-items:center;min-height:66px;padding:11px 14px 10px 16px;display:flex}.table-chat__header>div{grid-template-columns:9px 1fr;column-gap:9px;display:grid}.table-chat__header i{background:#36d6e5;border-radius:50%;grid-row:1/3;align-self:center;width:8px;height:8px;box-shadow:0 0 12px #36d6e5bf}.table-chat__header strong{color:#f4e7c4;font-size:15px}.table-chat__header small{color:#8291a0;margin-top:2px;font-size:10px}.table-chat__header button{color:#cbd4dc;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:7px;width:34px;height:34px;font-size:20px}.table-chat__messages{scrollbar-color:#b6924a66 transparent;flex-direction:column;gap:12px;min-height:0;padding:14px;display:flex;overflow-y:auto}.table-chat__messages article{align-self:flex-start;width:min(92%,285px)}.table-chat__messages article.is-mine{align-self:flex-end}.table-chat__messages article header{grid-template-columns:24px 1fr auto;align-items:center;gap:6px;margin-bottom:5px;display:grid}.table-chat__messages article header .wind{border-radius:5px;width:24px;height:24px;font-size:11px}.table-chat__messages article header strong{color:#dce5eb;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.table-chat__messages article header time{color:#687786;font-size:9px}.table-chat__messages article p{color:#eef3f5;overflow-wrap:anywhere;white-space:pre-wrap;background:#182534;border:1px solid #9bacbc24;border-radius:4px 12px 12px;margin:0;padding:10px 12px;font-size:13px;line-height:1.55}.table-chat__messages article.is-mine p{background:#11353c;border-color:#36d6e540;border-radius:12px 4px 12px 12px}.table-chat__messages article p a{color:#52dce8;text-underline-offset:2px;text-decoration:underline}.table-chat__empty{color:#687786;text-align:center;justify-items:center;gap:5px;margin:auto;display:grid}.table-chat__empty strong{color:#aeb9c2;font-size:13px}.table-chat__empty span{font-size:11px}.table-chat__form{background:#050b11d1;border-top:1px solid #b6924a40;padding:12px}.table-chat__form textarea{resize:none;color:#edf2f4;width:100%;font:inherit;background:#0e1924;border:1px solid #90a2b247;border-radius:8px;outline:0;padding:10px 11px;font-size:13px;line-height:1.45}.table-chat__form textarea:focus{border-color:#36d6e5b8;box-shadow:0 0 0 3px #36d6e517}.table-chat__form>div{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.table-chat__form>div span{color:#687786;font-size:9px}.table-chat__form button{color:#261a09;cursor:pointer;background:linear-gradient(#efcf79,#b9822c);border:1px solid #d8b566;border-radius:7px;min-width:78px;height:34px;font-weight:900}.table-chat__form button:disabled{filter:grayscale(.7);opacity:.45;cursor:not-allowed}.table-chat__form>p{color:#ff8589;margin:7px 0 0;font-size:10px}@media (width<=860px){.game-shell .play-layout.has-chat{display:block}.table-chat{border:1px solid #b6924a73;border-radius:12px;width:min(340px,100vw - 24px);position:fixed;top:66px;bottom:12px;right:12px;overflow:hidden;box-shadow:0 22px 65px #0000009e}}@media (width>=861px){.game-shell .play-layout.has-chat{grid-template-columns:minmax(0,1fr) clamp(280px,27vw,340px);display:grid}.game-shell .play-layout.has-chat .table-wrap{width:100%;min-width:0;overflow:hidden}.game-shell .play-layout.has-chat .mahjong-table{min-width:0}.game-shell .play-layout.has-chat .player--left,.game-shell .play-layout.has-chat .player--right{grid-template-columns:48px minmax(58px,1fr) auto;gap:8px;min-width:205px;padding-right:10px}.game-shell .play-layout.has-chat .player--left{left:10px}.game-shell .play-layout.has-chat .player--right{right:10px}.game-shell .play-layout.has-chat .player--left .wind,.game-shell .play-layout.has-chat .player--right .wind{width:48px;height:48px;font-size:23px}.game-shell .play-layout.has-chat .player--left b,.game-shell .play-layout.has-chat .player--right b{min-width:82px;font-size:25px}}.game-shell .melds--bottom{flex-direction:column-reverse;align-items:flex-end;bottom:14px;right:18px}.game-shell .melds--top{flex-direction:column-reverse;align-items:flex-end;top:108px;left:18px;right:auto}.game-shell .melds--left{flex-direction:row;align-items:flex-end;top:auto;bottom:45px;left:64px}.game-shell .melds--right{flex-direction:row-reverse;align-items:flex-start;top:45px;bottom:auto;right:64px}@media (width<=1180px){.game-shell .melds--bottom{bottom:14px;right:12px}.game-shell .melds--top{top:102px;left:12px;right:auto}.game-shell .melds--left{left:52px}.game-shell .melds--right{top:40px;right:52px}}.game-shell .river--left,.game-shell .river--right{transform-origin:50%;direction:ltr;grid-template-rows:none;grid-template-columns:repeat(6,max-content);grid-auto-rows:max-content;grid-auto-flow:row;width:max-content;top:50%;bottom:auto}.game-shell .river--left{left:calc(50% - 310px);right:auto;transform:translate(-50%,-50%)rotate(90deg)}.game-shell .river--right{left:calc(50% + 310px);right:auto;transform:translate(-50%,-50%)rotate(-90deg)}.game-shell .river--left .tile,.game-shell .river--right .tile{border-bottom-width:3px;width:clamp(26px,2.4vw,34px);height:clamp(37px,3.3vw,47px);margin:0}.game-shell .river--left .tile span,.game-shell .river--right .tile span{transform:none}@media (height<=900px){.game-shell .table-wrap{grid-template-rows:minmax(0,1fr) 72px;min-height:0}.game-shell .mahjong-table{min-height:0}.game-shell .player--top,.game-shell .player--bottom{grid-template-columns:48px minmax(72px,1fr) auto;min-width:320px;min-height:64px;padding:7px 12px 7px 9px}.game-shell .player--top{top:5px}.game-shell .player--bottom{bottom:98px}.game-shell .player--top .wind,.game-shell .player--bottom .wind{width:48px;height:48px;font-size:23px}.game-shell .player--top b,.game-shell .player--bottom b{min-width:96px;font-size:28px}.game-shell .opponent-hand--top{top:75px}.game-shell .river--top{top:128px;bottom:auto}.game-shell .river--bottom{top:auto;bottom:180px}.game-shell .hand{bottom:8px}.game-shell .round-center{box-sizing:border-box;grid-template-columns:minmax(0,1fr) 86px;width:300px;transform:translate(-50%,-50%)scale(.92)}.game-shell .round-heading{min-width:0}.game-shell .round-heading small{white-space:nowrap}.game-shell .dora,.game-shell .dora-list{min-width:0;max-width:100%}.game-shell .dora-list{flex-wrap:wrap;align-content:flex-end}.game-shell .dora .tile{width:25px;height:35px}.game-shell .river--left,.game-shell .river--right{top:50%}.game-shell .melds--top{top:76px}.game-shell .melds--bottom{bottom:14px}}@media (height<=740px){.game-shell .table-wrap{grid-template-rows:minmax(0,1fr) 64px}.game-shell .player--top,.game-shell .player--bottom{grid-template-columns:42px minmax(66px,1fr) auto;min-width:286px;min-height:56px}.game-shell .player--bottom{bottom:86px}.game-shell .player--top .wind,.game-shell .player--bottom .wind{width:42px;height:42px;font-size:21px}.game-shell .player--top b,.game-shell .player--bottom b{min-width:86px;font-size:25px}.game-shell .opponent-hand--top{top:65px}.game-shell .river--top{top:112px}.game-shell .river--bottom{bottom:156px}.game-shell .round-center{transform:translate(-50%,-50%)scale(.82)}.game-shell .river--left,.game-shell .river--right{top:50%}.game-shell .melds--top{top:66px}.game-shell .melds--bottom{bottom:14px}}.game-shell .match-final{z-index:70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(circle at 50% 38%,#e2c47729,#0000 34%),#02080db8;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.game-shell .match-final__glow{aspect-ratio:1;background:repeating-conic-gradient(from 4deg, #e2c47721 0 2deg, transparent 2deg 13deg);border-radius:50%;width:min(720px,80vw);animation:22s linear infinite final-rays;position:absolute;-webkit-mask-image:radial-gradient(circle,#000 0 34%,#0000 69%);mask-image:radial-gradient(circle,#000 0 34%,#0000 69%)}@keyframes final-rays{to{transform:rotate(1turn)}}.game-shell .match-final__card{background:linear-gradient(140deg,#182634fa,#050d15fc);border:1px solid #e2c477d1;border-radius:16px;width:min(680px,100vw - 42px);max-height:calc(100% - 20px);padding:25px 28px 27px;position:relative;overflow:auto;box-shadow:inset 0 0 0 3px #ffffff06,0 26px 90px #000000b3,0 0 42px #e2c4771f}.game-shell .match-final__card>header{justify-items:center;gap:2px;margin-bottom:16px;display:grid}.game-shell .match-final__card>header span{color:var(--match-cyan);letter-spacing:.32em;font-size:10px;font-weight:900}.game-shell .match-final__card>header strong{color:var(--match-gold-bright);letter-spacing:.16em;text-shadow:0 4px 22px #e2c4773d;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(30px,4vw,46px)}.game-shell .match-final__card>header small{color:#aeb9c7;font-weight:800}.game-shell .match-final__standings{gap:7px;margin:0;padding:0;list-style:none;display:grid}.game-shell .match-final__standings li{color:#f5f2eb;background:#ffffff09;border:1px solid #96a9b82e;border-radius:9px;grid-template-columns:62px minmax(100px,1fr) auto 66px;align-items:center;gap:12px;min-height:61px;padding:9px 13px;display:grid}.game-shell .match-final__standings li.is-first{background:linear-gradient(90deg,#b6924a42,#ffffff0b);border-color:#e2c477b8;min-height:76px;box-shadow:inset 4px 0 #e2c477,0 8px 28px #00000038}.game-shell .match-final__standings li.is-you{outline-offset:-2px;outline:2px solid #36d6e566}.game-shell .match-final__rank{color:#c7d1db;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:30px;font-weight:900}.game-shell .is-first .match-final__rank{color:#f2d77f;font-size:42px}.game-shell .match-final__rank small,.game-shell .match-final__standings b small{margin-left:2px;font-size:11px}.game-shell .match-final__standings li>div{gap:2px;display:grid}.game-shell .match-final__standings li>div strong{font-size:17px}.game-shell .match-final__name{align-items:center;gap:10px;min-width:0;display:flex}.game-shell .match-final__champion{flex:none;width:clamp(78px,8vw,108px);height:58px;display:block}.game-shell .match-final__champion img{object-fit:contain;filter:drop-shadow(0 2px 2px #0000008c)drop-shadow(0 0 7px #e2c47742);width:100%;height:100%;display:block}.game-shell .match-final__standings li>div small{color:var(--match-cyan);font-size:10px;font-weight:900}.game-shell .match-final__standings li>b{color:#fff8e9;font-variant-numeric:tabular-nums;font-size:26px}.game-shell .match-final__standings li>em{color:#9babb7;text-align:right;font-size:12px;font-style:normal;font-weight:800}.game-shell .match-final__actions{grid-template-columns:1.4fr 1fr;gap:10px;margin-top:17px;display:grid}.game-shell .match-final__actions button{cursor:pointer;border-radius:9px;min-height:50px;font-size:14px;font-weight:900}.game-shell .match-final__rematch{color:#251808;background:linear-gradient(#f3d476,#b98029);border:1px solid #ffe29a;box-shadow:inset 0 1px #ffffff8c,0 5px #704513}.game-shell--result-preview{background:radial-gradient(circle at 50% 42%,#075f526b,#0000 43%),linear-gradient(145deg,#071018,#0b201f 52%,#05090e);min-height:100svh}.game-shell .match-final__exit{color:#d9e1e7;background:#ffffff0b;border:1px solid #b7c7d266}.game-shell .match-final__actions button:disabled{cursor:wait;filter:grayscale(.7);opacity:.62}@media (width<=1400px),(height<=900px){.game-shell .player--left,.game-shell .player--right{box-sizing:border-box;grid-template-columns:44px minmax(0,1fr) auto;gap:7px;width:clamp(172px,19vw,216px);min-width:0;padding:7px 9px 7px 7px}.game-shell .player--left{left:10px}.game-shell .player--right{right:10px}.game-shell .player--left .wind,.game-shell .player--right .wind{width:44px;height:44px;font-size:21px}.game-shell .player--left strong,.game-shell .player--right strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.game-shell .player--left b,.game-shell .player--right b{min-width:75px;font-size:23px}}@media (width>=861px){.game-shell .play-layout.has-chat{grid-template-columns:minmax(0,1fr) clamp(260px,24vw,320px)}.game-shell .play-layout.has-chat .player--left,.game-shell .play-layout.has-chat .player--right{grid-template-columns:40px minmax(0,1fr) auto;gap:6px;width:clamp(166px,17vw,190px);min-width:0;padding:6px 8px 6px 6px}.game-shell .play-layout.has-chat .player--left .wind,.game-shell .play-layout.has-chat .player--right .wind{width:40px;height:40px;font-size:20px}.game-shell .play-layout.has-chat .player--left b,.game-shell .play-layout.has-chat .player--right b{min-width:67px;font-size:21px}.game-shell .play-layout.has-chat .river--left{left:calc(50% - clamp(188px,22vw,250px))}.game-shell .play-layout.has-chat .river--right{left:calc(50% + clamp(188px,22vw,250px))}}@media (height<=820px){.game-shell .player--top{top:3px}.game-shell .opponent-hand--top{top:64px}.game-shell .river--top{top:112px}.game-shell .river--bottom{top:auto;bottom:150px}.game-shell .player--bottom{bottom:78px}.game-shell .hand{bottom:5px}.game-shell .hand .tile{width:clamp(38px,3.6vw,50px);height:clamp(53px,5vw,67px)}.game-shell .player--top,.game-shell .player--bottom{grid-template-columns:42px minmax(68px,1fr) auto;min-height:54px;padding-block:5px}.game-shell .player--top .wind,.game-shell .player--bottom .wind{width:42px;height:42px}.game-shell .round-center{transform:translate(-50%,-50%)scale(.82)}}@media (height<=690px){.game-shell .river--top{top:100px}.game-shell .river--bottom{bottom:130px}.game-shell .player--bottom{bottom:69px}.game-shell .opponent-hand--top{top:57px}.game-shell .round-center{transform:translate(-50%,-50%)scale(.72)}}@media (width<=720px){.game-shell .match-final__card{padding:20px 16px}.game-shell .match-final__standings li{grid-template-columns:46px minmax(80px,1fr) auto}.game-shell .match-final__standings li>em{display:none}.game-shell .match-final__actions{grid-template-columns:1fr}}.game-shell .topbar{min-width:1240px}.game-shell .round-center,.game-shell .play-layout.has-chat .round-center{transform:translate(-50%,-50%)}.game-shell .melds,.game-shell .play-layout.has-chat .melds{flex-flow:row-reverse;align-items:flex-end;gap:8px;display:flex;transform:none}.game-shell .melds .meld,.game-shell .play-layout.has-chat .melds .meld{flex-flow:row;align-items:flex-end;gap:1px;display:flex}.game-shell .melds--left .tile,.game-shell .melds--right .tile,.game-shell .melds--top .tile,.game-shell .melds--bottom .tile,.game-shell .play-layout.has-chat .melds .tile{width:var(--tile-w);height:var(--tile-h)}.game-shell .player--top,.game-shell .play-layout.has-chat .player--top{top:20px}.game-shell .player--top .riichi-badge,.game-shell .play-layout.has-chat .player--top .riichi-badge{top:-11px}@media (height<=720px){.game-shell .melds--top,.game-shell .play-layout.has-chat .melds--top{gap:3px;top:86px;right:18px}}@media (prefers-reduced-motion:reduce){.game-shell .match-final__glow{animation:none}}.game-shell .table-wrap{container-type:inline-size}.game-shell .opponent-hand--left{left:clamp(8px,1.2cqw,16px)}.game-shell .opponent-hand--right{right:clamp(8px,1.2cqw,16px)}.game-shell .player--left,.game-shell .player--right{grid-template-columns:46px minmax(68px,1fr) 84px;gap:8px;width:clamp(226px,25cqw,260px);min-width:226px;padding:7px 10px 7px 8px;top:28%;transform:translateY(-50%)}.game-shell .player--left strong,.game-shell .player--right strong,.game-shell .play-layout.has-chat .player--left strong,.game-shell .play-layout.has-chat .player--right strong{text-overflow:clip;white-space:nowrap;font-size:clamp(13px,1.4cqw,17px);overflow:visible}@media (width>=861px){.game-shell .play-layout.has-chat .player--left,.game-shell .play-layout.has-chat .player--right{grid-template-columns:42px minmax(66px,1fr) 78px;gap:7px;width:clamp(220px,29cqw,246px);min-width:220px;padding:6px 9px 6px 7px;top:27%}.game-shell .play-layout.has-chat .player--left{left:clamp(52px,6cqw,72px)}.game-shell .play-layout.has-chat .player--right{right:clamp(52px,6cqw,72px)}.game-shell .play-layout.has-chat .player--left .wind,.game-shell .play-layout.has-chat .player--right .wind{width:42px;height:42px;font-size:20px}.game-shell .play-layout.has-chat .player--left b,.game-shell .play-layout.has-chat .player--right b{min-width:78px;font-size:clamp(20px,2.5cqw,25px)}.game-shell .play-layout.has-chat .river--left{left:calc(50% - clamp(142px,18cqw,220px))}.game-shell .play-layout.has-chat .river--right{left:calc(50% + clamp(142px,18cqw,220px))}}@media (height<=690px){.game-shell .player--bottom{bottom:82px}.game-shell .river--bottom{bottom:148px}}.game-shell .player--left,.game-shell .player--right{grid-template-columns:38px minmax(54px,1fr) 70px;gap:6px;width:clamp(188px,21cqw,202px);min-width:188px;min-height:54px;padding:6px 8px 6px 7px}.game-shell .player--left{left:clamp(46px,5cqw,68px)}.game-shell .player--right{right:clamp(46px,5cqw,68px)}.game-shell .player--left .wind,.game-shell .player--right .wind{width:38px;height:38px;font-size:19px}.game-shell .player--left strong,.game-shell .player--right strong{font-size:clamp(13px,1.25cqw,15px)}.game-shell .player--left small,.game-shell .player--right small{font-size:9px}.game-shell .player--left b,.game-shell .player--right b{min-width:70px;font-size:clamp(20px,2cqw,23px)}.game-shell .river--left{left:calc(50% - clamp(140px,17cqw,250px))}.game-shell .river--right{left:calc(50% + clamp(140px,17cqw,250px))}@media (width>=861px){.game-shell .play-layout.has-chat .player--left,.game-shell .play-layout.has-chat .player--right{grid-template-columns:36px minmax(52px,1fr) 66px;gap:5px;width:clamp(182px,24cqw,194px);min-width:182px;padding:5px 7px 5px 6px}.game-shell .play-layout.has-chat .player--left{left:clamp(42px,5cqw,54px)}.game-shell .play-layout.has-chat .player--right{right:clamp(42px,5cqw,54px)}.game-shell .play-layout.has-chat .player--left .wind,.game-shell .play-layout.has-chat .player--right .wind{width:36px;height:36px;font-size:18px}.game-shell .play-layout.has-chat .player--left b,.game-shell .play-layout.has-chat .player--right b{min-width:66px;font-size:clamp(19px,2.3cqw,22px)}.game-shell .play-layout.has-chat .river--left{left:calc(50% - clamp(120px,15cqw,180px))}.game-shell .play-layout.has-chat .river--right{left:calc(50% + clamp(120px,15cqw,180px))}}.game-shell .player,.game-shell .play-layout.has-chat .player{box-sizing:border-box;grid-template-columns:36px minmax(0,1fr) 72px;gap:5px;width:210px;min-width:210px;min-height:52px;padding:6px 7px;overflow:visible}.game-shell .player strong,.game-shell .play-layout.has-chat .player strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.15;overflow:hidden}.game-shell .player small,.game-shell .play-layout.has-chat .player small{text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.1;overflow:hidden}.game-shell .player b,.game-shell .play-layout.has-chat .player b{letter-spacing:-.045em;text-align:right;text-overflow:clip;white-space:nowrap;width:72px;min-width:0;max-width:72px;font-size:19px;line-height:1;overflow:hidden}.game-shell .player--left,.game-shell .play-layout.has-chat .player--left{left:clamp(34px,4cqw,58px)}.game-shell .player--right,.game-shell .play-layout.has-chat .player--right{right:clamp(34px,4cqw,58px)}.game-shell .river--left,.game-shell .play-layout.has-chat .river--left{left:calc(50% - clamp(215px,24cqw,300px));right:auto}.game-shell .river--right,.game-shell .play-layout.has-chat .river--right{left:calc(50% + clamp(215px,24cqw,300px));right:auto}@media (width<=1040px){.game-shell .player,.game-shell .play-layout.has-chat .player{grid-template-columns:34px minmax(0,1fr) 70px;width:202px;min-width:202px;padding-inline:6px}.game-shell .player .wind,.game-shell .play-layout.has-chat .player .wind{width:34px;height:34px;font-size:17px}.game-shell .player b,.game-shell .play-layout.has-chat .player b{width:70px;max-width:70px;font-size:18px}}.game-shell .melds,.game-shell .play-layout.has-chat .melds{gap:0}.game-shell .melds--bottom,.game-shell .play-layout.has-chat .melds--bottom{flex-direction:row-reverse;align-items:flex-end;inset:auto 14px 14px auto;transform:none}.game-shell .melds--bottom .meld,.game-shell .play-layout.has-chat .melds--bottom .meld{flex-direction:row;gap:0}.game-shell .melds--top,.game-shell .play-layout.has-chat .melds--top{flex-direction:column;align-items:flex-start;inset:14px auto auto 18px;transform:rotate(180deg)}.game-shell .melds--top .meld,.game-shell .play-layout.has-chat .melds--top .meld{flex-direction:row}.game-shell .melds--right,.game-shell .play-layout.has-chat .melds--right{flex-direction:row-reverse;align-items:flex-start;inset:14px 18px auto auto;transform:none}.game-shell .melds--left,.game-shell .play-layout.has-chat .melds--left{flex-direction:row;align-items:flex-end;inset:auto auto 14px 18px;transform:none}.game-shell .melds--right .meld,.game-shell .melds--left .meld,.game-shell .play-layout.has-chat .melds--right .meld,.game-shell .play-layout.has-chat .melds--left .meld{flex-direction:column}.game-shell .melds--left .tile,.game-shell .melds--right .tile,.game-shell .play-layout.has-chat .melds--left .tile,.game-shell .play-layout.has-chat .melds--right .tile{width:var(--tile-w);height:var(--tile-h)}.game-shell .player--top .riichi-badge,.game-shell .play-layout.has-chat .player--top .riichi-badge{top:-13px;bottom:auto}@media (width<=720px){.game-shell .player--top,.game-shell .play-layout.has-chat .player--top{left:calc(50% + clamp(44px,10cqw,72px))}.game-shell .player--bottom,.game-shell .play-layout.has-chat .player--bottom{left:calc(50% - clamp(44px,10cqw,72px))}}.game-shell .opponent-hand--top,.game-shell .play-layout.has-chat .opponent-hand--top{top:clamp(10px,4.2vh,48px)}.game-shell .player--top,.game-shell .play-layout.has-chat .player--top{top:clamp(58px,9.4vh,108px);left:calc(50% + clamp(150px,18cqw,270px))}@media (width<=720px){.game-shell .player--top,.game-shell .play-layout.has-chat .player--top{left:calc(50% + clamp(88px,16cqw,126px))}}.game-shell .river--top,.game-shell .play-layout.has-chat .river--top{top:auto;bottom:calc(54% + 134px)}.game-shell .river--bottom,.game-shell .play-layout.has-chat .river--bottom{top:calc(46% + 134px);bottom:auto}@media (height<=900px){.game-shell .river--top,.game-shell .play-layout.has-chat .river--top{top:90px;bottom:auto}.game-shell .river--bottom,.game-shell .play-layout.has-chat .river--bottom{top:auto;bottom:134px}.game-shell .river--top .tile,.game-shell .river--bottom .tile,.game-shell .play-layout.has-chat .river--top .tile,.game-shell .play-layout.has-chat .river--bottom .tile{width:clamp(34px,3vw,44px);height:clamp(47px,4.15vw,60px)}}@media (height<=690px){.game-shell .river--top,.game-shell .play-layout.has-chat .river--top{top:78px}.game-shell .river--bottom,.game-shell .play-layout.has-chat .river--bottom{bottom:118px}}.game-shell .player--top,.game-shell .play-layout.has-chat .player--top{left:calc(50% + clamp(220px,24cqw,360px));right:auto;transform:translate(-50%)}.game-shell .player--bottom,.game-shell .play-layout.has-chat .player--bottom{left:calc(50% - clamp(190px,22cqw,330px));right:auto;transform:translate(-50%)}.game-shell .player--right,.game-shell .play-layout.has-chat .player--right{top:58%}@media (width<=720px){.game-shell .player--top,.game-shell .play-layout.has-chat .player--top{left:calc(50% + clamp(94px,18cqw,132px))}.game-shell .player--bottom,.game-shell .play-layout.has-chat .player--bottom{left:calc(50% - clamp(88px,17cqw,124px))}.game-shell .player--right,.game-shell .play-layout.has-chat .player--right{top:54%}}.game-shell .play-layout,.game-shell .play-layout.has-chat{box-sizing:border-box;grid-template-columns:minmax(1152px,1fr);width:100%;min-width:1180px;height:calc(100vh - 64px);min-height:656px}.game-shell .mahjong-table,.game-shell .play-layout.has-chat .mahjong-table{box-sizing:border-box;width:100%;min-width:1152px;height:auto;min-height:540px;container-type:inline-size}.game-shell .player,.game-shell .play-layout.has-chat .player,.game-shell .player--top,.game-shell .player--right,.game-shell .player--bottom,.game-shell .player--left{box-sizing:border-box;grid-template-rows:20px 12px;grid-template-columns:36px minmax(0,1fr) 72px;align-items:center;gap:2px 5px;width:210px;min-width:210px;max-width:210px;height:52px;min-height:52px;max-height:52px;padding:6px 7px;overflow:visible}.game-shell .player .wind,.game-shell .play-layout.has-chat .player .wind{width:36px;height:36px;font-size:18px}.game-shell .player strong,.game-shell .play-layout.has-chat .player strong{font-size:14px;line-height:20px}.game-shell .player small,.game-shell .play-layout.has-chat .player small{font-size:9px;line-height:12px}.game-shell .player b,.game-shell .play-layout.has-chat .player b{width:72px;min-width:72px;max-width:72px;font-size:19px;line-height:1}.game-shell .player--top,.game-shell .play-layout.has-chat .player--top{inset:102px 6% auto auto;transform:none}.game-shell .player--left,.game-shell .play-layout.has-chat .player--left{inset:32% auto auto 4%;transform:none}.game-shell .player--right,.game-shell .play-layout.has-chat .player--right{inset:62% 4% auto auto;transform:none}.game-shell .player--bottom,.game-shell .play-layout.has-chat .player--bottom{inset:auto auto 104px 6%;transform:none}.game-shell .melds,.game-shell .play-layout.has-chat .melds,.game-shell .melds--top,.game-shell .melds--right,.game-shell .melds--bottom,.game-shell .melds--left{align-items:flex-end;gap:8px;display:flex;transform:none;flex-flow:row-reverse!important}.game-shell .melds .meld,.game-shell .play-layout.has-chat .melds .meld,.game-shell .melds--top .meld,.game-shell .melds--right .meld,.game-shell .melds--bottom .meld,.game-shell .melds--left .meld{align-items:flex-end;gap:1px;display:flex;flex-flow:row!important}.game-shell .melds--top,.game-shell .play-layout.has-chat .melds--top{inset:16px auto auto 18px}.game-shell .melds--right,.game-shell .play-layout.has-chat .melds--right{inset:16px 18px auto auto}.game-shell .melds--bottom,.game-shell .play-layout.has-chat .melds--bottom{inset:auto 18px 14px auto}.game-shell .melds--left,.game-shell .play-layout.has-chat .melds--left{inset:auto auto 14px 18px}.game-shell .melds .tile,.game-shell .play-layout.has-chat .melds .tile{width:var(--tile-w);height:var(--tile-h)}.game-shell{width:100%;min-width:0;min-height:100vh;overflow:hidden}.game-shell .play-layout,.game-shell .play-layout.has-chat{box-sizing:border-box;grid-template-columns:minmax(0,1fr);align-items:stretch;width:100%;min-width:0;height:calc(100vh - 64px);min-height:0}.game-shell .play-layout.has-chat{grid-template-columns:minmax(0,1fr) 320px;min-width:0}.game-shell .table-wrap,.game-shell .play-layout.has-chat .table-wrap{width:auto;min-width:0;height:100%;min-height:0}.game-shell .table-stage{--table-ring-x:clamp(64px, 7vw, 96px);--table-ring-y:clamp(50px, 6.5vh, 70px);background:linear-gradient(90deg,#ffffff0b,#0000 12% 88%,#0000002e),linear-gradient(#4a371f,#281d11);border:4px solid #17130d;min-width:0;min-height:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #cfa65057}.game-shell .table-stage>.mahjong-table,.game-shell .play-layout.has-chat .table-stage>.mahjong-table{inset:var(--table-ring-y) var(--table-ring-x);box-sizing:border-box;width:auto;min-width:0;height:auto;min-height:0;position:absolute;container-type:inline-size}.game-shell .table-stage>.player{box-sizing:border-box;z-index:12;grid-template-rows:20px 12px;grid-template-columns:36px minmax(0,1fr) 72px;align-items:center;gap:2px 5px;width:210px;min-width:210px;max-width:210px;height:52px;min-height:52px;max-height:52px;padding:6px 7px;overflow:visible}.game-shell .table-stage>.player strong{font-size:14px;line-height:20px}.game-shell .table-stage>.player small{font-size:9px;line-height:12px}.game-shell .table-stage>.player b{width:72px;min-width:72px;max-width:72px;font-size:19px;line-height:1}.game-shell .table-stage>.player--top{transform-origin:50%;inset:8px auto auto 50%;transform:translate(-50%)rotate(180deg)}.game-shell .table-stage>.player--left{transform-origin:50%;inset:50% auto auto 8px;transform:translateY(-50%)rotate(90deg)}.game-shell .table-stage>.player--right{transform-origin:50%;inset:50% 8px auto auto;transform:translateY(-50%)rotate(-90deg)}.game-shell .table-stage>.player--bottom{transform-origin:50%;inset:auto auto 8px 50%;transform:translate(-50%)}.game-shell .table-stage .melds,.game-shell .table-stage .melds--top,.game-shell .table-stage .melds--right,.game-shell .table-stage .melds--bottom,.game-shell .table-stage .melds--left{align-items:flex-end;gap:8px;display:flex;transform:none;flex-flow:row-reverse!important}.game-shell .table-stage .melds .meld{align-items:flex-end;gap:1px;display:flex;flex-flow:row!important}.game-shell .table-stage .melds--top{inset:16px 18px auto auto}.game-shell .table-stage .melds--right,.game-shell .table-stage .melds--bottom{inset:auto 18px 16px auto}.game-shell .table-stage .melds--left{inset:auto auto 16px 18px}@media (width<=980px),(height<=720px){.game-shell .table-stage{--table-ring-x:56px;--table-ring-y:45px}.game-shell .table-stage>.player{grid-template-rows:18px 10px;grid-template-columns:30px minmax(0,1fr) 62px;width:178px;min-width:178px;max-width:178px;height:44px;min-height:44px;max-height:44px;padding:4px 6px}.game-shell .table-stage>.player .wind{width:30px;height:30px;font-size:15px}.game-shell .table-stage>.player strong{font-size:12px}.game-shell .table-stage>.player small{font-size:8px}.game-shell .table-stage>.player b{width:62px;min-width:62px;max-width:62px;font-size:16px}}.game-shell .table-stage{--table-ring-x:72px;--table-ring-y:64px}.game-shell .table-stage>.player{border-radius:8px;grid-template-rows:1fr;grid-template-columns:34px minmax(0,1fr) 84px;gap:7px;width:230px;min-width:230px;max-width:230px;height:48px;min-height:48px;max-height:48px;padding:5px 8px}.game-shell .table-stage>.player .wind{width:34px;height:34px;font-size:17px}.game-shell .table-stage>.player .player-copy{white-space:nowrap;align-items:center;min-width:0;display:flex}.game-shell .table-stage>.player .player-copy strong{text-overflow:ellipsis;min-width:0;font-size:15px;line-height:1;overflow:hidden}.game-shell .table-stage>.player .player-copy small{display:none}.game-shell .table-stage>.player b{text-align:right;white-space:nowrap;width:84px;min-width:84px;max-width:84px;font-size:20px;line-height:1}.game-shell .table-stage>.player--top{inset:8px auto auto 50%;transform:translate(-50%)rotate(180deg)}.game-shell .table-stage>.player--bottom{inset:auto auto 8px 50%;transform:translate(-50%)}.game-shell .table-stage>.player--left{inset:50% auto auto -79px;transform:translateY(-50%)rotate(90deg)}.game-shell .table-stage>.player--right{inset:50% -79px auto auto;transform:translateY(-50%)rotate(-90deg)}@media (width<=980px),(height<=720px){.game-shell .table-stage{--table-ring-x:60px;--table-ring-y:54px}.game-shell .table-stage>.player{grid-template-columns:30px minmax(0,1fr) 72px;width:196px;min-width:196px;max-width:196px;height:42px;min-height:42px;max-height:42px;padding:4px 6px}.game-shell .table-stage>.player .wind{width:30px;height:30px;font-size:15px}.game-shell .table-stage>.player .player-copy strong{font-size:13px}.game-shell .table-stage>.player b{width:72px;min-width:72px;max-width:72px;font-size:17px}.game-shell .table-stage>.player--top{top:6px}.game-shell .table-stage>.player--bottom{bottom:6px}.game-shell .table-stage>.player--left{left:-68px}.game-shell .table-stage>.player--right{right:-68px}}.game-shell .table-stage>.player,.game-shell .play-layout.has-chat .table-stage>.player{box-shadow:none;color:#fff7e5;text-shadow:0 1px 2px #000000e0;background:0 0;border:0;border-radius:0}.game-shell .table-stage>.player--active{box-shadow:none;filter:drop-shadow(0 0 5px #3fdae7ad);background:0 0;border:0}.game-shell .table-stage>.player .wind{border:0;border-radius:3px;box-shadow:inset 0 0 0 1px #efd28e61}.game-shell .table-stage>.player--top{top:8px}.game-shell .table-stage>.player--bottom{bottom:8px}.game-shell .table-stage>.player--left{left:-79px}.game-shell .table-stage>.player--right{right:-79px}@media (width<=980px),(height<=720px){.game-shell .table-stage>.player--top{top:6px}.game-shell .table-stage>.player--bottom{bottom:6px}.game-shell .table-stage>.player--left{left:-68px}.game-shell .table-stage>.player--right{right:-68px}}.game-shell{min-width:0;min-height:0;overflow:hidden}.game-shell .topbar{width:100%;min-width:0}.game-shell .play-layout,.game-shell .play-layout.has-chat{width:100%;min-width:0;height:calc(100vh - 64px);min-height:0}.game-shell .play-layout{grid-template-columns:minmax(0,1fr)}.game-shell .table-wrap,.game-shell .play-layout.has-chat .table-wrap,.game-shell .mahjong-table,.game-shell .play-layout.has-chat .mahjong-table{min-width:0;min-height:0}@media (width<=980px),(height<=720px){.game-shell .table-stage>.player--top,.game-shell .play-layout.has-chat .table-stage>.player--top{top:6px!important}.game-shell .table-stage>.player--bottom,.game-shell .play-layout.has-chat .table-stage>.player--bottom{bottom:6px!important}.game-shell .table-stage>.player--left,.game-shell .play-layout.has-chat .table-stage>.player--left{left:-68px!important}.game-shell .table-stage>.player--right,.game-shell .play-layout.has-chat .table-stage>.player--right{right:-68px!important}}.game-shell{--festival-ink:#070b0e;--festival-charcoal:#0d1216;--festival-charcoal-2:#151c20;--festival-wood:#21150f;--festival-wood-light:#3b2518;--festival-gold:#bd8731;--festival-gold-light:#edca73;--festival-vermilion:#9b241f;--festival-vermilion-light:#cf4434;--festival-jade:#07523f;--festival-cyan:#45dce3;--festival-cream:#f7ecd4;color:var(--festival-cream);background:radial-gradient(circle at 16% 6%,#b7261f1c,#0000 19%),linear-gradient(#090d10,#0c1115 54%,#070a0c)}.game-shell .topbar{isolation:isolate;background:linear-gradient(90deg,#97221c47,#0000 23% 76%,#07554433),repeating-linear-gradient(135deg,#ffffff05 0 1px,#0000 1px 9px),linear-gradient(#101417,#080c0f);border-bottom:2px solid #6f4b22;height:68px;min-height:68px;padding:7px clamp(16px,2.4vw,38px);position:relative;overflow:hidden;box-shadow:inset 0 -1px #efc76733,0 8px 22px #0000006b}.game-shell .topbar:before,.game-shell .topbar:after{content:"";z-index:-1;opacity:.72;width:11px;height:11px;position:absolute;transform:rotate(33deg);box-shadow:54px 19px #c74835,112px -5px #d4a448,173px 13px #238b81}.game-shell .topbar:before{top:8px;left:28%}.game-shell .topbar:after{bottom:3px;right:25%;transform:rotate(53deg)scale(.7)}.game-shell .brand{gap:11px}.game-shell .game-brand-logo{object-fit:contain;filter:drop-shadow(0 0 8px #c9312959);width:66px;height:52px}.game-shell .brand strong{color:#f5e5bf;letter-spacing:.12em;text-shadow:0 1px #000,0 0 10px #dcac4c29;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:20px}.game-shell .brand small{color:#c39b51;letter-spacing:.18em;font-size:9px}.game-shell .match-labels{gap:10px}.game-shell .secure-pill{color:#9ef6f4;background:linear-gradient(#0d4645cc,#062326e6);border:1px solid #45dce380;border-radius:999px;min-height:34px;padding:0 14px;box-shadow:inset 0 0 0 1px #ffffff0a,0 0 16px #45dce31a}.game-shell .match-labels>span:not(.secure-pill){color:#d4c29a}.game-shell .top-actions{gap:8px}.game-shell .top-actions button{color:#e9d19a;background:linear-gradient(#181b1b,#0b0f11);border:1px solid #70552c;border-radius:9px;min-height:38px;padding:0 14px;box-shadow:inset 0 1px #ffffff0d,0 4px 10px #0000004d}.game-shell .top-actions .sound-toggle{color:#edcf80}.game-shell .top-actions .bgm-toggle{color:#8ce7e5;border-color:#176d70}.game-shell .top-actions .chat-toggle{color:#c9ffff;background:linear-gradient(#096b70,#06474b);border-color:#158c91}.game-shell .top-actions .chat-toggle.is-open{box-shadow:inset 0 0 0 1px #59e6e8,0 0 14px #45dce32e}.game-shell .top-actions>button:last-child{color:#ffe0c3;background:linear-gradient(#8d2b25,#591815);border-color:#9e4438}.game-shell .play-layout,.game-shell .play-layout.has-chat{background:#0a0d0f;gap:0}.game-shell .play-layout.has-chat{grid-template-columns:minmax(0,1fr) minmax(290px,320px)}.game-shell .table-wrap,.game-shell .play-layout.has-chat .table-wrap{background:#130e0a;padding:10px}.game-shell .table-stage{--table-ring-x:clamp(66px, 6.7vw, 90px);--table-ring-y:clamp(54px, 6.4vh, 68px);background:linear-gradient(135deg,#c7372af5 0 39px,#d09b42 40px 43px,#0000 44px) 0 0/86px 86px no-repeat,linear-gradient(225deg,#c7372af5 0 39px,#d09b42 40px 43px,#0000 44px) 100% 0/86px 86px no-repeat,linear-gradient(45deg,#c7372af5 0 39px,#d09b42 40px 43px,#0000 44px) 0 100%/86px 86px no-repeat,linear-gradient(315deg,#c7372af5 0 39px,#d09b42 40px 43px,#0000 44px) 100% 100%/86px 86px no-repeat,repeating-linear-gradient(90deg,#ffffff05 0 1px,#0000 1px 13px),linear-gradient(#3a2619,#20150f 48%,#17100c);border:5px solid #07090a;border-radius:4px;box-shadow:inset 0 0 0 2px #8e632b,inset 0 0 0 5px #0d0704db,inset 0 0 35px #00000094,0 12px 34px #0000006b}.game-shell .table-stage:before,.game-shell .table-stage:after{content:"";z-index:3;pointer-events:none;opacity:.55;position:absolute}.game-shell .table-stage:before{background:linear-gradient(90deg,#0000,#e0b55e 20% 80%,#0000);height:1px;inset:7px 25% auto;box-shadow:0 calc(100vh - 100px) #e0b55e6b}.game-shell .table-stage:after{background:linear-gradient(#0000,#e0b55e 20% 80%,#0000);width:1px;inset:22% auto 22% 10px;box-shadow:calc(100vw - 52px) 0 #e0b55e6b}.game-shell .table-stage>.mahjong-table,.game-shell .play-layout.has-chat .table-stage>.mahjong-table{background:radial-gradient(circle at 50% 45%,#1b966c29,#0000 44%),repeating-linear-gradient(0deg,#ffffff03 0 1px,#0000 1px 4px),linear-gradient(145deg,#08795d,#07583f 54%,#064632);border:4px solid #090d0d;border-radius:2px;box-shadow:0 0 0 2px #c48c318c,0 0 0 9px #080b0abd,inset 0 0 70px #0000003d,0 14px 28px #0006}.game-shell .table-stage>.player,.game-shell .play-layout.has-chat .table-stage>.player{width:218px;min-width:218px;max-width:218px;height:46px;min-height:46px;max-height:46px;color:var(--festival-cream);text-shadow:0 1px 2px #000;background:linear-gradient(#1c1e1db8,#070a0bcc);border:1px solid #d9aa4e52;border-radius:7px;grid-template-columns:34px minmax(0,1fr) 82px;gap:6px;padding:5px 7px;box-shadow:inset 0 0 0 1px #ffffff06,0 3px 10px #00000057}.game-shell .table-stage>.player .player-avatar{display:none}.game-shell .table-stage>.player .wind{border:1px solid #f1cd7e9e;border-radius:5px;width:32px;height:32px;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:16px;box-shadow:inset 0 0 9px #0003}.game-shell .table-stage>.player .player-copy strong{color:#fff5df;letter-spacing:.03em;font-size:14px}.game-shell .table-stage>.player b{color:#fff8e7;font-size:19px}.game-shell .table-stage>.player--active,.game-shell .play-layout.has-chat .table-stage>.player--active{background:linear-gradient(#0a4c48c7,#061b1fe0);border-color:#45dce3d9;box-shadow:inset 0 0 0 1px #45dce326,0 0 16px #45dce345}.game-shell .table-stage>.player .riichi-badge{color:#fff0cf;background:linear-gradient(#c43a2f,#761a18);border:1px solid #f1c56e;box-shadow:0 3px #4a0b0a,0 0 10px #cf443461}.game-shell .round-center{background:radial-gradient(circle at 82% 15%,#c38f311f,#0000 23%),repeating-radial-gradient(at 50% 118%,#0000 0 13px,#d3a44913 14px 15px,#0000 16px 28px),linear-gradient(155deg,#151b1dfa,#060a0cfa);border:2px solid #a9772e;border-radius:17px;overflow:hidden;box-shadow:inset 0 0 0 1px #f4d1841f,0 18px 38px #0000007a}.game-shell .round-heading span{color:#ebc86f;text-shadow:0 1px #000;font-family:Yu Mincho,Hiragino Mincho ProN,serif}.game-shell .round-heading small,.game-shell .round-grid small,.game-shell .dora small{color:#c7baa0}.game-shell .round-grid div{background:#0510129e;border:1px solid #cfa65040}.game-shell .round-grid strong{color:#fff8e8}.game-shell .tile{background:linear-gradient(145deg,#fffdf4 0 65%,#eee1c9 100%);border-color:#d5c699;box-shadow:inset 0 -3px #bca65e,inset 0 1px #fff,0 4px 8px #00000047}.game-shell .tile--back{background:repeating-linear-gradient(90deg,#c98724 0 3px,#dca640 3px 6px,#b8751c 6px 8px);border-color:#a6691f;box-shadow:inset 0 0 0 2px #f6ca693d,0 4px 8px #0000004d}.game-shell .action-rail{background:radial-gradient(at 50% 140%,#c28f2d24,#0000 52%),repeating-linear-gradient(135deg,#ffffff04 0 1px,#0000 1px 10px),linear-gradient(#12181b,#080c0e);border-top:2px solid #80602d;min-height:70px;padding:10px 16px;box-shadow:inset 0 1px #eeca791f}.game-shell .turn-notice{color:#d9d1c1}.game-shell .pulse-dot{background:var(--festival-cyan);box-shadow:0 0 12px var(--festival-cyan)}.game-shell .action{color:#d7cbb2;background:linear-gradient(#1b2425,#0c1113);border:1px solid #675535;border-radius:8px;box-shadow:inset 0 1px #ffffff0a}.game-shell .action:hover:not(:disabled),.game-shell .action.active{color:#bdf9f6;background:linear-gradient(#0b6464,#073b3f);border-color:#3ebbc0}.game-shell .action.amber{color:#edcb72;border-color:#84652e}.game-shell .action.win{color:#ffb0a5;border-color:#8c3931}.game-shell .discard-button{color:#291907;background:linear-gradient(#f5d773,#bf862b);border:1px solid #ffe39b;border-radius:10px;box-shadow:inset 0 1px #fff5c8,0 4px #714716,0 9px 18px #00000057}.game-shell .discard-button:hover:not(:disabled){filter:brightness(1.07)}.game-shell .table-chat{background:radial-gradient(circle at 100% 0,#96261f1f,#0000 25%),linear-gradient(#10191e,#080d11);border-left:2px solid #765528;box-shadow:inset 1px 0 #ebc77317}.game-shell .table-chat__header{background:linear-gradient(#242b2ab8,#0b111499);border-bottom:1px solid #614722;min-height:68px}.game-shell .table-chat__header i{background:#bb342b;box-shadow:0 0 11px #bb342bb3}.game-shell .table-chat__header strong{color:#f1d899}.game-shell .table-chat__header small{color:#8f9ba0}.game-shell .table-chat__header button{color:#e5b4a6;background:#291514;border-color:#774439}.game-shell .table-chat__empty:before{content:"✿";color:#9b2d27;opacity:.8;margin-bottom:8px;font-size:28px;display:block}.game-shell .table-chat__empty strong{color:#e7d5ae}.game-shell .table-chat__form{background:#070b0dd1;border-top-color:#604622}.game-shell .table-chat__form textarea{color:#f5ead4;background:#0d161b;border-color:#5d4d34}.game-shell .table-chat__form textarea:focus{border-color:#c89139;box-shadow:0 0 0 2px #c8913921}.game-shell .table-chat__form button{color:#fff1d7;background:linear-gradient(#b83a30,#741c19);border:1px solid #dc7b66;box-shadow:0 3px #42100e}@media (width<=1100px),(height<=760px){.game-shell .topbar{height:60px;min-height:60px;padding-block:4px}.game-shell .game-brand-logo{width:55px;height:44px}.game-shell .brand strong{font-size:17px}.game-shell .brand small{font-size:8px}.game-shell .play-layout,.game-shell .play-layout.has-chat{height:calc(100vh - 60px)}.game-shell .play-layout.has-chat{grid-template-columns:minmax(0,1fr) 286px}.game-shell .table-wrap,.game-shell .play-layout.has-chat .table-wrap{padding:7px}.game-shell .table-stage{--table-ring-x:58px;--table-ring-y:50px}.game-shell .table-stage>.player,.game-shell .play-layout.has-chat .table-stage>.player{grid-template-columns:28px minmax(0,1fr) 68px;width:188px;min-width:188px;max-width:188px;height:40px;min-height:40px;max-height:40px;padding:4px 6px}.game-shell .table-stage>.player .wind{width:28px;height:28px;font-size:14px}.game-shell .table-stage>.player .player-copy strong{font-size:12px}.game-shell .table-stage>.player b{width:68px;min-width:68px;max-width:68px;font-size:16px}.game-shell .action-rail{min-height:62px;padding-block:7px}}.game-canvas .table-wrap,.game-canvas .play-layout.has-chat .table-wrap{border:0!important;border-radius:0!important;grid-template-rows:minmax(0,1fr) 72px!important;width:1280px!important;height:720px!important;padding:0!important;display:grid!important;position:absolute!important;inset:0!important;overflow:hidden!important}.game-canvas .table-stage,.game-canvas .play-layout.has-chat .table-stage{--table-ring-x:52px!important;--table-ring-y:48px!important;border-width:0!important;border-radius:0!important;width:1280px!important;height:648px!important;position:relative!important}.game-canvas .table-stage>.mahjong-table,.game-canvas .play-layout.has-chat .table-stage>.mahjong-table{border-radius:8px!important;inset:48px 52px 22px!important}.game-canvas .mahjong-table .round-center,.game-canvas .play-layout.has-chat .mahjong-table .round-center{border-radius:13px!important;grid-template-columns:minmax(0,1fr) 64px!important;column-gap:7px!important;width:220px!important;min-width:220px!important;max-width:220px!important;min-height:142px!important;padding:12px!important}.game-canvas .round-center .dora-list .tile{width:27px!important;height:38px!important}.game-canvas .mahjong-table .hand .tile,.game-canvas .play-layout.has-chat .mahjong-table .hand .tile{border-radius:5px!important;flex:0 0 54px!important;width:54px!important;height:73px!important}.game-canvas .mahjong-table .hand .tile-art svg{width:100%!important;height:100%!important}.game-canvas .table-stage>.player,.game-canvas .play-layout.has-chat .table-stage>.player{grid-template-rows:26px!important;grid-template-columns:26px minmax(0,1fr) 68px!important;width:184px!important;min-width:184px!important;max-width:184px!important;height:36px!important;min-height:36px!important;max-height:36px!important;padding:5px 6px!important}.game-canvas .table-stage>.player .wind{width:26px!important;min-width:26px!important;max-width:26px!important;height:26px!important;min-height:26px!important;max-height:26px!important;font-size:13px!important;line-height:26px!important}.game-canvas .table-stage>.player .player-copy strong{font-size:12px!important}.game-canvas .table-stage>.player>b{width:68px!important;min-width:68px!important;max-width:68px!important;font-size:15px!important}.game-canvas .table-chat,.game-canvas .play-layout.has-chat .table-chat{z-index:60!important;border-left:2px solid #765528!important;width:330px!important;height:666px!important;display:grid!important;position:absolute!important;inset:54px 0 0 auto!important;box-shadow:-18px 0 42px #0000007a!important}@media (width<=1100px),(height<=760px){.game-canvas .topbar{height:54px!important;min-height:54px!important}.game-canvas .play-layout,.game-canvas .play-layout.has-chat{width:1280px!important;min-width:1280px!important;height:720px!important;min-height:720px!important}.game-canvas .table-wrap,.game-canvas .play-layout.has-chat .table-wrap{height:720px!important}.game-canvas .table-stage{--table-ring-x:52px!important;--table-ring-y:48px!important;width:1280px!important;height:648px!important}}.game-shell .table-stage,.game-shell .play-layout.has-chat .table-stage{--table-ring-x:clamp(58px, 5.8vw, 78px);--table-ring-y:clamp(48px, 6.2vh, 64px);overflow:hidden}.game-shell .table-stage>.mahjong-table,.game-shell .play-layout.has-chat .table-stage>.mahjong-table{overflow:hidden;inset:var(--table-ring-y) var(--table-ring-x)!important}.game-shell .table-stage>.player,.game-shell .play-layout.has-chat .table-stage>.player{box-sizing:border-box;grid-template-rows:30px!important;grid-template-columns:30px minmax(0,1fr) 76px!important;align-items:center!important;gap:6px!important;width:clamp(184px,15vw,216px)!important;min-width:clamp(184px,15vw,216px)!important;max-width:clamp(184px,15vw,216px)!important;height:40px!important;min-height:40px!important;max-height:40px!important;padding:5px 7px!important;display:grid!important;overflow:visible!important}.game-shell .table-stage>.player .player-avatar,.game-shell .play-layout.has-chat .table-stage>.player .player-avatar{display:none!important}.game-shell .table-stage>.player .wind,.game-shell .play-layout.has-chat .table-stage>.player .wind{box-sizing:border-box!important;grid-area:1/1!important;place-self:center!important;width:30px!important;min-width:30px!important;max-width:30px!important;height:30px!important;min-height:30px!important;max-height:30px!important;margin:0!important;font-size:15px!important;line-height:30px!important;overflow:hidden!important}.game-shell .table-stage>.player .player-copy,.game-shell .play-layout.has-chat .table-stage>.player .player-copy{grid-area:1/2!important;align-items:center!important;min-width:0!important;display:flex!important;overflow:hidden!important}.game-shell .table-stage>.player .player-copy strong,.game-shell .play-layout.has-chat .table-stage>.player .player-copy strong{text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important;font-size:13px!important;line-height:1!important;overflow:hidden!important}.game-shell .table-stage>.player .player-copy small,.game-shell .play-layout.has-chat .table-stage>.player .player-copy small{display:none!important}.game-shell .table-stage>.player>b,.game-shell .play-layout.has-chat .table-stage>.player>b{box-sizing:border-box!important;text-align:right!important;white-space:nowrap!important;grid-area:1/3!important;width:76px!important;min-width:76px!important;max-width:76px!important;margin:0!important;font-size:17px!important;line-height:1!important;overflow:hidden!important}.game-shell .table-stage>.player--top,.game-shell .play-layout.has-chat .table-stage>.player--top{inset:calc((var(--table-ring-y) - 40px) / 2) auto auto 50%!important;transform:translate(-50%)rotate(180deg)!important}.game-shell .table-stage>.player--bottom,.game-shell .play-layout.has-chat .table-stage>.player--bottom{inset:auto auto calc((var(--table-ring-y) - 40px) / 2) 50%!important;transform:translate(-50%)!important}.game-shell .table-stage>.player--left,.game-shell .play-layout.has-chat .table-stage>.player--left{inset:50% auto auto calc(var(--table-ring-x) / 2)!important;transform:translate(-50%,-50%)rotate(90deg)!important}.game-shell .table-stage>.player--right,.game-shell .play-layout.has-chat .table-stage>.player--right{inset:50% calc(var(--table-ring-x) / 2) auto auto!important;transform:translate(50%,-50%)rotate(-90deg)!important}.game-shell .table-stage>.player .riichi-badge,.game-shell .play-layout.has-chat .table-stage>.player .riichi-badge{min-width:42px!important;padding:2px 5px!important;font-size:11px!important;animation:none!important;inset:50% -47px auto auto!important;transform:translateY(-50%)!important}.game-shell .mahjong-table .round-center,.game-shell .play-layout.has-chat .mahjong-table .round-center{box-sizing:border-box!important;z-index:5!important;width:clamp(236px,23cqw,286px)!important;max-width:286px!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important}.game-shell .mahjong-table .river,.game-shell .play-layout.has-chat .mahjong-table .river{z-index:7!important;grid-template-rows:repeat(3,max-content)!important;grid-template-columns:repeat(6,max-content)!important;grid-auto-flow:row!important;gap:3px!important}.game-shell .mahjong-table .river .tile,.game-shell .play-layout.has-chat .mahjong-table .river .tile,.game-shell .mahjong-table .melds .tile,.game-shell .play-layout.has-chat .mahjong-table .melds .tile{border-bottom-width:3px!important;width:clamp(23px,2.35cqw,32px)!important;height:clamp(32px,3.25cqw,44px)!important;margin:0!important}.game-shell .mahjong-table .river--left .tile,.game-shell .mahjong-table .river--right .tile,.game-shell .play-layout.has-chat .mahjong-table .river--left .tile,.game-shell .play-layout.has-chat .mahjong-table .river--right .tile{width:clamp(23px,2.35cqw,32px)!important;height:clamp(32px,3.25cqw,44px)!important}.game-shell .mahjong-table .river--left .tile span,.game-shell .mahjong-table .river--right .tile span,.game-shell .play-layout.has-chat .mahjong-table .river--left .tile span,.game-shell .play-layout.has-chat .mahjong-table .river--right .tile span{transform:none!important}.game-shell .mahjong-table .melds,.game-shell .play-layout.has-chat .mahjong-table .melds{z-index:8!important;flex-flow:row-reverse!important;align-items:flex-end!important;gap:6px!important;display:flex!important;transform:none!important}.game-shell .mahjong-table .melds .meld,.game-shell .play-layout.has-chat .mahjong-table .melds .meld{flex-flow:row!important;align-items:flex-end!important;gap:1px!important;display:flex!important}.game-shell .mahjong-table .melds--left .tile span,.game-shell .mahjong-table .melds--right .tile span,.game-shell .play-layout.has-chat .mahjong-table .melds--left .tile span,.game-shell .play-layout.has-chat .mahjong-table .melds--right .tile span{transform:none!important}.game-shell .mahjong-table .hand .tile{width:clamp(38px,4.15cqw,58px)!important;height:clamp(52px,5.55cqw,78px)!important}@media (width<=1100px),(height<=760px){.game-shell .table-stage,.game-shell .play-layout.has-chat .table-stage{--table-ring-x:54px;--table-ring-y:46px}.game-shell .table-stage>.player,.game-shell .play-layout.has-chat .table-stage>.player{grid-template-rows:26px!important;grid-template-columns:26px minmax(0,1fr) 64px!important;width:174px!important;min-width:174px!important;max-width:174px!important;height:36px!important;min-height:36px!important;max-height:36px!important;padding:5px!important}.game-shell .table-stage>.player .wind,.game-shell .play-layout.has-chat .table-stage>.player .wind{width:26px!important;min-width:26px!important;max-width:26px!important;height:26px!important;min-height:26px!important;max-height:26px!important;font-size:13px!important;line-height:26px!important}.game-shell .table-stage>.player .player-copy strong,.game-shell .play-layout.has-chat .table-stage>.player .player-copy strong{font-size:11px!important}.game-shell .table-stage>.player>b,.game-shell .play-layout.has-chat .table-stage>.player>b{width:64px!important;min-width:64px!important;max-width:64px!important;font-size:14px!important}.game-shell .table-stage>.player--top,.game-shell .play-layout.has-chat .table-stage>.player--top{top:calc((var(--table-ring-y) - 36px) / 2)!important}.game-shell .table-stage>.player--bottom,.game-shell .play-layout.has-chat .table-stage>.player--bottom{bottom:calc((var(--table-ring-y) - 36px) / 2)!important}.game-shell .mahjong-table .river--top,.game-shell .play-layout.has-chat .mahjong-table .river--top{bottom:calc(50% + 92px)!important}.game-shell .mahjong-table .river--bottom,.game-shell .play-layout.has-chat .mahjong-table .river--bottom{top:calc(50% + 92px)!important}.game-shell .mahjong-table .river--left,.game-shell .play-layout.has-chat .mahjong-table .river--left{right:calc(50% + 142px)!important}.game-shell .mahjong-table .river--right,.game-shell .play-layout.has-chat .mahjong-table .river--right{left:calc(50% + 142px)!important}}.game-shell .mahjong-table .melds,.game-shell .play-layout.has-chat .mahjong-table .melds{--meld-tile-w:clamp(23px, 2.35cqw, 32px);--meld-tile-h:clamp(32px, 3.25cqw, 44px);flex-flow:row-reverse!important;align-items:flex-end!important;gap:7px!important;display:flex!important;transform:none!important}.game-shell .mahjong-table .melds .meld,.game-shell .play-layout.has-chat .mahjong-table .melds .meld{min-width:max-content;flex-flow:row!important;align-items:flex-end!important;gap:1px!important;display:flex!important}.game-shell .mahjong-table .meld-tile-slot,.game-shell .play-layout.has-chat .mahjong-table .meld-tile-slot,.meld-picker .meld-tile-slot{width:var(--meld-tile-w,32px);height:var(--meld-tile-h,44px);flex:none;display:inline-block;position:relative}.game-shell .mahjong-table .meld-tile-slot--sideways,.game-shell .play-layout.has-chat .mahjong-table .meld-tile-slot--sideways,.meld-picker .meld-tile-slot--sideways{width:var(--meld-tile-h,44px);height:var(--meld-tile-w,32px)}.game-shell .mahjong-table .meld-tile-slot>.tile,.game-shell .play-layout.has-chat .mahjong-table .meld-tile-slot>.tile,.meld-picker .meld-tile-slot>.tile{transform-origin:50%;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:var(--meld-tile-w,32px)!important;height:var(--meld-tile-h,44px)!important;margin:0!important}.game-shell .mahjong-table .meld-tile-slot--sideways>.tile,.game-shell .play-layout.has-chat .mahjong-table .meld-tile-slot--sideways>.tile,.meld-picker .meld-tile-slot--sideways>.tile{transform:translate(-50%,-50%)rotate(90deg)!important}.game-shell .mahjong-table .melds--bottom,.game-shell .play-layout.has-chat .mahjong-table .melds--bottom{inset:auto 14px 10px auto!important}.game-shell .mahjong-table .melds--left,.game-shell .play-layout.has-chat .mahjong-table .melds--left{inset:auto auto 10px 14px!important}.game-shell .mahjong-table .melds--top,.game-shell .play-layout.has-chat .mahjong-table .melds--top{inset:10px auto auto 14px!important}.game-shell .mahjong-table .melds--right,.game-shell .play-layout.has-chat .mahjong-table .melds--right{inset:10px 14px auto auto!important}.game-shell .mahjong-table .tile,.game-shell .play-layout.has-chat .mahjong-table .tile{box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;padding:0!important}.game-shell .mahjong-table .tile:after,.game-shell .play-layout.has-chat .mahjong-table .tile:after{content:none!important}.game-shell .mahjong-table .tile-art svg,.game-shell .play-layout.has-chat .mahjong-table .tile-art svg{filter:drop-shadow(0 4px 3px #00000042)}.game-shell .mahjong-table .river,.game-shell .play-layout.has-chat .mahjong-table .river{--river-tile-w:clamp(22px, 2.15cqw, 30px);--river-tile-h:clamp(31px, 3cqw, 42px);place-items:center!important}.game-shell .mahjong-table .river-tile-slot,.game-shell .play-layout.has-chat .mahjong-table .river-tile-slot{width:var(--river-tile-w);height:var(--river-tile-h);display:block;position:relative}.game-shell .mahjong-table .river-tile-slot>.tile,.game-shell .play-layout.has-chat .mahjong-table .river-tile-slot>.tile{transform-origin:50%;position:absolute;inset:50% auto auto 50%;width:var(--river-tile-w)!important;height:var(--river-tile-h)!important;margin:0!important;transform:translate(-50%,-50%)!important}.game-shell .mahjong-table .river-tile-slot--sideways>.tile,.game-shell .play-layout.has-chat .mahjong-table .river-tile-slot--sideways>.tile{transform:translate(-50%,-50%)rotate(90deg)!important}.game-shell .mahjong-table .melds--left,.game-shell .mahjong-table .melds--right,.game-shell .play-layout.has-chat .mahjong-table .melds--left,.game-shell .play-layout.has-chat .mahjong-table .melds--right{writing-mode:horizontal-tb!important;align-items:center!important;max-width:none!important;max-height:calc(50% - 22px)!important;display:flex!important}.game-shell .mahjong-table .melds--left,.game-shell .play-layout.has-chat .mahjong-table .melds--left{flex-flow:column-reverse!important}.game-shell .mahjong-table .melds--right,.game-shell .play-layout.has-chat .mahjong-table .melds--right{flex-flow:column!important}.game-shell .mahjong-table .melds--left .meld,.game-shell .mahjong-table .melds--right .meld,.game-shell .play-layout.has-chat .mahjong-table .melds--left .meld,.game-shell .play-layout.has-chat .mahjong-table .melds--right .meld{min-height:max-content;flex-flow:column!important;align-items:center!important;min-width:0!important;display:flex!important}.game-shell .mahjong-table .melds--left .meld-tile-slot,.game-shell .mahjong-table .melds--right .meld-tile-slot,.game-shell .play-layout.has-chat .mahjong-table .melds--left .meld-tile-slot,.game-shell .play-layout.has-chat .mahjong-table .melds--right .meld-tile-slot{width:var(--meld-tile-h,44px)!important;height:var(--meld-tile-w,32px)!important}.game-shell .mahjong-table .melds--left .meld-tile-slot--sideways,.game-shell .mahjong-table .melds--right .meld-tile-slot--sideways,.game-shell .play-layout.has-chat .mahjong-table .melds--left .meld-tile-slot--sideways,.game-shell .play-layout.has-chat .mahjong-table .melds--right .meld-tile-slot--sideways{width:var(--meld-tile-w,32px)!important;height:var(--meld-tile-h,44px)!important}.game-shell .mahjong-table .melds--left .meld-tile-slot>.tile,.game-shell .play-layout.has-chat .mahjong-table .melds--left .meld-tile-slot>.tile{transform:translate(-50%,-50%)rotate(90deg)!important}.game-shell .mahjong-table .melds--right .meld-tile-slot>.tile,.game-shell .play-layout.has-chat .mahjong-table .melds--right .meld-tile-slot>.tile{transform:translate(-50%,-50%)rotate(-90deg)!important}.game-shell .mahjong-table .melds--left .meld-tile-slot--sideways>.tile,.game-shell .play-layout.has-chat .mahjong-table .melds--left .meld-tile-slot--sideways>.tile{transform:translate(-50%,-50%)rotate(180deg)!important}.game-shell .mahjong-table .melds--right .meld-tile-slot--sideways>.tile,.game-shell .play-layout.has-chat .mahjong-table .melds--right .meld-tile-slot--sideways>.tile{transform:translate(-50%,-50%)rotate(0)!important}.game-shell .mahjong-table .hand,.game-shell .play-layout.has-chat .mahjong-table .hand{bottom:5px!important}.game-shell .mahjong-table .hand .tile,.game-shell .play-layout.has-chat .mahjong-table .hand .tile{width:clamp(36px,3.85cqw,54px)!important;height:clamp(50px,5.2cqw,73px)!important}.game-shell .mahjong-table .opponent-hand--top,.game-shell .play-layout.has-chat .mahjong-table .opponent-hand--top{top:5px!important}.game-shell .mahjong-table .opponent-hand--top .tile,.game-shell .play-layout.has-chat .mahjong-table .opponent-hand--top .tile{width:clamp(24px,2.5cqw,34px)!important;height:clamp(34px,3.45cqw,47px)!important}.game-shell .mahjong-table .opponent-hand--left,.game-shell .play-layout.has-chat .mahjong-table .opponent-hand--left{left:clamp(62px,6.3cqw,86px)!important}.game-shell .mahjong-table .opponent-hand--right,.game-shell .play-layout.has-chat .mahjong-table .opponent-hand--right{right:clamp(62px,6.3cqw,86px)!important}.game-shell .mahjong-table .melds--left,.game-shell .play-layout.has-chat .mahjong-table .melds--left{max-height:calc(100% - 20px)!important;inset:auto auto 10px clamp(8px,1.2cqw,16px)!important}.game-shell .mahjong-table .melds--right,.game-shell .play-layout.has-chat .mahjong-table .melds--right{max-height:calc(100% - 20px)!important;inset:10px clamp(8px,1.2cqw,16px) auto auto!important}.game-shell .mahjong-table .melds--left[data-meld-count="3"],.game-shell .mahjong-table .melds--left[data-meld-count="4"],.game-shell .mahjong-table .melds--right[data-meld-count="3"],.game-shell .mahjong-table .melds--right[data-meld-count="4"],.game-shell .play-layout.has-chat .mahjong-table .melds--left[data-meld-count="3"],.game-shell .play-layout.has-chat .mahjong-table .melds--left[data-meld-count="4"],.game-shell .play-layout.has-chat .mahjong-table .melds--right[data-meld-count="3"],.game-shell .play-layout.has-chat .mahjong-table .melds--right[data-meld-count="4"]{--meld-tile-w:clamp(23px, 2.15cqw, 29px);--meld-tile-h:clamp(32px, 2.95cqw, 40px);gap:3px!important}.game-shell .mahjong-table .tile--claimed,.game-shell .play-layout.has-chat .mahjong-table .tile--claimed{z-index:12;filter:drop-shadow(0 0 8px #ff5762)drop-shadow(0 0 18px #ff3e4de6);animation:.56s ease-in-out infinite alternate claimed-target-flash}@keyframes claimed-target-flash{0%{filter:drop-shadow(0 0 5px #ff5964)drop-shadow(0 0 10px #ff44529e)}to{filter:drop-shadow(0 0 9px #fff0b5)drop-shadow(0 0 24px #ff394c)}}.game-shell .turn-notice--call-ready{color:#fff1b0;text-shadow:0 0 12px #ffcb438c}.game-shell .mahjong-table .hand .tile--dora,.game-shell .play-layout.has-chat .mahjong-table .hand .tile--dora{isolation:isolate}.game-shell .mahjong-table .hand .tile-dora-shine,.game-shell .play-layout.has-chat .mahjong-table .hand .tile-dora-shine{z-index:4;pointer-events:none;border-radius:5px;display:block;position:absolute;inset:3px 4px 7px;overflow:hidden}.game-shell .mahjong-table .hand .tile-dora-shine:before,.game-shell .play-layout.has-chat .mahjong-table .hand .tile-dora-shine:before{content:"";opacity:0;filter:blur(.4px);background:linear-gradient(90deg,#0000,#ffdd762e 24%,#fffbdceb 51%,#ffd55133 76%,#0000);width:46%;animation:3.6s ease-in-out infinite hand-dora-glint;position:absolute;top:-18%;bottom:-18%;left:-62%;transform:skew(-18deg)}@keyframes hand-dora-glint{0%,70%{opacity:0;transform:translate(0)skew(-18deg)}74%{opacity:.9}87%{opacity:.9;transform:translate(355%)skew(-18deg)}91%,to{opacity:0;transform:translate(355%)skew(-18deg)}}@media (prefers-reduced-motion:reduce){.game-shell .mahjong-table .hand .tile-dora-shine:before,.game-shell .play-layout.has-chat .mahjong-table .hand .tile-dora-shine:before{animation:none}.game-shell .mahjong-table .hand .tile--dora .tile-art svg,.game-shell .play-layout.has-chat .mahjong-table .hand .tile--dora .tile-art svg{filter:drop-shadow(0 0 5px #ffd2528c)}}.game-shell .turn-notice--ron-ready{color:#fff;text-shadow:0 0 14px #ff4048e6}.game-shell .action--ready{animation:.72s ease-in-out infinite alternate callable-action-pulse;position:relative;overflow:visible;color:#fff7c8!important;background:linear-gradient(#826419,#463008)!important;border-color:#ffe177!important;box-shadow:0 0 0 2px #ffd75747,0 0 18px #ffbf3080!important}.game-shell .action--ready-win{background:linear-gradient(#a42e2e,#5d1418)!important;border-color:#ff8b82!important;box-shadow:0 0 0 2px #ff68654d,0 0 22px #ff3641ad!important}.game-shell .action--ready small{letter-spacing:.04em;margin-top:1px;font-size:8px;line-height:1;display:block}@keyframes callable-action-pulse{0%{filter:brightness();transform:translateY(0)}to{filter:brightness(1.22);transform:translateY(-2px)}}.game-shell .result-overlay{max-height:calc(100% - 28px);overflow-y:auto}.result-yaku{text-align:left;background:#ffffff09;border:1px solid #ebc66c61;border-radius:11px;overflow:hidden}.result-yaku header{color:#f2d37d;border-bottom:1px solid #ebc66c3d;justify-content:space-between;align-items:center;gap:16px;padding:9px 13px;display:flex}.result-yaku header span{color:#fff4d8;font-weight:900}.result-yaku ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;padding:1px;list-style:none;display:grid}.result-yaku li{color:#f4f0e7;background:#040c1294;justify-content:space-between;gap:12px;padding:8px 11px;font-size:14px;font-weight:800;display:flex}.result-yaku li b{color:#f2c95f;white-space:nowrap}@media (height<=760px){.game-shell .result-overlay{gap:9px;padding-block:16px}.result-yaku li{padding-block:5px}}.limit-cut-in{z-index:27;pointer-events:none;animation:1.82s ease-out both limit-cutin-stage;position:absolute;inset:0;overflow:hidden}.limit-cut-in__flash{opacity:0;background:radial-gradient(circle at 70% 48%,#fff6afe6,#7358ff47 17%,#0000 45%);animation:.52s ease-out .34s both limit-cutin-flash;position:absolute;inset:0}.limit-cut-in__band{background:linear-gradient(102deg,#04070dfc 0 32%,#130811f7 55%,#04070efc 100%);border-block:2px solid #ffdf7ee6;width:116%;height:clamp(220px,34%,340px);animation:1.72s cubic-bezier(.19,.74,.22,1) both limit-cutin-sweep;position:absolute;top:27%;left:-8%;overflow:hidden;transform:translate(-115%)rotate(-5deg);box-shadow:0 0 0 3px #5f2d196b,0 20px 55px #000000b8,0 0 42px #e8372a38}.limit-cut-in__band:before,.limit-cut-in__band:after{content:"";background:linear-gradient(98deg,#0000 4%,#a30711b3 19%,#0000 37%),repeating-linear-gradient(101deg,#0000 0 38px,#ffffff0e 40px 42px);position:absolute;inset:-34% -5%;transform:skew(-18deg)}.limit-cut-in__band:after{filter:blur(2px)drop-shadow(0 0 14px #ee2930);background:linear-gradient(90deg,#0000,#fff6c3 16%,#d91f24 57%,#0000);height:14px;animation:.72s ease-out .24s both limit-cutin-slash;inset:auto -5% 8% 18%}.limit-cut-in__brush{z-index:1;opacity:.72;clip-path:polygon(0 42%,14% 18%,33% 46%,59% 0,81% 52%,100% 30%,100% 74%,76% 58%,50% 100%,29% 57%,0 88%);background:linear-gradient(90deg,#0000 1%,#d41620 12%,#f4d070 44%,#0000 88%);width:100%;height:9px;position:absolute;left:0}.limit-cut-in__brush--top{top:12%}.limit-cut-in__brush--bottom{bottom:11%;transform:scaleX(-1)}.limit-cut-in__brand{z-index:3;opacity:0;filter:drop-shadow(0 0 3px #fff)drop-shadow(0 0 22px #d31c24db);width:clamp(230px,27vw,420px);animation:.58s cubic-bezier(.15,.85,.22,1.18) .22s both limit-cutin-brand;position:absolute;top:50%;left:13%;transform:translateY(-50%)rotate(4deg)scale(.7)}.limit-cut-in__brand img{width:100%;height:auto;display:block}.limit-cut-in__copy{z-index:4;color:#fff7da;text-shadow:0 3px #25080a,0 0 15px #ffc54d6b;min-width:270px;display:grid;position:absolute;top:50%;left:49%;transform:translateY(-50%)}.limit-cut-in__copy span{color:#f4e6bd;letter-spacing:.16em;font-size:clamp(17px,1.5vw,24px);font-weight:900}.limit-cut-in__copy strong{color:#f5d273;letter-spacing:.08em;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(58px,7vw,106px);line-height:.95}.limit-cut-in__copy b{letter-spacing:.04em;margin-top:7px;font-size:clamp(24px,2.8vw,42px);line-height:1}.limit-cut-in__orb{z-index:2;aspect-ratio:1;opacity:0;background:radial-gradient(circle,#48138640 0 20%,#2a36c3e0 23%,#5f169f9e 48%,#0000 71%);border:2px solid #a688ffe6;border-radius:50%;width:clamp(150px,18vw,250px);animation:.55s cubic-bezier(.12,.82,.2,1.2) .42s both limit-cutin-orb;position:absolute;top:50%;right:12%;transform:translateY(-50%)scale(.2);box-shadow:0 0 18px #fff,0 0 42px #653bd7,inset 0 0 38px #26106d}.limit-cut-in__orb:before,.limit-cut-in__orb:after{content:"";border:2px solid #dfcfffa6;border-radius:50%;position:absolute;inset:11%}.limit-cut-in__orb:after{border-radius:18%;inset:24%;transform:rotate(45deg)}.limit-cut-in__tile{z-index:5;opacity:0;animation:.54s cubic-bezier(.15,.86,.18,1.25) .5s both limit-cutin-tile;position:absolute;top:50%;right:calc(12% + clamp(25px,4vw,58px));transform:translateY(-50%)rotate(8deg)scale(.35)}.limit-cut-in__tile .tile{pointer-events:none;border-color:#fff0a4;width:clamp(82px,8vw,122px);height:clamp(112px,11vw,166px);box-shadow:0 0 0 4px #ffee8eb3,0 0 34px #fff0a5,0 18px 34px #000000b8}.limit-cut-in__bolt{z-index:4;clip-path:polygon(45% 0,70% 0,53% 38%,80% 38%,34% 100%,47% 55%,18% 55%);filter:drop-shadow(0 0 6px #fff)drop-shadow(0 0 18px #ffd22e);opacity:0;background:linear-gradient(90deg,#0000,#fff 35%,#ffd952 57%,#0000);width:48px;height:150%;animation:.45s steps(2,end) .45s both limit-cutin-bolt;position:absolute;top:-25%;right:18%}.limit-cut-in__bolt--two{animation-delay:.58s;right:9%;transform:scaleX(-1)rotate(10deg)}.result-overlay--limit{animation-delay:1.62s}@keyframes limit-cutin-sweep{0%{transform:translate(-115%)rotate(-5deg)}18%,76%{transform:translate(0)rotate(-5deg)}to{transform:translate(115%)rotate(-5deg)}}@keyframes limit-cutin-stage{0%,91%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes limit-cutin-flash{0%{opacity:0;transform:scale(.5)}38%{opacity:1}to{opacity:0;transform:scale(1.22)}}@keyframes limit-cutin-slash{0%{opacity:0;transform:translate(-65%)scaleX(.2)}38%{opacity:1}to{opacity:.15;transform:translate(20%)scaleX(1.2)}}@keyframes limit-cutin-brand{0%{opacity:0;transform:translateY(-50%)translate(-65px)rotate(4deg)scale(.7)}to{opacity:1;transform:translateY(-50%)rotate(4deg)scale(1)}}@keyframes limit-cutin-orb{0%{opacity:0;transform:translateY(-50%)scale(.2)rotate(-35deg)}to{opacity:1;transform:translateY(-50%)scale(1)rotate(0)}}@keyframes limit-cutin-tile{0%{opacity:0;transform:translateY(-50%)rotate(18deg)scale(.35)}to{opacity:1;transform:translateY(-50%)rotate(8deg)scale(1)}}@keyframes limit-cutin-bolt{0%,to{opacity:0}25%,55%{opacity:1}40%,72%{opacity:.16}}@media (width<=900px),(height<=650px){.limit-cut-in__band{height:220px;top:29%}.limit-cut-in__brand{width:230px;left:9%}.limit-cut-in__copy{min-width:210px;left:42%}.limit-cut-in__copy strong{font-size:58px}.limit-cut-in__orb{width:150px;right:5%}.limit-cut-in__tile{right:calc(5% + 34px)}}@media (prefers-reduced-motion:reduce){.limit-cut-in,.limit-cut-in__flash,.limit-cut-in__band,.limit-cut-in__brand,.limit-cut-in__orb,.limit-cut-in__tile,.limit-cut-in__bolt,.limit-cut-in__band:after{animation-duration:.01ms!important;animation-delay:0s!important}.result-overlay--limit{animation-delay:0s}}.cutin-preview{color:#b9c6d3;text-align:center;background:#07111d;place-content:center;gap:16px;min-height:100vh;padding:24px;display:grid}.cutin-preview__table{aspect-ratio:16/10;background:linear-gradient(45deg,#0000 49.85%,#003f3a80 50%,#0000 50.15%),linear-gradient(-45deg,#0000 49.85%,#003f3a80 50%,#0000 50.15%),radial-gradient(circle at 50% 48%,#12816f,#075e54 72%,#06483f);border:10px solid #302719;width:min(1180px,100vw - 48px);position:relative;overflow:hidden;box-shadow:0 26px 80px #00000080,inset 0 0 90px #0000002e}.cutin-preview__wall{background:repeating-linear-gradient(90deg,#d8972d 0 35px,#ab701e 36px 39px);border-radius:4px;position:absolute;box-shadow:0 5px 10px #00000059}.cutin-preview__wall--top{width:38%;height:36px;top:7%;left:31%}.cutin-preview__wall--left{width:36px;height:38%;top:32%;left:7%;transform:rotate(90deg)}.cutin-preview__wall--right{width:36px;height:38%;top:32%;right:7%;transform:rotate(90deg)}.cutin-preview__center{color:#e9c768;background:#07131f;border:2px solid #8a6a2a;border-radius:12px;padding:22px 42px;font:900 34px/1 Yu Mincho,serif;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cutin-preview>p{margin:0;font-size:13px}.game-shell .mahjong-table,.game-shell .play-layout.has-chat .mahjong-table{--river-tile-w:clamp(22px, 2.15cqw, 30px);--river-tile-h:clamp(31px, 3cqw, 42px);--river-gap:3px;--river-block-h:calc(var(--river-tile-h) * 3 + var(--river-gap) * 2);container-type:size!important}.game-shell .mahjong-table .round-center,.game-shell .play-layout.has-chat .mahjong-table .round-center{grid-template-columns:minmax(0,1fr) minmax(72px,82px)!important;column-gap:10px!important;width:clamp(250px,24cqw,300px)!important;min-width:250px!important;max-width:300px!important;overflow:visible!important}.game-shell .mahjong-table .round-heading,.game-shell .mahjong-table .round-grid,.game-shell .mahjong-table .round-grid>div,.game-shell .mahjong-table .dora{min-width:0!important}.game-shell .mahjong-table .round-heading small,.game-shell .mahjong-table .round-grid small,.game-shell .mahjong-table .dora small{writing-mode:horizontal-tb!important;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important}.game-shell .mahjong-table .round-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.game-shell .mahjong-table .dora{grid-column:2!important;overflow:visible!important}.game-shell .mahjong-table .dora-list{flex-wrap:nowrap!important;justify-content:flex-start!important;align-items:flex-start!important;min-width:30px!important;display:flex!important;overflow:visible!important}.game-shell .mahjong-table .river,.game-shell .play-layout.has-chat .mahjong-table .river{gap:var(--river-gap)!important;grid-template-rows:repeat(3,max-content)!important;grid-template-columns:repeat(6,max-content)!important;grid-auto-flow:row!important}.game-shell .mahjong-table .river-tile-slot,.game-shell .play-layout.has-chat .mahjong-table .river-tile-slot{width:var(--river-tile-w)!important;height:var(--river-tile-h)!important}.game-shell .mahjong-table .river-tile-slot--sideways,.game-shell .play-layout.has-chat .mahjong-table .river-tile-slot--sideways{width:var(--river-tile-h)!important;height:var(--river-tile-w)!important}.game-shell .mahjong-table .river-tile-slot>.tile,.game-shell .play-layout.has-chat .mahjong-table .river-tile-slot>.tile{width:var(--river-tile-w)!important;height:var(--river-tile-h)!important}.game-shell .mahjong-table .river--top,.game-shell .play-layout.has-chat .mahjong-table .river--top{inset:clamp(92px,13cqh,112px) auto auto 50%!important;transform:translate(-50%)rotate(180deg)!important}.game-shell .mahjong-table .river--bottom,.game-shell .play-layout.has-chat .mahjong-table .river--bottom{inset:auto auto clamp(120px,18cqh,146px) 50%!important;transform:translate(-50%)!important}.game-shell .mahjong-table .river--left,.game-shell .play-layout.has-chat .mahjong-table .river--left{inset:50% calc(50% + 166px) auto auto!important;transform:translateY(-50%)rotate(90deg)!important}.game-shell .mahjong-table .river--right,.game-shell .play-layout.has-chat .mahjong-table .river--right{inset:50% auto auto calc(50% + 166px)!important;transform:translateY(-50%)rotate(-90deg)!important}.game-shell .mahjong-table .hand,.game-shell .play-layout.has-chat .mahjong-table .hand{z-index:6!important;bottom:5px!important;left:50%!important}.game-canvas{width:1280px!important;height:720px!important}.game-canvas .topbar{z-index:40!important;width:1280px!important;height:54px!important;min-height:54px!important;padding:0 18px!important;position:absolute!important;inset:0 0 auto!important}.game-canvas .table-wrap,.game-canvas .play-layout.has-chat .table-wrap{grid-template-rows:minmax(0,1fr) 72px!important;width:1280px!important;min-width:1280px!important;height:720px!important;min-height:720px!important;padding:0!important;display:grid!important;position:absolute!important;inset:0!important;overflow:hidden!important}.game-canvas .table-stage,.game-canvas .play-layout.has-chat .table-stage{--table-ring-x:52px!important;--table-ring-y:48px!important;width:1280px!important;min-width:1280px!important;height:648px!important;min-height:648px!important}.game-canvas .mahjong-table .round-center,.game-canvas .play-layout.has-chat .mahjong-table .round-center{grid-template-columns:minmax(0,1fr) 64px!important;column-gap:7px!important;width:220px!important;min-width:220px!important;max-width:220px!important;min-height:142px!important;padding:12px!important;overflow:hidden!important}.game-canvas .mahjong-table .river,.game-canvas .play-layout.has-chat .mahjong-table .river{--river-tile-w:31px!important;--river-tile-h:43px!important;--river-gap:3px!important}.game-canvas .mahjong-table .river-tile-slot,.game-canvas .play-layout.has-chat .mahjong-table .river-tile-slot,.game-canvas .mahjong-table .river-tile-slot>.tile,.game-canvas .play-layout.has-chat .mahjong-table .river-tile-slot>.tile{width:31px!important;height:43px!important}.game-canvas .mahjong-table .river--top,.game-canvas .play-layout.has-chat .mahjong-table .river--top{inset:auto auto calc(50% + 82px) 50%!important}.game-canvas .mahjong-table .river--bottom,.game-canvas .play-layout.has-chat .mahjong-table .river--bottom{inset:calc(50% + 82px) auto auto 50%!important}.game-canvas .mahjong-table .river--left,.game-canvas .play-layout.has-chat .mahjong-table .river--left{inset:50% calc(50% + 133px) auto auto!important}.game-canvas .mahjong-table .river--right,.game-canvas .play-layout.has-chat .mahjong-table .river--right{inset:50% auto auto calc(50% + 133px)!important}.game-canvas .mahjong-table .hand,.game-canvas .play-layout.has-chat .mahjong-table .hand{max-width:calc(100% - 150px)!important;bottom:6px!important}.game-canvas .action-rail{grid-template-columns:minmax(240px,1fr) auto 220px!important;gap:10px!important;height:72px!important;min-height:72px!important;padding:7px 14px!important}.game-canvas .action{width:62px!important;min-width:62px!important;height:50px!important}.game-canvas .discard-button{width:220px!important;min-width:220px!important;height:52px!important}.game-canvas .table-chat,.game-canvas .play-layout.has-chat .table-chat{z-index:60!important;width:330px!important;height:666px!important;display:grid!important;position:absolute!important;inset:54px 0 0 auto!important}.game-canvas .side-panel{display:none!important}.game-shell{width:100vw!important;height:100dvh!important;min-height:0!important;position:fixed!important;inset:0!important;overflow:hidden!important}.game-canvas{--game-scale:1;width:1920px;height:1200px;transform:translate(-50%, -50%) scale(var(--game-scale));transform-origin:50%;position:absolute;top:50%;left:50%;overflow:hidden}.game-canvas .topbar{width:1920px!important;height:80px!important;min-height:80px!important;padding:0 42px!important}.game-canvas .play-layout,.game-canvas .play-layout.has-chat{grid-template-columns:minmax(0,1fr)!important;width:1920px!important;min-width:1920px!important;height:1120px!important;min-height:1120px!important;overflow:hidden!important}.game-canvas .play-layout.has-chat{grid-template-columns:1600px 320px!important}.game-canvas .table-wrap,.game-canvas .play-layout.has-chat .table-wrap{grid-template-rows:minmax(0,1fr) 100px!important;width:100%!important;min-width:0!important;height:1120px!important;min-height:0!important;padding:10px!important;overflow:hidden!important}.game-canvas .table-stage,.game-canvas .play-layout.has-chat .table-stage{--table-ring-x:78px!important;--table-ring-y:64px!important;width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;position:relative!important;overflow:hidden!important}.game-canvas .table-stage>.mahjong-table,.game-canvas .play-layout.has-chat .table-stage>.mahjong-table{position:absolute!important;inset:64px 78px!important;overflow:hidden!important;container-type:size!important}.game-canvas .mahjong-table .round-center,.game-canvas .play-layout.has-chat .mahjong-table .round-center{width:286px!important;min-width:286px!important;max-width:286px!important;top:50%!important;left:50%!important;overflow:hidden!important;transform:translate(-50%,-50%)!important}.game-canvas .mahjong-table .river,.game-canvas .play-layout.has-chat .mahjong-table .river{--river-tile-w:30px!important;--river-tile-h:42px!important;--river-gap:3px!important;grid-template-rows:repeat(3,max-content)!important;grid-template-columns:repeat(6,max-content)!important;grid-auto-flow:row!important;gap:3px!important;width:max-content!important;height:max-content!important;overflow:visible!important}.game-canvas .mahjong-table .river-tile-slot,.game-canvas .play-layout.has-chat .mahjong-table .river-tile-slot{flex:none!important;width:30px!important;height:42px!important}.game-canvas .topbar *,.game-canvas .player *,.game-canvas .round-center *,.game-canvas .action-rail button,.game-canvas .turn-notice,.game-canvas .table-chat__header *{white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important}.game-canvas .player,.game-canvas .round-center,.game-canvas .action,.game-canvas .discard-button,.game-canvas .top-actions button{box-sizing:border-box!important}.game-canvas .player-copy,.game-canvas .turn-notice,.game-canvas .top-actions,.game-canvas .match-labels{min-width:0!important;overflow:hidden!important}@media (width<=1100px),(height<=760px){.game-canvas .topbar{height:80px!important;min-height:80px!important}.game-canvas .play-layout,.game-canvas .play-layout.has-chat{height:1120px!important}.game-canvas .table-stage{--table-ring-x:78px!important;--table-ring-y:64px!important}}.game-canvas{width:1600px!important;height:900px!important;overflow:hidden!important}.game-canvas .topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:40!important;background:linear-gradient(#050a0ef0,#050a0e9e)!important;border-bottom:1px solid #e0b55e61!important;width:1600px!important;height:54px!important;min-height:54px!important;padding:0 18px!important;position:absolute!important;inset:0 0 auto!important}.game-canvas .game-brand-logo{width:48px!important;height:42px!important}.game-canvas .brand strong{font-size:17px!important}.game-canvas .brand small{display:none!important}.game-canvas .match-labels{gap:9px!important;font-size:12px!important}.game-canvas .secure-pill{min-height:30px!important;padding:0 11px!important}.game-canvas .top-actions{gap:6px!important}.game-canvas .top-actions button{height:32px!important;min-height:32px!important;padding:0 10px!important;font-size:12px!important}.game-canvas .play-layout,.game-canvas .play-layout.has-chat{width:1600px!important;min-width:1600px!important;height:900px!important;min-height:900px!important;padding:0!important;display:block!important;position:absolute!important;inset:0!important;overflow:hidden!important}.game-canvas .table-wrap,.game-canvas .play-layout.has-chat .table-wrap{border:0!important;border-radius:0!important;grid-template-rows:minmax(0,1fr) 72px!important;width:1280px!important;min-width:1280px!important;height:846px!important;min-height:846px!important;padding:0!important;display:grid!important;position:absolute!important;inset:54px auto auto 0!important;overflow:hidden!important}.game-canvas .table-stage,.game-canvas .play-layout.has-chat .table-stage{--table-ring-x:52px!important;--table-ring-y:48px!important;border-width:0!important;border-radius:0!important;width:1280px!important;min-width:1280px!important;height:774px!important;min-height:774px!important;position:relative!important;overflow:hidden!important}.game-canvas .table-stage>.mahjong-table,.game-canvas .play-layout.has-chat .table-stage>.mahjong-table{border-radius:8px!important;position:absolute!important;inset:48px 52px 22px!important;overflow:hidden!important}.game-canvas .mahjong-table .round-center,.game-canvas .play-layout.has-chat .mahjong-table .round-center{border-radius:13px!important;grid-template-columns:minmax(0,1fr) 64px!important;column-gap:7px!important;width:220px!important;min-width:220px!important;max-width:220px!important;min-height:142px!important;padding:12px!important;top:50%!important;left:50%!important;overflow:hidden!important;transform:translate(-50%,-50%)!important}.game-canvas .round-heading span{font-size:26px!important}.game-canvas .round-heading small,.game-canvas .round-grid small,.game-canvas .dora small{font-size:11px!important}.game-canvas .round-grid strong{font-size:28px!important}.game-canvas .mahjong-table .river,.game-canvas .play-layout.has-chat .mahjong-table .river{--river-tile-w:31px!important;--river-tile-h:43px!important;--river-gap:3px!important;grid-template-rows:repeat(3,max-content)!important;grid-template-columns:repeat(6,max-content)!important;grid-auto-flow:row!important;gap:3px!important;width:max-content!important;height:max-content!important}.game-canvas .mahjong-table .river-tile-slot,.game-canvas .play-layout.has-chat .mahjong-table .river-tile-slot{width:31px!important;height:43px!important}.game-canvas .mahjong-table .river-tile-slot--sideways,.game-canvas .play-layout.has-chat .mahjong-table .river-tile-slot--sideways{width:43px!important;height:31px!important}.game-canvas .mahjong-table .river-tile-slot>.tile,.game-canvas .play-layout.has-chat .mahjong-table .river-tile-slot>.tile{width:31px!important;height:43px!important;margin:0!important}.game-canvas .mahjong-table .river--top,.game-canvas .play-layout.has-chat .mahjong-table .river--top{inset:auto auto calc(50% + 82px) 50%!important;transform:translate(-50%)rotate(180deg)!important}.game-canvas .mahjong-table .river--bottom,.game-canvas .play-layout.has-chat .mahjong-table .river--bottom{inset:calc(50% + 82px) auto auto 50%!important;transform:translate(-50%)!important}.game-canvas .mahjong-table .river--left,.game-canvas .play-layout.has-chat .mahjong-table .river--left{inset:50% calc(50% + 133px) auto auto!important;transform:translateY(-50%)rotate(90deg)!important}.game-canvas .mahjong-table .river--right,.game-canvas .play-layout.has-chat .mahjong-table .river--right{inset:50% auto auto calc(50% + 133px)!important;transform:translateY(-50%)rotate(-90deg)!important}.game-canvas .mahjong-table .hand,.game-canvas .play-layout.has-chat .mahjong-table .hand{flex-wrap:nowrap!important;max-width:calc(100% - 150px)!important;bottom:6px!important;left:50%!important;transform:translate(-50%)!important}.game-canvas .mahjong-table .hand .tile,.game-canvas .play-layout.has-chat .mahjong-table .hand .tile{flex:0 0 54px!important;width:54px!important;height:73px!important}.game-canvas .table-stage>.player,.game-canvas .play-layout.has-chat .table-stage>.player{grid-template-rows:26px!important;grid-template-columns:26px minmax(0,1fr) 76px!important;width:200px!important;min-width:200px!important;max-width:200px!important;height:36px!important;min-height:36px!important;max-height:36px!important;padding:5px 6px!important;overflow:hidden!important}.game-canvas .table-stage>.player>b,.game-canvas .play-layout.has-chat .table-stage>.player>b{text-align:right!important;white-space:nowrap!important;width:76px!important;min-width:76px!important;max-width:76px!important;font-size:14px!important;line-height:1!important;overflow:hidden!important}.game-canvas .table-stage>.player--top{top:8px!important}.game-canvas .table-stage>.player--bottom{bottom:8px!important}.game-canvas .table-stage>.player--left{left:24px!important}.game-canvas .table-stage>.player--right{right:24px!important}.game-canvas .action-rail{z-index:32!important;grid-template-columns:minmax(240px,1fr) auto 220px!important;align-items:center!important;gap:10px!important;height:72px!important;min-height:72px!important;padding:7px 14px!important;display:grid!important;position:relative!important}.game-canvas .turn-notice{font-size:13px!important}.game-canvas .call-actions{gap:5px!important}.game-canvas .action{width:62px!important;min-width:62px!important;height:50px!important;padding:0 5px!important;font-size:15px!important}.game-canvas .discard-button{width:220px!important;min-width:220px!important;height:52px!important;font-size:20px!important}.game-canvas .table-chat,.game-canvas .play-layout.has-chat .table-chat{z-index:60!important;width:320px!important;height:846px!important;box-shadow:none!important;border-left:2px solid #765528!important;display:grid!important;position:absolute!important;inset:54px 0 0 auto!important}.game-canvas .table-chat__header button,.game-canvas .side-panel{display:none!important}.game-canvas .table-stage:before,.game-canvas .table-stage:after,.game-canvas .play-layout.has-chat .table-stage:before,.game-canvas .play-layout.has-chat .table-stage:after{content:none!important;display:none!important}.game-canvas{--material-edge:#e0be709e;--material-highlight:#ffffff38;--material-contact:0 3px 0 #5233176b, 0 8px 14px #0000004d;--material-control-shadow:0 3px 0 #4a2e107a, 0 8px 16px #00000047}.game-canvas .mahjong-table,.game-canvas .play-layout.has-chat .mahjong-table{box-shadow:inset 0 0 0 4px #041216eb,inset 0 0 80px #00000075,inset 0 18px 45px #22caa61a,0 16px 30px #00000047!important}.game-canvas .action,.game-canvas .discard-button,.game-canvas .top-actions button{border-top-color:var(--material-edge)!important;box-shadow:inset 0 1px 0 var(--material-highlight), var(--material-control-shadow)!important;border-bottom-width:3px!important;border-right-color:#e0be706b!important}.game-canvas .action{background:linear-gradient(145deg,#2a3841fa,#0c151dfa)!important}.game-canvas .action:hover:not(:disabled),.game-canvas .action.active{filter:brightness(1.08)!important;box-shadow:inset 0 1px #ffffff3d,0 3px #1b6c7085,0 8px 16px #00000042!important}.game-canvas .discard-button{text-shadow:0 1px #ffffff59;color:#2c1b08!important;background:linear-gradient(145deg,#f1d274 0%,#d6a63e 62%,#b77f22 100%)!important;border-color:#ffe39b!important}.game-canvas .action:disabled,.game-canvas .discard-button:disabled{box-shadow:inset 0 1px #ffffff14,0 2px 4px #00000038!important}@media (width<=1100px),(height<=760px){.game-canvas .topbar{height:54px!important;min-height:54px!important}.game-canvas .play-layout,.game-canvas .play-layout.has-chat{width:1600px!important;min-width:1600px!important;height:900px!important;min-height:900px!important}.game-canvas .table-wrap,.game-canvas .play-layout.has-chat .table-wrap{height:846px!important}.game-canvas .table-stage,.game-canvas .play-layout.has-chat .table-stage{--table-ring-x:52px!important;--table-ring-y:48px!important;width:1280px!important;height:774px!important}}.game-canvas .table-chat,.game-canvas .play-layout.has-chat .table-chat{background:linear-gradient(#131f28fa,#070e15fc)!important;border-left:1px solid #e0b55e7a!important;box-shadow:inset 10px 0 24px #0000002e,-10px 0 24px #0000002e!important}.game-canvas .table-chat__header{background:linear-gradient(#1e2b33ad,#0c161d6b)!important;border-bottom-color:#e0b55e57!important;min-height:66px!important}.game-canvas .table-chat__header strong{letter-spacing:.03em;color:#f2d995!important}.game-canvas .table-chat__header i{background:#d14a4f!important;box-shadow:0 0 12px #d14a4f8c!important}.game-canvas .table-chat__messages{background:linear-gradient(#030a1014,#030a104d)!important}.game-canvas .table-chat__form{background:#050b11eb!important;border-top-color:#e0b55e57!important}.game-canvas .table-chat__form textarea{background:#0d1821!important;border-color:#e0b55e57!important}.game-canvas .action-rail{background:linear-gradient(#19232afa,#070f16fc)!important;border-top:1px solid #e0b55e7a!important;box-shadow:inset 0 1px #ffffff0f,0 -8px 18px #00000029!important}.game-canvas .turn-notice{background:#060f168c!important;border:1px solid #e0b55e2e!important;border-radius:8px!important;min-width:0!important;padding:8px 12px!important;box-shadow:inset 0 1px #ffffff0a!important}.game-canvas .call-actions{background:#040c1275!important;border:1px solid #e0b55e3d!important;border-radius:10px!important;padding:4px!important;box-shadow:inset 0 1px #ffffff0a!important}.game-canvas .discard-button{border-radius:10px!important}.game-canvas .wait-display.wait-display--tenpai{border-color:#f2c866b8!important;box-shadow:0 12px 34px #0000005c,0 0 22px #f2c8661f!important}.game-canvas .wait-display.wait-display--tenpai>div:first-child span,.game-canvas .wait-display.wait-display--tenpai>small{color:#f2c866!important}.game-canvas .table-stage,.game-canvas .play-layout.has-chat .table-stage{width:1100px!important;min-width:1100px!important;margin-left:90px!important}.game-canvas .table-stage>.mahjong-table,.game-canvas .play-layout.has-chat .table-stage>.mahjong-table{inset:48px 38px 22px!important}.game-canvas .riichi-rail-effect{z-index:28!important;pointer-events:none!important;width:1280px!important;height:774px!important;position:absolute!important;inset:0 auto auto 0!important;overflow:hidden!important}.game-canvas .riichi-rail-effect__side{background:linear-gradient(#35160c33,#0a09096b),repeating-linear-gradient(135deg,#e0b55e0b 0 2px,#0000 2px 10px)!important;border-top:1px solid #e3a54338!important;border-bottom:1px solid #e3a54338!important;width:90px!important;position:absolute!important;top:0!important;bottom:0!important;overflow:hidden!important;box-shadow:inset 0 0 26px #00000052!important}.game-canvas .riichi-rail-effect__side--left{left:0!important}.game-canvas .riichi-rail-effect__side--right{right:0!important}.game-canvas .riichi-rail-effect__side:before,.game-canvas .riichi-rail-effect__side:after{content:""!important;opacity:.72!important;background:linear-gradient(90deg,#0000,#ffe187b3,#0000)!important;height:1px!important;position:absolute!important;left:11px!important;right:11px!important}.game-canvas .riichi-rail-effect__side:before{top:17px!important}.game-canvas .riichi-rail-effect__side:after{bottom:17px!important}.game-canvas .riichi-rail-effect__flare{z-index:1!important;filter:blur(3px)!important;background:linear-gradient(#0000,#ff48303d,#ffdd85b8,#0000)!important;height:24%!important;animation:2.6s ease-in-out infinite riichi-rail-flare!important;position:absolute!important;top:-20%!important;left:-18px!important;right:-18px!important}.game-canvas .riichi-rail-effect__track{z-index:2!important;color:#fff3bf!important;letter-spacing:.08em!important;text-shadow:0 0 3px #8e2416,0 0 10px #ff5f38f2,0 2px #621b0ef2!important;writing-mode:vertical-rl!important;flex-direction:column!important;align-items:center!important;gap:44px!important;font-family:Yu Mincho,Hiragino Mincho ProN,serif!important;font-size:38px!important;font-weight:900!important;line-height:1!important;animation:5.6s linear infinite riichi-rail-flow!important;display:flex!important;position:absolute!important;top:-360px!important;left:50%!important;transform:translate(-50%)!important}.game-canvas .riichi-rail-effect__track span{white-space:nowrap!important;display:block!important}@keyframes riichi-rail-flow{0%{transform:translate(-50%,-4%)}to{transform:translate(-50%,72%)}}@keyframes riichi-rail-flare{0%,to{opacity:.15;transform:translateY(-10%)}45%{opacity:.92;transform:translateY(350%)}}.game-canvas .riichi-preview-center{color:#f7df9d!important;text-align:center!important;background:#051116c7!important;border:1px solid #e0b55e7a!important;border-radius:14px!important;gap:10px!important;min-width:250px!important;padding:22px 28px!important;display:grid!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;box-shadow:0 12px 28px #0000003d,inset 0 1px #ffffff14!important}.game-canvas .riichi-preview-center strong{font-size:24px!important}.game-canvas .riichi-preview-center span{color:#eff5eeb8!important;font-size:13px!important}.game-canvas .riichi-rail-effect__track{writing-mode:initial!important;animation:5.6s linear infinite riichi-rail-flow-fixed!important;top:20px!important}.game-canvas .riichi-rail-effect__track span{writing-mode:vertical-rl!important;text-orientation:upright!important}@keyframes riichi-rail-flow-fixed{0%{transform:translate(-50%,-20px)}to{transform:translate(-50%,280px)}}.game-canvas .riichi-rail-effect__track{gap:0!important;height:auto!important;animation:3.6s linear infinite riichi-single-drop!important;display:block!important;top:-104px!important}.game-canvas .riichi-rail-effect__track span{writing-mode:vertical-rl!important;text-orientation:upright!important;display:block!important}@keyframes riichi-single-drop{0%{transform:translate(-50%)}to{transform:translate(-50%,900px)}}.game-canvas .riichi-rail-effect__track{flex-direction:column!important;align-items:center!important;width:1.2em!important;height:auto!important;animation:3.6s linear infinite riichi-glyph-drop!important;display:flex!important;top:-118px!important}.game-canvas .riichi-rail-effect__track span{writing-mode:horizontal-tb!important;text-orientation:mixed!important;text-align:center!important;white-space:nowrap!important;width:1.2em!important;height:1.2em!important;line-height:1.2!important;display:block!important}@keyframes riichi-glyph-drop{0%{transform:translate(-50%)}to{transform:translate(-50%,900px)}}.game-canvas .riichi-rail-effect__side{-webkit-mask-image:linear-gradient(#0000 0%,#000 12% 88%,#0000 100%)!important;mask-image:linear-gradient(#0000 0%,#000 12% 88%,#0000 100%)!important}.game-canvas .riichi-rail-effect__track{flex-direction:column!important;align-items:center!important;gap:22px!important;width:72px!important;animation:4.2s linear infinite riichi-logo-reel!important;display:flex!important;top:-150px!important}.game-canvas .riichi-rail-effect__track img{object-fit:contain!important;filter:drop-shadow(0 0 5px #ff4830d9)drop-shadow(0 3px 4px #0000008c)!important;flex:none!important;width:68px!important;height:auto!important;display:block!important}@keyframes riichi-logo-reel{0%{transform:translate(-50%)}to{transform:translate(-50%,570px)}}.game-canvas .riichi-rail-effect__track{display:none!important}.game-canvas .riichi-rail-effect__side{background:linear-gradient(#5a0d0a4d,#05080aa8),repeating-linear-gradient(135deg,#ffda7d14 0 2px,#0000 2px 13px)!important;animation:1.05s ease-in-out infinite alternate riichi-rail-pulse!important;box-shadow:inset 0 0 34px #ff342457,inset 0 0 8px #ffe39770,0 0 18px #ff3a2775!important}.game-canvas .riichi-rail-effect__side:before{content:""!important;z-index:3!important;filter:blur(2px)!important;opacity:.95!important;background:linear-gradient(#0000,#fff8c3fa,#ff4e2d94,#0000)!important;height:24%!important;animation:1.65s linear infinite riichi-rail-sweep!important;position:absolute!important;top:-28%!important;left:-38%!important;right:-38%!important}.game-canvas .riichi-rail-effect__side:after{content:""!important;z-index:4!important;background:linear-gradient(90deg,#0000,#ffe8a8,#ff6449,#ffe8a8,#0000)!important;height:2px!important;animation:.72s ease-in-out infinite alternate riichi-rail-flash!important;display:none!important;position:absolute!important;top:50%!important;left:10px!important;right:10px!important;box-shadow:0 0 14px #ff7652,0 0 28px #ffd36dcc!important}@keyframes riichi-rail-pulse{0%{filter:saturate()brightness(.92);opacity:.78}to{filter:saturate(1.65)brightness(1.32);opacity:1}}@keyframes riichi-rail-sweep{0%{transform:translateY(0)}to{transform:translateY(570%)}}@keyframes riichi-rail-flash{0%{opacity:.34;transform:scaleX(.74)}to{opacity:1;transform:scaleX(1.12)}}
