*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#0e1730;font-family:Avenir Next,Segoe UI,system-ui,sans-serif;user-select:none;-webkit-user-select:none}#app,#app canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;color:#eef4fa;opacity:0;transition:opacity .8s}#hud.live{opacity:1}#title-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#080c1880,#080c1847 45%,#080c189e);transition:opacity .6s ease;cursor:default}#title-screen.hidden{opacity:0;pointer-events:none}.title-inner{text-align:center;color:#f2f7fc;padding:24px}.title-inner h1{font-size:clamp(52px,9vw,96px);line-height:.95;letter-spacing:.06em;font-weight:800;background:linear-gradient(180deg,#fff8e8 25%,#ffd166 60%,#e8943c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 14px rgba(0,0,0,.55));animation:title-float 5s ease-in-out infinite}@keyframes title-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.title-inner .sub{margin:14px 0 26px;font-size:17px;color:#d7e4f0;text-shadow:0 1px 4px rgba(0,0,0,.8)}.buttons{display:flex;gap:14px;justify-content:center;margin-bottom:30px}.buttons button{font:inherit;font-size:19px;font-weight:700;color:#1b2433;cursor:pointer;padding:13px 34px;border:none;border-radius:30px;background:linear-gradient(180deg,#ffe9b8,#ffc94f);box-shadow:0 4px 16px #00000073,inset 0 1px #ffffffb3;transition:transform .12s,box-shadow .12s}.buttons button:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 7px 22px #ffbe5066}.buttons #btn-new{background:linear-gradient(180deg,#dfe9f2,#aebfcf)}.controls-card{display:grid;grid-template-columns:repeat(3,auto);gap:7px 26px;justify-content:center;font-size:13.5px;color:#c8d6e4;background:#080e188c;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:14px 22px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:left}.controls-card b{color:#ffd166}.title-inner .seed{margin-top:16px;font-size:12px;opacity:.55}#title-screen.paused h1{font-size:clamp(34px,5vw,54px)}#credits{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;background:#060a14b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity 1.2s ease}#credits.open{opacity:1;pointer-events:auto}.credits-inner{text-align:center;color:#f2f7fc;max-width:640px;padding:30px}.credits-inner h2{font-size:clamp(40px,6vw,64px);letter-spacing:.12em;font-weight:800;background:linear-gradient(180deg,#fff8e8 25%,#ffd166 60%,#e8943c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 14px rgba(0,0,0,.55))}.credits-inner .flavor{margin:14px 0 26px;font-size:17px;color:#d7e4f0;font-style:italic}.credit-lines{display:flex;flex-direction:column;gap:10px;font-size:15px;margin-bottom:22px}.credit-lines span{color:#ffd166;font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin-right:8px}#credits-stats{font-size:14px;opacity:.7;margin-bottom:24px}#btn-credits{font:inherit;font-size:18px;font-weight:700;color:#1b2433;cursor:pointer;padding:12px 32px;border:none;border-radius:28px;background:linear-gradient(180deg,#ffe9b8,#ffc94f);box-shadow:0 4px 16px #00000073}#btn-credits:hover{transform:translateY(-2px)}#crosshair{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#ffffffd9;box-shadow:0 0 4px #0009}#stamina{position:absolute;left:calc(50% + 70px);top:calc(50% - 20px);width:56px;height:56px;opacity:0}#stamina-fill{width:100%;height:100%;border-radius:50%;mask:radial-gradient(circle,transparent 56%,black 57%);-webkit-mask:radial-gradient(circle,transparent 56%,black 57%);filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}#stamina.exhausted{animation:pulse .5s infinite alternate}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.12)}}#moons{position:absolute;top:18px;left:20px;display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.7);background:#0a101c73;padding:7px 14px 7px 10px;border-radius:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#hotbar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:6px;padding:7px;border-radius:12px;background:#0a101c73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.slot{position:relative;width:46px;height:46px;border-radius:8px;background:#ffffff12;border:2px solid rgba(255,255,255,.12);transition:border-color .12s,transform .12s}.slot.selected{border-color:#ffd166;transform:translateY(-3px)}.slot .swatch{position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:5px;box-shadow:inset -3px -4px #00000040,inset 2px 3px #ffffff40}.slot.empty .swatch{opacity:.25}.slot .count{position:absolute;right:3px;bottom:1px;font-size:12px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.9)}.slot .key{position:absolute;left:4px;top:1px;font-size:9px;opacity:.55}#toasts{position:absolute;top:64px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.toast{padding:9px 22px;border-radius:20px;font-size:15px;font-weight:600;background:#0a101cb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.14);opacity:0;transform:translateY(-8px);transition:all .45s cubic-bezier(.2,.9,.3,1.2);text-shadow:0 1px 2px rgba(0,0,0,.8);white-space:nowrap}.toast.show{opacity:1;transform:translateY(0)}.toast.gold{border-color:#ffd166b3;color:#ffe9b0;box-shadow:0 0 18px #ffc85a40}#tip{position:absolute;bottom:86px;left:50%;transform:translate(-50%);font-size:14px;opacity:0;transition:opacity .5s;text-shadow:0 1px 3px rgba(0,0,0,.9);color:#d8e6f2}#tip.show{opacity:.95}#vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 62%,rgba(8,12,22,.38) 100%)}#fade{position:absolute;top:0;right:0;bottom:0;left:0;background:#06090f;opacity:0;transition:opacity .4s ease}#minimap{position:absolute;top:16px;right:16px;width:170px;height:170px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}#hearts{position:absolute;top:58px;left:20px;display:flex;gap:3px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.7))}#hearts svg.full path{fill:#ff4d5e;stroke:#8e1824;stroke-width:1.4}#hearts svg.empty path{fill:#1418228c;stroke:#ffffff59;stroke-width:1.4}#moon-goal{font-size:13px;opacity:.75;margin-left:2px}#prompt{position:absolute;bottom:130px;left:50%;transform:translate(-50%);padding:7px 18px;border-radius:18px;font-size:15px;font-weight:600;background:#0a101ca8;border:1px solid rgba(255,255,255,.2);opacity:0;transition:opacity .25s;text-shadow:0 1px 2px #000}#prompt.show{opacity:1}#prompt b,#prompt .key{color:#ffd166}#damage-flash{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(220,30,40,.55) 100%)}#damage-flash.hit{animation:dmg .55s ease-out}@keyframes dmg{0%{opacity:1}to{opacity:0}}#bigmap{position:absolute;top:0;right:0;bottom:0;left:0;background:#05080ee0;display:none;pointer-events:auto;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#bigmap.open{display:block}#bigmap canvas{width:100%;height:100%;cursor:crosshair}#bigmap-hint{position:absolute;bottom:22px;left:50%;transform:translate(-50%);font-size:15px;color:#cfe0ee;text-shadow:0 1px 3px #000}
