:root{--ink: #341c27;--tan: #7a4841;--red: #a53030;--paper: #e7d5b3;--card: #d7b594;--green: #468232;--leaf: #75a743;--gold: #e8c170;--cream: #ebede9;--night: #090a14}*{box-sizing:border-box}html,body{margin:0}body{position:relative}body{min-height:100vh;--k: 4;background:#468232 url(/game/tile-grass.png) 0 0 / calc(var(--k) * 96px) calc(var(--k) * 24px);image-rendering:pixelated;color:var(--ink);font-family:Pixelify Sans,Silkscreen,monospace;font-size:18px;line-height:1.45;overflow-x:hidden}.page{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:28px 16px 48px}header{text-align:center;margin-bottom:8px}.wordmark{width:min(260px,66vw);height:auto;color:var(--cream);filter:drop-shadow(3px 3px 0 var(--night))}.tagline{font-family:Silkscreen,monospace;color:var(--cream);text-shadow:2px 2px 0 var(--night);margin:6px 0 0;font-size:14px}.window{position:relative;margin-top:44px;border:20px solid transparent;border-image:url(/game/ui-panel-paper.png) 10 fill / 20px / 0 round;padding:24px 6px 6px;filter:drop-shadow(6px 8px 0 rgba(9,10,20,.35));animation:pop .22s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{0%{transform:translateY(8px);opacity:0}}.ribbon{position:absolute;top:-36px;left:50%;transform:translate(-50%);height:40px;padding:0 2px;white-space:nowrap;border-style:solid;border-width:0 24px;border-image:url(/game/ui-ribbon.png) 0 12 fill / 0 24px stretch;font-family:Silkscreen,monospace;font-size:20px;line-height:34px;color:var(--cream);text-shadow:2px 2px 0 #411d31}.lede{margin:0 0 12px;text-align:center}.muted{color:var(--tan);margin:4px 0 0;font-size:15px}.dots{display:flex;justify-content:center;gap:8px;margin:14px 0 2px}.dots i{width:10px;height:10px;background:#c09473;box-shadow:inset -2px -2px #ad7757}.dots i.done{background:#de9e41;box-shadow:inset -2px -2px #be772b}.dots i.now{background:var(--red);box-shadow:inset -2px -2px #752438}.step{display:flex;gap:12px;align-items:flex-start;margin-top:10px;border:8px solid transparent;border-image:url(/game/ui-panel-card.png) 4 fill / 8px / 0 round;padding:4px 6px}.step-n{flex:0 0 32px;height:32px;display:grid;place-items:center;border:8px solid transparent;border-image:url(/game/ui-panel-well.png) 4 fill / 8px / 0 round;font-family:Silkscreen,monospace;font-size:15px}.step.done .step-n{border-image:none}.tick{width:22px;height:18px;animation:tick .3s cubic-bezier(.2,1.8,.4,1)}@keyframes tick{0%{transform:scale(0)}}.step-body{flex:1;min-width:0}h3{margin:2px 0 8px;font-size:18px;font-weight:600}button,.task{font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;color:var(--cream);text-shadow:1px 1px 0 #25562e;border:8px solid transparent;border-image:url(/game/ui-go-raised.png) 4 fill / 8px / 0 stretch;background:none;padding:0 8px 4px;line-height:22px;min-height:36px}button:active:not(:disabled),.task:active{border-image-source:url(/game/ui-go-pressed.png);padding:4px 8px 0}button:disabled{border-image-source:url(/game/ui-go-disabled.png);color:var(--tan);text-shadow:none;cursor:not-allowed}button:focus-visible,.task:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.task.ticked{filter:saturate(.6) brightness(.92)}.claim{width:100%;font-size:19px;min-height:44px;line-height:28px}input{font:inherit;width:100%;color:var(--ink);background:none;border:8px solid transparent;border-image:url(/game/ui-panel-well.png) 4 fill / 8px / 0 round;padding:2px 4px}input::placeholder{color:#ad7757}.row{display:flex;gap:8px;align-items:center}.row input{flex:1;min-width:0}.spaced{margin-top:10px}.tasks{display:flex;flex-wrap:wrap;gap:8px}.ok{color:var(--green);font-weight:600;margin:6px 0 0}.error{color:var(--red);font-weight:600;margin:10px 0 0;text-align:center}.turnstile{margin-bottom:10px}.closed-note{text-align:center;margin:16px 0 4px}.result{text-align:center;margin-top:12px;border:8px solid transparent;border-image:url(/game/ui-panel-card.png) 4 fill / 8px / 0 round;padding:14px 8px}.result-tier{font-family:Silkscreen,monospace;font-size:26px;line-height:1.15;color:var(--red)}.result p{margin:8px 0 0}.scene{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.scene img{position:absolute;height:auto;image-rendering:pixelated}.scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 52%,#090a1400 45%,#090a1452)}@media (max-width: 700px){body{--k: 3}.scene img.top,.scene img.mid{display:none}}.leaves{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.leaf{position:absolute;top:-20px;width:16px;height:16px;background:url(/game/fx-leaf.png) 0 0 / 64px 16px;image-rendering:pixelated;animation:fall linear infinite,flip .8s steps(4) infinite}@keyframes fall{to{transform:translate(120px,110vh)}}@keyframes flip{to{background-position:-64px 0}}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;overflow:hidden}.confetti i{position:absolute;top:-10px;width:6px;height:8px;animation:drop 2.2s ease-in forwards}@keyframes drop{to{transform:translate(var(--dx),100vh) rotate(720deg);opacity:0}}@media (prefers-reduced-motion: reduce){.leaf,.confetti,.window,.tick{animation:none}.leaf{display:none}}@media (max-width: 480px){body,.ribbon{font-size:16px}}
