/* Fixed, responsive play surface: no browser-page scrolling during a puzzle. */
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{min-height:100dvh}header{height:52px;padding:0 clamp(12px,4vw,7vw)}header span{font-size:.64rem}header button{padding:8px 12px;font-size:.8rem}main{max-width:1420px;height:calc(100dvh - 52px);margin:0 auto;padding:clamp(8px,1.8vh,16px) clamp(10px,2vw,28px);display:grid;grid-template-rows:auto minmax(0,1fr);gap:clamp(8px,1.5vh,14px);overflow:hidden}.hero{min-height:0;height:clamp(98px,17vh,154px);padding:clamp(12px,2.4vw,24px) clamp(16px,3vw,34px);border-radius:20px}.hero h1{font-size:clamp(1.55rem,3.5vw,3rem);margin:3px 0}.hero p{margin:4px 0;font-size:clamp(.75rem,1.2vw,.92rem);line-height:1.28}.orb{width:clamp(76px,11vw,124px);height:clamp(76px,11vw,124px);font-size:clamp(2rem,4vw,3.25rem)}.game{margin-top:0;min-height:0;grid-template-columns:minmax(0,1fr) clamp(210px,23vw,270px);gap:clamp(8px,1.8vw,20px);overflow:hidden}.loom{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.hud{padding:10px 16px}.hud b{font-size:.9rem}.instruction{padding:8px 16px;font-size:.8rem}.canvas-wrap{min-height:0;padding:8px 14px 12px;display:grid;place-items:center}svg{height:100%;width:auto;max-width:100%;max-height:100%;aspect-ratio:1}aside{height:100%;min-height:0;padding:13px;overflow:hidden}aside h2{margin:0;font-size:1.15rem}aside>p{margin:7px 0;font-size:.78rem;line-height:1.3}.stars{margin:8px 0;font-size:1.05rem}.levels{gap:5px}.levels button{padding:7px 3px;font-size:.73rem}aside button{padding:8px 10px;font-size:.78rem}aside hr{margin:9px 0}aside h3{font-size:.9rem;margin:8px 0}
@media(max-width:760px){header{height:48px}main{height:calc(100dvh - 48px)}.hero{height:70px;padding:8px 14px;border-radius:15px}.hero p:first-child,.hero p:last-child{display:none}.hero h1{font-size:1.55rem}.orb{width:52px;height:52px;font-size:1.45rem;box-shadow:0 0 35px #64dfff80}.game{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:7px}.loom{min-height:0}.hud{padding:7px 12px}.instruction{padding:6px 12px;font-size:.72rem}.canvas-wrap{padding:6px 10px 9px}aside{order:2;height:auto;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:5px;padding:7px 9px}aside .eyebrow,aside>p,aside hr,aside h3{display:none}aside h2{font-size:.82rem}.stars{margin:0;font-size:.85rem;letter-spacing:1px}aside #hint,aside #next{padding:7px 9px;font-size:.7rem}.levels{grid-column:1/-1;grid-template-columns:repeat(10,1fr);gap:3px}.levels button{padding:5px 0;font-size:.65rem}}
@media(max-height:650px) and (orientation:landscape){.hero{display:none}main{grid-template-rows:minmax(0,1fr)}.game{grid-template-columns:minmax(0,1fr) 185px}.game aside{height:100%;display:block;padding:8px}.game aside .eyebrow,.game aside>p,.game aside hr,.game aside h3{display:none}.game .levels{grid-template-columns:repeat(5,1fr);gap:3px}.game .levels button{padding:4px 0}.canvas-wrap{padding:5px}.instruction{padding:5px 10px}}
