@font-face{font-family:Fredoka;src:url(/fonts/fredoka-latin-600-normal.woff2)format("woff2");font-weight:500 600;font-display:swap}@font-face{font-family:Fredoka;src:url(/fonts/fredoka-latin-700-normal.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito-latin-700-normal.woff2)format("woff2");font-weight:600 700;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito-latin-800-normal.woff2)format("woff2");font-weight:800;font-display:swap}:root{--navy:#1d2f6f;--navy-2:#2a4590;--blue:#2563c9;--sky:#dcecff;--parchment:#fbf5e4;--parchment-2:#f3e8c9;--edge:#dccaa0;--ink:#1f2540;--muted:#5a6078;--gold:#c99a1c;--gold-soft:#f6dd8a;--green:#1f8f3a;--red:#c9302c;--ok:#1e7b3a;--bad:#b3261e;--shadow:0 10px 30px #241c0a38, 0 2px 6px #241c0a1f;--radius:18px;--tap:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{color:var(--ink);-webkit-text-size-adjust:100%;background:#e8d9bb radial-gradient(at 50% 30%,#f3e6c8,#d9c39a);font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}h1,h2,h3,.btn,.brand,legend{font-family:Fredoka,Nunito,system-ui,sans-serif}h2{color:var(--navy);margin:0 0 .4em;font-weight:600}h3{color:var(--navy);margin:1em 0 .3em;font-size:1.02rem}p{line-height:1.45}:focus-visible{outline-offset:2px;border-radius:8px;outline:3px solid #ffb703}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--navy);color:#fff;border-radius:10px;padding:10px 14px;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}#board-stage{z-index:0;touch-action:none;position:fixed;inset:0}#board-stage canvas{outline:none;display:block;width:100%!important;height:100%!important}body:not(.in-game) #board-stage{filter:saturate(.95)}body:not(.in-game) #board-stage:after{content:"";pointer-events:none;background:#281e0a2e;position:absolute;inset:0}.nowebgl{background:var(--parchment);border:2px solid var(--edge);border-radius:var(--radius);max-width:560px;box-shadow:var(--shadow);margin:0 auto;padding:16px 18px;position:absolute;inset:auto 16px 16px}#main{z-index:1;pointer-events:none;outline:none;height:100%;position:relative;overflow:auto}#main>*{pointer-events:auto}.card{background:var(--parchment);border:2px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow);background-image:linear-gradient(#ffffff8c,#fff0 40%);padding:20px 22px}.card--center{text-align:center;max-width:520px;margin:18vh auto 0}.row{align-items:center;gap:10px;margin-top:12px;display:flex}.row--wrap{flex-wrap:wrap}.row--end{justify-content:flex-end}.btn{min-height:var(--tap);border:2px solid var(--navy);color:var(--navy);cursor:pointer;touch-action:manipulation;background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:1.02rem;font-weight:600;text-decoration:none;transition:transform .12s,background .15s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #1d2f6f2e}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--navy);color:#fff8e6}.btn--primary:hover:not(:disabled){background:var(--navy-2)}.btn--secondary{background:#fffaf0}.btn--ghost{text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.btn--danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn--big{min-height:54px;padding:12px 24px;font-size:1.12rem}.btn .icon{width:20px;height:20px}.tag{text-transform:uppercase;letter-spacing:.05em;background:var(--parchment-2);color:var(--navy);border:1px solid var(--edge);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:800;display:inline-block}.tag--you{background:var(--navy);color:#fff;border-color:var(--navy)}.seat-badge{color:#fff;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 4px;font-size:.85rem;font-weight:800;display:inline-flex}.seat-badge__shape{background:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.8rem;display:inline-grid}.seat-badge--0{background:var(--green)}.seat-badge--0 .seat-badge__shape{color:var(--green)}.seat-badge--1{background:var(--red)}.seat-badge--1 .seat-badge__shape{color:var(--red)}.dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.dot--on{background:#2fb35a;box-shadow:0 0 0 2px #d2f3dc}.dot--off{background:#fff;border:2px solid #9aa0b4}.hint{color:var(--muted);margin:6px 0 0;font-size:.92rem}.flash{color:var(--bad);min-height:1.2em;margin:8px 0 0;font-weight:700}.flash:empty{display:none}.conn{color:#7a4b00;font-weight:700}.conn:empty{display:none}.fineprint{color:var(--muted);margin:16px 0 0;font-size:.85rem}.content-label{border:1px dashed var(--gold);color:#6b4c00;background:#fff4cf;border-radius:12px;margin-top:14px;padding:8px 12px;font-size:.9rem;font-weight:700}.brand{color:var(--navy);letter-spacing:.01em;margin:0;font-size:clamp(2.4rem,7vw,3.6rem);font-weight:600;line-height:1.05}.brand__on{color:#11226a;-webkit-text-stroke:1px #11226a;font-size:1.22em;font-weight:700}.brand--small{white-space:nowrap;font-size:1.45rem}.landing{text-align:center;background-image:linear-gradient(180deg, #fffdf6, var(--parchment));max-width:500px;margin:max(6vh,20px) auto 24px}.landing__tag{color:var(--muted);margin:8px 0 16px}.landing__menu{gap:12px;display:grid}.form{text-align:left;gap:6px;display:grid}.form .row{justify-content:space-between}.form-error{color:var(--bad);margin:0 0 10px;font-weight:700}.form-error:empty{display:none}.field label{color:var(--navy);margin-bottom:6px;font-weight:800;display:block}.optional{color:var(--muted);font-weight:400}.field input[type=text]{width:100%;min-height:var(--tap);font:inherit;border:2px solid var(--edge);color:var(--ink);background:#fff;border-radius:12px;padding:10px 14px;font-size:1.1rem}.field input[type=text]:focus{border-color:var(--navy)}.code-input{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-family:Fredoka,monospace!important;font-size:1.5rem!important}.topbar{border-bottom:2px solid var(--edge);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fbf5e4eb;align-items:center;gap:12px;padding:10px 14px;display:flex;box-shadow:0 2px 10px #241c0a1f}.room-chip{color:var(--muted);white-space:nowrap;font-size:.9rem}.room-chip strong{color:var(--navy);letter-spacing:.12em}.toolbar{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-left:auto;display:flex}.tool{border:2px solid var(--edge);min-width:44px;min-height:44px;color:var(--navy);cursor:pointer;background:#fffaf0;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font:700 .9rem Nunito,sans-serif;display:inline-flex}.tool[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.tool--danger{color:var(--bad)}.tool .icon{width:20px;height:20px}.lobby{min-height:100%}.lobby__grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:18px;max-width:1100px;margin:18px auto;padding:0 16px 24px;display:grid}.code-display{letter-spacing:.25em;color:var(--navy);-webkit-user-select:all;user-select:all;margin:4px 0;font-family:Fredoka,monospace;font-size:clamp(2.2rem,8vw,3.2rem);font-weight:700}.copied{color:var(--ok);font-weight:700}.seats{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;display:grid}.seat{border:2px solid var(--edge);background:#fffdf7;border-radius:14px;padding:12px}.seat--0{border-left:8px solid var(--green)}.seat--1{border-left:8px solid var(--red)}.seat--empty{opacity:.7;border-style:dashed}.seat__head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.seat__name{overflow-wrap:anywhere;margin:8px 0 4px;font-size:1.15rem;font-weight:800}.seat__status{color:var(--muted);margin:0;font-size:.92rem}.starter{border:2px solid var(--edge);border-radius:14px;margin:0;padding:10px 14px 12px}.starter legend{color:var(--navy);padding:0 6px;font-weight:600}.radio{min-height:var(--tap);cursor:pointer;align-items:center;gap:8px;font-weight:700;display:flex}.radio input{width:22px;height:22px;accent-color:var(--navy)}.lobby__rules summary{cursor:pointer;color:var(--navy);min-height:var(--tap);align-items:center;font-family:Fredoka,sans-serif;font-size:1.2rem;font-weight:600;display:flex}.rules ul{margin:0;padding-left:1.2em}.rules li{margin:.25em 0;line-height:1.4}.rules__note{color:var(--muted);border-top:1px dashed var(--edge);margin-top:14px;padding-top:10px;font-size:.88rem}.rules--compact h3{font-size:.98rem}.rules--compact li{font-size:.93rem}.game{pointer-events:none;grid-template-rows:auto auto 1fr auto;display:grid;position:fixed;inset:0}.game>*{pointer-events:auto}.game .topbar{grid-row:1}.conn--game{border:2px solid var(--gold);z-index:5;background:#fff1c2;border-radius:12px;margin:0;padding:8px 14px;position:absolute;top:70px;left:50%;transform:translate(-50%)}.players{pointer-events:none;grid-row:2;justify-content:space-between;gap:10px;padding:10px 12px 0;display:flex}.pcard{pointer-events:auto;border:2px solid var(--edge);box-shadow:var(--shadow);background:#fbf5e4f0;border-radius:14px;min-width:200px;max-width:300px;padding:8px 12px}.pcard--0{border-left:8px solid var(--green)}.pcard--1{border-right:8px solid var(--red);text-align:right}.pcard--active{outline:3px solid var(--gold);box-shadow:0 0 0 6px #f6dd8a8c, var(--shadow)}.pcard__head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pcard--1 .pcard__head{justify-content:flex-end}.pcard__name{overflow-wrap:anywhere;font-size:1.05rem;font-weight:800}.pcard__where,.pcard__conn{color:var(--muted);margin:4px 0 0;font-size:.85rem}.pcard__turn{color:#8a5a00;margin:4px 0 0;font-weight:800}.keys{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.pcard--1 .keys{justify-content:flex-end}.key{color:#b8ab88;background:#fffdf5;border:2px dashed #c8b98f;border-radius:8px;place-items:center;width:30px;height:30px;font-size:.95rem;display:grid}.key--have{border:2px solid var(--gold);background:linear-gradient(#fff6d6,#f7e3a1)}.log{border:2px solid var(--edge);max-width:340px;box-shadow:var(--shadow);background:#fbf5e4eb;border-radius:14px;grid-row:3;place-self:end start;margin:0 0 10px 12px;padding:4px 12px}.log summary{cursor:pointer;color:var(--navy);align-items:center;gap:6px;min-height:40px;font-weight:800;display:flex}.log summary .icon{width:18px;height:18px}.log__list{max-height:30vh;margin:0 0 8px;padding-left:1.1em;font-size:.86rem;overflow:auto}.log__list li{margin:3px 0}.dock{border:2px solid var(--edge);width:min(760px,100% - 20px);box-shadow:var(--shadow);text-align:center;background:#fbf5e4f5;border-radius:20px;grid-row:4;justify-self:center;margin:0 auto 12px;padding:12px 16px;position:relative}.dock__status{color:var(--navy);margin:0;font-family:Fredoka,sans-serif;font-size:1.2rem;font-weight:600}.dock__sub{color:var(--muted);margin:2px 0 0;font-size:.92rem}.dock__sub:empty{display:none}.dock__roll{color:var(--muted);margin:0;font-size:.85rem;font-weight:700;position:absolute;top:10px;left:14px}.dock__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.dock__actions [hidden]{display:none!important}.btn--roll{min-width:220px}.paths{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.btn--path{background:#fffaf0;border-radius:16px;flex-direction:column;gap:0;min-width:150px;padding:8px 14px}.btn--path__name{font-size:1rem}.btn--path__meta{color:var(--muted);font-family:Nunito,sans-serif;font-size:.78rem;font-weight:700}.btn--path-0{border-color:#3f8a3a}.btn--path-1{border-color:#2563c9}.btn--path-2{border-color:#b8862b}.dock__timer{color:var(--muted);font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:.88rem}.dock__timer:empty{display:none}.dock__timer--low{color:var(--bad);font-weight:800}.question{z-index:20;color:#fff;background:linear-gradient(#2f62c4,#1d3f8f);border:3px solid #fff;border-radius:22px;width:min(620px,100% - 24px);max-height:calc(100% - 24px);padding:18px 20px 16px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 18px 50px #0a143c73}.question__label{letter-spacing:.06em;text-transform:uppercase;color:#ffe9a8;margin:0;font-size:.85rem;font-weight:800}.question__text{color:#fff;margin:8px 0 14px;font-size:clamp(1.2rem,3.6vw,1.55rem);line-height:1.25}.question__options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.option{text-align:left;min-height:58px;color:var(--ink);cursor:pointer;background:#fffaf0;border:2px solid #ffffffb3;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font:700 1rem Nunito,sans-serif;display:flex}.option:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.option:disabled{cursor:default;opacity:.85}.option--chosen{outline:4px solid #ffd34d}.option__letter{background:var(--navy);color:#fff;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-family:Fredoka,sans-serif;display:grid}.question__timer{align-items:center;gap:10px;margin-top:14px;display:flex}.question__bar{background:#ffffff40;border-radius:999px;flex:1;height:12px;overflow:hidden}.question__fill{transform-origin:0;background:linear-gradient(90deg,#ffe59a,#f6c64a);height:100%;transition:transform .25s linear}.question--low .question__fill{background:linear-gradient(90deg,#ffb3a7,#ff6b5a)}.question__secs{font-variant-numeric:tabular-nums;text-align:right;min-width:3.2em;margin:0;font-weight:800}.question__who{color:#e3ecff;margin:10px 0 0;font-size:.92rem}.result{z-index:21;background:var(--parchment);border:3px solid var(--edge);width:min(520px,100% - 24px);box-shadow:var(--shadow);border-radius:18px;padding:12px 16px;position:fixed;top:76px;left:50%;transform:translate(-50%)}.result--right{border-color:#3fae5f}.result--wrong{border-color:#d06a5f}.result__title{color:var(--navy);margin:0;font-family:Fredoka,sans-serif;font-size:1.25rem}.result--right .result__title{color:var(--ok)}.result--wrong .result__title{color:var(--bad)}.result__q{color:var(--muted);margin:4px 0;font-style:italic}.result__exp,.result__after{margin:4px 0}.end{z-index:30;background:#14183247;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.end[hidden]{display:none}.end__card{text-align:center;max-width:480px}.end__keys{margin:0;font-size:2.4rem}.dialog{border:2px solid var(--edge);border-radius:var(--radius);background:var(--parchment);color:var(--ink);box-shadow:var(--shadow);max-width:min(680px,100% - 24px);max-height:calc(100% - 32px);padding:18px 22px}.dialog::backdrop{background:#14183273}.dialog__head{background:var(--parchment);justify-content:space-between;align-items:center;gap:10px;padding-top:4px;display:flex;position:sticky;top:-18px}.dialog--confirm{max-width:420px}.spinner:before{content:"";border:3px solid var(--edge);border-top-color:var(--navy);vertical-align:-2px;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.9s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.noscript{padding:20px}@media (width<=900px){.lobby__grid{grid-template-columns:1fr}.tool__label,.log{display:none}}@media (width<=640px){.topbar{gap:6px;padding:6px 8px}.brand--small{font-size:1.1rem}.room-chip{display:none}.tool{padding:4px 8px}.toolbar{gap:4px}.players{gap:6px;padding:6px 6px 0}.pcard{flex:1;min-width:0;padding:6px 8px}.pcard__where{font-size:.78rem}.pcard__conn{display:none}.key{width:24px;height:24px;font-size:.8rem}.seats,.question__options{grid-template-columns:1fr}.dock{border-radius:16px;margin-bottom:6px;padding:10px}.dock__status{font-size:1.05rem}.dock__roll{position:static}.btn--path{flex:1;min-width:0;padding:6px 8px}.paths{flex-wrap:nowrap;width:100%}.card{padding:16px}.landing{margin:12px}}@media (height<=520px) and (orientation:landscape){.players .pcard__where,.players .pcard__conn,.dock__sub{display:none}}html.reduced-motion *,html.reduced-motion :before,html.reduced-motion :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){.btn:hover:not(:disabled){transform:none}}
