*{box-sizing:border-box}:root{background:#0f1115;color:#e8e8ea;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";line-height:1.45}body{margin:0}a{color:inherit}#app{max-width:980px;margin:0 auto;padding:30px 18px}#app:has(.titleScreen){max-width:none;padding:0}html{overflow-y:scroll;scrollbar-gutter:stable}.panel{background:#161a22;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px;box-shadow:0 10px 26px #00000059}.row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.spacer{flex:1}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.badge{width:160px;text-align:center;padding:6px 10px;border-radius:999px;font-weight:800;font-size:13px;border:1px solid rgba(255,255,255,.1);-webkit-user-select:none;user-select:none}.badge.up{background:#00b47829}.badge.down{background:#788cff29}.kpiRow{align-items:center}.kpi{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 140px;min-width:140px}.kpi .label{white-space:nowrap;word-break:keep-all}.kpi .value{font-size:28px;font-feature-settings:"tnum";line-height:1;text-align:right;min-width:4ch}.kpi .value.small{font-size:18px;font-weight:900}.status{min-width:72px;text-align:right}.statusText.playing{color:#22c55e;font-weight:900}.statusText.ended{color:#ffffffd9;font-weight:900}.resultRow{min-height:28px;display:flex;align-items:center;padding-top:6px}.resultPlaceholder{visibility:hidden}.btn{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#0b0d12;color:#fff;cursor:pointer;font-weight:800}.select{padding:9px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#0b0d12;color:#fff;font-weight:800;width:100%}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:disabled{opacity:.45;cursor:not-allowed}.soundBtn{width:42px;height:42px;padding:0;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#fff;font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.soundBtn:hover{background:#ffffff1f}.playerList{display:grid;gap:8px}.playerRow{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#101522}.playerRow .name{font-weight:900}.playerRow .muted{color:#fff9;font-size:12px}.playerRow .turn{margin-left:auto;font-weight:950;color:#22c55e;font-size:12px;line-height:1;min-width:18px;text-align:right}.cardArea{display:flex;gap:12px;align-items:center}.playCard{width:112px;height:156px;border-radius:16px;border:1px solid #d9d9d9;background:#fff;box-shadow:0 10px 24px #00000047;position:relative;overflow:hidden}.playCard .corner{position:absolute;top:10px;left:10px;font-size:12px;font-weight:900;line-height:1.05}.playCard .corner.br{inset:auto 10px 10px auto;transform:rotate(180deg)}.playCard .center{position:absolute;inset:0;display:grid;place-items:center;text-align:center}.playCard .rank{font-size:40px;font-weight:950;line-height:1}.playCard .suit{margin-top:4px;font-size:26px;font-weight:900;opacity:.9}.playCard.black{color:#111}.playCard.red{color:#b00020}.playCard.joker{color:#111;background:linear-gradient(135deg,#fff,#f1f4ff)}.handGrid{display:flex;gap:10px;flex-wrap:nowrap}.cardBtn{width:92px;height:128px;border-radius:14px;border:1px solid #d9d9d9;background:#fff;box-shadow:0 10px 24px #0000003d;position:relative;cursor:pointer;padding:0;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.cardBtn:hover:not(:disabled){transform:translateY(-6px);box-shadow:0 14px 30px #0000004d;filter:brightness(1.02)}.cardBtn:active:not(:disabled){transform:translateY(-2px)}.cardBtn:disabled{opacity:.45;cursor:not-allowed}.cardBtn .corner{position:absolute;top:8px;left:8px;font-size:12px;font-weight:900;line-height:1.05}.cardBtn .corner.br{inset:auto 8px 8px auto;transform:rotate(180deg)}.cardBtn .center{position:absolute;inset:0;display:grid;place-items:center;text-align:center}.cardBtn .rank{font-size:32px;font-weight:950;line-height:1}.cardBtn .suit{margin-top:2px;font-size:20px;font-weight:900;opacity:.9}.cardBtn.black{color:#111}.cardBtn.red{color:#b00020}.cardBtn.joker{color:#111;background:linear-gradient(135deg,#fff,#f1f4ff)}.playMeta .title{font-weight:900}.playMeta .sub{color:#ffffffb8;font-size:12px;margin-top:4px}.logBox{background:#0b0d12;color:#e8e8ea;padding:12px;border-radius:12px;overflow:auto;max-height:280px;border:1px solid rgba(255,255,255,.1)}.logRow{display:flex;gap:10px;align-items:baseline;padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.08);border-left:4px solid transparent;border-radius:8px}.logRow .no{min-width:44px;color:#ffffff8c}.logRow .main{flex:1}.logRow .note{color:#ffffffa6;font-size:12px}.logRow.j{border-left-color:#f0ad4e;font-weight:900}.logRow.cancel{border-left-color:#22c55e;font-weight:900}.logRow.lose{border-left-color:#ff4d6d;font-weight:950}.logIcon{width:14px;height:14px;object-fit:contain;flex:0 0 auto;transform:translateY(1px);filter:drop-shadow(0 1px 1px rgba(0,0,0,.2));opacity:.95}.input{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#fff;font-weight:800;width:100%}#inviteUrlRow{display:flex;gap:8px;min-width:0}#inviteUrl{flex:1 1 auto;min-width:0;width:0}#copyInviteBtn{flex:0 0 auto;white-space:nowrap}#logModalOverlay{position:fixed;inset:0;background:#000000b3;display:none;z-index:9999;padding:16px;box-sizing:border-box;overflow-y:auto;align-items:flex-end;justify-content:center}#logModalOverlay.open{display:flex}.logModal{position:relative;background:#111;opacity:.8;border-radius:12px;padding:20px;width:auto;box-sizing:border-box;margin:0;max-height:80vh;overflow-y:auto}.logModal.empty{width:100%}.logModalClose{position:absolute;top:10px;right:14px;font-size:22px;background:none;border:none;color:#fff;cursor:pointer}#logToggleBtn{display:block;width:min(100%,360px);margin:0 auto 12px}.jpOverlay{position:fixed;inset:0;background:#000000b8;display:grid;place-items:center;z-index:9999;padding:16px}.jpModal{width:min(520px,100%);background:#0f121af5;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:14px;box-shadow:0 10px 40px #00000073}.jpTitle{font-weight:950;font-size:18px;margin-bottom:8px;color:#fff}.jpInfo{color:#ffffffbf;font-weight:800;margin-bottom:6px}.jpSafe{color:#ffffffb3;font-weight:800;margin-bottom:10px}.jpRow{display:grid;grid-template-columns:1fr 100px;gap:10px;align-items:center;margin-bottom:10px}.jpRange{width:100%}.jpNumber{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#fff;font-weight:900}.jpPresets{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.jpPresetBtn{padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffffe6;font-weight:900;cursor:pointer}.jpPresetBtn:hover{transform:translateY(-1px)}.jpResult{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#ffffffeb;font-weight:950;margin-bottom:12px}.jpResult.jpOut{border-color:#ff4d6d80;background:#ff4d6d1f;color:#ff4d6d}.jpBtnRow{display:flex;gap:10px;justify-content:flex-end}.jpBtn{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffffe6;font-weight:950;cursor:pointer}.jpBtn:disabled{opacity:.45;cursor:not-allowed}.jpPrimary{background:#22c55e2e;border-color:#22c55e59}.appHeader{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;margin:18px 0 14px}.appTitle{margin:0;line-height:1;font-size:44px;font-weight:1000;letter-spacing:.1em;padding:8px 18px;position:relative;-webkit-text-stroke:1px rgba(0,0,0,.55);background:linear-gradient(90deg,#fff,#c7d2fe,#fff);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 10px 30px rgba(0,0,0,.35)}.appTitle:after{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:-10px;width:220px;height:3px;border-radius:999px;background:linear-gradient(90deg,#fff0,#ffffffe6,#fff0);opacity:.8}.appTag{font-size:12px;font-weight:900;letter-spacing:.28em;color:#ffffffa6}.titleScreen{position:relative;width:100vw;min-height:100vh;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);display:grid;place-items:center;overflow:hidden}.titleBackdrop{position:absolute;inset:0;pointer-events:none;overflow:hidden}.titleBackdropAmbient{position:absolute;inset:0;background:radial-gradient(circle at 50% 24%,#52669e1f,#52669e00 26%),radial-gradient(circle at 50% 58%,#ffebb40d,#ffebb400 18%),linear-gradient(180deg,#0408102e,#0408106b)}.titleBackdropTable{position:absolute;left:50%;top:62%;width:min(1100px,96vw);height:min(430px,42vh);transform:translate(-50%,-50%);border-radius:44px;background:radial-gradient(circle at 50% 45%,#243a5c29,#0e17277a 55%,#070c16c7),linear-gradient(180deg,#ffffff08,#fff0);box-shadow:0 0 0 1px #ffffff08,inset 0 0 0 1px #ffffff0a,0 70px 140px #0000006b;filter:blur(1px);opacity:.72}.titleBackdropCards{position:absolute;left:50%;top:64%;width:min(1120px,96vw);height:min(500px,52vh);transform:translate(-50%,-50%)}.titleBgCard{position:absolute;width:clamp(110px,11vw,150px);aspect-ratio:7 / 10;transform-origin:center center;box-shadow:0 18px 48px #00000047}.titleBgCardSvg{display:block;width:100%;height:100%;text-rendering:geometricPrecision;shape-rendering:geometricPrecision}.titleBackdropShade{position:absolute;inset:0;background:radial-gradient(circle at 50% 47%,#070c161f,#070c164d 42%,#040810ad),linear-gradient(180deg,#05080fb3,#05080f1a 22%,#05080f38 60%,#05080fcc)}.titleTopLinks{position:absolute;top:6px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;justify-content:center;gap:0;padding:6px 12px}.titleTopLink{border:0;background:transparent;color:#ffffffd6;font-size:13px;font-weight:900;letter-spacing:.04em;padding:4px 8px;cursor:pointer;white-space:nowrap;flex:0 0 auto}.titleTopLink:hover{color:#fff}.titleTopLinkDivider{color:#fff6;font-size:13px;font-weight:700;padding:0 2px}.titleMenuAnchor{position:absolute;top:18px;right:18px;z-index:20;display:flex;align-items:center;gap:8px}.titleMenuBtn{display:none;width:46px;height:46px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#ffffffeb;font-size:28px;line-height:1;font-weight:900;cursor:pointer;box-shadow:0 10px 26px #00000038}.titleSoundBtn{width:46px;height:46px;border-radius:14px;font-size:22px;box-shadow:0 10px 26px #00000038}.titleMenuBtn:hover{background:#ffffff1a}.titleMenuOverlay{position:fixed;inset:0;z-index:10030;display:none}.titleMenuOverlay.is-open{display:block}.titleMenuPanel{position:absolute;top:18px;right:18px;min-width:260px;padding:16px;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:#0c1018f5;box-shadow:0 18px 40px #0006;display:grid;gap:10px}.titleMenuPanelHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.titleMenuPanelTitle{font-size:12px;font-weight:900;letter-spacing:.22em;color:#ffffffa6}.titleMenuClose{display:none;width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#ffffffeb;font-size:22px;font-weight:900;cursor:pointer}.titleMenuItem{width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#ffffffeb;font-size:15px;font-weight:900;text-align:left;padding:14px 16px;cursor:pointer}.titleMenuItem:hover{background:#ffffff14}.titleHero{position:relative;z-index:10;display:grid;justify-items:center;gap:14px;text-align:center;padding:24px 18px;transform:translateY(-82px)}.titleHeroLogo{font-size:clamp(54px,10vw,104px);margin-bottom:0}.titleHeroLogo:after{width:min(52vw,340px)}.titleHeroKana{margin-top:4px;font-size:clamp(14px,2.6vw,22px);font-weight:900;letter-spacing:.18em;color:#ffffffc7}.titleStartBtn{min-width:min(320px,calc(100vw - 60px));min-height:54px;margin-top:10px;font-size:18px}.titleInfoModal{position:fixed;inset:0;z-index:10040;display:none;align-items:center;justify-content:center;padding:20px;background:#0000009e}.titleInfoModal.is-open{display:flex}.titleInfoDialog{width:min(720px,calc(100vw - 40px));height:min(78vh,760px);border-radius:20px;border:1px solid rgba(255,255,255,.14);background:#0c1018fa;box-shadow:0 24px 56px #00000073;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden}.titleInfoHeader{padding:18px 18px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.titleInfoHeading{font-size:clamp(18px,3vw,24px);font-weight:950;letter-spacing:.04em}.titleInfoBody{min-height:0;overflow-y:auto;padding:18px;color:#ffffffe0;line-height:1.8}.titleInfoBody p{margin:0 0 1em}.titleInfoBody p:last-child{margin-bottom:0}.titleInfoAction{gap:8px;padding:0 18px 14px}.titleInfoActionBtn{width:100%}.titleInfoActionNote{font-size:12px;color:#ffffff9e}.titleInfoFooter{padding:0 18px 18px}.titleInfoFooter .btn{width:100%}.cardTip{position:fixed;z-index:9999;display:none;max-width:320px;padding:10px 12px;border-radius:12px;background:#0f121aeb;border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 28px #00000059;color:#ffffffeb;font-size:13px;line-height:1.35;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.cardTip .tTitle{font-weight:950;margin-bottom:6px;letter-spacing:.02em}.cardTip .tRow{display:flex;gap:8px}.cardTip .tKey{width:88px;flex:0 0 auto;color:#ffffffa6;font-weight:800}.cardTip .tVal{flex:1 1 auto}.cardTip{position:fixed;left:0;top:0;z-index:9999;display:none;pointer-events:none;max-width:min(360px,calc(100vw - 28px));padding:10px 12px;border-radius:12px;background:#0a0c12eb;border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 40px #0000008c;color:#ffffffeb;font-size:12px;line-height:1.35}.cardTip .tTitle{font-weight:900;margin-bottom:6px;color:#fffffff2}.cardTip .tRow{display:flex;gap:10px;align-items:baseline}.cardTip .tKey{min-width:86px;color:#ffffffb3;font-weight:800}.cardTip .tVal{flex:1}.cardTip .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.rmOverlay{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:9999}.rmModal{width:min(520px,calc(100vw - 32px));border-radius:16px;padding:18px 18px 14px;background:#141820f2;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 70px #0000008c}.rmTitle{font-weight:950;font-size:18px;margin-bottom:8px}.rmBody{color:#ffffffd9;line-height:1.6;margin-bottom:12px}.rmActions{display:flex;justify-content:flex-end;gap:10px}.handPanelTitle{font-weight:950;margin-bottom:10px}.handPanel.isMyTurn{border-color:#22c55eb8;box-shadow:0 0 0 1px #22c55e47,0 0 18px #22c55e2e,0 10px 26px #00000059}.handPanel.isMyTurn .handPanelTitle{color:#86efac}.playMeta .title .titleMobile{display:none;font-size:10.75px}.playMeta .title .titlePc{display:inline}.emptyPlayCard .suit{display:flex;flex-direction:column;align-items:center;gap:0;line-height:1.05}.kpiResult{font-size:13px}@media(orientation:portrait)and (max-width:820px){#app{padding:12px}:root{--m-grid2-h: 230px}.appHeader{gap:4px;margin:6px 0}.appTitle{font-size:26px;padding:4px 10px}.appTitle:after{width:120px;bottom:-6px}.appTag{font-size:9px;padding:2px 8px}.titleScreen{min-height:calc(100vh - 24px)}.titleBackdropTable{top:66%;width:min(118vw,760px);height:min(320px,34vh);border-radius:30px;opacity:.62}.titleBackdropCards{top:68%;width:min(118vw,780px);height:min(360px,38vh)}.titleBgCard{width:clamp(86px,18vw,116px)}.titleTopLinks{display:none}.titleMenuAnchor{display:flex;align-items:center;top:2px;right:0;gap:8px}.titleMenuBtn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;font-size:24px}.titleSoundBtn{width:42px;height:42px;border-radius:12px;font-size:20px}.titleMenuPanel{position:fixed;inset:0;min-width:0;border-radius:0;border:0;background:#0a0e16fa;padding:20px 16px 24px;box-shadow:none;align-content:start;gap:12px}.titleMenuClose{display:inline-flex;align-items:center;justify-content:center}.titleMenuItem{min-height:52px;font-size:16px}.titleHero{gap:12px;padding:16px 8px 20px}.titleHeroLogo{font-size:clamp(40px,13vw,58px)}.titleHeroKana{font-size:14px;letter-spacing:.12em}.titleStartBtn{min-width:100%;font-size:16px}.titleInfoModal{padding:12px}.titleInfoDialog{width:100%;height:min(82vh,760px);border-radius:18px}.titleInfoHeader{padding:16px 16px 10px}.titleInfoBody{padding:16px}.titleInfoAction{padding:0 16px 12px}.titleInfoFooter{padding:0 16px 16px}.kpiRow{gap:10px}.badge{width:140px;padding:5px 8px;font-size:10px}.kpi{flex:0 0 120px;min-width:120px;gap:8px}.kpi .value{font-size:24px}.kpi .value.small{font-size:16px}.status{min-width:64px}.grid2{grid-template-columns:1.05fr .95fr;gap:8px;align-items:stretch}.grid2>.panel{min-height:var(--m-grid2-h);height:auto;padding:8px}.playerList{max-height:none;overflow:visible}.playerRow{padding:6px 8px}.playerRow .name{font-size:13px}.playerRow .muted{font-size:10px}.cardArea{gap:0;flex-direction:column;align-items:center;justify-content:flex-start}.playCard{transform:scale(.8);transform-origin:top center}.playMeta{width:100%;min-width:0;margin-top:-24px;display:flex;flex-direction:column;justify-content:flex-start}.playMeta .title{font-size:12px;line-height:1.05;min-height:26px}.playMeta .title .titlePc{display:none}.playMeta .title .titleMobile{display:block;line-height:1.05;margin-top:35px;white-space:nowrap}.playMeta .sub{font-size:10px;line-height:1.25;margin-top:25px;min-height:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emptyPlayCard .suit{font-size:25px;line-height:1.05}.kpiResult{font-size:10px}#hand{gap:8px}#hand .cardBtn{width:72px;height:104px}#hand .corner{font-size:10px}#hand .center .rank{font-size:22px}#hand .center .suit{font-size:14px}#drawBtn,#restartBtn,#homeBtn{padding:8px 10px;font-size:12px}.handPanelTitle{font-weight:950;margin-bottom:10px}.handPanel.isMyTurn{border-color:#22c55eb8;box-shadow:0 0 0 1px #22c55e47,0 0 18px #22c55e2e,0 10px 26px #00000059}.handPanel.isMyTurn .handPanelTitle{color:#86efac}}@media(max-width:360px){#inviteUrlRow{gap:6px}#copyInviteBtn{padding:8px 10px;font-size:12px}}
