:root{--felt-900:#0a2a1f;--felt-800:#0d3a29;--felt-700:#115138;--felt-glow:#1c6e4d;--gold-300:#f4d58d;--gold-400:#e6b450;--gold-500:#c8922f;--ink-900:#14110f;--ink-600:#3a3530;--paper:#fbf7ef;--paper-shadow:#0719128c;--red-suit:#c0322b;--black-suit:#1a1a1a;--text-light:#f3efe6;--text-dim:#b9c9bf;--radius-card:12px;color:var(--text-light);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Segoe UI,Helvetica Neue,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 50% -10%, var(--felt-glow) 0%, transparent 55%), radial-gradient(circle at 50% 120%, var(--felt-700) 0%, transparent 60%), linear-gradient(160deg, var(--felt-900), var(--felt-800));background-attachment:fixed;min-height:100vh}h1,h2,h3{letter-spacing:.01em;margin:0;font-family:Georgia,Times New Roman,serif}a{color:var(--gold-300)}button{font:inherit;cursor:pointer}button:focus-visible,[role=button]:focus-visible{outline:3px solid var(--gold-300);outline-offset:2px}.pcard{background:linear-gradient(160deg, var(--paper) 0%, #efe7d6 100%);border-radius:var(--radius-card);box-shadow:0 8px 18px var(--paper-shadow), inset 0 1px 0 #ffffffb3;color:var(--black-suit);-webkit-user-select:none;user-select:none;border:1px solid #14110f2e;flex-direction:column;justify-content:space-between;padding:6px;font-family:Georgia,serif;transition:transform .16s,box-shadow .16s,filter .16s;display:inline-flex;position:relative}.pcard--sm{width:52px;height:74px}.pcard--md{width:72px;height:102px}.pcard--lg{width:96px;height:136px}.pcard--red{color:var(--red-suit)}.pcard--black{color:var(--black-suit)}.pcard__corner{flex-direction:column;align-items:center;font-weight:700;line-height:1;display:flex}.pcard__corner--tl{align-self:flex-start}.pcard__corner--br{align-self:flex-end;transform:rotate(180deg)}.pcard--sm .pcard__rank{font-size:13px}.pcard--md .pcard__rank{font-size:17px}.pcard--lg .pcard__rank{font-size:22px}.pcard__suit{font-size:.85em}.pcard__center{opacity:.92;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pcard--sm .pcard__center{font-size:26px}.pcard--md .pcard__center{font-size:38px}.pcard--lg .pcard__center{font-size:52px}.pcard--trump{border-color:var(--gold-400);box-shadow:0 0 0 2px var(--gold-400), 0 10px 22px var(--paper-shadow)}.pcard--winner{border-color:#2f9e6a;transform:translateY(-10px);box-shadow:0 0 0 2px #36b97c,0 12px 26px #083c2699}.pcard--selected{border-color:var(--gold-300);box-shadow:0 0 0 2px var(--gold-300), 0 12px 26px var(--paper-shadow);transform:translateY(-8px)}.pcard--muted{filter:grayscale(.35)brightness(.9);opacity:.7}.pcard--interactive{cursor:pointer;appearance:none;font:inherit}.pcard--interactive:hover{box-shadow:0 16px 30px var(--paper-shadow);transform:translateY(-8px)}.pcard__badge{background:var(--gold-400);color:var(--ink-900);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:2px 8px;font-family:Segoe UI,sans-serif;font-size:10px;font-weight:700;position:absolute;top:-10px;left:50%;transform:translate(-50%);box-shadow:0 4px 8px #0000004d}.pcard--back{background:linear-gradient(135deg,#7a1f2b,#4d1119);border-color:#f4d58d66}.pcard__back-pattern{background-image:repeating-linear-gradient(45deg,#f4d58d2e 0 6px,#0000 6px 12px),repeating-linear-gradient(-45deg,#f4d58d2e 0 6px,#0000 6px 12px);border:1px solid #f4d58d80;border-radius:6px;flex:1;margin:4px}.hand{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:12px;display:flex}.hand__slot{display:flex}.hand--fan{gap:0}.hand--fan .hand__slot:not(:first-child){margin-left:-18px}.hand--fan .hand__slot{transition:transform .16s}.hand--fan .hand__slot:hover{z-index:2}.home{flex-direction:column;gap:clamp(32px,6vw,56px);display:flex}.home__hero{text-align:center;flex-direction:column;align-items:center;gap:18px;display:flex}.home__title{max-width:14ch;font-size:clamp(34px,6vw,60px);line-height:1.05}.home__title em{color:var(--gold-300);font-style:italic}.home__lede{max-width:60ch;color:var(--text-dim);margin:0;font-size:clamp(16px,2vw,19px);line-height:1.6}.home__cta{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:4px;display:flex}.home__cards{margin-top:26px;transform:rotate(-2deg)}.home__features{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;display:grid}.home__feature{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.home__feature-icon{color:var(--gold-300);font-size:28px}.home__feature h2{font-size:21px}.home__feature p{color:var(--text-dim);margin:0;line-height:1.55}.home__feature-link{color:var(--gold-300);cursor:pointer;background:0 0;border:none;margin-top:auto;padding:4px 0;font-family:inherit;font-size:15px;text-decoration:none;display:inline-block}.home__feature-link:hover{text-decoration:underline}.rules{flex-direction:column;gap:28px;display:flex}.rules__head{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.rules__head h1{font-size:clamp(30px,5vw,46px)}.rules__lede{max-width:58ch;color:var(--text-dim);margin:0;line-height:1.6}.rules__tabs{background:#071c1499;border:1px solid #f4d58d2e;border-radius:999px;gap:6px;margin-top:8px;padding:6px;display:inline-flex}.rules__tab{color:var(--text-dim);background:0 0;border:none;border-radius:999px;padding:9px 22px;font-size:15px;transition:all .14s}.rules__tab.is-active{background:linear-gradient(160deg, var(--gold-300), var(--gold-400));color:var(--ink-900);font-weight:600}.rules__grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.rules__card{flex-direction:column;gap:12px;display:flex}.rules__card-head{align-items:center;gap:12px;display:flex}.rules__card-head h2{font-size:20px}.rules__num{background:linear-gradient(160deg, var(--gold-300), var(--gold-500));width:32px;height:32px;color:var(--ink-900);border-radius:50%;flex:none;place-items:center;font-family:Georgia,serif;font-weight:700;display:inline-grid}.rules__chip{text-transform:uppercase;letter-spacing:.08em;color:var(--gold-300);border:1px solid #f4d58d66;border-radius:999px;padding:3px 10px;font-size:11px}.rules__summary{color:var(--text-light);margin:0;line-height:1.55}.rules__points{color:var(--text-dim);flex-direction:column;gap:8px;margin:0;padding-left:18px;line-height:1.5;display:flex}.rules__points li::marker{color:var(--gold-400)}.rules__house-note{text-align:center;color:var(--text-dim);max-width:64ch;margin:0 auto;line-height:1.6}.rules__house{flex-direction:column;gap:20px;display:flex}.rules__placeholder{background:#f4d58d0f;border:1px dashed #f4d58d73;border-radius:10px;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.rules__placeholder-label{color:var(--gold-300);font-weight:600}.rules__placeholder-hint{color:var(--text-dim);font-size:13px}.rules__examples{color:var(--text-dim);flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:14px;font-style:italic;display:flex}.rules__examples li::marker{color:var(--gold-400)}.tut{flex-direction:column;gap:24px;display:flex}.tut__head{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.tut__head h1{font-size:clamp(28px,5vw,44px)}.tut__dots{gap:10px;margin-top:6px;display:flex}.tut__dot{background:0 0;border:1px solid #f4d58d80;border-radius:50%;width:12px;height:12px;padding:0;transition:all .16s}.tut__dot.is-done{background:#f4d58d73}.tut__dot.is-active{background:var(--gold-300);transform:scale(1.25);box-shadow:0 0 0 4px #f4d58d33}.tut__stage{text-align:center;flex-direction:column;align-items:center;gap:16px;animation:.24s fade-in;display:flex}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tut__phase{letter-spacing:.16em;text-transform:uppercase;color:var(--gold-300);font-size:12px;font-weight:600}.tut__title{font-size:clamp(22px,3.5vw,30px)}.tut__visual{justify-content:center;width:100%;padding:16px 0;display:flex}.tut__narration{max-width:64ch;color:var(--text-dim);flex-direction:column;gap:8px;line-height:1.65;display:flex}.tut__narration p{margin:0}.tut__controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.tut__counter{color:var(--text-dim);font-size:14px}.tut__trump{flex-direction:column;align-items:center;gap:6px;display:flex}.tut__trump-label{text-transform:uppercase;letter-spacing:.1em;color:var(--gold-300);font-size:11px}.tut__hand-label{color:var(--text-dim);letter-spacing:.04em;margin-bottom:12px;font-size:13px;display:block}.tut__intro{justify-content:center;gap:14px;display:flex}.tut__deal,.tut__draw,.tut__trick,.tut__interactive{flex-direction:column;align-items:center;gap:22px;width:100%;display:flex}.tut__reco{color:#b6f0d4;background:#36b97c24;border:1px solid #36b97c80;border-radius:999px;margin:0;padding:10px 18px;font-size:14px}.tut__draw-arrow{color:var(--gold-300);letter-spacing:.2em;font-size:13px}.tut__draw-row{text-align:center}.tut__trick-plays{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:28px;display:flex}.tut__play{flex-direction:column;align-items:center;gap:8px;max-width:130px;margin:0;display:flex}.tut__play-player{color:var(--gold-300);font-size:13px;font-weight:600}.tut__play-note{color:var(--text-dim);font-size:12px;line-height:1.4}.tut__led,.tut__pick{text-align:center}.tut__feedback{border-radius:12px;max-width:60ch;margin:0;padding:12px 18px;font-size:14px;line-height:1.5;animation:.2s fade-in}.tut__feedback.is-correct{color:#c2f3da;background:#36b97c29;border:1px solid #36b97c8c}.tut__feedback.is-ok{color:var(--gold-300);background:#f4d58d24;border:1px solid #f4d58d80}.tut__feedback.is-wrong{color:#f3b9b5;background:#c0322b29;border:1px solid #c0322b8c}.tut__summary{flex-direction:column;align-items:center;gap:18px;display:flex}.tut__score{flex-direction:column;align-items:center;display:flex}.tut__score-num{color:var(--gold-300);font-family:Georgia,serif;font-size:64px;line-height:1}.tut__score-label{color:var(--text-dim);font-size:14px}.tut__summary-cards{gap:12px;display:flex}.tut__pot{color:var(--text-light);margin:0;font-size:20px}.room{flex-direction:column;gap:22px;display:flex}.room__head{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.room__head h1{font-size:clamp(28px,5vw,44px)}.room__lede{max-width:56ch;color:var(--text-dim);margin:0;line-height:1.6}.room__memory{color:var(--gold-300);border:1px solid #f4d58d66;border-radius:999px;margin:6px 0 0;padding:6px 16px;font-size:13px}.room__panel-title{text-transform:uppercase;letter-spacing:.12em;color:var(--gold-300);margin-bottom:12px;font-size:12px;font-weight:600;display:block}.room__grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.room__invite{flex-direction:column;align-items:flex-start;display:flex}.room__code{letter-spacing:.18em;color:var(--text-light);text-align:center;background:#f4d58d14;border:1px dashed #f4d58d80;border-radius:12px;width:100%;padding:12px 22px;font-family:Georgia,serif;font-size:clamp(34px,6vw,48px)}.room__invite-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.room__invite-hint{color:var(--text-dim);margin:12px 0 0;font-size:14px}.room__stat-list{justify-content:space-around;gap:14px;margin:0;padding:0;list-style:none;display:flex}.room__stat-list li{flex-direction:column;align-items:center;display:flex}.room__stat-num{color:var(--gold-300);font-family:Georgia,serif;font-size:38px;line-height:1}.room__stat-label{color:var(--text-dim);text-align:center;margin-top:6px;font-size:12px}.room__players-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.room__reset{color:var(--text-dim);background:0 0;border:1px solid #f4d58d66;border-radius:999px;padding:6px 14px;font-size:13px}.room__reset:hover{color:var(--text-light);border-color:var(--gold-300)}.room__add{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.room__input{min-width:0;color:var(--text-light);background:#071c1499;border:1px solid #f4d58d40;border-radius:10px;flex:220px;padding:11px 14px;font-size:15px}.room__input::placeholder{color:var(--text-dim)}.room__input:focus-visible{outline:2px solid var(--gold-300);outline-offset:1px}.room__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.room__row{background:#071c1473;border:1px solid #f4d58d1f;border-radius:12px;grid-template-columns:1.4fr .6fr 1.2fr .9fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.room__row--header{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);background:0 0;border:none;padding:0 14px;font-size:11px}.room__row.is-leader{background:#36b97c1a;border-color:#36b97c80}.room__player-name{color:var(--text-light);align-items:center;gap:8px;font-weight:600;display:flex}.room__leader-tag{text-transform:uppercase;letter-spacing:.06em;color:#06150e;background:#2f9e6a;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.room__score{align-items:center;gap:8px;display:inline-flex}.room__step{width:30px;height:30px;color:var(--text-light);background:0 0;border:1px solid #f4d58d66;border-radius:8px;flex:none;place-items:center;font-size:18px;line-height:1;display:grid}.room__step:hover{border-color:var(--gold-300)}.room__score-input{text-align:center;width:56px;color:var(--text-light);background:#071c1499;border:1px solid #f4d58d40;border-radius:8px;padding:7px 6px;font-size:15px}.room__select{width:100%;color:var(--text-light);background:#071c1499;border:1px solid #f4d58d40;border-radius:8px;padding:8px 10px;font-size:14px}.room__select:focus-visible,.room__score-input:focus-visible{outline:2px solid var(--gold-300);outline-offset:1px}.room__row-actions{justify-content:flex-end;display:flex}.room__remove{color:var(--text-dim);background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:15px}.room__remove:hover{color:var(--red-suit);background:#c0322b1f}.room__empty{text-align:center;color:var(--text-dim);padding:18px;font-style:italic}.room__session-stake{margin-bottom:16px}.room__stake-locked{align-items:center;gap:10px;margin:8px 0 0;display:flex}.room__stake-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--gold-300);background:#f4d58d26;border-radius:999px;padding:3px 10px;font-size:11px}.room__stake-hint{color:var(--text-dim);margin:8px 0 0;font-size:13px}.room__record-hand{border-top:1px solid #f4d58d1f;flex-direction:column;gap:12px;padding-top:14px;display:flex}.room__record-field{color:var(--text-dim);flex-direction:column;gap:6px;max-width:280px;font-size:13px;display:flex}.room__participants{border:1px solid #f4d58d26;border-radius:10px;margin:0;padding:10px 12px}.room__participants legend{color:var(--text-dim);padding:0 4px;font-size:12px}.room__participant{align-items:center;gap:6px;margin:4px 12px 4px 0;font-size:14px;display:inline-flex}.room__pot-preview{color:var(--text-dim);margin:0;font-size:13px}.room__hands-won{font-variant-numeric:tabular-nums;color:var(--gold-300);font-weight:600}.room__net{font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.room__net--up{color:#7dcea0}.room__net--down{color:#e5989b}.room__hand-history{border-top:1px solid #f4d58d1f;margin-top:18px;padding-top:14px}.room__hand-history ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.room__hand-history li{color:var(--text-dim);font-size:13px}.room__hand-num{color:var(--gold-300);margin-right:6px;font-weight:600}.room__notes-field{resize:vertical;width:100%;color:var(--text-light);background:#071c1499;border:1px solid #f4d58d40;border-radius:10px;padding:12px 14px;font-family:inherit;font-size:15px;line-height:1.5}.room__notes-field::placeholder{color:var(--text-dim)}.room__notes-field:focus-visible{outline:2px solid var(--gold-300);outline-offset:1px}.room__notes-hint{color:var(--text-dim);margin:10px 0 0;font-size:13px}@media (width<=560px){.room__row{grid-template-columns:1fr auto;grid-template-areas:"name actions""hands tricks""net net";row-gap:10px}.room__row--header{display:none}.room__player-name{grid-area:name}.room__hands-won{grid-area:hands}.room__score{grid-area:tricks}.room__net{grid-area:net}.room__row-actions{grid-area:actions}}.app{flex-direction:column;min-height:100vh;display:flex}.app__header{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#082017d1;border-bottom:1px solid #f4d58d38;justify-content:space-between;align-items:center;gap:16px;padding:14px clamp(16px,4vw,48px);display:flex;position:sticky;top:0}.app__brand{color:var(--text-light);background:0 0;border:none;align-items:center;gap:10px;padding:4px;font-family:Georgia,serif;font-size:clamp(18px,2.4vw,24px);display:inline-flex}.app__brand-mark{background:linear-gradient(160deg, var(--gold-300), var(--gold-500));width:38px;height:38px;color:var(--ink-900);border-radius:10px;place-items:center;font-size:22px;display:inline-grid;box-shadow:0 6px 14px #00000059}.app__brand-text em{color:var(--gold-300);font-style:italic}.app__nav{gap:8px;display:flex}.app__nav-link{color:var(--text-dim);background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;padding:8px 16px;font-size:15px;text-decoration:none;transition:all .14s;display:inline-flex}.app__nav-link:hover{color:var(--text-light);border-color:#f4d58d59}.app__nav-link.is-active{color:var(--ink-900);background:linear-gradient(160deg, var(--gold-300), var(--gold-400));border-color:#0000;font-weight:600}.app__main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:clamp(20px,4vw,44px) clamp(16px,4vw,48px) 64px}.app__footer{text-align:center;color:var(--text-dim);border-top:1px solid #f4d58d29;padding:18px;font-size:13px}.app-version{z-index:200;color:var(--text-dim);opacity:.65;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:11px;position:fixed;bottom:10px;right:12px}.panel{background:#071c148c;border:1px solid #f4d58d2e;border-radius:16px;padding:clamp(18px,3vw,28px);box-shadow:0 16px 40px #03120c73}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--gold-300);font-family:Segoe UI,sans-serif;font-size:12px;font-weight:600}.btn{color:var(--text-light);background:0 0;border:1px solid #f4d58d73;border-radius:999px;align-items:center;gap:8px;padding:12px 22px;font-size:15px;transition:all .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--gold-300);transform:translateY(-1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:linear-gradient(160deg, var(--gold-300), var(--gold-400));color:var(--ink-900);border-color:#0000;font-weight:600}.btn--primary:hover:not(:disabled){filter:brightness(1.04)}
