:root{color-scheme:dark;--bg: #080311;--bg-soft: #120a22;--surface: rgba(15, 10, 29, .84);--surface-strong: rgba(21, 14, 39, .96);--surface-border: rgba(255, 255, 255, .1);--text: #f8f8fb;--text-dim: rgba(248, 248, 251, .72);--accent: #ffe45f;--accent-2: #5af2ff;--accent-3: #ff5fd8;--danger: #ff6978;--success: #6df7a8;--shadow: 0 30px 80px rgba(0, 0, 0, .35);--radius-xl: 30px;--radius-lg: 22px;--radius-md: 16px;--page-width: 1180px;font-family:Trebuchet MS,Avenir Next,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(circle at top left,rgba(255,95,216,.25),transparent 30%),radial-gradient(circle at top right,rgba(90,242,255,.22),transparent 26%),radial-gradient(circle at bottom center,rgba(255,228,95,.14),transparent 28%),linear-gradient(180deg,#11071f,#05020b);color:var(--text)}button,input{font:inherit}button{cursor:pointer}a{color:inherit}.page-shell{width:min(calc(100% - 28px),var(--page-width));margin:0 auto;padding:28px 0 124px}.room-shell{padding-top:22px}.hero-card,.panel-card,.room-header-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-xl);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hero-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.9fr);gap:28px;padding:34px;position:relative;overflow:hidden}.hero-card:after{content:"";position:absolute;inset:auto 8% -30% auto;width:280px;aspect-ratio:1;background:radial-gradient(circle,rgba(255,228,95,.35),transparent 70%);pointer-events:none}.hero-copy h1,.room-header-card h1,.panel-head h2,.stage-card h2,.section-copy h2,.modal-card h2{margin:0;letter-spacing:-.04em;line-height:.96}.hero-copy h1{max-width:11ch;font-size:clamp(3rem,6vw,5.3rem)}.hero-text,.section-copy p,.feature-card p,.special-card p,.room-subline,.stage-card p,.soft-note,.hint-bubble,.join-link,.reconnect-card p{color:var(--text-dim);line-height:1.6}.hero-text{max-width:56ch;font-size:1.02rem}.eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#f8f8fb9e}.eyebrow:before{content:"";width:9px;height:9px;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent-3));box-shadow:0 0 20px #ff5fd880}.hero-metrics,.lobby-hints,.table-actions,.room-header-actions{display:flex;flex-wrap:wrap;gap:12px}.metric-chip,.hint-pill,.required-suit-badge{display:inline-flex;flex-direction:column;gap:4px;padding:12px 16px;border-radius:18px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.metric-chip strong,.hint-pill,.required-suit-badge{font-size:1rem}.metric-chip span,.player-row-meta,.pile-label,.special-card small{color:var(--text-dim);font-size:.88rem}.hero-tableau{position:relative;min-height:310px;display:grid;place-items:center}.table-card{position:absolute;width:min(72vw,220px);aspect-ratio:.7;border-radius:28px;border:1px solid rgba(255,255,255,.12);box-shadow:var(--shadow)}.stack-back{transform:translate(-36px,-10px) rotate(-12deg);background:linear-gradient(160deg,#1f1140,#0c0819)}.stack-middle{transform:translate(18px,-20px) rotate(10deg);background:linear-gradient(160deg,#1d0d2e,#090711)}.stack-front{display:grid;place-items:center;gap:4px;background:linear-gradient(135deg,#ffffff24,#ffffff05),linear-gradient(180deg,#fff4c8,#ffd979);color:#190f04}.table-rank{font-size:clamp(4rem,12vw,7rem);font-weight:900}.table-suit{font-size:clamp(2.3rem,6vw,3.6rem)}.table-pulse{position:absolute;border-radius:999px;filter:blur(6px);opacity:.72}.pulse-a{inset:auto auto 28px 0;width:92px;height:92px;background:#5af2ff75}.pulse-b{inset:18px 18px auto auto;width:120px;height:120px;background:#ff5fd857}.form-grid,.info-grid,.special-grid,.room-layout{display:grid;gap:18px;margin-top:22px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.special-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start}.special-card-grid,.opponent-grid,.suit-choice-grid{display:grid;gap:14px}.special-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-card,.stage-card,.compact-card{padding:24px}.panel-centered{text-align:center;padding:44px 28px}.panel-head{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.panel-head-tight{margin-bottom:14px}.field-label{display:block;margin-bottom:8px;font-size:.92rem;color:var(--text-dim)}.text-input{width:100%;padding:16px 18px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:#07050fb8;color:var(--text);outline:none;transition:border-color .16s ease,transform .16s ease}.text-input:focus{border-color:#5af2ffb8;transform:translateY(-1px)}.text-input-code{text-transform:uppercase;letter-spacing:.22em;font-weight:800}.primary-button,.ghost-button,.warning-button,.mini-button{border:0;border-radius:18px;padding:14px 18px;font-weight:800;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.primary-button:hover,.ghost-button:hover,.warning-button:hover,.mini-button:hover{transform:translateY(-1px)}.primary-button:disabled,.ghost-button:disabled,.warning-button:disabled,.mini-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.primary-button{background:linear-gradient(135deg,var(--accent),#ffb936);color:#190f04;box-shadow:0 16px 34px #ffb93642}.ghost-button{background:#ffffff12;color:var(--text);border:1px solid rgba(255,255,255,.12)}.warning-button{background:linear-gradient(135deg,var(--accent-3),#ff9566);color:#fff8ff;box-shadow:0 16px 36px #ff5fd83d}.danger-button{background:#ff697826;color:#ffd2d7;border:1px solid rgba(255,105,120,.38)}.wide-button{width:100%}.feature-card,.special-card{position:relative;overflow:hidden}.feature-card:before,.special-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 45%);pointer-events:none}.feature-dot{display:inline-flex;width:13px;height:13px;border-radius:999px;margin-bottom:18px;background:linear-gradient(135deg,var(--accent-2),var(--accent-3))}.special-card{display:flex;flex-direction:column;gap:12px;padding:22px;background:var(--surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg)}.special-rank{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:#ffe45f21;color:var(--accent);font-size:1.7rem;font-weight:900}.inline-error{margin:16px 0 0;padding:14px 16px;border-radius:18px;background:#ff697824;border:1px solid rgba(255,105,120,.24);color:#ffdbe0}.room-header-card{display:flex;justify-content:space-between;gap:20px;padding:22px 24px;align-items:center}.room-header-card h1,.join-overlay-card h2,.panel-card h2{font-size:clamp(1.9rem,3vw,3rem)}.room-subline{max-width:60ch;margin-top:10px}.room-layout{grid-template-columns:320px minmax(0,1fr);align-items:start}.side-panel,.game-panel{display:grid;gap:18px}.qr-wrapper{display:grid;place-items:center;min-height:206px;padding:16px;border-radius:22px;background:#0000002e;border:1px solid rgba(255,255,255,.08)}.join-link{margin:16px 0;overflow-wrap:anywhere}.player-list{display:grid;gap:12px}.player-row,.opponent-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.player-row.is-current,.opponent-card.is-current{background:#5af2ff1a;border-color:#5af2ff47}.player-row-main{display:flex;align-items:center;gap:12px;min-width:0}.player-row-main strong,.opponent-card strong{display:block;font-size:1rem}.player-row-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.presence-dot{width:11px;height:11px;border-radius:999px;background:#ffffff3d}.presence-dot.is-online{background:var(--success);box-shadow:0 0 18px #6df7a88c}.mini-button{padding:10px 12px;font-size:.86rem}.stage-card{overflow:hidden}.table-status-row,.table-top{display:grid;gap:18px}.table-status-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-bottom:18px}.table-top{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}.pile-block{display:flex;flex-direction:column;gap:10px}.pile-block-right{align-items:flex-end}.draw-pile,.table-card-face,.hand-card{border-radius:24px;border:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,#ffffff24,#ffffff05),linear-gradient(180deg,#fefefc,#f1ede4);color:#1c1620}.draw-pile{width:min(150px,100%);aspect-ratio:.72;display:grid;place-items:center;font-size:2rem;font-weight:900;align-self:flex-start}.draw-pile.is-actionable{outline:2px solid rgba(90,242,255,.4);outline-offset:3px}.center-card-block{display:grid;gap:10px;place-items:center}.table-card-face{width:min(180px,100%);aspect-ratio:.72;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 18px 34px #0000003d}.table-card-rank{font-size:clamp(3rem,7vw,4.8rem);font-weight:900}.table-card-suit{font-size:clamp(1.8rem,4vw,2.6rem)}.hint-bubble{max-width:240px;padding:14px 16px;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);text-align:right}.hand-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:14px}.hand-card{min-height:152px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;font-weight:900;transition:transform .14s ease,box-shadow .14s ease}.hand-card.is-playable{box-shadow:0 0 0 2px #ffe45f7a,0 20px 34px #00000038}.hand-card.is-playable:hover{transform:translateY(-3px)}.hand-card-rank{font-size:2.2rem}.hand-card-suit{font-size:1.9rem;align-self:flex-end}.suit-hearts,.suit-diamonds{color:#d23b52}.suit-clubs,.suit-spades{color:#17121d}.opponent-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.join-overlay-card{max-width:540px;margin:22px auto 0;padding:26px;background:var(--surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-xl);box-shadow:var(--shadow)}.join-form{display:grid;gap:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#05030a8f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;place-items:center;padding:18px;z-index:40}.modal-overlay-soft{background:#08040e7a}.modal-card{width:min(100%,470px);padding:28px;border-radius:28px;background:#0b0818f0;border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow)}.modal-card h2{margin-bottom:16px}.suit-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0}.suit-choice{border:1px solid rgba(255,255,255,.1);border-radius:20px;background:#ffffff0f;min-height:112px;display:grid;place-items:center;gap:6px;color:var(--text)}.suit-choice span{font-size:2.1rem}.shared-site-footer{position:fixed;inset:auto 0 0;z-index:20;background:#05020ac7;border-top:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.shared-site-footer-inner{width:min(calc(100% - 28px),var(--page-width));margin:0 auto;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:.9rem;color:#f8f8fbc7}.shared-site-footer-links{display:flex;gap:14px}.shared-site-footer-links a{text-decoration:none}.shared-site-footer-links a:hover{text-decoration:underline}.consent-banner{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:18px;background:#05020a8f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.consent-card{width:min(100%,620px);border-radius:28px;border:1px solid rgba(255,255,255,.1);background:#0b0818f5;box-shadow:var(--shadow);padding:18px 22px 22px}.consent-dragbar{width:100%;display:flex;justify-content:center;margin-bottom:14px}.consent-dragbar span{width:84px;height:6px;border-radius:999px;background:#ffffff2e}.consent-copy h2,.consent-service-list h3{margin:0 0 10px}.consent-copy p,.consent-copy a,.consent-service-list span,.consent-category-copy small{color:var(--text-dim)}.consent-copy a,.consent-service-list a{text-decoration:underline}.consent-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.consent-action-button{flex:1 1 160px}.consent-settings-panel{margin-top:20px;display:grid;gap:18px}.consent-category-list,.consent-service-list ul{display:grid;gap:12px}.consent-category-row{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:18px;background:#ffffff0d}.consent-category-copy{display:grid;gap:4px}.consent-toggle{position:relative;width:52px;min-width:52px;height:32px}.consent-toggle input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.consent-toggle span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#ffffff24;transition:background .16s ease}.consent-toggle span:after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:999px;background:#fff;transition:transform .16s ease}.consent-toggle input:checked+span{background:#5af2ff61}.consent-toggle input:checked+span:after{transform:translate(20px)}@media (max-width: 980px){.hero-card,.form-grid,.info-grid,.special-grid,.room-layout,.table-top{grid-template-columns:1fr}.room-header-card,.shared-site-footer-inner{flex-direction:column;align-items:flex-start}.hint-bubble{max-width:none;text-align:left}.pile-block-right{align-items:flex-start}}@media (max-width: 640px){.page-shell{width:min(calc(100% - 18px),var(--page-width));padding-bottom:144px}.hero-card,.panel-card,.compact-card,.stage-card,.join-overlay-card,.modal-card,.room-header-card{padding:20px;border-radius:24px}.hero-copy h1{font-size:clamp(2.6rem,14vw,3.8rem)}.room-header-card h1,.join-overlay-card h2,.panel-card h2{font-size:clamp(1.7rem,9vw,2.4rem)}.table-card-face,.draw-pile{width:132px}.hand-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hand-card{min-height:132px}.shared-site-footer-inner{min-height:68px}}
