:root{--paper:#f2efe8;--ink:#111;--blue:#1f4fff;--orange:#ff5a1f;--green:#18775a;--red:#b82e2e;--wood:#d5a45e;--wood2:#b77a2f;--muted:#68625a;--white:#faf8f2}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}.wrap{width:min(calc(100% - 24px),1280px);margin:auto;padding:18px 0 36px}a{color:inherit;text-decoration:none}.top{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:11px 0;font:700 11px "Courier New",monospace;text-transform:uppercase;letter-spacing:.08em}.top a{border:1px solid var(--ink);padding:8px 10px}.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:24px;border-bottom:2px solid var(--ink);padding:28px 0}.hero h1{font-size:clamp(3.2rem,8vw,8rem);line-height:.78;letter-spacing:-.075em;margin:0;text-transform:uppercase}.hero h1 span{display:block;color:var(--blue)}.hero p{margin:0;line-height:1.55}.kicker{font:700 11px "Courier New",monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:10px}.stamp{margin-top:14px;font:700 10px "Courier New",monospace;text-transform:uppercase;color:var(--muted)}.sheet{display:grid;grid-template-columns:repeat(3,1fr);border-left:2px solid var(--ink);border-top:2px solid var(--ink);margin:18px 0}.sheet-item{padding:13px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);background:var(--white);min-height:100px}.sheet-item span{display:block;font:700 9px "Courier New",monospace;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.grid{display:grid;grid-template-columns:280px minmax(320px,1fr) 330px;gap:18px;margin-top:18px}.panel{border:2px solid var(--ink);padding:16px;background:var(--white)}.panel h2{margin:0 0 10px;font-size:1.4rem;letter-spacing:-.03em}.controls{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.btn,button{border:2px solid var(--ink);background:transparent;color:var(--ink);padding:9px 11px;font-weight:800;cursor:pointer}.btn.primary,button.primary{background:var(--ink);color:var(--paper)}button.good{background:var(--green);color:#fff;border-color:var(--green)}button.partial{background:#d79516;color:#111}button.bad{background:var(--red);color:#fff;border-color:var(--red)}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:4px solid var(--blue);outline-offset:3px}input{width:100%;border:1px solid var(--ink);background:white;padding:8px;font-size:1rem}.teams{display:grid;gap:7px}.team{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border-top:1px solid var(--ink);padding-top:7px}.team.active{border-left:6px solid var(--blue);padding-left:8px}.score{font:700 12px "Courier New",monospace}.towerbox{min-height:620px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.tower{width:min(460px,95%);display:flex;flex-direction:column-reverse;gap:3px;transform-origin:50% 100%}.floor{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.floor:nth-child(even){width:88%;align-self:center}.block{min-height:42px;background:linear-gradient(90deg,var(--wood2),var(--wood),#e3bf83);border:2px solid #6f4518;color:#111;font-size:1.08rem;font-weight:900}.block.illegal{opacity:.35}.block.removed{visibility:hidden}.block.selected{outline:5px solid var(--blue);outline-offset:1px}.tower.collapsed{animation:fall 1.1s ease-in forwards}@keyframes fall{0%{transform:rotate(0)}45%{transform:rotate(-8deg) translateX(-20px)}100%{transform:rotate(58deg) translate(165px,105px)}}.meter{height:24px;border:2px solid var(--ink);margin:9px 0}.meter>div{height:100%;background:var(--blue);width:100%;transition:.25s}.meter-label{display:flex;justify-content:space-between;font:700 11px "Courier New",monospace;text-transform:uppercase}.qbox{border-top:6px solid var(--blue);padding-top:12px;min-height:220px}.qbox h3{font-size:1.5rem;margin:0 0 10px}.pill{display:inline-block;border:1px solid var(--ink);padding:4px 7px;margin:0 4px 4px 0;font:700 10px "Courier New",monospace;text-transform:uppercase}.opts{display:grid;gap:7px}.opt{border:1px solid var(--ink);padding:8px;background:white}.solution{margin-top:10px;padding:10px;background:#fff4cc;border:1px solid var(--ink);line-height:1.45}.solution[hidden]{display:none}.log{max-height:160px;overflow:auto;border-top:1px solid var(--ink);padding-top:8px;font-size:.88rem;line-height:1.45}.note{color:var(--muted);font-size:.9rem;line-height:1.45}.fallback{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:8px}.fallback span{border:1px solid var(--ink);padding:5px;text-align:center;font:700 11px "Courier New",monospace}.timer{font-size:2rem;font-weight:900;letter-spacing:-.04em;margin:8px 0}.status{font:700 12px/1.4 "Courier New",monospace;text-transform:uppercase;margin-bottom:10px}.reflection,.rigor,.refs{margin-top:22px;border-top:2px solid var(--ink);padding-top:18px}.reflection h2,.refs h2{font-size:2rem;margin:0 0 10px;letter-spacing:-.04em}.reflection ol{line-height:1.7}.rigor{border-left:10px solid var(--orange);border-top:0;background:#fff0e8;padding:15px 17px;line-height:1.55}.refs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ref{border:1px solid var(--ink);padding:12px;background:var(--white)}.ref strong{display:block;margin-bottom:5px}.ref p{margin:0 0 8px;line-height:1.45;color:#403b35}.ref a{display:inline-block;border:1px solid var(--ink);padding:6px 8px;font:700 10px "Courier New",monospace;text-transform:uppercase}.footer{padding:18px 0 0;font:700 10px "Courier New",monospace;text-transform:uppercase;color:var(--muted)}.hidden{display:none}@media(max-width:980px){.grid{grid-template-columns:1fr}.towerbox{min-height:520px}.hero{grid-template-columns:1fr}.sheet{grid-template-columns:1fr 1fr}}@media(max-width:620px){.hero h1{font-size:3.6rem}.top{align-items:flex-start;flex-direction:column}.tower{width:98%}.sheet,.refs-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.tower.collapsed{animation:none;transform:rotate(10deg)}.meter>div{transition:none}}
