:root{--bg: #070a1c;--bg-2: #0b1030;--panel: rgba(16, 20, 52, .72);--panel-solid: #10143a;--line: rgba(170, 182, 255, .14);--line-strong: rgba(170, 182, 255, .32);--text: #eef0ff;--muted: #9aa3d6;--faint: #626aa0;--cream: #ffe9be;--cream-ink: #241a10;--me: #ffe28a;--friend: #8ee6ff;--danger: #ff8c8c;--display: "Silkscreen", "Courier New", monospace;--sans: "Space Grotesk", "Segoe UI", system-ui, sans-serif;--notch: polygon(0 4px, 4px 4px, 4px 0, calc(100% - 4px) 0, calc(100% - 4px) 4px, 100% 4px, 100% calc(100% - 4px) , calc(100% - 4px) calc(100% - 4px) , calc(100% - 4px) 100%, 4px 100%, 4px calc(100% - 4px) , 0 calc(100% - 4px) );color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;-webkit-tap-highlight-color:transparent}canvas{image-rendering:pixelated;image-rendering:crisp-edges}button,input{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--cream);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.label{font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.mono{font-family:var(--display);letter-spacing:.08em}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;font-family:var(--display);font-size:13px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;clip-path:var(--notch);transition:transform .12s ease,background .2s ease,color .2s ease,opacity .2s;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--cream);color:var(--cream-ink);box-shadow:0 0 40px #ffdca040}.btn-primary:hover:not(:disabled){background:#fff4da}.btn-ghost{background:#aab6ff14;color:var(--text)}.btn-ghost:hover:not(:disabled){background:#aab6ff29}.btn-small{min-height:38px;padding:0 14px;font-size:11px}.btn-icon{min-width:44px;min-height:44px;padding:0;font-size:18px}.btn-block{width:100%}.topbar{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(12px,env(safe-area-inset-top)) 16px 12px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{font-family:var(--display);font-size:12px;letter-spacing:.16em;text-decoration:none;color:var(--text);display:inline-flex;align-items:center;gap:10px;padding:8px 4px}.brand i{width:8px;height:8px;background:var(--cream);box-shadow:0 0 12px var(--cream);display:inline-block}.nav{display:flex;gap:6px}.demo-badge{position:fixed;left:16px;bottom:max(12px,env(safe-area-inset-bottom));z-index:30;font-family:var(--display);font-size:10px;letter-spacing:.12em;color:var(--faint);background:#070a1cb3;padding:4px 8px;border:1px solid var(--line);pointer-events:none}.page{min-height:100%;padding:88px 16px 64px;display:flex;flex-direction:column;align-items:center}.panel{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(60% 50% at 50% 38%,rgba(96,86,210,.22),transparent 70%),radial-gradient(40% 35% at 78% 80%,rgba(60,130,200,.1),transparent 70%),linear-gradient(var(--bg),var(--bg-2))}.ambient canvas{width:100%;height:100%;display:block}.intro{min-height:100svh;display:grid;place-items:center;padding:96px 16px 72px;text-align:center}.intro-inner{display:flex;flex-direction:column;align-items:center;gap:24px;max-width:760px}.hero-pet{position:relative;width:216px;height:252px;display:grid;place-items:center}.hero-pet:before{content:"";position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;background:radial-gradient(closest-side,var(--glow, rgba(255, 176, 140, .35)),transparent);filter:blur(6px);transition:background .8s ease}.hero-pet canvas{position:relative}.title{font-family:var(--display);font-weight:400;font-size:clamp(30px,7.4vw,64px);line-height:1.05;letter-spacing:.04em;margin:0;text-shadow:0 0 30px rgba(190,180,255,.35)}.subtitle{margin:0;color:var(--muted);font-size:clamp(16px,2.6vw,20px);max-width:30ch}.cta-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}.intro-meta{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;color:var(--faint);font-size:14px}.intro-meta b{color:var(--text);font-weight:500}.creator{width:100%;max-width:1080px;display:grid;grid-template-columns:1fr minmax(300px,400px);gap:24px;align-items:start}.stage{position:sticky;top:88px;aspect-ratio:1 / 1;display:grid;place-items:center;overflow:hidden;background:radial-gradient(closest-side,var(--glow, rgba(255, 176, 140, .25)),transparent 75%),repeating-linear-gradient(0deg,transparent 0 23px,rgba(170,182,255,.05) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,rgba(170,182,255,.05) 23px 24px);border:1px solid var(--line)}.stage-caption{position:absolute;left:16px;right:16px;bottom:14px;display:flex;justify-content:space-between;gap:8px}.controls{padding:20px;display:flex;flex-direction:column;gap:20px}.control-group{display:flex;flex-direction:column;gap:10px}.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#aab6ff0d;cursor:pointer;min-height:74px;padding:6px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;color:var(--muted);transition:border-color .15s,background .15s,color .15s}.chip:hover{border-color:var(--line-strong);color:var(--text)}.chip[aria-pressed=true]{border-color:var(--cream);background:#ffe9be14;color:var(--text)}.swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.swatch{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;aspect-ratio:1;min-height:34px;clip-path:var(--notch);position:relative}.swatch[aria-pressed=true]:after{content:"";position:absolute;top:30%;right:30%;bottom:30%;left:30%;background:var(--bg);clip-path:var(--notch)}.name-input{width:100%;min-height:48px;padding:0 14px;background:#04061499;border:1px solid var(--line);outline:none;font-size:16px}.name-input:focus{border-color:var(--cream)}.row{display:flex;gap:10px;align-items:center}.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}.hint{color:var(--faint);font-size:13px;margin:0}.error{color:var(--danger);font-size:14px;margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#03040eb8;display:grid;place-items:center;padding:16px;animation:fade .2s ease}.modal{width:min(440px,100%);padding:24px;display:flex;flex-direction:column;gap:16px;text-align:center;align-items:center}.modal h2{margin:0;font-family:var(--display);font-weight:400;font-size:18px;letter-spacing:.08em}.modal p{margin:0;color:var(--muted)}.modal .actions{display:flex;gap:10px;width:100%}.modal .actions .btn{flex:1}@keyframes fade{0%{opacity:0}}.world{position:fixed;top:0;right:0;bottom:0;left:0}.world canvas.world-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline:none}.world canvas.world-canvas:active{cursor:grabbing}.world-ui{position:fixed;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:10;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;pointer-events:none}.world-ui>*{pointer-events:auto}.zoom-stack{display:flex;flex-direction:column;gap:6px;align-items:center}.lod{font-family:var(--display);font-size:10px;letter-spacing:.14em;color:var(--muted);padding:4px 0}.world-search{display:flex;gap:6px;padding:6px;align-items:center}.world-search input{width:128px;min-height:40px;background:transparent;border:0;outline:none;padding:0 8px;font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;font-size:13px}.world-top{position:fixed;top:max(64px,calc(env(safe-area-inset-top) + 56px));left:50%;transform:translate(-50%);z-index:10;text-align:center;pointer-events:none;width:calc(100% - 32px)}.world-count{font-family:var(--display);font-size:11px;letter-spacing:.16em;color:var(--muted)}.toast{display:inline-block;margin-top:10px;padding:10px 16px;font-size:14px;animation:fade .3s ease}.empty-world{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:16px;z-index:5;pointer-events:none}.empty-world>div{pointer-events:auto;display:flex;flex-direction:column;gap:14px;align-items:center}.pet-card{position:fixed;z-index:15;right:16px;top:76px;width:min(300px,calc(100% - 32px));padding:16px;display:flex;flex-direction:column;gap:12px;animation:fade .2s ease}.pet-card-head{display:flex;gap:14px;align-items:center}.pet-card-head canvas{width:72px;height:84px;flex:none}.pet-card h3{margin:0;font-size:20px;font-weight:600;line-height:1.2;word-break:break-word}.close-x{position:absolute;top:6px;right:6px}.profile{width:100%;max-width:920px;display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:24px}.profile-art{display:grid;place-items:center;aspect-ratio:1;background:radial-gradient(closest-side,var(--glow),transparent 75%);border:1px solid var(--line)}.profile-info{display:flex;flex-direction:column;gap:18px;padding:24px}.profile-info h1{margin:0;font-size:clamp(28px,5vw,42px);font-weight:600;line-height:1.1;word-break:break-word}.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.fact{background:var(--panel-solid);padding:12px 14px;display:flex;flex-direction:column;gap:2px}.fact b{font-weight:500;font-size:17px}.actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.recovery{padding:16px;border:1px dashed var(--line-strong);display:flex;flex-direction:column;gap:10px}.recovery code{display:block;font-size:12px;word-break:break-all;color:var(--muted);background:#04061499;padding:8px 10px}.warn{padding:12px 14px;border:1px solid rgba(255,226,138,.45);background:#ffe28a12;color:var(--muted);font-size:14px}.warn b{color:var(--me);font-weight:500}.email-form{display:flex;flex-direction:column;gap:8px;width:100%}.email-form .row .name-input{flex:1;min-width:0}.invite{width:100%;max-width:920px;margin-bottom:20px;padding:22px;display:grid;grid-template-columns:auto 1fr minmax(220px,280px);gap:20px;align-items:center;border-color:#8ee6ff59;box-shadow:0 0 60px #8ee6ff14}.invite-text{display:flex;flex-direction:column;gap:6px}.invite h1{margin:0;font-size:clamp(20px,3.4vw,26px);font-weight:600;line-height:1.2;word-break:break-word}.invite p{margin:0;color:var(--muted)}@media (max-width: 820px){.invite{grid-template-columns:auto 1fr;gap:14px;padding:18px}.invite .btn{grid-column:1 / -1}}.center-msg{max-width:460px;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center;margin-top:10vh}.center-msg h1{font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:.06em;margin:0}.center-msg p{margin:0;color:var(--muted)}.friend-form{width:min(480px,100%);padding:24px;display:flex;flex-direction:column;gap:14px}.friend-form h1{margin:0;font-family:var(--display);font-weight:400;font-size:20px;letter-spacing:.06em}.together-bar{position:fixed;z-index:12;left:50%;transform:translate(-50%);top:max(64px,calc(env(safe-area-inset-top) + 56px));display:flex;gap:8px;padding:8px;align-items:center;flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100% - 32px)}.together-bar .who{display:flex;align-items:center;gap:8px;padding:0 8px;font-size:14px}.together-bar .who i{width:8px;height:8px;display:inline-block}@media (max-width: 820px){.creator{grid-template-columns:1fr;gap:14px}.stage{position:relative;top:0;aspect-ratio:auto;height:min(46svh,360px)}.profile{grid-template-columns:1fr}.profile-art{max-height:46svh;aspect-ratio:auto;height:340px}.nav .hide-sm{display:none}.pet-card{top:auto;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 70px);right:16px}.demo-badge{position:static;display:block;margin:-40px 16px 24px;text-align:center}}@media (max-width: 420px){.chips,.swatches{gap:6px}.actions-grid{grid-template-columns:1fr}.world-search input{width:96px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
