@keyframes pch-hop{0%{transform:translateY(0)}30%{transform:translateY(-26px)rotate(-8deg)}60%{transform:translateY(0)}78%{transform:translateY(-8px)}to{transform:translateY(0)}}@keyframes pch-pulse{50%{transform:scale(1.05)}}@keyframes pch-in{0%{opacity:0;transform:translate(-8px)}}@keyframes pch-pop{0%{opacity:0;transform:translateY(24px)scale(.92)}}@keyframes pch-bob{50%{transform:translateY(-10px)rotate(5deg)}}.g-parchis-real{--y:#ffc400;--b:#2f9bff;--r:#ff4f6a;--g:#2ed47a;--ink:#2a2c6b;--mute:#6b6fb0;--line:#2a2c6b;height:100%;color:var(--ink);background:#5f8bff;font-family:Nunito,"Baloo 2",Fredoka,Trebuchet MS,system-ui,sans-serif;font-weight:800;position:relative;overflow:hidden;&,& *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}& canvas{display:block}& #bg,& #fx{pointer-events:none;width:100%;height:100%;position:fixed;inset:0}& #bg{z-index:0}& #fx{z-index:30}& .app{z-index:1;grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:26px;max-width:1500px;height:100%;margin:0 auto;padding:18px 24px;display:grid;position:relative}& .stage{place-items:center;min-width:0;height:100%;min-height:0;display:grid}& #boardWrap{aspect-ratio:1;filter:drop-shadow(0 18px #19146440);width:min(100%,100vh - 36px);position:relative}& #board{touch-action:manipulation;width:100%;height:100%}& .panel{flex-direction:column;gap:14px;min-height:0;max-height:100%;display:flex}& .brand{align-items:center;gap:12px;display:flex}& .brand h1{letter-spacing:.02em;color:#fff;-webkit-text-stroke:7px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink);margin:0;font-size:46px;font-weight:900;line-height:1;transform:rotate(-2deg)}& .brand small{color:#fff;letter-spacing:.28em;text-transform:uppercase;opacity:.9;margin-top:8px;font-size:12px;display:block}& .tools{gap:8px;margin-left:auto;display:flex}& .ico{border:4px solid var(--ink);width:46px;height:46px;color:var(--ink);cursor:pointer;box-shadow:0 5px 0 var(--ink);background:#fff;border-radius:50%;font-size:18px;transition:all .1s}& .ico:active{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}& .card{border:4px solid var(--ink);box-shadow:0 7px 0 var(--ink);background:#fff;border-radius:22px;padding:14px}& .banner{color:#fff;background:var(--c,#888);text-shadow:0 2px #00000040;align-items:center;gap:12px;min-height:66px;font-size:20px;font-weight:900;transition:background .3s;display:flex}& .banner .dot{border:4px solid var(--ink);width:38px;height:38px;box-shadow:inset 0 0 0 5px var(--c),0 3px 0 #00000040;background:#fff;border-radius:50%;flex:none}& .banner em{opacity:.92;margin-top:2px;font-size:13px;font-style:normal;font-weight:700;display:block}& .dicebox{background:#fff7d6;align-items:center;gap:18px;display:flex}& .scene{perspective:420px;flex:none;place-items:center;width:96px;height:96px;display:grid}& #cube{width:64px;height:64px;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.2,.8,.25,1);position:relative}& .face{border:3px solid var(--ink);backface-visibility:hidden;background:linear-gradient(145deg,#fff,#d9d4f0);border-radius:12px;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:9px;display:grid;position:absolute;inset:0;box-shadow:inset -4px -6px 10px #503ca02e}& .pip{visibility:hidden;background:radial-gradient(circle at 35% 30%,#5a4aa8,#1b1450);border-radius:50%;margin:14%}& .pip.on{visibility:visible}& .face.f1{transform:translateZ(32px)}& .face.f6{transform:rotateY(180deg)translateZ(32px)}& .face.f2{transform:rotateY(90deg)translateZ(32px)}& .face.f5{transform:rotateY(-90deg)translateZ(32px)}& .face.f3{transform:rotateX(90deg)translateZ(32px)}& .face.f4{transform:rotateX(-90deg)translateZ(32px)}& .scene.hop{animation:.9s cubic-bezier(.3,.7,.4,1) pch-hop}& .rollcol{flex-direction:column;flex:1;gap:8px;display:flex}& #rollBtn{border:4px solid var(--ink);font:inherit;color:#fff;cursor:pointer;text-shadow:0 2px #0000004d;box-shadow:0 6px 0 var(--ink);background:linear-gradient(#52e690,#1fc566);border-radius:18px;padding:14px 12px;font-size:20px;font-weight:900;transition:all .1s}& #rollBtn:disabled{color:#fff;box-shadow:0 2px 0 var(--ink);cursor:default;text-shadow:none;background:#c9ccee;transform:translateY(4px)}& #rollBtn:not(:disabled){animation:1s infinite pch-pulse}& #rollBtn:not(:disabled):active{box-shadow:0 1px 0 var(--ink);transform:translateY(5px)}& .hint{color:var(--mute);font-size:12px;font-weight:700;line-height:1.35}& .players{gap:8px;display:grid}& .pl{background:#f4f6ff;border:3px solid #dfe3fb;border-radius:999px;align-items:center;gap:10px;padding:8px 12px;transition:all .2s;display:flex}& .pl.active{border-color:var(--ink);background:var(--c);color:#fff;box-shadow:0 4px 0 var(--ink);text-shadow:0 2px #00000040;transform:translateY(-2px)}& .pl .dot{background:var(--c);border:3px solid var(--ink);border-radius:50%;width:24px;height:24px;box-shadow:inset 0 3px #ffffff80}& .pl.active .dot{background:#fff}& .pl b{font-size:15px;font-weight:900}& .pl .tag{opacity:.7;letter-spacing:.1em;margin-left:2px;font-size:10px}& .pips{gap:5px;margin-left:auto;display:flex}& .pips i{background:#fff;border:3px solid #2a2c6b59;border-radius:50%;width:14px;height:14px;transition:all .3s}& .pl.active .pips i{background:0 0;border-color:#fff}& .pips i.in{background:var(--ink)!important;border-color:var(--ink)!important}& .pips i.out{background:#2a2c6b59}& .pl.active .pips i.in{background:#fff!important}& .log{color:var(--mute);align-content:start;gap:5px;min-height:94px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}& .log li{padding-left:16px;font-weight:700;animation:.3s pch-in;position:relative}& .log li:before{content:"";background:var(--c,#888);border:2px solid var(--ink);border-radius:50%;width:9px;height:9px;position:absolute;top:.35em;left:0}& .log li:first-child{color:var(--ink);font-weight:900}& .overlay{z-index:40;backdrop-filter:blur(6px);background:#281e8c8c;place-items:center;padding:20px;transition:opacity .4s;display:grid;position:fixed;inset:0}& .overlay.hide{opacity:0;pointer-events:none}& .modal{text-align:center;border:5px solid var(--ink);width:min(560px,100%);box-shadow:0 12px 0 var(--ink);background:#fff;border-radius:30px;padding:28px;animation:.5s cubic-bezier(.2,1.4,.4,1) pch-pop}& .modal h2{color:#fff;-webkit-text-stroke:9px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);margin:0;font-size:clamp(44px,9vw,76px);font-weight:900;line-height:1;transform:rotate(-2deg)}& .modal p{color:var(--mute);margin:16px 0 18px;font-weight:700}& .seats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}& .seat{border:4px solid var(--ink);background:var(--c);color:#fff;font:inherit;cursor:pointer;text-align:left;box-shadow:0 5px 0 var(--ink);text-shadow:0 2px #00000040;border-radius:20px;align-items:center;gap:10px;padding:12px;transition:all .1s;display:flex}& .seat:active{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}& .seat .dot{border:3px solid var(--ink);background:#fff;border-radius:50%;flex:none;width:30px;height:30px}& .seat b{font-size:16px;font-weight:900;display:block}& .seat span{opacity:.95;font-size:12px;font-weight:700}& .seat[data-h="0"]{filter:saturate(.55)brightness(.95)}& .cta{border:4px solid var(--ink);font:inherit;color:#fff;cursor:pointer;text-shadow:0 2px #0000004d;box-shadow:0 7px 0 var(--ink);background:linear-gradient(#52e690,#1fc566);border-radius:20px;padding:15px 40px;font-size:22px;font-weight:900;transition:all .1s}& .cta:hover{transform:translateY(-2px)}& .cta:active{box-shadow:0 1px 0 var(--ink);transform:translateY(6px)}& .link{color:var(--mute);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:16px;font-weight:800;text-decoration:underline}& .rules{text-align:left;color:var(--mute);max-height:200px;margin-top:12px;padding-right:6px;font-size:13px;font-weight:700;line-height:1.5;display:none;overflow:auto}& .rules.open{display:block}& .rules b{color:var(--ink)}& .rules li{margin:3px 0}& #win .trophy{font-size:84px;animation:1.4s ease-in-out infinite pch-bob}@media (width<=980px){&{overflow:auto}& .app{grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;height:auto;padding:12px}& .stage{height:auto}& #boardWrap{width:min(100%,100vh - 150px,680px)}& .panel{order:-1}& .brand h1{font-size:34px}& .players{grid-template-columns:repeat(2,minmax(0,1fr))}& .log{display:none}}@media (width<=480px){& .pl .tag{display:none}}@media (prefers-reduced-motion:reduce){& #rollBtn:not(:disabled),& .scene.hop{animation:none}}}
