/* Shot-driven chibi stage. Cover art and narrative palette are preserved. */
.scene{aspect-ratio:16/10;isolation:isolate;cursor:crosshair;background:#eee0fb;overflow:hidden}.world-stage{position:absolute;inset:0;transform:scale(1);transform-origin:50% 50%;transition:transform 850ms cubic-bezier(.22,.7,.2,1),transform-origin 850ms,background 1s;background:linear-gradient(155deg,#f1e5fd,#dfcef1);will-change:transform}.world-stage[data-camera=face]{transform:scale(1.75);transform-origin:35% 53%}.world-stage[data-camera=screen]{transform:scale(1.9);transform-origin:58% 50%}.world-stage[data-camera=phone]{transform:scale(1.85);transform-origin:81% 49%}.world-stage[data-camera=tea]{transform:scale(1.85);transform-origin:20% 70%}.world-stage[data-camera=cat]{transform:scale(1.9);transform-origin:80% 76%}.world-stage[data-set=workbench]{background:linear-gradient(155deg,#e8e1fa,#c7d9ec)}.world-stage[data-set=phone]{background:linear-gradient(155deg,#f3e0ef,#ddc7e5)}.world-stage[data-set=tea]{background:linear-gradient(155deg,#f5e7d7,#ead7e8)}.world-stage[data-set=morning]{background:linear-gradient(155deg,#fff1cb,#eddef6)}.pastel-orb{position:absolute;border-radius:50%;pointer-events:none;opacity:.6}.orb-one{width:37%;aspect-ratio:1;left:-15%;top:-24%;background:#ffd8bd}.orb-two{width:30%;aspect-ratio:1;right:-9%;top:3%;background:#f4d9ed}.room-floor{position:absolute;left:0;right:0;bottom:0;height:35%;background:#ddc8eb;border-top:2px solid #cfb2de;transition:background .8s}.room-floor:before{content:"";position:absolute;left:5%;right:5%;top:10%;height:70%;border-radius:50%;background:#eee0f7;border:1px dashed #cbb0dc;transform:scaleY(.65)}.world-stage[data-set=tea] .room-floor{background:#e4ccd8}.world-stage[data-set=morning] .room-floor{background:#f2daca}.moon{position:absolute;width:10%;aspect-ratio:1;border-radius:50%;top:17%;left:55%;background:#fff1ca;box-shadow:0 0 20px #fff0ca33;transition:background 1s,transform 1s}.moon:after{content:"";position:absolute;inset:-2px 5px 8px -3px;border-radius:50%;background:#e8d8f6;transition:opacity 1s}.world-stage[data-set=morning] .moon{background:#ffd78b;transform:translateY(-10px);box-shadow:0 0 25px #ffdca880}.world-stage[data-set=morning] .moon:after{opacity:0}.floating-star{position:absolute;color:#c29bd4;font-size:19px;animation:star-sway 4s ease-in-out infinite;pointer-events:none}.star-one{left:31%;top:22%;font-size:24px}.star-two{right:9%;top:14%;animation-delay:-2s}@keyframes star-sway{50%{transform:translateY(-4px) rotate(10deg);opacity:.6}}.world-prop{position:absolute;padding:0;border:0!important;background:transparent!important;border-radius:0;box-shadow:none!important;cursor:pointer;overflow:visible;min-height:0;transition:filter .25s,transform .4s}.world-prop>svg{width:100%;height:auto;display:block;overflow:visible}.world-prop:hover{filter:drop-shadow(0 0 5px #fff3d8);transform:translateY(-3px)}.world-prop:focus-visible{outline:2px solid #ad78c7;outline-offset:3px;border-radius:8px}.world-prop.used{opacity:1!important}.prop-caption{display:block;white-space:nowrap;text-align:center;font-size:8px;font-weight:550;color:#a476b3;line-height:1.2;position:absolute;left:50%;transform:translateX(-50%);bottom:-13px;background:#fff8f2d9;border:1px solid #ddc0e6;border-radius:10px;padding:2px 7px;pointer-events:none}.note-prop{left:12%;top:25%;width:13%;transform:rotate(-6deg);z-index:1}.desk-prop{left:44%;top:37%;width:37%;z-index:2}.phone-prop{right:8%;top:40%;width:9%;transform:rotate(9deg);z-index:2}.phone-ping{position:absolute;right:7%;top:1%;width:8px;height:8px;border-radius:50%;background:#ed9a96;box-shadow:0 0 0 4px #ed9a9622;animation:ping 2.4s infinite}.tea-prop{left:11%;top:64%;width:12%;z-index:3}.cat-prop{right:7%;top:69%;width:18%;z-index:3}.cat-body{transform-origin:50% 90%;animation:cat-breathe 3s ease-in-out infinite}.cat-zzz{animation:cat-zzz 2.8s ease-out infinite}.cat-awake .cat-body{animation:cat-hop .6s ease-out}.cat-awake .cat-zzz{opacity:0;animation:none}@keyframes cat-breathe{50%{transform:scaleY(1.025)}}@keyframes cat-zzz{0%{opacity:0;transform:translate(0,0)}30%{opacity:1}100%{opacity:0;transform:translate(6px,-12px)}}@keyframes cat-hop{30%{transform:translateY(-9px) rotate(-3deg)}60%{transform:translateY(0) scaleY(.95)}}.steam{position:absolute;width:8%;height:23%;border-left:2px solid #fff9f0;border-radius:50%;top:-5%;opacity:.5;animation:steam 2.3s linear infinite}.steam-a{left:34%}.steam-b{left:52%;animation-delay:1.2s}.steaming .steam{opacity:1}@keyframes steam{0%{transform:translateY(8px) scaleY(.3);opacity:0}40%{opacity:.7}100%{transform:translateY(-12px) scaleY(1);opacity:0}}.screen-awake .monitor-glow{fill:#e9ffe5}.screen-awake .screen-data{stroke:#96c09a;stroke-dasharray:50;animation:screen-scan 2s linear infinite}.screen-error .monitor-glow{fill:#ffd2cd}.screen-error{animation:screen-wiggle .2s linear 3}@keyframes screen-wiggle{50%{transform:translateX(2px)}}@keyframes screen-scan{to{stroke-dashoffset:-100}}.mia-actor{position:absolute;width:22%;transform:translate(-50%,-100%);z-index:4;pointer-events:none;transition:left var(--walk-duration,650ms) linear,top var(--walk-duration,650ms) linear}.hero-sprite{width:100%;transform-origin:50% 95%;animation:mia-breathe 3.6s ease-in-out infinite}.hero-sprite svg{width:100%;height:auto;display:block;overflow:visible}.hero-head{transform-origin:80px 115px}.hero-eyes{transform-origin:80px 81px;animation:blink 5s infinite}.leg{transform-origin:50% 5%;transform-box:fill-box}.arm{transform-origin:50% 5%;transform-box:fill-box}.walking .hero-sprite{animation:walk-bob .32s ease-in-out infinite}.walking .leg-left{animation:leg-swing .32s ease-in-out infinite alternate}.walking .leg-right{animation:leg-swing .32s ease-in-out -.32s infinite alternate}.walking .arm-left{animation:arm-swing .32s ease-in-out -.32s infinite alternate}.walking .arm-right{animation:arm-swing .32s ease-in-out infinite alternate}.mia-actor[data-facing=left] .hero-sprite{scale:-1 1}.mia-actor[data-pose=typing]:not(.walking) .arm-left,.mia-actor[data-pose=typing]:not(.walking) .arm-right{animation:typing .45s ease-in-out infinite alternate}.mia-actor[data-pose=phone]:not(.walking) .arm-right{transform:rotate(-110deg)}.mia-actor[data-pose=sip]:not(.walking) .arm-left{transform:rotate(100deg)}.mia-actor[data-pose=pet]:not(.walking) .arm-right{animation:pet .7s ease-in-out infinite}.mia-actor[data-pose=happy] .hero-head{animation:happy-nod .9s ease-in-out 2}.mia-actor[data-pose=surprise] .hero-mouth{transform-origin:80px 109px;transform:scaleY(1.6)}.scene[data-mood=tired] .hero-eyes{opacity:.75}.thought-bubble{position:absolute;left:50%;bottom:102%;max-width:220%;min-width:110%;transform:translate(-50%,6px);opacity:0;padding:6px 10px;background:#fffaf1;border:1px solid #c4a0d7;color:#966aaa;border-radius:14px;font-size:9px;text-align:center;line-height:1.6;box-shadow:0 3px 0 #d9bfe6;transition:opacity .2s,transform .2s;white-space:normal}.thought-bubble:after{content:"";position:absolute;left:48%;bottom:-5px;width:7px;height:7px;background:#fffaf1;border-bottom:1px solid #c4a0d7;border-right:1px solid #c4a0d7;transform:rotate(45deg)}.thought-bubble.visible{opacity:1;transform:translate(-50%,0)}.walk-marker{position:absolute;width:7%;height:3%;border:2px solid #ac81c2;border-radius:50%;transform:translate(-50%,-50%);opacity:0;z-index:1}.walk-marker.visible{opacity:.5;animation:target-pulse .5s infinite alternate}@keyframes mia-breathe{50%{transform:translateY(-2px)}}@keyframes blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}@keyframes walk-bob{50%{transform:translateY(-4px) rotate(1deg)}}@keyframes leg-swing{from{transform:rotate(-12deg)}to{transform:rotate(12deg)}}@keyframes arm-swing{from{transform:rotate(-18deg)}to{transform:rotate(18deg)}}@keyframes typing{from{transform:rotate(-40deg)}to{transform:rotate(-52deg)}}@keyframes pet{50%{transform:rotate(-32deg)}}@keyframes happy-nod{50%{transform:rotate(-4deg) translateY(-2px)}}@keyframes target-pulse{to{scale:1.2;opacity:.2}}@keyframes ping{50%{box-shadow:0 0 0 6px #ed9a9600}}
.scene-top{pointer-events:none;z-index:8;top:13px}.scene-top>span:last-child{background:#fff9f2e0}.scene-bottom{z-index:7;pointer-events:none;gap:8px;justify-content:flex-start}.scene-bottom .scene-label{margin-left:auto}.set-label{display:none}.shot-controls{position:absolute;top:51px;left:17px;right:17px;display:flex;align-items:center;gap:5px;z-index:8;pointer-events:none}.shot-controls>span{font-size:8px;color:#9870ab;background:#fffbf4dc;border:1px solid #d9bde6;padding:2px 7px;border-radius:8px}.shot-controls button{pointer-events:auto;font-size:7px;padding:3px 7px;border:1px solid #cba6df;border-radius:9px;background:#fffbf2dc;color:#a179ae;box-shadow:0 2px 0 #d8bce4}.shot-controls #shot-skip{margin-left:auto}.shot-controls #shot-replay{margin-left:auto}.shot-playback{position:absolute;left:10%;right:10%;bottom:12%;z-index:8;text-align:center;background:#fff9f0ef;border:1px solid #ccabd9;border-radius:14px;box-shadow:0 4px 0 #c9a6dc6b;padding:12px 15px;pointer-events:none;animation:shot-caption-in .35s ease-out}.shot-playback span{color:#b592bf;font-size:8px;letter-spacing:2px}.shot-playback p{margin:3px 0 0;font-size:11px;line-height:1.75;color:#90679f}.chapter-curtain{position:absolute;inset:0;background:#e6d5f5f7;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:12;animation:curtain-in .25s ease-out}.chapter-curtain small{font-size:10px;letter-spacing:4px;color:#b38cc3}.chapter-curtain b{font-size:25px;color:#9a6bad;margin:10px 0;font-weight:550}.chapter-curtain>span{font-size:9px;letter-spacing:1px;color:#ba99c8}.scene-action{position:absolute;right:8%;top:30%;z-index:7;font-size:9px;padding:8px 12px;background:#fff1ce;color:#a2788d;border:2px solid #cba4b9;border-radius:15px;box-shadow:0 4px 0 #d0afc6;animation:call-to-action 2.5s ease-in-out infinite}.scene-action[data-kind=file],.scene-action[data-kind=report]{right:24%;top:29%}.ringing{animation:phone-ring .55s ease-in-out infinite}.flow-ribbon{position:relative;background:#fff6ed;border:1px solid #ddc3e7;border-radius:13px;margin:12px 0 0;padding:11px 13px;box-shadow:0 3px 0 #e5d0ee}.flow-ribbon>div{display:flex;justify-content:space-between;gap:3px}.flow-step{font-size:8px;color:#c7b1d0}.flow-step.current{color:#a679b8;font-weight:700}.flow-step.complete{color:#94ad7b}.flow-ribbon p{font-size:10px;color:#aa859d;line-height:1.65;margin:7px 0 0}.state-pop{position:absolute;right:8px;bottom:100%;display:flex;gap:5px;pointer-events:none;opacity:0;z-index:9}.state-pop span{font-size:9px;background:#eaf0d4;color:#91a473;border:1px solid #c7d5a5;border-radius:10px;padding:3px 7px}.state-pop.show{animation:stat-rise 2.4s ease-out forwards}.workspace-body{position:relative}.workspace-locked{opacity:.12;filter:blur(3px);pointer-events:none;user-select:none;transition:opacity .3s}.text-unread{filter:blur(5px);opacity:.4;user-select:none}.workspace-gate{position:absolute;inset:0;z-index:3;min-height:300px;padding:35px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fffaf1c4;backdrop-filter:blur(3px);border-radius:0 0 18px 18px}.workspace-gate small{font-size:9px;letter-spacing:1px;color:#c09ab9;margin-top:16px}.workspace-gate h3{font-size:19px;line-height:1.7;color:#a177ae;font-weight:550;margin:14px 0 8px}.workspace-gate p{color:#b497be;font-size:11px;line-height:1.9;margin-bottom:22px}.workspace-gate button{font-size:11px;padding:12px 18px;border:2px solid #d0a2b4;border-radius:15px;box-shadow:0 4px 0 #dfb8c4;background:#ffd2b7;color:#a37189}.gate-icon{width:65px;height:45px;border:2px solid #bf98cf;background:#eddcf6;border-radius:12px;transform:rotate(-8deg);box-shadow:5px 7px 0 #d7bde455;position:relative;animation:envelope-bob 3s ease-in-out infinite}.gate-icon:before{content:"";position:absolute;left:10%;right:10%;top:0;height:57%;border-left:2px solid #bf98cf;border-bottom:2px solid #bf98cf;transform:rotate(-45deg) skew(12deg,12deg);border-radius:0 0 0 7px;transform-origin:center}.gate-icon[data-kind=file]:before,.gate-icon[data-kind=report]:before{left:22%;right:22%;top:25%;height:35%;transform:none;border:0;border-top:2px solid #bf98cf;border-bottom:2px solid #bf98cf}.gate-icon[data-kind=call]{width:36px;height:61px;border-radius:10px;background:#e3eed9}.gate-icon[data-kind=call]:before{width:8px;height:8px;border:1px solid #a9c29b;left:12px;top:auto;bottom:5px;transform:none;border-radius:50%;background:#f5ffe8}.content-reveal .bubble,.content-reveal .file-attachment,.content-reveal .desk-card,.content-reveal .choice,.content-reveal .evidence{animation:content-unfold .45s both;animation-delay:var(--reveal-delay,0ms)}.fx-particles{position:absolute;left:50%;top:45%;z-index:14;pointer-events:none}.fx-particles i{display:block;position:absolute;width:7px;height:7px;border-radius:50%;opacity:0}.fx-particles i.paper-particle{border-radius:1px;width:8px;height:11px}.fx-particles.burst i{animation:particles .8s ease-out both}.send-plane{position:absolute;z-index:10;left:55%;top:45%;color:#fff5d5;filter:drop-shadow(0 1px 2px #b997c9);font-size:35px;pointer-events:none}.send-plane.sent{animation:send-flight .75s ease-in forwards}
.letter-overlay{position:absolute;inset:0;z-index:11;background:#e9d9f3dd;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;animation:letter-arrive .5s cubic-bezier(.2,.9,.2,1)}.letter-glow{position:absolute;left:20%;right:20%;top:10%;bottom:12%;border-radius:50%;background:#fff2d4;filter:blur(30px);opacity:.7;pointer-events:none}.envelope{position:relative;width:44%;aspect-ratio:1.55;perspective:600px;margin-top:7%;animation:envelope-bob 3s ease-in-out infinite}.envelope-back{position:absolute;inset:0;background:#d9bcea;border:2px solid #bc93c9;border-radius:10px;z-index:1}.envelope-front{position:absolute;inset:0;border:2px solid #c39acb;border-radius:10px;background:linear-gradient(32deg,#e9d3f6 49%,transparent 50%),linear-gradient(-32deg,#eddcf7 49%,transparent 50%);z-index:4;pointer-events:none}.envelope-flap{position:absolute;left:0;right:0;top:0;height:70%;background:#f5e5fb;clip-path:polygon(0 0,100% 0,50% 94%);border-radius:8px;z-index:5;transform-origin:top center;transition:transform .5s ease,z-index 0s .25s;pointer-events:none;backface-visibility:hidden}.letter-seal{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);padding:0;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:2px solid #d5a59a;background:#ffd6b8;color:#b18c86;font-size:12px;z-index:6;box-shadow:0 2px 0 #cfa8bb}.letter-paper{position:absolute;inset:5% 8% 5%;background:#fffaf0;border:1px solid #e1c7d4;border-radius:7px;padding:9px 13px;text-align:center;z-index:2;transform:translateY(0);transition:transform .65s .18s,box-shadow .65s .18s;overflow:hidden}.letter-paper>span{font-size:7px;color:#c09ab2;letter-spacing:1px;display:block}.letter-paper b{font-size:11px;color:#a579af;display:block;margin:3px 0}.letter-paper p{font-size:8px;color:#b18da8;line-height:1.8;margin:4px 0}.is-open .envelope-flap{transform:rotateX(180deg);z-index:0}.is-open .letter-paper{transform:translateY(-65%);box-shadow:0 0 30px #fff1dc77}.letter-overlay>p{position:relative;font-size:10px;color:#a77baf;line-height:1.7;text-align:center;max-width:80%;margin-top:20px;min-height:18px}.letter-overlay>button{position:relative;z-index:9;padding:7px 16px;border:1px solid #d1abc8;background:#fff3dc;color:#aa859f;border-radius:12px;font-size:10px;box-shadow:0 3px 0 #d2afcb}.letter-overlay>.letter-fast{background:transparent;font-size:7px;border:0;box-shadow:none;padding:8px 10px;color:#b79dc1;margin-top:3px}.letter-overlay.is-open .envelope{animation:none}.shot-controls>button:disabled{opacity:.4}
@keyframes particles{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}}@keyframes shot-caption-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes curtain-in{from{opacity:0}to{opacity:1}}@keyframes call-to-action{50%{transform:translateY(-3px);box-shadow:0 7px 0 #d0afc655}}@keyframes phone-ring{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes stat-rise{0%{opacity:0;transform:translateY(10px)}20%,70%{opacity:1;transform:translateY(-8px)}100%{opacity:0;transform:translateY(-25px)}}@keyframes content-unfold{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes letter-arrive{from{opacity:0;transform:translate(25%,-15%) scale(.75)}to{opacity:1;transform:translate(0,0) scale(1)}}@keyframes envelope-bob{50%{transform:translateY(-3px) rotate(1deg)}}@keyframes send-flight{0%{opacity:1;transform:translate(0,0) rotate(-20deg)}100%{opacity:0;transform:translate(200px,-130px) rotate(-35deg)}}
@media(max-width:760px){.scene{aspect-ratio:16/10}.scene-top{top:11px}.shot-controls{top:44px;left:13px;right:13px;gap:4px}.shot-controls button,.shot-controls>span{font-size:6px;padding:2px 5px}.prop-caption{font-size:6px;padding:2px 5px;bottom:-10px}.scene-action{font-size:7px;padding:6px 8px;border-width:1px;top:28%;right:7%}.scene-action[data-kind=file],.scene-action[data-kind=report]{top:28%;right:20%}.thought-bubble{font-size:7px;padding:4px 7px;min-width:150%}.shot-playback{bottom:9%;left:7%;right:7%;padding:8px 12px}.shot-playback p{font-size:9px}.shot-playback>span{font-size:6px}.chapter-curtain b{font-size:21px}.chapter-curtain small{font-size:8px}.chapter-curtain>span{font-size:7px}.scene-bottom .scene-label{display:none}.scene-bottom{font-size:6px;bottom:7px}.flow-ribbon{padding:10px 11px;margin-top:10px}.flow-step{font-size:7px}.flow-ribbon p{font-size:9px}.workspace-gate{padding:25px;min-height:300px}.workspace-gate h3{font-size:17px}.workspace-gate small{font-size:8px}.workspace-gate p{font-size:10px}.workspace-gate button{font-size:10px}.letter-overlay>p{font-size:8px;margin-top:14px}.letter-overlay>button{font-size:8px;padding:5px 12px}.letter-overlay>.letter-fast{font-size:6px}.letter-paper{padding:5px 8px}.letter-paper>span{font-size:5px}.letter-paper b{font-size:8px;margin:2px 0}.letter-paper p{font-size:6px;margin:1px 0}.letter-seal{width:25px;height:25px;font-size:9px;border-width:1px}.envelope{width:47%;margin-top:8%}.gate-icon{scale:.85}.state-pop span{font-size:7px;padding:2px 5px}}
@media(prefers-reduced-motion:reduce){.world-stage,.mia-actor,.envelope-flap,.letter-paper{transition:none!important}.hero-sprite,.hero-eyes,.cat-body,.cat-zzz,.floating-star,.steam,.scene-action,.gate-icon,.envelope,.ringing{animation:none!important}.fx-particles{display:none}.letter-glow{filter:none;opacity:.2}}
.world-stage[data-set=phone] .desk-prop{opacity:.65;transform:translateX(-9%) scale(.9)}.world-stage[data-set=phone] .phone-prop{scale:1.12}.world-stage[data-set=tea] .desk-prop{opacity:.55;transform:translateX(8%) scale(.9)}.world-stage[data-set=tea] .tea-prop{scale:1.13}.world-stage[data-set=morning] .floating-star{opacity:.25}.scene-task-board{position:absolute;left:8%;top:22%;width:27%;opacity:0;transform:translateY(7px) rotate(-3deg);transition:opacity .5s,transform .5s;background:#fffaf2;border:1px solid #bd9ed0;border-radius:9px;padding:9px;box-shadow:3px 4px 0 #cab0da55;z-index:1;pointer-events:none}.scene-task-board>span{display:block;font-size:8px;color:#a580b4;margin-bottom:5px}.scene-task-board i{display:block;font-size:8px;font-style:normal;background:#efdef8;border:1px solid #ddc5e8;border-radius:5px;color:#aa87b7;padding:3px 6px;margin:4px 0}.world-stage[data-set=workbench] .scene-task-board{opacity:1;transform:translateY(0) rotate(-3deg)}.world-stage[data-set=workbench] .note-prop{opacity:.25;transform:translateX(-50%)}.letter-paper p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.game-started .scene{animation:content-unfold .5s ease-out}.modal-body{animation:content-unfold .25s ease-out}
@media(max-width:760px){.scene-task-board{padding:6px}.scene-task-board>span{font-size:6px;margin-bottom:3px}.scene-task-board i{font-size:6px;padding:2px 4px;margin:3px 0}}
