:root{--ol:#3b2e4c;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#241d32;color:#eee3ee;font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,#actor:focus-visible{outline:3px solid #a6f1d6;outline-offset:5px}.studio-header{max-width:1560px;margin:auto;padding:24px 34px;display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#ceb1d1}h1{font-family:Georgia,serif;font-size:27px;font-weight:400;margin:6px 0 0}.version-switch{display:flex;gap:4px;padding:5px;border:1px solid #6b577b;background:#362a46;border-radius:30px}.version-switch button{border:0;background:none;color:#d8c7e6;padding:11px 20px;border-radius:24px;font-size:13px}.version-switch button[aria-pressed=true]{background:#e6d7bc;color:#403247;box-shadow:0 2px 10px #0002}.quiet{color:#dfd0e8;border:0;background:none;font-size:12px;padding:12px}.room{position:relative;max-width:1500px;aspect-ratio:16/9;min-height:570px;margin:0 auto;border-radius:25px;overflow:hidden;background:url('assets/nook.webp') center/cover;border:1px solid #b3957655;box-shadow:0 20px 70px #0f091b80}.room:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 65px #38203640;pointer-events:none;border-radius:25px}.name-tag{position:absolute;top:26px;left:30px;color:#fff3da;background:#423049d9;border:1px solid #dfc59c;border-radius:22px;padding:12px 22px;font-size:23px;font-family:Georgia,serif;z-index:4;backdrop-filter:blur(8px)}.name-tag>span{color:#eec991;margin-right:8px}.name-tag small{display:block;font:10px 'Trebuchet MS',sans-serif;letter-spacing:1px;margin-top:5px;color:#dcc9df}.hint{position:absolute;left:50%;top:28px;transform:translateX(-50%);background:#fff2dbec;color:#635068;border:1px solid #fff4dc;border-radius:20px;padding:11px 22px;font-size:13px;z-index:4;text-align:center;box-shadow:0 5px 22px #30223620;max-width:50%;margin:0}.floor{position:absolute;inset:50% 0 0;z-index:1}#actor{position:absolute;left:60%;bottom:13%;width:clamp(300px,32vw,470px);height:auto;aspect-ratio:400/440;transform:translateX(-50%);transition:left .7s cubic-bezier(.2,.8,.3,1);z-index:3;outline-offset:-10px;touch-action:none}#pet{position:absolute;inset:0}#pet .dritten{inset:0;width:100%;height:100%}.pet-menu{position:absolute;bottom:24px;left:30px;display:flex;gap:9px;z-index:7}.pet-menu button{width:87px;height:90px;display:grid;place-content:center;gap:5px;background:linear-gradient(#fff7e6,#ecd7b2);color:#51405c;border:2px solid #c9a67d;border-radius:23px;font-size:17px;font-weight:700;box-shadow:0 5px 0 #705171,0 9px 18px #20112b40;transition:transform .15s}.pet-menu button span{font-size:30px;font-weight:400;line-height:1.1}.pet-menu button:hover{transform:translateY(-4px)}.pet-menu button:active{transform:translateY(3px)}.pet-menu button[aria-pressed=true]{background:linear-gradient(#d9f7e7,#aadac9);border-color:#71ac9f}.reset{position:absolute;right:25px;bottom:29px;color:#fff0da;border:1px solid #c4a57a;background:#564358e0;border-radius:22px;padding:12px 17px;z-index:7;font-size:12px}.notes{max-width:1500px;margin:0 auto;padding:22px 30px 30px;display:flex;justify-content:space-between;gap:35px;color:#bcaec5;font-size:12px;line-height:1.6}.notes strong{color:#e5d7e8;font-weight:600}.notes p{max-width:460px;margin:0;font-size:11px}.note-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#9cd7b9;margin-right:8px}.bubble{font-size:17px;font-weight:500;padding:10px 16px;border:1px solid #bba5c3;border-radius:18px;background:#fff6e8;color:#594362;box-shadow:0 4px 15px #3d295333;top:10%;max-width:250px;white-space:normal;width:max-content;text-align:center}.bubble:after{border-width:8px;bottom:-16px;border-top-color:#fff6e8}.moon-motes{position:absolute;left:29%;top:22%;color:#ffe8a7;font-size:18px;word-spacing:150px;pointer-events:none;animation:motes 5s infinite alternate}.moon-motes i{font-style:normal;position:relative;top:90px}@keyframes motes{to{opacity:.25;translate:0 -15px}}#yarn{position:absolute;width:48px;height:48px;left:30%;bottom:16%;z-index:4;pointer-events:none;transition:left .5s,bottom .5s}#yarn svg{width:100%;height:100%;animation:roll 1.1s linear infinite}#yarn[hidden],#snack[hidden]{display:none}@keyframes roll{to{rotate:360deg}}#snack{position:absolute;left:50%;bottom:25%;font-size:38px;z-index:5;animation:snack .7s both;pointer-events:none}@keyframes snack{0%{translate:-100px 90px;scale:1}100%{translate:0 -40px;scale:.2;opacity:.3}}#shade{position:absolute;inset:0;background:#20245270;opacity:0;transition:opacity 1s;pointer-events:none;z-index:5}.napping #shade{opacity:1}.napping #actor{z-index:6}.refined .dr-wingL,.refined .dr-wingR{animation:softWing 3s ease-in-out infinite;transform-origin:150px 280px}.refined .dr-tail{animation:fluffyTail 4s ease-in-out infinite}.refined .dr-root{animation:softBreath 3.5s infinite}.refined .st-purr .dr-root{animation:softBreath 1.5s infinite}.refined .st-purr .dr-head{animation:none;transform:rotate(-7deg) translateY(3px)}.refined .st-purr .dr-tail{animation-duration:1.5s}.refined .st-purr .dr-eyes-happy{stroke-width:3;stroke:#261f2d}.refined .st-sleep .dr-root{animation:sleepy 4s infinite}.refined .st-sleep .dr-head{animation:none;transform:rotate(8deg) translateY(8px)}.refined .st-sleep .dr-wing{animation:none;transform:rotate(15deg)}.refined .st-pounce .dr-root{animation:pounce .7s ease-out}.refined .st-happy .dr-root{animation:hop .7s ease-in-out 2}.refined .st-happy .dr-wing{animation-duration:.6s}.st-fly .dr-svg{animation:flight 3.2s ease-in-out both}.st-fly .dr-wing,.refined .st-fly .dr-wing{animation:flap .38s ease-in-out infinite}.st-fly .dr-shadow{opacity:.15}.st-fly .dr-mouth{display:none}.st-fly .dr-mouth-open{display:inline}@keyframes softWing{50%{transform:rotate(-7deg) scaleY(.95)}}@keyframes fluffyTail{50%{transform:rotate(-8deg)}}@keyframes softBreath{50%{transform:scale(1.006,.994)}}@keyframes flap{0%,100%{transform:rotate(13deg) scaleY(.75)}50%{transform:rotate(-20deg) scaleY(1.08)}}@keyframes flight{0%,100%{translate:0 0;rotate:0deg}25%{translate:-15px -80px;rotate:-3deg}65%{translate:20px -100px;rotate:4deg}85%{translate:0 -40px;rotate:-2deg}}dialog{border:1px solid #bca3bd;border-radius:24px;background:#f7eff1;color:#503d58;max-width:min(1100px,94vw);padding:25px;max-height:92svh}dialog::backdrop{background:#1e102de0;backdrop-filter:blur(8px)}dialog h2{font:26px Georgia,serif;margin:0 0 8px}dialog p{font-size:13px;line-height:1.5;max-width:800px}dialog img{width:100%;display:block;border-radius:12px}#close-art{position:absolute;right:15px;top:12px;font-size:28px;background:none;border:0;color:#634c70;min-width:44px;min-height:44px}
@media(max-width:850px){.studio-header{flex-wrap:wrap;padding:18px 20px;gap:12px}h1{font-size:23px}.version-switch{order:3;width:100%;justify-content:center}.quiet{margin-left:auto}.room{border-radius:0;min-height:620px;aspect-ratio:auto;height:72svh;background-position:55% center}.room:after{border-radius:0}.name-tag{left:16px;top:18px;padding:10px 15px;font-size:20px}.name-tag small{display:none}.hint{top:85px;max-width:85%;width:max-content;font-size:12px;padding:10px 15px}#actor{width:330px;left:55%;bottom:21%}.pet-menu{bottom:25px;left:50%;transform:translateX(-50%);gap:7px}.pet-menu button{width:62px;height:74px;font-size:13px;border-radius:18px}.pet-menu button span{font-size:25px}.reset{right:14px;bottom:118px;font-size:11px;padding:9px}.notes{display:block;padding:18px 20px}.notes p{margin-top:12px}.bubble{font-size:14px}.moon-motes{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.dr-eyes .dr-eye{transform:none!important}}
/* Fluffy artwork motion study */
.fluffy-kitten{--gaze-x:0px;--gaze-y:0px;--head-tilt:0deg}.fluffy-svg{height:100%;width:100%;overflow:visible;display:block}.fluffy-living{transform-origin:300px 540px;animation:furBreath 4s ease-in-out infinite}.fluffy-head{transform-origin:300px 330px;transform:rotate(var(--head-tilt));transition:transform .45s ease-out}.fluffy-iris{transform:translate(var(--gaze-x),var(--gaze-y));transition:transform .14s ease-out}.fluffy-tail{transform-origin:365px 500px;animation:furTail 5.2s ease-in-out infinite}.fluffy-wing-left,.fluffy-wing-right{transform-origin:250px 300px;animation:furWing 3.8s ease-in-out infinite}.fluffy-wing-right{animation-delay:-.16s}.fluffy-face-happy,.fluffy-face-rest{opacity:0;pointer-events:none;transition:opacity .12s}.is-blinking .fluffy-face-rest,.st-sleep .fluffy-face-rest{opacity:1}.st-purr .fluffy-face-happy,.st-happy .fluffy-face-happy,.st-eat .fluffy-face-happy{opacity:1}.fluffy-kitten.st-purr .fluffy-head{transform:rotate(-7deg) translate(-3px,4px)}.fluffy-kitten.st-purr .fluffy-living{animation:furBreath 1.8s ease-in-out infinite}.fluffy-kitten.st-purr .fluffy-tail{animation-duration:2.7s}.fluffy-kitten.st-sleep .fluffy-head{transform:rotate(7deg) translateY(7px)}.fluffy-kitten.st-sleep .fluffy-wing-left,.fluffy-kitten.st-sleep .fluffy-wing-right{animation:none;transform:rotate(10deg) scaleX(.94)}.fluffy-kitten.st-sleep .fluffy-living{animation:furBreath 5s ease-in-out infinite}.fluffy-kitten.st-eat .fluffy-head{animation:furNibble .65s ease-in-out 2}.fluffy-kitten.st-fly .fluffy-living{animation:furFlight 3.2s ease-in-out}.fluffy-kitten.st-fly .fluffy-wing-left,.fluffy-kitten.st-fly .fluffy-wing-right{animation:furFlap .4s ease-in-out infinite}.fluffy-kitten.st-fly .fluffy-shadow{opacity:.25}.fluffy-kitten.st-pounce .fluffy-living{animation:furPounce .75s ease-out}.fluffy-heart{position:absolute;top:30%;color:#ffb4de;font:35px Georgia,serif;text-shadow:0 2px 8px #9d3a8080;animation:furHeart 1.6s ease-out forwards}.fluffy-kitten .bubble{top:0%;left:50%;transform:translateX(-50%);font-size:15px}.room.fluffy #actor{width:clamp(380px,43vw,620px);aspect-ratio:1;bottom:11%;}.room.fluffy .hint{font-size:14px}.version-switch button{padding-inline:16px}
@keyframes furBreath{0%,100%{transform:scale(1,1)}50%{transform:scale(1.005,1.012)}}@keyframes furTail{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(7deg)}}@keyframes furWing{0%,100%{transform:rotate(0) scaleX(1)}50%{transform:rotate(-5deg) scaleX(.94)}}@keyframes furNibble{50%{transform:translateY(8px) rotate(-3deg)}}@keyframes furFlap{0%,100%{transform:rotate(12deg) scaleX(.78) scaleY(.86)}50%{transform:rotate(-18deg) scaleX(1.03) scaleY(1.04)}}@keyframes furFlight{0%,100%{transform:translateY(0)}30%{transform:translate(-12px,-75px) rotate(-2deg)}65%{transform:translate(12px,-90px) rotate(2deg)}}@keyframes furPounce{0%,100%{transform:translateY(0)}20%{transform:scale(1.03,.94)}55%{transform:translateY(-32px) scale(.99,1.02)}}@keyframes furHeart{to{transform:translateY(-75px) rotate(12deg);opacity:0}}
@media(max-width:850px){.room.fluffy #actor{width:min(440px,94vw);bottom:22%;left:50%}.version-switch button{font-size:12px;padding:10px 12px}.fluffy-kitten .bubble{font-size:13px;top:4%}}@media(prefers-reduced-motion:reduce){.fluffy-kitten *{animation:none!important;transition:none!important}.fluffy-head{transform:none!important}}
.room.playing #actor{width:310px;aspect-ratio:1;bottom:auto;transition:none;cursor:default;touch-action:auto}.room.playing #floor{cursor:crosshair}.room.playing #yarn{width:36px;height:36px;transform:translate(-50%,-50%);transition:none;z-index:4}.room.playing #yarn svg{animation:none}.room.playing #yarn.rolling svg{animation:roll .6s linear infinite}.fluffy-pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transform:scaleX(var(--pose-direction,1));transform-origin:50% 94%}.fluffy-kitten.has-pose .fluffy-svg{visibility:hidden}.fluffy-kitten:not(.has-pose) .fluffy-pose{display:none}.chasing .fluffy-pose{animation:scamper .24s ease-in-out infinite}.st-swat .fluffy-pose{animation:swat .45s ease-out}.fluffy-kitten.has-pose .bubble{top:8%}@keyframes scamper{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -7px;rotate:1.5deg}}@keyframes swat{45%{translate:5px -2px}}@media(max-width:850px){.room.playing #actor{width:min(230px,56vw);bottom:auto}.room.playing #yarn{width:30px;height:30px}}@media(prefers-reduced-motion:reduce){.chasing .fluffy-pose,.st-swat .fluffy-pose{animation:none}}
.header-links{display:flex;flex-direction:column;align-items:flex-end;gap:0}.header-links .quiet{padding:6px 10px}.header-links #gallery-link{color:#b8ead6}#pose-gallery{max-width:1500px;margin:15px auto 70px;padding:35px 30px 30px;border-top:1px solid #6c527855;scroll-margin-top:15px}.gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.gallery-heading h2{font:32px Georgia,serif;color:#fff0d9;margin:12px 0}.study-badge{white-space:nowrap;background:#44354e;border:1px solid #735b7f;color:#d8c1e3;border-radius:30px;padding:10px 16px;font-size:12px}.gallery-intro{font-size:14px;line-height:1.7;color:#c7b9cf;max-width:750px;margin:0 0 24px}.collection-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.collection-tabs button{border:1px solid #72577c;background:#35283f;color:#decde6;border-radius:14px;padding:12px 18px;font-size:14px}.collection-tabs span{margin-left:10px;opacity:.6}.collection-tabs button[aria-pressed=true]{background:#e7d7bb;color:#45314b;border-color:#e7d7bb}.collection-body{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:25px;align-items:start}.collection-board{border:1px solid #6a5273;border-radius:22px;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#c3aac7,#897395)}.collection-board h3{font:22px Georgia,serif;margin:0;padding:18px 22px;color:#f7e9d3;background:#45324de8}.board-button{display:block;width:100%;padding:12px;border:0;background:transparent;position:relative}.board-button img{display:block;width:100%;height:auto}.board-button>span{display:inline-block;border:1px solid #d8c7dd88;background:#493752cc;color:#fff1e0;font-size:11px;padding:7px 12px;border-radius:20px;margin:10px}.collection-body aside{background:#31263b;padding:21px;border-radius:18px;border:1px solid #594363}.gallery-note{font-size:13px;line-height:1.7;color:#ddd0e4;margin:0 0 18px}.pose-list{padding-left:22px;margin:0;color:#e9d9e5;font-size:13px;line-height:1.7}.pose-list li{padding:5px 0 5px 6px}.pose-list li::marker{color:#bc91c6}.reading-order{font-size:10px;line-height:1.6;color:#b4a0bf;margin:18px 0 0}#pose-dialog{background:radial-gradient(ellipse,#d6c0db,#8b7597);max-width:min(1300px,96vw)}#pose-dialog h2{padding-right:40px;color:#302039}#pose-dialog button{position:absolute;right:10px;top:5px;background:none;border:0;font-size:32px;width:48px;height:48px;color:#392742}@media(max-width:850px){.header-links{margin-left:auto}.header-links .quiet{font-size:10px}.gallery-heading{display:block}.gallery-heading h2{font-size:27px;line-height:1.2}.study-badge{display:inline-block;margin:0 0 16px}#pose-gallery{padding:25px 18px}.collection-body{grid-template-columns:1fr;gap:15px}.collection-tabs{gap:6px}.collection-tabs button{padding:10px 12px;font-size:12px}.collection-tabs span{margin-left:5px}.collection-board h3{font-size:20px}.pose-list{columns:2;column-gap:28px}.pose-list li{break-inside:avoid;font-size:12px}}
.fluffy-kitten.st-sleep.has-pose .fluffy-pose{animation:curledBreathing 4.5s ease-in-out infinite;transform-origin:50% 82%}@keyframes curledBreathing{50%{scale:1.008 1.018}}@media(prefers-reduced-motion:reduce){.fluffy-kitten.st-sleep.has-pose .fluffy-pose{animation:none}}
/* Hovering uses a hanging-leg body, rather than carrying the seated pose upward. */
.fluffy-body-flying{opacity:0}.fluffy-kitten.st-fly .fluffy-body{animation:flightSeatedBody 3.2s linear both}.fluffy-kitten.st-fly .fluffy-body-flying{animation:flightHangingBody 3.2s linear both}.fluffy-kitten.st-fly .fluffy-tail{transform-origin:365px 430px;animation:flightTail 1.2s ease-in-out infinite}.fluffy-kitten.st-fly .fluffy-living{animation:furFlightDangling 3.2s ease-in-out both}@keyframes flightSeatedBody{0%,6%,94%,100%{opacity:1}12%,88%{opacity:0}}@keyframes flightHangingBody{0%,6%,94%,100%{opacity:0}12%,88%{opacity:1}}@keyframes flightTail{50%{transform:rotate(10deg)}}@keyframes furFlightDangling{0%,100%{transform:translateY(0)}30%{transform:translate(-12px,-105px) rotate(-2deg)}65%{transform:translate(12px,-130px) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.fluffy-kitten.st-fly .fluffy-body{opacity:0;animation:none!important}.fluffy-kitten.st-fly .fluffy-body-flying{opacity:1;animation:none!important}.fluffy-kitten.st-fly .fluffy-living{transform:translateY(-80px)}}

/* Full illustrated expression replacement, not a second mouth overlay. */
.fluffy-feed-face{display:none}.has-feed-face .fluffy-head-normal>g{visibility:hidden}.has-feed-face .fluffy-feed-face{display:block}.has-feed-face .fluffy-head{transform:none!important;animation:none!important}.fluffy-mouth-anchor{pointer-events:none}

/* A real, bounded celebration rather than a happy-face-only state. */
.fluffy-kitten.st-dance .fluffy-face-happy{opacity:1}.fluffy-kitten.st-dance .fluffy-living{transform-origin:300px 545px;animation:celebrationStep 1.2s ease-in-out 3}.fluffy-kitten.st-dance .fluffy-head{transform-origin:300px 270px;animation:celebrationNod .6s ease-in-out 6}.fluffy-kitten.st-dance .fluffy-wing-left,.fluffy-kitten.st-dance .fluffy-wing-right{animation:furFlap .3s ease-in-out 12}.fluffy-kitten.st-dance .fluffy-tail{animation-duration:.6s}
@keyframes celebrationStep{0%,100%{transform:translate(0,0) rotate(0)}12%{transform:scale(1.04,.94)}28%{transform:translate(-18px,-34px) rotate(-7deg)}42%{transform:translate(-18px,0) rotate(-3deg)}55%{transform:scale(1.04,.94)}72%{transform:translate(18px,-34px) rotate(7deg)}88%{transform:translate(18px,0) rotate(3deg)}}@keyframes celebrationNod{50%{transform:rotate(7deg) translateY(5px)}}
@media(prefers-reduced-motion:reduce){.fluffy-kitten.st-dance .fluffy-living,.fluffy-kitten.st-dance .fluffy-head{animation:none}.fluffy-kitten.st-dance .fluffy-wing-left,.fluffy-kitten.st-dance .fluffy-wing-right{animation-duration:1.2s}}

/* Purpose-made outfit poses replace the whole character, never pasted anatomy. */
.costume-art{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transform:scaleX(var(--pose-direction,1));transform-origin:50% 94%}.costume-ready>.costume-art{display:block}.costume-ready>.fluffy-svg,.costume-ready>.fluffy-pose{visibility:hidden!important}.costume-ready[data-costume-pose=belly]>.costume-art{top:30%;height:68%;width:96%;left:2%}.costume-ready[data-costume-pose=curled]>.costume-art{top:30%;height:68%;width:76%;left:12%}.room.playing #yarn img{animation:none}.room.playing #yarn.rolling img{animation:roll .6s linear infinite}.room.playing #yarn{width:48px;height:48px}@media(prefers-reduced-motion:reduce){.room.playing #yarn.rolling img{animation:none}}

.costume-ready.st-fly>.costume-art{animation:costumeFlight 3.2s ease-in-out both}@keyframes costumeFlight{0%,100%{translate:0 0}35%{translate:-20px -65px}65%{translate:30px -85px}}@media(prefers-reduced-motion:reduce){.costume-ready.st-fly>.costume-art{animation:none}}
