:root{--bg:#0d1018;--bg-2:#181d2b;--bg-3:#212838;--line:#303950;--text:#f2f5fc;--muted:#939db6;--step:.105s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background-color:var(--bg)}html,body{height:100%;margin:0}body{background:radial-gradient(90% 55% at 50% -5%, #2b3a5e 0%, transparent 70%), radial-gradient(120% 80% at 50% 0%, #23304d 0%, var(--bg) 62%);min-height:100dvh;color:var(--text);overscroll-behavior:none;-webkit-user-select:none;user-select:none;background-attachment:fixed;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#app{height:100%}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.defs{width:0;height:0;position:absolute}.app{height:100dvh;height:var(--app-h,100dvh);max-width:520px;padding:env(safe-area-inset-top) 10px env(safe-area-inset-bottom);flex-direction:column;margin:0 auto;display:flex;position:relative}html:has(.app.playing){overflow:hidden}html:has(.app.playing) body{overflow:hidden}.app.playing{overflow:hidden}.topbar{flex:none;justify-content:center;align-items:center;padding:8px 0 6px;display:flex}.topbar-tools{gap:8px;display:flex}.brand{text-align:center;letter-spacing:.28em;text-indent:.28em;background:linear-gradient(90deg,#ec4034,#f5b21c,#22a64f,#2f78e0);color:#0000;-webkit-background-clip:text;background-clip:text;flex:1;font-size:15px;font-weight:800}.topbar-right{gap:6px;display:flex}.icon-btn{background:var(--bg-2);border:1px solid var(--line);border-radius:11px;place-items:center;width:36px;height:36px;font-size:15px;transition:transform .12s,background .2s;display:grid}.btn-icon{width:18px;height:18px;display:block}.icon-btn.on{background:var(--bg-3);border-color:#4a5978}.icon-btn:active{transform:scale(.9)}.arena{--die:81px;--row-h:calc(var(--die) + 6px);--gap:75px;flex-direction:column;flex:1;justify-content:center;min-height:0;padding:2px 0;display:flex;container-type:size}.seat-row{height:var(--row-h);flex:none;grid-template-columns:1fr 1fr;align-items:center;gap:8px;display:grid}.board-area{--fit:min(100cqw, max(0px, 100cqh - (2 * var(--row-h))));min-width:0;min-height:0;max-height:calc(var(--fit) + (2 * var(--gap)));flex:auto;place-items:center;display:grid;position:relative}.seat{justify-self:start;display:block}.seat.right{justify-self:end}.seat-empty{display:block}.dice{background:linear-gradient(160deg, var(--dc), var(--dc-dark));width:64px;height:64px;box-shadow:0 6px 0 var(--dc-dark), 0 12px 26px -10px var(--dc);border-radius:18px;flex:none;place-items:center;transition:transform .2s cubic-bezier(.3,1.3,.5,1),box-shadow .2s,opacity .25s,filter .25s;display:grid;position:relative}.dice-cube{background:linear-gradient(155deg,#fff,#dfe4ee);border-radius:12px;place-items:center;width:46px;height:46px;display:grid;box-shadow:inset 0 -3px 5px #0000002e}.dice-face{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:32px;height:32px;animation:.3s cubic-bezier(.2,1.7,.4,1) faceIn;display:grid}@keyframes faceIn{0%{opacity:.2;transform:scale(.5)}}.pip{background:#1a2032;border-radius:50%;place-self:center;width:8px;height:8px;box-shadow:inset 0 1px 1px #ffffff59}.seat .dice{width:var(--die);height:var(--die);border-radius:calc(var(--die) * .296);box-shadow:0 calc(var(--die) * .09) 0 var(--dc-dark), 0 calc(var(--die) * .185) calc(var(--die) * .37) -8px var(--dc)}.seat .dice-cube{width:calc(var(--die) * .722);height:calc(var(--die) * .722);border-radius:calc(var(--die) * .204)}.seat .dice-face{width:calc(var(--die) * .519);height:calc(var(--die) * .519)}.seat .dice .pip{width:calc(var(--die) * .12);height:calc(var(--die) * .12)}.dice:before{content:"";inset:calc(var(--die,64px) * -.1);border-radius:calc(var(--die,64px) * .4);border:2px solid var(--dc);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;position:absolute;transform:scale(.8)}.dice.active:before{opacity:1;box-shadow:0 0 calc(var(--die,64px) * .3) calc(var(--die,64px) * -.12) var(--dc);animation:.45s cubic-bezier(.2,1.5,.4,1) haloWake,2.1s ease-in-out .45s infinite halo;transform:scale(1)}@keyframes haloWake{0%{opacity:0;transform:scale(.62)}}@keyframes halo{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.08)}}.dice.idle{opacity:.5;filter:saturate(.7);box-shadow:0 calc(var(--die,64px) * .045) 0 var(--dc-dark);transform:scale(.84)}.dice.idle .dice-cube{background:linear-gradient(155deg,#e8ebf2,#c6ccd9)}.dice:disabled{cursor:default}.dice.ready{animation:1.2s ease-in-out infinite dicePulse}@keyframes dicePulse{0%,to{box-shadow:0 calc(var(--die,54px) * .111) 0 var(--dc-dark), 0 calc(var(--die,54px) * .222) calc(var(--die,54px) * .48) -10px var(--dc);transform:translateY(0)}50%{transform:translateY(calc(var(--die,54px) * -.074));box-shadow:0 calc(var(--die,54px) * .185) 0 var(--dc-dark), 0 calc(var(--die,54px) * .333) calc(var(--die,54px) * .555) -10px var(--dc)}}.dice:not(:disabled):active{transform:translateY(calc(var(--die,54px) * .074)) scale(.97);box-shadow:0 calc(var(--die,54px) * .037) 0 var(--dc-dark);animation:none}.dice.rolling .dice-cube{animation:tumble var(--roll,.42s) cubic-bezier(.3, 0, .4, 1)}@keyframes tumble{0%{transform:translateY(0)rotate(0)scale(1)}30%{transform:translateY(-14%)rotate(-160deg)scale(.84)}62%{transform:translateY(-5%)rotate(150deg)scale(1.14)}to{transform:translateY(0)rotate(360deg)scale(1)}}.dice.six .dice-cube{animation:.7s ease-out sixFlash}@keyframes sixFlash{0%{box-shadow:inset 0 -3px 5px #0000002e, 0 0 calc(var(--die,64px) * .14) calc(var(--die,64px) * .02) #f7c948;transform:scale(1.2)}40%{box-shadow:inset 0 -3px 5px #0000002e, 0 0 calc(var(--die,64px) * .2) calc(var(--die,64px) * .1) #f7c948f2;transform:scale(1)}to{box-shadow:inset 0 -3px 5px #0000002e, 0 0 calc(var(--die,64px) * .2) calc(var(--die,64px) * .3) #f7c94800;transform:scale(1)}}.dice-again{top:calc(var(--die,64px) * -.07);right:calc(var(--die,64px) * -.07);width:calc(var(--die,64px) * .3);height:calc(var(--die,64px) * .3);font-size:calc(var(--die,64px) * .2);color:#3a2606;background:linear-gradient(#f9d976,#e0a51c);border-radius:50%;place-items:center;font-weight:800;line-height:1;animation:.45s cubic-bezier(.2,1.6,.4,1) againPop;display:grid;position:absolute;box-shadow:0 2px 7px -1px #000000a6,inset 0 1px #ffffff80}@keyframes againPop{0%{opacity:0;transform:scale(.3)rotate(-120deg)}}.board{aspect-ratio:1;width:100%;max-width:100%;max-height:100%;width:var(--fit);height:var(--fit);box-shadow:0 0 0 3px var(--turn,#2c3450), 0 0 0 5px #ffffff0f, 0 0 30px -8px var(--turn,transparent), 0 26px 50px -22px #000000f2;touch-action:manipulation;background:#1a1f2e;border-radius:5%;padding:0;transition:box-shadow .5s;position:relative}.board-svg{width:100%;height:100%;display:block}.token,.ghost{width:11%;height:11%;transition:transform var(--step) linear;will-change:transform;place-items:center;display:grid;position:absolute;top:0;left:0}.token:not(.movable){pointer-events:none}.token-inner{filter:drop-shadow(0 2px 2.5px #00000073);width:70%;height:84%;transition:transform .18s,filter .2s;display:block;position:relative}.pawn-svg{width:100%;height:100%;display:block;overflow:visible}.token.moving{transition:transform var(--step) linear}.token.moving .token-inner{animation:hop var(--step) linear infinite;filter:drop-shadow(0 7px 6px #00000080)}@keyframes hop{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-30%)scale(1.1)}}.token.movable{cursor:pointer}.token.movable .token-inner{filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 9px var(--turn-color)) drop-shadow(0 3px 4px #00000080);animation:.85s ease-in-out infinite readyBob}@keyframes readyBob{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-14%)scale(1.08)}}.token.movable:active .token-inner{transform:scale(1.22)}.token.captured{z-index:70;transition:transform .55s cubic-bezier(.5,-.3,.4,1.3)}.token.captured .token-inner{animation:.55s ease-out spinBack}@keyframes spinBack{0%{transform:scale(1.35)rotate(0)}to{transform:scale(1)rotate(720deg)}}.token.done{transition:transform .45s cubic-bezier(.2,1.4,.5,1)}.ghost{cursor:pointer;z-index:15;animation:.2s ease-out ghostIn}@keyframes ghostIn{0%{opacity:0}}.ghost-ring{background:#ffffff1a;border:2.5px dashed #fff9;border-radius:50%;animation:1.1s ease-in-out infinite ringPulse;position:absolute;inset:20%;box-shadow:0 0 12px #00000059}.ghost.capture .ghost-ring{background:#ff3c286b;border-style:solid;border-color:#fff;box-shadow:0 0 0 2px #ff3c288c,0 0 14px #ff3c28b3}@keyframes ringPulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.6;transform:scale(1.16)}}.ghost-pawn{width:46%;height:56%;position:relative}.ghost-pawn .pawn-svg{opacity:.35}.ghost-hit{color:#fff;text-shadow:0 1px 3px #000;font-size:11px;line-height:1;position:absolute;top:-2%;right:-2%}.ghost:active .ghost-ring{transform:scale(.88)}.home-crown{z-index:40;pointer-events:none;place-items:center;animation:.5s cubic-bezier(.2,1.5,.4,1) crownIn;display:grid;position:absolute;top:0;left:0}.home-crown .crown{filter:drop-shadow(0 2px 3px #0000008c);width:92%;height:92%}.crown{display:block;overflow:visible}.crown-metal{stroke:var(--rim);stroke-width:1.6px;stroke-linejoin:round}.crown-jewels circle{fill:#fff8dc;stroke:var(--rim);stroke-width:1.3px}.crown text{fill:var(--rim);stroke:#fffc;stroke-width:1.7px;stroke-linejoin:round;paint-order:stroke fill;font-family:inherit;font-size:9.5px;font-weight:900}@keyframes crownIn{0%{opacity:0}}.move-tag{aspect-ratio:1;z-index:2;pointer-events:none;width:52%;position:absolute;top:33.9%;left:50%;transform:translate(-50%,-50%)}.move-tag text{fill:#fff;stroke:var(--tc);stroke-width:2.6px;stroke-linejoin:round;paint-order:stroke fill;font-family:inherit;font-size:17px;font-weight:800}.hint-card{top:calc(env(safe-area-inset-top) + 8px);z-index:60;border:1px solid var(--line);white-space:nowrap;max-width:250px;height:36px;color:var(--text);pointer-events:none;background:#181d2bf5;border-radius:999px;place-items:center;padding:0 14px;font-size:11.5px;animation:3.6s forwards hintPop;display:grid;position:absolute;left:50%;box-shadow:0 12px 26px -14px #000000f2}@keyframes hintPop{0%{opacity:0;transform:translate(-50%,-8px)}8%,86%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}.controls{flex-direction:column;flex:none;gap:8px;padding:8px 0 12px;display:flex}.win-line{text-align:center;margin:0;font-size:19px;font-weight:800}.trophy{font-size:22px}.end-actions{gap:10px;display:flex}.primary,.ghost-btn{border-radius:14px;flex:1;padding:14px 18px;font-size:15px;font-weight:700;transition:transform .12s}.primary{color:#fff;background:linear-gradient(#4d84ff,#2f5ad8);box-shadow:0 5px #23409e}.ghost-btn{background:var(--bg-3);border:1px solid var(--line);color:var(--muted);box-shadow:0 5px #10141f}.primary:active,.ghost-btn:active{box-shadow:none;transform:translateY(4px)}.endgame{z-index:90;padding:calc(env(safe-area-inset-top) + 12px) 14px calc(env(safe-area-inset-bottom) + 12px);-webkit-backdrop-filter:blur(1.2px);backdrop-filter:blur(1.2px);background:#080a108c;place-items:center;animation:.3s ease-out endIn;display:grid;position:absolute;inset:0;overflow-y:auto}@keyframes endIn{0%{opacity:0}}.endgame-card{background:linear-gradient(165deg,#253052,#161c2e 65%);border:1.5px solid #f7c94880;border-radius:20px;flex-direction:column;gap:14px;width:100%;max-width:360px;padding:18px 16px 16px;animation:.42s cubic-bezier(.2,1.3,.4,1) endPop;display:flex;box-shadow:inset 0 1px #ffffff1a,0 30px 60px -28px #000,0 0 60px -18px #f7c9484d}@keyframes endPop{0%{transform:translateY(14px)scale(.94)}}.endgame-title{text-align:center;color:#f9d976;text-shadow:0 1px #00000080;background:linear-gradient(#2b3556,#1a2138);border:1.5px solid #f7c948b3;border-radius:13px;margin:0;padding:9px 16px;font-size:21px;font-weight:900;animation:.55s cubic-bezier(.2,1.5,.4,1) 80ms backwards titlePop;box-shadow:inset 0 1px #ffffff1f,0 10px 26px -16px #f7c948}@keyframes titlePop{0%{opacity:0;transform:scale(.86)}}.endgame-sub{text-align:center;color:var(--muted);margin:-5px 0 0;font-size:13px}.endgame-sub b{color:var(--text)}.places{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.place-row{border:1px solid var(--line);background:#0000003d;border-radius:12px;align-items:center;gap:9px;padding:8px 11px;font-size:13.5px;animation:.34s ease-out backwards placeIn;display:flex}.place-row:first-child{animation-delay:.2s}.place-row:nth-child(2){animation-delay:.32s}.place-row:nth-child(3){animation-delay:.44s}.place-row:nth-child(4){animation-delay:.56s}@keyframes placeIn{0%{opacity:0;transform:translateY(-8px)}}.place-row.gold{background:linear-gradient(100deg,#f7c9482e,#0000003d 62%);border-color:#f7c948}.place-medal{place-items:center;width:27px;display:grid}.place-medal .crown{filter:drop-shadow(0 1.5px 2px #00000080);width:27px;height:25px}.place-plain{color:var(--muted);font-size:11px;font-weight:800}.place-pawn{flex:none;width:18px;height:21px;display:block}.place-row em{letter-spacing:.06em;color:var(--muted);background:#ffffff1f;border-radius:4px;padding:1.5px 4px;font-size:8.5px;font-style:normal;font-weight:800}.place-note{color:var(--muted);margin-left:auto;font-size:11px}.place-row.gold .place-note{color:#f7c948}.endgame .end-actions{gap:9px;display:flex}.endgame .primary{color:#3a2606;background:linear-gradient(#f9d976,#e0a51c);box-shadow:0 5px #a3720b,0 12px 26px -14px #f7c948}.endgame .ghost-btn{border-color:#f7c94859;box-shadow:0 5px #0f1524}.confetti{pointer-events:none;z-index:95;width:100%;height:100%;position:fixed;inset:0}.setup{flex-direction:column;justify-content:center;gap:14px;min-height:100%;padding:18px 4px;display:flex;overflow-y:auto}.setup-head{text-align:center}.logo{justify-content:center;gap:7px;display:flex}.logo span{color:#fff;background:var(--lc);text-shadow:0 2px 3px #00000059;width:46px;height:46px;box-shadow:inset 0 -3px 0 #00000038, 0 0 26px -4px var(--lc);border-radius:14px;place-items:center;font-size:24px;font-weight:900;display:grid}.logo span:first-child{transform:rotate(-6deg)}.logo span:nth-child(2){transform:rotate(3deg)}.logo span:nth-child(3){transform:rotate(-3deg)}.logo span:nth-child(4){transform:rotate(6deg)}.tagline{color:var(--muted);margin:12px 0 0;font-size:12.5px}.setup-card{background:linear-gradient(165deg, var(--bg-3), var(--bg-2));border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:14px;padding:14px;display:flex}.counts{justify-content:center;gap:10px;display:flex}.count{aspect-ratio:1;filter:saturate(.25)brightness(.72);background:#ffffff0d;border:1.5px solid #0000;border-radius:50%;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;max-width:96px;transition:filter .18s,background .18s,border-color .18s,transform .12s;display:flex}.count.on{border-color:var(--pick);filter:none;box-shadow:0 0 22px -6px var(--pick);background:#ffffff14}.count:active{transform:scale(.94)}.count-pawns{justify-content:center;margin-left:5px;display:flex}.count-pawn{width:17px;height:20px;margin-left:-5px;display:block}.count b{color:var(--text);font-size:13px;font-weight:800}.field{flex-direction:column;gap:7px;display:flex}.field-label{color:var(--muted);justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;font-weight:600;display:flex}.field-label em{color:#6f7a94;font-size:11px;font-style:normal}.segment{border:1px solid var(--line);background:#00000047;border-radius:13px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segment button{height:40px;color:var(--muted);border-radius:9px;font-size:14px;font-weight:700;transition:background .16s,color .16s,transform .12s}.segment button.on{background:var(--pick);color:#fff;box-shadow:0 3px 10px -4px var(--pick)}.segment button:active{transform:scale(.94)}.toggle{border:1px solid var(--line);text-align:left;background:#00000038;border-radius:13px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:border-color .18s;display:flex}.toggle.on{border-color:var(--pick)}.toggle-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.toggle-text b{font-size:13px;font-weight:700}.toggle-text small{color:var(--muted);font-size:11px}.toggle-track{border:1px solid var(--line);background:#ffffff1a;border-radius:999px;flex:none;align-items:center;width:46px;height:28px;padding:0 3px;transition:background .2s,border-color .2s;display:flex}.toggle.on .toggle-track{background:var(--pick);border-color:var(--pick)}.toggle-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s cubic-bezier(.3,1.4,.5,1);box-shadow:0 2px 4px #00000073}.toggle.on .toggle-knob{transform:translate(18px)}.setup-actions{flex-direction:column;gap:10px;display:flex}.big-btn{letter-spacing:.07em;text-transform:uppercase;color:var(--text);background:#ffffff08;border:1.5px solid #ffffff24;border-radius:15px;padding:17px 18px;font-size:15px;font-weight:800;transition:transform .12s,box-shadow .2s,border-color .2s}.big-btn.primary{border-color:var(--pick);box-shadow:0 0 22px -6px var(--pick), inset 0 0 26px -18px var(--pick)}.big-btn:active{transform:scale(.985)}.install-card{background:linear-gradient(150deg,#1d2942,#161c2b);border:1px solid #35507f;border-radius:16px;align-items:flex-start;gap:11px;padding:13px 14px;display:flex;box-shadow:0 10px 26px -14px #2f78e0}.install-icon{flex:none;font-size:21px;line-height:1.2}.install-body{min-width:0;color:var(--muted);flex-direction:column;flex:1;gap:3px;font-size:12px;display:flex}.install-body b{color:var(--text);font-size:13.5px}.ios-steps{margin:9px 0 2px;padding-left:17px;font-size:12px;line-height:1.75}.ios-steps b{font-size:12px}.share-icon{vertical-align:-2px;color:#6ea6ff;width:13px;height:13px;margin:0 1px}.install-actions{flex:none;align-items:center;gap:6px;display:flex}.install-btn{color:#fff;background:linear-gradient(#4d84ff,#2f5ad8);border-radius:10px;padding:9px 15px;font-size:13px;font-weight:700;transition:transform .12s;box-shadow:0 3px #23409e}.install-btn:active{box-shadow:none;transform:translateY(3px)}.install-btn:disabled{opacity:.6}.install-close{width:26px;height:26px;color:var(--muted);background:#ffffff12;border-radius:8px;place-items:center;font-size:12px;display:grid}.install-close:active{transform:scale(.9)}@media (height<=700px){.topbar{padding:4px 0 2px}.arena{--die:66px}.setup{gap:10px;padding:12px 4px}.setup-card{gap:10px;padding:12px}.logo span{border-radius:11px;width:36px;height:36px;font-size:19px}.tagline{margin-top:8px}}@media (orientation:landscape) and (height<=560px){.app{flex-direction:row;align-items:center;gap:12px;max-width:none;padding:6px 12px}.topbar{flex-direction:column;width:40px}.brand{display:none}.topbar-right{flex-direction:column}.arena{--col-w:128px;flex-direction:row;align-items:stretch;height:100%}.seat-row{width:var(--col-w);grid-template-columns:1fr;align-content:center;gap:14px;height:auto}.seat,.seat.right{justify-self:center}.board-area{--fit:min(100cqh, max(0px, 100cqw - (2 * var(--col-w))));max-height:none;max-width:calc(var(--fit) + (2 * var(--gap)))}.controls{width:150px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
