:root{--night: #0d1815;--forest: #14291f;--moss: #1f4133;--line: #3a5c4c;--bone: #f1e8d6;--muted: #a9bbb0;--ember: #e8833a;--gold: #e9b949;--danger: #ef8a7c;--display: Georgia, "Times New Roman", serif;--body: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -10%,#24483a 0%,transparent 60%),var(--night);background-attachment:fixed;color:var(--bone);font-family:var(--body)}button,input{font:inherit}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a{color:var(--gold)}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px 16px}.page--top{justify-content:flex-start}.panel{width:100%;max-width:400px;padding:28px;background:#14291feb;border:1px solid var(--line);border-radius:14px}.panel--wide{max-width:640px}.brand{margin:0 0 4px;font-family:var(--display);font-size:2.3rem;letter-spacing:.02em;color:var(--gold);text-align:center}.tagline{margin:0 0 22px;color:var(--muted);text-align:center}.form{display:flex;flex-direction:column;gap:12px}.field-label{display:block;margin:16px 0 8px;color:var(--muted);font-weight:600}.input{width:100%;padding:12px;color:var(--bone);background:var(--night);border:1px solid var(--line);border-radius:8px}.input:focus-visible,.btn:focus-visible,.choice:focus-visible,.card:focus-visible,.mini-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.btn{display:block;width:100%;padding:13px 18px;color:#1c1208;background:var(--ember);border:none;border-radius:8px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{margin-top:20px;color:var(--bone);background:transparent;border:1px solid var(--line)}.message{margin:12px 0 0;text-align:center}.message--error{color:var(--danger)}.message--ok{color:#9fdcae}.small{margin:16px 0 0;color:var(--muted);font-size:.9rem;text-align:center}.nav-links{display:flex;gap:20px}.section-title{margin:20px 0 8px;font-family:var(--display);font-size:1.2rem;color:var(--ember)}.divider{margin:24px 0;border:none;border-top:1px solid var(--line)}.btn--spaced{margin-top:18px}.btn--secondary{color:var(--bone);background:var(--moss);border:1px solid var(--line)}.input--code{font-family:ui-monospace,Consolas,monospace;font-size:1.3rem;letter-spacing:.25em;text-align:center;text-transform:uppercase}.link-btn{padding:0;color:var(--gold);background:none;border:none;text-decoration:underline;cursor:pointer}.room-code{margin:0 0 16px;font-family:ui-monospace,Consolas,monospace;font-size:2.3rem;font-weight:700;letter-spacing:.18em;text-align:center;color:var(--gold);-webkit-user-select:all;user-select:all}.actions{display:flex;gap:8px}.actions .btn{flex:1}.seat-list{margin:0;padding:0;list-style:none}.seat-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--moss)}.seat-row:last-child{border-bottom:none}.seat-row--free{color:var(--muted);font-style:italic}.seat-name{overflow-wrap:anywhere}.seat-you{color:var(--gold);font-size:.85rem;font-weight:700}.choices{display:flex;flex-wrap:wrap;gap:8px}.choice{min-width:52px;padding:10px 12px;color:var(--bone);background:var(--night);border:1px solid var(--line);border-radius:8px;font-weight:700;cursor:pointer}.choice--active{color:#1c1208;background:var(--gold);border-color:var(--gold)}.rules h2{margin:22px 0 6px;font-family:var(--display);font-size:1.25rem;color:var(--ember)}.rules p,.rules ul{margin:6px 0;line-height:1.55}.rules ul{padding-left:20px}.score-row{display:flex;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--moss)}.score-row:last-child{border-bottom:none}.score-rank{width:34px;color:var(--muted);font-weight:700}.score-row:first-child .score-rank{color:var(--gold)}.score-name{flex:1;overflow-wrap:anywhere}.score-points{color:var(--gold);font-weight:700}.quit{position:fixed;top:10px;left:10px;z-index:50;padding:8px 12px;color:var(--bone);background:#0d1815d9;border:1px solid var(--line);border-radius:8px;cursor:pointer}.room{min-height:max(100vh,640px);display:flex;flex-direction:column;gap:10px;padding:10px 16px 14px}.arena{--seat-half: 92px;position:relative;flex:1;min-height:440px}.status{min-height:36px;padding:7px 20px;background:#0d1815d9;border:1px solid var(--line);border-radius:999px;font-weight:700;text-align:center;overflow-wrap:anywhere}.status--mine{color:#1c1208;background:var(--ember);border-color:var(--ember)}.status--triplet{color:#1c1208;background:var(--gold);border-color:var(--gold)}.arena .hunter{position:absolute;left:clamp(var(--seat-half),var(--x),calc(100% - var(--seat-half)));top:clamp(52px,var(--y),calc(100% - 52px));z-index:2;width:calc(var(--seat-half) * 2);transform:translate(-50%,-50%)}.hunter{padding:10px 12px;background:#14291fe6;border:1px solid var(--line);border-radius:12px;text-align:center}.hunter--active{border-color:var(--ember);box-shadow:0 0 0 1px var(--ember)}.hunter--me{width:100%;max-width:720px;align-self:center}.hunter-head{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px;font-weight:700}.hunter-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trophies{flex:none;display:inline-flex;gap:4px}.trophy{width:11px;height:11px;border:1px solid var(--gold);border-radius:50%}.trophy--won{background:var(--gold)}.mini-actions{display:flex;justify-content:center;gap:6px;margin-bottom:8px}.mini-btn{min-height:34px;padding:5px 11px;color:var(--bone);background:var(--moss);border:1px solid var(--line);border-radius:8px;font-size:.85rem;font-weight:600;white-space:nowrap;cursor:pointer}.arena .hunter{padding-left:6px;padding-right:6px}.arena .mini-btn{padding:5px 7px}.mini-btn:disabled{opacity:.4;cursor:not-allowed}.hand{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px}.tracks{width:11px;height:18px;background:var(--ember);border-radius:2px}.table{position:absolute;inset:110px max(200px,17%) 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px 28px;background:radial-gradient(ellipse at center,#2c5a46 0%,var(--moss) 75%);border:10px solid #4a3220;border-radius:999px;box-shadow:inset 0 0 0 2px #e9b94940,0 14px 40px #00000080}.table-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:640px}.card{--size: 54px;position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--size);height:calc(var(--size) * 1.42);padding:0;overflow:hidden;color:#20170d;background:var(--bone);border:1px solid #c9bea6;border-radius:7px;font-family:var(--display);font-size:calc(var(--size) * .46);font-weight:700}.card:before{content:"";position:absolute;inset:0 0 auto;height:15%;background:hsl(var(--hue, 30) 55% 42%)}.card--sm{--size: 36px}.card--revealed{outline:3px solid var(--ember);outline-offset:1px}.card--gold{background:#f7d87f;border-color:var(--gold)}.card--gold:before{background:#a97a12}.card--back{color:transparent;background:radial-gradient(circle at center,transparent 22%,var(--ember) 23% 28%,transparent 29% 44%,var(--ember) 45% 49%,transparent 50%),var(--forest);border-color:var(--line)}.card--back:before{display:none}.card--empty{visibility:hidden}button.card:not(:disabled){cursor:pointer}button.card:not(:disabled):hover{transform:translateY(-3px)}.gameover{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#0d1815e6}@media(max-width:900px),(max-height:500px){.room{min-height:100vh;min-height:100dvh;padding:52px 8px 10px}.arena{--seat-half: 48px;min-height:340px}.arena .hunter{padding:6px 2px}.arena .mini-label{display:none}.arena .mini-actions{gap:4px;margin-bottom:6px}.arena .mini-btn{min-width:40px;padding:5px 4px}.arena .hunter-head{flex-direction:column;gap:2px;margin-bottom:4px;font-size:.85rem}.arena .hunter-name{max-width:100%}.arena .trophy{width:9px;height:9px}.arena .tracks{width:8px;height:14px}.table{inset:100px 104px 6px;gap:10px;padding:12px 8px;border-width:6px}.status{min-height:0;padding:5px 12px;font-size:.8rem}}@media(max-width:560px){.card{--size: 44px}.card--sm{--size: 30px}.table .card{--size: 36px}.hunter--me .card{--size: 34px}.table-cards{gap:6px}}@media(max-width:360px){.arena{--seat-half: 40px}.arena .mini-actions{gap:3px}.arena .mini-btn{min-width:34px;padding:5px 2px}.table{inset-inline:84px}.table .card{--size: 32px}.table-cards{gap:4px}.status{padding:4px 8px;font-size:.72rem}.hunter--me{padding:8px 6px}.hunter--me .hand{gap:3px}.hunter--me .card{--size: 28px}}@media(orientation:landscape)and (max-height:500px){.room{flex-direction:row;padding:8px}.arena{min-height:300px}.table{inset:96px 104px 4px}.table .card{--size: 36px}.hunter--me{flex:none;width:190px;padding:10px 6px}.hunter--me .mini-btn{padding:5px 6px}.hunter--me .card{--size: 34px}}
