@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-italic-BHALq22K.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-italic-B8-t4Nou.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-italic-D2JnYqd-.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #10141f;--cream: #fbf7ee;--navy: #0e2a47;--abyss: #163b5c;--deep: #0a1c30;--teal: #1f8a8a;--sky: #5ba4d9;--foam: #9ed9c5;--coral: #f2665a;--gold: #e9a23b;--pink: #f7b6b0;--plum: #6b3e75;--kelp: #3f6b3a;--sand: #f4d58d;--fog: #dcd5c6;--display: "Fraunces Variable", Fraunces, Georgia, serif;--body: "DM Sans Variable", "DM Sans", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--deep);color:var(--cream);font:500 15px/1.4 var(--body)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}h1,h2,h3{font-family:var(--display);font-style:italic;font-weight:900;margin:0;letter-spacing:-.01em}.btn{border:3px solid var(--ink);border-radius:999px;padding:8px 18px;font-weight:700;background:var(--cream);color:var(--ink);box-shadow:0 3px 0 var(--ink);transition:transform .08s,box-shadow .08s}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 0 var(--ink)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.btn.primary{background:var(--coral);color:var(--cream)}.btn.ghost{background:transparent;color:var(--cream);border-color:#fbf7ee59;box-shadow:none}.btn.ghost:hover{border-color:var(--cream)}.btn.big{font-size:18px;padding:12px 28px}.btn.small{font-size:13px;padding:5px 12px;border-width:2px}.btn:disabled{opacity:.5}.seg{display:inline-flex;border:2px solid rgba(251,247,238,.35);border-radius:999px;overflow:hidden}.seg button{background:transparent;border:0;padding:7px 16px;font-weight:700}.seg button.on{background:var(--cream);color:var(--ink)}.seg.small button{padding:4px 11px;font-size:13px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;flex:none}.panel{background:var(--navy);border:3px solid var(--ink);border-radius:22px}.setup{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:28px 16px 40px;background:radial-gradient(1200px 500px at 50% -10%,#1d4d74,var(--deep))}.hero{display:flex;gap:10px}.hero img{width:124px;height:99px;object-fit:cover;border-radius:16px;border:3px solid var(--ink)}.hero img:nth-child(odd){transform:rotate(-3deg)}.hero img:nth-child(2n){transform:rotate(2deg) translateY(6px)}.logo{font-size:clamp(48px,8vw,84px);margin-top:18px;color:var(--cream);text-shadow:0 5px 0 var(--ink);line-height:1}.tag{margin:10px 0 22px;color:var(--foam);font-weight:700}.setup-panel{width:min(620px,100%);padding:22px;display:flex;flex-direction:column;gap:16px}.row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.row.end{justify-content:space-between;margin-top:6px}.lbl{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--foam);width:70px}.seats{display:flex;flex-direction:column;gap:8px}.seat{display:flex;align-items:center;gap:8px}.seat input{flex:1;min-width:0;background:var(--deep);color:var(--cream);border:2px solid rgba(251,247,238,.25);border-radius:10px;padding:8px 12px;font:inherit;font-weight:700}.seat input:focus{outline:none;border-color:var(--foam)}.check{display:flex;gap:8px;align-items:center;font-weight:700}.hint{margin:0;color:var(--sand);font-size:14px}.sched{display:flex;gap:8px;flex-wrap:wrap}.course-btn{border:3px solid var(--ink);border-radius:12px;padding:6px 12px;font-weight:800;display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.course-btn small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.course-btn.mild,.course-tag.mild{background:var(--sky);color:var(--ink)}.course-btn.wild,.course-tag.wild{background:var(--plum);color:var(--cream)}.game{display:grid;grid-template-columns:270px minmax(0,1fr);height:100%}.side{background:var(--navy);border-right:3px solid var(--ink);padding:12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.brand{font:italic 900 26px/1 var(--display);padding:4px 4px 6px}.main{display:flex;flex-direction:column;min-width:0;height:100%;padding:10px 14px 12px;gap:10px;overflow-y:auto}.top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.heatline{font:italic 900 24px/1 var(--display);display:flex;align-items:center;gap:12px}.course-tag{font:800 12px/1 var(--body);text-transform:uppercase;letter-spacing:.08em;padding:6px 10px;border-radius:999px;border:2px solid var(--ink)}.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pcard{background:var(--deep);border:3px solid var(--ink);border-left:10px solid var(--pc);border-radius:14px;padding:8px 10px}.pcard.turn{box-shadow:0 0 0 3px var(--pc)}.phead{display:flex;justify-content:space-between;align-items:baseline}.pname{font-weight:800;font-size:16px}.pname em{font:800 10px/1 var(--body);margin-left:6px;padding:2px 5px;border-radius:5px;background:#fbf7ee29;letter-spacing:.06em}.pscore{font:italic 900 28px/1 var(--display);color:var(--pc)}.chips{display:flex;gap:4px;align-items:center;flex-wrap:wrap;min-height:26px;margin-top:2px}.chip{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:2px solid var(--ink);font:800 13px/1 var(--body);color:var(--ink)}.chip.gold{background:var(--gold)}.chip.silver{background:#c9d2e0}.pearls{display:inline-flex;align-items:center;gap:3px;font-weight:800;font-size:13px}.pearls i{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--pink) 70%);border:2px solid var(--ink)}.nochips{font-size:12px;opacity:.45}.racerline{display:flex;gap:8px;align-items:center;margin-top:6px;padding:4px;border-radius:10px;background:#fbf7ee12}.racerline.active{background:#fbf7ee33}.racerline.out{opacity:.5}.racerline img{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--pc);flex:none}.racerline b{display:block;font-size:14px;line-height:1.15}.racerline small{font-size:11.5px;opacity:.8;line-height:1.2;display:block}.hand{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}.hand img{width:30px;height:30px;border-radius:8px;object-fit:cover;border:2px solid var(--ink)}.stage{flex:1;display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0 20px}.stage h2{font-size:34px}.stage-msg{margin:0;font-size:17px;font-weight:700}.order{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}.ord{font:800 12px/1 var(--body);padding:5px 9px;border-radius:999px;border:2px solid var(--pc);color:var(--pc)}.ord.done{opacity:.35}.ord.cur{background:var(--pc);color:var(--ink)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,168px));gap:12px;justify-content:center;width:100%}.cards.small{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.cardbtn{position:relative;padding:0;border:0;background:none;border-radius:9%/6.5%;transition:transform .12s}.cardbtn img{width:100%;display:block}.cardbtn.pickable:hover{transform:translateY(-6px) rotate(-1deg)}.cardbtn.pickable:focus-visible,.cardbtn.sel{outline:4px solid var(--gold);outline-offset:2px}.cardbtn.sel{transform:translateY(-8px)}.cardbtn.taken img{filter:grayscale(.8) brightness(.5)}.owner{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%) rotate(-6deg);padding:5px 12px;border-radius:999px;border:3px solid var(--ink);color:var(--ink);font-weight:800;white-space:nowrap}.rolloff{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;font-weight:800}.ro{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;opacity:.75}.ro.win{opacity:1;transform:scale(1.12)}.board{position:relative;width:100%;max-width:calc((100vh - 230px) * 16 / 7);min-width:0;aspect-ratio:16 / 7;margin:0 auto;container-type:inline-size;flex:none}.cell{position:absolute;border:.28cqw solid var(--ink);background:var(--sky);margin:-.14cqw;display:flex;align-items:flex-start;justify-content:space-between;padding:.35cqw .5cqw}.board.wild .cell{background:#3d86a8}.cell .num{font:800 1.15cqw/1 var(--body);color:#10141f99}.cell:nth-child(2n){filter:brightness(1.08)}.cell.shallows{background:var(--sand)!important;border-radius:1.6cqw 0 0}.cell.gate{background:repeating-conic-gradient(var(--ink) 0 25%,var(--cream) 0 50%) 0 0 / 1.4cqw 1.4cqw!important;border-radius:0 0 0 1.6cqw}.cell:nth-child(13){border-radius:0 1.6cqw 0 0}.cell:nth-child(16){border-radius:0 0 1.6cqw}.big-label{font:italic 900 1.5cqw/1 var(--display);color:var(--ink)}.cell.gate .big-label{background:var(--cream);padding:.25cqw .5cqw;border-radius:.5cqw;border:.2cqw solid var(--ink)}.cell.star{background:var(--gold)!important}.cell.tangle{background:#5f9a55!important}.cell.arrow{background:var(--foam)!important}.mark{font:800 1.25cqw/1 var(--body);color:var(--ink)}.mark.star{font-size:1.7cqw;color:var(--cream);-webkit-text-stroke:.12cqw var(--ink)}.mark.tangle svg{width:1.7cqw;height:1.7cqw;color:#1f3a1c;display:block}.mark.arrow{padding:.2cqw .4cqw;border-radius:.5cqw;background:var(--teal);color:var(--cream)}.mark.arrow.back{background:var(--coral)}.buoy-dot{position:absolute;right:.4cqw;bottom:.4cqw;width:1.1cqw;height:1.1cqw;border-radius:50%;background:var(--coral);border:.22cqw solid var(--cream);box-shadow:0 0 0 .15cqw var(--ink)}.lane-arrow{position:absolute;left:26%;top:18.6%;font:800 1cqw/1 var(--body);text-transform:uppercase;letter-spacing:.1em;color:#fbf7ee59;pointer-events:none}.token{position:absolute;width:4.9cqw;aspect-ratio:1;transform:translate(-50%,-50%) scale(var(--sc, 1));transition:left .12s linear,top .12s linear,transform .2s;border-radius:50%}.tok-art{width:100%;height:100%;border-radius:50%;background-size:135%;background-position:center;border:.42cqw solid var(--pc);box-shadow:0 0 0 .24cqw var(--ink),0 .5cqw 0 var(--ink);transition:transform .25s}.token.active .tok-art{box-shadow:0 0 0 .24cqw var(--ink),0 0 0 .7cqw var(--cream),0 .5cqw 0 .5cqw var(--ink)}.token.tangled .tok-art{transform:rotate(90deg);filter:saturate(.6)}.tok-badge{position:absolute;left:50%;bottom:-.5cqw;transform:translate(-50%);background:var(--kelp);color:var(--cream);font:800 .85cqw/1 var(--body);padding:.2cqw .45cqw;border-radius:999px;border:.16cqw solid var(--ink);text-transform:uppercase;letter-spacing:.04em}.center{position:absolute;display:flex;gap:1.4cqw;padding:1.2cqw 1.4cqw 1.2cqw .6cqw}.center-card{height:100%;aspect-ratio:1068 / 1494;flex:none}.center-card img{height:100%;width:100%;display:block;filter:drop-shadow(0 .4cqw 0 rgba(0,0,0,.4))}.card-ph{height:100%;border:.25cqw dashed rgba(251,247,238,.2);border-radius:1.4cqw}.center-main{flex:1;min-width:0;display:flex}.status{flex:1;min-width:0;display:flex;flex-direction:column;gap:.8cqw}.who{display:flex;align-items:baseline;gap:1cqw;flex-wrap:wrap}.who-name{font:italic 900 clamp(18px,2.7cqw,40px)/1 var(--display)}.who-owner{font-weight:800;font-size:clamp(12px,1.4cqw,18px)}.who-power{font-size:clamp(11px,1.25cqw,16px);color:var(--fog);margin-top:.3cqw}.who-power b{color:var(--sand)}.status-body{flex:1;min-height:0;display:flex;gap:1.4cqw;align-items:center}.dice-box{display:flex;flex-direction:column;align-items:center;gap:4px;flex:none}.dice-box small{font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sand)}.event{font-size:clamp(13px,1.7cqw,22px);font-weight:700;margin:0}.event.bad{color:var(--pink)}.event.score{color:var(--gold)}.event.power{color:var(--foam)}.die{width:clamp(44px,6cqw,78px);aspect-ratio:1;background:var(--cream);border:3px solid var(--ink);border-radius:18%;box-shadow:0 4px 0 var(--ink);display:grid;grid-template-columns:repeat(3,1fr);padding:12%;gap:4%;flex:none}.die i{border-radius:50%}.die i.on{background:var(--ink)}.die.rolling{animation:roll .35s linear infinite}.die.small{width:34px;border-width:2px;box-shadow:0 2px 0 var(--ink)}@keyframes roll{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(.86)}to{transform:rotate(360deg) scale(1)}}.prompt{flex:1;min-width:0;background:var(--cream);color:var(--ink);border:3px solid var(--ink);border-radius:16px;padding:10px 12px;box-shadow:0 4px 0 var(--ink);max-height:100%;overflow-y:auto;animation:pop .18s ease-out}@keyframes pop{0%{transform:scale(.96);opacity:0}}.prompt-title{font:italic 900 20px/1.1 var(--display);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.prompt-title span{font:800 11px/1 var(--body);text-transform:uppercase;letter-spacing:.07em;background:var(--pc);border:2px solid var(--ink);border-radius:999px;padding:4px 8px}.prompt p{margin:5px 0 8px;font-size:14px;font-weight:600}.opts{display:flex;flex-wrap:wrap;gap:6px}.opt{display:inline-flex;align-items:center;gap:7px;background:var(--foam);color:var(--ink);border:2.5px solid var(--ink);border-radius:12px;padding:5px 11px;font-weight:800;font-size:14px;text-align:left;box-shadow:0 2px 0 var(--ink)}.opt:hover{background:var(--gold);transform:translateY(-1px)}.opt.no{background:var(--fog)}.opt.dieopt{padding:4px;background:transparent;border:0;box-shadow:none}.opt small{display:block;font-size:11px;font-weight:600;opacity:.75}.opt-tok{width:30px;height:30px;border-radius:50%;object-fit:cover;border:2.5px solid var(--ink)}.results{flex:1;display:flex;flex-direction:column;gap:6px;align-items:flex-start;justify-content:center}.results h3{font-size:clamp(20px,2.6cqw,34px)}.results p{margin:0;font-weight:700}.resline{display:flex;align-items:center;gap:8px}.resline img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--ink)}.resline small{display:block;font-weight:800}.results table{border-collapse:collapse;font-weight:700}.results td{padding:3px 14px 3px 0;white-space:nowrap}.results td .chip{margin-right:3px}.results .tot{font:italic 900 24px/1 var(--display)}.results tr.won td:first-child{color:var(--gold)}.log{flex:1;min-height:110px;background:var(--navy);border:3px solid var(--ink);border-radius:14px;padding:8px 12px;overflow-y:auto;font-size:13.5px}.logline{padding:1.5px 0;color:var(--fog)}.logline.turn{margin-top:6px;font-weight:800;color:var(--cream);border-top:1px solid rgba(251,247,238,.12);padding-top:5px}.logline.power{color:var(--foam)}.logline.bad{color:var(--pink)}.logline.score{color:var(--gold);font-weight:700}.logline.roll,.logline.move{color:var(--cream)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#050c16d1;display:grid;place-items:center;z-index:100;padding:16px}.modal-body{position:relative;background:var(--navy);border:3px solid var(--ink);border-radius:22px;padding:22px;width:min(1000px,100%);max-height:100%;overflow-y:auto}.modal-body .close{position:sticky;top:0;float:right;background:var(--navy);z-index:2}.modal-body h2{font-size:30px}.modal-body h3{font-size:20px;margin:18px 0 8px;padding-left:10px;border-left:8px solid var(--fc)}.rules{margin:10px 0 0;padding-left:20px;display:grid;gap:4px}.zoom{position:fixed;top:0;right:0;bottom:0;left:0;background:#050c16d9;display:grid;place-items:center;z-index:110}.zoom img{max-height:92vh;max-width:92vw}@media (max-width: 900px){.game{grid-template-columns:1fr;height:auto;min-height:100%}.side{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:3px solid var(--ink);overflow:visible}.brand{width:100%}.pcard{flex:1 1 200px}.main{height:auto;overflow:visible}.board{max-width:none}.log{max-height:260px;flex:none}}@media (prefers-reduced-motion: reduce){.die.rolling,.prompt{animation:none}}.online-panel{margin-bottom:18px}.online-panel .lbl,.lbl.wide{width:auto;min-width:70px}.name-in,.code-in{background:var(--deep);color:var(--cream);border:2px solid rgba(251,247,238,.25);border-radius:10px;padding:8px 12px;font:inherit;font-weight:700}.name-in{flex:1;min-width:140px}.code-in{width:6.5em;text-transform:uppercase;letter-spacing:.2em;text-align:center}.name-in:focus,.code-in:focus{outline:none;border-color:var(--foam)}.join{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hint.err{color:var(--pink)}.room-code{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.room-code b{font:900 40px/1 var(--display);letter-spacing:.14em;color:var(--sand)}.seat-name{flex:1;min-width:0;font-weight:700;padding:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-tag{font-size:13px;color:var(--fog);white-space:nowrap}.add-cpu{align-self:flex-start}.course-btn:disabled{cursor:default;opacity:.85}.brand-code{display:block;font:700 12px/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--foam);margin-top:6px}.netbar{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--gold);color:var(--ink);text-align:center;font-weight:700;padding:6px 16px}
