*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#000;font-family:SF Mono,Fira Code,JetBrains Mono,Courier New,monospace;color:#fff}canvas{position:fixed;top:0;left:0;width:100%;height:100%}#bg-canvas{z-index:0}#body-canvas{z-index:1;opacity:.7;mix-blend-mode:screen;pointer-events:none}#main-canvas{z-index:2}#growth-canvas{z-index:3}#bloom-canvas{z-index:4;filter:blur(16px);opacity:.35;mix-blend-mode:screen;pointer-events:none}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-bg{0%{opacity:.85}50%{opacity:.92}to{opacity:.85}}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#0a0a0ae6,#000000f5 70%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity 1.2s ease,visibility 1.2s ease;animation:pulse-bg 6s ease-in-out infinite}#overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}#overlay-content{text-align:center;padding:2rem}#title{font-size:clamp(2.5rem,8vw,5rem);font-weight:100;letter-spacing:.45em;text-indent:.45em;text-transform:uppercase;margin-bottom:1rem;white-space:nowrap;background:linear-gradient(90deg,#22d3ee,#34d399,#fbbf24,#22d3ee);background-size:300% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient-shift 8s ease infinite,fadeUp .8s ease both}#subtitle{font-size:.85rem;font-weight:300;color:#fff6;margin-bottom:2rem;letter-spacing:.15em;animation:fadeUp .8s ease .15s both}.separator{width:60px;height:1px;background:#ffffff14;margin:0 auto 2rem;animation:fadeUp .8s ease .3s both}#seed-input{display:block;width:min(320px,80vw);margin:0 auto;padding:.85rem 0;font-size:1.1rem;font-family:inherit;color:#fff;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.2);outline:none;transition:border-color .3s;text-align:center;letter-spacing:.08em;animation:fadeUp .8s ease .45s both}#seed-input:focus{border-bottom-color:#22d3ee}#seed-input::placeholder{color:#fff3}#enter-btn{display:inline-block;margin-top:2rem;padding:.7rem 3rem;font-size:.85rem;font-family:inherit;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:#fff9;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:0;cursor:pointer;transition:all .3s ease;animation:fadeUp .8s ease .6s both}#enter-btn:hover{color:#fff;background:#22d3ee14;border-color:#22d3ee66}#camera-toggle{margin-top:1.8rem;animation:fadeUp .8s ease .75s both}#camera-label{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;-webkit-user-select:none;user-select:none}#camera-checkbox{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.toggle-track{position:relative;display:inline-block;width:36px;height:18px;border-radius:9px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);transition:background .3s ease,border-color .3s ease}.toggle-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#ffffff59;transition:transform .3s ease,background .3s ease}#camera-checkbox:checked~.toggle-track{background:#22d3ee26;border-color:#22d3ee66}#camera-checkbox:checked~.toggle-track .toggle-thumb{transform:translate(18px);background:#22d3ee}.toggle-text{font-size:.75rem;font-weight:300;letter-spacing:.12em;color:#ffffff59;transition:color .3s ease}#camera-checkbox:checked~.toggle-text{color:#22d3eeb3}#hud{position:fixed;bottom:1.2rem;left:1.5rem;right:1.5rem;z-index:50;display:flex;justify-content:space-between;pointer-events:none;opacity:0;transition:opacity 1.5s ease .5s}#hud.visible{opacity:1}#seed-label{font-size:.7rem;font-weight:300;letter-spacing:.12em;color:#fff3}#gesture-label{font-size:.7rem;font-weight:300;letter-spacing:.1em;color:#22d3ee80;transition:opacity .3s ease}#gesture-label:empty{opacity:0}#hint{font-size:.7rem;font-weight:300;letter-spacing:.1em;color:#ffffff40;transition:opacity 2s ease}#hint.fade{opacity:0}@media(max-width:600px){#title{letter-spacing:.3em}#overlay-content{padding:1.5rem}#seed-input{font-size:1rem;padding:.7rem 0}}
