.portal-shell{--portal-bg: #0a0e0c;--portal-bg-2: #0d1311;--portal-felt: #0f3a2c;--portal-felt-deep: #0a2a1f;--portal-surface: #13191a;--portal-surface-2: #1a2122;--portal-surface-3: #222b2c;--portal-border: #222b2c;--portal-border-soft: #1a2022;--portal-text: #f1f3f0;--portal-text-dim: #94a39a;--portal-text-mute: #5d6c64;--portal-gold: #d4a553;--portal-gold-deep: #a78043;--portal-red: #e2585e;--portal-green: #5fc18a;--portal-cream: #f5efe1;--portal-ink: #1a1408;min-height:100vh;margin:0 auto;max-width:720px;padding:1.5rem 1rem 4rem;color:var(--portal-text);background:transparent}.portal-shell.portal-shell-auth{max-width:1200px;padding:1.25rem 1.5rem 4rem;background:radial-gradient(circle at 12% -10%,rgba(212,165,83,.06),transparent 55%),radial-gradient(circle at 92% 8%,rgba(95,193,138,.05),transparent 50%)}.portal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.75rem;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--portal-border-soft)}.portal-brand{text-decoration:none;color:inherit}.portal-logo{display:inline-flex;align-items:center;gap:10px;line-height:1}.portal-logo-mark{position:relative;width:30px;height:30px;background:var(--portal-cream);border-radius:5px;transform:rotate(-12deg);box-shadow:2px 2px 0 var(--portal-gold-deep);display:block}.portal-logo-letter{position:absolute;top:3px;left:5px;font-family:Fraunces,serif;font-weight:700;font-size:10px;color:var(--portal-red);line-height:1}.portal-logo-suit{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--portal-red)}.portal-logo-text{font-family:Bricolage Grotesque,sans-serif;font-weight:700;font-size:1.2rem;letter-spacing:-.02em;color:var(--portal-text)}.portal-nav{display:flex;gap:.4rem;align-items:center}.portal-nav a{color:var(--portal-text-dim);text-decoration:none;font-weight:500;font-size:.92rem;padding:.5rem .85rem;border-radius:8px}.portal-nav a:hover{color:var(--portal-text)}.portal-nav a.active{color:var(--portal-text);background:var(--portal-surface-2)}.portal-nav-sep{width:1px;height:18px;background:var(--portal-border);margin:0 .6rem}.portal-nav-user{display:inline-flex;align-items:center;gap:.55rem;padding:.35rem .75rem;border-radius:8px;border:1px solid var(--portal-border);background:var(--portal-surface)}.portal-nav-avatar{width:22px;height:22px;border-radius:50%;background:var(--portal-gold);display:grid;place-items:center;color:var(--portal-ink);font-size:.7rem;font-weight:700;text-transform:lowercase}.portal-nav-name{font-size:.82rem;font-weight:500;color:var(--portal-text);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-nav-out{margin-left:.4rem;padding:.5rem .85rem;border-radius:8px;border:1px solid var(--portal-border);background:transparent;color:var(--portal-text-dim);font-size:.82rem;font-family:inherit;cursor:pointer}.portal-nav-out:hover{color:var(--portal-text);border-color:var(--portal-text-dim)}.portal-link-primary{color:var(--portal-gold);text-decoration:none;font-weight:600}.portal-link-primary:hover{filter:brightness(1.1)}.portal-nav a.portal-link-primary{background:var(--portal-gold);color:var(--portal-ink);padding:.45rem .9rem;border-radius:999px}.portal-main{display:flex;flex-direction:column;gap:1.25rem}.portal-display{font-family:Bricolage Grotesque,sans-serif;font-weight:700;letter-spacing:-.02em}.portal-eyebrow{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#d4a553b3}.portal-h2-display{font-size:1.45rem;margin:.25rem 0 0}.portal-small{font-size:.82rem}.portal-loading,.portal-muted{color:var(--portal-text-dim);font-size:.9rem}.portal-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:2rem;max-width:420px;margin:0 auto;width:100%}.portal-card-wide{max-width:720px}.portal-h1{font-family:Bricolage Grotesque,sans-serif;font-weight:700;letter-spacing:-.02em;font-size:1.75rem;margin:0 0 1.5rem}.portal-h2{font-size:1.05rem;font-weight:600;margin:0 0 .75rem;color:var(--portal-text)}.portal-me{display:flex;flex-direction:column;gap:1.1rem}.portal-block{background:var(--portal-surface);border:1px solid var(--portal-border-soft);border-radius:14px;padding:1.35rem 1.5rem}.portal-block-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.portal-block-body{display:flex;flex-direction:column}.portal-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}.portal-hero{position:relative;border:1px solid #1a4034;border-radius:22px;padding:2.5rem 2.25rem 4rem;overflow:hidden;background:radial-gradient(ellipse at 30% 30%,rgba(95,193,138,.08) 0%,transparent 60%),linear-gradient(180deg,var(--portal-felt) 0%,var(--portal-felt-deep) 100%);display:grid;grid-template-columns:minmax(220px,280px) 1fr auto;grid-template-areas:"cards copy cta";gap:2rem;align-items:center}.portal-hero-felt{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(255,255,255,.025) 1px,transparent 1px);background-size:4px 4px;pointer-events:none}.portal-hero-stamp{position:absolute;top:1.25rem;right:1.5rem;padding:.35rem .85rem;border:1px solid rgba(212,165,83,.4);color:var(--portal-gold);font-size:.65rem;letter-spacing:.2em;border-radius:99px;font-weight:600}.portal-hero-card-stack{position:relative;grid-area:cards;display:flex;align-items:center;justify-content:center}.portal-hero-card{position:relative}.portal-hero-card-peek{position:absolute;top:14px;left:60%;z-index:-1}.portal-hero-card-inner{position:absolute;top:50px;right:32px;bottom:50px;left:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}.portal-hero-card-frame{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(212,165,83,.35);border-radius:9px;pointer-events:none}.portal-hero-avatar{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,var(--portal-gold) 0%,var(--portal-gold-deep) 100%);display:grid;place-items:center;color:var(--portal-cream);font-size:1.7rem;font-weight:700;font-family:Bricolage Grotesque,sans-serif;box-shadow:inset 0 0 0 3px var(--portal-cream),0 4px #0000001a;text-transform:lowercase}.portal-hero-card-name{font-family:Fraunces,serif;font-weight:700;font-size:.95rem;color:#3a2a1a;text-align:center;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-hero-tier{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:#7a6450}.portal-hero-peek-suit{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.portal-hero-text{grid-area:copy;min-width:0}.portal-hero-name{font-size:clamp(2.3rem,4vw,3.2rem);margin:.5rem 0 .4rem;color:var(--portal-cream);overflow-wrap:anywhere}.portal-hero-sub{font-size:.9rem;color:#ffffff8c}.portal-hero-stats{margin-top:1.5rem;display:grid;grid-template-columns:repeat(3,auto);gap:2rem}.portal-hero-stat{display:flex;flex-direction:column;gap:.25rem}.portal-hero-stat-label{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:#d4a553b3;font-weight:600}.portal-hero-stat-value{font-family:Fraunces,serif;font-weight:700;font-size:2.5rem;line-height:1}.portal-hero-stat-value-gold{color:var(--portal-gold)}.portal-hero-stat-value-cream{color:var(--portal-cream)}.portal-hero-stat-sub{font-size:.75rem;color:#ffffff73}.portal-hero-cta{grid-area:cta;align-self:center;padding:.75rem 1.4rem;border-radius:10px;border:1px solid rgba(212,165,83,.45);background:transparent;color:var(--portal-gold);font-size:.85rem;font-weight:600;letter-spacing:.02em;cursor:pointer;white-space:nowrap;text-decoration:none}.portal-hero-cta:hover{background:#d4a5531a}.playing-card{position:relative;background:var(--portal-cream);border-radius:14px;color:#222;box-shadow:0 14px 40px #00000073,0 2px 0 var(--portal-gold-deep);overflow:hidden;will-change:transform}.playing-card-sm{width:64px;height:92px;border-radius:8px;box-shadow:0 4px 12px #0006}.playing-card-md{width:150px;height:210px}.playing-card-lg{width:200px;height:280px}.card-corner-sm,.card-corner-md,.card-corner-lg{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1}.card-corner-sm-tl,.card-corner-md-tl,.card-corner-lg-tl{top:8px;left:10px}.card-corner-sm-br,.card-corner-md-br,.card-corner-lg-br{bottom:8px;right:10px;transform:rotate(180deg)}.card-corner-sm-tl,.card-corner-sm-br{top:4px;left:5px;gap:1px}.card-corner-sm-br{top:auto;left:auto;bottom:4px;right:5px}.playing-card-rank{font-family:Fraunces,serif;font-weight:700;font-size:1.2rem}.playing-card-sm .playing-card-rank{font-size:.8rem}.playing-card-lg .playing-card-rank{font-size:1.65rem}.portal-ledger-wrap{width:100%}.portal-ledger-svg{width:100%;height:200px;display:block}.portal-ledger-empty{padding:2rem 0;text-align:center;color:var(--portal-text-mute);font-size:.9rem}.portal-recent-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.9rem}.portal-recent-card{height:200px;margin:0 auto;width:100%;max-width:170px}.portal-recent-body{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;color:#222;text-align:center}.portal-recent-result{padding:.2rem .65rem;border-radius:99px;font-size:.65rem;font-weight:700;letter-spacing:.08em}.portal-recent-result.is-win{background:#5fc18a33;color:#1e7d4d}.portal-recent-result.is-loss{background:#e2585e33;color:#a23842}.portal-recent-result.is-neutral{background:#7a645026;color:#6a5a44}.portal-recent-score{font-family:Fraunces,serif;font-weight:700;font-size:1.6rem;color:#2a2018}.portal-recent-meta{font-size:.7rem;color:#5d4d3a}.portal-recent-date{font-size:.65rem;color:#8a7a64;font-family:JetBrains Mono,monospace}.portal-recent-empty{padding:1rem 0}.portal-link-gold{color:var(--portal-gold);font-size:.85rem;font-weight:500;text-decoration:none}.portal-link-gold:hover{filter:brightness(1.15)}.portal-row{display:grid;grid-template-columns:90px 1fr auto;gap:1rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--portal-border-soft)}.portal-row:last-child{border-bottom:0}.portal-row-stacked{align-items:flex-start}.portal-label{color:var(--portal-text-dim);font-size:.85rem}.portal-code{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--portal-text-dim);word-break:break-all}.portal-profile-form{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--portal-border-soft)}.portal-field{display:contents}.portal-field .portal-label{margin:0}.portal-field input{background:transparent;border:1px solid var(--portal-border);color:var(--portal-text);padding:.45rem .7rem;border-radius:6px;font-size:.9rem;font-family:inherit;width:100%;max-width:280px}.portal-field input:focus{outline:none;border-color:var(--portal-gold);background:var(--portal-surface-2)}.portal-success{color:#93eab2;font-size:.82rem}.portal-inline-error{grid-column:1 / -1}.portal-section{margin-bottom:2rem}.portal-section:last-child{margin-bottom:0}.portal-form{display:flex;flex-direction:column;gap:.75rem}.portal-form input{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--portal-text);padding:.75rem 1rem;border-radius:10px;font-size:1rem;font-family:inherit}.portal-form input:focus{outline:none;border-color:var(--portal-gold);background:#ffffff14}.portal-submit{background:var(--portal-gold);color:var(--portal-ink);border:0;padding:.6rem 1rem;border-radius:8px;font-size:.92rem;font-weight:700;cursor:pointer;font-family:inherit}.portal-submit:hover{filter:brightness(1.08)}.portal-submit:disabled{opacity:.55;cursor:not-allowed}.portal-submit-small{padding:.45rem .85rem;font-size:.85rem}.portal-link-btn{background:transparent;color:var(--portal-text-dim);border:1px solid var(--portal-border);padding:.45rem .85rem;border-radius:7px;cursor:pointer;font-family:inherit;font-size:.85rem}.portal-link-btn:hover{color:var(--portal-text);border-color:var(--portal-text-dim)}.portal-link-btn:disabled{opacity:.5;cursor:not-allowed}.portal-google-btn{display:flex;align-items:center;justify-content:center;gap:.65rem;background:#fff;color:#1c1c2a;padding:.75rem;border-radius:10px;text-decoration:none;font-weight:500;font-size:1rem}.portal-google-btn:hover{background:#f3f3f3}.portal-divider{display:flex;align-items:center;margin:1rem 0;color:#fff6;font-size:.85rem}.portal-divider:before,.portal-divider:after{content:"";flex:1;height:1px;background:#ffffff14}.portal-divider span{padding:0 .75rem}.portal-error{background:#ff5a5a1f;border:1px solid rgba(255,90,90,.3);color:#ffb0b0;padding:.6rem .85rem;border-radius:8px;font-size:.9rem;margin-top:.75rem}.portal-foot{margin-top:1.5rem;text-align:center;font-size:.9rem;color:var(--portal-text-dim)}.portal-foot a{color:var(--portal-gold)}.portal-identities{display:flex;flex-direction:column;gap:.65rem}.portal-identity{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:.85rem;padding:.85rem 1rem;background:var(--portal-surface-2);border:1px solid var(--portal-border-soft);border-radius:12px}.portal-identity-glyph{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-family:Fraunces,serif;font-weight:700;font-size:1rem}.portal-identity-glyph-on{background:var(--portal-cream);color:#222}.portal-identity-glyph-off{background:var(--portal-surface-3);color:var(--portal-text-dim)}.portal-identity-meta{display:flex;flex-direction:column;gap:.2rem}.portal-identity-name{font-size:.92rem;font-weight:600}.portal-identity-action{display:flex;align-items:center;min-height:36px}.portal-pill-on,.portal-pill-off{font-size:.7rem;padding:.12rem .5rem;border-radius:999px;font-weight:500;width:max-content}.portal-pill-on{background:#5fc18a2e;color:#93eab2}.portal-pill-off{background:#ffffff0f;color:var(--portal-text-mute)}.portal-select{background:var(--portal-surface-2);border:1px solid var(--portal-border);color:var(--portal-text);padding:.4rem .7rem;border-radius:7px;font-size:.85rem;font-family:inherit;cursor:pointer}.portal-select:focus{outline:none;border-color:var(--portal-gold)}.portal-select:disabled{opacity:.5;cursor:not-allowed}.portal-segmented{display:inline-flex;gap:.35rem;padding:.25rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px}.portal-segmented-option{display:inline-flex;align-items:center;gap:.55rem;min-height:34px;padding:.35rem .65rem;border:0;border-radius:7px;background:transparent;color:#ffffff9e;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}.portal-segmented-option-active{background:var(--gold);color:#1c1c2a}.portal-segmented-option:disabled{cursor:wait;opacity:.75}.portal-suit-swatches{display:inline-flex;gap:2px}.portal-suit-swatch{width:9px;height:9px;border-radius:999px;border:1px solid rgba(255,255,255,.35)}.portal-oauth-stack,.portal-history{display:flex;flex-direction:column;gap:1.25rem}.portal-history-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.portal-history-actions{display:flex;gap:.55rem}.portal-stats{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:.75rem}.portal-stat{background:var(--portal-surface);border:1px solid var(--portal-border-soft);border-radius:12px;padding:.9rem 1rem}.portal-stat-value{font-family:Fraunces,serif;font-weight:700;font-size:1.6rem;color:var(--portal-cream)}.portal-stat-label{font-size:.78rem;color:var(--portal-text-dim);margin-top:.2rem}.portal-games-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.65rem}.portal-game{display:grid;grid-template-columns:64px 1fr auto;gap:1.25rem;align-items:center;background:var(--portal-surface);border:1px solid var(--portal-border-soft);border-left-width:3px;border-left-style:solid;border-radius:10px;padding:.95rem 1.1rem;transition:background .12s ease}.portal-game-win{border-left-color:var(--portal-green)}.portal-game-loss{border-left-color:var(--portal-red)}.portal-game-neutral{border-left-color:var(--portal-text-mute)}.portal-game:hover{background:var(--portal-surface-2)}.portal-game-card-slot{width:64px;height:92px;display:grid;place-items:center}.portal-game-card-slot .playing-card{width:60px;height:84px;box-shadow:0 4px 10px #00000059}.portal-game-card-slot .playing-card-rank{font-size:.85rem}.portal-game-body{min-width:0}.portal-game-head{display:flex;align-items:center;gap:.65rem;font-size:.9rem}.portal-game-result{font-weight:600}.portal-game-result-win{color:var(--portal-green)}.portal-game-result-loss{color:var(--portal-red)}.portal-game-result-neutral{color:var(--portal-text-dim)}.portal-game-meta-pill{padding:.15rem .6rem;border-radius:999px;background:var(--portal-surface-3);font-size:.72rem;color:var(--portal-text-dim)}.portal-game-date{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--portal-text-mute);margin-left:auto}.portal-game-players{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem;list-style:none;padding:0}.portal-game-players li{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;background:var(--portal-surface-2);border-radius:7px;font-size:.78rem;color:var(--portal-text-dim)}.portal-game-rank{font-family:JetBrains Mono,monospace;color:var(--portal-text-mute)}.portal-game-name{color:var(--portal-text)}.portal-game-score{font-variant-numeric:tabular-nums;font-weight:500;color:var(--portal-cream)}.portal-game-place{text-align:right}.portal-game-place-value{font-family:Fraunces,serif;font-weight:700;font-size:1.5rem;line-height:1}.portal-game-place-label{font-size:.7rem;color:var(--portal-text-mute);letter-spacing:.05em;margin-top:.2rem}.portal-footer{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--portal-border-soft);display:flex;align-items:center;gap:.85rem;font-size:.78rem;color:var(--portal-text-mute)}.portal-footer-suits{display:inline-flex;align-items:center;gap:.35rem}.portal-footer-suits svg:nth-child(2),.portal-footer-suits svg:nth-child(3){color:var(--portal-red)}@media(max-width:920px){.portal-shell.portal-shell-auth{padding:1rem 1rem 3rem}.portal-hero{grid-template-columns:1fr;grid-template-areas:"cards" "copy" "cta";padding:2rem 1.5rem 2.5rem;text-align:left}.portal-hero-card-stack{justify-content:flex-start}.portal-hero-cta{align-self:center;justify-self:center;width:min(100%,240px);text-align:center}.portal-grid-2{grid-template-columns:1fr}.portal-stats{grid-template-columns:repeat(2,1fr)}.portal-recent-grid{grid-template-columns:repeat(3,1fr)}.portal-recent-card:nth-child(n+4){display:none}}@media(max-width:640px){.portal-header{flex-wrap:wrap;gap:.5rem}.portal-nav{flex-wrap:wrap;gap:.3rem;justify-content:flex-end}.portal-nav-sep,.portal-nav-name{display:none}.portal-hero-stats{grid-template-columns:repeat(3,auto);gap:1.25rem}.portal-hero-stat-value{font-size:1.85rem}.portal-hero-name{font-size:2rem}.portal-recent-grid{grid-template-columns:repeat(2,1fr)}.portal-recent-card:nth-child(n+3){display:none}.portal-row,.portal-profile-form{grid-template-columns:1fr;align-items:flex-start}.portal-field input{max-width:100%}.portal-game{grid-template-columns:50px 1fr;gap:.85rem}.portal-game-place{grid-column:2;text-align:left}}@media(max-width:420px){.portal-hero{padding:1.75rem 1.25rem 2.25rem}.portal-hero-stats{grid-template-columns:1fr 1fr;gap:1rem}.portal-hero-card-stack{transform:scale(.9);transform-origin:left center}.portal-row{flex-direction:column;align-items:stretch}.portal-segmented{width:100%}.portal-segmented-option{flex:1;justify-content:center}}
