@font-face{font-family:RoughCut;src:url(/assets/fonts/RoughCut-Regular-Clean.otf)format("opentype");font-weight:400}@font-face{font-family:RoughCut;src:url(/assets/fonts/RoughCut-Italic-Clean.otf)format("opentype");font-style:italic}@font-face{font-family:HelvNeueCn;src:url(/assets/fonts/HelveticaNeueLTStd-Cn.otf)format("opentype")}@font-face{font-family:HelvNeueCn;src:url(/assets/fonts/HelveticaNeueLTStd-BdCn.otf)format("opentype");font-weight:700}:root{--coral:#f0644c;--coral-dark:#d94a35;--navy:#16223e;--navy-2:#22335c;--parchment:#f1ede4;--parchment-2:#e6e0d2;--ocean:#57c7f0;--gold:#ffd23e;--ink:#101a30}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--navy);color:var(--parchment);font-family:HelvNeueCn,Helvetica Neue,Arial,sans-serif;overflow-x:hidden}h1,h2,h3,.display{letter-spacing:.02em;font-family:RoughCut,HelvNeueCn,sans-serif}button{cursor:pointer;border:none;border-radius:10px;font-family:RoughCut,sans-serif;transition:transform 80ms,filter .12s,box-shadow .12s}button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.45;cursor:not-allowed}.btn{background:var(--coral);color:#fff;box-shadow:0 4px 0 var(--coral-dark), 0 8px 18px #00000059;padding:12px 26px;font-size:20px}.btn.gold{background:var(--gold);color:var(--navy);box-shadow:0 4px #d9ab17,0 8px 18px #00000059}.btn.ghost{color:var(--parchment);border:2px solid var(--parchment);box-shadow:none;background:0 0}.btn.small{padding:7px 14px;font-size:15px}.btn.tiny{border-radius:7px;padding:4px 10px;font-size:13px}input[type=text]{border:2px solid var(--navy-2);background:var(--parchment);color:var(--ink);border-radius:10px;outline:none;padding:11px 14px;font-family:HelvNeueCn,sans-serif;font-size:18px}input[type=text]:focus{border-color:var(--coral)}.landing{background:var(--navy);background:radial-gradient(1200px 560px at 50% -140px, #f0644c38, transparent 62%), linear-gradient(180deg, #1c2a4e 0%, var(--navy) 45%, #101a34 100%);flex-direction:column;align-items:center;min-height:100%;display:flex;position:relative;overflow:hidden}.landing:before{content:"";opacity:.1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='104' viewBox='0 0 160 104'%3E%3Cg fill='none' stroke='%2357c7f0' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M10 26 q10 -9 20 0 t20 0'/%3E%3Cpath d='M95 70 q10 -9 20 0 t20 0'/%3E%3C/g%3E%3C/svg%3E");background-size:160px 104px;animation:26s linear infinite waves-drift;position:absolute;inset:-80px 0 0}@keyframes waves-drift{0%{background-position:0 0}to{background-position:-160px 52px}}.landing:after{content:"";pointer-events:none;background:radial-gradient(130% 95% at 50% 40%,#0000 45%,#0a10208c 100%);position:absolute;inset:0}.landing-inner{z-index:1;flex-direction:column;align-items:center;width:min(1080px,94vw);padding:40px 0 70px;display:flex;position:relative}.landing .skull{filter:drop-shadow(0 10px 22px #0000008c);width:120px;margin-bottom:4px;animation:4.5s ease-in-out infinite skull-bob}@keyframes skull-bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-10px)rotate(2deg)}}.landing h1{color:var(--parchment);text-shadow:0 3px 0 var(--coral), 0 7px 0 var(--coral-dark), 0 18px 40px #000000bf;text-align:center;letter-spacing:.03em;font-size:clamp(56px,10vw,116px);line-height:.95}.landing .tagline{color:var(--gold);text-align:center;text-shadow:0 3px 14px #000000b3;margin:12px 0 36px;font-family:RoughCut,sans-serif;font-size:clamp(18px,2.6vw,27px);font-style:italic}.landing-card{-webkit-backdrop-filter:blur(10px);color:var(--ink);border:3px solid var(--coral);background:#f1ede4eb;border-radius:20px;width:min(560px,92vw);padding:30px 32px;transition:transform .25s,box-shadow .25s;box-shadow:inset 0 2px #ffffff59,0 34px 80px #0009,0 10px 26px #0006}.landing-card:hover{transform:translateY(-4px);box-shadow:inset 0 2px #ffffff59,0 44px 96px #000000a6,0 14px 30px #00000073}.landing-card h2{color:var(--coral-dark);margin-bottom:14px;font-size:27px}.landing-card .row{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.landing-card .row input{background:#fff;flex:1;min-width:160px}.landing .mode-note{color:#5a6274;text-align:center;margin-top:14px;font-size:14px}.landing .meta-line{letter-spacing:.12em;color:#f1ede4d9;text-shadow:0 2px 10px #000000b3;margin-top:26px;font-family:RoughCut;font-size:17px}.captain-strip{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:30px;display:flex}.captain-strip .cap{perspective:900px;cursor:pointer;width:112px;height:112px;animation:5.2s ease-in-out infinite cap-bob;position:relative}.captain-strip .cap:nth-child(2n){animation-delay:-1.4s}.captain-strip .cap:nth-child(3n){animation-delay:-2.8s}.captain-strip .cap:nth-child(5n){animation-delay:-3.9s}@keyframes cap-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.cap-flip{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.3,.9,.4,1);position:relative}.captain-strip .cap:hover{z-index:40;animation-play-state:paused}.captain-strip .cap:hover .cap-flip{transform:translateY(-84px)scale(2.55)rotateY(180deg)}.cap .face{object-fit:cover;backface-visibility:hidden;border:3px solid #f1ede44d;border-radius:12px;width:100%;height:100%;display:block;position:absolute;inset:0;box-shadow:0 12px 26px #00000080}.cap .face.back{border-color:var(--gold);background:#fff;transform:rotateY(180deg);box-shadow:0 18px 44px #000000a6,0 0 26px #ffd23e4d}.lobby{background:radial-gradient(900px 400px at 50% -80px, #f0644c47, transparent 70%), var(--navy);min-height:100%;padding:30px clamp(12px,4vw,48px)}.lobby-head{flex-wrap:wrap;align-items:baseline;gap:18px;margin-bottom:8px;display:flex}.lobby-head h1{font-size:44px}.game-code{background:var(--parchment);color:var(--coral-dark);letter-spacing:.35em;border:3px dashed var(--coral);-webkit-user-select:all;user-select:all;border-radius:10px;padding:4px 18px;font-family:RoughCut,monospace;font-size:30px}.lobby-sub{color:#9fb0d0;margin-bottom:24px;font-size:16px}.captain-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.captain-card{aspect-ratio:1;perspective:1100px;cursor:pointer;transition:transform .12s;position:relative}.captain-card:hover{transform:translateY(-4px)}.captain-card:hover .cap-flip{transform:rotateY(180deg)}.captain-card .face{object-fit:cover;backface-visibility:hidden;background:#fff;border:3px solid #f1ede42e;border-radius:16px;width:100%;height:100%;display:block;position:absolute;inset:0;box-shadow:0 10px 24px #0006}.captain-card .face.back{transform:rotateY(180deg)}.captain-card.selected .face{border-color:var(--gold);box-shadow:0 0 0 3px #ffd23e59,0 14px 30px #0006}.captain-card.taken{opacity:.45;cursor:not-allowed}.captain-card .power-pop{border:3px solid var(--gold);opacity:0;pointer-events:none;z-index:30;background:#fff;border-radius:12px;width:172px;transition:opacity .25s,transform .25s;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)scale(.85);box-shadow:0 18px 44px #0009}.captain-card.pop-left .power-pop{left:auto;right:calc(100% + 12px)}.captain-card:hover{z-index:25}.captain-card:hover .power-pop{opacity:1;transform:translateY(-50%)scale(1)}.captain-card .cclaim{z-index:5;background:var(--gold);color:var(--navy);border-radius:20px;padding:3px 10px;font-family:HelvNeueCn;font-size:13px;font-weight:700;position:absolute;top:10px;right:10px}.roster{flex-wrap:wrap;gap:12px;margin:26px 0;display:flex}.roster .seat{background:var(--navy-2);border:2px solid #f1ede41f;border-radius:12px;align-items:center;gap:10px;padding:8px 16px 8px 8px;display:flex}.roster .seat img{object-fit:cover;border-radius:50%;width:44px;height:44px}.roster .seat .dot{background:#34456f;border-radius:50%;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.roster .host-tag{color:var(--gold);font-size:12px;font-weight:700}.game{grid-template-columns:minmax(0,1fr) clamp(320px,28vw,420px);height:100vh;display:grid}@media (width<=900px){.game{grid-template-columns:1fr;height:auto}}.board-wrap{background:#0d1830;min-height:60vh;position:relative;overflow:hidden}.board-svg{touch-action:none;width:100%;height:100%;display:block}.hex{fill:#0000;stroke:#0000;cursor:default}.hex.selectable{fill:#ffd23e4d;stroke:#ffd23e;stroke-width:4px;cursor:pointer}.hex.selectable:hover{fill:#ffd23e80}.hex.danger{fill:#f0644c66;stroke:var(--coral);stroke-width:4px;cursor:pointer}.hex.danger:hover{fill:#f0644c9e}.hex.selected-piece{stroke:#fff;stroke-width:5px;fill:#ffffff2e}.hex.staged-dest{fill:#ffd23e8c;stroke:#ffd23e;stroke-width:6px;cursor:pointer}.hex.spawn{cursor:pointer;stroke:#ffd23e;stroke-width:6px;animation:1.1s ease-in-out infinite spawn-pulse}.hex.spawn:hover{fill:#ffd23ea6;animation:none}@keyframes spawn-pulse{0%,to{fill:#ffd23e33;stroke-opacity:.7}50%{fill:#ffd23e8c;stroke-opacity:1}}.sidebar{background:linear-gradient(180deg, #1a2747, var(--navy) 40%);border-left:3px solid #f0644c80;flex-direction:column;gap:14px;padding:14px;display:flex;overflow-y:auto}.turn-banner{background:var(--navy-2);border:2px solid #f1ede426;border-radius:12px;padding:12px 14px;font-family:RoughCut;font-size:20px}.turn-banner.mine{background:var(--coral);color:#fff;border-color:#0000;box-shadow:0 6px 18px #f0644c66}.turn-banner .sub{opacity:.85;margin-top:3px;font-family:HelvNeueCn;font-size:13px}.phase-row{flex-wrap:wrap;gap:6px;display:flex}.scorebar{flex-direction:column;gap:6px;display:flex}.score-line{background:#ffffff0d;border-radius:9px;align-items:center;gap:8px;padding:5px 10px;font-size:14px;display:flex}.score-line img.tracker{border-radius:50%;width:26px;height:26px}.score-line.clickable{cursor:pointer;transition:background .1s}.score-line.clickable:hover{background:#ffffff21}.score-line .bar{background:#ffffff1f;border-radius:4px;flex:1;height:8px;overflow:hidden}.score-line .bar>div{border-radius:4px;height:100%}.score-line .pts{text-align:right;min-width:46px;font-family:RoughCut;font-size:16px;font-weight:700}.mat{border-radius:12px;position:relative;overflow:hidden;box-shadow:0 8px 20px #0006}.mat img.matbg{width:100%;display:block}.mat .slot{cursor:default;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.mat .slot img{border-radius:50%;width:100%;height:100%;display:block;box-shadow:0 2px 5px #00000059}.mat .slot.staged{cursor:pointer}.mat .slot.staged img{outline:3px solid var(--gold);outline-offset:-1px;border-radius:50%}.mat .slot.staged:hover img{outline-color:var(--coral)}.mat .slot.addable{cursor:pointer;background:#ffffff59;border:3px dashed #f0644cf2;animation:1.1s ease-in-out infinite slot-pulse}.mat .slot.addable:hover{background:#ffd23ebf;animation:none}@keyframes slot-pulse{0%,to{background:#fff3;border-color:#f0644c99}50%{border-color:var(--coral);background:#ffd23e99}}.mat .slot.comp img{outline-offset:-1px;outline:3px solid #7a5cff}.mat .slot.comp.staged img{outline-color:var(--gold)}.mat .slot.addable.comp{border-color:#7a5cfff2;animation:1.1s ease-in-out infinite comp-pulse}.mat .slot.addable.comp:hover{background:#7a5cff73;animation:none}@keyframes comp-pulse{0%,to{background:#fff3;border-color:#7a5cff8c}50%{background:#7a5cff73;border-color:#7a5cff}}.confirm-bar{border:2px solid var(--gold);background:#ffd23e24;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.reserve-strip{background:#ffffff0f;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;font-size:14px;display:flex}.reserve-strip img{border-radius:50%;width:26px;height:26px}.hand{flex-wrap:wrap;gap:8px;display:flex}.hand .card{cursor:pointer;background:var(--navy-2);border:2px solid #f1ede433;border-radius:8px;width:86px;transition:transform .12s,border-color .12s;position:relative;overflow:hidden}.hand .card:hover{border-color:var(--gold);z-index:2;transform:translateY(-6px)}.hand .card img{width:100%;display:block}.section-label{color:#9fb0d0;text-transform:uppercase;letter-spacing:.14em;font-family:RoughCut;font-size:15px}.log{color:#c6d2ea;background:#00000040;border-radius:10px;flex-direction:column-reverse;gap:4px;max-height:180px;padding:10px 12px;font-size:13px;display:flex;overflow-y:auto}.modal-back{z-index:50;background:#060a16b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--parchment);color:var(--ink);border:3px solid var(--coral);border-radius:16px;width:100%;max-width:640px;max-height:86vh;padding:22px 24px;position:relative;overflow-y:auto;box-shadow:0 30px 80px #0009}.hovertip{z-index:4000;pointer-events:none;background:var(--parchment);max-width:290px;color:var(--ink);border:2px solid var(--coral);white-space:pre-line;border-radius:10px;padding:8px 12px;font-size:13.5px;line-height:1.4;position:fixed;transform:translate(-50%,-100%);box-shadow:0 8px 24px #00000073}.hovertip.below{transform:translate(-50%)}.landing-rules-btn{z-index:5;cursor:pointer;letter-spacing:.05em;color:#4a2c0a;background:linear-gradient(180deg, #ffe9a3 0%, var(--gold) 52%, #e8ae24 100%);border:2px solid #8a5a1d;border-radius:12px;padding:9px 18px 7px;font-family:RoughCut,HelvNeueCn,sans-serif;font-size:19px;transition:transform .15s,box-shadow .15s,filter .15s;position:absolute;top:20px;right:22px;transform:rotate(2deg);box-shadow:0 3px #8a5a1d,0 10px 22px #00000073}.landing-rules-btn:hover{filter:brightness(1.05);transform:rotate(0)scale(1.06);box-shadow:0 4px #8a5a1d,0 14px 28px #0000008c}.landing-rules-btn:active{transform:rotate(0)scale(.98);box-shadow:0 1px #8a5a1d,0 6px 14px #0006}@media (width<=700px){.landing-rules-btn{padding:7px 14px 6px;font-size:16px;top:12px;right:12px}}.modal.rules{max-width:860px}.modal.rules h3{color:var(--coral-dark,#b4432f);margin:22px 0 8px}.modal.rules ol{padding-left:22px}.modal.rules ol li{margin-bottom:6px}.rules-sub{opacity:.85;font-style:italic}.rules-figs{flex-wrap:wrap;gap:14px;margin:10px 0;display:flex}.rules-fig{text-align:center;width:150px;margin:0}.rules-fig svg{aspect-ratio:1;border:2px solid #16223e40;border-radius:12px;width:100%;display:block}.rules-fig figcaption{color:#3c455c;margin-top:5px;font-size:12.5px;line-height:1.35}.rules-fig.card-fig{width:120px}.rules-fig.card-fig img{aspect-ratio:2/3;object-fit:cover;border-radius:8px;width:100%;display:block;box-shadow:0 4px 12px #0000004d}.rules-split{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.rules-mat{border-radius:10px;width:280px;max-width:100%;box-shadow:0 4px 14px #0000004d}.rules-split>div{flex:1;min-width:260px}.modal-x{border:2px solid var(--navy);width:36px;height:36px;color:var(--navy);cursor:pointer;background:0 0;border-radius:50%;font-family:RoughCut,sans-serif;font-size:18px;line-height:1;position:absolute;top:10px;right:10px}.modal-x:hover{background:var(--coral);border-color:var(--coral);color:#fff}.modal h3{color:var(--coral-dark);margin-bottom:6px;font-size:26px}.modal p{color:#3c4356;margin-bottom:14px;font-size:15px}.modal .choices{flex-wrap:wrap;gap:10px;margin:8px 0 4px;display:flex}.modal .card-lg{aspect-ratio:2/3;object-fit:cover;border-radius:10px;align-self:flex-start;width:190px;height:auto;box-shadow:0 8px 20px #00000040}.choice-btn{color:var(--ink);background:#fff;border:2px solid #cfc8b8;border-radius:10px;padding:10px 14px;font-family:HelvNeueCn;font-size:16px}.choice-btn:hover{border-color:var(--coral)}.choice-btn.active{border-color:var(--coral);background:#ffe9e3}.stepper{align-items:center;gap:10px;display:flex}.stepper .n{text-align:center;min-width:30px;font-family:RoughCut;font-size:24px}.toast{z-index:80;background:var(--coral);color:#fff;border-radius:12px;padding:12px 22px;font-family:RoughCut;font-size:18px;animation:.2s toast-in;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #00000080}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}}.loot-reveal{z-index:70;cursor:pointer;background:#090d1c8c;place-items:center;animation:.25s toast-in;display:grid;position:fixed;inset:0}.loot-reveal img{border-radius:14px;width:min(300px,70vw);animation:.45s loot-flip;box-shadow:0 30px 90px #000000b3,0 0 60px #ffd23e59}.loot-reveal .who{background:var(--gold);color:var(--navy);border-radius:12px;margin-top:14px;padding:8px 18px;font-family:HelvNeueCn;font-size:16px}@keyframes loot-flip{0%{opacity:0;transform:rotateY(90deg)scale(.8)}to{opacity:1;transform:rotateY(0)scale(1)}}.winner-overlay{z-index:90;background:#090d1ce0;place-items:center;display:grid;position:fixed;inset:0}.winner-overlay .inner{text-align:center;padding:20px}.winner-overlay img{border:4px solid var(--gold);border-radius:18px;width:220px;box-shadow:0 0 80px #ffd23e66}.winner-overlay h1{color:var(--gold);text-shadow:0 6px 24px #0009;margin:18px 0 6px;font-size:clamp(40px,8vw,84px)}.winner-overlay p{color:var(--parchment);margin-bottom:22px;font-size:20px}.pending-banner{background:var(--gold);color:var(--navy);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:14px;font-weight:700;display:flex}
