html,body,#root{min-height:100%;margin:0}:root{--color-text-primary: #203042;--color-text-secondary: rgba(32, 48, 66, .66);--color-cream: #fbf8ee;--color-sage: #b8d4a0;--color-navy: #1e2d40;--color-gold: #f0c84a;--color-virtue: #d9eec8;--color-vice: #fddcc8;--color-border: #c8b870;--font-game: "Fredoka", "Trebuchet MS", "Segoe UI", sans-serif;--font-body: "Nunito", "Trebuchet MS", "Segoe UI", sans-serif}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-body);position:relative;background:#fffbe2;color:var(--color-text-primary)}html:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:url("/docs/new designs (3).png") center center / cover no-repeat,#fffbe2;filter:none;pointer-events:none}.bg-dice-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.bg-dice{position:fixed;height:auto;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}#root{position:relative;z-index:1}*{box-sizing:border-box}button,input,select{font:inherit}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.comic-radio-group label{-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.board-token-sprite,.board-ladders-overlay,.board-angel__sprite,.mobile-angel-event__sprite,.intro-angel{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.app-shell{min-height:100vh;min-height:100svh;overflow:hidden}.hero-stage{min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:calc(24px + env(safe-area-inset-top,0px)) calc(24px + env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) calc(24px + env(safe-area-inset-left,0px))}.board-frame{width:min(2100px,100%);display:grid;gap:18px}.board-topline{display:flex;justify-content:space-between;align-items:end;gap:18px}.board-topline h1{margin:0;max-width:16ch;font-size:clamp(2.1rem,4vw,4rem);line-height:.94;letter-spacing:-.04em;color:var(--color-text-primary)}.subtitle{max-width:56ch;margin:12px 0 0;color:var(--color-text-secondary);line-height:1.55}.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.24em;font-size:.7rem;color:#8b6d2a}.room-state-chip{min-width:min(420px,100%);padding:16px 18px;border-radius:22px;background:rgba(255,255,255,.84);border:1px solid rgba(32,48,66,.08);box-shadow:0 18px 48px #3c2d1414;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.room-state-chip span,.room-summary span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#20304285;margin-bottom:6px}.room-state-chip strong,.room-summary strong{display:block;line-height:1.35;color:#24384f}.topline-actions{display:grid;gap:10px;justify-items:stretch;min-width:min(420px,100%)}.leaderboard-mobile-toggle{display:none;border:1px solid rgba(32,48,66,.14);background:rgba(255,255,255,.82);color:var(--color-text-primary);border-radius:14px;padding:10px 12px;cursor:pointer}.game-workbench{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.72fr);gap:18px;align-items:start}.board-column{display:grid;gap:14px}.board-stage{position:relative;width:min(100%,78vh);width:min(100%,78svh);margin:0 auto}.board-stage .board-scene{width:100%;margin:0}.board-with-rails{display:flex;align-items:stretch;justify-content:center;gap:16px}.board-with-rails .board-stage{margin:0;flex:0 1 min(100%,78vh)}.move-rail{flex:1 1 0;min-width:160px;max-width:520px;display:flex;flex-direction:column;gap:12px;min-width:0;max-height:min(100%,78vh);overflow-y:auto;padding:14px 12px;border-radius:18px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px #0000002e}.move-rail--slides{background:rgba(222,96,84,.16)}.move-rail--ladders{background:rgba(92,152,228,.16)}.move-rail__title{margin:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border:3px solid #000;border-radius:12px;box-shadow:3px 3px #000;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#fff}.move-rail--slides .move-rail__title{background:rgb(222,96,84)}.move-rail--ladders .move-rail__title{background:rgb(92,152,228)}.move-rail__count{min-width:24px;padding:2px 8px;border-radius:999px;border:2px solid #000;font-size:.78rem;font-weight:800;text-align:center;background:#fff;color:#000}.move-rail__empty{margin:0;font-size:.8rem;font-weight:600;color:#14141499}.move-rail__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.move-rail__box{display:grid;gap:4px;padding:9px 11px;border:3px solid #000;border-radius:12px;box-shadow:3px 3px #000;color:#fff}.move-rail__box--bad{background:rgb(222,96,84)}.move-rail__box--good{background:rgb(92,152,228)}.move-rail__box.is-me{outline:3px solid #ffd700;outline-offset:1px}.move-rail__tiles{display:flex;align-items:center;gap:6px;font-size:1rem}.move-rail__arrow{opacity:.85}.move-rail__cause{font-size:.74rem;line-height:1.3;font-style:italic;opacity:.82}.move-rail__message{font-size:.76rem;line-height:1.3;opacity:.96}@media (min-width: 1101px){.moves-table--board{display:none}}@media (max-width: 1100px){.move-rail{display:none}}.board-angel{position:absolute;z-index:140;box-sizing:border-box;width:min(46%,360px);display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 14px 16px;border-radius:22px;background:rgb(92,152,228);box-shadow:0 18px 44px #0000006b,inset 0 0 0 1px #ffffff73;pointer-events:none;animation:angel-box-in .28s cubic-bezier(.2,.8,.2,1.02) both}@keyframes angel-box-in{0%{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}.board-angel--celebrate .board-angel__sprite{animation:angel-ladder-celebrate .86s cubic-bezier(.2,.85,.22,1)}.board-angel--celebrate .board-angel__line{animation:angel-ladder-line-pop .86s ease-out}@keyframes angel-ladder-celebrate{0%{transform:translateY(20px) scale(.9) rotate(-2deg);filter:drop-shadow(0 6px 12px rgba(0,0,0,.22))}35%{transform:translateY(-16px) scale(1.05) rotate(1.5deg);filter:drop-shadow(0 14px 28px rgba(255,217,102,.5))}62%{transform:translateY(2px) scale(.98) rotate(-1deg)}to{transform:translateY(0) scale(1) rotate(0);filter:drop-shadow(0 10px 22px rgba(0,0,0,.24))}}@keyframes angel-ladder-line-pop{0%{scale:.92;opacity:.72}45%{scale:1.06;opacity:1}to{scale:1;opacity:1}}.board-angel--result .board-angel__sprite{animation:angel-result-bounce 1.1s cubic-bezier(.18,.9,.2,1.05)}.board-angel--result .board-angel__line{color:#fff;animation:angel-reward-pop .62s cubic-bezier(.18,1.1,.3,1.18) both}@keyframes angel-reward-pop{0%{scale:.6;opacity:0}60%{scale:1.08;opacity:1}to{scale:1;opacity:1}}@keyframes angel-reward-glow{0%{color:#ffe9a0;text-shadow:0 2px 0 rgba(56,35,4,.85),0 0 8px rgba(255,213,102,.6),0 0 16px rgba(255,196,56,.45)}to{color:#fff3c8;text-shadow:0 2px 0 rgba(56,35,4,.85),0 0 14px rgba(255,224,140,.95),0 0 30px rgba(255,205,70,.8)}}@keyframes angel-result-bounce{0%{transform:translateY(-10px) scale(.82) rotate(-3deg);filter:drop-shadow(0 6px 12px rgba(0,0,0,.22))}40%{transform:translateY(-26px) scale(1.12) rotate(2deg);filter:drop-shadow(0 18px 34px rgba(255,217,102,.62))}70%{transform:translateY(0) scale(.97) rotate(-1deg)}to{transform:translateY(0) scale(1) rotate(0);filter:drop-shadow(0 12px 24px rgba(0,0,0,.24))}}@keyframes angel-result-line{0%{transform:translate(-50%,-50%) scale(.86);opacity:.4}50%{transform:translate(-50%,-50%) scale(1.1);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.board-angel--left{left:16px}.board-angel--right{right:16px}.board-angel--pos-center{top:50%;transform:translateY(-50%)}.board-angel--pos-lower{bottom:14px}.board-angel--pos-upper{top:14px}.board-angel__sprite{width:62%;max-width:190px;height:auto;object-fit:contain;filter:drop-shadow(0 10px 22px rgba(0,0,0,.32))}.board-angel__line{margin:0;text-align:center;font-family:var(--font-game);font-size:clamp(.92rem,1.5vw,1.16rem);font-weight:600;letter-spacing:.01em;line-height:1.2;white-space:normal;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.55)}.board-angel__ok{pointer-events:auto;margin-top:4px;padding:8px 28px;border:none;border-radius:999px;background:#fff;color:#c48e20;font-family:var(--font-game);font-size:clamp(.9rem,1.4vw,1.08rem);font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 6px 16px #0000004d;transition:transform .12s ease,box-shadow .12s ease}.board-angel__ok:hover{transform:translateY(-1px);box-shadow:0 9px 20px #00000057}.board-angel__ok:active{transform:translateY(1px)}.climb-button{position:absolute;z-index:150;transform:translate(-50%,-120%);padding:8px 22px;border:none;border-radius:999px;background:linear-gradient(180deg,#6fd36f,#3aa83a);color:#fff;font-family:var(--font-game);font-size:clamp(.82rem,1.3vw,1rem);font-weight:700;letter-spacing:.04em;cursor:pointer;white-space:nowrap;box-shadow:0 8px 20px #16601673,inset 0 0 0 2px #ffffff80;animation:climb-button-bounce .9s ease-in-out infinite}.climb-button:hover{filter:brightness(1.05)}.climb-button:active{transform:translate(-50%,-116%)}@keyframes climb-button-bounce{0%,to{transform:translate(-50%,-120%)}50%{transform:translate(-50%,-135%)}}.board-angel--good{background:rgb(92,152,228)}.board-angel--bad{background:rgb(222,96,84)}.board-angel--result{background:rgb(214,165,56)}.angel-blur-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;background:rgba(18,13,4,.28);backdrop-filter:blur(3.5px);-webkit-backdrop-filter:blur(3.5px);animation:angel-blur-in .24s ease both;--spot-x: 50%;--spot-y: 50%;--spot-radius: 86px;--spot-feather: 132px;-webkit-mask:radial-gradient(circle at var(--spot-x) var(--spot-y),transparent var(--spot-radius),#000 var(--spot-feather));mask:radial-gradient(circle at var(--spot-x) var(--spot-y),transparent var(--spot-radius),#000 var(--spot-feather))}@keyframes angel-blur-in{0%{opacity:0}to{opacity:1}}.token-layer.is-focus{z-index:150}.board-scene{position:relative;width:min(100%,78vh);width:min(100%,78svh);aspect-ratio:1 / 1;margin:0 auto;border-radius:34px;padding:18px;overflow:visible;background:#fffbe2;border:1px solid rgba(130,101,53,.14);box-shadow:0 34px 90px #4c371529}.board-scene.can-roll{box-shadow:0 34px 90px #4c371529,0 0 0 3px #f0c84a6b}.board-scene:after{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border-radius:28px;border:1px solid rgba(255,248,236,.46);pointer-events:none}.board-grid{position:relative;z-index:1;width:100%;height:100%;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));gap:4px;padding:0;background:#fffbe2;border-radius:0;box-shadow:inset 0 0 0 1px #ffffff38}.board-ladders-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;transform:scale(1.1);transform-origin:center center;z-index:2;pointer-events:none}.square{width:100%;height:100%;aspect-ratio:1 / 1;min-width:0;min-height:0;border-radius:0;padding:10px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;border:0;color:#1d1d1d}.square-finish{background:radial-gradient(circle at center,rgba(255,247,188,.98) 0%,rgba(255,223,92,.95) 34%,rgba(241,186,34,.98) 68%,#c8890f 100%);color:#7a4d00;box-shadow:inset 0 0 0 1px #fff3bbb3,0 0 18px #ffd74047}.square-finish-star{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:1;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1;color:#fff8c4;text-shadow:0 0 8px rgba(255,247,170,.95),0 0 18px rgba(255,219,77,.9),0 0 28px rgba(255,200,47,.7);pointer-events:none}.board-grid .square:nth-of-type(1){border-top-left-radius:34px}.board-grid .square:nth-of-type(10){border-top-right-radius:34px}.board-grid .square:nth-of-type(91){border-bottom-left-radius:34px}.board-grid .square:nth-of-type(100){border-bottom-right-radius:34px}.square:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0;pointer-events:none}.square.occupied{outline:2px solid rgba(74,121,195,.25);outline-offset:-2px}.tone-sun{background:#f7db32}.tone-blossom{background:#ecb6da}.tone-coral{background:#ed2837}.tone-periwinkle{background:#7286c3}.tone-orange{background:#f6871b}.tone-leaf{background:#4ba625}.tone-sage{background:#73a275}.tone-teal{background:#2aa9a0}.tone-slide-start{background:#d6362b}.tone-slide-end{background:#6b4423}.tone-ladder-start{background:#3e8e41}.square-number{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:3;font-size:1.45rem;font-weight:400;font-family:var(--font-game);letter-spacing:.01em;color:#000;text-shadow:none}.tone-slide-start .square-number,.tone-ladder-start .square-number{visibility:hidden}.square-badge{position:relative;z-index:1;width:fit-content;border-radius:999px;padding:6px 8px;font-size:.66rem;font-weight:800;text-transform:none;letter-spacing:.01em;line-height:1.2;max-width:100%}.square-badge.snake{color:#7a3010;background:rgba(255,120,98,.12)}.square-badge.ladder{color:#1b5e20;background:rgba(92,190,114,.12)}.board-overlay{position:absolute;top:18px;right:18px;bottom:18px;left:18px;z-index:2;pointer-events:none}.feature-path path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:7;opacity:.92;filter:drop-shadow(0 2px 3px rgba(0,0,0,.12))}.feature-path.ladder path{stroke:#3b8d2af5}.feature-path.snake path{stroke:#c0392bf5}.feature-label{fill:#2e4a2f;font-size:11px;font-weight:700;paint-order:stroke;stroke:#ffffffd1;stroke-width:3px;stroke-linejoin:round}.token-layer{position:absolute;top:18px;right:18px;bottom:18px;left:18px;z-index:3;pointer-events:none}.dice-hud{display:grid;gap:6px;justify-items:center}.dice-hud-cubes{display:flex;align-items:center;gap:10px;perspective:760px}.dice-hud .dice-cube{position:relative;width:64px;height:64px;perspective:460px}.dice-hud .die-body{width:64px;height:64px;position:relative;transform-style:preserve-3d;transform:translateZ(-32px);transition:transform .9s}.dice-hud .die1.is-rolling{animation:rotate2 .36s linear infinite}.dice-hud .die2.is-rolling{animation:rotate .42s linear infinite}.dice-hud .die-face{position:absolute;width:64px;height:64px;border:3px solid #b7b7b7 inset;border-radius:7px;overflow:hidden;border-style:outset;box-shadow:.07em .07em .1em .07em #fff inset,-.07em -.07em .1em .07em #fff inset;background:rgba(240,240,240,1)}.dice-hud .die-face--front{transform:rotateY(0) translateZ(32px)}.dice-hud .die-face--back{transform:rotateY(180deg) translateZ(32px)}.dice-hud .die-face--right{transform:rotateY(90deg) translateZ(32px)}.dice-hud .die-face--left{transform:rotateY(-90deg) translateZ(32px)}.dice-hud .die-face--top{transform:rotateX(90deg) translateZ(32px)}.dice-hud .die-face--bottom{transform:rotateX(-90deg) translateZ(32px)}.dice-hud .hud-dot{width:.72em;height:.72em;background:radial-gradient(circle,rgba(0,0,0,1) 0%,rgba(0,0,0,1) 66%,rgba(255,255,255,1) 72%,rgba(255,255,255,1) 72%,rgba(0,0,0,1) 81%,rgba(0,0,0,1) 100%);border-radius:50%;position:absolute}.dice-hud .hud-dot.one{top:40%;left:40%}.dice-hud .hud-dot.two-1,.dice-hud .hud-dot.three-1,.dice-hud .hud-dot.four-1,.dice-hud .hud-dot.five-1,.dice-hud .hud-dot.six-1{top:15%;left:15%}.dice-hud .hud-dot.four-3,.dice-hud .hud-dot.five-3,.dice-hud .hud-dot.six-4{top:15%;right:15%}.dice-hud .hud-dot.three-2,.dice-hud .hud-dot.five-5{top:40%;right:40%}.dice-hud .hud-dot.two-2,.dice-hud .hud-dot.three-3,.dice-hud .hud-dot.four-4,.dice-hud .hud-dot.five-4,.dice-hud .hud-dot.six-6{top:65%;right:15%}.dice-hud .hud-dot.four-2,.dice-hud .hud-dot.five-2,.dice-hud .hud-dot.six-3{top:65%;left:15%}.dice-hud .hud-dot.six-2{top:40%;left:15%}.dice-hud .hud-dot.six-5{top:40%;right:15%}.dice-hud-total{margin:0;border:2px solid rgba(0,0,0,.76);border-radius:999px;background:rgba(255,248,218,.95);color:#2f2208;font-family:var(--font-game);letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;padding:3px 9px}.dice-hud-mobile{display:none}@keyframes hud-dice-spin{0%{transform:rotateX(0) rotateY(0) rotate(0)}to{transform:rotateX(360deg) rotateY(360deg) rotate(360deg)}}@keyframes rotate{0%{transform:translateZ(-32px) rotateX(-20deg) rotateY(135deg) rotate(0)}to{transform:translateZ(-32px) rotateX(360deg) rotateY(360deg) rotate(360deg)}}@keyframes rotate2{0%{transform:translateZ(-32px) rotateX(-20deg) rotateY(40deg) rotate(0)}to{transform:translateZ(-32px) rotateX(300deg) rotateY(360deg) rotate(360deg)}}.roll-dice-button{width:auto;min-width:0;margin:0;border:4px solid #000;border-radius:16px;background:linear-gradient(180deg,#ffe45a 0%,#ffbc2e 100%);color:#1d1200;font-family:var(--font-game);font-size:1.3rem;letter-spacing:1px;padding:.7rem 1.2rem;box-shadow:5px 5px #000;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.roll-and-angel-row{width:min(100%,640px);margin:10px auto 0;display:flex;justify-content:flex-end;align-items:center;gap:10px}.mobile-angel-event{display:none}.mobile-angel-event.good .mobile-angel-event__text,.mobile-angel-event.bad .mobile-angel-event__text{padding:.4em .8em;border-radius:14px;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.5);box-shadow:0 6px 16px #0000004d,inset 0 0 0 1px #fff6}.mobile-angel-event.good .mobile-angel-event__text{background:rgba(92,152,228,.82)}.mobile-angel-event.bad .mobile-angel-event__text{background:rgba(222,96,84,.82)}.mobile-angel-event__ok{pointer-events:auto;flex-shrink:0;padding:6px 18px;border:none;border-radius:999px;background:#fff;color:#c48e20;font-family:var(--font-game);font-size:.85rem;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 12px #00000047}.mobile-angel-event__ok:active{transform:translateY(1px)}.mobile-angel-event.phase-result{animation:mobile-angel-result .9s cubic-bezier(.18,.9,.2,1.05)}.mobile-angel-event.phase-result .mobile-angel-event__text{animation:mobile-angel-text-glow 1.5s ease-out 1}@keyframes mobile-angel-result{0%{transform:scale(.9);opacity:.5}45%{transform:scale(1.04);opacity:1}to{transform:scale(1);opacity:1}}@keyframes mobile-angel-text-glow{0%{color:#fff4c2;text-shadow:0 2px 0 rgba(56,35,4,.85),0 6px 12px rgba(0,0,0,.32)}35%{color:#ffe9a0;text-shadow:0 2px 0 rgba(56,35,4,.85),0 0 10px rgba(255,213,102,.95),0 0 24px rgba(255,196,56,.85)}to{color:#ffe9a0;text-shadow:0 2px 0 rgba(56,35,4,.85),0 0 8px rgba(255,213,102,.65),0 0 16px rgba(255,196,56,.45)}}.roll-dice-button:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:7px 7px #000;filter:saturate(1.07)}.roll-dice-button:active:not(:disabled){transform:translate(1px,1px);box-shadow:3px 3px #000}.roll-dice-button:disabled{cursor:not-allowed;opacity:.52;filter:grayscale(.2);transform:none;box-shadow:5px 5px #000}.board-token{position:absolute;width:68px;height:68px;border-radius:50%;transform:translate(0);transition:transform 1.3s cubic-bezier(.2,.7,.15,1);will-change:transform;display:grid;place-items:center}.board-token-core{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#8db7ff 50%,#4a79c3 100%);box-shadow:0 0 18px #7bb6ff66}.board-token.me .board-token-core{background:radial-gradient(circle at 30% 30%,#fff8cc,#ffd166 52%,#d08b1e 100%);box-shadow:0 0 18px #d08b1e4d}.board-token.robot .board-token-core{background:radial-gradient(circle at 30% 30%,#fff,#b8e7d0 50%,#4db17c 100%);box-shadow:0 0 18px #4db17c47}.board-token-sprite{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;border-radius:50%;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45))}.board-token.face-left .board-token-sprite{transform:scaleX(-1)}.board-token-label{position:absolute;top:-18px;left:50%;transform:translate(-50%);z-index:1;color:#1f1205;background:rgba(255,246,209,.95);border:2px solid rgba(0,0,0,.75);border-radius:999px;font-size:.6rem;font-weight:900;text-shadow:none;padding:2px 6px;min-width:34px;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.board-token.pulse-snake .board-token-core,.board-token.pulse-ladder .board-token-core,.board-token.pulse-dice .board-token-core{animation:pulse-pop 1.1s ease-out}.token-speech-bubble{position:absolute;bottom:calc(100% + 24px);left:50%;transform:translate(-50%);z-index:6;width:190px;max-width:190px;padding:8px 12px;border-radius:14px;background:rgba(255,255,255,.97);border:2px solid rgba(0,0,0,.78);color:#1f1205;font-family:var(--font-body);font-size:.92rem;font-weight:600;line-height:1.3;text-align:center;white-space:normal;pointer-events:none;box-shadow:0 6px 14px #0000002e;animation:token-speech-pop .32s cubic-bezier(.2,.85,.22,1)}.token-speech-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border:7px solid transparent;border-top-color:#000000c7;border-bottom:0}.token-speech-bubble:before{content:"";position:absolute;top:calc(100% - 2px);left:50%;transform:translate(-50%);width:0;height:0;border:5px solid transparent;border-top-color:#fffffff7;border-bottom:0;z-index:1}.token-speech-bubble--bad{border-color:#c0392bd9;color:#000}.token-speech-bubble--bad:after{border-top-color:#c0392bd9}.token-speech-bubble--good{border-color:#3e8e41d9;color:#1b5e20}.token-speech-bubble--good:after{border-top-color:#3e8e41d9}.token-speech-bubble--below{bottom:auto;top:calc(100% + 24px)}.token-speech-bubble--below:after{top:auto;bottom:100%;border-top:0;border-bottom-width:7px;border-bottom-color:#000000c7}.token-speech-bubble--below:before{top:auto;bottom:calc(100% - 2px);border-top:0;border-bottom-width:5px;border-bottom-color:#fffffff7}.token-speech-bubble--bad.token-speech-bubble--below:after{border-bottom-color:#c0392bd9}.token-speech-bubble--good.token-speech-bubble--below:after{border-bottom-color:#3e8e41d9}@keyframes token-speech-pop{0%{transform:translate(-50%) translateY(8px) scale(.7);opacity:0}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}.board-note-row{padding:0 4px}.legend-card,.rail-note,.dice-panel,.board-dock,.room-state-chip,.room-summary>div{background:rgba(255,255,255,.84);border:1px solid rgba(32,48,66,.08);box-shadow:0 18px 48px #4c371514}.legend-card{border-radius:22px;padding:14px 16px}.legend-title,.rail-note-title{margin:0 0 10px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#2030428a}.legend{display:flex;gap:12px 14px;flex-wrap:wrap}.leg-item{display:flex;align-items:center;gap:6px;font-size:.72rem;color:#203042ad;line-height:1.3}.leg-dot{width:12px;height:12px;border-radius:2px;flex-shrink:0}.side-rail{display:grid;gap:14px;position:sticky;top:20px}.leaderboard-panel{display:grid;gap:12px;padding:16px;border-radius:22px;background:rgba(255,255,255,.84);border:1px solid rgba(32,48,66,.08);box-shadow:0 18px 48px #4c371514}.leaderboard-header p:last-child{margin:0;color:var(--color-text-secondary)}.leaderboard-tabs{display:flex;flex-wrap:wrap;gap:8px}.leaderboard-tab{border:1px solid rgba(32,48,66,.12);background:rgba(32,48,66,.05);color:var(--color-text-primary);border-radius:999px;padding:8px 12px;cursor:pointer}.leaderboard-tab.active{background:rgba(32,48,66,.12);border-color:#20304233}.leaderboard-state{margin:0;color:var(--color-text-secondary)}.leaderboard-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.leaderboard-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-radius:16px;background:rgba(32,48,66,.04)}.leaderboard-rank{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:rgba(32,48,66,.08);color:var(--color-text-primary);font-weight:800}.leaderboard-player{display:grid;gap:2px}.leaderboard-player strong,.leaderboard-wins{color:var(--color-text-primary)}.leaderboard-player span{color:var(--color-text-secondary);font-size:.86rem}.dice-panel{padding:16px;border-radius:22px}.dice-stage{display:grid;grid-template-columns:minmax(120px,.9fr) minmax(0,1.3fr);gap:12px;align-items:center}.dice-face{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:22px;display:grid;place-items:center;background:radial-gradient(circle at 28% 22%,rgba(255,255,255,.92),rgba(255,255,255,.04) 34%),linear-gradient(180deg,#fffdf8 0%,#efe6d6 100%);color:#2a3a50;box-shadow:inset 0 2px #fffc,inset 0 -10px 24px #22324a0d,0 18px 40px #4c37151f;transform:translateZ(0)}.dice-face.rolling{animation:dice-spin .56s ease-in-out infinite}.dice-value{font-size:clamp(2.6rem,4vw,4.4rem);font-weight:900;line-height:1}.dice-label{position:absolute;bottom:12px;left:50%;transform:translate(-50%);padding:5px 9px;border-radius:999px;background:rgba(42,58,80,.06);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase}.dice-copy h2{margin:0 0 8px;font-size:1.05rem;line-height:1.15;color:var(--color-text-primary)}.dice-copy p{margin:0;color:var(--color-text-secondary);line-height:1.55}.board-dock{display:grid;gap:14px;padding:16px;border-radius:22px}.control-stack,.dock-actions,.room-summary,.rail-note{display:grid;gap:12px}.mode-switcher,.dock-buttons-row{display:flex;flex-wrap:wrap;gap:10px}.dock-button,.primary-button,.secondary-button,.roll-button{border:0;border-radius:999px;padding:11px 14px;cursor:pointer;transition:transform .16s ease,opacity .16s ease,filter .16s ease,background .16s ease}.dock-button,.secondary-button{background:rgba(32,48,66,.08);color:var(--color-text-primary)}.dock-button.active{background:rgba(216,186,116,.2);box-shadow:inset 0 0 0 1px #ab873529}.primary-button.robot{background:linear-gradient(135deg,#f7de9a,#d9aa45);color:#2b2109;font-weight:800}.primary-button.friend{background:linear-gradient(135deg,#bde5c6,#69b883);color:#0d2515;font-weight:800}.roll-button{background:linear-gradient(135deg,#415a77,#23344d);color:#fff;font-weight:800;box-shadow:0 14px 26px #23344d2e}.dock-button:hover,.primary-button:hover,.secondary-button:hover,.roll-button:hover{transform:translateY(-1px);filter:brightness(1.02)}.dock-button:disabled,.primary-button:disabled,.secondary-button:disabled,.roll-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.field{display:grid;gap:6px}.field span{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#2030428f}.field input,.field select{border:1px solid rgba(32,48,66,.1);background:rgba(255,255,255,.9);color:var(--color-text-primary);border-radius:14px;padding:11px 13px}.field input::placeholder{color:#20304261}.room-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.room-summary>div{border-radius:16px;padding:12px 14px}.rail-note{border-radius:18px;padding:14px 16px}.rail-note p:last-child{margin:0;color:var(--color-text-secondary);line-height:1.55}.error-banner{width:min(1440px,100%);margin:16px auto 0;padding:14px 16px;border-radius:16px;background:rgba(196,64,51,.08);border:1px solid rgba(196,64,51,.16);color:#8f2d22}@keyframes pulse-pop{0%{transform:scale(1);box-shadow:0 0 #0000}45%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes dice-spin{0%{transform:rotate(0) scale(1)}25%{transform:rotate(12deg) scale(1.04)}50%{transform:rotate(-10deg) scale(.98)}75%{transform:rotate(8deg) scale(1.05)}to{transform:rotate(0) scale(1)}}@keyframes hand-throw{0%{opacity:0;transform:translateY(28px) scale(.88)}45%{opacity:1}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dice-drop{0%{opacity:0;transform:translate(-50%,-190%) scale(.78) rotate(-18deg)}65%{opacity:1;transform:translate(-50%,-56%) scale(1.04) rotate(14deg)}to{opacity:1;transform:translate(-50%,-78%) scale(1) rotate(0)}}@keyframes dice-face-pop{0%{opacity:0;transform:translateY(-50%) scale(.65)}68%{opacity:1;transform:translateY(-50%) scale(1.08)}to{opacity:1;transform:translateY(-50%) scale(1)}}@media (max-width: 1180px){.game-workbench{grid-template-columns:1fr}.side-rail{position:static}.leaderboard-panel.open{display:grid}}@media (min-width: 721px) and (max-width: 1599px){.mobile-angel-event{display:none}}@media (max-width: 720px){.bg-dice-layer{display:none}.hero-stage,.details-section{padding-left:calc(14px + env(safe-area-inset-left,0px));padding-right:calc(14px + env(safe-area-inset-right,0px))}.board-scene{padding:10px;border-radius:20px}.board-grid{gap:1px;padding:4px}.square{padding:7px}.square-number{font-size:1.05rem}.square-badge{font-size:.62rem;padding:4px 6px}.board-token{width:32px;height:32px;translate:0 7px}.roll-dice-button{font-size:.98rem;line-height:1;padding:.46rem .74rem;border-radius:12px;letter-spacing:.08em}.roll-and-angel-row{justify-content:flex-end;align-items:center;gap:8px;position:relative;overflow:visible;min-height:68px}.dice-hud-desktop{display:none}.dice-hud-mobile{display:grid;width:min(100%,640px);margin:10px auto 0;justify-content:end}.dice-hud .dice-cube{width:56px;height:56px}.dice-hud .die-body{width:56px;height:56px;transform:translateZ(-28px)}.dice-hud .die-face{width:56px;height:56px}.dice-hud .die-face--front{transform:rotateY(0) translateZ(28px)}.dice-hud .die-face--back{transform:rotateY(180deg) translateZ(28px)}.dice-hud .die-face--right{transform:rotateY(90deg) translateZ(28px)}.dice-hud .die-face--left{transform:rotateY(-90deg) translateZ(28px)}.dice-hud .die-face--top{transform:rotateX(90deg) translateZ(28px)}.dice-hud .die-face--bottom{transform:rotateX(-90deg) translateZ(28px)}.dice-hud-total{font-size:.68rem}.mobile-angel-event{position:absolute;left:-14px;bottom:40px;z-index:160;display:flex;align-items:flex-end;justify-content:center;flex:none;min-width:auto;max-width:none;width:clamp(230px,62vw,350px);overflow:visible;gap:0;padding:0;border:0;background:transparent;box-shadow:none;animation:angel-pop .26s ease-out both;pointer-events:none}.mobile-angel-event.good,.mobile-angel-event.bad{border-color:transparent;background:transparent}.mobile-angel-event--empty{display:none}.mobile-angel-event__sprite{width:clamp(300px,62vw,350px);height:clamp(300px,62vw,350px);object-fit:contain;flex-shrink:0;transform:translateY(175px);margin-right:0}.mobile-angel-event__text{position:absolute;left:30%;top:120%;transform:translate(20%);margin:0;min-width:0;max-width:min(72vw,280px);text-align:center;font-family:var(--font-game);font-size:1.24rem;font-weight:600;letter-spacing:.01em;line-height:1.2;color:#fff4c2;text-shadow:0 2px 0 rgba(56,35,4,.85),0 6px 12px rgba(0,0,0,.32);white-space:normal;overflow:visible;text-overflow:clip}.board-angel,.board-focus-scrim{display:none}.gameover-popup{width:min(96vw,520px);max-height:min(90svh,760px);padding:16px 14px 14px;gap:10px}.gameover-stats{grid-template-columns:1fr}.gameover-leaderboard-item{grid-template-columns:auto auto minmax(0,1fr)}.gameover-item-score{grid-column:2 / 4;padding-left:2px}.gameover-actions{grid-template-columns:1fr}.roll-dice-button{position:relative;z-index:20;margin-left:auto}.room-summary{grid-template-columns:1fr}.room-players-strip{margin-top:60px}}@keyframes angel-pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.menu-fab{position:fixed;top:calc(18px + env(safe-area-inset-top,0px));left:calc(18px + env(safe-area-inset-left,0px));z-index:200;width:48px;height:48px;border-radius:12px;border:3px solid #000;background:#ffd700;box-shadow:4px 4px #000;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;transition:transform .12s ease,box-shadow .12s ease}.menu-fab:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #000}.menu-fab:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.sound-fab{position:fixed;top:calc(18px + env(safe-area-inset-top,0px));left:calc(78px + env(safe-area-inset-left,0px));z-index:200;width:48px;height:48px;border-radius:12px;border:3px solid #000;background:#ffd700;box-shadow:4px 4px #000;font-size:1.3rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.sound-fab:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #000}.sound-fab:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.sound-fab.is-muted{background:#e6e0cf;filter:grayscale(.2)}.replay-fab{position:fixed;top:calc(18px + env(safe-area-inset-top,0px));left:calc(138px + env(safe-area-inset-left,0px));z-index:200;width:48px;height:48px;border-radius:12px;border:3px solid #000;background:#ffd700;box-shadow:4px 4px #000;font-size:1.3rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:transform .12s ease,box-shadow .12s ease}.replay-fab:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #000}.replay-fab:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.fab-flag{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-4px);padding:4px 8px;border:2px solid #000;border-radius:8px;background:#fff;box-shadow:2px 2px #000;font-size:.72rem;font-weight:700;line-height:1;white-space:nowrap;color:#000;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease}.fab-flag:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#000}.replay-fab:hover .fab-flag,.replay-fab:focus-visible .fab-flag{opacity:1;transform:translate(-50%) translateY(0)}.intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:clamp(16px,4vw,32px);background:radial-gradient(ellipse at 50% 35%,rgba(64,116,214,.5),transparent 70%),linear-gradient(180deg,rgba(16,36,84,.82),rgba(8,18,46,.9));backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);animation:intro-fade-in .36s ease}@keyframes intro-fade-in{0%{opacity:0}to{opacity:1}}.intro-stage{position:relative;width:min(100%,1180px);margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(12px,3vh,36px)}.intro-cast{width:100%;display:flex;align-items:flex-end;justify-content:center;gap:clamp(12px,8vw,140px)}.intro-angel{width:min(42vw,56vh,560px);height:auto;object-fit:contain;pointer-events:none;transition:opacity .38s ease,transform .44s cubic-bezier(.2,.9,.2,1.1),filter .32s ease}.intro-angel--good{width:min(48vw,64vh,660px);filter:drop-shadow(0 18px 34px rgba(255,214,102,.45));animation:intro-good-pop .56s cubic-bezier(.2,.9,.2,1.12)}.intro-angel--bad{opacity:0;transform:translate(-90px) scale(.82);filter:drop-shadow(0 16px 30px rgba(0,0,0,.4))}.intro-angel--bad.is-revealed{transform:translate(0) scale(.94);opacity:1}.intro-angel.is-active{opacity:1}.intro-angel--good.is-active{transform:scale(1.04)}.intro-angel--bad.is-revealed.is-active{transform:translate(0) scale(1.02)}.intro-angel.is-dim{opacity:.5;filter:grayscale(.4) brightness(.8) drop-shadow(0 10px 20px rgba(0,0,0,.35))}.intro-angel--good.is-dim{transform:scale(.86)}@keyframes intro-good-pop{0%{transform:translate(70px) scale(.88);opacity:0}60%{transform:translate(-6px) scale(1.08)}to{transform:translate(0) scale(1);opacity:1}}.intro-bubble{position:relative;z-index:2;width:min(94%,720px);margin-bottom:clamp(8px,2vh,20px);text-align:center;animation:intro-bubble-pop .38s ease}@keyframes intro-bubble-pop{0%{transform:translateY(16px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.intro-speaker{display:inline-block;font-family:var(--font-game);font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:#aef5be;margin-bottom:10px;text-shadow:0 2px 6px rgba(0,0,0,.55)}.intro-bubble--bad .intro-speaker{color:#ffb59a}.intro-text{display:inline-block;margin:0;padding:.65em 1.1em;border-radius:18px;font-family:var(--font-body);font-weight:700;font-size:clamp(1.05rem,2.6vw,1.35rem);line-height:1.55;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.55);box-shadow:0 8px 22px #0000004d,inset 0 0 0 1px #fff6}.intro-bubble--good .intro-text{background:rgba(92,152,228,.82)}.intro-bubble--bad .intro-text{background:rgba(222,96,84,.82)}.intro-progress{display:flex;justify-content:center;gap:8px;margin:16px 0 14px}.intro-dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.3);transition:background .24s ease,transform .24s ease}.intro-dot.is-on{background:var(--color-gold);transform:scale(1.15)}.intro-actions{display:flex;align-items:center;justify-content:center;gap:12px}.intro-skip{border:none;background:none;cursor:pointer;font-family:var(--font-game);font-size:.92rem;letter-spacing:.04em;color:#ffffffb3;padding:10px 14px;border-radius:12px;transition:color .2s ease,background .2s ease}.intro-skip:hover{color:#fff;background:rgba(255,255,255,.14)}.intro-next{border:3px solid var(--color-navy);background:var(--color-gold);color:#2a1c00;cursor:pointer;font-family:var(--font-game);font-weight:700;font-size:1.05rem;letter-spacing:.03em;padding:12px 24px;border-radius:14px;box-shadow:5px 5px 0 var(--color-navy);transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.intro-next:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--color-navy);filter:saturate(1.08)}.intro-next:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--color-navy)}@media (max-width: 720px){.intro-cast{gap:clamp(4px,2vw,16px);align-items:flex-end}.intro-angel{width:min(44vw,38vh,260px)}.intro-angel--good{width:min(50vw,44vh,300px)}.intro-text{font-size:clamp(1rem,4.4vw,1.25rem)}}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:grid;place-items:center;background:rgba(0,0,0,.54);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:menu-fade-in .22s ease}@keyframes menu-fade-in{0%{opacity:0}to{opacity:1}}.menu-popup{position:relative;display:flex;flex-direction:column;align-items:center;gap:24px;padding:40px 36px 36px;border-radius:20px;border:4px solid #000;background:#fffbe2;box-shadow:10px 10px #000;animation:menu-pop-in .3s cubic-bezier(.37,1.95,.66,.56);max-width:min(540px,92vw);width:100%}@keyframes menu-pop-in{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.menu-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:1.4rem;cursor:pointer;line-height:1;color:#000;opacity:.6;transition:opacity .15s}.menu-close:hover{opacity:1}.menu-title{margin:0;font-family:var(--font-game);font-style:italic;font-size:clamp(2rem,6vw,3rem);letter-spacing:-.02em;color:#000;text-shadow:3px 3px 0 #ffd700,6px 6px 0 rgba(0,0,0,.15)}.menu-tagline{margin:.25rem 0 0;font-family:var(--font-game);font-style:italic;font-size:clamp(.9rem,2.5vw,1.15rem);color:#333}.menu-sub{margin:-12px 0 0;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;color:#00000085}.comic-radio-group{--bg: #ffd700;--text-light: #ffffff;--text-dark: #000000;display:flex;position:relative;background:var(--bg);border-radius:12px;border:4px solid var(--text-dark);box-shadow:8px 8px 0 var(--text-dark);overflow:hidden;width:fit-content;font-family:var(--font-game);font-style:italic;font-weight:500}.comic-radio-group input{display:none}.comic-radio-group label{flex:1;display:flex;align-items:center;justify-content:center;min-width:90px;font-size:1.1rem;padding:.8rem 1.2rem;cursor:pointer;letter-spacing:1px;color:var(--text-dark);position:relative;z-index:2;transition:color .3s ease-in-out;text-shadow:-1px -1px 0 var(--text-light),1px -1px 0 var(--text-light),-1px 1px 0 var(--text-light),1px 1px 0 var(--text-light);white-space:nowrap}.comic-radio-group input:checked+label{color:var(--text-light);text-shadow:-2px -2px 0 var(--text-dark),2px -2px 0 var(--text-dark),-2px 2px 0 var(--text-dark),2px 2px 0 var(--text-dark)}.comic-glider{position:absolute;top:0;bottom:0;width:calc(100% / 3);border-radius:8px;z-index:1;transition:transform .5s cubic-bezier(.37,1.95,.66,.56),background-color .4s ease-in-out,box-shadow .4s ease-in-out;border-right:4px solid #000;border-left:4px solid #000;background-image:radial-gradient(circle at 4px 4px,rgba(0,0,0,.2) 2px,transparent 0);background-size:8px 8px;box-shadow:inset 0 0 10px #00000080}.comic-radio-group--two .comic-glider{width:50%}.menu-friend-controls{display:flex;flex-direction:column;gap:12px;width:100%}.menu-name-field{display:flex;flex-direction:column;gap:6px;width:100%}.menu-name-label{font-family:var(--font-game);font-style:italic;font-size:1rem;letter-spacing:1px;color:#000}.menu-name-input{font-family:var(--font-game);font-style:italic;font-size:1.1rem;padding:.6rem 1rem;border:3px solid #000;border-radius:10px;background:#fff;box-shadow:4px 4px #000;outline:none;width:100%;box-sizing:border-box;transition:box-shadow .15s}.menu-name-input:focus{box-shadow:6px 6px #000}.menu-start{border:4px solid #000;border-radius:12px;background:#ffd700;box-shadow:6px 6px #000;font-family:var(--font-game);font-style:italic;font-size:1.4rem;letter-spacing:2px;padding:.7rem 2.4rem;cursor:pointer;color:#000;transition:transform .12s ease,box-shadow .12s ease}.menu-start:hover{transform:translate(-2px,-2px);box-shadow:8px 8px #000}.menu-start:active{transform:translate(3px,3px);box-shadow:3px 3px #000}.menu-start-secondary{background:#9cd8ff}.menu-replay-intro{border:2px solid #000;border-radius:999px;background:#fff;box-shadow:3px 3px #000;font-family:var(--font-game);font-size:.82rem;letter-spacing:.02em;padding:.32rem .9rem;cursor:pointer;color:#000;transition:transform .12s ease,box-shadow .12s ease}.menu-replay-intro:hover{transform:translate(-1px,-1px);box-shadow:4px 4px #000}.menu-replay-intro:active{transform:translate(2px,2px);box-shadow:1px 1px #000}.menu-room-controls{width:100%;display:flex;flex-direction:column;gap:10px}.menu-dice-mode{width:100%;display:grid;gap:8px}.menu-dice-mode-title{margin:0;font-family:var(--font-game);font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;color:#000000ad}.menu-dice-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.menu-dice-option{border:3px solid #000;border-radius:12px;background:#fff4cf;box-shadow:4px 4px #000;color:#1f1305;font-family:var(--font-game);font-size:.95rem;letter-spacing:.04em;padding:.5rem .75rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.menu-dice-option.active{background:#ffd44e}.menu-dice-option:hover{transform:translate(-1px,-1px);box-shadow:5px 5px #000}.menu-character-field{width:100%;display:grid;gap:8px}.menu-character-title{margin:0;font-family:var(--font-game);font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;color:#000000ad}.menu-character-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-character-option{display:grid;justify-items:center;gap:6px;border:3px solid #000;border-radius:14px;background:#fff4cf;box-shadow:4px 4px #000;color:#1f1305;padding:10px 8px 8px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.menu-character-option.active{background:#ffd44e}.menu-character-option:hover{transform:translate(-1px,-1px);box-shadow:5px 5px #000}.menu-character-img{width:72px;height:72px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 5px rgba(0,0,0,.25))}.menu-character-label{font-family:var(--font-game);font-size:.95rem;letter-spacing:.04em}.menu-room-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-room-actions .menu-start{width:100%;font-size:1.05rem;padding:.65rem 1rem}.menu-error{margin:0;color:#9b1c1c;font-weight:700;font-size:.9rem}.menu-hint{margin:0;color:#0f6a2c;font-weight:700;font-size:.92rem}.menu-start-danger{background:#ff9f9f}.menu-start:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:4px 4px #000}.leave-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:350;display:grid;place-items:center;background:rgba(0,0,0,.56);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.leave-popup{width:min(520px,92vw);border-radius:18px;border:4px solid #000;background:#fffbe2;box-shadow:10px 10px #000;padding:22px;display:grid;gap:12px}.leave-popup h3{margin:0;font-family:var(--font-game);font-style:italic;font-size:2rem;color:#000}.leave-popup p{margin:0;font-size:1rem;color:#1f1f1f}.leave-actions{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.leave-actions .menu-start{width:100%;font-size:1rem;padding:.65rem 1rem}.gameover-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:360;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 20% 16%,rgba(255,226,83,.26),transparent 42%),radial-gradient(circle at 84% 10%,rgba(111,201,255,.2),transparent 38%),rgba(8,10,20,.7);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:gameover-fade-in .18s ease-out}.gameover-popup{width:min(620px,96vw);max-height:min(88svh,820px);overflow:auto;border-radius:24px;border:4px solid #000;padding:22px 20px 20px;background:radial-gradient(circle at 30% 0,rgba(255,249,224,.95),rgba(255,238,178,.96) 32%,rgba(255,212,95,.98) 100%);box-shadow:0 20px 48px #0000006b,12px 12px #000;display:grid;gap:14px;position:relative;animation:gameover-pop-in .28s cubic-bezier(.16,.9,.2,1.2)}.gameover-crown{justify-self:center;font-size:clamp(2.2rem,6vw,3rem);line-height:1;filter:drop-shadow(0 3px 0 rgba(0,0,0,.35));animation:gameover-crown-bob 1.4s ease-in-out infinite}.gameover-title{margin:0;text-align:center;color:#1f1300;font-family:var(--font-game);letter-spacing:.03em;font-size:clamp(2rem,6vw,2.8rem);text-shadow:0 2px 0 rgba(255,255,255,.72),0 6px 0 rgba(168,96,0,.24)}.gameover-subtitle{margin:-6px 0 0;text-align:center;color:#231a0ac2;font-weight:700}.winner-card{border:3px solid #000;border-radius:18px;background:linear-gradient(165deg,#fff9db 0%,#ffd46a 62%,#f4b740 100%);box-shadow:8px 8px #000;padding:14px;display:grid;place-items:center;gap:8px}.winner-avatar{width:88px;height:88px;border-radius:14px;border:3px solid #000;box-shadow:0 8px 20px #0003;background:#fff;object-fit:contain;image-rendering:pixelated}.winner-name{margin:0;color:#1a1204;font-size:1.36rem;font-family:var(--font-game);letter-spacing:.02em}.winner-tag{border-radius:999px;border:2px solid rgba(0,0,0,.8);background:rgba(255,246,199,.9);color:#553200;padding:5px 10px;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.gameover-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.gameover-stat{border:2px solid rgba(0,0,0,.75);border-radius:14px;background:rgba(255,255,255,.74);padding:8px 10px;display:grid;gap:2px}.gameover-stat-label{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:#1f1204b8;font-weight:800}.gameover-stat strong{font-size:1.06rem;color:#241804}.gameover-leaderboard{border:3px solid #000;border-radius:18px;background:rgba(255,248,221,.94);box-shadow:inset 0 0 0 1px #ffffff80;padding:12px;display:grid;gap:10px}.gameover-leaderboard h3{margin:0;font-size:1rem;letter-spacing:.06em;text-transform:uppercase}.gameover-leaderboard-list{display:grid;gap:8px}.gameover-leaderboard-item{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;border:2px solid rgba(0,0,0,.52);border-radius:12px;background:rgba(255,255,255,.74);padding:8px}.gameover-leaderboard-item.is-me{border-color:#0a6a2b;box-shadow:0 0 0 2px #10a14740;background:rgba(237,255,244,.95)}.gameover-rank{font-size:.9rem;font-weight:900;color:#2a1a00}.gameover-item-avatar{width:30px;height:30px;border-radius:50%;border:2px solid rgba(0,0,0,.55);background:#fff}.gameover-item-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:700}.gameover-item-score{font-size:.82rem;font-weight:800;color:#2b1e08c2}.gameover-hint{margin:0;border-radius:12px;border:2px dashed rgba(0,0,0,.5);background:rgba(255,250,235,.82);padding:8px 10px;font-size:.86rem;color:#2e1f08e0}.gameover-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gameover-btn{border:3px solid #000;border-radius:12px;box-shadow:5px 5px #000;font-family:var(--font-game);font-size:1rem;letter-spacing:.05em;padding:.64rem .85rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.gameover-btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px #000}.gameover-btn:active{transform:translate(1px,1px);box-shadow:3px 3px #000}.gameover-btn-primary{color:#1f1400;background:linear-gradient(180deg,#ffe864 0%,#ffbf31 100%)}.gameover-btn-secondary{color:#1b1307;background:linear-gradient(180deg,#ffffff 0%,#eddcc4 100%)}@keyframes gameover-fade-in{0%{opacity:0}to{opacity:1}}@keyframes gameover-pop-in{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes gameover-crown-bob{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-2deg)}to{transform:translateY(0) rotate(0)}}.room-players-strip{width:min(100%,640px);margin:0 auto;border:3px solid #000;border-radius:18px;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.45),transparent 48%),linear-gradient(145deg,#fef2b8 0%,#ffd768 44%,#ffbc2e 100%);box-shadow:6px 6px #000;padding:10px 12px}.room-players-strip__title{margin:0 0 8px;text-align:center;color:#2a1a00;font-family:var(--font-game);letter-spacing:1px;font-size:1rem}.room-players-strip__list{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:0;padding:0}.room-players-strip__item{display:flex;align-items:center;gap:8px;border:2px solid rgba(0,0,0,.6);border-radius:999px;background:rgba(255,248,225,.94);padding:6px 9px 6px 6px}.room-players-strip__item.is-me{background:rgba(255,238,184,.98)}.room-players-strip__item.is-turn{border-color:#0a6a2b;box-shadow:0 0 0 2px #2ecc7147}.room-players-strip__avatar{width:34px;height:34px;border-radius:50%;border:2px solid rgba(0,0,0,.52);background:#fff;object-fit:cover;flex-shrink:0}.room-players-strip__name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;color:#1f1a12;font-weight:700}.room-players-strip__badge{border:2px solid #0a6a2b;border-radius:999px;background:#e5ffd6;color:#0a6a2b;font-size:.62rem;letter-spacing:.08em;font-weight:800;padding:2px 7px;flex-shrink:0}.moves-table{margin-top:16px;border:3px solid #000;border-radius:18px;background:rgba(255,248,221,.94);box-shadow:inset 0 0 0 1px #ffffff80;padding:12px}.moves-table--gameover{margin-top:0}.moves-table__title{margin:0 0 10px;text-align:center;color:#2a1a00;font-family:var(--font-game);letter-spacing:1px;font-size:1rem}.moves-table__cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.moves-table__col{border:2px solid rgba(0,0,0,.5);border-radius:12px;padding:8px;min-width:0}.moves-table__col--slides{background:rgba(255,226,226,.72)}.moves-table__col--ladders{background:rgba(226,255,231,.72)}.moves-table__heading{margin:0 0 8px;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:.9rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#2a1a00}.moves-table__count{border-radius:999px;background:rgba(0,0,0,.14);padding:1px 8px;font-size:.72rem;font-weight:800}.moves-table__empty{margin:4px 0 0;font-size:.8rem;font-style:italic;color:#2b1e0899}.moves-table__list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.moves-table__row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 8px;border:2px solid rgba(0,0,0,.42);border-radius:10px;background:rgba(255,255,255,.78);padding:6px 8px}.moves-table__row.is-me{border-color:#0a6a2b;box-shadow:0 0 0 2px #10a14738}.moves-table__tiles{display:inline-flex;align-items:center;gap:4px;font-size:.9rem;color:#2a1a00}.moves-table__tiles strong{font-weight:900}.moves-table__arrow{color:#2b1e0899;font-weight:700}.moves-table__cause{grid-column:1 / -1;font-size:.78rem;line-height:1.3;font-style:italic;color:#1f1a12b8}.moves-table__message{grid-column:1 / -1;font-size:.8rem;line-height:1.3;color:#1f1a12}@media (max-width: 560px){.moves-table__cols{grid-template-columns:1fr}}.goodness-credit{display:inline-flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;text-align:center;opacity:.85;transition:opacity .16s ease}.goodness-credit:hover,.goodness-credit:focus-visible{opacity:1}.goodness-credit__logo{width:96px;height:96px;object-fit:contain;border-radius:8px;flex-shrink:0}.goodness-credit__text{font-size:.66rem;line-height:1.4;font-weight:600;letter-spacing:.01em}.goodness-credit--intro{position:relative;z-index:2;color:#fffef8;text-shadow:0 2px 6px rgba(0,0,0,.55)}.page-footer{display:flex;justify-content:center;padding:0 24px calc(28px + env(safe-area-inset-bottom,0px))}.goodness-credit--page{color:#fff;opacity:1;text-shadow:0 2px 6px rgba(0,0,0,.55)}.goodness-credit--page .goodness-credit__logo{width:168px;height:auto}.goodness-credit--page .goodness-credit__text{font-size:.9rem;margin-top:-4px}.goodness-credit--page .goodness-credit__brand{color:#ff8a1e;font-weight:800}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:clamp(20px,6vw,48px);background:radial-gradient(ellipse at 50% 30%,rgba(72,132,86,.55),transparent 70%),linear-gradient(180deg,#1f3a2a 0%,#142a1e 100%);opacity:1;transition:opacity .48s ease}.preloader.is-finishing{opacity:0;pointer-events:none}.preloader__inner{display:flex;flex-direction:column;align-items:center;text-align:center;width:min(92vw,440px)}.preloader__logo{width:clamp(96px,26vw,168px);height:auto;margin-bottom:clamp(14px,3vh,26px);filter:drop-shadow(0 8px 22px rgba(0,0,0,.4));animation:preloader-logo-pulse 2.2s ease-in-out infinite}@keyframes preloader-logo-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.preloader__title{margin:0;font-family:var(--font-game);font-style:italic;font-size:clamp(1.7rem,6vw,2.6rem);letter-spacing:-.01em;color:#fff;text-shadow:2px 2px 0 #ffd700,4px 4px 0 rgba(0,0,0,.25)}.preloader__text{margin:10px 0 22px;font-family:var(--font-body);font-weight:700;font-size:clamp(.95rem,2.6vw,1.1rem);color:#ffffffd9}.preloader__bar{width:100%;height:12px;border-radius:999px;background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px #ffffff2e;overflow:hidden}.preloader__bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ffe45a 0%,#ffbc2e 100%);box-shadow:0 0 12px #ffc82f99;transition:width .32s ease}.preloader__pct{margin-top:10px;font-family:var(--font-game);font-weight:600;font-size:.95rem;color:#ffffffc7;letter-spacing:.04em}.draw-page{min-height:100vh;background:#1c2230;color:#eef2f8;padding:14px 18px 40px;box-sizing:border-box;font-family:Inter,system-ui,sans-serif}.draw-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;padding:10px 14px;background:#232b3c;border:1px solid rgba(255,255,255,.08);border-radius:12px}.draw-toolbar__group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.draw-toolbar__title{font-size:1rem;letter-spacing:.01em}.draw-field{display:flex;align-items:center;gap:6px;font-size:.82rem;color:#b9c4d6}.draw-field select,.draw-field input[type=range]{accent-color:#4ea1ff}.draw-field select{background:#161c28;color:#eef2f8;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:5px 8px;font-size:.85rem}.draw-checkbox{display:flex;align-items:center;gap:6px;font-size:.82rem;color:#b9c4d6;cursor:pointer}.draw-btn{background:#313c52;color:#eef2f8;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:7px 13px;font-size:.84rem;font-weight:600;cursor:pointer;transition:background .12s ease,transform 80ms ease}.draw-btn:hover{background:#3c4866}.draw-btn:active{transform:translateY(1px)}.draw-btn--primary{background:#2f6fed;border-color:#2f6fed}.draw-btn--primary:hover{background:#4079f3}.draw-btn--danger{background:#7a2b2b;border-color:#8a3333}.draw-btn--danger:hover{background:#913434}.draw-hint{margin:12px 2px;font-size:.86rem;color:#aebbd0;line-height:1.5}.draw-stage{display:flex;justify-content:center}.draw-stage .board-scene{width:min(92vw,78vh);cursor:crosshair}.draw-tile{background:#fffbe2;border:1px solid rgba(0,0,0,.06)!important}.draw-tile--slide-start{background:#ed2837;color:#fff}.draw-tile--slide-end{background:#c98a3a;color:#fff}.draw-tile--ladder-start{background:#6fbf4f;color:#16320f}.draw-tile--ladder-end{background:#cfe9c2}.draw-tile .square-number{font-size:.62rem;font-weight:700;opacity:.85}.draw-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:5;touch-action:none}.draw-path{fill:none;stroke-linejoin:round;stroke-linecap:round}.draw-path--other{stroke:#78c8ff59;stroke-width:3;stroke-dasharray:6 6}.draw-path--active{stroke:#ff3da6;filter:drop-shadow(0 0 4px rgba(255,61,166,.6))}.draw-path--draft{stroke:#ffd23d;opacity:.95}.draw-dot{stroke:#fff;stroke-width:2}.draw-dot--start{fill:#34d058}.draw-dot--end{fill:#ff4d4d}.draw-preview-dot{fill:#fff;stroke:#2f6fed;stroke-width:3;filter:drop-shadow(0 0 6px rgba(47,111,237,.8))}.draw-export{margin:18px 2px 0;background:#232b3c;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px 14px}.draw-export summary{cursor:pointer;font-weight:600;font-size:.88rem}.draw-export__text{margin-top:10px;width:100%;min-height:220px;background:#11161f;color:#cfe3ff;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;box-sizing:border-box;resize:vertical}
