:root{color-scheme:dark;--navy:#132d43;--cream:#fff0cd;--orange:#ed923c;--coral:#e9654b;--felt:#206c6b;--ink:#112b40}*{box-sizing:border-box}body{margin:0;background:var(--navy);color:var(--cream);font-family:'Nunito',system-ui,sans-serif}button,input,select{font:inherit}button,select{min-height:44px;border:1px solid #f1c98880;border-radius:10px;padding:9px 14px;background:#26465a;color:var(--cream);cursor:pointer;font-weight:800}button:hover:enabled{background:#3b5a68}button:active:enabled{filter:brightness(.9)}button:disabled{opacity:.45;cursor:default}.primary{background:var(--orange);color:var(--ink)}button[aria-pressed=true]{outline:2px solid var(--orange);outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f7b85c;outline-offset:3px}[hidden]{display:none!important}#app{max-width:1100px;margin:auto;padding:12px 18px 24px}header{display:flex;gap:12px;align-items:center}header a{font-size:28px;color:var(--orange);text-decoration:none}header div{flex:1}h1{font-size:24px;margin:0}header small{color:#ddc9ac}h2{margin:8px 0 14px;font-size:23px}p{line-height:1.5}header button{flex-shrink:0}.hud{display:flex;justify-content:space-between;gap:10px;padding:14px 0;font-size:15px}.table{height:550px;position:relative;isolation:isolate;border-radius:24px;overflow:hidden;border:2px solid #e7bd76}canvas{position:absolute;width:100%;height:100%;z-index:-1}.middle{position:absolute;inset:36% 19% auto;text-align:center;pointer-events:none}.middle>strong,.middle>span{display:block;margin:7px 0}#board,#reviewboard{display:flex;justify-content:center;gap:5px}.playingcard{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:46px;height:64px;border-radius:7px;background:var(--cream);border:2px solid #f5cb8c;color:var(--ink);font-weight:900;box-shadow:0 3px 0 #0d2b38;font-size:20px;line-height:1.05}.playingcard.red{color:#b8352d}.playingcard.back{background:#173853 url('assets/back.webp') center/cover;border:2px solid #efd5ac;font-size:0}.playingcard.best{outline:3px solid var(--orange);outline-offset:2px}.seat{position:absolute;width:165px;text-align:center;padding:7px;border:1px solid #b8c9bd66;border-radius:16px;background:#132d43dd;transition:opacity .15s}.seat.active{border:3px solid var(--orange);box-shadow:0 0 0 4px #fca64030;padding:5px}.seat.folded{opacity:.62}.portrait{width:64px;height:64px;object-fit:contain;float:left}.seat strong{display:block;font-size:14px}.seat .coins{font-size:14px;margin:2px 0}.seat .badges{font-size:11px;color:#f5c27d;min-height:14px}.seat .hole{display:flex;justify-content:center;gap:4px;clear:both;margin-top:5px}.seat .hole .playingcard{width:34px;height:46px;font-size:16px}.seat .status{font-size:11px;min-height:14px}.console{text-align:center;padding-top:3px}#turn{min-height:24px;font-weight:800;margin:10px 0}#actions{display:flex;gap:8px;max-width:620px;margin:auto}#actions button{flex:1;min-height:50px}.utility{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin:10px 0}.utility button{font-size:13px}#hinttext:empty{display:none}#savehint{font-size:11px;color:#bbd1cb;margin:5px}#recap{padding:15px;background:#26495b;border-radius:16px;margin:10px 0}#payouts p{margin:5px 0}#made{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.made{padding:9px;border:1px solid #8eaaa6;border-radius:10px}.made .cards{display:flex;gap:4px;margin:8px 0}.made .playingcard{width:30px;height:42px;font-size:15px}.recapactions{display:flex;flex-wrap:wrap;gap:8px}dialog{color:var(--cream);background:var(--navy);border:2px solid #e9b765;border-radius:20px;padding:24px;width:min(600px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 18px 70px #0009}dialog::backdrop{background:#081c2bcc}dialog button{margin:5px 2px}dialog label{display:block;margin:15px 0}input[type=range]{display:block;width:100%;margin:18px 0;min-height:44px;accent-color:var(--orange)}input[type=number]{min-height:44px;width:150px;padding:8px;background:var(--cream);color:var(--ink);border-radius:8px;border:0;margin-left:10px}.steps,.ports,.settings{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.steps button{flex:1}.ports button{flex:1}#menu{padding:0;width:min(720px,calc(100% - 24px))}.cover{height:205px;background:#bd773b url('cover.webp') center 58%/cover}.menucontent{padding:18px 24px}.menucontent p{font-size:14px;margin:8px 0}.menucontent h2{margin-top:0}#continue{width:100%}#noCash{color:#c8ddd2;font-size:12px}#reviewplayers{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:14px 0}#reviewplayers>div{padding:8px;border:1px solid #53706f;border-radius:8px}#reviewplayers .playingcard{width:28px;height:38px;font-size:14px;margin:4px 2px}#reviewevent{min-height:28px}#lessonnav{display:flex;gap:8px}#lessonnav button{flex:1}#lessonanswers{display:flex;gap:8px;flex-wrap:wrap}#lessonfeedback{min-height:55px}.correct{color:#a9eac7}.incorrect{color:#ffac8e}@media(max-width:700px){#app{padding:8px 10px 20px}h1{font-size:20px}header small{font-size:11px}.hud{font-size:12px;align-items:center;padding:10px 0}.table{height:545px;border-radius:17px}.seat{width:112px;padding:5px;border-radius:12px}.seat.active{padding:3px}.portrait{width:40px;height:40px}.seat strong{font-size:11px}.seat .coins{font-size:12px}.seat .badges{font-size:9px}.seat .status{font-size:10px}.seat .hole{margin-top:2px}.seat .hole .playingcard{width:26px;height:36px;font-size:13px}.middle{inset:39% 8% auto}.playingcard{width:36px;height:51px;font-size:17px}#actions button{padding:8px 6px;font-size:13px}dialog{padding:18px}.menucontent{padding:15px}.cover{height:150px}.utility{gap:5px}.utility button{padding:7px 9px}}@media(max-width:350px){.table{height:530px}.seat{width:94px}.portrait{width:33px;height:33px}.seat .coins{font-size:11px}.seat strong{font-size:10px}.playingcard{width:31px;height:46px}.middle{inset:40% 7% auto}header small{max-width:185px;display:block}.hud{font-size:11px}.settings button{padding:8px}.menucontent .ports button{font-size:12px}#reviewplayers{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.portrait{animation:crew-breathe 3.5s ease-in-out infinite;transform-origin:bottom center;animation-play-state:paused}#app[data-motion=true] .portrait{animation-play-state:running}.seat:nth-child(even) .portrait{animation-delay:-1.2s}.seat.active .portrait{filter:drop-shadow(0 0 4px #ffcb7866)}@keyframes crew-breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-2px) rotate(1deg)}}
