@import"https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;500;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.table{display:table}.resize{resize:both}.uppercase{text-transform:uppercase}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--bg-a: #040b15;--bg-b: #0e1d32;--bg-c: #1d2e45;--frame: rgba(213, 189, 133, .22);--frame-strong: rgba(218, 191, 129, .62);--panel: rgba(8, 14, 28, .8);--panel-soft: rgba(15, 24, 42, .7);--app-vh: 1vh}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-height:100dvh;color:#dbe6f4;font-family:Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,sans-serif;-webkit-text-size-adjust:100%;background:radial-gradient(circle at 15% 14%,rgba(62,180,206,.24),transparent 34%),radial-gradient(circle at 86% 20%,rgba(216,169,73,.2),transparent 30%),radial-gradient(circle at 54% 100%,rgba(64,154,180,.22),transparent 38%),linear-gradient(155deg,var(--bg-a),var(--bg-b) 56%,var(--bg-c))}body.game-mode{overflow:hidden;overscroll-behavior:none}#root{height:100%;min-height:100dvh}.app-shell{position:relative;min-height:100dvh;overflow:hidden;padding:1.2rem}.app-main{position:relative;z-index:2;margin:0 auto;display:flex;max-width:1220px;flex-direction:column;gap:1rem}.app-shell.is-game-mode{padding:0;height:calc(var(--app-vh) * 100);max-height:100dvh;min-height:0;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.app-main.is-game-main{max-width:none;height:100%;min-height:0;gap:0}.ambient-layer{pointer-events:none;position:absolute;inset:0}.orb{position:absolute;border-radius:9999px;filter:blur(30px);animation:soft-float 8s ease-in-out infinite}.orb-a{left:-70px;top:60px;height:180px;width:180px;background:#2ac3d642}.orb-b{right:-80px;top:130px;height:200px;width:200px;background:#ebb54933;animation-delay:1.3s}.hero-panel,.lobby-panel,.session-strip,.tcg-window,.toast-panel{border:1px solid var(--frame);border-radius:22px;background:var(--panel);box-shadow:0 20px 55px #0208128c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-panel{padding:1.3rem 1.4rem}.hero-kicker{margin:0;font-size:.68rem;font-weight:700;letter-spacing:.35em;color:#7dd3fc}.hero-title{margin:.45rem 0 0;font-family:"M PLUS Rounded 1c",Yu Gothic UI,sans-serif;font-size:1.8rem;line-height:1.2;color:#f8fafc}.hero-text{margin:.65rem 0 0;max-width:70ch;font-size:.95rem;color:#bfd2e8}.hero-meta{margin:.75rem 0 0;font-size:.8rem;color:#95aeca}.lobby-grid{display:grid;gap:.9rem}.lobby-panel{display:flex;flex-direction:column;gap:.8rem;padding:1.05rem}.panel-title{margin:0;font-family:"M PLUS Rounded 1c",Yu Gothic UI,sans-serif;font-size:1.08rem;font-weight:700}.input-label{margin:0;font-size:.7rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:#b4c8df}.input-field{width:100%;border:1px solid rgba(150,173,201,.36);border-radius:11px;padding:.68rem .8rem;background:#0b1222b3;color:#edf3fb;font-size:.9rem;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.input-field:focus{border-color:#71d0e4d9;box-shadow:0 0 0 3px #22d3ee2e}.action-btn{border-radius:12px;padding:.6rem .95rem;border:1px solid transparent;font-size:.87rem;font-weight:700;color:#f1f5f9;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.action-btn:disabled{cursor:not-allowed;opacity:.45}.action-btn-primary{background:linear-gradient(110deg,#cc8b2f,#c8692f);box-shadow:0 9px 20px #ab581666}.action-btn-primary:hover:not(:disabled){transform:translateY(-1px)}.action-btn-subtle{border-color:#9cb0cb59;background:#0c1426a8}.action-btn-subtle:hover:not(:disabled){border-color:#87c6ddcc}.action-btn-fullscreen{display:inline-flex;align-items:center;gap:.36rem;border-color:#76b6ff94;background:linear-gradient(120deg,#173a7ae6,#112657eb);color:#dbeeff}.action-btn-fullscreen:hover:not(:disabled){border-color:#9ed2ffeb}.action-btn-debug{border-color:#dab05385;background:linear-gradient(110deg,#274685e0,#193162e6);color:#d8eaff}.action-btn-debug:hover:not(:disabled){border-color:#f5c565bd}.session-strip{display:flex;flex-direction:column;gap:.7rem;justify-content:space-between;padding:1rem 1.1rem}.session-label{margin:0;font-size:.67rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:#86e5f4}.session-room{margin:.2rem 0 0;font-family:"M PLUS Rounded 1c",Yu Gothic UI,sans-serif;font-size:1.65rem;letter-spacing:.14em;color:#f8fafc}.session-player{margin:.2rem 0 0;font-size:.9rem;color:#c2d4e9}.session-player span{font-weight:700;color:#f8fafc}.session-actions{display:flex;flex-wrap:wrap;gap:.55rem}.session-debug-pill{display:inline-block;margin:.4rem 0 0;border:1px solid rgba(249,196,92,.5);border-radius:999px;padding:.18rem .55rem;font-size:.67rem;font-weight:700;letter-spacing:.08em;color:#ffe6b3;background:#48300c73}.tcg-window{position:relative;padding:.8rem;border-color:var(--frame-strong);background:linear-gradient(145deg,#080f1bf7,#050b17ed),radial-gradient(circle at 20% 0,rgba(244,204,112,.13),transparent 42%)}.tcg-window:before{content:"";pointer-events:none;position:absolute;inset:6px;border-radius:16px;border:1px solid rgba(217,193,136,.15)}.tcg-window-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.window-kicker{margin:0;font-size:.6rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:#8ed6cb}.window-title{margin:.16rem 0 0;font-family:"M PLUS Rounded 1c",Yu Gothic UI,sans-serif;font-size:1.06rem;color:#f9fafb}.window-pills{display:flex;flex-wrap:wrap;gap:.32rem}.window-pill{border:1px solid rgba(139,177,161,.4);border-radius:999px;padding:.22rem .48rem;font-size:.68rem;background:#0a251ca3;color:#d8eee8}.game-table-canvas{position:relative;z-index:1;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) minmax(0,.78fr);gap:.36rem;padding:.38rem;border:1px solid rgba(109,181,145,.35);border-radius:14px;background:radial-gradient(circle at 22% 20%,rgba(73,173,131,.13),transparent 44%),radial-gradient(circle at 85% 8%,rgba(110,201,166,.11),transparent 37%),linear-gradient(165deg,#0a4431e6,#062a1ef0);overflow:hidden}.game-table-canvas:before{content:"";pointer-events:none;position:absolute;inset:6px;border:1px solid rgba(143,214,179,.18);border-radius:12px}.opponent-track{display:grid;gap:.2rem;min-height:0}.lane-title{margin:0;font-size:.64rem;font-weight:700;letter-spacing:.06em;color:#d5f5ea;text-shadow:0 1px 0 rgba(4,15,12,.5)}.opponent-row{display:grid;gap:.22rem;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid rgba(133,205,170,.28);border-radius:10px;padding:.2rem;background:#07281e73}.opponent-seat{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.14rem .32rem;border:1px solid rgba(137,189,164,.38);border-radius:8px;background:linear-gradient(150deg,#08202bdb,#061822e6);padding:.22rem .3rem}.opponent-seat.is-current{border-color:#92edc4e6;box-shadow:0 0 0 1px #92edc45c inset,0 0 12px #5fe9b161}.opponent-seat.is-busted{opacity:.65}.opponent-head{margin-bottom:.2rem}.opponent-name{margin:0;grid-column:1;font-size:.66rem;font-weight:700;color:#e8fff6}.opponent-hand-count{grid-column:2;justify-self:end;margin:0;font-size:.58rem;color:#d5efe4}.opponent-waiting{grid-column:1 / -1;margin:0;font-size:.54rem;color:#cce9df;width:-moz-fit-content;width:fit-content;border-radius:999px;margin-top:.02rem;padding:.03rem .3rem;border:1px solid rgba(133,177,161,.38);background:#072219b8}.table-grid{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:.32rem;min-height:0;align-items:stretch}.arena-zone,.hud-zone,.hand-zone{border:1px solid rgba(142,212,176,.32);background:#062119b3}.arena-zone{display:flex;flex-direction:column;gap:.28rem;padding:.34rem;min-height:0;border-radius:10px;overflow:hidden}.arena-head{display:flex;flex-direction:column;gap:.16rem;margin:0}.arena-info{margin:0;font-size:.6rem;color:#d2f3e7}.field-title{margin:0;text-align:center;font-size:.58rem;letter-spacing:.06em;color:#ddfff2}.field-stage{flex:1 1 auto;min-height:86px;border:1px dashed rgba(145,220,183,.46);border-radius:12px;background:radial-gradient(circle at 50% 35%,#0b382adb,#071f17ed);padding:.34rem .46rem;overflow:auto}.field-stage.has-cards{border-style:solid;border-color:#9cebc4b3}.field-owner{margin:.12rem 0 0;text-align:center;font-size:.56rem;color:#ccebdd}.field-empty{margin:.2rem auto 0;max-width:42ch;text-align:center;font-size:.58rem;color:#d4ece2}.field-cards{margin-top:.14rem;display:flex;justify-content:center;flex-wrap:wrap;gap:.2rem}.hud-zone{border-radius:10px;padding:.3rem;min-height:0;overflow:hidden auto}.hud-field-state{margin-bottom:.2rem;border:1px solid rgba(143,213,176,.42);border-radius:8px;background:#08291fb8;padding:.26rem .34rem}.hud-field-state p{margin:.08rem 0 0;font-size:.54rem;color:#d6f0e7}.hud-field-state p:first-child{margin-top:0}.hud-state-title{font-size:.58rem;font-weight:700;color:#f2fff9}.hud-note{margin:.2rem 0 0;font-size:.54rem;color:#f8d9a8}.hand-zone{position:relative;display:flex;flex-direction:column;gap:.2rem;border-radius:12px;padding:.24rem .36rem;min-height:0;background:#082d21c7;overflow:hidden auto}.hand-zone.is-current-turn{border-color:#98f0c9e6;box-shadow:0 0 0 1px #98f0c961 inset,0 0 16px #53e0a357}.hand-head{display:flex;align-items:center;justify-content:space-between;gap:.24rem}.hand-sub{margin:0;font-size:.54rem;color:#cfebdf}.hand-head .panel-title{margin:0;font-size:.72rem;color:#f3fff9}.hand-overview{display:flex;gap:.12rem;align-items:stretch}.mini-hand-card{flex:1 1 0;min-width:0;height:1.42rem;display:grid;place-items:center;border-radius:6px;border:1px solid rgba(148,177,205,.5);background:linear-gradient(160deg,#f9fcff,#e8eef7);font-size:.5rem;font-weight:700;line-height:1;letter-spacing:-.02em}.mini-hand-card.is-red{color:#b4232b}.mini-hand-card.is-black{color:#1a2438}.mini-hand-card.is-selected{border-color:#42c9f1f2;box-shadow:0 0 0 1px #42c9f14d inset}.mini-hand-card.is-special{background:linear-gradient(160deg,#fff9e2,#e8f2ff)}.hand-scroll{display:flex;gap:.24rem;overflow-x:auto;overflow-y:hidden;padding:0 0 .16rem}.hand-scroll::-webkit-scrollbar{height:8px}.hand-scroll::-webkit-scrollbar-thumb{background:#6b85a6b3;border-radius:999px}.hand-empty{margin:0;font-size:.58rem;color:#d2e8de}.role-panel{border:1px solid rgba(122,215,177,.42);border-radius:11px;background:#072018b8;padding:.5rem}.role-title{margin:0 0 .4rem;font-size:.66rem;color:#d7f6eb}.role-grid{display:grid;gap:.36rem}.action-row{display:flex;flex-wrap:wrap;gap:.24rem}.playing-card{position:relative;display:block;width:92px;height:132px;flex:0 0 auto;border-radius:12px;border:1px solid rgba(44,63,96,.35);background:linear-gradient(160deg,#fff,#f0f4fa 64%,#e3ebf5);color:#0f172a;box-shadow:0 8px 18px #0308145c;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.playing-card.is-clickable:hover{transform:translateY(-4px);box-shadow:0 14px 26px #060d1b73}.playing-card.is-selected{transform:translateY(-9px);border-color:#1fa9c6f2;box-shadow:0 20px 26px #08203685}.playing-card:disabled{cursor:default}.playing-card.is-compact{width:72px;height:104px}.playing-card[data-tone=skip]{border-color:#c89831a6;background:linear-gradient(160deg,#fff9e9,#f8eabf 65%,#ecd388)}.playing-card[data-tone=give]{border-color:#248cbab3;background:linear-gradient(160deg,#f2fbff,#dff3ff 65%,#c7e3ff)}.playing-card[data-tone=cut]{border-color:#239675b3;background:linear-gradient(160deg,#eefff8,#d5f8ea 65%,#b6ebda)}.playing-card[data-tone=reverse]{border-color:#7f53bdad;background:linear-gradient(160deg,#faf4ff,#eadfff 65%,#d5c0ff)}.playing-card[data-tone=erase]{border-color:#dc7247b3;background:linear-gradient(160deg,#fff6ef,#ffe6d7 65%,#f8c9a8)}.playing-card[data-tone=ogino]{border-color:#df5050b8;background:linear-gradient(160deg,#fff3f3,#ffdfe0 65%,#f5bcc2)}.playing-card[data-tone=joker]{border-color:#5352bdad;background:radial-gradient(circle at 20% 20%,rgba(55,99,228,.16),transparent 34%),radial-gradient(circle at 80% 82%,rgba(209,74,117,.16),transparent 42%),linear-gradient(160deg,#f8fbff,#e8eef9 65%,#d5def0)}.playing-card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1;gap:.08rem;font-size:.86rem;font-weight:700}.playing-card-corner.top{top:7px;left:7px}.playing-card-corner.bottom{right:7px;bottom:7px;transform:rotate(180deg)}.playing-card.is-compact .playing-card-corner{font-size:.7rem}.playing-card-corner.is-red,.playing-card-center.is-red{color:#dc2626}.playing-card-corner.is-black,.playing-card-center.is-black{color:#0f172a}.playing-card-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.playing-card-suit{font-size:1.6rem}.playing-card-rank{margin-top:.15rem;font-size:1rem;font-weight:700}.playing-card.is-compact .playing-card-suit{font-size:1.25rem}.playing-card.is-compact .playing-card-rank{font-size:.82rem}.joker-mark{border:1px dashed rgba(67,88,138,.56);border-radius:999px;padding:.2rem .42rem;font-size:.66rem;font-weight:700;letter-spacing:.08em}.playing-card-badge{position:absolute;top:6px;right:6px;border-radius:999px;border:1px solid rgba(15,23,42,.26);padding:.12rem .36rem;font-size:.56rem;font-weight:700;letter-spacing:.06em;color:#f8fafc;background:#0f172ab8}.toast-panel{padding:.76rem .92rem;font-size:.85rem}.toast-success{border-color:#51cea673;background:#07322ab8;color:#baf8df}.toast-error{border-color:#e77a7a73;background:#40161ec7;color:#ffd0d0}.debug-panel{border-color:#d2ad586b;background:linear-gradient(165deg,#141f38d1,#0c182fc7)}.debug-copy{margin:0;font-size:.82rem;color:#bfd2ea}.game-viewport{position:relative;min-height:0;height:100%;width:100%;overflow:hidden}.fullscreen-window{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.48rem;width:100%;height:100%;border-radius:0;border:0;box-shadow:none;padding:.5rem;overflow:hidden}.fullscreen-window:before{inset:4px;border-radius:10px}.fullscreen-window .game-table-canvas{height:100%}.fullscreen-window:fullscreen::backdrop{background:#020910}.fullscreen-window:-webkit-full-screen::-webkit-backdrop{background:#020910}.game-chrome{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.36rem;border:1px solid rgba(131,171,157,.34);border-radius:12px;background:#051423d1;padding:.34rem .48rem}.game-room-info{display:flex;flex-wrap:wrap;align-items:center;gap:.24rem .5rem}.game-room-info .session-label{margin:0}.game-room-info .session-room{margin:0;font-size:.88rem;letter-spacing:.08em}.game-room-info .session-player{margin:0;font-size:.68rem}.game-room-info .session-debug-pill{margin:0}.game-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.game-loading-panel{margin:.7rem}.game-toast-layer{position:absolute;right:.72rem;top:.72rem;z-index:31;display:grid;gap:.44rem;max-width:min(520px,calc(100% - 1.4rem))}.game-toast-layer .toast-panel{margin:0}@media(min-width:760px){.app-shell{padding:1.6rem}.hero-panel{padding:1.5rem 1.7rem}.hero-title{font-size:2.2rem}.lobby-grid{grid-template-columns:1fr 1fr}.debug-panel{grid-column:1 / -1}.session-strip{flex-direction:row;align-items:center}.role-grid{grid-template-columns:1fr 1fr}.app-main.is-game-main{height:100%}.fullscreen-window{padding:.62rem}.game-room-info .session-room{font-size:.96rem}.game-room-info .session-player{font-size:.74rem}.fullscreen-window .table-grid{grid-template-columns:minmax(0,1.56fr) minmax(210px,.9fr)}.playing-card{width:84px;height:122px}.playing-card.is-compact{width:66px;height:96px}}@media(orientation:landscape)and (max-height:820px){.fullscreen-window{padding:.42rem;gap:.36rem}.game-chrome{border-radius:10px;padding:.28rem .4rem}.game-room-info .session-room{font-size:.82rem}.game-room-info .session-player{font-size:.64rem}.app-main.is-game-main .action-btn{padding:.42rem .62rem;font-size:.72rem}.tcg-window-header{gap:.3rem}.window-pills{gap:.22rem}.window-pill{padding:.14rem .32rem;font-size:.6rem}.game-table-canvas{gap:.38rem;padding:.42rem}.lane-title{font-size:.66rem}.opponent-row{gap:.3rem;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));padding:.28rem .36rem}.opponent-seat{padding:.3rem}.fullscreen-window .table-grid{grid-template-columns:minmax(0,1.42fr) minmax(164px,.86fr);gap:.38rem}.arena-zone,.hud-zone{padding:.4rem}.field-stage{min-height:98px;padding:.46rem .58rem}.hud-field-state{padding:.42rem .5rem}.hud-field-state p,.hud-player-meta,.hud-note,.hand-sub,.field-empty,.field-owner,.arena-info{font-size:.58rem}.hud-state-title,.hud-player-name{font-size:.62rem}.hand-zone{padding:.38rem .58rem}.hand-scroll{gap:.32rem;padding-bottom:.2rem}.playing-card{width:64px;height:92px}.playing-card.is-compact{width:50px;height:72px}}@media(orientation:landscape)and (max-height:640px){.fullscreen-window{padding:.34rem;gap:.28rem}.fullscreen-window:before{inset:3px;border-radius:10px}.game-chrome{border-radius:9px;padding:.24rem .34rem;gap:.24rem}.game-room-info{gap:.18rem .38rem}.game-room-info .session-label{font-size:.56rem;letter-spacing:.2em}.game-room-info .session-room{font-size:.74rem}.game-room-info .session-player{font-size:.58rem}.game-controls{gap:.24rem}.app-main.is-game-main .action-btn{padding:.34rem .5rem;font-size:.62rem}.window-title-wrap{display:none}.window-pills{gap:.18rem}.window-pill{padding:.11rem .26rem;font-size:.54rem}.game-table-canvas{gap:.3rem;padding:.3rem}.lane-title{font-size:.6rem}.opponent-row{grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:.24rem;padding:.24rem .3rem}.opponent-seat{border-radius:9px;padding:.24rem}.opponent-name{font-size:.62rem}.opponent-status,.opponent-rank,.opponent-waiting{display:none}.opponent-hand-count{margin-top:.14rem;font-size:.54rem}.card-back-stack{height:30px;margin-top:.1rem}.card-back{width:23px;height:30px;border-radius:5px}.card-back-count{min-width:16px;padding:.03rem .18rem;font-size:.5rem}.table-grid{grid-template-columns:minmax(0,1.34fr) minmax(130px,.84fr);gap:.28rem}.arena-zone,.hud-zone{padding:.3rem}.field-stage{min-height:76px;padding:.32rem .44rem}.field-title{font-size:.55rem}.field-cards{margin-top:.18rem;gap:.2rem}.hud-zone .panel-title{font-size:.7rem}.hud-player-list{gap:.18rem}.hud-player{padding:.24rem .32rem}.hud-field-state p,.hud-player-meta,.hud-note,.arena-info,.field-empty,.field-owner,.hand-sub,.role-title{font-size:.52rem}.hud-state-title,.hud-player-name{font-size:.56rem}.hand-zone{padding:.3rem .46rem;gap:.24rem}.playing-card{width:48px;height:68px;border-radius:8px}.playing-card.is-compact{width:38px;height:54px}.playing-card-corner{font-size:.5rem}.playing-card-corner.top{top:4px;left:4px}.playing-card-corner.bottom{right:4px;bottom:4px}.playing-card-suit{font-size:.82rem}.playing-card-rank{margin-top:.08rem;font-size:.6rem}.playing-card.is-compact .playing-card-suit{font-size:.72rem}.playing-card.is-compact .playing-card-rank{font-size:.54rem}.playing-card-badge{top:3px;right:3px;padding:.05rem .2rem;font-size:.4rem}.joker-mark{padding:.08rem .18rem;font-size:.42rem}.game-toast-layer{right:.34rem;top:.34rem;max-width:min(320px,calc(100% - .68rem))}.game-toast-layer .toast-panel{padding:.4rem .48rem;font-size:.62rem}}@media(orientation:landscape)and (max-height:500px){.game-chrome{padding:.18rem .28rem}.window-pills{display:none}.table-grid{grid-template-columns:minmax(0,1fr) 110px}.hud-zone .panel-title,.hud-player-meta,.role-panel{display:none}.playing-card{width:42px;height:60px}.playing-card.is-compact{width:34px;height:48px}}@media(orientation:landscape)and (max-height:820px){.fullscreen-window{padding:.3rem;gap:.22rem}.game-chrome{padding:.2rem .3rem;gap:.22rem}.game-room-info .session-player{display:none}.game-controls .action-btn{padding:.26rem .42rem;font-size:.58rem}.game-table-canvas{grid-template-rows:auto minmax(0,1fr) minmax(0,.72fr);gap:.22rem;padding:.24rem}.lane-title{display:none}.opponent-row{gap:.16rem;padding:.16rem}.opponent-seat{gap:.08rem .2rem;padding:.14rem .2rem}.opponent-name{font-size:.56rem}.opponent-hand-count,.opponent-waiting{font-size:.48rem}.table-grid{grid-template-columns:minmax(0,1fr) 108px;gap:.2rem}.arena-zone,.hud-zone{padding:.24rem}.arena-info,.field-title,.field-empty,.field-owner,.hud-state-title,.hud-field-state p,.hud-note,.hand-sub,.role-title{font-size:.5rem}.field-stage{min-height:64px;padding:.24rem .32rem}.field-cards{gap:.16rem}.hand-zone{gap:.16rem;padding:.2rem .26rem}.hand-head .hand-sub:last-child{display:none}.hand-head .panel-title{font-size:.62rem}.hand-scroll{gap:.18rem;padding-bottom:.12rem}.playing-card{width:42px;height:60px;border-radius:7px}.playing-card.is-compact{width:32px;height:46px}.playing-card-corner{font-size:.45rem}.playing-card-suit{font-size:.7rem}.playing-card-rank{font-size:.52rem}.action-row{gap:.16rem}.action-row .action-btn{padding:.22rem .38rem;font-size:.54rem}.game-toast-layer{right:.26rem;top:.26rem;max-width:min(260px,calc(100% - .52rem))}.game-toast-layer .toast-panel{padding:.26rem .34rem;font-size:.54rem}}@media(orientation:landscape)and (max-height:640px){.table-grid{grid-template-columns:minmax(0,1fr) 96px}.hud-note{display:none}.playing-card{width:38px;height:54px}.playing-card.is-compact{width:30px;height:42px}.action-row .action-btn{padding:.18rem .3rem;font-size:.5rem}}@media(orientation:landscape)and (max-height:500px){.fullscreen-window{padding:.24rem;gap:.16rem}.game-chrome{padding:.14rem .2rem}.game-room-info .session-debug-pill{display:none}.game-controls .action-btn{padding:.16rem .24rem;font-size:.48rem}.game-table-canvas{grid-template-rows:auto minmax(0,1fr) minmax(0,.68fr);padding:.18rem}.opponent-row{gap:.12rem;padding:.12rem}.opponent-seat{padding:.1rem .14rem}.table-grid{grid-template-columns:minmax(0,1fr) 86px;gap:.14rem}.arena-zone,.hud-zone{padding:.16rem}.field-stage{min-height:50px;padding:.18rem .22rem}.hand-zone{padding:.14rem .2rem}.hand-scroll{gap:.12rem}.playing-card{width:34px;height:48px}.playing-card.is-compact{width:26px;height:36px}}@media(orientation:portrait){.fullscreen-window{grid-template-rows:auto minmax(0,1fr);padding:.28rem;gap:.18rem}.tcg-window-header{display:none}.game-chrome{padding:.2rem .28rem;gap:.2rem}.game-room-info{gap:.14rem .3rem}.game-room-info .session-room{font-size:.78rem}.game-room-info .session-player{display:none}.game-controls{gap:.14rem}.game-controls .action-btn{padding:.2rem .3rem;font-size:.54rem;border-radius:8px}.game-table-canvas{grid-template-rows:auto minmax(0,1fr) minmax(0,.86fr);gap:.18rem;padding:.18rem}.lane-title{display:none}.opponent-row{gap:.12rem;padding:.12rem;grid-template-columns:repeat(3,minmax(0,1fr))}.opponent-seat{padding:.1rem .14rem;gap:.06rem .12rem}.opponent-name{font-size:.54rem}.opponent-hand-count,.opponent-waiting{font-size:.44rem}.table-grid{grid-template-columns:minmax(0,1fr) 94px;gap:.12rem}.arena-zone,.hud-zone{padding:.16rem;border-radius:8px}.arena-info,.field-title,.field-empty,.field-owner,.hud-state-title,.hud-field-state p,.hud-note,.hand-sub,.role-title{font-size:.47rem}.field-stage{min-height:54px;padding:.14rem .2rem;border-radius:8px}.field-cards{gap:.12rem;margin-top:.08rem}.hand-zone{padding:.14rem .18rem;gap:.12rem;border-radius:10px}.hand-head .panel-title{font-size:.58rem}.hand-head .hand-sub:last-child{display:none}.hand-overview{gap:.06rem}.mini-hand-card{height:1.12rem;border-radius:4px;font-size:.42rem}.hand-scroll{gap:.12rem;padding-bottom:.08rem}.playing-card{width:80px;height:114px;border-radius:9px}.action-row{gap:.1rem}.action-row .action-btn{padding:.16rem .24rem;font-size:.5rem}.game-toast-layer{right:.18rem;top:.18rem;max-width:min(220px,calc(100% - .36rem))}.game-toast-layer .toast-panel{padding:.2rem .24rem;font-size:.48rem}}@media(orientation:portrait)and (max-height:760px){.game-room-info .session-debug-pill{display:none}.game-controls .action-btn{padding:.14rem .22rem;font-size:.48rem}.table-grid{grid-template-columns:minmax(0,1fr) 82px}.playing-card{width:72px;height:102px}.playing-card.is-compact{width:28px;height:40px}}@keyframes soft-float{0%{transform:translateY(0)}50%{transform:translateY(-7px)}to{transform:translateY(0)}}@keyframes turn-border-sweep{0%{background-position:0 0,0% 0}to{background-position:0 0,220% 0}}@keyframes turn-border-pulse{0%,to{border-color:#ff6a4af0;box-shadow:0 0 0 1px #ffb24d57 inset,0 0 12px #ff5c4057,0 0 20px #ffbc523d}50%{border-color:#ffd470fa;box-shadow:0 0 0 1px #ffe48e8a inset,0 0 18px #ff9a4b70,0 0 28px #ffe07a57}}.opponent-seat.is-current{border-color:#ffc460fa;background:linear-gradient(150deg,#171e2ceb,#121824eb),linear-gradient(110deg,#ff613f38,#ffd26c57,#ff613f38);background-size:100% 100%,220% 100%;animation:turn-border-pulse 1.35s ease-in-out infinite,turn-border-sweep 2.7s linear infinite}.hand-zone.is-current-turn{border-color:#ffc966fa;background:linear-gradient(180deg,#082d21d6,#07221be0),linear-gradient(120deg,#ff5d3926,#ffc6603d,#ff5d3926);background-size:100% 100%,220% 100%;animation:turn-border-pulse 1.55s ease-in-out infinite,turn-border-sweep 3s linear infinite}.field-stage{min-height:clamp(132px,24vh,190px)}.field-cards{gap:.3rem;align-items:flex-end}.field-card{position:relative;width:clamp(72px,9vw,92px);height:clamp(102px,12.5vw,132px);border-radius:12px;border:1px solid rgba(56,79,116,.38);background:linear-gradient(160deg,#fff,#eef3fa 68%,#e1e9f4);box-shadow:0 8px 18px #050d1b57;display:flex;align-items:center;justify-content:center}.field-card-corner,.field-card-center,.field-card-rank{margin:0;font-weight:700;line-height:1}.field-card-corner{position:absolute;top:7px;left:8px;display:flex;flex-direction:column;gap:.06rem;align-items:center;font-size:.92rem}.field-card-center{font-size:2rem}.field-card-rank{position:absolute;right:8px;bottom:8px;font-size:1.1rem;transform:rotate(180deg)}.field-card.is-red .field-card-corner,.field-card.is-red .field-card-center,.field-card.is-red .field-card-rank{color:#c63333}.field-card.is-black .field-card-corner,.field-card.is-black .field-card-center,.field-card.is-black .field-card-rank{color:#161f34}.hand-overview{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:.08rem;width:100%}.mini-hand-card{height:1.28rem;border-radius:5px;font-size:.46rem}.mini-hand-card.is-empty{color:transparent;border-color:#627d9c47;background:linear-gradient(160deg,#1a2a4157,#121e316b)}.playing-card-badge{top:6px;right:6px;width:.72rem;height:.72rem;border-radius:999px;border:1px solid rgba(241,245,253,.92);padding:0;font-size:0;line-height:0;color:transparent;box-shadow:0 2px 6px #060b166b}.playing-card-badge[data-tone=skip]{background:#c9901f}.playing-card-badge[data-tone=give]{background:#318fcd}.playing-card-badge[data-tone=cut]{background:#1f9a6b}.playing-card-badge[data-tone=reverse]{background:#8454da}.playing-card-badge[data-tone=erase]{background:#dd6b34}.playing-card-badge[data-tone=ogino]{background:#de3f50}.playing-card-badge[data-tone=joker]{background:#4f5fda}@media(orientation:portrait){.field-stage{min-height:clamp(118px,23vh,168px)}.field-cards{gap:.18rem}.field-card{width:66px;height:94px;border-radius:9px}.field-card-corner{top:5px;left:6px;font-size:.74rem}.field-card-center{font-size:1.6rem}.field-card-rank{right:6px;bottom:6px;font-size:.9rem}.hand-overview{gap:.05rem}.mini-hand-card{height:.96rem;border-radius:4px;font-size:.37rem}.playing-card-badge{top:4px;right:4px;width:.56rem;height:.56rem}}@media(orientation:portrait)and (max-height:760px){.field-stage{min-height:106px}.field-card{width:60px;height:86px}.mini-hand-card{height:.88rem;font-size:.34rem}}@media(prefers-reduced-motion:reduce){.opponent-seat.is-current,.hand-zone.is-current-turn{animation:none}}.playing-card[data-tone=skip],.playing-card[data-tone=give],.playing-card[data-tone=cut],.playing-card[data-tone=reverse],.playing-card[data-tone=erase],.playing-card[data-tone=ogino],.playing-card[data-tone=joker]{border-color:#2c3f6059;background:linear-gradient(160deg,#fff,#f0f4fa 64%,#e3ebf5)}.hud-role-guide{margin-top:.18rem;border:1px solid rgba(143,213,176,.42);border-radius:8px;background:#08291fb8;padding:.22rem .3rem}.hud-role-guide summary{cursor:pointer;list-style:none;margin:0;font-size:.56rem;font-weight:700;color:#e3fff4;display:flex;align-items:center;justify-content:space-between;gap:.2rem}.hud-role-guide summary::-webkit-details-marker{display:none}.hud-role-guide summary:after{content:"+";color:#fbd694;font-size:.72rem;line-height:1}.hud-role-guide[open] summary:after{content:"-"}.hud-role-list{margin:.18rem 0 0;padding:0;list-style:none;display:grid;gap:.14rem}.hud-role-item{margin:0;padding:0;display:grid;gap:.02rem}.hud-role-rank,.hud-role-effect{margin:0;line-height:1.26}.hud-role-rank{font-size:.5rem;font-weight:700;color:#f9f2b3}.hud-role-effect{font-size:.48rem;color:#d6f2e7}.hand-overview{gap:.12rem}.mini-hand-card{height:1.34rem;border-radius:6px;font-size:.56rem;font-weight:800;letter-spacing:0;font-variant-numeric:tabular-nums}@media(orientation:portrait){.hud-role-guide{padding:.16rem .2rem}.hud-role-guide summary{font-size:.5rem}.hud-role-list{gap:.1rem}.hud-role-rank{font-size:.46rem}.hud-role-effect{font-size:.44rem}.hand-overview{gap:.07rem}.mini-hand-card{height:1.08rem;font-size:.5rem}}@media(orientation:portrait)and (max-height:760px){.mini-hand-card{height:.96rem;font-size:.44rem}}.hud-role-board{margin-top:.16rem;border:1px solid rgba(143,213,176,.42);border-radius:8px;background:#08291fb8;padding:.2rem .28rem}.hud-role-board-title{margin:0;font-size:.56rem;font-weight:700;color:#e3fff4}.hud-role-board-list{margin:.16rem 0 0;padding:0;list-style:none;display:grid;gap:.1rem}.hud-role-board-item{margin:0;padding:.08rem .12rem;border-radius:6px;border:1px solid rgba(136,191,168,.28);background:#0820197a;display:flex;align-items:center;justify-content:space-between;gap:.16rem}.hud-role-board-item.is-current{border-color:#ffc966bf;box-shadow:0 0 0 1px #ffbc5638 inset}.hud-role-board-name{margin:0;font-size:.5rem;color:#d7f0e4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-role-chip{margin:0;border-radius:999px;border:1px solid rgba(131,160,187,.45);padding:.04rem .26rem;font-size:.46rem;font-weight:700;white-space:nowrap;color:#f2f7ff;background:#23354ec7}.hud-role-chip.is-daihugo{border-color:#f5d77ab8;color:#ffe8ae;background:#624a1ac7}.hud-role-chip.is-hugo{border-color:#ffc17399;color:#ffd6ad;background:#5a361ac7}.hud-role-chip.is-heimin{border-color:#91bbd68a;color:#e4f2ff;background:#203a56c7}.hud-role-chip.is-hinmin{border-color:#74c2af8f;color:#d5fff2;background:#154e40c7}.hud-role-chip.is-daihinmin{border-color:#ec7d7d9e;color:#ffd0d0;background:#67242cc7}.hud-role-chip.is-pending{border-color:#86a2ba80;color:#dbe7f4;background:#23354ec7}@media(orientation:portrait){.hud-role-board{margin-top:.12rem;padding:.14rem .16rem}.hud-role-board-title{font-size:.5rem}.hud-role-board-list{gap:.06rem}.hud-role-board-item{padding:.06rem .08rem;border-radius:5px;gap:.1rem}.hud-role-board-name{font-size:.44rem}.hud-role-chip{padding:.02rem .2rem;font-size:.4rem}}.mini-hand-card.is-special{border-color:#cba33fd9;background:linear-gradient(160deg,#fff6cb,#fde9a0)}.mini-hand-card.is-special.is-selected{border-color:#42c9f1f2}
