@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--ink:#0f2744;--ink-soft:#3d5168;--mist:#e8eef5;--paper:#f4f7fb;--accent:#1b6ef3;--accent-deep:#0f4db8;--citrus:#f0a202;--citrus-bright:#ffc43a;--felt:#1f4d3a;--felt-deep:#123528;--gold:#c6a15b;--gold-bright:#e0c27a;--danger:#b42318;--radius:12px;--shadow:0 18px 40px #0f274424;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(1000px 520px at 8% -8%,#1b6ef31f,#0000 55%),radial-gradient(800px 480px at 100% 0,#f0a2021a,#0000 50%),linear-gradient(#f7f9fc 0%,#eef3f9 45%,#e6edf5 100%);min-width:320px;margin:0}a{color:inherit;text-decoration:none}h1,h2,h3,.brand-hero,.brand-mark{letter-spacing:-.03em;font-family:Bricolage Grotesque,Georgia,serif;font-weight:700}.brand-hero-lockup,.brand-nav-lockup{align-items:center;gap:.75rem;display:inline-flex}.brand-logo{object-fit:contain;filter:drop-shadow(0 10px 22px #00000052);flex-shrink:0;display:block}.brand-nav-lockup .brand-logo{filter:drop-shadow(0 2px 6px #0f27443d)}.brand-link{align-items:center;text-decoration:none;display:inline-flex}button,input,select,textarea{font:inherit}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;padding:.7rem 1.15rem;font-weight:600;transition:transform .16s,background .16s,border-color .16s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-deep) 100%);color:#f7f9fc}.btn.ghost{color:var(--ink);background:#ffffff8c;border-color:#0f27441f}.btn.ghost-on-dark{color:#f7f9fc;background:#ffffff14;border-color:#ffffff47}.btn.link{color:var(--accent-deep);text-underline-offset:3px;background:0 0;padding-left:0;padding-right:0;font-weight:500;text-decoration:underline}.field{gap:.35rem;display:grid}.field span{color:var(--ink-soft);font-size:.85rem;font-weight:500}.field input,.field select,.field textarea{background:#fffc;border:1px solid #0f274424;border-radius:10px;padding:.7rem .85rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:#0000;outline:2px solid #1b6ef359}.form-error{color:var(--danger);margin:0}.muted{color:var(--ink-soft)}.small{font-size:.85rem}.loading-screen{min-height:100vh;color:var(--ink);place-items:center;font-family:Bricolage Grotesque,Georgia,serif;font-size:1.4rem;display:grid}.landing{min-height:100vh;position:relative;overflow:hidden}.landing-atmosphere{background:linear-gradient(115deg,#0f2744f0,#0f27448c 55%,#1b6ef359) 0 0/cover,url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23f0a202' stroke-opacity='0.14'%3E%3Ccircle cx='20' cy='24' r='8'/%3E%3Ccircle cx='92' cy='88' r='10'/%3E%3Cpath d='M48 70c8 10 16 10 24 0'/%3E%3C/g%3E%3C/svg%3E") 0 0/120px 120px,radial-gradient(circle at 72% 38%,#1b6ef3,#0f2744 68%) 0 0/cover;animation:20s ease-in-out infinite alternate atmosphere-drift;position:absolute;inset:0;transform:scale(1.02)}@keyframes atmosphere-drift{0%{transform:scale(1.02)translate(0,0)}to{transform:scale(1.05)translate(-1.2%,.8%)}}.landing-grid{z-index:1;color:#f7f9fc;grid-template-columns:1.35fr .85fr;align-items:end;gap:2rem;min-height:100vh;padding:clamp(1.5rem,4vw,4rem);display:grid;position:relative}.landing-hero{max-width:40rem;animation:.7s both rise}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.brand-hero-lockup{margin:0 0 1.15rem;animation:4.5s ease-in-out infinite alternate brand-glow}.brand-hero-lockup .brand-logo{width:clamp(4.25rem,10vw,5.5rem);height:clamp(4.25rem,10vw,5.5rem)}.brand-hero{color:var(--citrus-bright);text-shadow:0 12px 36px #00000047;margin:0;font-size:clamp(2.6rem,7.5vw,5.2rem);line-height:.9}@keyframes brand-glow{0%{filter:brightness()}to{filter:brightness(1.08)}}.landing-hero h1{letter-spacing:-.02em;max-width:18ch;margin:0 0 1rem;font-family:Plus Jakarta Sans,sans-serif;font-size:clamp(1.45rem,2.8vw,2.15rem);font-weight:500}.lede{color:#f7f9fcdb;max-width:34ch;margin:0 0 1.5rem;font-size:1.05rem}.cta-row{flex-wrap:wrap;gap:.75rem;display:flex}.landing-auth{color:var(--ink);border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow);background:#f7f9fcf5;padding:1.5rem;animation:.9s both rise}.landing-auth h2{margin:0 0 .35rem;font-size:1.5rem}.auth-form,.stack-form{gap:.85rem;margin-top:1rem;display:grid}.app-shell{min-height:100vh}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;background:#f4f7fbdb;border-bottom:1px solid #0f274414;justify-content:space-between;align-items:center;padding:1rem clamp(1rem,3vw,2rem);display:flex;position:sticky;top:0}.brand-mark{color:var(--ink);font-size:1.25rem;line-height:1}.brand-nav-lockup .brand-logo{width:2.1rem;height:2.1rem}.topbar-nav{flex-wrap:wrap;align-items:center;gap:.35rem .85rem;display:flex}.nav-link{color:var(--ink-soft);padding:.35rem .15rem;font-size:.95rem;font-weight:600;position:relative}.nav-link:hover,.nav-link.active{color:var(--ink)}.nav-link.active:after{content:"";background:var(--accent);border-radius:1px;height:2px;position:absolute;bottom:-.35rem;left:0;right:0}.viewer-chip{color:var(--ink-soft);margin-left:.35rem;font-size:.9rem}.app-main{max-width:1100px;margin:0 auto;padding:clamp(1rem,3vw,2rem)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.25rem;margin-bottom:1.75rem;display:flex}.page-head.compact{margin-bottom:1.25rem}.page-head h1{margin:0 0 .35rem;font-size:clamp(2rem,4vw,2.7rem)}.page-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.form-actions{flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:.35rem;display:flex}.form-panel{max-width:32rem}.subpage .eyebrow a{color:var(--accent-deep)}.rooms-table-wrap{border-radius:var(--radius);background:#ffffff9e;border:1px solid #0f274414;padding:1.1rem 1.2rem;animation:.5s both rise}.rooms-table-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.85rem;display:flex}.rooms-table-head h2{margin:0;font-size:1.25rem}.rooms-table{border-collapse:collapse;width:100%}.rooms-table th,.rooms-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #0f274414;padding:.75rem .55rem}.rooms-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:.78rem;font-weight:600}.room-name-link{color:var(--ink);font-weight:600}.room-name-link:hover{color:var(--accent-deep)}.rooms-table-action{text-align:right}.status-pill{color:var(--ink-soft);background:#0f27440f;border-radius:6px;padding:.2rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.status-pill.status-lobby{color:#8a5a00;background:#f0a20229}.status-pill.status-active{color:var(--accent-deep);background:#1b6ef31f}.empty-state{gap:.65rem;padding:1.5rem .25rem .75rem;display:grid}.empty-state>p:first-child{margin:0;font-size:1.05rem;font-weight:600}.invite-input{letter-spacing:.12em;text-transform:uppercase;font-size:1.15rem;font-weight:600}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.section-head{margin-bottom:1.35rem}.section-head h1{margin:0 0 .35rem;font-size:clamp(2rem,4vw,2.7rem)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:0 0 .35rem;font-size:.72rem;font-weight:700}.panel{border-radius:var(--radius);background:#ffffff9e;border:1px solid #0f274414;padding:1.1rem 1.2rem;animation:.5s both rise}.panel h2{margin:0 0 .75rem;font-size:1.25rem}.panel h3{margin:1.25rem 0 .5rem;font-size:1rem}.settings-toggle{justify-self:start;margin:0}.advanced-settings{background:#1b6ef30d;border:1px solid #1b6ef31a;border-radius:10px;gap:.85rem;padding:.85rem;animation:.35s both rise;display:grid}.room-list ul,.seat-list,.move-list,.chat-list{margin:0;padding:0;list-style:none}.room-list li+li,.seat-list li+li,.move-list li+li,.chat-list li+li{margin-top:.55rem}.room-row{border-bottom:1px solid #0f274414;justify-content:space-between;gap:1rem;padding:.85rem 0;display:flex}.invite-code{letter-spacing:.08em;color:var(--accent-deep);background:#1b6ef31a;border-radius:8px;padding:.35rem .65rem;font-family:Plus Jakarta Sans,monospace;font-weight:600}.room-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.room-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.seat{background:#ffffff73;border-radius:10px;justify-content:space-between;gap:.75rem;padding:.55rem .65rem;display:flex}.seat.active-turn{background:#f0a2022e;animation:1.8s ease-in-out infinite pulse-seat;box-shadow:inset 0 0 0 1px #f0a20273}@keyframes pulse-seat{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}.status-banner{background:#1b6ef314;border:1px solid #1b6ef329;border-radius:10px;margin:0 0 1rem;padding:.75rem 1rem}.decrypted{background:#f0a20224;border-radius:10px;margin-top:.85rem;padding:.75rem}.cipher-preview{color:var(--ink-soft);word-break:break-all;font-size:.8rem;display:block}.poker{gap:1rem;margin-bottom:1.5rem;display:grid}.poker-felt{box-shadow:var(--shadow);background:radial-gradient(#2f6b4f 0%,#1a4030 55%,#10281d 100%);border-radius:999px;padding:1.25rem;animation:.6s both rise}.poker-felt-inner{color:#f4faf6;align-content:center;gap:1.25rem;min-height:280px;display:grid}.board-row{text-align:center}.pot-label{color:var(--gold-bright);letter-spacing:.04em;margin-bottom:.65rem;font-size:.9rem;display:inline-block}.community{flex-wrap:wrap;justify-content:center;gap:.45rem;display:flex}.playing-card{color:#1a1a1a;background:#f7f3ea;border-radius:.45rem;place-items:center;width:3.1rem;height:4.3rem;font-size:.95rem;font-weight:600;display:inline-grid;box-shadow:0 6px 16px #00000040}.playing-card.red{color:#a33b2c}.playing-card.back{background:repeating-linear-gradient(45deg,#6b1d2a,#6b1d2a 6px,#8a2435 6px 12px);border:2px solid #f7f3ea}.poker-seats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.poker-seat{background:#ffffff14;border:1px solid #ffffff1f;border-radius:14px;padding:.7rem}.poker-seat.acting{border-color:var(--gold-bright);animation:1.8s ease-in-out infinite pulse-seat;box-shadow:0 0 0 1px #e0c27a73}.poker-seat.me{background:#c6a15b29}.seat-top{align-items:center;gap:.4rem;margin-bottom:.45rem;font-size:.92rem;display:flex}.presence-dot{background:#7a8a80;border-radius:50%;width:.55rem;height:.55rem}.presence-dot.on{background:#7dcea0;box-shadow:0 0 0 3px #7dcea040}.presence-dot.off{background:#8a9490}.dealer-btn{width:1.25rem;height:1.25rem;color:var(--felt-deep);background:#f4faf6;border-radius:50%;place-items:center;margin-left:auto;font-size:.7rem;font-weight:700;display:inline-grid}.seat-cards{align-items:center;gap:.3rem;min-height:4.3rem;display:flex}.seat-meta{color:#f4faf6cc;justify-content:space-between;margin-top:.45rem;font-size:.8rem;display:flex}.poker-controls .action-row{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.raise-group{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.raise-group input{background:#ffffffb8;border:1px solid #0f274424;border-radius:10px;width:8rem;padding:.65rem .75rem}.winners{background:#f0a20224;border-radius:10px;margin:.75rem 0;padding:.75rem 1rem}.chat-panel{margin-top:.5rem}.chat-log{flex-direction:column;gap:.65rem;max-height:16rem;margin:0 0 1rem;padding:0;list-style:none;display:flex;overflow-y:auto}.chat-log li{flex-direction:column;gap:.2rem;display:flex}.chat-log li.mine .chat-body{color:var(--ink)}.chat-meta{color:var(--ink-soft);align-items:baseline;gap:.6rem;font-size:.78rem;display:flex}.chat-body{font-size:.95rem;line-height:1.35}.turn-nudge{color:var(--ink);background:#f0a20229;border-radius:10px;margin:0 0 .75rem;padding:.65rem .9rem;font-size:.9rem}.turn-nudge.overdue{color:#7a2d22;background:#b423181a}.config-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.invite-link-row{word-break:break-all;margin-top:.75rem}.invite-link-row code{font-size:.82rem}.side-pots{margin:.35rem 0 .5rem;display:block}.all-in-tag{text-transform:uppercase;letter-spacing:.04em;color:#c6a15b;font-size:.72rem}@media (width<=900px){.landing-grid{grid-template-columns:1fr;align-items:stretch;padding-top:2.5rem}.landing-hero{flex-direction:column;justify-content:flex-end;min-height:48vh;display:flex}.lobby-layout,.config-grid{grid-template-columns:1fr}.rooms-table th:nth-child(4),.rooms-table td:nth-child(4),.rooms-table th:nth-child(2),.rooms-table td:nth-child(2){display:none}.topbar-nav{gap:.45rem}.poker-felt{border-radius:28px}}
