/* Reference-led midnight pixel world and gold arcade controls. */
:root{--bg:#090d24;--panel:#11162c;--ink:#fff1cc;--muted:#d0c5da;--peach:#ffce61;--mint:#88ddc4;--line:#9d6c32;background:#040816}
body{background:radial-gradient(ellipse at 50% 30%,#23134b,#040817 75%)}
.app-shell{max-width:520px;background:#080e23;isolation:isolate;border-inline:2px solid #453358;box-shadow:0 0 90px #36206155}
.app-shell::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(#04081bbb,#070b20ed),var(--birthday-art, none) center top/100% auto no-repeat;pointer-events:none}
.welcome-shell{min-height:100svh;padding-bottom:calc(83px + var(--safe-bottom))}
.welcome-shell::before{background:linear-gradient(0deg,#050c1e 0%,transparent 38%),var(--birthday-art, none) center top/cover no-repeat;image-rendering:pixelated}
.masthead{height:calc(76px + env(safe-area-inset-top));padding:calc(9px + env(safe-area-inset-top)) 14px 9px;gap:11px;direction:ltr;background:linear-gradient(#202036,#090d1c);border-bottom:3px solid #b17a36;box-shadow:0 3px #241021,0 5px #e5b75b66;position:relative;z-index:2}
.player-avatar{width:53px;height:53px;flex-shrink:0;border:3px solid #d69e49;outline:2px solid #3c241f;box-shadow:inset 0 0 0 2px #fff0a9,3px 3px #020512;background:#393355;padding:2px}
.player-avatar img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.hud-center{display:grid;gap:3px;flex:1;text-align:center;direction:rtl}.wordmark{display:block;color:#ffda78;font-weight:900;font-size:19px;text-shadow:2px 2px #4f251a,0 2px #03030a}
.hud-hearts{color:#f25589;letter-spacing:5px;font-size:19px;line-height:1;text-shadow:2px 2px #791b45,0 -1px #ffb7c6;animation:heart-warmth 4s ease-in-out infinite}
.hud-counts{display:grid;gap:3px;font:12px monospace;color:#ffe7ac}.hud-counts>span{display:flex;align-items:center;gap:6px;min-width:54px;justify-content:space-between;background:#080c1c;border:1px solid #6b563b;padding:2px 5px;height:24px}.hud-counts img{width:18px;height:18px;object-fit:contain;image-rendering:pixelated;animation:gem-float 3s ease-in-out infinite}.hud-counts span span{color:#edc66b;font-size:17px}
.pause-button{display:grid;place-items:center;width:41px;height:46px;border:3px solid #c48b40;box-shadow:inset 0 0 0 2px #f5d580,3px 3px #020614;background:linear-gradient(#3a3640,#161b29);color:#ffe7a0;font-size:25px;font-weight:900}
#app{padding-inline:20px}.welcome-shell #app{padding:0 20px}.welcome{position:relative;padding-top:20px;min-height:calc(100svh - 170px - env(safe-area-inset-top) - var(--safe-bottom));display:flex;flex-direction:column}
.adventure-logo{text-align:center;align-self:center;position:relative;z-index:1;filter:drop-shadow(0 4px 0 #080a20);font-family:Impact,"Arial Black",sans-serif;line-height:.98;letter-spacing:2px;animation:logo-arrive .6s ease-out both}
.logo-name{display:block;font-size:27px;color:#ff8cad;font-weight:900;-webkit-text-stroke:1px #3a1439;text-shadow:2px 2px #721e49;margin-bottom:3px}
.adventure-logo strong{display:block;font-size:43px;color:#ffd05a;-webkit-text-stroke:1px #633214;text-shadow:0 2px #fff0a8,0 4px #b66b25,3px 6px #0a0920;line-height:1.06}
.birthday-ribbon{display:block;color:#2a1525;background:linear-gradient(#ffdf7f,#d89b39);font:bold 9px/1.6 monospace;letter-spacing:1px;padding:3px 15px;margin:13px -2px 0;clip-path:polygon(0 0,100% 0,97% 50%,100% 100%,0 100%,3% 50%)}
.world-space{flex:1;min-height:260px;position:relative}.world-effects{position:absolute;inset:0 -20px;pointer-events:none;overflow:hidden;z-index:0}.magic-star,.magic-mote{position:absolute;left:var(--x);top:var(--y);color:#ffe6a0;animation:twinkle var(--duration) ease-in-out var(--delay) infinite;text-shadow:0 0 10px #ffac2b;font-style:normal}.magic-star{font-size:14px}.magic-mote{width:3px;height:3px;background:#ffe495;box-shadow:0 0 6px #ffbb40;animation-name:drift}.portal-glow{position:absolute;left:48%;top:43%;width:31%;height:24%;background:radial-gradient(ellipse,#ffc94355,transparent 65%);mix-blend-mode:screen;animation:portal-breathe 4s ease-in-out infinite}
.start-panel{position:relative;text-align:center;padding:13px 12px 7px;background:linear-gradient(#080d20b8,#070d21f5);border:2px solid #ba853e;box-shadow:0 0 0 2px #35223a,inset 0 0 0 2px #f6c86733,4px 4px #030812;margin:0 0 10px;animation:panel-arrive .5s ease-out both}
.start-panel::before,.start-panel::after{content:'◆';position:absolute;top:-8px;font-size:13px;color:#ffe18e;text-shadow:1px 2px #7b4126}.start-panel::before{right:-7px}.start-panel::after{left:-7px}
.start-panel h1{font-size:17px;color:#ffdc7e;line-height:1.7;margin:0 0 3px;text-shadow:1px 2px #321d30}.start-panel .accent{color:#ffdc7e}.start-panel .intro-copy{font-size:11px;line-height:1.6;margin:0 0 12px;color:#e1d5e8}
.primary,.cta{background:linear-gradient(#f26a9c 0%,#ca3069 50%,#a52056 51%,#c8366a 100%);color:#fff4d3;border:2px solid #edb657;box-shadow:inset 0 0 0 2px #ffd18b33,0 4px #562142,0 6px #060915;border-radius:2px;text-shadow:1px 2px #6d183f;transition:transform .12s,filter .12s}
.primary:hover,.cta:hover{background:linear-gradient(#ff85b0,#cd326d);filter:brightness(1.1)}.cta{min-height:49px;font-size:15px;padding:9px 13px;gap:8px}.cta span{font-size:21px}.cta span:last-child{font-size:13px}
.secondary-cta{display:block;color:#ffdf9b;font-size:12px;padding:11px 5px;margin-top:5px}.secondary-cta:hover{color:#fff5d1}.start-panel .journey-note{font-size:9px;display:block;margin:0 0 4px;color:#c7b2d7}.start-panel .dedication{font-size:9px;margin:0;color:#edbfa7}
.bottom-nav{max-width:520px;background:linear-gradient(#171b2e,#060b1a);border-top:3px solid #c79042;box-shadow:0 -2px #40263a;padding:9px 9px var(--safe-bottom);gap:6px}
.bottom-nav a{border:2px solid #796039;box-shadow:inset 0 0 0 1px #e9c67c33,2px 2px #020512;background:linear-gradient(#34323a,#151b2a);padding:5px 1px;font-size:10px;color:#e6d4b8;gap:3px;min-height:55px;text-shadow:1px 2px #111426;transition:transform .12s,background .15s}
.bottom-nav a:active{transform:translateY(2px)}.bottom-nav a span{color:#e7b454;font-size:23px}.bottom-nav a[aria-current]{color:#ffefb8;border-color:#f1c366;background:linear-gradient(#465344,#1c3836);box-shadow:inset 0 0 0 1px #f7d57c88,0 0 9px #f0b33e22}
.page-title{text-align:center;padding:30px 0 19px;margin-bottom:20px;border-bottom:2px solid #997242;background:linear-gradient(transparent,#251b40aa);animation:panel-arrive .3s ease-out}.page-title h1{color:#ffd773;text-shadow:2px 3px #5b2b28;font-size:26px}.eyebrow{color:#ffc975;font-size:10px;letter-spacing:1.4px}.page-title p:last-child{color:#ddd1e5}
.empty-state,.settings-card,.memory-card,.admin-card{background:linear-gradient(135deg,#141c34ed,#15112aef);border:2px solid #ac7f41;box-shadow:inset 0 0 0 2px #ffd37c1c,4px 4px #020615;border-radius:2px}.empty-state{padding:34px 20px}.empty-state h2,.settings-card h2,.memory-card h2{color:#ffdc88;text-shadow:1px 2px #43293d}.book-mark{border:3px solid #edbc61;background:linear-gradient(135deg,#663c79,#302752);box-shadow:inset 8px 0 #ae7950,5px 5px #050817;color:#ff92be}.text-link{color:#ffd778}
.passport-cover{background:linear-gradient(135deg,#345d4b,#183b3e);color:#ffdf8e;border:3px solid #dbac55;box-shadow:inset 0 0 0 3px #8e733c,4px 4px #020715;text-align:center}.passport-cover strong{text-shadow:2px 2px #112724}.route-list{padding-top:10px}.route-list li{background:linear-gradient(90deg,#161d3599,#1f193399);border:1px solid #8f6c394d;margin:12px 0;padding:14px 11px;position:relative}.route-number{border:2px solid #b88c45;background:#10172b;color:#f9ce6f;font-weight:bold;box-shadow:2px 2px #030815}.route-list h2{color:#f7dea4}.route-list li>span:last-child{color:#c5a4e9}.route-list li button{margin-inline-start:auto;font-size:10px;min-height:44px;padding:6px 9px;white-space:nowrap}.route-list li>div{min-width:0}.route-list .mystery{border-style:dashed}.mystery .route-number{color:#b69ad8}
button{border:2px solid #93713e;background:linear-gradient(#303047,#182136);box-shadow:inset 0 0 0 1px #e8c77822,2px 2px #040814;color:#ffdf9a}button:hover{background:#3e315b}.toggle input{accent-color:#e7b551}.version{color:#a595b9}.connection{position:relative;z-index:3;background:#5a3923}#notice{background:#141d36;color:#ffe6b0;border-color:#d7a14f;box-shadow:4px 4px #020510}dialog{background:linear-gradient(#1b2040,#0a1228);border:3px solid #d0a052;box-shadow:inset 0 0 0 2px #ffdc8126,5px 5px #030613}dialog h2{color:#ffda82}.creator-shell{max-width:860px}.creator-shell::before{background:linear-gradient(#080d24ef,#080d24f5)}.admin-heading h1,.admin-card h3{color:#ffd775}.field input,.field select,.field textarea{background:#080f25;border-color:#81623d}.admin-tabs [aria-current]{color:#ffda7b;border-color:#ffca63;background:#3b2e44}.danger{color:#ffb4ba;background:#4e233b;border-color:#b77863}
@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1.15)}}@keyframes drift{0%{opacity:0;transform:translateY(18px)}30%,70%{opacity:.8}100%{opacity:0;transform:translateY(-28px)}}@keyframes portal-breathe{0%,100%{opacity:.35;transform:scale(.9)}50%{opacity:.95;transform:scale(1.12)}}@keyframes gem-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes heart-warmth{0%,100%{opacity:.8}50%{opacity:1}}@keyframes logo-arrive{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes panel-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:600px){.app-shell{margin-block:0;min-height:100svh}.welcome-shell{max-width:520px}.world-space{min-height:290px}.adventure-logo strong{font-size:49px}}
@media(max-height:780px){.welcome{padding-top:13px}.adventure-logo strong{font-size:34px}.logo-name{font-size:22px}.birthday-ribbon{margin-top:10px}.world-space{min-height:210px}.start-panel{padding-top:8px}.start-panel .intro-copy{margin-bottom:8px}.start-panel h1{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.motion-paused *, .motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}
.play-link{display:block;margin:12px 0 0;background:linear-gradient(#355c51,#183b38);border:2px solid #d3a45a;color:#ffe8b5;padding:11px;font-size:13px;box-shadow:2px 3px #020616}
.player-avatar{overflow:hidden}.player-avatar img{object-position:50% 0%;transform:scale(1.6);transform-origin:50% 8%}
.start-panel .intro-copy,.start-panel .dedication{display:none}.start-panel h1{margin-bottom:10px}.secondary-cta{padding-block:7px}
@media(orientation:portrait){.welcome-shell::before{background:linear-gradient(0deg,#050c1e 0%,transparent 38%),var(--birthday-art, none) center top/auto calc(100svh - 130px) no-repeat,#050c1e}.world-space{min-height:220px}}
.play-shell{max-width:100%;height:100dvh;min-height:0;padding-bottom:0;overflow:hidden}.play-shell .masthead{max-width:700px;margin:auto}.play-shell #app{padding:0;height:calc(100dvh - 76px - env(safe-area-inset-top))}.playground{height:100%;position:relative;display:flex;flex-direction:column}.walk-toolbar{position:absolute;top:12px;inset-inline:14px;z-index:3;display:flex;justify-content:space-between;pointer-events:none;gap:15px;font-size:12px}.walk-toolbar>*{background:#071126de;color:#ffdc83;border:1px solid #bb8846;padding:9px 12px;pointer-events:auto}.walk-toolbar a{min-height:42px}.walk-viewport{flex:1;position:relative;overflow:hidden;direction:ltr;background:#121a3e}.walk-world{height:100%;position:absolute;inset:0 auto 0 0;will-change:transform}.walk-background{position:absolute;max-width:none;image-rendering:pixelated;pointer-events:none}.walk-player{position:absolute;max-width:none;width:auto;transform-origin:50% 100%;image-rendering:pixelated;will-change:transform;pointer-events:none}.walk-shadow{position:absolute;width:55px;height:11px;border-radius:50%;background:#070c19;transform:translateX(-50%)}.walk-controls{position:relative;display:flex;align-items:center;justify-content:space-between;gap:15px;direction:ltr;padding:15px 24px max(15px,env(safe-area-inset-bottom));background:linear-gradient(#1b1c34,#070e21);border-top:3px solid #c99649}.direction-pad{display:grid;grid-template-columns:repeat(3,49px);grid-template-rows:repeat(2,47px);gap:5px;direction:ltr}.direction-pad .up{grid-column:2;grid-row:1}.direction-pad .left{grid-column:1;grid-row:2}.direction-pad .down{grid-column:2;grid-row:2}.direction-pad .right{grid-column:3;grid-row:2}.direction{min-height:47px;padding:0;font-size:21px;touch-action:none;user-select:none;-webkit-user-select:none}.direction.pressed{transform:translateY(3px);background:#b57936;color:#fff4cf;box-shadow:inset 2px 2px #452a33}.walk-help{text-align:right;direction:rtl}.walk-help strong{color:#ffdc88;font-size:16px}.walk-help p{font-size:10px;margin:8px 0}.walk-help a{font-size:11px;color:#efc675;display:inline-block;padding:10px 0}
@media(orientation:landscape) and (max-height:600px){
 .app-shell{max-width:none;min-height:100dvh}.masthead{height:60px;padding:6px 18px}.player-avatar{width:43px;height:43px}.hud-center{flex:0 1 200px}.hud-counts{display:flex}.hud-hearts{font-size:14px}.wordmark{font-size:17px}.pause-button{height:39px}.welcome-shell{padding-bottom:70px}.welcome-shell #app{padding-inline:20px}.welcome{min-height:calc(100svh - 130px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:25px;padding:16px 0;direction:ltr}.adventure-logo{grid-column:1;grid-row:1;align-self:start;margin-top:3px}.adventure-logo strong{font-size:32px}.logo-name{font-size:21px}.birthday-ribbon{font-size:8px;margin-top:9px}.world-space{display:none}.start-panel{grid-column:2;grid-row:1;margin:0;direction:rtl;background:#091025e6}.start-panel h1{font-size:15px}.start-panel .intro-copy{font-size:10px}.start-panel .cta{min-height:43px;font-size:13px}.play-link{margin-top:8px;padding:7px}.secondary-cta{padding:7px;margin:0}.journey-note,.dedication{font-size:8px!important}.bottom-nav{max-width:none;height:66px;padding:5px max(20px,calc((100% - 620px)/2));border-top-width:2px}.bottom-nav a{min-height:48px;grid-template-columns:24px auto;align-items:center;justify-content:center;gap:6px}.welcome-shell::before{background:linear-gradient(90deg,transparent,#07102677),var(--birthday-art, none) 22% 45%/auto 170% no-repeat,#0b102b}.page-title{padding-top:18px}.creator-shell{max-width:860px}.play-shell #app{height:calc(100dvh - 60px)}.walk-controls{position:absolute;inset:0;background:none;border:0;pointer-events:none;align-items:flex-end;padding:15px 24px;z-index:2}.direction-pad{pointer-events:auto;grid-template-columns:repeat(3,47px);grid-template-rows:repeat(2,44px)}.direction{min-height:44px;background:#151d36d9}.walk-help{background:#071125cf;padding:8px 13px;border:1px solid #a47944;pointer-events:auto}.walk-help p{margin-block:5px}.walk-help a{padding:4px}.walk-viewport{min-height:0}
}
/* Reused artwork from Ass/OLD/Untitled(18).png; keep pixel edges crisp. */
.hud-hearts img{width:22px;height:22px;object-fit:contain;image-rendering:pixelated}
.bottom-nav a>img{width:28px;height:28px;object-fit:contain;image-rendering:pixelated}
.pause-button img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
/* First studio scene: original shell and legacy game remain available. */
.studio-app{max-width:1100px!important}
.studio-app #app{padding:0!important;height:auto!important}
.studio-shell{height:calc(100dvh - 78px);min-height:560px;display:flex;flex-direction:column;background:#151224;color:#fff0ce;overflow:hidden}
.studio-heading{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:2px solid #b98a48;background:#181426;z-index:2}
.studio-heading>div{flex:1}.studio-heading h1{font-size:19px;margin:3px 0}.studio-kicker{font-size:10px;color:#e7b975;letter-spacing:1px}.studio-objective{font-size:12px;margin:4px 0;color:#e2d5c6;line-height:1.7}
.studio-back{font-size:12px;color:#f8d28d;white-space:nowrap}.studio-bag{display:flex;align-items:center;gap:5px;padding:8px;font-size:12px;white-space:nowrap}.studio-bag img{width:23px;height:23px;object-fit:contain;image-rendering:pixelated}
.studio-stage{position:relative;flex:1;min-height:260px;overflow:hidden;background:#54485a;outline-offset:-4px;direction:ltr;touch-action:none}
.studio-world{position:absolute;left:0;top:0;width:1536px;height:1024px;transform-origin:0 0;pointer-events:none}
.studio-art{position:absolute;left:0;top:0;width:1536px;height:1024px;max-width:none;image-rendering:pixelated}
.studio-player{position:absolute;left:0;top:0;width:156px;height:255px;object-fit:contain;image-rendering:pixelated;transform-origin:50% 100%;max-width:none;z-index:4}
.studio-shadow{position:absolute;width:120px;height:16px;border-radius:50%;background:#30213370;z-index:3}
.studio-fridge-inside{position:absolute;left:1067px;top:233px;width:116px;height:174px;border:6px solid #a9bab6;background:linear-gradient(90deg,#364d56,#bed8cf);box-shadow:inset 5px 0 0 #28383b;z-index:1;box-sizing:border-box}
.studio-shelf{height:46px;border-bottom:5px solid #d3e9df;box-shadow:0 3px #3c5759}
.studio-fridge-door{position:absolute;left:1180px;top:232px;width:70px;height:174px;background:linear-gradient(90deg,#b3aeab,#75767c);border:5px solid #4a444b;box-shadow:6px 7px #30253350;transform:skewY(10deg);transform-origin:left top;z-index:2}
.studio-bottle{position:absolute;left:45px;top:67px;width:23px;height:63px;background:#89d5e3;border:3px solid #234c6e;box-shadow:inset 5px 0 #cef3ec;clip-path:polygon(25% 0,75% 0,75% 15%,100% 27%,100% 100%,0 100%,0 27%,25% 15%)}
.studio-bottle i{position:absolute;left:0;top:30px;width:100%;height:18px;background:#eff0c9}
.studio-marker{position:absolute;left:1102px;top:173px;color:#ffe7a0;font-size:38px;text-shadow:0 3px #4c2631}
.studio-controls{padding:9px 16px max(10px,env(safe-area-inset-bottom));background:#171325;border-top:2px solid #b98a48;z-index:5}.studio-message{font-size:12px;min-height:20px;margin:0 0 8px;color:#f4d995}
.studio-control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;direction:ltr}.studio-pad{display:flex;gap:7px}.studio-pad button{width:51px;height:49px;font-size:21px;touch-action:none;user-select:none;border:2px solid #c99b56;border-radius:3px;background:#343044;color:#ffdfa1}.studio-pad button:active{background:#675044}
.studio-actions{display:flex;gap:8px;direction:rtl}.studio-action{min-height:49px;padding:8px 15px;background:#754350;border:2px solid #daa65a;color:#fff0d6;border-radius:3px;font-weight:bold}.studio-action:disabled{opacity:.45}.studio-collect{background:#285b52}
.studio-footnote{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#ad9caf;margin-top:8px}.studio-save{color:#b2d8af}
.studio-inventory{position:absolute;z-index:9;top:200px;left:50%;transform:translateX(-50%);width:min(80%,350px);padding:22px;background:#201b30;border:3px solid #d4a35b;box-shadow:0 10px 35px #0008}.studio-inventory h2{font-size:18px}.studio-inventory p{font-size:14px}
.studio-shell [hidden]{display:none!important}
@media(max-width:520px){.studio-heading{padding:8px 10px;gap:7px}.studio-heading h1{font-size:15px}.studio-bag{font-size:10px}.studio-bag img{display:none}.studio-objective{font-size:11px}.studio-actions{gap:4px}.studio-action{font-size:11px;padding:7px}.studio-pad button{width:42px}.studio-controls{padding-inline:10px}}
@media(orientation:landscape) and (max-height:600px){.studio-shell{height:calc(100dvh - 60px);min-height:0}.studio-heading{padding:5px 12px}.studio-heading h1{font-size:14px}.studio-objective{font-size:10px}.studio-stage{min-height:120px}.studio-controls{padding:5px 12px}.studio-message{margin:0 0 3px;font-size:10px;min-height:14px}.studio-pad button,.studio-action{height:38px;min-height:38px}.studio-footnote{display:none}.studio-inventory{top:120px}}
@media(orientation:landscape) and (max-height:600px){
 .studio-app .masthead{display:none}.studio-app .studio-shell{position:relative;height:100dvh;min-height:0}
 .studio-app .studio-heading{position:absolute;inset:0 0 auto;z-index:6;background:linear-gradient(#171325ef,#17132599);border:0;padding:5px 14px}
 .studio-app .studio-heading h1{font-size:13px;margin:0}.studio-app .studio-objective{font-size:10px;margin:0}.studio-app .studio-kicker{font-size:8px}
 .studio-app .studio-stage{min-height:100%;height:100%;flex:none}
 .studio-app .studio-controls{position:absolute;inset:auto 0 0;background:linear-gradient(transparent,#171325e8 35%);border:0;padding:7px 14px}
 .studio-app .studio-message{text-shadow:0 1px 3px #000}.studio-app .studio-control-row{align-items:flex-end}
 .studio-app .studio-pad button{width:48px;height:43px;background:#282239dc}.studio-app .studio-action{min-height:43px;background:#754350e8}
}
.studio-shell{position:relative;direction:ltr;text-align:left;font-family:Tahoma,Arial,sans-serif}
.studio-actions{direction:ltr;flex-wrap:wrap;justify-content:flex-end}.studio-kicker{letter-spacing:.8px}
.studio-bottle{object-fit:contain;background:none!important;border:0!important;box-shadow:none!important;clip-path:none!important;width:26px;height:57px}
.studio-fridge-inside{top:422px}.studio-fridge-door{top:420px;background-image:url('assets/environments/studio/studio-first.png');background-size:1536px 1024px;background-position:-1070px -420px;transition:transform .35s;transform:perspective(450px) rotateY(-55deg);transform-origin:left center}
.studio-held-bottle{position:absolute;left:0;top:0;width:29px;height:58px;z-index:5;image-rendering:pixelated}
.studio-makeup-drawer{position:absolute;left:956px;top:430px;width:74px;height:48px;background:#35333e;border:5px solid #e3d8c8;box-shadow:8px 10px #1b1826;z-index:2;transform:translateY(7px)}
.studio-makeup-drawer:after{content:'';position:absolute;left:25px;top:10px;width:19px;height:5px;background:#b18a58}
.studio-fridge-art{position:absolute;left:1040px;top:218px;width:255px;height:395px;max-width:none;z-index:2;image-rendering:pixelated}
.studio-drawer-art{position:absolute;left:939px;top:342px;width:121px;height:270px;max-width:none;z-index:2;image-rendering:pixelated}
.studio-fridge-inside,.studio-fridge-door,.studio-makeup-drawer{visibility:hidden}
.studio-loading{position:absolute;inset:0;z-index:10;display:grid;place-content:center;gap:12px;text-align:center;background:#211a32;color:#f6d38a;font-size:15px}
.global-bag{padding:4px;min-width:42px;min-height:42px;border:2px solid #d0a357;background:#211a32;flex-shrink:0}.global-bag img{width:28px;height:28px;object-fit:contain;image-rendering:pixelated}
.studio-bag img{display:block!important}.studio-phone-prop,.studio-card-prop{position:absolute;z-index:3;image-rendering:pixelated}.studio-phone-prop{left:501px;top:472px;width:24px;height:33px;transform:rotate(72deg)}.studio-card-prop{left:555px;top:485px;width:39px;height:26px}
.journey-bag,.departure-puzzle{width:min(90vw,540px);max-height:85dvh;overflow:auto;box-sizing:border-box;background:#211a32;color:#fff0d5;border:3px solid #d0a357;padding:20px;text-align:left;font-family:Tahoma,Arial,sans-serif}
.journey-bag::backdrop,.departure-puzzle::backdrop{background:#080919b8}.bag-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.bag-title h2{font-size:19px}.bag-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bag-item{display:flex;align-items:center;flex-direction:column;gap:8px;position:relative;min-height:112px;background:#322942;border:2px solid #9e7c50;color:#ffefce;padding:10px 5px}.bag-item img{height:48px;width:64px;object-fit:contain;image-rendering:pixelated}.bag-item strong{font-size:12px}.bag-quantity{position:absolute;right:5px;top:3px;color:#f5d178}.bag-details{margin-top:14px;padding:12px;background:#171224;min-height:75px;font-size:13px}.bag-details h3{margin:0 0 8px}.departure-puzzle input{display:block;box-sizing:border-box;width:100%;margin:8px 0;padding:12px;color:#fff;background:#141022;border:2px solid #a27c55}.departure-puzzle button{margin:8px 8px 0 0;min-height:44px}.departure-puzzle p{line-height:1.7}.departure-puzzle [hidden]{display:none!important}
.studio-aura{position:absolute;left:0;top:0;width:370px;height:420px;z-index:3;border:5px solid #ffe39b;border-radius:50%;box-shadow:0 0 45px #ffe6a8,inset 0 0 35px #fff2c0;background:radial-gradient(ellipse,transparent 48%,#ffe29688 80%,transparent);pointer-events:none}
.studio-dress-magic{position:absolute;left:0;top:0;width:420px;height:440px;z-index:6;pointer-events:none;filter:drop-shadow(0 0 12px #ffd474)}
.studio-magic-clock{position:absolute;left:74px;top:45px;width:272px;height:272px;border:8px double #ffe08b;border-radius:50%;background:radial-gradient(circle,#fff5bd26 0 43%,transparent 45%),conic-gradient(from 0deg,#ffcf6880,transparent 12%,#fff1ac99 22%,transparent 36%,#f09bff77 52%,transparent 70%,#72e8ff88 85%,transparent);box-shadow:0 0 28px #ffd670,inset 0 0 32px #fff0a866;animation:studio-clock-turn 2.4s cubic-bezier(.2,.75,.2,1) both}
.studio-clock-hand{position:absolute;left:129px;top:35px;width:8px;height:104px;border-radius:8px;background:linear-gradient(#fff9cd,#ffb349);box-shadow:0 0 12px #fff;transform-origin:50% 100%;animation:studio-clock-hand 1.2s linear 2}
.studio-clock-hand:after{content:'✦';position:absolute;left:-11px;top:-23px;color:#fff8c7;font-size:28px}
.studio-magic-glow{position:absolute;left:88px;top:58px;width:244px;height:300px;border-radius:50%;background:radial-gradient(ellipse,#fff9cfb8 0,#ffd86d66 30%,#d78bff42 54%,transparent 72%);animation:studio-magic-glow 2.4s ease-in-out both}
.studio-clock-tick{--angle:calc(var(--tick)*30deg);position:absolute;left:205px;top:166px;width:5px;height:18px;border-radius:4px;background:#fff6bd;box-shadow:0 0 8px #ffd66b;transform:rotate(var(--angle)) translateY(-126px)}
.studio-magic-spark{--angle:calc(var(--spark)*25.714deg);position:absolute;left:200px;top:200px;color:#fff6ad;font:32px/1 serif;text-shadow:0 0 8px #fff,0 0 17px #ffad55;animation:studio-spark-fly 1.15s ease-out calc(var(--spark)*.045s) 2 both;transform:rotate(var(--angle)) translateY(-55px) rotate(calc(var(--angle)*-1))}
@keyframes studio-clock-turn{0%{opacity:0;transform:scale(.35) rotate(-100deg)}20%{opacity:1;transform:scale(1) rotate(0)}78%{opacity:1;transform:scale(1.05) rotate(325deg)}100%{opacity:0;transform:scale(1.35) rotate(410deg)}}
@keyframes studio-clock-hand{to{transform:rotate(360deg)}}
@keyframes studio-magic-glow{0%,100%{opacity:0;transform:scale(.5)}30%,68%{opacity:1;transform:scale(1)}}
@keyframes studio-spark-fly{0%{opacity:0;transform:rotate(var(--angle)) translateY(-35px) scale(.2) rotate(calc(var(--angle)*-1))}35%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-205px) scale(1.15) rotate(calc(var(--angle)*-1))}}
@media(max-width:550px){.hud-center .wordmark{font-size:16px}.hud-counts{font-size:10px}.global-bag{min-width:36px;min-height:36px}.global-bag img{width:24px;height:24px}.journey-bag,.departure-puzzle{padding:14px}.bag-grid{gap:7px}.bag-item strong{font-size:11px}}
.studio-sofa-front{position:absolute;inset:0;z-index:5;background:url('assets/environments/studio/studio-first.png') 0 0/1536px 1024px;clip-path:polygon(433px 484px,658px 484px,658px 594px,433px 594px);image-rendering:pixelated}
.studio-exit-door{position:absolute;left:1425px;top:211px;width:211px;height:356px;max-width:none;z-index:2;image-rendering:pixelated}
.studio-departure{position:absolute;z-index:8;inset:25% 6% auto;background:#211a32f5;border:3px solid #d4a35b;padding:22px;text-align:center;box-shadow:0 10px 40px #0009}
.studio-departure h2{font-size:20px;color:#f8d28d}.studio-departure p{font-size:13px;line-height:1.6}.studio-departure button{min-height:44px}
@media(orientation:landscape) and (max-height:600px){.studio-departure{inset:18% 15% auto;padding:12px}.studio-departure h2{font-size:17px;margin:5px}.studio-departure p{margin:6px}}
.conversation-panel{position:absolute;z-index:15;bottom:12px;left:12px;right:12px;display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:14px;background:#1d1733;border:3px solid #d9aa59;box-shadow:inset 0 0 0 2px #55334d,0 5px #080814;color:#fff3d9;direction:ltr;text-align:left;min-height:102px}
.conversation-panel[hidden],.character-bubble[hidden]{display:none!important}.conversation-portrait{width:56px;height:70px;object-fit:cover;object-position:top;image-rendering:pixelated;border:2px solid #bb8750;background:#382b4b}
.conversation-name{font-size:12px;color:#ffc87d}.conversation-text{font-size:14px;line-height:1.45;margin:6px 0 0;min-height:40px}.conversation-panel button{font-size:12px;min-height:44px;background:#744356;border:2px solid #d6a756;color:#fff2d2;padding:8px}
.character-bubble{position:absolute;z-index:10;width:205px;min-height:82px;padding:13px 17px 24px;box-sizing:border-box;transform:translate(-50%,-100%);background:url('assets/ui/dialogue-speech.svg') center/100% 100% no-repeat;color:#302236;text-align:center;font-size:12px;line-height:1.3;pointer-events:none}
.character-bubble.thought{background-image:url('assets/ui/dialogue-thought.svg');padding-bottom:29px}
.studio-shell.in-conversation .studio-controls{visibility:hidden}
.studio-shell.in-conversation .studio-heading{opacity:.45}
@media(max-width:520px){.conversation-panel{grid-template-columns:40px 1fr;gap:8px;padding:10px;bottom:8px}.conversation-portrait{width:40px;height:54px}.conversation-panel button{grid-column:2;justify-self:end;min-height:36px}.conversation-text{font-size:12px}.studio-actions{max-width:210px}.studio-action{min-height:40px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.studio-fridge-door{transition:none}}
.character-bubble{background-color:#fff2dc;border:2px solid #503b56;border-radius:8px;box-shadow:2px 3px #21162c66}
.character-bubble.thought{border-radius:24px}.character-bubble.thought:after{content:'';position:absolute;width:9px;height:9px;bottom:-12px;left:43%;border-radius:50%;background:#fff2dc;border:2px solid #503b56}
.character-bubble.thought:before{content:'';position:absolute;width:4px;height:4px;bottom:-21px;left:39%;border-radius:50%;background:#fff2dc;border:1px solid #503b56}
