:root{--ink: #241e18;--paper: #f6f1e7;--brick: #d4652f;--city: #2f6d4f;--gold: #f0c14d;--line: 3px solid var(--ink);--shadow: 4px 4px 0 var(--ink);--z: 1;font-family:Avenir Next,Segoe UI,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{min-height:100vh;min-height:100dvh;overflow:hidden;user-select:none;-webkit-user-select:none;background:radial-gradient(circle at 20% 0%,#fffaf1 0,transparent 40%),var(--paper)}button{font:inherit;color:inherit}button:focus-visible{outline:4px solid var(--gold);outline-offset:2px}#app{width:calc(100% / var(--z));height:calc(100vh / var(--z));transform:scale(var(--z));transform-origin:0 0;display:grid;grid-template-rows:minmax(108px,24vh) minmax(0,1fr)}#app.full{grid-template-rows:minmax(0,1fr)}#app.quiz{grid-template-rows:minmax(64px,13vh) minmax(0,1fr)}#start-over{position:fixed;z-index:40;left:10px;bottom:10px;border:2px solid var(--ink);background:#fffdf8;border-radius:12px;box-shadow:2px 2px 0 var(--ink);padding:8px 12px;font:inherit;font-size:.95rem;font-weight:700;cursor:pointer}#start-over:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}#zoom{position:fixed;z-index:40;right:10px;bottom:10px;display:flex;align-items:center;gap:4px}#zoom button{width:44px;height:40px;border:2px solid var(--ink);background:#fffdf8;border-radius:12px;box-shadow:2px 2px 0 var(--ink);font-size:1.4rem;font-weight:800;cursor:pointer;touch-action:manipulation}#zoom button:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}#zoom-level{min-width:44px;text-align:center;font-size:.8rem;font-weight:700;color:#5f574e}.lesson{width:min(880px,100%);margin:0 auto 6px;padding:10px 18px;border:var(--line);border-radius:16px;background:#fff3c4;box-shadow:var(--shadow);display:grid;justify-items:center;gap:6px}.lesson p{margin:0;text-align:center;font-family:Georgia,Iowan Old Style,serif;font-size:clamp(1.2rem,3vh,1.8rem);line-height:1.25}.word-bar.done i{width:34px;height:40px;font-size:1.35rem}#hold,#reset{position:fixed;top:0;width:36px;height:36px;z-index:30}#hold{left:0}#reset{right:0}.skyhead{position:relative;min-height:0}.sky{width:100%;height:100%;display:block}.pips{position:absolute;top:8px;right:12px;display:flex;gap:6px;z-index:2}.pips i{width:10px;height:10px;border-radius:50%;border:2px solid var(--ink);background:transparent;display:block}.pips i.on{background:var(--city)}.pips i.now{background:var(--gold)}.brick,.rub{fill:var(--brick);stroke:var(--ink);stroke-width:2}.cottage rect{fill:var(--brick);stroke:var(--ink);stroke-width:2}.cottage polygon{fill:#a34822;stroke:var(--ink);stroke-width:2}.ghost-brick{fill:var(--brick);opacity:.85;animation:ghostfall 1s ease-in forwards}.tower.lean{transform-box:fill-box;transform-origin:center bottom;animation:lean .7s ease-in-out infinite}.tower.hard{animation-duration:.38s}.tower.fall{transform-box:fill-box;transform-origin:center bottom;animation:towerfall .9s ease-in forwards}.tower.anchor{transform-box:fill-box;transform-origin:center bottom;animation:into-city 4s ease forwards}.grow{transform-box:fill-box;transform-origin:center;animation:grow 25s linear forwards}@keyframes lean{0%,to{transform:rotate(-16deg)}50%{transform:rotate(18deg)}}@keyframes towerfall{0%{transform:rotate(-10deg);opacity:1}60%{transform:translate(-20px,40px) rotate(70deg);opacity:1}85%{transform:translate(-30px,96px) rotate(96deg);opacity:1}to{transform:translate(-30px,96px) rotate(96deg);opacity:0}}.rubble.anchor{transform-box:fill-box;transform-origin:center bottom;animation:into-city 4s ease forwards}@keyframes into-city{to{transform:translate(-280px,30px) scale(.35);opacity:0}}@keyframes grow{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.brick.drop{transform-box:fill-box;animation-name:drop;animation-timing-function:linear;animation-fill-mode:both}.hop{animation-name:hop;animation-timing-function:linear;animation-fill-mode:both}.big-tower{width:100%;height:100%;min-height:0}@keyframes drop{0%{transform:translate(-240px,-260px) rotate(-20deg);opacity:0}10%{opacity:1}45%{transform:translate(-60px,-200px) rotate(10deg)}70%{transform:translateY(-120px) rotate(0)}82%{transform:translate(0)}88%{transform:translateY(-14px)}94%{transform:translate(0)}97%{transform:translateY(-4px)}to{transform:translate(0);opacity:1}}@keyframes hop{0%,78%{opacity:.2}90%,to{opacity:1}}@keyframes ghostfall{to{transform:translateY(50px) rotate(20deg);opacity:0}}.stage{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:6px 14px 12px;gap:6px}.prompt{margin:0;text-align:center;font-size:clamp(1.25rem,3.4vh,2.15rem);line-height:1.2;min-height:1.2em}.watch{min-height:1.2em}.ask{display:grid;gap:2px;justify-items:center}.hint{margin:0;font-size:clamp(.85rem,1.9vh,1.05rem);color:#5f574e;text-align:center}.caption{margin:4px 0 0;font-size:clamp(1.1rem,2.8vh,1.6rem);font-weight:700;text-align:center}.choice small{font-size:.85rem;font-weight:600;color:#5f574e}.placed{display:flex;align-items:center;gap:6px}.placed b{font-size:.95rem}.zone em,.slot-line em{color:#3b342d}.zone em,.slot-line em{font-size:clamp(1rem,2.4vh,1.35rem)}.filled svg{width:56px;height:56px}.summit,.mini-tower{display:grid;justify-items:center}.base-brick{display:block;width:120px;height:38px;border:var(--line);border-radius:6px;background:#b8a27a;margin-top:3px}.peak-empty{border:2px dashed var(--ink);border-radius:8px;padding:10px 20px;font-style:normal;font-weight:700}.fell{align-items:center}.fell em{font-style:normal;font-weight:700;font-size:.9rem}.veil>div{display:grid;gap:14px;justify-items:center}.clock{position:relative;width:112px;height:112px;display:grid;place-items:center}.clock svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.clock-track{fill:#fffdf8;stroke:#e2d8c6;stroke-width:8}.clock-ring{fill:none;stroke:var(--city);stroke-width:8;stroke-linecap:round;stroke-dasharray:276.5;stroke-dashoffset:0;animation:unwind 25s linear forwards}.clock span{position:relative;font-size:2.4rem;font-weight:800;font-variant-numeric:tabular-nums}@keyframes unwind{to{stroke-dashoffset:276.5}}.choice-row.single{justify-content:center}.choice-row.single .choice{max-width:560px}.veil .veil-note{font-family:inherit;font-size:clamp(.95rem,2vw,1.15rem);color:#5f574e}.stamp{display:grid;place-items:center;height:100%}.stamp .prompt{font-family:Georgia,Iowan Old Style,serif}.gate{height:100%;min-height:0;overflow:auto;display:grid;align-content:center;justify-items:center;gap:16px;padding:20px}.title{margin:0;font-size:clamp(2.8rem,10vh,5.5rem);font-weight:800;line-height:1;letter-spacing:-.01em;text-align:center}.subtitle{margin:-6px 0 0;font-family:Georgia,Iowan Old Style,serif;font-style:italic;font-size:clamp(1.15rem,3vh,1.7rem);text-align:center}.school{margin:0;letter-spacing:.02em;font-size:.95rem}.gate-art{display:flex;gap:28px}.gate-art svg{width:92px;height:92px}.grades,.choice-row,.targets,.zones{display:flex;gap:12px;width:min(920px,100%);margin-inline:auto}.grades button,.choice,.zone,.go,.choice-card{border:var(--line);background:#fffdf8;border-radius:18px;box-shadow:var(--shadow);min-height:84px;cursor:pointer;touch-action:manipulation}.grades button{flex:1;font-size:clamp(2rem,6vw,3.4rem);font-weight:700}.grades button:active,.choice:active,.zone:active,.card:active,.go:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.creature-gate{align-content:stretch;padding-top:18px}.hero{display:grid;justify-items:center;gap:4px}.hero svg{width:min(150px,22vh);height:auto}.hero strong{font-size:1.6rem}.roster{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:980px}.mini{width:96px;min-height:92px;border:var(--line);border-radius:16px;background:#fffdf8;display:grid;justify-items:center;gap:2px;padding:6px;cursor:pointer}.mini svg{width:48px;height:48px}.mini span{font-size:.78rem;font-weight:700}.mini.sel{background:#d7f0e4;box-shadow:var(--shadow)}.go{min-width:180px;font-size:2rem;font-weight:800;background:var(--gold);padding:8px 28px}.board,.scene-play,.topgame{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;overflow:hidden}.tray{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-content:start}.card,.me-card{width:104px;min-height:104px;border:var(--line);border-radius:16px;background:#fffdf8;box-shadow:var(--shadow);display:grid;justify-items:center;align-content:center;gap:2px;padding:6px;cursor:pointer;touch-action:none}.card svg{width:64px;height:64px}.card span,.choice-card span,.choice span,.zone em,.slot-line em{font-size:.82rem;font-weight:700;font-style:normal;text-align:center}.card.sel{background:#fff3c4;transform:translateY(-4px)}.card.odd{background:#eeeae4}.card.bad,.zone.bad,.choice-card.bad,.slot-line.bad,.person-spot.bad{animation:shake .35s linear}.zones{align-items:stretch}.zone{flex:1;display:grid;justify-items:center;align-content:center;gap:4px;padding:8px}.zone .ghost-art{opacity:.9}.zone .ghost-art svg,.filled svg{width:72px;height:72px}.filled{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.filled svg{width:48px;height:48px}.book{height:100%;max-width:520px;margin:0 auto;width:100%;background:#fffdf8;border:var(--line);border-radius:8px 22px 22px 8px;box-shadow:8px 8px 0 var(--ink);display:grid;align-content:center;gap:8px;padding:16px 16px 16px 22px}.slot-line{min-height:60px;border:2px dashed var(--ink);border-radius:12px;background:transparent;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.slot-line svg{width:48px;height:48px}.choice-row{flex:1;min-height:0;height:100%}.choice{height:100%}.stage.one{grid-template-rows:1fr}.choice,.choice-card{flex:1;display:grid;justify-items:center;align-content:center;gap:6px;font-size:clamp(1.2rem,2.5vh,1.8rem);font-weight:800}.choice svg,.choice-card svg{width:min(92px,16vh);height:auto}.choice.tower{background:#ffe1d2}.choice.city{background:#d7f0e4}.scene-art{display:grid;justify-items:center;align-content:center;min-height:0;overflow:hidden}.scene-art svg{height:26vh;max-height:220px;width:auto;max-width:40vw}.targets .zone{height:clamp(110px,24vh,190px);min-height:0}.targets .zone svg{width:min(84px,13vh);height:auto}.targets{width:min(640px,100%);margin:0 auto}.topgame{align-items:center}.peak,.fell{display:flex;gap:8px;justify-content:center;min-height:54px}.me,.me-card{background:var(--brick);color:#fff;border:var(--line);border-radius:8px;min-width:72px;min-height:42px;display:grid;place-items:center;font-size:1.3rem}.me.dim{opacity:.55;transform:rotate(-8deg)}.peak .me{min-height:54px;min-width:92px;font-size:1.6rem}.ghost{position:fixed;z-index:40;transform:translate(-50%,-60%) scale(var(--z));transform-origin:50% 60%;pointer-events:none}.ghost .card{box-shadow:6px 8px #241e1859}body.hitting [data-item]{pointer-events:none}.confirm{position:fixed;inset:0;z-index:60;background:#241e1873;display:grid;place-items:center;padding:24px}.confirm-card{width:min(520px,100%);background:#fffdf8;border:var(--line);border-radius:20px;box-shadow:6px 6px 0 var(--ink);padding:22px 24px;display:grid;gap:10px;justify-items:center}.confirm-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:6px}.confirm-row .go{min-width:0;font-size:1.25rem;padding:10px 22px;min-height:60px}.confirm-row .go.quiet{background:#fffdf8}.veil{position:fixed;inset:0;z-index:5;background:#f6f1e7b8;display:grid;place-items:center;padding:24px}.veil p{margin:0;max-width:18em;text-align:center;font-family:Georgia,Iowan Old Style,serif;font-size:clamp(1.7rem,4.6vw,3rem);line-height:1.25}[data-band="34"] .card{width:120px;min-height:120px}[data-band="34"] .prompt{font-size:clamp(1.45rem,4vh,2.4rem)}[data-band="78"] .card span{font-size:.95rem}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media(prefers-reduced-motion:reduce){.tower.lean{animation:none;transform:rotate(8deg)}.grow,.tower.anchor{animation:none;opacity:1}.tower.fall,.ghost-brick{animation-duration:.2s}}@media(max-height:720px){.hero svg{width:96px}.card{width:88px;min-height:88px}.card svg{width:52px;height:52px}.grades button{min-height:68px}}.mh-quote{margin:0 auto;max-width:34em;text-align:center}.mh-quote p{margin:0;max-width:none;font-family:Georgia,Iowan Old Style,serif;font-size:clamp(1.15rem,2.9vh,1.75rem);line-height:1.3}.mh-quote cite{display:block;margin-top:6px;font-style:normal;font-weight:700;font-size:.95rem;color:#5f574e}.veil .mh-quote{max-width:30em}.veil .mh-quote p{font-size:clamp(1.4rem,3.6vw,2.3rem)}.info-card{width:min(880px,100%);margin:0 auto;min-height:0;overflow:auto;display:grid;align-content:center;justify-items:center;gap:12px;text-align:center}.card-art-row{display:flex;gap:18px;justify-content:center}.card-art-row svg{width:min(110px,15vh);height:auto}.info-line{margin:0;font-size:clamp(1.25rem,3.3vh,2rem);line-height:1.25;font-weight:600}.ask.warn .prompt{color:#9c3b22}.card.text{width:auto;min-width:150px;min-height:64px;padding:8px 16px}.card.text span{font-size:clamp(1rem,2.3vh,1.3rem)}.tray.wide .card:not(.text){width:150px}.tray.wide .card span{font-size:.8rem}.card.tinted{border-left:12px solid var(--c)}.tray.many .card{width:92px;min-height:84px;padding:4px}.tray.many .card svg{width:44px;height:44px}.tray.many .card span{font-size:.66rem;letter-spacing:-.01em}.choose-board{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.choose-art{display:grid;place-items:center}.choose-art svg{width:min(96px,13vh);height:auto}.choice-row.words{flex-wrap:wrap;align-content:center}.choice-card.word{flex:1 1 28%;min-height:72px;max-height:120px}.choice-card.word span{font-size:clamp(1.3rem,3vh,1.9rem);font-family:Georgia,serif}.scene-art .count{color:#6d645b;font-weight:700}.rings-board{grid-template-rows:minmax(0,1fr) auto;justify-items:center}.rings{position:relative;height:100%;max-height:460px;aspect-ratio:1;max-width:100%;--cq: 400px}.ring-zone{position:absolute;border-radius:50%;border:3px solid var(--ink);cursor:pointer}.ring-zone.r2{inset:0;background:#e3efe0}.ring-zone.r1{inset:15%;background:#f6e2cf}.ring-zone.r0{inset:30%;background:#fff3c4}.ring-overlay{position:absolute;inset:0;pointer-events:none}.ring-piece{position:absolute;width:11%;height:11%;transform:translate(-50%,-50%)}.ring-piece svg{width:100%;height:100%}.ring-tag{position:absolute;left:50%;transform:translate(-50%);font-weight:800;font-size:.9rem;pointer-events:none;color:var(--ink);white-space:nowrap}.ring-tag.in{top:50%;transform:translate(-50%,-50%);font-size:.78rem}.rings.filled .ring-tag.in{display:none}.ring-tag.mid{bottom:19%}.ring-tag.out{bottom:3%}.deliver-board{justify-items:center;grid-template-rows:minmax(0,1fr) auto}.circle-board{position:relative;height:100%;max-height:520px;aspect-ratio:1;max-width:100%;--cq: 400px}.pin{position:absolute;transform:translate(-50%,-50%);display:block}.person-spot{position:relative;width:calc(var(--cq) * 20 / 100);border:max(2px,calc(var(--cq) * .6 / 100)) solid var(--ink);border-radius:calc(var(--cq) * 3.4 / 100);background:#fffdf8;box-shadow:calc(var(--cq) * .7 / 100) calc(var(--cq) * .7 / 100) 0 var(--ink);display:grid;justify-items:center;gap:calc(var(--cq) * .4 / 100);padding:calc(var(--cq) * 1.3 / 100) calc(var(--cq) * .8 / 100);cursor:pointer}.person-spot span{font-weight:800;font-size:calc(var(--cq) * 3 / 100);line-height:1.1}.person-spot.got{background:#d7f0e4}.chip{width:calc(var(--cq) * 7.4 / 100);height:calc(var(--cq) * 7.4 / 100);border-radius:50%;border:max(1.5px,calc(var(--cq) * .45 / 100)) solid var(--ink);display:grid;place-items:center;font-style:normal;font-size:calc(var(--cq) * 3.8 / 100);font-weight:800}.chip.plain{background:#f2e2c4}.got-letter{position:absolute;top:-calc(var(--cq) * 2.6 / 100);right:-calc(var(--cq) * 2.2 / 100);background:var(--gold);border:max(1.5px,calc(var(--cq) * .45 / 100)) solid var(--ink);border-radius:calc(var(--cq) * 1.7 / 100);padding:0 calc(var(--cq) * 1.3 / 100);font-size:calc(var(--cq) * 3.2 / 100);line-height:1.4}.mailbox{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:calc(var(--cq) * .8 / 100)}.mailbox small{font-weight:700;font-size:calc(var(--cq) * 2.8 / 100);color:#5f574e}.mailbox .card.letter-card{width:calc(var(--cq) * 28 / 100);min-height:calc(var(--cq) * 22 / 100);padding:calc(var(--cq) * 1 / 100);border-radius:calc(var(--cq) * 3.4 / 100)}.env{position:relative;display:grid;place-items:center}.mailbox .env svg{width:calc(var(--cq) * 20 / 100);height:calc(var(--cq) * 20 / 100)}.env-mark{position:absolute;top:58%;left:50%;transform:translate(-50%,-50%);font-style:normal;font-weight:800}.env-mark:not(.plain):not(.name){width:calc(var(--cq) * 6.4 / 100);height:calc(var(--cq) * 6.4 / 100);border-radius:50%;border:max(1.5px,calc(var(--cq) * .45 / 100)) solid var(--ink)}.env-mark.plain{font-size:calc(var(--cq) * 5 / 100)}.env-mark.name{font-size:calc(var(--cq) * 2.8 / 100);white-space:nowrap;background:#fffdf8;padding:0 calc(var(--cq) * .6 / 100)}.word-bar{display:flex;gap:6px;justify-content:center}.word-bar i{width:38px;height:44px;border:2px solid var(--ink);border-radius:8px;background:#fffdf8;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:1.5rem;font-family:Georgia,serif}.word-bar i.on{background:#fff3c4}.word-bar i.new{animation:grow .3s ease}.me.climb{animation:climb .7s cubic-bezier(.2,.8,.3,1.2)}.me.tumble{animation:tumble .7s ease-in;opacity:.55;transform:rotate(-8deg)}.me-card{background:var(--c, var(--brick));color:#fff;font-weight:800;font-size:1.4rem}@keyframes climb{0%{transform:translateY(260px) scale(.7);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}@keyframes tumble{0%{transform:translateY(-120px) rotate(0);opacity:1}60%{transform:translateY(10px) rotate(-30deg)}to{transform:translateY(0) rotate(-8deg);opacity:.55}}.pray-board{display:grid;justify-items:center;align-content:center;gap:14px}.pray-art svg{width:min(130px,18vh);height:auto}.pray-btn{position:relative;overflow:hidden;border:var(--line);border-radius:20px;box-shadow:var(--shadow);background:#fffdf8;min-width:280px;padding:14px 24px;display:grid;justify-items:center;gap:4px;font-size:1.5rem;font-weight:800;cursor:pointer;touch-action:none}.pray-btn svg{position:relative;width:70px;height:70px}.pray-btn span{position:relative}.pray-btn .fill{position:absolute;inset:0 100% 0 0;background:#fff3c4;transition:right .15s linear}.pray-btn.holding .fill{right:0;transition:right var(--hold) linear}.wall-board{position:relative;height:100%;max-height:520px;aspect-ratio:1;max-width:100%;margin:0 auto;--cq: 400px}.wall-place{justify-items:center}.wall-line{position:absolute;inset:11%;border-radius:50%;border:calc(var(--cq) * 2 / 100) dotted #b8a27a}.wall-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;font-weight:800;font-size:calc(var(--cq) * 3 / 100)}.wall-center svg{width:calc(var(--cq) * 17 / 100);height:calc(var(--cq) * 17 / 100)}.wall-part{position:relative;width:calc(var(--cq) * 27 / 100);border:max(2px,calc(var(--cq) * .6 / 100)) solid var(--ink);border-radius:calc(var(--cq) * 3 / 100);background:#fffdf8;box-shadow:calc(var(--cq) * .7 / 100) calc(var(--cq) * .7 / 100) 0 var(--ink);display:grid;justify-items:center;gap:calc(var(--cq) * .2 / 100);padding:calc(var(--cq) * .8 / 100) calc(var(--cq) * 1.2 / 100) calc(var(--cq) * 1.2 / 100);cursor:pointer}.wall-part svg{width:calc(var(--cq) * 15 / 100);height:calc(var(--cq) * 7.2 / 100)}.wall-part em{font-style:normal;font-weight:800;font-size:calc(var(--cq) * 2.7 / 100);line-height:1.15;text-align:center}.wall-part b{font-size:calc(var(--cq) * 2.4 / 100);line-height:1.15;color:#3b342d;text-align:center}.wall-part.tinted{border-left:calc(var(--cq) * 2 / 100) solid var(--c)}.wall-part.broken{background:#f3ece0}.wall-part.built{background:#d7f0e4}.wall-part.bad{animation:shake .35s linear}.sandbox{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;padding:10px 14px 14px}.sand-head{text-align:center}.sand-head h2{margin:0;font-size:clamp(1.6rem,4vh,2.4rem);display:inline}.sand-head cite{margin-left:10px;font-style:normal;font-weight:700;color:#5f574e}.sand-head .hint{margin-top:2px}.sand{position:relative;min-height:0;border:var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(#d7ebf6 0 72%,#e7d7b8 72%);touch-action:none}.sand-ground{position:absolute;left:0;right:0;top:72%;height:3px;background:var(--ink);opacity:.25}.sand-tower{position:absolute;left:0;bottom:0;width:70px;height:0;transform-origin:50% 100%}.sand-tower-pin{position:absolute;bottom:28%;width:70px;height:0;margin-left:-35px}.sand-tower.sway{animation:sway var(--sdur) ease-in-out infinite alternate}.sand-tower.crash{animation:crash 1s ease-in forwards}.s-brick{position:absolute;left:0;width:70px;height:24px;border:2px solid var(--ink);border-radius:3px;background:var(--brick)}.s-brick:last-of-type{animation:grow .25s ease}.s-rider{position:absolute;left:5px;width:60px}.s-rider svg{width:60px;height:60px;display:block}@keyframes sway{0%{transform:rotate(calc(var(--tilt) * -1))}to{transform:rotate(var(--tilt))}}@keyframes crash{0%{transform:rotate(var(--tilt));opacity:1}80%{transform:rotate(95deg);opacity:1}to{transform:rotate(100deg);opacity:0}}.piece{position:absolute;width:64px;transform:translate(-50%,-50%) rotate(var(--r));cursor:grab;touch-action:none}.piece svg{width:100%;height:auto;display:block;pointer-events:none}.piece.brickish{width:60px}.piece.wide{width:120px}.piece.lifted{z-index:5;cursor:grabbing;filter:drop-shadow(4px 6px 0 rgba(36,30,24,.3))}.sand-trash{position:absolute;right:12px;top:12px;width:76px;display:grid;justify-items:center;gap:2px;padding:6px 4px;border:2px dashed var(--ink);border-radius:12px;background:#fffdf8b3;font-size:.62rem;font-weight:700;text-align:center;color:#5f574e;pointer-events:none}.sand-trash svg{width:40px;height:40px}.sand-trash.over{background:#ffe1d2;border-style:solid}.sand-tools{display:flex;gap:12px;align-items:stretch;padding-left:110px}.sand-tools .add-brick{flex:0 0 200px;height:auto;min-height:96px}.palette{flex:1;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-content:center}.card.pal{width:96px;min-height:90px;touch-action:manipulation}.card.pal svg{width:52px;height:44px}.stage .tray{padding-inline:100px 160px}.tray .card span{overflow-wrap:break-word}.card.long span{font-size:.7rem;letter-spacing:-.01em}.card.lifting{opacity:.35}
