:root{--amber: #f8b354;--amber-deep: #d98a2b;--terracotta: #b95a45;--plum: #55445f;--cream: #f2d9b4;--cream-light: #fbf0dc;--ink: #3b2c2b;--carrot: #f28c32;--leaf: #74844c;--good: #3f8a4f;--warn: #b9700f;--bad: #b23a2d;--wood-hi: #b98652;--wood: #8f6339;--wood-lo: #6b452b;--wood-dark: #4a2f22;--shadow-soft: 0 4px 10px rgba(40, 20, 20, .35);--font: ui-rounded, "SF Pro Rounded", "Nunito", system-ui, sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px)}#ui{font-family:var(--font);color:var(--ink)}.ic{display:block;flex:none;overflow:visible}.ic-wrap{display:inline-flex;flex:none;align-items:center;justify-content:center}.ic-wrap img{display:block;object-fit:contain;pointer-events:none}.ic-dot{display:block;border-radius:50%;border:2px solid var(--ink);box-sizing:border-box}.ps-ov{position:absolute;inset:0;z-index:3;display:none;align-items:center;justify-content:center;box-sizing:border-box;padding:calc(10px + var(--safe-t)) calc(10px + var(--safe-r)) calc(10px + var(--safe-b)) calc(10px + var(--safe-l));background:radial-gradient(ellipse at center,#3c233c80,#1e1222cc);pointer-events:auto;touch-action:none}.ps-card{box-sizing:border-box;width:min(100%,420px);max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:14px 16px 16px;display:flex;flex-direction:column;gap:clamp(6px,1.4vh,10px);text-align:center;font-size:17px;line-height:1.25;color:var(--ink);background:linear-gradient(180deg,var(--cream-light),var(--cream));border:3px solid var(--ink);border-radius:20px;box-shadow:inset 0 0 0 3px #ffffff59,0 5px #3b2c2b73,0 14px 28px #0006;animation:ps-card-in .22s ease-out}.ps-title{align-self:center;max-width:100%;box-sizing:border-box;padding:6px 20px 8px;margin-top:-2px;font-size:22px;font-weight:800;letter-spacing:.01em;color:var(--cream-light);text-shadow:0 2px 0 var(--wood-dark);background:linear-gradient(180deg,var(--wood-hi),var(--wood) 55%,var(--wood-lo));border:3px solid var(--ink);border-radius:14px;box-shadow:inset 0 2px #ffffff40,0 3px #3b2c2b66}.ps-title.small{font-size:18px}.ps-text{font-size:16px}.ps-sub{font-size:14px;color:#6d5a4a}.ps-head{margin-top:4px;text-align:left;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7a5a3e}.ps-goalline{display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 10px;font-size:18px;font-weight:800;background:#ffffff8c;border:2px dashed rgba(59,44,43,.35);border-radius:12px}.ps-row{display:flex;align-items:center;gap:10px;text-align:left;padding:6px 10px;background:#fff9;border:2px solid rgba(59,44,43,.3);border-radius:12px}.ps-row .ps-row-main{flex:1;min-width:0;font-size:15px}.ps-row .ps-row-name{font-weight:800}.ps-row .ps-row-rule{font-size:13px;color:#6d5a4a}.ps-row .ps-row-status{flex:none;font-size:13px;font-weight:800}.ps-row.earned{background:#fff3cf;border-color:var(--amber-deep)}.ps-row img.medal{flex:none}.ps-row img.medal.off{opacity:.55;filter:grayscale(1)}.ps-pair{display:flex;gap:10px}.ps-pair>.ps-btn{flex:1;padding:0 8px}.ps-stars{display:flex;justify-content:center;gap:6px}.ps-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;min-width:48px;padding:0 18px;font:inherit;font-size:19px;font-weight:800;color:var(--ink);background:linear-gradient(180deg,#ffd58a,var(--amber) 60%,var(--amber-deep));border:3px solid var(--ink);border-radius:16px;box-shadow:inset 0 2px #ffffff8c,0 4px 0 var(--ink);cursor:pointer;touch-action:manipulation;transition:transform .08s ease-out,box-shadow .08s ease-out}.ps-btn:active{transform:translateY(3px) scale(.97);box-shadow:inset 0 2px #fff6,0 1px 0 var(--ink)}.ps-btn.big{min-height:60px;font-size:23px}.ps-btn.ghost{min-height:48px;font-size:17px;background:var(--cream-light);box-shadow:0 3px #3b2c2b99}.ps-btn.ghost:active{box-shadow:0 1px #3b2c2b99}.ps-btn:disabled{color:#7d6e66;background:#cdbfae;box-shadow:0 3px #3b2c2b66;cursor:default;transform:none}.ps-link{align-self:center;min-height:48px;padding:0 12px;font:inherit;font-size:14px;color:#7a5a3e;text-decoration:underline;background:none;border:none;cursor:pointer;touch-action:manipulation}.ps-danger{font-size:15px;font-weight:800;color:var(--bad)}.ps-opt{box-sizing:border-box;display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 12px;font:inherit;text-align:left;color:var(--ink);background:#fffaf0;border:3px solid var(--ink);border-radius:16px;box-shadow:0 4px #3b2c2b8c;cursor:pointer;touch-action:manipulation;transition:transform .08s ease-out}.ps-opt:active{transform:translateY(3px) scale(.98);box-shadow:0 1px #3b2c2b8c}.ps-opt .ps-opt-icon{flex:none;display:flex;align-items:center;justify-content:center;width:46px;height:46px;background:var(--cream);border:2px solid var(--ink);border-radius:50%}.ps-opt .ps-opt-main{flex:1;min-width:0}.ps-opt .ps-opt-name{font-size:19px;font-weight:800}.ps-opt .ps-opt-desc{font-size:15px}.ps-opt .ps-opt-meta{margin-top:2px;font-size:13px;font-weight:800}.ps-price{flex:none;display:inline-flex;align-items:center;gap:4px;padding:3px 10px 3px 5px;font-size:18px;font-weight:800;color:var(--cream-light);background:var(--wood-dark);border:2px solid var(--ink);border-radius:999px}.ps-price.poor{color:#ffb7a8}.ps-opt.poor{background:#f1e3cf}.ps-rarity{flex:none;padding:2px 8px;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;border:2px solid var(--ink);border-radius:999px}.ps-path{display:flex;flex-direction:column;gap:0}.ps-path-row{display:flex;align-items:flex-start}.ps-path-row.rev{flex-direction:row-reverse}.ps-node-col{flex:0 0 25%;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.ps-node{position:relative;box-sizing:border-box;width:56px;height:56px;padding:0;font:inherit;font-size:15px;font-weight:800;color:var(--cream-light);text-shadow:0 2px 0 var(--wood-dark);background:radial-gradient(circle at 35% 30%,var(--wood-hi),var(--wood) 60%,var(--wood-lo));border:3px solid var(--ink);border-radius:50%;box-shadow:inset 0 2px #ffffff4d,0 4px 0 var(--ink);cursor:pointer;touch-action:manipulation;transition:transform .08s ease-out}.ps-node:active{transform:translateY(3px) scale(.95)}.ps-node.here{background:radial-gradient(circle at 35% 30%,#ffd58a,var(--amber) 60%,var(--amber-deep));color:var(--ink);text-shadow:none;box-shadow:0 0 0 4px #f28c328c,0 4px 0 var(--ink)}.ps-node.done{background:radial-gradient(circle at 35% 30%,#9ebd6c,var(--leaf) 60%,#55652f)}.ps-node.locked{opacity:.55;filter:saturate(.5);cursor:default}.ps-node .ps-node-lock{position:absolute;right:-6px;bottom:-6px}.ps-node-name{width:100%;font-size:11px;line-height:1.15;font-weight:700;text-align:center;color:#5b4636;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ps-node-medals{display:flex;gap:1px}.ps-node-col{position:relative}.ps-node-col+.ps-node-col:before{content:"";position:absolute;top:26px;left:-50%;width:100%;border-top:5px dotted rgba(122,90,62,.55)}.ps-path-row.rev .ps-node-col+.ps-node-col:before{left:auto;right:-50%}.ps-node{z-index:1}.ps-link-v{height:14px;display:flex}.ps-link-v span{width:25%;display:flex;justify-content:center}.ps-link-v span:before{content:"";height:100%;border-left:5px dotted rgba(122,90,62,.55)}.ps-sticky{position:sticky;bottom:0;margin:0 -16px -16px;padding:8px 16px 14px;background:linear-gradient(180deg,rgba(242,217,180,0),var(--cream) 30%);display:flex;flex-direction:column;gap:8px}.ps-hud{position:absolute;inset:0;z-index:2;pointer-events:none;color:var(--cream-light);font-weight:800}.ps-pill{display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;min-height:34px;padding:2px 12px 2px 6px;white-space:nowrap;color:var(--cream-light);text-shadow:0 1px 0 var(--ink);background:linear-gradient(180deg,#6e4d3b,var(--wood-dark));border:2px solid var(--ink);border-radius:999px;box-shadow:inset 0 1px #fff3,var(--shadow-soft)}.ps-pill .ps-pill-val{font-size:20px;font-variant-numeric:tabular-nums}.ps-pill .ps-pill-small{font-size:13px;opacity:.85;font-weight:700}.ps-pill.pop{animation:ps-pop .22s ease-out}.ps-pill.late .ps-pill-val{color:#ff9f8e}.ps-pips{display:flex;gap:2px;align-items:center}.ps-pips i{display:block;width:6px;height:14px;border-radius:3px;background:#f2d9b447}.ps-pips i.on{background:var(--amber);box-shadow:0 0 0 1px var(--ink)}.ps-pausebtn{pointer-events:auto;box-sizing:border-box;width:48px;height:48px;padding:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,var(--wood-hi),var(--wood) 60%,var(--wood-lo));border:3px solid var(--ink);border-radius:50%;box-shadow:inset 0 2px #ffffff4d,0 3px 0 var(--ink),var(--shadow-soft);cursor:pointer;touch-action:manipulation;transition:transform .08s ease-out}.ps-pausebtn:active{transform:translateY(2px) scale(.94)}.ps-banner{box-sizing:border-box;display:flex;flex-direction:column;gap:4px;padding:5px 12px 7px;background:linear-gradient(180deg,var(--wood-hi),var(--wood) 55%,var(--wood-lo));border:3px solid var(--ink);border-radius:14px;box-shadow:inset 0 2px #ffffff40,0 3px #3b2c2b99,var(--shadow-soft)}.ps-banner-top{display:flex;align-items:center;justify-content:center;gap:8px;font-size:17px;text-shadow:0 2px 0 var(--wood-dark)}.ps-bar{height:12px;box-sizing:border-box;overflow:hidden;background:var(--wood-dark);border:2px solid var(--ink);border-radius:6px}.ps-bar>div{height:100%;width:0;background:linear-gradient(180deg,#a9d36a,#5f9a3c);transition:width .2s ease-out}.ps-bar.setup>div{background:linear-gradient(180deg,#8fd0e0,#4a8fa3)}.ps-bar.rival>div{background:linear-gradient(180deg,#f09a86,var(--terracotta))}.ps-chip{padding:1px 8px;font-size:12px;color:var(--cream-light);background:#4a2f22e6;border:1px solid var(--ink);border-radius:999px}.ps-order{display:flex;align-items:center;gap:4px;padding:1px 8px 1px 4px;font-size:13px;white-space:nowrap;background:#4a2f22eb;border:1px solid var(--ink);border-radius:999px}.ps-rush{position:absolute;display:none;align-items:center;gap:4px;padding:1px 10px 1px 5px;font-size:16px;background:linear-gradient(180deg,#f6a25a,var(--carrot) 60%,#d8701c);color:var(--cream-light);text-shadow:0 1px 0 var(--ink);border:2px solid var(--ink);border-radius:999px;box-shadow:var(--shadow-soft)}.ps-doors{position:absolute;top:42%;left:50%;transform:translate(-50%);display:none;padding:6px 22px 8px;font-size:28px;white-space:nowrap;text-shadow:0 2px 0 var(--wood-dark);background:linear-gradient(180deg,#8ab45c,var(--leaf));border:3px solid var(--ink);border-radius:16px;box-shadow:0 4px 0 var(--ink),var(--shadow-soft);animation:ps-card-in .3s ease-out}.ps-bub{position:absolute;left:0;top:0;z-index:1;display:none;will-change:transform;pointer-events:none}.ps-bub-in{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:4px;min-width:26px;height:28px;padding:0 8px 0 5px;font-size:14px;font-weight:800;white-space:nowrap;color:var(--ink);background:linear-gradient(180deg,#fbefd6,var(--cream));border:2px solid var(--ink);border-radius:9px;box-shadow:0 2px #3b2c2b8c;overflow:hidden}.ps-bub-in .ps-bub-name{overflow:hidden;text-overflow:ellipsis}.ps-bub-in .ps-bub-price{display:inline-flex;align-items:center;gap:2px;padding:0 5px 0 2px;margin-left:2px;color:var(--cream-light);background:var(--wood-dark);border-radius:999px}.ps-bub-in .ps-bub-fill{position:absolute;left:0;bottom:0;height:4px;background:#5f9a3c}.ps-bub.sign.poor .ps-bub-in{background:linear-gradient(180deg,#e8d5bb,#d3bea3)}.ps-bub.speech .ps-bub-in{height:32px;padding:0 10px 0 6px;font-size:17px;background:#fffaf0;border-radius:16px;overflow:visible}.ps-bub.speech .ps-bub-in:after{content:"";position:absolute;left:50%;bottom:-9px;width:10px;height:10px;margin-left:-5px;background:#fffaf0;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg) skew(10deg,10deg);border-bottom-right-radius:3px}.ps-bub.count .ps-bub-in{min-width:0;height:20px;padding:0 6px 0 3px;gap:2px;font-size:12px;border-width:1.5px;border-radius:7px;box-shadow:0 1px #3b2c2b8c}.ps-bub.count.poor .ps-bub-in{background:linear-gradient(180deg,#f3c9a8,#e3a37c)}.ps-bub.coin .ps-bub-in{height:28px;padding:0 9px 0 5px;font-size:17px;background:linear-gradient(180deg,#ffe0a0,var(--amber));border-radius:999px}.ps-bub.oops .ps-bub-in{height:30px;padding:0 12px;font-size:17px;color:var(--cream-light);text-shadow:0 1px 0 var(--ink);background:linear-gradient(180deg,#d97a63,var(--terracotta));border-radius:15px;overflow:visible}.ps-bub.oops .ps-bub-in:after{content:"";position:absolute;left:50%;bottom:-8px;width:9px;height:9px;margin-left:-4.5px;background:var(--terracotta);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg)}.ps-toast{position:absolute;left:50%;z-index:2;display:none;box-sizing:border-box;width:max-content;max-width:min(92vw,420px);padding:8px 16px;text-align:center;font-size:16px;font-weight:800;line-height:1.25;color:var(--ink);background:linear-gradient(180deg,var(--cream-light),var(--cream));border:3px solid var(--ink);border-radius:16px;box-shadow:0 4px #3b2c2b80,var(--shadow-soft);pointer-events:auto;touch-action:manipulation;opacity:0;transform:translate(-50%,-14px);transition:opacity .3s ease-out,transform .3s ease-out}.ps-toast.in{opacity:1;transform:translate(-50%)}@keyframes ps-pop{0%{transform:scale(1)}45%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes ps-card-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.ps-btn,.ps-opt,.ps-node,.ps-pausebtn,.ps-card,.ps-doors,.ps-pill,.ps-toast,.ps-bar>div{animation:none!important;transition:none!important}.ps-btn:active,.ps-opt:active,.ps-node:active,.ps-pausebtn:active{transform:none}}
