@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#343d36;--muted:#8b9187;--paper:#f6f4e9;--green:#718065;--line:#dedfd0;--soft:#e8ecdc;--white:#fffef9;font-family:"Noto Sans SC",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #8e9dbe;outline-offset:5px}button{touch-action:manipulation}a{color:inherit}button svg{width:20px;height:20px;flex:none}button{border:0;background:none}button:disabled{cursor:wait}button:active{transform:translateY(1px)}.app-shell{max-width:1800px;margin:auto;min-height:100svh;display:flex;flex-direction:column}.site-header{height:104px;padding:0 5.2%;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:4}.wordmark{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;font-size:20px;letter-spacing:1.2px}.wordmark small{display:block;font-size:8px;letter-spacing:2.2px;font-weight:600;margin-top:4px}.brand-mark{font-size:44px;font-weight:400;line-height:1;color:#7d8d6b}.header-actions{display:flex;align-items:center;gap:14px}.edition{font-size:9px;letter-spacing:2px;color:#9a9e91;margin-right:18px}.outline-button{border:1px solid #d4d8c7;display:flex;align-items:center;gap:10px;border-radius:100px;padding:11px 18px;font-size:12px;background:#fffdf780;transition:background .2s}.outline-button:hover{background:#fffef9}.outline-button span{font-size:10px;background:#e5e9d9;border-radius:20px;padding:2px 6px}.icon-button{width:38px;height:38px;border-radius:50%;display:grid;place-items:center}.icon-button:hover{background:#e8ecdc}.sound-on{display:none}.sound-enabled .sound-on{display:block}.sound-enabled .sound-off{display:none}main{flex:1;display:flex;flex-direction:column}.playground{height:calc(100svh - 248px);min-height:520px;max-height:880px;position:relative;isolation:isolate;overflow:hidden}.garden-ground{position:absolute;inset:0;pointer-events:none;z-index:-2}.garden-ground:after{content:"";position:absolute;inset:0;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.13' filter='url(%23n)'/%3E%3C/svg%3E")}.pond{position:absolute;border-radius:50%;background:#e9eddf;filter:none}.pond-one{width:58%;height:77%;left:-18%;top:25%;transform:rotate(-17deg);opacity:.55}.pond-two{width:39%;height:90%;right:-21%;top:-1%;background:#e9e5ef;opacity:.58;transform:rotate(25deg)}.orbit{position:absolute;border:1px solid #d9decc;border-radius:50%;opacity:.42;transform:rotate(-13deg)}.orbit-one{width:91%;height:67%;left:4%;top:20%}.orbit-two{width:82%;height:69%;left:9%;top:18%;border-style:dashed;border-color:#d4d9c6}.sun-stamp{position:absolute;right:5.5%;top:2%;color:#c5bc94;font-size:42px;transform:rotate(-15deg)}.grass-layer{position:absolute;inset:0}.sprig{position:absolute;color:#b5bea3;opacity:.65;font-size:16px;transform:rotate(var(--r))}.flower{color:#d3ba91;font-size:15px}.intro{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);z-index:0;text-align:center;width:480px;pointer-events:none}.eyebrow{font-size:8px;letter-spacing:2.5px;color:#9da28e;display:flex;align-items:center;gap:7px;justify-content:center}.eyebrow i{height:5px;width:5px;border-radius:50%;background:#a9b48d}.intro h1{font-size:34px;line-height:1.4;margin:13px 0 10px;font-weight:700;letter-spacing:2px;position:relative}.intro h1 span{color:#7e8c6a}.intro h1 svg{position:absolute;width:112px;height:12px;bottom:-6px;right:40px;stroke:#cfbc81;stroke-width:3;fill:none;stroke-linecap:round}.intro p{font-size:11px;color:#9ca18d;letter-spacing:1.5px;margin:18px 0 0}.characters{position:absolute;inset:0}.character{--s:164px;position:absolute;width:var(--s);height:calc(var(--s) + 40px);left:var(--x);top:var(--y);transform:translate(-50%,-50%);padding:0;outline-offset:0!important;border-radius:40%;z-index:1;transition:left .7s ease,top .7s ease;overflow:visible}.character:active{transform:translate(-50%,-50%)}.character:focus-visible{z-index:5}.character .shadow{position:absolute;bottom:37px;left:27%;width:46%;height:12px;border-radius:50%;background:var(--accent);opacity:.1;filter:blur(2px);transition:transform .3s}.character .sprite-wrap{position:absolute;inset:0 0 40px;animation:float 4s ease-in-out infinite;animation-delay:var(--delay);transition:filter .2s;filter:drop-shadow(0 5px 2px #4e473412)}.sprite{width:100%;height:100%;background-repeat:no-repeat;background-size:300% 200%;background-position:var(--px,0%) var(--py,0%);image-rendering:auto;display:block;transform-origin:50% 90%;transition:transform .22s ease}.character:hover,.character.is-selected{z-index:3}.character:hover .sprite{transform:translateY(-10px) rotate(-4deg) scale(1.08)}.character:hover .shadow{transform:scale(.8)}.character.is-selected .sprite-wrap{filter:drop-shadow(0 7px 4px #4e473426)}.character.reacting .sprite{animation:pop .55s cubic-bezier(.25,.6,.3,1)}.character.reacting[data-mood="4"] .sprite{animation:shake .5s ease}.character.reacting[data-mood="5"] .sprite{animation:sleepy .8s ease}.name-tag{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;font-weight:500;letter-spacing:.3px;display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:40px;transition:background .2s;color:#767c6b}.name-tag i{width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:.7}.character:hover .name-tag,.character.is-selected .name-tag{background:#fffef9b3;color:#414b3c}.name-tag .mood-symbol{font-size:11px;display:none}.character.is-selected .name-tag .mood-symbol{display:inline}.bubble{position:absolute;bottom:calc(100% - 16px);left:50%;transform:translate(-50%,10px) scale(.8);opacity:0;pointer-events:none;background:#fffef9;border:1px solid #e2e2d5;box-shadow:0 5px 16px #515d4110;padding:9px 14px;border-radius:15px 15px 15px 3px;font-size:11px;white-space:nowrap;transition:transform .22s,opacity .22s;color:#68755b;max-width:220px}.character.speaking .bubble{opacity:1;transform:translate(-50%,0) scale(1)}.character .halo{position:absolute;inset:15px 4px 34px;border:1px dashed var(--accent);border-radius:50%;opacity:0;transform:scale(.85);transition:opacity .2s,transform .2s;pointer-events:none}.character.is-selected .halo{opacity:.3;transform:scale(1)}.scene-note{position:absolute;bottom:16px;left:5.2%;font-size:10px;color:#a1a68f;letter-spacing:.5px;display:flex;align-items:center;gap:8px}.scene-note span{font-size:20px}.live-badge{position:absolute;right:5.2%;bottom:22px;display:flex;gap:8px;align-items:center;font-size:10px;color:#8a927d}.live-badge[hidden]{display:none}.live-dot{width:5px;height:5px;background:#8b9b71;border-radius:50%}#live-mood{border-left:1px solid #d1d6c4;padding-left:8px}.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:6}.particle{position:absolute;color:var(--color);font-size:var(--size);animation:particle .95s ease-out forwards;line-height:1}.control-area{min-height:92px;margin:0 5.2%;padding:21px 0 16px;border-top:1px solid #dbdfcd;display:flex;align-items:center;gap:25px;justify-content:space-between}.control-copy{white-space:nowrap}.tiny-label{font-size:8px;letter-spacing:1.9px;color:#9a9f8b;font-weight:500}.control-copy p{font-size:11px;margin:6px 0 0;color:#7f8772}.mood-toolbar{display:flex;align-items:center;gap:4px;padding:5px;background:#eeefe5;border-radius:100px;border:1px solid #e4e6d9}.mood-button{font-size:11px;padding:9px 12px;border-radius:100px;display:flex;align-items:center;gap:6px;white-space:nowrap;transition:background .18s,box-shadow .18s,color .18s;color:#8b9280}.mood-button svg{width:19px;height:19px;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke:currentColor}.mood-button:hover{color:#526049;background:#f7f7ef}.mood-button[aria-pressed="true"]{background:#fffef8;box-shadow:0 2px 8px #4e5e3c0c;color:#637253}.mood-button[data-mode="-1"] svg{width:18px}.shuffle-button{display:flex;align-items:center;gap:8px;background:#78896a;color:#fffef7;font-size:11px;padding:14px 18px;border-radius:100px;white-space:nowrap;transition:background .2s}.shuffle-button:hover{background:#617653}.shuffle-button svg{width:17px;height:17px}.site-footer{height:52px;padding:0 5.2%;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:9px;color:#a0a68f}.collection{display:flex;align-items:center;gap:6px;font-size:9px;white-space:nowrap}.collection-mark{color:#b2a072;font-size:15px;margin-right:2px}.collection strong{color:#707d5f;font-size:11px;font-weight:500;margin-left:3px}.collection-track{width:46px;height:3px;border-radius:4px;background:#e0e4d3;margin-left:4px;overflow:hidden}.collection-track i{height:100%;display:block;background:#9aa67f;width:0;transition:width .3s}.interaction-hint{margin:0;font-size:9px;letter-spacing:.6px}.key-hint{padding-left:14px;color:#b4b9a7;font-size:8px}.text-button{padding:5px 0;color:#8e9780;text-decoration:none;font-size:10px}.text-button:hover{color:#4b6444;text-decoration:underline;text-underline-offset:4px}dialog{padding:0;border:1px solid #e3e5d8;border-radius:24px;background:#f9f8ef;color:var(--ink);box-shadow:0 30px 100px #27371d25;max-height:88svh;max-width:calc(100% - 30px)}dialog::backdrop{background:#4e5a4655;backdrop-filter:blur(7px)}.atlas-dialog{width:820px}.dialog-top{display:flex;justify-content:space-between;align-items:flex-start;padding:30px 32px 20px}.dialog-top h2,.about-dialog h2{font-size:24px;line-height:1.5;margin:10px 0 5px;letter-spacing:.5px}.dialog-top p{font-size:11px;color:#909781;margin:6px 0}.close-button{font-size:24px;line-height:1;width:32px;height:32px;display:grid;place-items:center;background:#ecede2;border-radius:50%;color:#8f9781;flex:none}.close-button:hover{background:#e2e5d5}.atlas-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:0 28px 24px}.atlas-card{background:#f0f0e7;border:1px solid transparent;padding:9px 7px 13px;border-radius:15px;text-align:center;transition:background .2s,border-color .2s}.atlas-card:hover{background:#fffef8;border-color:#c7d0b4}.atlas-portrait{aspect-ratio:1;width:100%;background-size:300% 200%;background-position:0 0;background-repeat:no-repeat}.atlas-card h3{font-size:12px;margin:2px 0 6px;font-weight:600}.atlas-card p{font-size:9px;color:#9aa18c;margin:0 0 11px;white-space:nowrap}.atlas-dots{display:flex;gap:4px;justify-content:center}.atlas-dots i{height:5px;width:5px;background:#d8ddcb;border-radius:50%;display:block}.atlas-dots .found{background:#91a077}.atlas-count{font-size:8px;color:#9ca48c;margin-top:6px;display:block}.dialog-bottom{border-top:1px solid #e1e4d5;padding:15px 30px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;color:#a1a68f}.about-dialog{width:570px;padding:36px}.about-dialog>.close-button{position:absolute;right:22px;top:22px}.about-dialog h2{margin:14px 0 20px}.about-dialog p{font-size:12px;line-height:1.9;color:#818a76}.source-block{padding:17px 0;border-bottom:1px solid #e2e5d7}.source-block h3{font-size:12px;font-weight:600;margin:0 0 6px}.source-block p{font-size:11px;margin:0 0 8px}.source-block a,.license-note a{font-size:10px;color:#6c8058;text-underline-offset:3px}.about-dialog .license-note{font-size:10px;line-height:1.9;margin:19px 0 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}@keyframes pop{0%{transform:scale(.88)}35%{transform:translateY(-18px) scale(1.11,1.05) rotate(-5deg)}65%{transform:translateY(-3px) scale(.97,1.04) rotate(3deg)}100%{transform:scale(1)}}@keyframes shake{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-6deg) translateX(-5px)}40%,80%{transform:rotate(6deg) translateX(5px)}}@keyframes sleepy{40%{transform:rotate(8deg) translateY(4px)}70%{transform:rotate(3deg)}}@keyframes particle{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}15%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rot)) scale(1)}}
@media(min-width:1450px){.character{--s:195px}.intro h1{font-size:42px}.intro h1 svg{right:0}.mood-button{padding:11px 17px}.playground{min-height:620px}}
@media(max-width:1120px){.edition{display:none}.control-copy{display:none}.control-area{justify-content:center;gap:15px}.character{--s:151px}.intro h1{font-size:30px}.intro{width:430px}.intro h1 svg{right:36px}.key-hint{display:none}.mood-button{padding:9px 12px}}
@media(max-width:760px){.site-header{height:86px;padding:0 6%;gap:10px}.wordmark{font-size:17px;gap:8px;letter-spacing:.5px}.wordmark small{font-size:6px;letter-spacing:1.4px}.brand-mark{font-size:36px}.header-actions{gap:5px}.outline-button{font-size:10px;padding:9px 11px;gap:6px}.outline-button svg{width:16px;height:16px}.outline-button span{display:none}.icon-button{width:30px;height:30px}.icon-button svg{width:17px;height:17px}.playground{height:900px;min-height:900px;max-height:none}.intro{top:4%;transform:translate(-50%,0);width:95%}.eyebrow{font-size:6px;letter-spacing:1.8px}.intro h1{font-size:26px;margin-top:10px;letter-spacing:1.3px}.intro h1 svg{width:90px;right:calc(50% - 140px)}.intro p{font-size:9px;letter-spacing:.5px;margin-top:14px}.character{--s:126px;left:var(--mx);top:var(--my)}.character .shadow{bottom:35px;height:9px}.name-tag{bottom:10px;font-size:10px;padding:3px 7px}.character .sprite-wrap{bottom:35px}.bubble{font-size:10px;padding:8px 10px;max-width:160px;white-space:normal;width:max-content;bottom:calc(100% - 18px)}.scene-note{bottom:2px;left:6%;font-size:8px}.scene-note span{font-size:16px}.live-badge{bottom:7px;right:6%;font-size:8px;gap:5px}.sun-stamp{top:1%;right:6%;font-size:25px;opacity:.6}.orbit-one{width:135%;height:72%;left:-20%;top:20%;transform:rotate(-25deg)}.orbit-two{width:110%;height:77%;left:-4%;top:17%;transform:rotate(-25deg)}.pond-one{width:85%;height:60%;left:-55%;top:40%}.pond-two{width:70%;height:65%;right:-49%;top:10%}.control-area{margin:20px 6% 0;padding:17px 0 0;border-top:1px solid #dce1cf;display:flex;flex-wrap:wrap;gap:13px}.control-copy{display:block;text-align:center;flex-basis:100%}.control-copy .tiny-label{display:none}.control-copy p{font-size:10px;margin:0}.mood-toolbar{gap:1px;padding:4px;flex-grow:1;justify-content:center}.mood-button{padding:9px 8px;font-size:9px;flex-direction:column;gap:4px;flex:1}.mood-button svg{width:18px;height:18px}.shuffle-button{padding:10px 17px;font-size:10px;order:3;gap:7px}.shuffle-button svg{width:15px;height:15px}.site-footer{padding:14px 6% 22px;height:auto;min-height:76px;align-items:flex-end;gap:10px;flex-wrap:wrap}.interaction-hint{display:none}.collection{font-size:8px}.collection-track{width:35px}.site-footer .text-button{font-size:9px;padding:0}.dialog-top{padding:26px 22px 20px}.dialog-top h2{font-size:19px}.dialog-top p{font-size:10px}.atlas-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:0 20px 24px}.atlas-card{display:grid;grid-template-columns:55px 1fr;grid-template-rows:auto auto auto auto;align-items:center;padding:9px 7px;text-align:left;column-gap:8px}.atlas-portrait{grid-row:1/5;width:58px;align-self:center}.atlas-card h3{font-size:10px;margin:2px 0 4px}.atlas-card p{font-size:8px;margin:0 0 8px}.atlas-dots{justify-content:flex-start;gap:3px}.atlas-dots i{width:4px;height:4px}.atlas-count{font-size:7px}.dialog-bottom{padding:13px 22px;font-size:8px;align-items:flex-start}.dialog-bottom .text-button{font-size:9px;padding:0;white-space:nowrap}.about-dialog{padding:29px 24px}.about-dialog h2{font-size:22px}.about-dialog>.close-button{right:17px;top:17px}}
@media(max-width:380px){.character{--s:112px}.playground{height:870px;min-height:870px}.mood-button{padding:8px 6px}.wordmark{font-size:15px}.outline-button{padding:9px}.site-header{padding:0 5%}.atlas-card{grid-template-columns:45px 1fr}.atlas-portrait{width:48px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.particle{display:none}.character:hover .sprite{transform:scale(1.03)}}

#char-deepseek .sprite,.atlas-card:first-child .atlas-portrait{background-size:300% 196.168582%}#char-gemini{--s:178px}#char-kimi{--s:178px}#char-grok{--s:178px}@media(min-width:1450px){#char-gemini,#char-kimi,#char-grok{--s:208px}}@media(max-width:1120px){#char-gemini,#char-kimi,#char-grok{--s:167px}}@media(max-width:760px){#char-gemini,#char-kimi,#char-grok{--s:141px}.intro{top:4%}}@media(max-width:380px){#char-gemini,#char-kimi,#char-grok{--s:126px}}
@media(min-width:761px){.intro .eyebrow{display:none}}
@media(min-width:761px){.live-badge{bottom:4px}}
/* New play controls: a small toy box, not a dashboard. */
.world-strip{margin:0 5.2%;height:42px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #e3e5d7;font-size:11px;position:relative;z-index:5}.world-controls{display:flex;align-items:center;gap:12px}.segmented{display:flex;padding:3px;border-radius:30px;background:#e9ecde}.segmented button{font-size:10px;padding:5px 11px;border-radius:25px;color:#8b957c}.segmented button[aria-pressed=true]{background:#fffef9;color:#6a7c58;box-shadow:0 1px 5px #52603b10}.strip-divider{height:14px;width:1px;background:#d9decb}.weather-controls{display:flex;gap:4px}.weather-controls button{font-size:10px;width:29px;height:29px;border-radius:50%;color:#8f9981}.weather-controls button[aria-pressed=true]{background:#e2e7d4;color:#697b54}.weather-controls button:hover{background:#eceee3}#scene-status{color:#8e9783;font-size:10px;margin-left:6px}.secrets-button{font-size:11px;display:flex;gap:7px;align-items:center;white-space:nowrap;color:#8b9279}.secrets-button span{font-size:9px;padding:3px 7px;background:#ebe9dc;border-radius:20px;color:#9b8f63}.playground{height:calc(100svh - 385px);min-height:520px}.control-actions{display:flex;gap:8px;align-items:center}.sync-button{border:1px solid #d5ddc6;border-radius:30px;padding:12px 14px;font-size:10px;color:#7f8e6c;white-space:nowrap}.sync-button:hover{background:#e8ecdc}.needs-choice{outline:2px solid #cbb67c;outline-offset:2px}.control-area{gap:12px}.play-tools{margin:0 5.2%;padding:10px 0 14px;border-top:1px dashed #d9decc;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.friend-tools{display:flex;gap:18px;align-items:center}.selected-friend{min-width:115px}.selected-friend strong{display:block;font-size:11px;font-weight:500;margin-top:5px;color:#7c8a6b}.action-buttons{display:flex;gap:6px}.action-buttons button{padding:10px 12px;font-size:10px;background:#e9eddf;border-radius:25px;color:#788968;white-space:nowrap}.action-buttons button:hover,.action-buttons button[aria-pressed=true]{background:#dce5cc;color:#4c673b}.action-buttons button:disabled{opacity:.45;cursor:default}.gift-area{display:flex;align-items:center;gap:12px;margin-left:auto}.gift-area .tiny-label{font-size:7px;line-height:1.8;max-width:50px}.gift-tray,#gift-tray{display:flex;gap:6px}.gift-button{padding:7px 11px;border:1px solid #dde2d1;border-radius:16px;display:flex;align-items:center;gap:5px;min-height:40px;background:#f9f9f0;font-size:10px;color:#818d72;touch-action:none;user-select:none;-webkit-user-select:none}.gift-button:hover,.gift-button.gift-selected{border-color:#b4c2a0;background:#e6edd9;color:#526d3d}.gift-button>span:first-child{font-size:18px}.gift-button svg{width:22px;height:22px}.tools-hint{flex-basis:100%;text-align:center;font-size:8px;color:#a1a991;margin:0;line-height:1.6;letter-spacing:.3px}.character{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}.character.is-dragging{z-index:10;cursor:grabbing;transition:none;filter:drop-shadow(0 15px 10px #40513925)}.character.is-dragging .sprite-wrap{animation:none}.character.is-dragging .sprite{transform:translateY(-8px) rotate(-4deg) scale(1.05)}.character.gift-target .halo{opacity:.8;transform:scale(1.12);border-style:solid;border-color:#9eb87a;box-shadow:0 0 25px #adc58c44}.character.is-petting .sprite{animation:pet-nuzzle .7s ease-in-out 2}.character.is-tickled .sprite{animation:tickle-wiggle .22s ease-in-out 5}.character.paired .halo{opacity:.65;border-color:#ccabc2;transform:scale(1.08)}.character.paired .sprite{animation:friend-hop .75s ease-in-out 2}.gift-ghost{position:fixed;z-index:100;pointer-events:none;display:grid;place-items:center;width:55px;height:55px;background:#fffdf2e8;border:1px solid #cdd9b8;border-radius:50%;box-shadow:0 8px 20px #35442d28;font-size:30px;transform:translate(-50%,-50%) rotate(-8deg)}.interaction-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:100;padding:12px 20px;border-radius:30px;background:#fffef5eb;border:1px solid #d7dfc7;box-shadow:0 6px 24px #48553a15;color:#6b7e56;font-size:12px;max-width:calc(100% - 32px);text-align:center;pointer-events:none}.interaction-toast[hidden]{display:none}.weather-layer,.celestial-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.raindrop{position:absolute;top:-35px;width:1px;height:22px;background:#8fa9bd75;animation:rainfall var(--duration) linear infinite;animation-delay:var(--delay)}.snowflake{position:absolute;top:-20px;width:var(--size);height:var(--size);border-radius:50%;background:#fffdf8;box-shadow:0 0 3px #a7b8d7;animation:snowfall var(--duration) linear infinite;animation-delay:var(--delay)}.night-star{position:absolute;color:#e8ddb0;opacity:.65;font-size:18px;font-style:normal;animation:starglow 4s ease-in-out infinite}.collective-effects{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}.collective-effects span{position:absolute;top:-30px;color:var(--confetti-color);font-size:21px;animation:confetti-fall 5s ease-in forwards;animation-delay:var(--fall-delay);opacity:0}.hearts .collective-effects span{font-size:24px;color:#d997b5}.lullaby .collective-effects span{color:#e7dfa8}.celebrating.party .sprite-wrap{animation:collective-hop .65s ease-in-out 7;animation-delay:0s}.celebrating.hearts .sprite-wrap{animation:heart-sway 1s ease-in-out 5;animation-delay:0s}.celebrating.lullaby .sprite-wrap{animation:sleepy 2s ease-in-out 3;animation-delay:0s}.celebration-banner{position:fixed;left:50%;top:28px;transform:translateX(-50%);display:flex;align-items:center;gap:15px;z-index:100;background:#fffdf0f5;border:1px solid #dfdcc6;border-radius:22px;padding:18px 23px;box-shadow:0 12px 50px #34432928;width:max-content;max-width:calc(100% - 30px);color:#6e7b58;backdrop-filter:blur(12px)}.celebration-banner[hidden]{display:none}#celebration-icon{font-size:33px;color:#b6a065}.celebration-banner strong{font-size:16px;font-weight:600}.celebration-banner p{font-size:11px;margin:6px 0 0;color:#949a82}.celebration-banner button{font-size:22px;margin-left:10px;color:#98a087}.secrets-dialog{width:650px}.secret-list{padding:0 30px;display:grid;gap:12px}.secret-card{display:flex;align-items:center;gap:18px;background:#efefe4;padding:18px;border-radius:18px;color:#8a937d}.secret-icon{font-size:26px;width:45px;height:45px;display:grid;place-items:center;background:#e6e8d9;border-radius:50%;flex:none;color:#b0b69e}.secret-card h3{font-size:13px;margin:0 0 6px;font-weight:600}.secret-card p{font-size:11px;margin:0 0 7px}.secret-card div>span{font-size:9px;color:#a5ab93}.secret-card.is-unlocked{background:#edf0df}.secret-card.is-unlocked .secret-icon{background:#fffdf0;color:#b1a064}.secret-replay{margin-left:auto;border:1px solid #ccd6b8;font-size:10px;padding:8px 12px;border-radius:20px;white-space:nowrap}.secret-tip{font-size:10px;line-height:1.9;color:#9ba48b;margin:20px 32px 27px}body{transition:background .7s,color .7s}body[data-period=night]{--paper:#263342;--ink:#e8ebdf;background:#263342;color:#e8ebdf}body[data-period=night] .world-strip,body[data-period=night] .control-area,body[data-period=night] .play-tools{border-color:#435345}body[data-period=night] .wordmark{color:#f0eddd}body[data-period=night] .brand-mark{color:#bbc9a0}body[data-period=night] .intro h1 span{color:#c1cba9}body[data-period=night] .intro p,body[data-period=night] .scene-note,body[data-period=night] .live-badge,body[data-period=night] .name-tag,body[data-period=night] #scene-status{color:#a9b5ae}body[data-period=night] .pond-one{background:#42545b;opacity:.35}body[data-period=night] .pond-two{background:#514d71;opacity:.3}body[data-period=night] .orbit{border-color:#70857b;opacity:.25}body[data-period=night] .outline-button{border-color:#5a695e;background:#334148;color:#d3d9ca}body[data-period=night] .outline-button span{background:#506151;color:#d9e1ca}body[data-period=night] .mood-toolbar,body[data-period=night] .segmented{background:#334347;border-color:#48584d}body[data-period=night] .mood-button{color:#b9c4af}body[data-period=night] .mood-button[aria-pressed=true],body[data-period=night] .segmented button[aria-pressed=true]{background:#64755e;color:#f7f6e9}body[data-period=night] .mood-button:hover{background:#4b6051}body[data-period=night] .weather-controls button{color:#b7c4b3}body[data-period=night] .weather-controls button[aria-pressed=true]{background:#52644f;color:#e8eedf}body[data-period=night] .secrets-button{color:#bcc6b1}body[data-period=night] .secrets-button span{background:#4b5548;color:#ded5ad}body[data-period=night] .selected-friend strong,body[data-period=night] .text-button,body[data-period=night] .control-copy p{color:#b4c0a6}body[data-period=night] .action-buttons button{background:#3d5148;color:#c2d0b3}body[data-period=night] .action-buttons button:hover,body[data-period=night] .action-buttons button[aria-pressed=true]{background:#61785a}body[data-period=night] .gift-button{background:#35464a;border-color:#536456;color:#c6d1ba}body[data-period=night] .gift-button.gift-selected{background:#667957;color:#fffef0}body[data-period=night] .sync-button{color:#bdcbb0;border-color:#617258}body[data-period=night] dialog{color:#343d36}body[data-period=night] .sprig{color:#7c9681;opacity:.35}body[data-weather=rain] .garden-ground{background:#aab9ba13}body[data-weather=snow] .garden-ground{background:#c9d3e224}body[data-period=night] .character:hover .name-tag,body[data-period=night] .character.is-selected .name-tag{background:#e4ead6;color:#43543c}
@keyframes pet-nuzzle{50%{transform:rotate(7deg) scale(.98,1.02)}}@keyframes tickle-wiggle{50%{transform:rotate(-6deg) translateX(-3px)}}@keyframes friend-hop{30%{transform:translateY(-13px) rotate(-4deg)}70%{transform:rotate(4deg)}}@keyframes rainfall{to{transform:translate(-70px,1000px)}}@keyframes snowfall{to{transform:translate(var(--drift),1000px) rotate(180deg)}}@keyframes starglow{50%{opacity:.25}}@keyframes confetti-fall{5%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translate(var(--sway),1000px) rotate(var(--spin))}}@keyframes collective-hop{40%{transform:translateY(-16px) rotate(-4deg)}70%{transform:rotate(3deg)}}@keyframes heart-sway{25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}
@media(max-width:1120px){.world-strip #scene-status{display:none}.play-tools{gap:14px;justify-content:space-between}.friend-tools{gap:12px}.gift-area{margin-left:0}.gift-area>.tiny-label{display:none}.selected-friend{min-width:100px}.action-buttons button{padding:10px}.gift-button{padding:7px 9px}.play-tools>#restore-positions{font-size:9px}}
@media(max-width:760px){.world-strip{margin:0 6%;height:45px;font-size:10px;gap:6px}.world-controls{gap:7px}.segmented button{font-size:10px;padding:6px 9px}.weather-controls{gap:1px}.weather-controls button{width:26px;height:30px}.secrets-button{font-size:10px;gap:4px;padding-right:0}.secrets-button span{font-size:8px;padding:3px 5px}.strip-divider{margin:0 2px}.playground{height:900px;min-height:900px}.control-area{gap:13px}.control-actions{order:3;width:100%;justify-content:center}.control-actions .shuffle-button{order:0}.sync-button{font-size:10px;padding:10px 15px}.play-tools{margin:17px 6% 0;padding-top:16px;gap:14px;justify-content:center}.friend-tools{width:100%;flex-direction:column;gap:11px}.selected-friend{text-align:center}.selected-friend .tiny-label{font-size:7px}.selected-friend strong{font-size:11px}.action-buttons{width:100%;justify-content:center;gap:8px}.action-buttons button{padding:12px 15px;font-size:11px;min-height:44px}.gift-area{width:100%;justify-content:center}.gift-button{min-width:66px;min-height:47px;flex-direction:column;gap:3px;font-size:9px;border-radius:15px}.gift-button>span:first-child{font-size:21px}#gift-tray{gap:8px}.tools-hint{font-size:8px;max-width:270px;line-height:1.9}.play-tools>#restore-positions{order:4}.tools-hint{order:5}.secret-list{padding:0 20px}.secret-card{padding:14px 12px;gap:12px}.secret-card h3{font-size:12px}.secret-card p{font-size:10px}.secret-icon{width:35px;height:35px;font-size:22px}.secret-tip{margin:17px 22px 23px;font-size:9px}.celebration-banner{top:15px;padding:14px 15px;gap:10px}.celebration-banner strong{font-size:13px}.celebration-banner p{font-size:10px;max-width:215px;line-height:1.6}#celebration-icon{font-size:26px}.celebration-banner button{margin-left:2px}.interaction-toast{font-size:11px;bottom:15px;padding:10px 16px}.site-footer{padding-top:20px}}
@media(max-width:380px){.playground{height:870px;min-height:870px}.world-strip{margin:0 5%}.segmented button{padding:6px 7px}.weather-controls button{width:24px}.secrets-button{font-size:9px}.world-controls{gap:5px}.gift-button{min-width:61px}.action-buttons button{padding:12px 13px}}
@media(prefers-reduced-motion:reduce){.raindrop,.snowflake,.night-star{animation:none}.raindrop,.snowflake{top:var(--static-top,25%);opacity:.35}.collective-effects{display:none}.character.is-petting .sprite,.character.is-tickled .sprite,.character.paired .sprite{transform:none}}
.character.gift-received .sprite{animation:friend-hop .7s ease-in-out 2}.character.press-pending .halo{opacity:.4;animation:press-ring .55s linear}.gift-mode .character,.pair-mode .character{cursor:pointer}.gift-mode .character .halo,.pair-mode .character .halo{opacity:.15}.action-buttons #pair-action.is-armed{background:#dce5cc;color:#4c673b}@keyframes press-ring{from{transform:scale(.75);opacity:.05}to{transform:scale(1.08);opacity:.6}}

/* Twelve feelings, arranged in two readable rows. IDs and older art stay stable. */
.mood-toolbar{display:grid;grid-template-columns:repeat(7,minmax(42px,1fr));gap:3px;padding:6px;border-radius:25px;flex:1;max-width:690px}.mood-button{min-height:44px;justify-content:center;padding:8px 11px;white-space:nowrap;position:relative}.mood-button:first-child{grid-row:span 2;flex-direction:column;align-self:stretch;border-radius:20px;gap:7px}.mood-button.is-new:after{content:'';position:absolute;right:6px;top:6px;width:3px;height:3px;border-radius:50%;background:#b7a178;opacity:.8}.mood-button.is-new[aria-pressed=true]:after{background:currentColor}.control-area{padding-top:18px;padding-bottom:18px;gap:18px}.control-copy{max-width:130px}.control-copy p{line-height:1.7}.atlas-dots{display:grid;grid-template-columns:repeat(6,5px);gap:4px}.character[data-mood="6"].reacting .sprite{animation:little-sigh 1.1s ease-out}.character[data-mood="7"].reacting .sprite{animation:thinking-tilt 1.1s ease-out}.character[data-mood="8"].reacting .sprite{animation:proud-nod .9s ease-out}.character[data-mood="9"].reacting .sprite{animation:friend-hop .65s ease-in-out 2}.character[data-mood="10"].reacting .sprite{animation:dizzy-wobble 1.4s ease-in-out}.character[data-mood="11"].reacting .sprite{animation:heart-pulse .8s ease-in-out 2}
@keyframes little-sigh{50%{transform:translateY(7px) rotate(-4deg)}}@keyframes thinking-tilt{35%,65%{transform:rotate(7deg)}}@keyframes proud-nod{30%{transform:translateY(-6px) rotate(-5deg)}65%{transform:rotate(3deg)}}@keyframes dizzy-wobble{20%,60%{transform:rotate(-9deg)}40%,80%{transform:rotate(9deg)}}@keyframes heart-pulse{50%{transform:scale(1.06)}}
@media(max-width:1120px){.control-area{gap:12px}.mood-button{font-size:10px;padding:8px}.mood-button svg{width:19px;height:19px}.control-actions{flex-direction:column;gap:7px}.control-actions button{width:100%;justify-content:center;padding:10px 13px}}
@media(max-width:760px){.control-area{padding-bottom:0}.control-copy{max-width:none}.mood-toolbar{width:100%;flex-basis:100%;grid-template-columns:repeat(7,minmax(0,1fr));border-radius:22px;gap:2px;padding:5px}.mood-button{min-height:55px;flex-direction:column;gap:4px;padding:7px 2px;font-size:9px}.mood-button:first-child{border-radius:17px}.mood-button svg{width:19px;height:19px}.mood-button.is-new:after{right:5px;top:5px}.control-actions{flex-direction:row;width:100%}.control-actions button{width:auto;padding:10px 15px}.atlas-dots{grid-template-columns:repeat(6,4px);gap:3px;justify-content:start}.atlas-card p{margin-bottom:6px}}
@media(max-width:760px){.mood-toolbar{grid-template-columns:repeat(6,minmax(0,1fr))}.mood-button:first-child{grid-row:auto;grid-column:1/-1;min-height:44px;flex-direction:row;gap:8px}.mood-button{min-height:55px}}
@media(max-width:360px){.mood-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}.mood-button{min-height:55px}}
@media(max-width:360px){.atlas-grid{grid-template-columns:1fr}.atlas-card{grid-template-columns:58px 1fr;padding:12px 14px;column-gap:14px}.atlas-portrait{width:62px}.atlas-card h3{font-size:12px}.atlas-card p{font-size:9px;white-space:normal}.atlas-dots{grid-template-columns:repeat(6,5px);gap:4px}.atlas-dots i{width:5px;height:5px}.atlas-count{font-size:8px}}
