/* ASSHOLE visual kit v2. All selectors are route-scoped. No gameplay logic. */
@font-face{font-family:Fredoka;src:url('./assets/fonts/Fredoka-Variable.ttf') format('truetype');font-weight:300 700;font-display:swap}
@font-face{font-family:Nunito;src:url('./assets/fonts/Nunito-Variable.ttf') format('truetype');font-weight:200 1000;font-display:swap}
.ah-theme{--ah-ink:#281333;--ah-bg:#2d143e;--ah-panel:#452158;--ah-panel-raised:#603477;--ah-cream:#fff5df;--ah-muted:#d9c4e8;--ah-yellow:#ffd449;--ah-felt:#237a69;--ah-felt-dark:#175b50;--ah-lavender:#c6a0f6;--ah-coral:#ff927e;--ah-mint:#a9ebdd;--ah-red:#b82146;--ah-shadow:0 5px 0 #1c0d27;--ah-border:3px solid var(--ah-ink);min-height:100dvh;background:radial-gradient(ellipse at 50% 20%,#4a225e 0,transparent 65%),var(--ah-bg);color:var(--ah-cream);font:700 16px/1.45 Nunito,system-ui,sans-serif;padding:0 24px 28px}
.ah-theme,.ah-theme *{box-sizing:border-box}.ah-theme [hidden]{display:none!important}
.ah-theme h1,.ah-theme h2,.ah-theme h3,.ah-theme p{margin:0}.ah-theme h1,.ah-theme h2,.ah-theme h3,.ah-theme button{font-family:Fredoka,system-ui,sans-serif;font-weight:600;font-style:normal;letter-spacing:0}
.ah-theme h1{font-size:clamp(28px,3vw,40px);line-height:1.1}.ah-theme h2{font-size:26px}.ah-theme h3{font-size:20px}
.ah-theme button,.ah-theme input{font:inherit}.ah-theme button{cursor:pointer}.ah-theme button:disabled{cursor:not-allowed;opacity:.54}.ah-theme button:focus-visible,.ah-theme a:focus-visible,.ah-theme input:focus-visible{outline:3px solid var(--ah-mint);outline-offset:5px}
.ah-theme .ah-header{max-width:1440px;margin:auto;min-height:86px;display:flex;align-items:center;gap:20px;border-bottom:2px solid #704181;padding:14px 0}.ah-theme .ah-brand{display:flex;align-items:center;gap:8px;margin-right:auto}.ah-theme .ah-brand>img{width:48px;height:48px;transform:rotate(-10deg)}.ah-theme .ah-logo{font:650 38px/1 Fredoka,sans-serif;letter-spacing:-1px;color:var(--ah-yellow);text-shadow:0 3px 0 var(--ah-ink)}.ah-theme .ah-tagline{font-size:11px;color:var(--ah-muted);margin-top:5px;letter-spacing:.5px}.ah-theme .ah-top-actions{display:flex;gap:10px;align-items:center}
.ah-theme .ah-btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:46px;border:var(--ah-border);border-radius:16px;padding:10px 18px;background:var(--ah-cream);color:var(--ah-ink);font:600 17px/1.2 Fredoka,sans-serif;box-shadow:var(--ah-shadow);transition:transform .12s,box-shadow .12s}.ah-theme .ah-btn:not(:disabled):hover{filter:brightness(1.045);transform:translateY(-2px)}.ah-theme .ah-btn:not(:disabled):active{transform:translateY(3px);box-shadow:0 2px 0 #1c0d27}.ah-theme .ah-btn--primary{background:var(--ah-yellow)}.ah-theme .ah-btn--quiet{background:var(--ah-panel);color:var(--ah-cream);border-color:#9c73b4;box-shadow:none}.ah-theme .ah-btn--icon{width:46px;padding:8px}.ah-theme .ah-btn img{height:24px;width:24px}.ah-theme .ah-btn--wide{width:100%}.ah-theme .ah-link{background:none;color:var(--ah-cream);border:0;text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:8px;font-size:14px}.ah-theme .ah-pill{border:2px solid var(--ah-ink);border-radius:999px;background:var(--ah-yellow);color:var(--ah-ink);padding:6px 14px;font:600 16px Fredoka,sans-serif;white-space:nowrap}.ah-theme .ah-pill--quiet{background:var(--ah-panel);color:var(--ah-cream);border-color:#9063a6}
.ah-theme .ah-view-nav{max-width:1440px;margin:18px auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ah-theme .ah-view-nav button{border:1px solid #9b75af;background:transparent;color:var(--ah-muted);border-radius:999px;padding:8px 16px;min-height:44px}.ah-theme .ah-view-nav button[aria-pressed=true]{background:var(--ah-lavender);color:var(--ah-ink);border-color:var(--ah-lavender)}.ah-theme .ah-preview-label{font-size:12px;color:var(--ah-muted);margin-left:auto}.ah-theme .ah-main{max-width:1440px;margin:auto}.ah-theme .ah-intro{margin:24px 0}.ah-theme .ah-intro p{margin-top:8px;color:var(--ah-muted)}.ah-theme .ah-eyebrow{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ah-mint);margin-bottom:8px}
.ah-theme .ah-lobby-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.ah-theme .ah-arena{position:relative;min-height:460px;isolation:isolate}.ah-theme .ah-felt{position:absolute;z-index:-1;inset:68px 48px 36px;border:14px solid #82459e;border-radius:48%;background:radial-gradient(ellipse at 50% 35%,#2a8a77,var(--ah-felt));box-shadow:0 0 0 4px var(--ah-ink),inset 0 0 0 4px #a663bf,inset 0 0 35px #155b4c,0 12px 0 #1b0d25}.ah-theme .ah-table-center{position:absolute;left:26%;right:26%;top:42%;text-align:center}.ah-theme .ah-table-center h2{font-size:27px}.ah-theme .ah-table-center p{font-size:14px;margin-top:8px;color:#edfff8}.ah-theme .ah-table-center .ah-stack-icon{width:70px;height:70px;margin-bottom:6px}
.ah-theme .ah-seat{--rank-color:var(--ah-lavender);display:flex;align-items:center;gap:10px;min-width:0;position:absolute;width:228px;min-height:82px;padding:9px 12px 9px 9px;background:var(--ah-cream);color:var(--ah-ink);border:var(--ah-border);border-radius:22px;box-shadow:var(--ah-shadow)}.ah-theme .ah-seat--top{top:8px;left:50%;transform:translateX(-50%)}.ah-theme .ah-seat--right-top{top:120px;right:0}.ah-theme .ah-seat--right-bottom{bottom:26px;right:14px}.ah-theme .ah-seat--left-bottom{bottom:26px;left:14px}.ah-theme .ah-seat--left-top{top:120px;left:0}.ah-theme .ah-medallion{width:62px;height:62px;flex:0 0 62px;border:var(--ah-border);border-radius:50%;background:var(--rank-color);display:grid;place-items:center}.ah-theme .ah-medallion img{width:52px;height:52px}.ah-theme .ah-seat-text{min-width:0;flex:1}.ah-theme .ah-name{font:600 19px/1.15 Fredoka,sans-serif;overflow-wrap:anywhere}.ah-theme .ah-role{display:inline-block;background:var(--rank-color);border-radius:7px;padding:2px 7px;margin:5px 0;font:600 11px/1.25 Fredoka,sans-serif;text-transform:uppercase}.ah-theme .ah-seat-meta{font-size:12px;white-space:nowrap}.ah-theme .ah-seat--empty{background:#49265e;color:var(--ah-cream);border:2px dashed #bd9bd1;box-shadow:none}.ah-theme .ah-seat--empty .ah-medallion{background:transparent;border:0}.ah-theme .ah-seat--empty .ah-name{font-size:16px}.ah-theme .ah-seat--empty .ah-seat-meta{color:var(--ah-muted)}.ah-theme .ah-seat--active{outline:3px solid var(--ah-yellow);outline-offset:4px}.ah-theme .ah-turn-label{position:absolute;bottom:-21px;left:25px;background:var(--ah-yellow);border:2px solid var(--ah-ink);border-radius:999px;padding:2px 12px;font:600 12px Fredoka,sans-serif;color:var(--ah-ink)}
.ah-theme .ah-side-panel{display:grid;gap:16px}.ah-theme .ah-panel{background:var(--ah-panel);border:var(--ah-border);border-radius:24px;padding:20px;box-shadow:var(--ah-shadow)}.ah-theme .ah-room-code{font:600 32px Fredoka,sans-serif;letter-spacing:5px;margin:9px 0 16px}.ah-theme .ah-panel p{font-size:14px;color:var(--ah-muted);margin:10px 0}.ah-theme .ah-settings{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:14px}.ah-theme .ah-settings li{display:flex;gap:10px;align-items:start;font-size:14px}.ah-theme .ah-settings img{height:27px;width:27px}.ah-theme .ah-settings small{display:block;font-size:12px;color:var(--ah-muted)}.ah-theme .ah-status-note{font-size:13px;color:var(--ah-muted);margin:8px 0;text-align:center}.ah-theme .ah-rank-strip{display:flex;justify-content:center;gap:16px;padding:20px 0 0;color:var(--ah-muted);flex-wrap:wrap}.ah-theme .ah-rank-strip span{display:flex;align-items:center;gap:5px;font-size:12px}.ah-theme .ah-rank-strip img{width:28px;height:28px}
.ah-theme .ah-game .ah-arena{min-height:420px;margin-top:12px}.ah-theme .ah-game .ah-felt{inset:55px 70px 15px}.ah-theme .ah-game .ah-seat{width:245px}.ah-theme .ah-game .ah-seat--right-top,.ah-theme .ah-game .ah-seat--left-top{top:106px}.ah-theme .ah-game .ah-seat--left-bottom,.ah-theme .ah-game .ah-seat--right-bottom{bottom:30px}.ah-theme .ah-game .ah-table-center{top:31%;left:28%;right:28%}.ah-theme .ah-pile{display:flex;justify-content:center;margin:14px 0 12px}.ah-theme .ah-pile .ah-card:first-child{transform:rotate(-9deg)}.ah-theme .ah-pile .ah-card:last-child{transform:rotate(8deg);margin-left:-8px}.ah-theme .ah-pile .ah-card{width:82px;height:114px;min-width:82px}.ah-theme .ah-pile-label{display:inline-block;font:600 15px Fredoka,sans-serif;border:var(--ah-border);border-radius:999px;padding:5px 16px;color:var(--ah-ink);background:var(--ah-cream)}.ah-theme .ah-turn-instruction{font:600 20px/1.2 Fredoka,sans-serif}.ah-theme .ah-rule-hint{font-size:12px!important;color:#eefff9!important;margin-top:6px!important}
.ah-theme .ah-card{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 76px;width:76px;min-width:76px;height:108px;padding:6px;border:3px solid var(--ah-ink);border-radius:12px;background:var(--ah-cream);color:var(--ah-ink);box-shadow:0 4px 0 #1c0d27;transition:transform .12s,outline-color .12s}.ah-theme .ah-card.ah-card--red{color:var(--ah-red)}.ah-theme .ah-card-rank{position:absolute;top:4px;left:8px;font:600 28px/1 Fredoka,sans-serif}.ah-theme .ah-suit-small{position:absolute;top:35px;left:8px;width:14px;height:14px}.ah-theme .ah-suit-center{width:34px;height:34px;margin-top:15px}.ah-theme .ah-card[aria-pressed=true]{transform:translateY(-10px);outline:3px solid var(--ah-yellow);outline-offset:1px}.ah-theme .ah-card:not(:disabled):hover{background:#fffbea}.ah-theme .ah-hand-panel{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:24px;background:#58316f;border:var(--ah-border);border-radius:26px;padding:14px 20px 16px;box-shadow:var(--ah-shadow);margin-top:14px}.ah-theme .ah-hand-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;font-size:12px;color:var(--ah-muted)}.ah-theme .ah-hand{display:flex;gap:8px;padding:16px 5px 9px;overflow-x:auto;scrollbar-color:#b393c4 #452158;scrollbar-width:thin;min-width:0}.ah-theme .ah-hand-controls{display:flex;flex-direction:column;justify-content:center;gap:9px}.ah-theme .ah-selection-note{font-size:13px;color:var(--ah-cream)}
.ah-theme .ah-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ah-theme .ah-swatches{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:15px}.ah-theme .ah-swatch{border:2px solid var(--ah-ink);border-radius:12px;padding:16px 10px;font-size:12px;color:var(--ah-ink)}.ah-theme .ah-icon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.ah-theme .ah-icon-grid div{text-align:center;font-size:11px;color:var(--ah-muted)}.ah-theme .ah-icon-grid img{display:block;width:56px;height:56px;margin:auto auto 6px}.ah-theme .ah-type-sample{font:600 36px Fredoka,sans-serif;margin:14px 0}.ah-theme .ah-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;background:var(--ah-cream);color:var(--ah-ink);border:var(--ah-border);border-radius:14px;padding:14px 20px;z-index:10;box-shadow:var(--ah-shadow);font-size:14px}.ah-theme .ah-demo-help{font-size:12px;color:var(--ah-muted);margin-top:16px}
@media(min-width:1500px){.ah-theme .ah-game .ah-arena{min-height:480px}.ah-theme .ah-game .ah-table-center{top:33%}}
@media(max-width:1100px) and (min-width:761px){.ah-theme{padding-inline:16px}.ah-theme .ah-lobby-layout{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.ah-theme .ah-lobby-layout .ah-seat{width:180px;padding:7px;gap:7px}.ah-theme .ah-lobby-layout .ah-medallion{width:44px;height:44px;flex-basis:44px}.ah-theme .ah-lobby-layout .ah-medallion img{width:40px;height:40px}.ah-theme .ah-lobby-layout .ah-name{font-size:16px}.ah-theme .ah-lobby-layout .ah-table-center{left:23%;right:23%}.ah-theme .ah-game .ah-seat{width:205px}.ah-theme .ah-game .ah-medallion{width:48px;height:48px;flex-basis:48px}.ah-theme .ah-game .ah-medallion img{width:42px;height:42px}.ah-theme .ah-board{grid-template-columns:1fr 1fr}.ah-theme .ah-hand-panel{grid-template-columns:minmax(0,1fr) 200px}}
@media(max-width:760px){.ah-theme{padding:0 12px 20px}.ah-theme .ah-header{min-height:72px;gap:8px;padding:10px 0;flex-wrap:wrap}.ah-theme .ah-brand>img{width:34px;height:34px}.ah-theme .ah-logo{font-size:28px}.ah-theme .ah-tagline{font-size:9px}.ah-theme .ah-top-actions{gap:5px}.ah-theme .ah-top-actions .ah-btn{padding:7px 10px;font-size:14px}.ah-theme .ah-top-actions .ah-btn img{display:none}.ah-theme .ah-top-actions .ah-btn--icon{width:44px;padding:8px}.ah-theme .ah-top-actions .ah-btn--icon img{display:block}.ah-theme .ah-header>.ah-pill{order:3;font-size:12px;padding:4px 10px}.ah-theme .ah-view-nav{margin:12px 0;gap:6px}.ah-theme .ah-view-nav button{padding:8px 12px;font-size:13px}.ah-theme .ah-preview-label{width:100%;margin:4px 0 0}.ah-theme .ah-intro{margin:20px 0 14px}.ah-theme .ah-intro p{font-size:14px}.ah-theme .ah-lobby-layout{display:flex;flex-direction:column;gap:16px}.ah-theme .ah-arena,.ah-theme .ah-game .ah-arena{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 8px;width:100%;min-height:0;margin-top:0;padding:0}.ah-theme .ah-felt,.ah-theme .ah-game .ah-felt{inset:auto;position:absolute;left:0;right:0;bottom:0;height:170px;border-width:8px;border-radius:40px;box-shadow:0 0 0 3px var(--ah-ink),inset 0 0 0 2px #a663bf,0 6px 0 #1b0d25}.ah-theme .ah-seat,.ah-theme .ah-game .ah-seat{position:relative;top:auto;bottom:auto;left:auto;right:auto;transform:none;width:auto;min-height:73px;padding:7px;gap:6px;border-radius:16px}.ah-theme .ah-seat--top{grid-column:1/-1;justify-self:center;width:62%!important}.ah-theme .ah-medallion,.ah-theme .ah-game .ah-medallion{width:40px;height:40px;flex-basis:40px;border-width:2px}.ah-theme .ah-medallion img,.ah-theme .ah-game .ah-medallion img{width:34px;height:34px}.ah-theme .ah-name{font-size:15px}.ah-theme .ah-role{font-size:10px;margin:3px 0;padding:2px 5px}.ah-theme .ah-seat-meta{font-size:10px;white-space:normal}.ah-theme .ah-seat--empty .ah-name{font-size:14px}.ah-theme .ah-turn-label{bottom:-16px;font-size:10px;padding:1px 8px;left:20px}.ah-theme .ah-table-center,.ah-theme .ah-game .ah-table-center{position:relative;top:auto;left:auto;right:auto;grid-column:1/-1;height:170px;padding:19px 10px;margin-top:12px}.ah-theme .ah-table-center .ah-stack-icon{width:44px;height:44px;margin:0}.ah-theme .ah-table-center h2{font-size:22px}.ah-theme .ah-table-center p{font-size:12px}.ah-theme .ah-side-panel{width:100%;grid-template-columns:1fr}.ah-theme .ah-room-code{font-size:28px}.ah-theme .ah-rank-strip{gap:8px}.ah-theme .ah-rank-strip span{font-size:10px}.ah-theme .ah-rank-strip img{width:22px;height:22px}.ah-theme .ah-game .ah-felt{height:205px}.ah-theme .ah-game .ah-table-center{height:205px;padding:14px 10px}.ah-theme .ah-pile{margin:9px 0}.ah-theme .ah-pile .ah-card{width:55px;height:73px;min-width:55px}.ah-theme .ah-pile .ah-card-rank{font-size:22px}.ah-theme .ah-pile .ah-suit-small{top:27px;width:10px;height:10px}.ah-theme .ah-pile .ah-suit-center{width:24px;height:24px}.ah-theme .ah-pile-label{font-size:12px;padding:3px 12px}.ah-theme .ah-turn-instruction{font-size:17px}.ah-theme .ah-rule-hint{font-size:11px!important}.ah-theme .ah-hand-panel{grid-template-columns:1fr;gap:5px;padding:10px 12px;margin-top:16px;border-radius:20px}.ah-theme .ah-hand{gap:6px;padding-top:14px}.ah-theme .ah-hand .ah-card{width:62px;min-width:62px;flex-basis:62px;height:88px}.ah-theme .ah-hand .ah-card-rank{font-size:24px}.ah-theme .ah-hand .ah-suit-center{width:26px;height:26px}.ah-theme .ah-hand-controls{display:grid;grid-template-columns:1fr 100px;gap:8px;padding-bottom:env(safe-area-inset-bottom)}.ah-theme .ah-hand-controls .ah-link{grid-column:1/-1;min-height:32px;padding:2px}.ah-theme .ah-selection-note{font-size:12px}.ah-theme .ah-board{grid-template-columns:1fr}.ah-theme .ah-demo-help{font-size:11px}}
/* Short screens keep access via ordinary vertical scrolling; never clip a hand to force a fit. */
@media(prefers-reduced-motion:reduce){.ah-theme *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
