html,body,#app{width:100%;height:100%;margin:0}body{background:#fff;overflow:hidden}canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block}#panel-host{z-index:6;pointer-events:none;width:50vw;height:100%;position:fixed;top:0;right:0}#panel-host>*{pointer-events:auto}@media (aspect-ratio<=1){#panel-host{width:100%;height:56%;top:auto;bottom:0}}#tip{z-index:5;pointer-events:none;color:#fff;background:#222;border-radius:6px;max-width:230px;padding:6px 9px;font:13px/1.4 system-ui,sans-serif;display:none;position:fixed}#tip b{display:block}#tip .locked{color:#9ef3ff}.pb-root{pointer-events:none;color:#2a2a2a;-webkit-font-smoothing:antialiased;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;position:absolute;inset:0;overflow:hidden}.pb-root *{box-sizing:border-box}.pb-layer{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.pb-frame{pointer-events:auto;position:absolute}.pb-building .pb-frame,.pb-building .pb-bp{cursor:pointer}.pb-frame.pb-final{left:0;right:0;top:var(--pb-top);bottom:var(--pb-ground);height:fit-content;width:min(var(--pb-max-w), calc(100% - 2 * var(--pb-edge)));max-height:calc(100% - var(--pb-top) - var(--pb-ground));flex-direction:column;margin:auto;display:flex}.pb-skin{transform-origin:50% 100%;background:#fff;border-radius:10px;position:absolute;inset:0;box-shadow:0 12px 34px #281e1424,0 1px 2px #0000000f}.pb-scroll{border-radius:10px}.pb-building .pb-scroll{position:absolute;inset:0}.pb-final .pb-scroll{overscroll-behavior:contain;flex:0 auto;min-height:0;position:relative;overflow-y:auto}.pb-stage{transform-origin:0 0;position:relative}.pb-floor{transform-origin:50% 0;background:#fff;padding:10px 24px 8px;position:relative}.pb-roof{border-top:5px solid var(--area);border-radius:10px 10px 0 0;padding:18px 48px 8px 24px}.pb-floor:last-child{border-bottom-right-radius:10px;border-bottom-left-radius:10px;padding-bottom:24px}.pb-slab{background:#cfc6b8;height:3px;position:absolute;bottom:0;left:0;right:0}.pb-area{letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--area);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.pb-item{color:#888;margin:10px 0 0;font-size:12.5px}.pb-title{color:#1f1f1f;margin:2px 0 8px;font-size:24px;font-weight:800;line-height:1.15}.pb-status{border-radius:10px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.pb-status.earned{color:#2f7a28;background:#e4f4e1}.pb-status.progress{color:#9a6a00;background:#fdf0d3}.pb-status.locked{color:#fff;background:#2b2622}.pb-lead{color:#555;margin:10px 0 0;font-style:italic}.pb-floor h3{letter-spacing:.07em;text-transform:uppercase;color:#8a8a8a;align-items:center;gap:7px;margin:6px 0 4px;font-size:12px;display:flex}.pb-floor h3:before{content:"";background:var(--area);border-radius:2px;width:8px;height:8px}.pb-sec{font-size:14.5px}.pb-sec p,.pb-sec ul{margin:0}.pb-sec ul{padding-left:18px}.pb-stat-group+.pb-stat-group{margin-top:12px}.pb-stat-group h4{color:#444;margin:0 0 6px;font-size:13px;font-weight:700}.pb-sec .stats{grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;display:grid}.pb-sec .stats div{text-align:center;background:#f4f4f6;border-radius:6px;padding:6px}.pb-sec .stats b{white-space:nowrap;font-size:18px;display:block}.pb-sec .stats span{color:#888;font-size:12px}.pb-sec .stats.peaks{grid-auto-flow:row}.pb-sec .stats.peaks div{justify-content:space-between;align-items:center;gap:12px;padding:6px 10px;display:flex}.pb-sec .stats.peaks b{align-items:center;gap:8px;height:26px;display:flex}.pb-sec .stats .pb-badge{box-sizing:border-box;color:#fff;text-align:right;background:50%/100% 100% no-repeat;min-width:112px;height:26px;padding:0 22px 0 24px;font-size:16px;font-style:italic;line-height:26px}.pb-sec .pb-credit{color:#888;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:6px 0 0;font-size:12px;display:flex}.pb-credit img{display:block}.pb-credit a{color:inherit;font-weight:600;text-decoration:underline}.pb-credit a.pb-leetify{color:#f84982;font-weight:700}.pb-close{color:#999;cursor:pointer;background:#ffffffe6;border:0;border-radius:50%;width:30px;height:30px;font:22px/1 system-ui,sans-serif;position:absolute;top:9px;right:9px}.pb-close:hover{color:#333}.pb-building .pb-close{pointer-events:none}.pb-glitch{animation:2.4s step-end infinite pb-glitch;display:inline-block}@keyframes pb-glitch{0%,84%,to{text-shadow:none;transform:none}86%{text-shadow:2px 0 #00d8ff,-2px 0 #ff3bd4;transform:translate(1px)}90%{text-shadow:-2px 0 #00d8ff,2px 0 #ff3bd4;transform:translate(-2px)skew(-8deg)}94%{text-shadow:1px 0 #00d8ff,-1px 0 #ff3bd4;transform:none}}.pb-locked .pb-skin{background:linear-gradient(90deg,#5a371440 0 2px,#0000 2px) 0 0/33.34% 100%,repeating-linear-gradient(93deg,#96642814 0 2px,#0000 2px 7px,#9664280d 7px 8px,#0000 8px 15px),linear-gradient(#e3c28c,#d3ab70);border-radius:4px;box-shadow:0 10px 26px #3c280a38,inset 0 0 0 1px #5a37144d}.pb-tape{background:repeating-linear-gradient(-45deg,#f6c500 0 9px,#26221e 9px 18px);height:12px;position:absolute;left:0;right:0;box-shadow:0 1px 2px #00000040}.pb-tape.t{border-radius:4px 4px 0 0;top:0}.pb-tape.b{border-radius:0 0 4px 4px;bottom:0}.pb-locked .pb-scroll{border-radius:4px}.pb-locked .pb-floor{color:#3a2915;background:0 0}.pb-locked .pb-roof{border-top:0;padding-top:26px}.pb-locked .pb-floor:last-child{padding-bottom:30px}.pb-locked .pb-floor h3,.pb-locked .pb-item{color:#6b4a22}.pb-locked .pb-lead{color:#4a3519}.pb-locked .pb-title{color:#2e2010}.pb-locked .pb-close{color:#555;background:#fff;top:18px;right:10px;box-shadow:0 1px 3px #0000004d}.pb-bp{pointer-events:auto;position:absolute}.pb-sheet{background-color:#1f4e8c;background-image:linear-gradient(#ffffff3d 1px,#0000 1px),linear-gradient(90deg,#ffffff3d 1px,#0000 1px),linear-gradient(#ffffff17 1px,#0000 1px),linear-gradient(90deg,#ffffff17 1px,#0000 1px);background-size:50px 50px,50px 50px,10px 10px,10px 10px;border-radius:3px;position:absolute;inset:0;box-shadow:0 6px 18px #14285040}.pb-sheet svg{position:absolute;top:0;left:0;overflow:visible}.pb-sheet path{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round}.pb-roll{background:linear-gradient(#6a92cc,#1d4a85 55%,#11305a);border-radius:6px;height:12px;position:absolute;top:-6px;left:-5px;right:-5px;box-shadow:0 3px 6px #00000040}.pb-found,.pb-pad{transform-origin:50% 100%;background:radial-gradient(circle at 30% 40%,#00000017 1px,#0000 1.6px) 0 0/9px 7px,radial-gradient(circle at 70% 70%,#ffffff4d 1px,#0000 1.6px) 0 0/11px 6px,linear-gradient(#cec6b9,#aca496);border-radius:2px 2px 4px 4px;height:14px;position:absolute;top:100%;box-shadow:0 3px #948c7f}.pb-found{left:-12px;right:-12px}.pb-pad{width:28px;margin-left:-14px}.pb-pour{transform-origin:50% 0;background:linear-gradient(90deg,#b3ab9e,#cfc8bc 50%,#a9a193);border-radius:4px;width:8px;height:48px;margin-left:-4px;position:absolute}.pb-scaf{position:absolute;inset:0 -24px}.pb-tower{width:16px;position:absolute;top:0;bottom:0}.pb-tower.l{left:0}.pb-tower.r{right:0}.pb-lvl{position:absolute;left:0;right:0}.pb-lvl-in,.pb-jack{transform-origin:50% 100%;border-left:3px solid #7f8a96;border-right:3px solid #7f8a96;position:absolute;inset:0}.pb-jack{height:14px;inset:auto 0 -14px}.pb-jack:after{content:"";background:#6f7882;border-radius:1px;height:3px;position:absolute;bottom:0;left:-6px;right:-6px}.pb-root svg.pb-x{width:100%;height:100%;position:absolute;inset:0}.pb-x line{stroke:#97a1ac;stroke-width:1.5px;vector-effect:non-scaling-stroke}.pb-plank{background:#f0b429;border-radius:1px;height:5px;position:absolute;top:-3px;box-shadow:0 1px #b57d12}.l .pb-plank{left:-3px;right:-11px}.r .pb-plank{left:-11px;right:-3px}.pb-ledger{background:#97a1ac;height:2px;margin-top:-1px;position:absolute;left:16px;right:16px}.pb-rig{transform-origin:50% 100%;width:100px;height:36px;position:absolute;bottom:100%;right:22px}.pb-rig i{background:#7f8a96;width:3px;position:absolute;top:0;bottom:0}.pb-rig b{background:#f0b429;border-radius:1px;height:5px;position:absolute;top:0;left:-5px;right:-5px;box-shadow:0 1px #b57d12}.pb-sign{text-align:center;white-space:nowrap;color:#26221e;transform-origin:50% -6px;background:#ffd21f;border:1.5px solid #26221e;border-radius:3px;width:82px;margin-left:-41px;padding:2px 0;font-size:10.5px;font-weight:800;position:absolute;top:11px;left:50%;box-shadow:0 2px 3px #0003}.pb-steel{position:absolute;inset:0}.pb-col{transform-origin:50% 100%;background:linear-gradient(90deg,#4a5664 0 2px,#7e8c9b 2px 6px,#4a5664 6px);width:8px;margin-left:-4px;position:absolute;top:-6px;bottom:0}.pb-beam{background:linear-gradient(#4a5664 0 2px,#7e8c9b 2px 5px,#4a5664 5px);border-radius:1px;height:7px;margin-top:-3px;position:absolute;left:-5px;right:-5px}.pb-rivet{background:#dde3ea;border-radius:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;position:absolute;box-shadow:0 0 0 1px #3d4652}.pb-shine{pointer-events:none;border-radius:10px;position:absolute;inset:0;overflow:hidden}.pb-shine i{background:linear-gradient(105deg,#0000 12%,#78aff547 30%,#8cbeff8c 44%,#fffffff2 50%,#8cbeff8c 56%,#0000 62% 70%,#8cbeff66 74%,#0000 78%);width:45%;position:absolute;top:-10%;bottom:-10%;left:0}.pb-dust{background:#d8d0c3;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute}
