@media(max-width:1000px){.wrap{padding:18px}.setup{gap:24px;padding:25px}.intro h2{font-size:35px}.play-grid{grid-template-columns:minmax(290px,.9fr) minmax(370px,1.2fr);gap:14px}.tower-panel{padding:16px 13px 10px}.stage-panel{padding:22px;min-height:525px}.top-actions .wide-label{display:none}.team{min-width:125px}.block{font-size:17px}.stage-main h2{font-size:24px}}
@media(max-width:740px){.top{align-items:flex-start}.top h1{font-size:26px}.top-actions{flex-direction:column}.setup{grid-template-columns:1fr;gap:24px}.intro h2{font-size:32px}.setup-kicker{margin-top:16px}.play-grid{grid-template-columns:1fr}.tower-panel{order:2}.stage-panel{order:1;min-height:0;max-height:none}.tower{max-width:380px}.toolbar{align-items:flex-start}.teams{margin-bottom:12px}.clock{font-size:16px}.toolbar-actions{max-width:80%}.wrap{padding:14px 12px}.form-grid,.names{gap:10px}.dialog-content{padding:22px}.stage-main .lead{font-size:19px}.block{height:36px;min-height:36px}.stage-footer{margin-top:20px}.footer-note{font-size:10px}}
@media(min-width:1050px) and (max-height:780px){.wrap{padding-top:13px}.top{margin-bottom:11px}.top h1{font-size:29px}.top .subtitle{margin-top:3px;font-size:12px}.teams{margin-bottom:10px}.team{padding:6px 11px}.team.active{padding:5px 10px}.toolbar{margin-bottom:8px}.tower-panel{padding-top:11px}.stage-panel{min-height:500px;max-height:540px;padding-top:18px}.block{height:27px;min-height:27px;font-size:17px}.floor{margin-bottom:5px}.tower{margin-top:10px}.stability-value{font-size:25px}.tower-key{margin-top:9px}.top .eyebrow{font-size:10px}.footer-note{margin-top:10px}.stage-top{margin-bottom:12px}.stage-main h2{font-size:25px}.stage-main .lead{font-size:19px}.stage-footer{margin-top:18px}}
.scene3d{height:393px;perspective:1000px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 87%,#d8e9ef 0,transparent 54%);border-radius:10px;margin-top:5px;touch-action:pan-y}
.world3d{position:absolute;left:50%;top:84%;width:0;height:0;transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(var(--orbit,-34deg)) scale3d(var(--zoom,1.06),var(--zoom,1.06),var(--zoom,1.06));transition:transform .32s ease}
.plank{position:absolute;left:0;top:0;width:132px;height:22px;min-height:0;padding:0;margin:0;background:none!important;border:0!important;border-radius:0;box-shadow:none!important;transform-style:preserve-3d;transform:translate3d(var(--bx),var(--by),var(--bz)) rotateY(var(--br));outline:none;cursor:pointer;color:#3b2a16;font-size:13px;transition:transform .3s}
.plank:disabled{opacity:1;cursor:default}.face{position:absolute;display:flex;align-items:center;justify-content:center;left:50%;top:50%;backface-visibility:hidden;border:1px solid #937448;border-radius:2px;pointer-events:auto;font-size:14px;line-height:1;font-weight:800;letter-spacing:0;text-shadow:0 1px #fff8;box-shadow:inset 0 0 0 1px #ffffff24}
.face-front,.face-back{width:132px;height:22px;background:repeating-linear-gradient(1deg,#e2c493 0px,#eed4a7 3px,#d9b67e 4px,#edd1a3 7px)}
.face-front{transform:translate(-50%,-50%) translateZ(21px)}.face-back{transform:translate(-50%,-50%) rotateY(180deg) translateZ(21px)}
.face-right,.face-left{width:42px;height:22px;background:repeating-linear-gradient(86deg,#d0a76d 0px,#dab983 4px,#bf975f 5px,#dab582 7px);font-size:13px}
.face-right{transform:translate(-50%,-50%) rotateY(90deg) translateZ(66px)}.face-left{transform:translate(-50%,-50%) rotateY(-90deg) translateZ(66px)}
.face-top,.face-bottom{width:132px;height:42px;background:repeating-linear-gradient(0deg,#f2dcba 0px,#f5e1c1 6px,#e4c89c 7px,#f4dfbd 10px)}
.face-top{transform:translate(-50%,-50%) rotateX(90deg) translateZ(11px);font-size:18px}.face-bottom{transform:translate(-50%,-50%) rotateX(-90deg) translateZ(11px);background:#c29d69}
.plank:hover:not(:disabled) .face,.plank:focus-visible .face,.plank.selected .face{border:2px solid #006582;background:#c9edf5;color:#064b61;box-shadow:inset 0 0 0 1px #ffffffaa}.plank:focus-visible .face{outline:2px solid #fff;outline-offset:-4px}
.plank.protected .face{border-style:dashed}.plank.removing{animation:take-block .55s ease-in forwards;pointer-events:none}@keyframes take-block{to{transform:translate3d(calc(var(--bx) + 170px),var(--by),calc(var(--bz) + 100px)) rotateY(var(--br));opacity:0}}
.platform3d{width:156px;height:156px;background:#0b5070;border:5px solid #2e6b85;position:absolute;left:-78px;top:-78px;transform:translateY(16px) rotateX(90deg);box-shadow:0 0 24px #0b507022}
.orbit-controls{display:flex;gap:5px;justify-content:center;align-items:center;margin-top:0;flex-wrap:wrap}.orbit-controls button{min-height:31px;padding:4px 10px;font-size:12px}.orbit-value{font-size:11px;color:#466376;min-width:43px;text-align:center}.number-pick{display:flex;gap:6px;margin-top:10px;align-items:center}.number-pick select{min-width:0;font-size:12px;padding:6px}.number-pick button{font-size:12px;min-height:34px;padding:5px 10px}.number-pick label{font-size:11px;flex-shrink:0}.tower-panel.view3d .tower,.tower-panel.view3d .tower-base{display:none}.tower-panel:not(.view3d) .scene3d,.tower-panel:not(.view3d) .orbit-controls{display:none}.tower-panel.view3d .tower-key{margin-top:8px}
.scene3d.collapsed .plank{animation:plankfall 1.15s cubic-bezier(.4,.05,.8,1) forwards;animation-delay:var(--fall-delay,0s)}@keyframes plankfall{0%{transform:translate3d(var(--bx),var(--by),var(--bz)) rotateY(var(--br))}100%{transform:translate3d(calc(var(--bx) + var(--dx)),calc(var(--by) + var(--dy)),calc(var(--bz) + var(--dz))) rotateX(var(--rx)) rotateY(calc(var(--br) + 36deg)) rotateZ(var(--rz));opacity:.2}}
@media(min-width:1050px) and (max-height:780px){.scene3d{height:353px}.world3d{top:87%;--zoom:.98!important}.tower-panel.view3d .tower-key{font-size:10px}.number-pick{margin-top:5px}}
@media(max-width:740px){.scene3d{height:395px}.plank{font-size:14px}.orbit-controls button{min-height:38px}.number-pick select,.number-pick button{min-height:38px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important;scroll-behavior:auto!important}.tower.collapsed .block:not(.removed){opacity:.2;transform:translateY(6px)!important}.scene3d.collapsed .plank{opacity:.2;animation:none!important}}
