body{display:flex;flex-direction:column;min-height:100dvh}:root{--tp:#8710FF;--tp-soft:#a54cff;--to:#FF7410;--to-soft:#ff9040}.setup{flex:1;display:flex;align-items:center;justify-content:center;padding:16px clamp(14px,4vw,32px) 34px}.setup-card{width:min(620px,100%);background:var(--card-bg);border:1.5px solid var(--card-line);border-radius:var(--radius-lg);padding:clamp(24px,5vw,42px);animation:rise-in 550ms cubic-bezier(0.22,1,0.36,1) both}@keyframes rise-in{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}.setup-card h1{font-weight:900;font-size:clamp(1.6rem,5vw,2.2rem);text-align:center}.teams-row{display:flex;align-items:flex-end;gap:12px;margin-top:8px}.team-field{flex:1}.teams-row .vs{font-weight:900;color:var(--text-dim);padding-bottom:15px;font-size:1.05rem}.team-p input:focus{border-color:var(--tp);box-shadow:0 0 0 4px rgba(135,16,255,0.22)}.team-o input:focus{border-color:var(--to);box-shadow:0 0 0 4px rgba(255,116,16,0.22)}.team-p label{color:var(--tp-soft)}.team-o label{color:var(--to-soft)}.btn-start{width:100%;margin-top:26px;font-size:1.2rem;padding:1em}.rules-hint{margin-top:18px;color:var(--text-dim);font-weight:500;font-size:0.92rem;line-height:1.9;text-align:center}.game{flex:1;display:flex;flex-direction:column;padding:0 clamp(10px,3vw,28px) clamp(14px,3vh,26px)}.scoreboard{display:flex;align-items:stretch;justify-content:center;gap:clamp(8px,2vw,18px);width:min(860px,100%);margin:0 auto 8px}.team-box{flex:1;max-width:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:var(--radius-md);border:1.5px solid var(--card-line);background:var(--card-bg);transition:box-shadow var(--smooth),border-color var(--smooth),transform var(--smooth)}.team-box.p{border-color:rgba(135,16,255,0.4)}.team-box.o{border-color:rgba(255,116,16,0.4)}.team-box.active.p{box-shadow:0 0 26px -6px var(--tp);border-color:var(--tp);transform:translateY(-2px)}.team-box.active.o{box-shadow:0 0 26px -6px var(--to);border-color:var(--to);transform:translateY(-2px)}.t-name{font-weight:900;font-size:clamp(0.95rem,2.6vw,1.25rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.team-box.p .t-name{color:var(--tp-soft)}.team-box.o .t-name{color:var(--to-soft)}.t-dots{display:flex;gap:6px}.t-dots i{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,0.14);transition:background var(--smooth),box-shadow var(--smooth)}.team-box.p .t-dots i.won{background:var(--tp);box-shadow:0 0 10px var(--tp)}.team-box.o .t-dots i.won{background:var(--to);box-shadow:0 0 10px var(--to)}.mid-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:130px}.round-label{font-weight:800;color:var(--text-dim);font-size:0.85rem}.turn-chip{font-weight:900;font-size:clamp(0.85rem,2.2vw,1rem);padding:6px 14px;border-radius:99px;border:1.5px solid var(--card-line);white-space:nowrap;transition:color var(--smooth),border-color var(--smooth)}.turn-chip.p{color:var(--tp-soft);border-color:rgba(135,16,255,0.5)}.turn-chip.o{color:var(--to-soft);border-color:rgba(255,116,16,0.5)}.prize-chip{font-weight:700;font-size:0.8rem;color:var(--yellow);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prize-chip:empty{display:none}.hex-wrap{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(16px,3vmin,30px)}.edge{position:absolute;border-radius:99px;pointer-events:none}.edge-top,.edge-bottom{height:6px;left:14%;right:14%;background:linear-gradient(90deg,transparent,var(--to) 18%,var(--to) 82%,transparent);box-shadow:0 0 16px -2px var(--to)}.edge-top{top:2px}.edge-bottom{bottom:2px}.edge-right,.edge-left{width:6px;top:16%;bottom:16%;background:linear-gradient(180deg,transparent,var(--tp) 18%,var(--tp) 82%,transparent);box-shadow:0 0 16px -2px var(--tp)}.edge-right{right:2px}.edge-left{left:2px}.hex-board{--hex:clamp(46px,min(17vw,calc((100dvh - 265px) / 5.3)),122px);--hgap:calc(var(--hex) * 0.07);--hexh:calc(var(--hex) * 0.866);display:flex}.hex-col{display:flex;flex-direction:column;gap:var(--hgap)}.hex-col:not(:first-child){margin-left:calc(var(--hex) * -0.25 + var(--hgap))}.hex-col.shift{transform:translateY(calc((var(--hexh) + var(--hgap)) / 2))}.hex-cell{width:var(--hex);height:var(--hexh);clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:calc(var(--hex) * 0.37);color:var(--text);background:linear-gradient(160deg,rgba(255,255,255,0.13),rgba(255,255,255,0.05));transition:transform var(--snap),background var(--smooth),color var(--smooth),filter var(--smooth);-webkit-tap-highlight-color:transparent;animation:hex-in 480ms cubic-bezier(0.34,1.45,0.64,1) both;animation-delay:calc(var(--i) * 24ms)}@keyframes hex-in{from{opacity:0;transform:scale(0.3)}to{opacity:1;transform:scale(1)}}.hex-col.shift .hex-cell{animation-name:hex-in-shifted}@keyframes hex-in-shifted{from{opacity:0;transform:scale(0.3)}to{opacity:1;transform:scale(1)}}.hex-cell.open:hover{transform:scale(1.09);background:linear-gradient(160deg,rgba(255,255,255,0.24),rgba(255,255,255,0.1));z-index:3}.hex-cell.open:active{transform:scale(0.94)}.hex-cell.open{cursor:pointer}.hex-cell.p{background:linear-gradient(160deg,var(--tp-soft),var(--tp));color:#fff;text-shadow:0 2px 8px rgba(0,0,0,0.35)}.hex-cell.o{background:linear-gradient(160deg,var(--to-soft),var(--to));color:#241000}.hex-cell.p,.hex-cell.o{cursor:default}.hex-cell.claimed{animation:claim 500ms cubic-bezier(0.34,1.5,0.64,1)}@keyframes claim{0%{transform:scale(1)}45%{transform:scale(1.22)}100%{transform:scale(1)}}.hex-cell.mp-p{animation:mp-pulse-p 0.95s ease-in-out infinite alternate}.hex-cell.mp-o{animation:mp-pulse-o 0.95s ease-in-out infinite alternate}.hex-cell.mp-both{animation:mp-pulse-b 0.7s ease-in-out infinite alternate}@keyframes mp-pulse-p{from{filter:drop-shadow(0 0 2px var(--tp))}to{filter:drop-shadow(0 0 13px var(--tp)) brightness(1.3)}}@keyframes mp-pulse-o{from{filter:drop-shadow(0 0 2px var(--to))}to{filter:drop-shadow(0 0 13px var(--to)) brightness(1.3)}}@keyframes mp-pulse-b{from{filter:drop-shadow(0 0 4px var(--tp)) brightness(1.1)}to{filter:drop-shadow(0 0 14px var(--to)) brightness(1.35)}}.hex-cell.mp-lock{animation:mp-lock 0.5s ease-in-out infinite alternate}@keyframes mp-lock{from{filter:drop-shadow(0 0 4px var(--yellow)) brightness(1.15)}to{filter:drop-shadow(0 0 18px var(--yellow)) brightness(1.5)}}.double-tag{position:absolute;top:6px;left:50%;transform:translateX(-50%);font-weight:900;font-size:clamp(0.9rem,3vw,1.1rem);padding:6px 18px;border-radius:999px;background:rgba(12,5,28,0.92);z-index:6;white-space:nowrap;animation:dt-in 0.3s cubic-bezier(0.34,1.5,0.64,1)}.double-tag.p{color:var(--tp-soft);border:1.5px solid var(--tp)}.double-tag.o{color:var(--to-soft);border:1.5px solid var(--to)}@keyframes dt-in{from{opacity:0;transform:translateX(-50%) scale(0.7)}to{opacity:1;transform:translateX(-50%) scale(1)}}.hex-cell.win-path{animation:win-glow 900ms ease-in-out infinite alternate;animation-delay:var(--d);z-index:4}@keyframes win-glow{from{filter:brightness(1);transform:scale(1)}to{filter:brightness(1.7) saturate(1.3);transform:scale(1.12)}}.q-sheet{width:min(640px,100%)}.q-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.q-letter{width:74px;height:68px;clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);background:linear-gradient(160deg,var(--violet),var(--purple));display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.9rem;color:#fff}.q-timer{position:relative;width:74px;height:74px;flex-shrink:0}.q-timer svg{transform:rotate(-90deg);width:100%;height:100%}.q-timer circle{fill:none;stroke-width:8;stroke-linecap:round}.qt-track{stroke:rgba(255,255,255,0.1)}.qt-fill{stroke:var(--teal);stroke-dasharray:276.5;stroke-dashoffset:0;transition:stroke 300ms}.q-timer span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.35rem}.q-timer.danger .qt-fill{stroke:var(--pink)}.q-timer.danger span{color:var(--pink);animation:t-pulse 500ms ease-in-out infinite alternate}.q-timer.done{animation:t-shake 400ms}@keyframes t-pulse{from{transform:scale(1)}to{transform:scale(1.18)}}@keyframes t-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.q-text{font-weight:800;font-size:clamp(1.25rem,4vw,1.7rem);line-height:1.75;margin:22px 0 6px;min-height:2.6em}.q-answer{font-weight:900;font-size:clamp(1.3rem,4.4vw,1.8rem);color:var(--yellow);background:rgba(255,220,16,0.08);border:1.5px dashed rgba(255,220,16,0.45);border-radius:var(--radius-md);padding:12px 18px;margin:10px 0 4px;text-align:center;animation:ans-in 420ms cubic-bezier(0.34,1.5,0.64,1) both}@keyframes ans-in{from{opacity:0;transform:scale(0.85)}to{opacity:1;transform:scale(1)}}.judge-p{background:linear-gradient(135deg,var(--purple),var(--tp-soft));color:#fff;box-shadow:0 6px 22px rgba(135,16,255,0.4)}.judge-o{background:linear-gradient(135deg,var(--orange),var(--to-soft));color:#241000;box-shadow:0 6px 22px rgba(255,116,16,0.4)}#qActions2 .btn{white-space:nowrap;min-width:120px;overflow:hidden;text-overflow:ellipsis}.kbd-hint{margin-top:16px;text-align:center;color:rgba(242,242,242,0.35);font-weight:600;font-size:0.8rem}@media (hover:none),(pointer:coarse){.kbd-hint{display:none}}.round-sheet .round-emoji{font-size:3.4rem}.round-sheet h2{font-size:clamp(1.5rem,5vw,2rem);margin-top:6px}.win-sheet .win-crown{font-size:4rem;animation:crown-drop 700ms cubic-bezier(0.34,1.5,0.64,1) both}@keyframes crown-drop{from{opacity:0;transform:translateY(-40px) scale(0.5)}to{opacity:1;transform:translateY(0) scale(1)}}.win-name{font-size:clamp(2rem,8vw,3.2rem);font-weight:900;margin-top:4px;animation:ans-in 500ms 150ms cubic-bezier(0.34,1.5,0.64,1) both}.win-name.p{color:var(--tp-soft);text-shadow:0 0 34px rgba(135,16,255,0.6)}.win-name.o{color:var(--to-soft);text-shadow:0 0 34px rgba(255,116,16,0.6)}.win-sub{color:var(--text-dim);font-weight:700;margin-top:4px}.win-prize{margin:18px auto 0;font-weight:900;font-size:1.2rem;color:var(--yellow);background:rgba(255,220,16,0.08);border:1.5px dashed rgba(255,220,16,0.45);border-radius:var(--radius-md);padding:12px 20px;max-width:100%;overflow-wrap:break-word}@media (min-width:1024px) and (max-height:780px){.game{display:grid;grid-template-areas:"p mid o" "p board o";grid-template-columns:1fr auto 1fr;grid-template-rows:auto 1fr;column-gap:14px}.scoreboard{display:contents}.team-box.p{grid-area:p;justify-self:center;align-self:center}.team-box.o{grid-area:o;justify-self:center;align-self:center}.team-box{min-width:180px;max-width:260px;padding:16px 20px}.mid-box{grid-area:mid;padding-top:2px;flex-direction:row;gap:14px}.hex-wrap{grid-area:board;padding-top:10px;padding-bottom:10px}.hex-board{--hex:clamp(50px,min(13vw,calc((100dvh - 175px) / 5.35)),128px)}}@media (max-width:640px){.scoreboard{flex-wrap:wrap}.mid-box{order:-1;width:100%;flex-direction:row;gap:10px;margin-bottom:2px}.team-box{max-width:none}.hex-board{--hex:clamp(44px,min(17.5vw,calc((100dvh - 320px) / 5.3)),78px)}.q-sheet{padding:20px}}@media (max-width:640px) and (orientation:portrait){.hex-wrap{flex:0 0 auto}.hex-board{margin-bottom:calc(var(--hex) * 0.55)}}