@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-vietnamese-wdth-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-ext-wdth-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-wdth-normal-DY7AcnAa.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-cyrillic-ext-wght-normal-lLTsRRxN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-wght-normal-eXO_dkmS.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{--malam: #150c2e;--meja: #241243;--puncak: #5b3e9e;--sorot: #ffb627;--pirus: #00c2a8;--magenta: #ff3d7f;--kabut: #f2e9ff;--kabut-dim: #c6b6e4;--tinta: #22103f;--font-display: "Archivo Variable", "Archivo", system-ui, -apple-system, sans-serif;--font-body: "Plus Jakarta Sans Variable", "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--dur-step: 175ms;--dur-slide: .62s;--dur-turn: .26s;--radius-board: 16px;--radius-ui: 14px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font-body);font-weight:400;color:var(--kabut);background-color:var(--malam);background-image:radial-gradient(130% 70% at 50% -8%,rgba(91,62,158,.42) 0%,transparent 62%),radial-gradient(100% 100% at 50% 50%,transparent 42%,rgba(0,0,0,.55) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}button,.turn,.brand,.cell-num,.start-lane,.splash{-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--sorot);outline-offset:3px;border-radius:6px}.dice-btn:focus-visible{outline-offset:5px}.screen{position:relative;width:100%;height:100dvh;max-width:620px;margin:0 auto}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.splash{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;background:var(--malam);background-image:radial-gradient(120% 60% at 50% 100%,rgba(255,182,39,.1) 0%,transparent 60%);overflow:hidden;transition:opacity .32s ease,transform .32s ease;touch-action:manipulation}.splash.is-leaving{opacity:0;transform:scale(1.04);pointer-events:none}.splash-art{position:absolute;left:50%;top:33%;transform:translate(-50%);width:min(56vw,224px);height:67%;overflow:visible}.sp-rail,.sp-rung{fill:none;stroke:var(--sorot);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:sp-draw .9s cubic-bezier(.25,.8,.4,1) forwards;filter:drop-shadow(0 0 6px rgba(255,182,39,.55))}.sp-rail{stroke-width:2.6}.sp-rung{stroke-width:2.2;animation-duration:.24s;animation-timing-function:ease-out}@keyframes sp-draw{to{stroke-dashoffset:0}}.splash-center{position:relative;z-index:2;margin-top:15vh;text-align:center;padding:0 20px}.splash-titlewrap{position:relative;display:inline-block}.splash-title{margin:0;font-family:var(--font-display);font-weight:900;font-stretch:118%;font-size:clamp(2.6rem,15vw,4.4rem);line-height:.86;letter-spacing:-.02em;color:var(--kabut);opacity:0;animation:sp-ignite .52s ease-out 1.2s forwards}.splash-title span{display:block;color:var(--sorot)}@keyframes sp-ignite{0%{opacity:0;text-shadow:none;filter:brightness(.4)}60%{opacity:1;filter:brightness(1.35)}to{opacity:1;filter:brightness(1);text-shadow:0 0 34px rgba(255,182,39,.35)}}.splash-snake-svg{position:absolute;left:-12%;top:42%;width:124%;height:46px;overflow:visible;opacity:0;animation:sp-slither .48s cubic-bezier(.3,0,.2,1) 1.6s forwards}.splash-snake{fill:none;stroke:var(--magenta);stroke-width:8;stroke-linecap:round;filter:drop-shadow(0 0 10px rgba(255,61,127,.6))}.splash-snake-head{fill:var(--magenta);filter:drop-shadow(0 0 10px rgba(255,61,127,.6))}@keyframes sp-slither{0%{opacity:0;transform:translate(-130%) rotate(-4deg)}15%{opacity:.95}85%{opacity:.95}to{opacity:0;transform:translate(130%) rotate(4deg)}}.splash-tap{margin:26px 0 0;font-size:.95rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--kabut-dim);opacity:0;animation:sp-fade .4s ease-out 2s forwards,sp-pulse 2.4s ease-in-out 2.4s infinite}@keyframes sp-fade{to{opacity:1}}@keyframes sp-pulse{0%,to{opacity:1}50%{opacity:.42}}.splash.is-static .sp-rail,.splash.is-static .sp-rung{stroke-dashoffset:0;animation:none}.splash.is-static .splash-title,.splash.is-static .splash-tap{opacity:1;animation:none}.splash.is-static .splash-snake-svg{display:none}.setup{display:flex;flex-direction:column;gap:16px;padding:max(24px,env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;animation:setup-rise .38s cubic-bezier(.2,.8,.3,1)}@keyframes setup-rise{0%{opacity:0;transform:translateY(24px)}}.setup-head{padding-top:4vh}.setup-title{margin:0;font-family:var(--font-display);font-weight:900;font-stretch:118%;font-size:clamp(2.1rem,11vw,3rem);line-height:.88;letter-spacing:-.02em}.setup-sub{margin:12px 0 0;color:var(--kabut-dim);font-size:.95rem}.player-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.player-row{--row-color: var(--sorot);display:flex;flex-direction:column;gap:10px;padding:12px 12px 12px 14px;border-radius:var(--radius-ui);background:#f2e9ff0e;animation:row-in .24s ease-out}@keyframes row-in{0%{opacity:0;transform:translateY(-6px)}}.player-top{display:flex;align-items:center;gap:10px}.player-dot{flex:0 0 auto;width:16px;height:16px;border-radius:50%;background:var(--row-color);box-shadow:0 0 12px var(--row-color)}.player-name{flex:1 1 auto;min-width:0;padding:10px 2px;font:inherit;font-weight:600;font-size:1.05rem;color:var(--kabut);background:none;border:0;border-bottom:1px solid rgba(242,233,255,.16)}.player-name::placeholder{color:#f2e9ff6b;font-weight:400}.player-name:focus{outline:none;border-bottom-color:var(--sorot)}.player-name:focus-visible{outline:none}.player-remove{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:var(--kabut-dim)}.player-remove svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.player-remove:hover:not(:disabled),.player-remove:focus-visible{color:var(--magenta);background:#ff3d7f1f}.player-remove:disabled{opacity:.28}.swatches{display:flex;gap:10px;padding-left:26px}.swatch{position:relative;width:34px;height:34px;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 2px #150c2ee6;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.swatch.is-selected{transform:scale(1.1);box-shadow:0 0 0 2px var(--malam),0 0 0 4px var(--kabut),0 0 16px var(--swatch)}.swatch:disabled{opacity:.24;transform:scale(.86)}.swatch:disabled:after{content:"";position:absolute;inset:46% -4px;height:2px;background:var(--kabut);border-radius:2px}.setup-foot{margin-top:auto;padding-top:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 26px;border-radius:999px;font-weight:700;font-size:1rem;letter-spacing:.01em;transition:transform .14s ease,filter .14s ease,opacity .14s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{width:100%;background:var(--sorot);color:var(--tinta);box-shadow:0 8px 30px #ffb62747}.btn-primary:disabled{opacity:.34;box-shadow:none}.btn-ghost{width:100%;color:var(--kabut);border:1px solid rgba(242,233,255,.22)}.btn-ghost:disabled{opacity:.3}.btn-ghost .plus{font-size:1.3rem;line-height:1;color:var(--sorot)}.btn-danger{background:var(--magenta);color:#2a0a18}.board-area{--board-w: min(100%, 560px, calc(100dvh - 322px) );flex:0 0 auto}.board-stage{position:relative;width:var(--board-w);aspect-ratio:1;margin:0 auto;overflow:visible}.board-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);border-radius:var(--radius-board);overflow:hidden;background-image:radial-gradient(62% 46% at 6% 4%,rgba(255,214,130,.34) 0%,transparent 64%),linear-gradient(to top,var(--meja) 0%,var(--puncak) 100%);box-shadow:0 0 0 1px #f2e9ff17,0 26px 60px #0000008c,inset 0 0 70px #00000038}.cell{position:relative;border-right:1px solid rgba(242,233,255,.055);border-bottom:1px solid rgba(242,233,255,.055)}.cell:nth-child(10n){border-right:0}.cell:nth-last-child(-n+10){border-bottom:0}.cell-num{position:absolute;top:2px;left:4px;font-size:clamp(7px,1.6vw,10px);font-weight:500;font-variant-numeric:tabular-nums;line-height:1;color:#f2e9ff9e;text-shadow:0 1px 1.5px rgba(12,5,28,.6);pointer-events:none}.cell:nth-child(-n+40) .cell-num{color:#f2e9ffc7}.cell-ladder{box-shadow:inset 0 0 0 1px #00c2a84d}.cell-snake{box-shadow:inset 0 0 0 1px #ff3d7f47}.cell-goal{background:radial-gradient(circle at 50% 50%,rgba(255,182,39,.4),transparent 72%)}.board-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ladder-rail,.ladder-rung{stroke:var(--pirus);stroke-linecap:round;fill:none}.ladder-rail{stroke-width:1.1;opacity:.92}.ladder-rung{stroke-width:.85;opacity:.62}.ladder{filter:drop-shadow(0 0 1.4px rgba(0,194,168,.7))}.snake-body{fill:var(--magenta);opacity:.92}.snake-head{fill:#ff6a9c}.snake-eye{fill:var(--malam)}.snake{filter:drop-shadow(0 0 1.6px rgba(255,61,127,.6))}.travel{fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0}.travel.is-travelling{opacity:1}.travel-ladder{stroke:#b9fff2;stroke-width:2.6;filter:drop-shadow(0 0 3px rgba(0,194,168,.95))}.travel-snake{stroke:#ffd0e2;stroke-width:3;filter:drop-shadow(0 0 3px rgba(255,61,127,.95))}.pawn-layer{position:absolute;inset:0;overflow:visible;pointer-events:none}.pawn{--pawn-scale: .78;position:absolute;left:0;top:0;width:10%;height:10%;display:grid;place-items:center;transform:translate(0);transition:transform var(--dur-step) cubic-bezier(.34,1.15,.5,1);will-change:transform}.pawn.is-sliding{transition-duration:var(--dur-slide);transition-timing-function:cubic-bezier(.45,0,.25,1)}.pawn-body{position:relative;z-index:2;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 34% 28%,#ffffffb8,#fff0 46%),var(--pawn-color);box-shadow:0 0 0 2px #0f0622eb,0 2px 6px #00000080;transform:scale(var(--pawn-scale));opacity:.82;transition:transform var(--dur-turn) ease,opacity var(--dur-turn) ease}.pawn.is-active .pawn-body{opacity:1}.pawn-halo{position:absolute;inset:-55%;border-radius:50%;background:radial-gradient(circle,var(--pawn-color) 0%,rgba(0,0,0,0) 62%);opacity:0;transition:opacity var(--dur-turn) ease;pointer-events:none}.pawn.is-active .pawn-halo{opacity:.55;animation:halo-breathe 2.6s ease-in-out infinite}@keyframes halo-breathe{0%,to{opacity:.42}50%{opacity:.68}}@keyframes pawn-hop{0%{transform:scale(var(--pawn-scale))}35%{transform:scale(var(--pawn-scale)) scale(1.12,.88)}70%{transform:scale(var(--pawn-scale)) scale(.94,1.08) translateY(-12%)}to{transform:scale(var(--pawn-scale))}}.pawn.is-hopping .pawn-body{animation:pawn-hop var(--dur-step) ease-out}.start-lane{position:relative;width:var(--board-w);height:calc(var(--board-w) * .12);margin:0 auto;display:flex;align-items:center;padding-left:4px}.start-lane span{font-size:.6rem;font-weight:600;letter-spacing:.28em;color:#f2e9ff9e}.win-flood{position:absolute;inset:0;border-radius:var(--radius-board);overflow:hidden;pointer-events:none;opacity:0}.win-flood:before{content:"";position:absolute;left:5%;top:5%;width:300%;height:300%;transform:translate(-50%,-50%) scale(.05);border-radius:50%;background:radial-gradient(circle,#ffd682f2,#ffb62766 40%,#ffb62700 70%)}.win-flood.is-flooding{opacity:1;animation:flood-fade .9s ease-out forwards}.win-flood.is-flooding:before{animation:flood-grow .9s cubic-bezier(.2,.7,.3,1) forwards}@keyframes flood-grow{0%{transform:translate(-50%,-50%) scale(.05)}to{transform:translate(-50%,-50%) scale(1)}}@keyframes flood-fade{0%{opacity:0}30%{opacity:1}to{opacity:.7}}.game{display:flex;flex-direction:column;gap:8px;padding:max(8px,env(safe-area-inset-top)) 12px calc(10px + env(safe-area-inset-bottom));animation:game-in .42s ease-out}@keyframes game-in{0%{opacity:0;transform:translateY(16px)}}.topbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px}.brand{margin:0;font-family:var(--font-display);font-weight:800;font-stretch:116%;font-size:.86rem;letter-spacing:.16em;color:#f2e9ffc7}.topbar-actions{display:flex;gap:4px}.icon-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:var(--kabut-dim);transition:color .16s ease,background .16s ease,opacity .16s ease}.icon-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-btn .ico-sound path:first-child{fill:currentColor;stroke-linejoin:round}.icon-btn .slash{opacity:0;transition:opacity .16s ease}.icon-btn.is-muted .wave{opacity:0}.icon-btn.is-muted .slash{opacity:1}.icon-btn.is-muted{color:#f2e9ff73}.icon-btn:hover:not(:disabled),.icon-btn:focus-visible{color:var(--kabut);background:#f2e9ff14}.icon-btn:disabled{opacity:.32}.control{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:6px 8px 0;text-align:center;background:linear-gradient(to bottom,#5b3e9e00,#5b3e9e1f);border-radius:var(--radius-ui)}.turn{--turn-color: var(--sorot);display:flex;align-items:center;gap:9px;min-height:28px}.turn-dot{width:12px;height:12px;border-radius:50%;background:var(--turn-color);transition:background var(--dur-turn) ease}.turn-name{font-family:var(--font-display);font-weight:800;font-stretch:112%;font-size:clamp(1.05rem,5.4vw,1.4rem);letter-spacing:.01em;color:var(--kabut)}.turn-suffix{font-size:.9rem;font-weight:500;color:var(--kabut-dim)}.message{margin:0;min-height:2.6em;max-width:30ch;font-size:.9rem;line-height:1.4;color:var(--kabut-dim)}.message.is-fresh{animation:msg-in .26s ease-out}@keyframes msg-in{0%{opacity:0;transform:translateY(4px)}}.dice-btn{position:relative;flex:0 0 auto;width:128px;min-width:64px;min-height:64px;margin-top:2px;padding:12px 0 10px;display:grid;justify-items:center;gap:8px;border-radius:24px;background:linear-gradient(180deg,#5b3e9e8c,#241243e6);box-shadow:0 0 0 1px #ffb62747,0 14px 34px #00000073;transition:transform .13s ease,box-shadow .2s ease,opacity .2s ease;touch-action:manipulation}.dice-btn:active:not(:disabled){transform:scale(.96)}.dice-btn.is-locked{opacity:.45}.dice-glow{position:absolute;inset:-14px;border-radius:34px;background:radial-gradient(circle at 50% 45%,#ffb6278c,#ffb62700 68%);opacity:0;transition:opacity .22s ease;pointer-events:none}.dice-btn.is-rolling .dice-glow{opacity:1;animation:dice-breathe .62s ease-in-out infinite}@keyframes dice-breathe{0%,to{opacity:.45}50%{opacity:1}}.dice-btn.is-flash .dice-glow{opacity:1;animation:dice-flash .32s ease-out}@keyframes dice-flash{0%{opacity:1}to{opacity:0}}.dice-face{position:relative;z-index:1;width:60px;height:60px;padding:8px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:3px;border-radius:14px;background:linear-gradient(160deg,#fffdf7,#efe6ff);box-shadow:inset 0 -3px 6px #5b3e9e2e,0 3px 10px #0006}.dice-face.is-empty:after{content:"";grid-column:2;grid-row:2;width:8px;height:8px;border-radius:50%;background:#22103f38;place-self:center}.pip{border-radius:50%}.pip.on{background:var(--tinta);box-shadow:inset 0 -1px 1px #ffffff59}.dice-label{position:relative;z-index:1;font-size:.86rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--kabut);transition:opacity .16s ease}.dice-btn.is-warming .dice-label{opacity:.45}@media(min-height:760px){.control{gap:10px}.dice-btn{width:136px}}.overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px;background:#0f071ee6;opacity:0;transition:opacity .22s ease}.overlay.is-open{opacity:1}.win-card{width:100%;max-width:420px;min-width:0;text-align:center;transform:translateY(14px) scale(.97);transition:transform .32s cubic-bezier(.2,.9,.3,1)}.win-overlay.is-open .win-card{transform:none}.win-kicker{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--kabut-dim)}.win-name{margin:10px 0 2px;font-family:var(--font-display);font-weight:900;font-stretch:120%;font-size:clamp(2.2rem,15vw,4.5rem);line-height:.9;letter-spacing:-.02em;white-space:nowrap}.win-sub{margin:0 0 34px;font-family:var(--font-display);font-weight:800;font-stretch:112%;font-size:1.4rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sorot)}.win-actions{display:flex;flex-direction:column;gap:10px}.confirm-card{width:100%;max-width:380px;padding:24px 22px 20px;border-radius:22px;background:#241243;box-shadow:0 0 0 1px #f2e9ff1a,0 30px 60px #0000008c;transform:translateY(10px) scale(.98);transition:transform .22s cubic-bezier(.2,.9,.3,1)}.confirm-overlay.is-open .confirm-card{transform:none}.confirm-card h3{margin:0 0 8px;font-family:var(--font-display);font-weight:800;font-stretch:110%;font-size:1.3rem}.confirm-card p{margin:0 0 22px;font-size:.94rem;line-height:1.5;color:var(--kabut-dim)}.confirm-actions{display:flex;flex-direction:column;gap:10px}
