: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;flex-wrap:wrap;justify-content:center;gap:8px 20px}.profile-name{overflow-wrap:anywhere}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0}.stat-tile{padding:12px;background:var(--night);border:1px solid var(--moss);border-radius:10px;text-align:center}.stat-tile dt{color:var(--muted);font-size:.85rem}.stat-tile dd{margin:4px 0 0;font-family:var(--display);font-size:1.6rem;font-weight:700;color:var(--gold)}.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)}.name--admin{background:linear-gradient(90deg,#f7d87f,#e8833a,#fff3c4,#f7d87f);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;animation:shimmer 3.5s linear infinite}.hunter--admin{background:linear-gradient(160deg,#5c4212f2,#14291ff2 65%);border-color:var(--gold)}.room--admin .card--back{background:radial-gradient(circle at center,transparent 22%,#7a5410 23% 28%,transparent 29% 44%,#7a5410 45% 49%,transparent 50%),linear-gradient(145deg,#f7d87f,#c8922a);border-color:var(--gold)}.room--admin .tracks{background:var(--ember)}@keyframes shimmer{to{background-position:-300% 0}}.hunter{position:relative}.sound-toggle{position:fixed;top:10px;right:10px;z-index:50;width:40px;height:36px;padding:0;background:#0d1815d9;border:1px solid var(--line);border-radius:8px;cursor:pointer}.reaction-bubble{position:absolute;top:-10px;left:0;right:0;z-index:25;width:max-content;max-width:100%;margin:0 auto;padding:5px 10px;color:#1c1208;background:var(--bone);border-radius:12px;box-shadow:0 4px 12px #00000073;font-size:.9rem;font-weight:700;text-align:center;pointer-events:none;animation:bubble 3.2s ease both}.reaction-bubble--text{overflow-wrap:anywhere;animation-duration:5s}.reaction-bubble--admin{background:linear-gradient(135deg,#fff3c4,var(--gold));box-shadow:0 0 14px #e9b949bf}.message-form{grid-column:1 / -1;display:flex;gap:6px}.message-input{flex:1;min-width:0;padding:9px;color:var(--bone);background:var(--night);border:1px solid var(--line);border-radius:8px}.message-input:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.message-send{flex:none;padding:6px 10px}.message-send:disabled{opacity:.5;cursor:not-allowed}.reaction-tray{position:absolute;left:8px;right:8px;bottom:calc(100% + 6px);z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;background:var(--forest);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #0000008c;animation:rise .16s ease-out}.reaction-btn{min-height:40px;padding:6px 4px;color:var(--bone);background:var(--moss);border:1px solid var(--line);border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer}.status{animation:pop .24s ease-out}.hunter--active{animation:hunter-glow 1.6s ease-in-out infinite}.card--revealed{animation:flip-in .3s ease-out}.room--triplet .card--revealed{animation:capture .7s ease-in-out 2}.room--miss .card--revealed{animation:shake .4s ease-in-out}.trophy--won{animation:trophy .45s ease-out}.gameover-panel{position:relative;z-index:2;animation:rise .35s ease-out}.confetti{position:fixed;top:-16px;z-index:1;width:8px;height:14px;border-radius:2px;pointer-events:none;animation:confetti-fall 2.6s ease-in forwards}.confetti--0{background:var(--gold)}.confetti--1{background:var(--ember)}.confetti--2{background:#6fcf97}.confetti--3{background:var(--bone)}@keyframes pop{0%{opacity:0;transform:scale(.8)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes bubble{0%{opacity:0;transform:translateY(8px) scale(.8)}8%,88%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}@keyframes hunter-glow{50%{box-shadow:0 0 14px 2px #e8833aa6}}@keyframes flip-in{0%{transform:perspective(300px) rotateY(90deg)}}@keyframes capture{50%{box-shadow:0 0 16px 5px var(--gold);transform:scale(1.12)}}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes trophy{0%{transform:scale(.2)}60%{transform:scale(1.5)}}@keyframes confetti-fall{to{opacity:.7;transform:translateY(105vh) rotate(540deg)}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important}.confetti{display:none}}.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 .reaction-bubble{padding:4px 6px;font-size:.75rem}.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 .mini-label{display:none}.reaction-tray{position:fixed;inset:8px 206px auto auto;width:min(440px,calc(100vw - 300px));max-height:calc(100vh - 16px);overflow-y:auto;grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}.hunter--me .card{--size: 34px}}
