:root{--felt-deep:#0b2e23;--felt-mid:#123b2c;--felt-line:#1e5240;--gold:#c9a227;--gold-bright:#e6c65c;--brick:#b0453a;--parchment:#f2ecd8;--parchment-dim:#cfc7ad;--ink:#16201b;--font-display:"Fraunces", Georgia, serif;--font-body:"Work Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box}html,body{background:radial-gradient(ellipse at 50% -10%, var(--felt-mid), var(--felt-deep) 60%);color:var(--parchment);font-family:var(--font-body);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;height:100%;margin:0;padding:0}body{touch-action:manipulation;background-image:radial-gradient(ellipse at 50% -10%, var(--felt-mid), var(--felt-deep) 60%), repeating-linear-gradient(45deg, #ffffff04 0px, #ffffff04 1px, transparent 1px, transparent 8px);overflow-x:hidden}a{color:inherit}button{font-family:var(--font-body);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.app-viewport{justify-content:center;align-items:center;height:100dvh;display:flex;overflow:hidden}.app-frame{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%;max-width:480px;height:100%;margin:0 auto;position:relative;overflow-y:auto}.app-frame::-webkit-scrollbar{display:none}@media (min-width:641px){.app-viewport{background:radial-gradient(at 50% -20%,#08201780,#030b08);padding:36px 20px}.app-frame{border:10px solid #050f0b;border-radius:46px;height:min(860px,100%);box-shadow:0 40px 90px #0000008c,0 0 0 2px #c9a22726}.app-frame:before{content:"";z-index:40;background:#050f0b;border-radius:0 0 14px 14px;width:120px;height:22px;margin:0 auto -22px;display:block;position:sticky;top:0}.bottom-bar{position:absolute!important}}::selection{background:var(--gold);color:var(--ink)}:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.poker-room{max-width:480px;min-height:100%;padding:0 16px calc(92px + env(safe-area-inset-bottom));margin:0 auto}.room-head{z-index:20;border-bottom:1px solid var(--felt-line);padding:calc(14px + env(safe-area-inset-top)) 16px 14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b2e23eb;justify-content:space-between;align-items:center;gap:12px;margin:0 -16px 24px;display:flex;position:sticky;top:0}.room-head h1{font:600 28px var(--font-display);margin:4px 0 0}.eyebrow{color:var(--gold-bright);font:600 11px var(--font-mono);letter-spacing:2px}.share{border:1px solid var(--gold);color:var(--gold-bright);cursor:pointer;background:#c9a2271f;border-radius:999px;padding:8px 14px}.centered{text-align:center;flex-direction:column;align-items:center;gap:14px;margin:90px auto;display:flex}.waiting-mark{color:var(--gold-bright);font-size:64px}.centered h2{font:600 32px var(--font-display);margin:0}.join-name-form{text-align:left;border:1px solid var(--felt-line);background:#123b2c94;border-radius:16px;flex-direction:column;gap:10px;width:min(100%,320px);padding:20px;display:flex}.join-name-form input{background:var(--felt-deep);border:1px solid var(--felt-line);width:100%;min-height:45px;color:var(--parchment);font:15px var(--font-body);border-radius:8px;padding:11px 12px}.join-name-form input:focus{border-color:var(--gold);outline:none}.join-name-form button{width:100%}.muted{color:var(--parchment-dim);line-height:1.5}.error{color:var(--brick)}.matchup{font:500 25px var(--font-display)}.matchup span{color:var(--gold);font:12px var(--font-mono);margin:0 12px}.gold-button{background:var(--gold);color:var(--ink);cursor:pointer;border:0;border-radius:10px;padding:15px 28px;font-weight:600;transition:box-shadow .15s,transform .15s;box-shadow:0 6px 16px #0000004d}.gold-button:hover{background:var(--gold-bright);box-shadow:0 8px 20px #00000059}.gold-button:active{transform:translateY(1px);box-shadow:0 3px 10px #0000004d}.gold-button.disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.action{width:100%;display:block}.bottom-bar{z-index:30;max-width:480px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(#0b2e2300,#0b2e23f7 45%);margin:0 auto;position:fixed;bottom:0;left:0;right:0}.bottom-bar .gold-button{min-height:56px;font-size:16px}.poker-board{flex-direction:column;gap:10px;margin-top:20px;display:flex}.player-panel{border:1px solid var(--felt-line);background:#0b2e238c;border-radius:14px;padding:14px}.player-panel.active{border-color:var(--gold);box-shadow:0 0 0 1px #c9a22733}.player-panel-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.player-label{align-items:center;gap:7px;min-width:0;font-size:13px;display:flex}.status-dot{background:var(--gold);border-radius:50%;flex:none;width:6px;height:6px}.cards-left{color:var(--parchment-dim);font:500 11px var(--font-mono);white-space:nowrap}.hand-status{flex-direction:column;align-items:flex-end;gap:2px;min-width:0;display:flex}.hand-status strong{color:var(--parchment);font:700 15px var(--font-display);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.player-panel-content{align-items:center;gap:12px;margin-top:11px;display:flex}.deck-column{flex:0 0 56px;justify-content:center;align-items:center;min-height:60px;display:flex}.card-stack{transform-origin:50%;transform:scale(.78)}.panel-caption{color:var(--gold);font:600 9px var(--font-mono);letter-spacing:1.3px;text-transform:uppercase}.small-deck{transform-origin:0 100%;margin-top:auto;transform:scale(.62)}.card-row{align-items:center;gap:8px;min-height:64px;display:flex}.table-center{text-align:center;border-top:1px solid var(--felt-line);border-bottom:1px solid var(--felt-line);padding:10px 12px}.table-badge{color:var(--gold);font:10px var(--font-mono);letter-spacing:2px}.table-title{font:600 17px var(--font-display);margin:4px 0 5px}.table-title.win-title{color:var(--gold-bright)}.hand-compare{display:none}.hand-preview{flex:1;grid-template-columns:repeat(5,minmax(30px,1fr));gap:5px;min-width:0;margin:0;display:grid}.preview-card{justify-content:center;min-width:0;transition:opacity .2s,transform .2s;display:flex;position:relative}.preview-card>div{min-width:0}.preview-card.secondary-card{opacity:.45;transform:scale(.78)}.preview-card.best-card{z-index:1;transform:translateY(-3px)scale(.9)}.preview-card.best-card:after{content:"";border:1px solid var(--gold);pointer-events:none;border-radius:7px;position:absolute;inset:-4px -2px -6px;box-shadow:0 0 10px #c9a22738}.best-marker{color:var(--gold-bright);font:7px var(--font-mono);letter-spacing:.4px;position:absolute;bottom:-13px}.versus{color:var(--gold-bright);font:600 12px var(--font-mono)}.leader-copy{color:var(--gold-bright);font:600 13px var(--font-body);margin:0 0 3px}.turn-copy{color:var(--parchment-dim);margin:0;font-size:12px;line-height:1.4}.hand-label{color:var(--gold-bright);font:12px var(--font-mono);margin-top:10px}.history{margin-top:20px}.history-box{border:1px solid var(--felt-line);max-height:150px;color:var(--parchment-dim);border-radius:12px;margin-top:10px;padding:14px;font-size:13px;line-height:1.6;overflow:auto}@media (max-width:600px){.poker-room{padding:0 10px calc(88px + env(safe-area-inset-bottom))}.room-head h1{font-size:21px}.room-head{align-items:flex-start;margin:0 -10px 16px;padding-bottom:10px}.share{padding:7px 9px;font-size:11px}.table-title{font-size:16px}.table-center{padding:8px}.player-panel{padding:12px}.player-panel-content{gap:10px;margin-top:10px}.deck-column{flex-basis:50px;min-height:54px}.card-stack{transform:scale(.68)}.hand-status strong{font-size:14px}.panel-caption{font-size:8px}.cards-left{font-size:10px}.leader-copy{font-size:12px}.turn-copy{font-size:11px}.player-summary strong{font-size:13px}.hand-preview{grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}.preview-card.secondary-card{transform:scale(.72)}.preview-card.best-card{transform:translateY(-2px)scale(.82)}.best-marker{font-size:6px;bottom:-11px}.poker-board{gap:8px;margin-top:16px}.history{margin-top:16px}}.home-shell{justify-content:center;align-items:center;height:100%;padding:20px 16px;display:flex}.home-card{flex-direction:column;width:min(100%,360px);min-height:100%;display:flex}.brand-lockup{justify-content:center;align-items:center;gap:12px;margin-bottom:16px;display:flex}.brand-mark{border-radius:11px;flex:none;width:48px;height:48px}.brand-lockup h1{color:var(--parchment);font:600 clamp(27px, 8vw, 35px) var(--font-display);letter-spacing:-.5px;margin:0}.game-instruction{max-width:315px;color:var(--parchment-dim);text-align:center;margin:0 auto 24px;font-size:14px;line-height:1.55}.home-form{border:1px solid var(--felt-line);background:#123b2c94;border-radius:14px;flex-direction:column;gap:9px;padding:18px;display:flex}.field-label{color:var(--parchment-dim);font-size:12px}.home-form input{background:var(--felt-deep);border:1px solid var(--felt-line);width:100%;min-height:45px;color:var(--parchment);font:15px var(--font-body);border-radius:8px;padding:11px 12px}.home-form input::placeholder{color:var(--parchment-dim);opacity:.7}.home-form input:focus{border-color:var(--gold);outline:none}.room-code-input{letter-spacing:3px;text-transform:uppercase;font-family:var(--font-mono)!important}.home-form button{width:100%;min-height:45px}.home-footer{color:var(--parchment-dim);font:10px var(--font-mono);letter-spacing:.3px;text-align:center;opacity:.75;justify-content:center;align-items:center;gap:8px;margin-top:auto;display:flex}.home-footer a{color:var(--gold-bright);text-underline-offset:3px;text-decoration:underline}.privacy-page{min-height:100%;padding:32px 20px 48px}.privacy-card{max-width:720px;color:var(--parchment);margin:0 auto;padding:8px 0}.privacy-back{color:var(--gold-bright);font:500 12px var(--font-mono);margin-bottom:30px;text-decoration:none;display:inline-block}.privacy-back:hover{text-underline-offset:3px;text-decoration:underline}.privacy-card h1{font:600 clamp(34px, 8vw, 48px) var(--font-display);letter-spacing:-.5px;margin:0}.privacy-card h2{color:var(--gold-bright);font:600 21px var(--font-display);margin:30px 0 8px}.privacy-card p{color:var(--parchment-dim);font-size:15px;line-height:1.7}.privacy-card .eyebrow{margin:0 0 8px}.privacy-updated{font:11px var(--font-mono);margin:8px 0 28px}.privacy-card code{color:var(--parchment);font:12px var(--font-mono)}.privacy-contact{border-top:1px solid var(--felt-line);margin-top:34px;padding-top:20px}@media (max-width:600px){.privacy-page{padding:24px 16px 36px}.privacy-card h2{margin-top:26px}}.join-divider{color:var(--parchment-dim);font:10px var(--font-mono);letter-spacing:1.5px;align-items:center;gap:10px;margin:5px 0 1px;display:flex}.join-divider:before,.join-divider:after{content:"";background:var(--felt-line);flex:1;height:1px}.outline-button{color:var(--parchment);border:1px solid var(--gold);cursor:pointer;background:0 0;border-radius:8px;padding:12px 16px;font-weight:600}.outline-button:disabled{opacity:.4;cursor:not-allowed}@media (max-width:600px){.home-shell{align-items:flex-start;padding:clamp(56px,18vh,120px) 16px 30px}.brand-lockup{margin-bottom:14px}.game-instruction{margin-bottom:20px}.home-form{padding:16px}}
