:root{--bg:#faf5e7;--bg-surface:#dde8df;--text:#2f6e5e;--text-h:#0b1f17;--accent:#1d5b4f;--accent-soft:#3b7f6c;--accent-mint:#4fd1c5;--accent-cream:#faf5e7;--border:color-mix(in oklab, var(--accent) 18%, transparent);--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--bg:#0b1f17;--bg-surface:#14302a;--text:#dde8df;--text-h:#faf5e7;--accent:#4fd1c5;--accent-soft:#3b7f6c;--accent-mint:#4fd1c5;--accent-cream:#faf5e7;--border:color-mix(in oklab, var(--accent-mint) 24%, transparent)}}body{background:var(--bg);color:var(--text);margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);letter-spacing:-.01em;margin:0;font-weight:600}.cloud-save-prompt{box-sizing:border-box;border:1px solid color-mix(in oklab, var(--accent-mint) 42%, var(--border));background:linear-gradient(140deg, #4ad8c51f, #091e1bc2), color-mix(in oklab, var(--bg) 90%, transparent);width:100%;color:var(--text);border-radius:1rem;justify-content:space-between;align-items:center;gap:.75rem;margin:.55rem 0 0;padding:.7rem .85rem;display:flex;box-shadow:0 .8rem 1.8rem #00000024}.cloud-save-prompt p{margin:0;font-size:.76rem;line-height:1.25}.cloud-save-prompt-actions{flex:none;gap:.42rem;display:inline-flex}.cloud-save-prompt button{border:1px solid color-mix(in oklab, var(--accent-mint) 55%, var(--border));background:color-mix(in oklab, var(--accent-mint) 18%, transparent);color:var(--accent-mint);cursor:pointer;text-transform:lowercase;border-radius:999px;padding:.42rem .58rem;font-size:.68rem;font-weight:800}.cloud-save-prompt button:last-child{color:color-mix(in oklab, var(--text) 70%, transparent);border-color:color-mix(in oklab, var(--border) 70%, transparent);background:#04120f47}@media (width<=520px){.cloud-save-prompt{flex-direction:column;align-items:stretch}.cloud-save-prompt-actions{justify-content:flex-end}}.creature{width:100%;max-width:320px;margin:0 auto;display:block;position:relative}button.creature-interactive{cursor:pointer;background:0 0;border:none;border-radius:1rem;padding:.5rem;font-family:inherit;transition:transform 80ms ease-out}button.creature-interactive:active{transform:scale(.96)}button.creature-interactive:focus-visible{outline:2px solid var(--accent-mint);outline-offset:2px}.creature-sprite-stack{aspect-ratio:1;transform-origin:50% 100%;width:100%;animation:4.2s ease-in-out infinite creature-breathe;position:relative}.creature-foot-shadow{background:radial-gradient(ellipse at center, color-mix(in oklab, var(--text-h) 55%, transparent) 0%, transparent 70%);filter:blur(6px);pointer-events:none;z-index:0;transform-origin:50%;height:14px;animation:3.6s ease-in-out infinite creature-shadow-breathe;position:absolute;bottom:1%;left:20%;right:20%}@keyframes creature-shadow-breathe{0%,to{opacity:.85;transform:scaleX(1)}50%{opacity:.7;transform:scaleX(.92)}}.creature-sprite{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;opacity:0;width:100%;height:100%;transition:opacity .6s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.creature-sprite.is-active{opacity:1}@keyframes creature-breathe{0%,to{transform:translateY(0)scale(1)rotate(0)}25%{transform:translateY(-1px)scale(1.008)rotate(-.5deg)}50%{transform:translateY(-2px)scale(1.02)rotate(0)}75%{transform:translateY(-1px)scale(1.008)rotate(.5deg)}}.creature-mood-happy .creature-sprite-stack{animation:1.9s ease-in-out infinite creature-happy-bounce}@keyframes creature-happy-bounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-8px)scale(1.03)}}.creature-mood-sad .creature-sprite-stack{animation:4s ease-in-out infinite creature-sad-slump}@keyframes creature-sad-slump{0%,to{transform:translateY(4px)scale(.985)}50%{transform:translateY(5px)scale(.985)}}.creature-eating .creature-sprite-stack{animation:.9s ease-in-out creature-eating-nod}@keyframes creature-eating-nod{0%,to{transform:translateY(0)rotate(0)}18%,58%{transform:translateY(-4px)rotate(-1.5deg)}38%,78%{transform:translateY(4px)rotate(1.5deg)}}.creature-petting .creature-sprite-stack{animation:1.2s ease-in-out creature-petting-wiggle}@keyframes creature-petting-wiggle{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-4px)rotate(-2deg)}75%{transform:translateY(-4px)rotate(2deg)}}@media (prefers-reduced-motion:reduce){.creature-sprite-stack{animation:none}.creature-sprite{transition:none}}.hearts{pointer-events:none;position:absolute;inset:0;overflow:hidden}.heart{color:#e8738c;filter:drop-shadow(0 2px 4px #0003);transform-origin:50%;width:28px;height:28px;margin-left:-14px;animation:.9s ease-out forwards heart-rise;position:absolute;bottom:35%}.heart svg{fill:currentColor;width:100%;height:100%}@keyframes heart-rise{0%{opacity:0;transform:translateY(0) scale(.4) rotate(var(--heart-rot,0deg))}20%{opacity:1;transform:translateY(-20px) scale(1) rotate(var(--heart-rot,0deg))}to{opacity:0;transform:translateY(-110px) scale(1.1) rotate(var(--heart-rot,0deg))}}@media (prefers-reduced-motion:reduce){.heart{animation:.6s ease-out forwards heart-rise-reduced}@keyframes heart-rise-reduced{0%{opacity:0}30%{opacity:1}to{opacity:0}}}.thought-bubble{opacity:0;pointer-events:none;z-index:3;text-align:center;max-width:90%;margin-bottom:-1px;transition:opacity .22s,transform .22s cubic-bezier(.22,1.4,.36,1);position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(8px)scale(.92)}.thought-bubble.is-visible{opacity:1;transform:translate(-50%)translateY(0)scale(1)}.thought-bubble-text{background:var(--bg);color:var(--text-h);border:1px solid var(--border);box-shadow:0 4px 10px color-mix(in oklab, var(--text-h) 10%, transparent), 0 1px 2px color-mix(in oklab, var(--text-h) 6%, transparent);white-space:nowrap;font-size:.95rem;line-height:1.1;font-family:var(--sans);border-radius:16px;padding:.45rem .95rem;display:inline-block;position:relative}.thought-bubble-text:after{content:"";background:var(--bg);border-right:1px solid var(--border);border-bottom:1px solid var(--border);width:10px;height:10px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}@media (prefers-reduced-motion:reduce){.thought-bubble{transition:opacity .12s;transform:translate(-50%)}.thought-bubble.is-visible{transform:translate(-50%)}}.celestial-body{pointer-events:none;z-index:1;width:56px;height:56px;transition:left .6s linear,top .6s linear,opacity .6s linear;position:absolute;transform:translate(-50%,-50%)}.celestial-disc{border-radius:50%;position:absolute;inset:0}.celestial-glow{filter:blur(20px);border-radius:50%;position:absolute;inset:-180%}.celestial-body-sun .celestial-disc{background:radial-gradient(circle at 35% 35%,#ffffe0 0%,#fff7ad 40%,#ffd166 70%,#ffae3a 100%);box-shadow:0 0 24px 4px #ffc8648c}.celestial-body-sun .celestial-glow{background:radial-gradient(circle,#ffdc8259 0%,#ffc8642e 30%,#0000 70%)}.celestial-body-moon .celestial-disc{background:radial-gradient(circle at 38% 32%,#f8f5e0 0%,#e8e3c8 50%,#c8c2a0 100%);box-shadow:0 0 18px 2px #f5f0c873}.celestial-body-moon .celestial-glow{background:radial-gradient(circle,#dcdcf04d 0%,#b4c8f01f 35%,#0000 70%)}@keyframes celestial-shimmer{0%,to{filter:brightness()}50%{filter:brightness(1.1)}}.celestial-body-moon .celestial-disc{animation:6s ease-in-out infinite celestial-shimmer}@media (prefers-reduced-motion:reduce){.celestial-body{transition:opacity .2s linear}.celestial-body-moon .celestial-disc{animation:none}}.star-field{pointer-events:none;z-index:1;mix-blend-mode:screen;transition:opacity 1.2s linear;position:absolute;inset:0}.star{background:radial-gradient(circle,ivory 0%,#fffff0b3 40%,#0000 100%);border-radius:50%;animation:4s ease-in-out infinite star-twinkle;position:absolute;box-shadow:0 0 4px #fffff0cc}@keyframes star-twinkle{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@media (prefers-reduced-motion:reduce){.star{opacity:.85;animation:none}}.themed-stage{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.themed-stage-scene{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;z-index:0;width:100%;height:100%;transition:filter 1.4s;position:absolute;inset:0}.themed-stage-time-overlay{pointer-events:none;z-index:1;mix-blend-mode:multiply;transition:background 1.4s,opacity 1.4s;position:absolute;inset:0}.themed-stage-sky-effects{pointer-events:none;z-index:2;position:absolute;inset:0;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.themed-stage-time-morning{background:linear-gradient(#ffe6b42e 0%,#ffdcaa0d 100%)}.themed-stage-time-day{background:0 0}.themed-stage-time-evening{background:linear-gradient(#ff8c5052 0%,#b4505a2e 100%)}.themed-stage-time-night{background:linear-gradient(#0f193c8c 0%,#0a122899 100%)}.themed-stage-content{z-index:3;width:100%;height:100%;position:relative}.themed-stage-ground-patch{pointer-events:none;z-index:1;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.creature-view-stage{aspect-ratio:16/9;background:var(--bg-surface);border:1px solid var(--border);width:100%;min-height:22rem;box-shadow:0 1px 0 color-mix(in oklab, var(--text-h) 4%, transparent);border-radius:1.25rem;flex:none;margin-top:2rem;position:relative;overflow:hidden}.creature-view-stage-compact{flex:initial;border-radius:1rem;min-height:18rem;margin-top:1rem}.creature-view-stage .themed-stage-content{place-items:end center;padding-bottom:1.5rem;display:grid}.stage-creatures-layout{box-sizing:border-box;justify-content:center;align-items:end;width:min(100%,24rem);padding-inline:.75rem;display:flex;position:relative}.stage-creatures-layout.has-visitor{width:min(100%,29rem)}.stage-creature-column{z-index:1;flex-direction:column;flex:auto;align-items:center;min-width:0;max-width:320px;display:flex;position:relative}.stage-visitor{z-index:0;flex-direction:column;flex:0 0 clamp(88px,22vw,148px);align-items:center;margin-bottom:clamp(.9rem,2vw,1.3rem);margin-right:clamp(-.9rem,-2vw,-.35rem);display:flex;position:relative}.stage-visitor-badge{border:1px solid color-mix(in oklab, var(--border) 82%, var(--accent));background:color-mix(in oklab, var(--bg) 88%, transparent);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;text-align:center;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;margin:0 0 .15rem;padding:.22rem .55rem;font-size:.66rem;font-weight:700}.stage-visitor-creature{transform-origin:50% 100%;filter:saturate(.92)brightness(.96);width:100%;transform:scale(.88)}.stage-visitor-creature .creature{max-width:none}@media (width<=520px){.stage-creatures-layout.has-visitor{width:min(100%,25rem)}.stage-visitor{flex-basis:clamp(76px,21vw,104px);margin-bottom:.7rem;margin-right:-.25rem}.stage-visitor-badge{letter-spacing:.05em;font-size:.58rem}}.creature-nameplate{text-align:center;color:var(--accent);letter-spacing:.08em;margin:.9rem 0 0;font-size:1.05rem;font-weight:500}.creature-nameplate span{opacity:.4;margin:0 .25rem}.dev-panel{z-index:100;box-sizing:border-box;background:color-mix(in oklab, var(--text-h) 92%, transparent);width:240px;max-height:calc(100vh - 2rem);color:var(--bg);border:1px solid color-mix(in oklab, var(--accent-mint) 40%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:.75rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;position:fixed;top:1rem;left:1rem;overflow:hidden auto;box-shadow:0 8px 24px #00000059}.dev-panel-header{border-bottom:1px solid color-mix(in oklab, var(--accent-mint) 20%, transparent);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.4rem;display:flex}.dev-panel-title{text-transform:uppercase;letter-spacing:.15em;color:var(--accent-mint);font-size:.7rem;font-weight:600}.dev-panel-close{color:var(--bg);cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 .3rem;font-size:1.2rem;line-height:1}.dev-panel-close:hover{opacity:1}.dev-panel-section{margin-bottom:.65rem}.dev-panel-section:last-child{margin-bottom:0}.dev-panel-label{color:color-mix(in oklab, var(--bg) 70%, var(--text-h) 30%);justify-content:space-between;align-items:baseline;margin-bottom:.3rem;font-size:.7rem;display:flex}.dev-panel-value{color:var(--accent-mint);font-weight:600}.dev-panel-row{gap:.3rem;display:flex}.dev-panel-grid{grid-template-columns:repeat(3,1fr);gap:.3rem;display:grid}.dev-panel-btn{background:color-mix(in oklab, var(--bg) 10%, transparent);min-width:0;color:var(--bg);border:1px solid color-mix(in oklab, var(--accent-mint) 25%, transparent);cursor:pointer;white-space:nowrap;text-align:center;border-radius:6px;flex:1;padding:.35rem .4rem;font-family:inherit;font-size:.72rem;transition:background .1s,transform 80ms}.dev-panel-grid .dev-panel-btn{flex:initial}.dev-panel-btn:hover{background:color-mix(in oklab, var(--accent-mint) 20%, transparent);border-color:var(--accent-mint)}.dev-panel-btn:active{transform:scale(.96)}.dev-panel-btn-danger{width:100%;color:color-mix(in oklab, #fca5a5 80%, var(--bg) 20%);border-color:oklab(57.7099% .191149 .0987651/.5)}.dev-panel-btn-danger:hover{background:oklab(57.7099% .191149 .0987651/.3);border-color:#dc2626}.dev-panel-toggle{z-index:100;background:color-mix(in oklab, var(--text-h) 85%, transparent);color:var(--accent-mint);border:1px solid color-mix(in oklab, var(--accent-mint) 40%, transparent);text-transform:uppercase;letter-spacing:.15em;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:.6;border-radius:999px;padding:.3rem .6rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;transition:opacity .12s;position:fixed;top:1rem;left:1rem}.dev-panel-toggle:hover{opacity:1}.name-overlay{background:color-mix(in oklab, var(--bg) 78%, var(--text-h));z-index:100;box-sizing:border-box;place-items:center;padding:1rem;animation:.22s ease-out name-overlay-in;display:grid;position:fixed;inset:0}@keyframes name-overlay-in{0%{opacity:0}to{opacity:1}}.name-card{background:var(--bg);border:1px solid var(--border);box-sizing:border-box;border-radius:1.25rem;flex-direction:column;gap:.9rem;width:100%;max-width:22rem;padding:1.75rem;animation:.3s cubic-bezier(.2,.8,.2,1) name-card-in;display:flex;box-shadow:0 20px 60px #0000002e}@keyframes name-card-in{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.name-card h2{text-align:center;letter-spacing:-.01em;margin:0;font-size:1.4rem}.name-hint{text-align:center;opacity:.7;margin:0;font-size:.9rem}.name-card input{font:inherit;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-h);box-sizing:border-box;border-radius:.75rem;outline:none;width:100%;padding:.75rem 1rem;transition:border-color .15s}.name-card input:focus-visible{border-color:var(--accent)}.name-card input[aria-invalid=true]{border-color:#d96a4a}.name-card button{background:var(--accent);color:var(--accent-cream);font:inherit;cursor:pointer;border:none;border-radius:999px;padding:.75rem 1rem;font-weight:500;transition:transform .12s,box-shadow .12s,opacity .12s}.name-card button:disabled{opacity:.4;cursor:not-allowed}.name-card button:not(:disabled):hover{box-shadow:0 6px 16px color-mix(in oklab, var(--accent) 45%, transparent);transform:translateY(-1px)}.name-card button:not(:disabled):active{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.name-overlay,.name-card{animation:none}}.portal-gate{--portal-ember:#ffd484;--portal-moss:#68dfbd;--portal-shadow:#040f0dc2;z-index:4;pointer-events:auto;position:absolute;top:calc(clamp(6.8rem,30%,10.4rem) + 50px);left:calc(clamp(1.45rem,5.2%,2.35rem) - 10px)}.portal-gate-button{cursor:pointer;filter:drop-shadow(0 .55rem .65rem #00000061);background:0 0;border:0;border-radius:48% 52% 43% 57%/38% 40% 60% 62%;width:clamp(1.8rem,4.7vw,2.6rem);height:clamp(2.5rem,6.3vw,3.55rem);padding:0;position:relative;transform:rotate(-5deg)}.portal-gate-button:before,.portal-gate-button:after{content:"";border-radius:inherit;position:absolute;inset:0}.portal-gate-button:before{opacity:.84;background:radial-gradient(at 50% 44%,#b7ffe361 0%,#58ffc629 20%,#0c36307a 42%,#051110e0 72%),linear-gradient(145deg,#1b3123eb,#091512f2);box-shadow:inset 0 0 .55rem #000000d9,inset 0 0 1.05rem #68dfbd33,0 0 .65rem #68dfbd24}.portal-gate-button:after{opacity:.58;border:1px solid #ffd48438;inset:-.2rem;box-shadow:inset 0 0 0 1px #1535288c,0 0 .8rem #68dfbd24}.portal-gate-button:hover:before,.portal-gate-button:focus-visible:before,.portal-gate-button[data-open=true]:before{opacity:1;box-shadow:inset 0 0 .55rem #000000d1,inset 0 0 1.35rem #68dfbd57,0 0 1.45rem #68dfbd57}.portal-gate-button:hover:after,.portal-gate-button:focus-visible:after,.portal-gate-button[data-open=true]:after{opacity:.82;border-color:#ffd4845c}.portal-gate-button:focus-visible{outline:2px solid var(--portal-moss);outline-offset:.28rem}.portal-gate-button:active{transform:rotate(-5deg)scale(.95)}.portal-gate-panel{box-sizing:border-box;border:1px solid color-mix(in oklab, var(--border) 74%, var(--portal-moss));background:linear-gradient(150deg, #091e1bf0, #152019e0), color-mix(in oklab, var(--bg) 92%, transparent);width:min(16.5rem,64vw);max-height:min(20rem,100vh - 12rem);color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;padding:1rem;position:absolute;top:-4.3rem;left:calc(100% + .55rem);overflow:auto;box-shadow:0 1rem 2.2rem #00000052}.portal-gate-panel:before{content:"";background:inherit;border-left:1px solid color-mix(in oklab, var(--border) 74%, var(--portal-moss));border-bottom:1px solid color-mix(in oklab, var(--border) 74%, var(--portal-moss));width:.68rem;height:.68rem;position:absolute;top:5.35rem;left:-.34rem;transform:rotate(45deg)}.portal-gate-kicker,.portal-gate-status{color:var(--accent-mint);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:700}.portal-gate-panel h2{color:var(--text-h);margin:.18rem 0 .35rem;font-size:.95rem;line-height:1.1}.portal-gate-panel p:not(.portal-gate-kicker):not(.portal-gate-status){color:color-mix(in oklab, var(--text) 86%, white);margin:0;font-size:.74rem;line-height:1.35}.portal-gate-recent{border-top:1px solid color-mix(in oklab, var(--border) 54%, transparent);margin-top:.65rem;padding-top:.55rem}.portal-gate-recent-title{color:var(--accent-mint);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-size:.62rem;font-weight:800}.portal-gate-recent ul{gap:.26rem;margin:0;padding:0;list-style:none;display:grid}.portal-gate-recent li{color:color-mix(in oklab, var(--text) 88%, white);justify-content:space-between;gap:.55rem;font-size:.72rem;display:flex}.portal-gate-recent time{color:color-mix(in oklab, var(--accent-mint) 70%, var(--text));flex:none;font-size:.66rem}.portal-gate-action{border:1px solid color-mix(in oklab, var(--portal-moss) 50%, var(--border));background:color-mix(in oklab, var(--portal-moss) 16%, #071815e6);width:100%;color:var(--accent-mint);cursor:pointer;letter-spacing:.02em;border-radius:999px;margin:.7rem 0 .5rem;padding:.44rem .65rem;font-weight:800}.portal-gate-action:hover{background:color-mix(in oklab, var(--portal-moss) 24%, #071815e6)}.portal-gate-action:focus-visible{outline:2px solid var(--portal-ember);outline-offset:2px}@media (prefers-reduced-motion:no-preference){.portal-gate-button:before{animation:4.5s ease-in-out infinite portal-gate-breathe}}@keyframes portal-gate-breathe{0%,to{filter:brightness(.92)saturate(.95)}50%{filter:brightness(1.08)saturate(1.08)}}@media (width<=520px){.portal-gate{transform-origin:0 0;top:calc(31% + 28px);left:4%;transform:scale(.9)}.portal-gate-panel{width:min(16rem,82vw);max-height:16rem;top:-2.5rem;left:0}.portal-gate-panel:before{border-left:1px solid color-mix(in oklab, var(--border) 74%, var(--portal-moss));border-top:0;border-bottom:1px solid color-mix(in oklab, var(--border) 74%, var(--portal-moss));top:3.3rem;left:1.2rem}}.notify-toggle{z-index:5;background:color-mix(in oklab, var(--bg) 85%, transparent);border:1px solid var(--border);width:36px;height:36px;color:var(--accent);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;justify-content:center;align-items:center;padding:0;transition:transform 80ms ease-out,background .12s,color .12s;display:inline-flex;position:absolute;top:.75rem;right:3.5rem}.notify-toggle:hover{color:var(--accent-mint);background:color-mix(in oklab, var(--bg) 95%, transparent)}.notify-toggle:active{transform:scale(.92)}.notify-toggle:focus-visible{outline:2px solid var(--accent-mint);outline-offset:2px}.notify-toggle[aria-pressed=true]{color:var(--accent-mint)}.share-button{z-index:5;background:color-mix(in oklab, var(--bg) 85%, transparent);border:1px solid var(--border);width:36px;height:36px;color:var(--accent);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;justify-content:center;align-items:center;padding:0;transition:transform 80ms ease-out,background .12s,color .12s;display:inline-flex;position:absolute;top:.75rem;right:6.25rem}.share-button:hover{color:var(--accent-mint);background:color-mix(in oklab, var(--bg) 95%, transparent)}.share-button:active{transform:scale(.92)}.share-button:focus-visible{outline:2px solid var(--accent-mint);outline-offset:2px}.share-button[data-status=copied]{color:var(--accent-mint)}.share-button[data-status=failed]{color:color-mix(in oklab, #ff9f68 70%, var(--accent))}.share-button-status{background:color-mix(in oklab, var(--bg) 92%, transparent);min-width:max-content;color:var(--accent);letter-spacing:.04em;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:.2rem .45rem;font-size:.68rem;font-weight:700;transition:opacity .12s,transform .12s;position:absolute;top:calc(100% + .35rem);right:0;transform:translateY(-2px)}.share-button-status:not(:empty){opacity:1;transform:translateY(0)}.mute-toggle{z-index:5;background:color-mix(in oklab, var(--bg) 85%, transparent);border:1px solid var(--border);width:36px;height:36px;color:var(--accent);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;justify-content:center;align-items:center;padding:0;transition:transform 80ms ease-out,background .12s,color .12s;display:inline-flex;position:absolute;top:.75rem;right:.75rem}.mute-toggle:hover{color:var(--accent-mint);background:color-mix(in oklab, var(--bg) 95%, transparent)}.mute-toggle:active{transform:scale(.92)}.mute-toggle:focus-visible{outline:2px solid var(--accent-mint);outline-offset:2px}.mute-toggle[aria-pressed=true]{color:color-mix(in oklab, var(--accent) 55%, var(--text-h) 45%);opacity:.8}.stage-controls-menu{z-index:5;pointer-events:none;justify-items:end;gap:1rem;width:100%;margin:-3rem 0 .25rem;display:grid;position:relative}.stage-controls-menu-toggle{background:color-mix(in oklab, var(--bg) 85%, transparent);border:1px solid var(--border);width:36px;height:36px;color:var(--accent);cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;order:1;justify-content:center;align-items:center;margin-right:20px;padding:0;transition:transform 80ms ease-out,background .12s,color .12s;display:inline-flex;position:relative}.stage-controls-menu-toggle:hover{color:var(--accent-mint);background:color-mix(in oklab, var(--bg) 95%, transparent)}.stage-controls-menu-toggle:active{transform:scale(.92)}.stage-controls-menu-toggle:focus-visible{outline:2px solid var(--accent-mint);outline-offset:2px}.stage-controls-menu-panel{box-sizing:border-box;pointer-events:auto;border:1px solid var(--border);background:linear-gradient(150deg, #091e1bf2, #11231be6), color-mix(in oklab, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1.1rem;order:2;justify-self:stretch;gap:.65rem;width:100%;padding:.85rem;display:grid;box-shadow:0 10px 28px #0000002e}.stage-controls-chat-head{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;display:grid}.stage-controls-save-account{border:1px solid color-mix(in oklab, var(--border) 72%, transparent);min-height:2rem;color:color-mix(in oklab, var(--text) 70%, var(--accent));letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:#03100d47;border-radius:999px;align-items:center;gap:.34rem;padding:.28rem .44rem;font-size:.62rem;font-weight:800;display:inline-flex}.stage-controls-save-account button{border:1px solid color-mix(in oklab, var(--accent-mint) 50%, var(--border));background:color-mix(in oklab, var(--accent-mint) 16%, transparent);color:var(--accent-mint);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.28rem .42rem;font-size:.6rem;font-weight:900}.stage-controls-inline-actions{border:1px solid color-mix(in oklab, var(--border) 72%, transparent);background:#03100d4d;border-radius:999px;align-items:center;gap:.28rem;padding:.2rem;display:inline-flex}.stage-controls-chat-log{border:1px solid color-mix(in oklab, var(--border) 58%, transparent);background:#04120f66;border-radius:.8rem;align-content:end;gap:.38rem;min-height:9.5rem;max-height:18rem;padding:.55rem;display:grid;overflow:auto}@media (width<=520px){.stage-controls-menu{justify-items:stretch}.stage-controls-menu-toggle{justify-self:end}.stage-controls-menu-panel{width:100%}.stage-controls-chat-head{grid-template-columns:1fr}.stage-controls-save-account,.stage-controls-inline-actions{justify-self:end}}.stage-controls-chat-empty{color:color-mix(in oklab, var(--text) 75%, transparent);align-self:center;margin:0;font-size:.78rem;line-height:1.35}.stage-controls-chat-empty p{margin:0}.stage-controls-starters{flex-wrap:wrap;gap:.38rem;margin-top:.7rem;display:flex}.stage-controls-starters button{border:1px solid color-mix(in oklab, var(--accent-mint) 36%, transparent);color:var(--accent-mint);cursor:pointer;background:#4ad8c51a;border-radius:999px;padding:.36rem .52rem;font-size:.68rem;font-weight:800}.stage-controls-starters button:hover{background:#4ad8c52e}.stage-controls-starters button:disabled{cursor:not-allowed;opacity:.5}.stage-controls-chat-message{border-radius:.72rem;width:fit-content;max-width:88%;margin:0;padding:.44rem .58rem;font-size:.78rem;line-height:1.35}.stage-controls-chat-message-user{background:color-mix(in oklab, var(--accent-mint) 22%, #071815e6);color:var(--text-h);justify-self:end}.stage-controls-chat-message-creature{border:1px solid color-mix(in oklab, var(--border) 60%, transparent);color:color-mix(in oklab, var(--text) 92%, white);background:#faf5e714;justify-self:start}.stage-controls-chat-form{grid-template-columns:1fr auto;gap:.45rem;min-width:0;display:grid}.stage-controls-chat-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stage-controls-chat-form input{border:1px solid color-mix(in oklab, var(--border) 80%, transparent);min-width:0;color:var(--text-h);background:#04120f94;border-radius:999px;padding:.55rem .65rem}.stage-controls-chat-form input::placeholder{color:color-mix(in oklab, var(--text) 58%, transparent)}.stage-controls-chat-form input:focus-visible,.stage-controls-chat-form button:focus-visible{outline:2px solid var(--accent-mint);outline-offset:2px}.stage-controls-chat-form button{border:1px solid color-mix(in oklab, var(--accent-mint) 55%, var(--border));background:color-mix(in oklab, var(--accent-mint) 22%, #071815e6);color:var(--accent-mint);cursor:pointer;letter-spacing:.02em;border-radius:999px;padding:.55rem .75rem;font-weight:800}.stage-controls-chat-form button:disabled{cursor:not-allowed;opacity:.45}.stage-controls-menu-panel .share-button,.stage-controls-menu-panel .notify-toggle,.stage-controls-menu-panel .mute-toggle{z-index:auto;flex:none;position:static;top:auto;right:auto}.stage-controls-menu-panel .share-button-status{left:50%;right:auto;transform:translate(-50%,-2px)}.stage-controls-menu-panel .share-button-status:not(:empty){transform:translate(-50%)}.stat-bars{z-index:4;box-sizing:border-box;pointer-events:none;grid-template-columns:1fr;gap:.16rem;width:min(7.75rem,100% - 5rem);max-width:7.75rem;margin:0;display:grid;position:absolute;bottom:2.55rem;left:20px}.stat-bar{--fill-color:var(--accent);--icon-color:color-mix(in oklab, var(--fill-color) 92%, white);border:1px solid color-mix(in oklab, var(--border) 72%, transparent);background:linear-gradient(180deg, #ffffff0b, #00000014), color-mix(in oklab, var(--bg) 86%, transparent);border-radius:999px;grid-template-columns:.78rem minmax(0,1fr);align-items:center;gap:0;min-width:0;padding:.2rem .34rem .2rem .22rem;display:grid;box-shadow:inset 0 1px #ffffff0d,0 8px 18px #0000001f}.stat-bar--hunger{--fill-color:#d9b34a}.stat-bar--happiness{--fill-color:var(--accent-mint);--icon-color:#ff87a8}.stat-bar--mid{--fill-color:var(--accent-soft)}.stat-bar--low{--fill-color:#d96a4a}.stat-bar-icon{z-index:1;width:1rem;height:1rem;color:var(--icon-color);filter:drop-shadow(0 1px 2px #00000047);place-items:center;display:grid;position:relative;transform:translate(.26rem)}.stat-bar-icon-svg{width:100%;height:100%;display:block;overflow:visible}.stat-bar-icon-banana{transform:rotate(-12deg)scale(1.15)}.stat-bar-icon-heart{transform:scale(.92)}.stat-bar-track{z-index:0;border:1px solid color-mix(in oklab, var(--border) 58%, transparent);background:linear-gradient(180deg, #00000052, #ffffff0a), var(--bg-surface);border-radius:999px;width:100%;height:.34rem;position:relative;overflow:hidden}.stat-bar-fill{background:linear-gradient(90deg, color-mix(in oklab, var(--fill-color) 72%, black), var(--fill-color)), var(--fill-color);height:100%;box-shadow:0 0 12px color-mix(in oklab, var(--fill-color) 42%, transparent);border-radius:999px;transition:width .6s,background-color .6s}.bond-summary{border:1px solid color-mix(in oklab, var(--border) 74%, var(--accent));background:color-mix(in oklab, var(--bg-surface) 88%, white);min-height:3.25rem;color:var(--text);box-sizing:border-box;border-radius:8px;flex-direction:column;justify-content:center;gap:.45rem;padding:0 .85rem;display:flex}.bond-summary-capped{border-color:color-mix(in oklab, var(--accent-soft) 74%, var(--accent))}.bond-summary-labels{grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;display:grid}.bond-summary-labels span{letter-spacing:.08em;text-transform:uppercase;opacity:.72;font-size:.68rem}.bond-summary-labels span:last-child{text-align:right;justify-self:end}.bond-summary-label-main{min-width:0}.bond-summary-inline-detail{color:color-mix(in oklab, var(--text) 58%, var(--accent-soft));letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;margin-left:.55rem;font-size:.54rem;font-weight:800}.bond-summary-labels strong{color:var(--text-h);font-size:.95rem;font-weight:800;line-height:1}.bond-progress-track{background:color-mix(in oklab, var(--bg-surface) 72%, var(--border));border-radius:999px;width:100%;height:6px;overflow:hidden}.bond-progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-soft));height:100%;transition:width .7s}.bond-summary-status{min-width:0;color:color-mix(in oklab, var(--text) 78%, var(--accent));letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:.55rem;font-size:.62rem;font-weight:800;line-height:1.05;display:flex}.bond-summary-status span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bond-summary-status small{color:color-mix(in oklab, var(--text) 58%, var(--accent-soft));letter-spacing:.07em;flex:none;font-size:.54rem;font-weight:800}.bond-summary-capped .bond-summary-status span{color:color-mix(in oklab, var(--accent-soft) 82%, white)}.bond-summary-capped .bond-progress-fill{background:linear-gradient(90deg, var(--accent-soft), color-mix(in oklab, var(--accent-soft) 74%, white)), var(--accent-soft);box-shadow:0 0 14px color-mix(in oklab, var(--accent-soft) 42%, transparent)}.bond-summary-chip{background:linear-gradient(180deg, #ffffff0a, #00000014), color-mix(in oklab, var(--bg) 74%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:0;border-radius:1.2rem;gap:.3rem;width:clamp(14rem,38vw,18.5rem);min-height:2.7rem;padding:.38rem .64rem;box-shadow:inset 0 1px #ffffff0d,0 .5rem 1.2rem #0000001f}.bond-summary-chip .bond-summary-labels{justify-content:space-between;align-items:center;gap:.58rem;display:flex}.bond-summary-chip .bond-summary-labels span{color:var(--accent);opacity:.9;font-size:.56rem}.bond-summary-chip .bond-summary-label-main{white-space:nowrap;flex:auto;align-items:baseline;gap:.58rem;display:flex}.bond-summary-chip .bond-summary-inline-detail{color:color-mix(in oklab, var(--text) 62%, var(--accent-soft));opacity:.9;margin-left:0;font-size:.48rem}.bond-summary-chip .bond-summary-care{background:color-mix(in oklab, currentColor 12%, transparent);letter-spacing:.08em;opacity:1;border-radius:999px;flex:none;padding:.16rem .42rem;font-size:.5rem;font-weight:900}.bond-summary-chip .bond-summary-care-good{color:color-mix(in oklab, var(--accent-soft) 88%, white)}.bond-summary-chip .bond-summary-care-warning{color:#f2c96b}.bond-summary-chip .bond-summary-care-danger{color:#ff7b6d}.bond-summary-chip .bond-summary-care-neutral{color:color-mix(in oklab, var(--text) 70%, var(--accent))}.bond-summary-chip .bond-summary-labels strong{flex:none;font-size:.72rem}.bond-summary-chip .bond-progress-track{height:.22rem}.bond-summary-chip .bond-summary-status{flex-direction:column;align-items:flex-start;gap:.14rem;font-size:.55rem}.bond-summary-chip .bond-summary-status span{max-width:100%}.bond-summary-chip .bond-summary-status small{font-size:.48rem}@media (width<=520px){.stat-bars{width:min(7.25rem,100% - 4rem);bottom:1.8rem;left:20px}.bond-summary-chip{width:100%}}.tray{background:var(--bg-surface);border:1px solid var(--border);box-sizing:border-box;border-radius:1rem;justify-content:center;align-items:center;gap:.75rem;width:100%;max-width:22rem;margin-top:1.25rem;margin-left:auto;margin-right:auto;padding:.75rem 1rem;display:flex}.tray-hanging{z-index:4;width:auto;max-width:none;box-shadow:none;background:0 0;border:0;margin:0;padding:1.6rem .15rem .2rem;position:absolute;top:clamp(1.9rem,9%,3.3rem);right:clamp(4.7rem,12%,7rem);transform:rotate(7deg)}.tray-hanging:before{content:"";background:linear-gradient(#315738f2,#234a2d7a);border-radius:999px;width:2px;height:2.25rem;position:absolute;top:-.35rem;left:50%;transform:translate(-50%)rotate(-5deg);box-shadow:0 0 .35rem #081810b3}.tray-hanging:after{content:"";transform-origin:0;background:oklab(52.8961% -.0742934 .073867);border-radius:80% 12%;width:.72rem;height:.34rem;position:absolute;top:.95rem;left:calc(50% + .12rem);transform:rotate(-24deg);box-shadow:0 .15rem .45rem #00000047}.tray-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text);opacity:.7;font-size:.72rem}.tray-hanging .tray-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.banana{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;z-index:2;background:0 0;border:none;border-radius:.5rem;padding:.25rem;transition:transform .18s;position:relative}.tray-hanging .banana{filter:drop-shadow(0 .32rem .5rem #00000057);transform-origin:50% 0;padding:0}.tray-hanging .banana:hover{transform:rotate(-5deg)scale(1.06)}.banana:hover{transform:scale(1.08)}.banana:focus-visible{outline:2px solid var(--accent-mint);outline-offset:2px}.banana.banana-dragging{cursor:grabbing;z-index:10;filter:drop-shadow(0 6px 12px #00000040);transition:none}.tray-hanging .banana.banana-dragging{filter:drop-shadow(0 .5rem .8rem #0000006b)}.banana svg{pointer-events:none;width:44px;height:44px;display:block}.tray-hanging .banana svg{width:38px;height:38px}@media (width<=520px){.tray-hanging{transform-origin:100% 0;top:2rem;right:4.2rem;transform:rotate(6deg)scale(.92)}}.app{box-sizing:border-box;flex-direction:column;align-items:center;max-width:42rem;min-height:100svh;margin:0 auto;padding:2rem 1rem;display:flex}@media (width>=900px){.app-dev-mode{margin-left:17rem;margin-right:auto}}.app-header{flex-direction:column;width:100%;padding:.15rem 0 .9rem;display:flex}.app-header-row{box-sizing:border-box;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-height:2.9rem;padding:.35rem .12rem .35rem .22rem;display:flex}.companion-identity{text-align:left;flex-wrap:wrap;align-items:baseline;gap:.35rem .62rem;min-width:0;display:flex}.companion-name{color:var(--accent);letter-spacing:.04em;text-transform:lowercase;margin:0;font-size:clamp(1.1rem,2.8vw,1.55rem);font-weight:700;line-height:1}.companion-bond{flex:none}@media (width<=520px){.app-header-row{flex-direction:column;align-items:stretch;padding:.35rem 0}.companion-identity,.companion-bond{text-align:center;justify-content:center}}
