:root{--night-deep: #0b1322;--night: #101b2d;--night-soft: #1a2940;--night-line: #253753;--amber: #f0a04b;--amber-deep: #d97f28;--amber-soft: #f6c288;--amber-glow: rgba(240, 160, 75, .35);--cream: #f5ead8;--paper: #e8dfd0;--slate-dim: #7284a0;--slate-dimmer: #4a5a75;--moon: #c9d6e8;--ok: #7fb069;--danger: #d06a5a;--radius: 18px;--radius-sm: 12px;--shadow: 0 6px 24px rgba(4, 8, 16, .45);--ts: 1;--font-body: "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:#05080f;color:var(--cream);font-family:var(--font-body);height:100dvh;overscroll-behavior:none}body{display:flex;justify-content:center;align-items:stretch}#app{width:100%;max-width:460px;height:100dvh;display:flex;flex-direction:column;background:var(--night-deep);box-shadow:0 0 60px #0009;overflow:hidden}@media(orientation:landscape)and (min-width:640px){#app{max-width:none;width:100vw;border-inline:none}}@media(orientation:portrait)and (min-width:500px){#app{border-inline:1px solid var(--night-line)}}button{font-family:inherit;color:inherit;border:none;background:none;cursor:pointer}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.screen{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding-bottom:env(safe-area-inset-bottom);scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.big-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:calc(64px * var(--ts));padding:14px 20px;border-radius:var(--radius);font-size:calc(1.25rem * var(--ts));font-weight:600;background:var(--night-soft);color:var(--cream);box-shadow:var(--shadow);transition:transform .12s ease,background .2s ease}.big-btn:active{transform:scale(.97)}.big-btn.amber{background:linear-gradient(180deg,var(--amber),var(--amber-deep));color:#2a1a08}.big-btn.quiet{background:var(--night-soft);color:var(--slate-dim)}.nameplate{position:absolute;transform:translate(-50%);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:#0b1322b8;color:var(--slate-dim);border:1px solid rgba(114,132,160,.25);white-space:nowrap;transition:color .8s ease,border-color .8s ease,background .8s ease;pointer-events:none;z-index:5}.nameplate.present{color:var(--amber-soft);border-color:#f0a04b73;background:#1a1408b8}.stage-wrap{position:relative;width:100%}.stage{position:relative;width:100%;overflow:hidden;border-radius:0 0 var(--radius) var(--radius);background:var(--night-deep)}.stage .base{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:filter 1.4s ease;filter:brightness(.3) saturate(.55) contrast(1.06) hue-rotate(-12deg)}.stage.lit .base{filter:none}.stage .night-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0b1322d1,#101b2d8c 45%,#0b13229e);transition:opacity 1.4s ease;pointer-events:none;z-index:2}.stage.lit .night-veil{opacity:0}.stage .stars{position:absolute;top:0;right:0;bottom:55%;left:0;background-image:radial-gradient(1.5px 1.5px at 12% 22%,var(--moon) 50%,transparent 51%),radial-gradient(1px 1px at 32% 12%,var(--moon) 50%,transparent 51%),radial-gradient(1.6px 1.6px at 55% 28%,var(--moon) 50%,transparent 51%),radial-gradient(1px 1px at 68% 9%,var(--moon) 50%,transparent 51%),radial-gradient(1.4px 1.4px at 84% 20%,var(--moon) 50%,transparent 51%),radial-gradient(1px 1px at 93% 34%,var(--moon) 50%,transparent 51%),radial-gradient(2.2px 2.2px at 45% 6%,var(--moon) 50%,transparent 51%);opacity:.9;transition:opacity 1.4s ease;pointer-events:none;z-index:3}.stage.lit .stars{opacity:0}.stage .lantern-glow{position:absolute;width:26%;aspect-ratio:1;left:50%;top:30%;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--amber-glow) 0%,rgba(240,160,75,.12) 45%,transparent 70%);transition:opacity 1.4s ease;pointer-events:none;z-index:3}.stage.lit .lantern-glow{opacity:.25}.stage-wrap>.presence{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.presence .slot{position:absolute;will-change:transform}.presence .slot img.fig{width:100%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 4px 6px rgba(4,8,16,.45))}.presence .slot .canopy{position:absolute;left:50%;transform:translate(-50%);bottom:92%;width:130%}.presence .slot .cape{position:absolute;left:5%;top:15%;width:90%;height:76%;z-index:-1;transform-origin:50% 8%}.presence .slot.flying .cape{animation:cape-flutter .5s ease-in-out infinite alternate}.presence .slot .mask{position:absolute;left:22%;top:13%;width:56%}@keyframes cape-flutter{0%{transform:skew(-7deg) scaleY(.98)}to{transform:skew(7deg) scaleY(1.03)}}.stage-wrap>.labels{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none}.ctl{position:absolute;top:0;right:6%;z-index:6;display:flex;flex-direction:column;align-items:center}.ctl .chain{touch-action:none;padding:0}.ctl .chain img{height:clamp(110px,24vh,190px);display:block}.ctl .flip img{height:clamp(70px,14vh,110px);display:block}.ctl-cue{margin-top:4px;font-size:12px;letter-spacing:.1em;color:var(--moon);background:#0b1322b3;padding:3px 10px;border-radius:999px;animation:cue-bob 2.2s ease-in-out infinite}@keyframes cue-bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.stage.lit .ctl-cue{animation:none;opacity:.55}.toastbar{position:absolute;left:50%;bottom:12px;transform:translate(-50%,70px);background:#0b1322e0;border:1px solid rgba(240,160,75,.35);color:var(--cream);font-size:calc(.95rem * var(--ts));padding:10px 18px;border-radius:999px;transition:transform .35s ease,opacity .35s ease;opacity:0;z-index:7;max-width:92%;text-align:center}.toastbar.show{transform:translate(-50%);opacity:1}.panel{margin:14px;padding:16px;border-radius:var(--radius);background:var(--night);border:1px solid var(--night-line)}.panel h2{margin:0 0 10px;font-size:calc(1.15rem * var(--ts));color:var(--amber-soft);letter-spacing:.04em}.hint{color:var(--slate-dim);font-size:calc(.95rem * var(--ts))}.pick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pick-grid button{background:var(--night-soft);border:2px solid transparent;border-radius:var(--radius-sm);padding:8px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:calc(.85rem * var(--ts));color:var(--paper)}.pick-grid button img{width:100%;height:72px;object-fit:contain}.pick-grid button[aria-pressed=true]{border-color:var(--amber);background:#f0a04b1f}.pick-faces button{padding:5px}.pick-faces button img{height:92px;border-radius:12px;object-fit:contain}.role-card{display:flex;flex-direction:column;gap:6px;text-align:left;background:var(--night-soft);border:2px solid var(--night-line);border-radius:var(--radius);padding:20px;margin:10px 14px}.role-card .title{font-size:calc(1.3rem * var(--ts));font-weight:700;color:var(--cream)}.role-card .sub{color:var(--slate-dim);font-size:calc(.95rem * var(--ts))}.role-card:active{border-color:var(--amber)}.onboard-head{text-align:center;padding:34px 20px 10px}.onboard-head h1{margin:8px 0 4px;font-size:calc(1.9rem * var(--ts));letter-spacing:.06em;color:var(--cream)}.lantern-dot{width:20px;height:20px;margin:0 auto;border-radius:50%;background:var(--amber);box-shadow:0 0 24px 8px var(--amber-glow),0 0 60px 20px #f0a04b26}.builder{display:flex;flex-direction:column}.onboard{overflow-y:auto}.onboard input{width:100%;background:var(--night-soft);border:1px solid var(--night-line);border-radius:var(--radius-sm);color:var(--cream);font-size:calc(1.15rem * var(--ts));padding:14px 16px;outline:none}.onboard input:focus{border-color:var(--amber-deep)}.onboard .code-input{text-align:center;letter-spacing:.5em;font-size:calc(1.8rem * var(--ts));font-weight:700}.onboard-err{color:var(--danger);font-size:calc(.95rem * var(--ts));margin:10px 0 0}.field-label{display:block;color:var(--slate-dim);font-size:calc(.9rem * var(--ts));font-weight:600;margin:0 0 6px}.role-card.chosen{border-color:var(--amber);background:#f0a04b1f}.invite-panel{display:flex;flex-direction:column;align-items:center;gap:12px}.invite-code{font-size:calc(1.7rem * var(--ts));font-weight:800;letter-spacing:.08em;color:var(--amber-soft);background:#f0a04b1a;border:1px dashed rgba(240,160,75,.5);border-radius:var(--radius-sm);padding:14px 22px}.preview-panel{display:flex;flex-direction:column;align-items:center}.char-preview3d{width:min(60vw,260px);aspect-ratio:1}.char-preview3d canvas{border-radius:50%;background:radial-gradient(circle,rgba(240,160,75,.1),transparent 70%)}.ent-grid{grid-template-columns:repeat(2,1fr)}.ent-grid button{min-height:56px;font-size:calc(.95rem * var(--ts))}.loading-porch{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px}.loading-porch h1{margin:12px 0 2px;font-size:1.9rem;letter-spacing:.06em;color:var(--cream)}.loading-porch .lantern-dot{animation:lantern-pulse 1.8s ease-in-out infinite}@keyframes lantern-pulse{0%,to{box-shadow:0 0 16px 4px var(--amber-glow),0 0 40px 12px #f0a04b1a;opacity:.85}50%{box-shadow:0 0 30px 10px var(--amber-glow),0 0 70px 24px #f0a04b33;opacity:1}}.entrance-picker{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,#05080f1a,#05080fb8);animation:ep-fade .25s ease}@keyframes ep-fade{0%{opacity:0}to{opacity:1}}.entrance-card{width:100%;background:#101b2df7;border-top:1px solid var(--night-line);border-radius:var(--radius) var(--radius) 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px #04081080}.entrance-card h2{margin:0 0 4px;font-size:calc(1.3rem * var(--ts));color:var(--amber-soft)}.entrance-card h2+.hint+.char-row{margin-bottom:14px}.entrance-card .char-row{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px;margin:8px 0 2px;-webkit-overflow-scrolling:touch}.entrance-card .char-row button{flex:0 0 auto;padding:3px;background:var(--night-soft);border:2px solid transparent;border-radius:12px;cursor:pointer}.entrance-card .char-row button img{height:74px;width:56px;object-fit:cover;object-position:top center;display:block;border-radius:9px}.entrance-card .char-row button.current{border-color:var(--amber);box-shadow:0 0 10px #f0a04b80}.entrance-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}.entrance-opt{min-height:calc(56px * var(--ts));border-radius:var(--radius-sm);background:var(--night-soft);border:2px solid var(--night-line);color:var(--cream);font-size:calc(1rem * var(--ts));font-weight:600}.entrance-opt:active{transform:scale(.97)}.entrance-opt.current{border-color:var(--amber);background:#f0a04b24}.home3d-screen{overflow:hidden}.home3d{position:relative;flex:1;min-height:0}.stage3d-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.stage3d{position:absolute;top:0;right:0;bottom:0;left:0;isolation:isolate;background:linear-gradient(#060b16,#0a1322 55%,#0d1626)}.stage3d:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(#12203a,#16263f 55%,#142236);opacity:0;transition:opacity 1.4s ease}.stage3d.lit:before{opacity:1}.stage3d-canvas{width:100%;height:100%;display:block}.labels3d{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.labels3d .nameplate{left:0;top:0;will-change:transform}.night-cues{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.ctl3d{z-index:6;top:12px;right:12px;align-items:center}.wallswitch{padding:0;background:none;cursor:pointer;display:block}.wallswitch .plate{display:block;width:clamp(38px,7vh,52px);aspect-ratio:5 / 7;border-radius:7px;background:linear-gradient(#fdfdfb,#e7e5df);box-shadow:0 3px 10px #04081066,inset 0 1px #ffffffd9;position:relative;transition:box-shadow .4s ease}.wallswitch .plate:before,.wallswitch .plate:after{content:"";position:absolute;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#d0cabc,#9a927f)}.wallswitch .plate:before{top:8%}.wallswitch .plate:after{bottom:8%}.wallswitch .toggle{position:absolute;left:50%;top:50%;width:44%;height:32%;border-radius:4px;background:linear-gradient(#d9b877,#b8934e);box-shadow:inset 0 -3px 4px #00000047,inset 0 2px 2px #ffffff80;transform:translate(-50%,-18%);transition:transform .28s cubic-bezier(.5,1.7,.5,1),background .4s ease,box-shadow .4s ease}.wallswitch.on .toggle{background:linear-gradient(#ffe6a8,#f0a04b);box-shadow:inset 0 3px 4px #00000038,inset 0 -2px 2px #ffffff8c,0 0 12px 2px #f0a04b8c;transform:translate(-50%,-82%)}.wallswitch.on .plate{box-shadow:0 3px 16px #f0a04b66,inset 0 1px #ffffffd9}.wallswitch:focus-visible{outline:2px solid var(--amber, #f0a04b);outline-offset:3px;border-radius:9px}.ctl3d .wallswitch.on+.ctl-cue{animation:none;opacity:.5}@media(orientation:landscape)and (min-width:640px){.porch-overlay{left:50%;right:auto;transform:translate(-50%);width:min(94%,460px)}}.toast3d{z-index:7;bottom:118px}.panel-area{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.porch-overlay{position:absolute;left:14px;right:14px;bottom:14px;z-index:8;display:flex;flex-direction:column;gap:10px;align-items:stretch;pointer-events:none}.porch-overlay>*{pointer-events:auto}.porch-overlay .status-pill{pointer-events:none}.status-pill{align-self:center;background:#0b1322c7;border:1px solid var(--night-line);color:var(--cream);font-size:calc(.95rem * var(--ts));font-weight:700;padding:5px 16px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.porch-overlay .big-btn{align-self:center;width:auto;min-height:40px;padding:8px 22px;font-size:calc(.95rem * var(--ts));border-radius:999px}.porch-status{padding:16px 18px 8px;display:flex;flex-direction:column;gap:10px}.status-big{font-size:calc(1.5rem * var(--ts));font-weight:700;color:var(--cream)}.tabbar{position:sticky;bottom:0;margin-top:auto;display:flex;width:100%;background:#0b1322f5;border-top:1px solid var(--night-line);padding:2px 0 calc(3px + env(safe-area-inset-bottom));z-index:20}.tabbar button{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0;border-radius:10px;color:var(--slate-dim)}.tabbar button.active{color:var(--amber-soft);background:#f0a04b1a}.tabbar .light-toggle{border-right:1px solid var(--night-line);border-radius:0}.tabbar .light-toggle.active{color:var(--amber);background:#f0a04b29}.tab-emoji{font-size:1.15rem}.tab-label{font-size:.64rem;letter-spacing:.04em}.screen.senior .tabbar button{padding:7px 0;gap:2px}.screen.senior .tab-emoji{font-size:1.3rem}.screen.senior .tab-label{font-size:.7rem;font-weight:600}.chat-msg .txt.voice{cursor:pointer}.chat-msg.playing .bubble{border-color:var(--amber);box-shadow:0 0 0 2px var(--amber-glow)}.moment-video{width:100%;border-radius:var(--radius-sm);display:block}.chat{display:flex;flex-direction:column;flex:1;min-height:0}.chat-list{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.chat-msg{display:flex}.chat-msg.me{justify-content:flex-end}.bubble{max-width:86%;background:var(--night-soft);border-radius:var(--radius);padding:12px 16px;border:1px solid var(--night-line)}.chat-msg.me .bubble{background:#f0a04b29;border-color:#f0a04b4d}.chat-msg.speaking .bubble{border-color:var(--amber);box-shadow:0 0 0 2px var(--amber-glow)}.bubble .from{font-size:calc(.78rem * var(--ts));color:var(--slate-dim);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}.bubble .txt{margin:0;font-size:calc(1.1rem * var(--ts));line-height:1.45}.chat.big .bubble .txt{font-size:calc(1.35rem * var(--ts))}.read-btn{margin-top:8px;padding:8px 14px;border-radius:999px;background:#f0a04b24;color:var(--amber-soft);font-size:calc(.95rem * var(--ts))}.quick-row{display:flex;gap:8px;overflow-x:auto;padding:8px 14px}.chip{flex-shrink:0;background:var(--night-soft);border:1px solid var(--night-line);color:var(--paper);border-radius:999px;padding:12px 16px;font-size:calc(1rem * var(--ts))}.emoji-row{display:flex;gap:4px;overflow-x:auto;padding:4px 14px}.emoji-btn{font-size:calc(1.5rem * var(--ts));padding:8px;flex-shrink:0}.compose{display:flex;gap:8px;padding:10px 14px 14px;align-items:center}.compose input,.moments input,.question input,.moment-new input{flex:1;min-width:0;background:var(--night-soft);border:1px solid var(--night-line);border-radius:999px;color:var(--cream);font-size:calc(1.05rem * var(--ts));padding:13px 18px;outline:none;width:100%}.compose input:focus{border-color:var(--amber-deep)}.voice-btn{font-size:calc(1.5rem * var(--ts))}.send-btn{background:linear-gradient(180deg,var(--amber),var(--amber-deep));color:#2a1a08;font-weight:700;border-radius:999px;padding:13px 20px;font-size:calc(1rem * var(--ts))}.moment-photo{width:100%;border-radius:var(--radius-sm);display:block}.moment-from{font-size:calc(.8rem * var(--ts));color:var(--slate-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.moment-caption{font-size:calc(1.1rem * var(--ts));line-height:1.4}.moment-new img{width:100%;border-radius:var(--radius-sm);margin-bottom:10px}.moment-new{display:flex;flex-direction:column;gap:10px}.hug-wrap{position:relative}.hug-btn{width:100%}.hug-burst{position:absolute;left:50%;top:50%;font-size:26px;opacity:0;pointer-events:none}.hug-wrap.bursting .hug-burst{animation:hug-pop .9s ease-out}@keyframes hug-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}30%{opacity:1}to{opacity:0;transform:translate(-50%,-230%) scale(1.8)}}.q-text{font-size:calc(1.35rem * var(--ts));line-height:1.4;margin:4px 0 10px}.answer{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--night-line)}.answer:last-child{border-bottom:none}.answer-from{font-size:calc(.78rem * var(--ts));color:var(--amber-soft);text-transform:uppercase;letter-spacing:.08em}.answer-body{font-size:calc(1.1rem * var(--ts));margin-top:2px}.call-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--night-line)}.call-row:last-child{border-bottom:none}.call-row img{width:52px;height:52px;object-fit:contain}.call-who{flex:1;display:flex;flex-direction:column}.call-who span{font-size:calc(1.15rem * var(--ts));font-weight:600}.call-who small{color:var(--slate-dim);font-size:calc(.85rem * var(--ts))}.call-who small.free{color:var(--ok)}.call-row .big-btn{min-height:48px;padding:8px 16px}.call-row .big-btn[disabled]{opacity:.45}.call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:radial-gradient(circle at 50% 30%,var(--night-soft),var(--night-deep) 75%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.call-face{width:46vw;max-width:230px;aspect-ratio:1;border-radius:50%;background:#f0a04b1a;border:3px solid var(--amber-deep);display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.call-face img{width:80%;object-fit:contain}.call-face.ringing{animation:ring-pulse 1.2s ease-in-out infinite}@keyframes ring-pulse{0%,to{box-shadow:0 0 0 0 var(--amber-glow)}50%{box-shadow:0 0 0 22px #f0a04b00}}.call-name{font-size:calc(1.7rem * var(--ts));font-weight:700}.call-state{font-size:calc(1.1rem * var(--ts));color:var(--slate-dim)}.call-end{background:var(--danger);color:#fff;min-width:200px}.light-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--night-line)}.light-row:last-child{border-bottom:none}.light-dot{width:16px;height:16px;border-radius:50%;background:var(--slate-dimmer);flex-shrink:0;transition:background .6s ease,box-shadow .6s ease}.light-dot.on{background:var(--amber);box-shadow:0 0 14px 3px var(--amber-glow)}.light-name{flex:1;font-size:calc(1.1rem * var(--ts));font-weight:600}.gift-rail{display:flex;gap:14px;flex-wrap:wrap}.gift-item{display:flex;flex-direction:column;align-items:center;font-size:30px}.gift-item small{font-size:calc(.7rem * var(--ts));color:var(--slate-dim);margin-top:2px}.gifts select,.question select{width:100%;background:var(--night-soft);border:1px solid var(--night-line);color:var(--cream);border-radius:var(--radius-sm);padding:12px 14px;font-size:calc(1rem * var(--ts))}.scene2d{display:flex;justify-content:center;align-items:center;overflow:hidden}.scene2d-frame{position:relative;height:100%;max-width:100%;max-height:100%;flex:0 0 auto}.scene2d-plate{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;z-index:1;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.scene2d-plate.night{z-index:2;opacity:1;transition:opacity 1.6s ease}.scene2d-plate.night.off{opacity:0}.sprite2d{position:absolute;transform:translate(-50%,-100%);transform-origin:50% 100%;pointer-events:none;animation:breathe2d 3.4s ease-in-out infinite alternate;will-change:transform}@keyframes breathe2d{0%{transform:translate(-50%,-100%) scaleY(1)}to{transform:translate(-50%,-100%) scaleY(1.013)}}.sprite2d-img{display:block;height:100%;width:auto;filter:drop-shadow(0 4px 10px rgba(6,10,20,.35));transition:filter 1.4s ease}.scene2d:not(.lit) .sprite2d-img{filter:brightness(.55) saturate(.75)}.sprite2d-shadow{position:absolute;left:50%;bottom:-1.5%;width:62%;height:7%;transform:translate(-50%);background:radial-gradient(ellipse at center,#080c1666,#080c1600 68%);border-radius:50%}.sprite2d-chip{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%);background:#141a28d1;color:#ffe9c4;font-size:clamp(10px,1.9vh,14px);font-weight:600;letter-spacing:.04em;padding:2px 10px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 8px #04081059}.sprite2d-chip.ghost{position:absolute;bottom:auto;transform:translate(-50%,-50%);opacity:.45;z-index:50}.sprite2d.settle{animation:settle2d .55s cubic-bezier(.34,1.56,.64,1),breathe2d 3.4s .55s ease-in-out infinite alternate}@keyframes settle2d{0%{transform:translate(-50%,-100%) scale(1.03,.93)}55%{transform:translate(-50%,-100%) scale(.985,1.025)}to{transform:translate(-50%,-100%) scale(1)}}.sprite2d.doorfade{animation:doorfade2d .5s ease-out,breathe2d 3.4s ease-in-out infinite alternate}@keyframes doorfade2d{0%{opacity:0}to{opacity:1}}.sprite2d.chute:before{content:"🪂";position:absolute;left:50%;bottom:92%;transform:translate(-50%);font-size:clamp(28px,9vh,64px);filter:drop-shadow(0 3px 6px rgba(6,10,20,.4))}.tap-ripple{position:absolute;z-index:500;width:14px;height:14px;border:3px solid rgba(240,160,75,.9);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;animation:ripple2d .7s ease-out forwards}@keyframes ripple2d{0%{opacity:.9;scale:1}to{opacity:0;scale:3.4}}.builder-preview{display:flex;justify-content:center;padding:10px 0 2px}.builder-preview img{height:clamp(180px,30vh,260px);width:auto;transform-origin:50% 100%;animation:breathe-plain 3.4s ease-in-out infinite alternate;filter:drop-shadow(0 6px 12px rgba(6,10,20,.3))}@keyframes breathe-plain{0%{transform:scaleY(1)}to{transform:scaleY(1.013)}}.sprite2d .artbox{height:100%}.sprite2d .artbox.flip{transform:scaleX(-1)}.sprite2d.scolded .artbox{transform:rotate(4deg) scaleY(.96);transform-origin:50% 100%;filter:saturate(.8) brightness(.92);transition:transform .5s ease,filter .5s ease}.sprite2d-say{position:absolute;left:60%;bottom:calc(100% + 2px);font-size:clamp(16px,3.6vh,30px);animation:saypop .45s cubic-bezier(.34,1.56,.64,1);pointer-events:none;filter:drop-shadow(0 2px 4px rgba(6,10,20,.45))}@keyframes saypop{0%{transform:scale(0) translateY(8px)}to{transform:scale(1) translateY(0)}}.sprite2d-prop{position:absolute;pointer-events:none}.fx-pop{position:absolute;z-index:900;transform:translate(-50%,-50%);font-size:clamp(18px,4.2vh,36px);animation:fxpop 1.25s ease-out forwards;pointer-events:none;filter:drop-shadow(0 2px 5px rgba(6,10,20,.4))}@keyframes fxpop{0%{opacity:0;scale:.4;translate:0 6px}18%{opacity:1;scale:1.15}to{opacity:0;scale:1;translate:0 -30px}}.fx-wrestle{position:absolute;z-index:850;transform:translate(-50%,-100%);transition:left .45s linear,top .45s linear;animation:tumble .8s ease-in-out infinite;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(6,10,20,.35))}@keyframes tumble{0%,to{transform:translate(-50%,-100%) rotate(-8deg) scale(1)}50%{transform:translate(-50%,-100%) rotate(8deg) scale(1.06)}}.fx-poop{position:absolute;z-index:60;transform:translate(-50%,-80%);pointer-events:none;opacity:1;transition:opacity 1.5s ease}.fx-poop.fade{opacity:0}.actions-wrap{position:absolute;right:12px;bottom:118px;z-index:9;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.actions-fab{background:linear-gradient(#ffd98f,#f0a04b);color:#3a2410;font-weight:700;font-size:clamp(13px,2vh,16px);border:none;border-radius:999px;padding:10px 16px;cursor:pointer;box-shadow:0 4px 14px #f0a04b73}.actions-fab:active{transform:scale(.96)}.actions-menu{background:#121826f0;border:1px solid rgba(240,160,75,.35);border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:4px;max-height:52vh;overflow-y:auto;box-shadow:0 8px 24px #04081080}.actions-menu button{background:none;border:none;cursor:pointer;color:#ffe9c4;text-align:left;font-size:clamp(13px,2vh,16px);font-weight:600;padding:8px 12px;border-radius:9px;white-space:nowrap}.actions-menu button:hover{background:#f0a04b2e}.actions-menu button.quiet{color:#9fb0cc;font-weight:500}.actions-title{color:#9fb0cc;font-size:clamp(11px,1.7vh,13px);padding:4px 12px 0}.pw-row{display:flex;flex-direction:column;margin-top:12px}.pw-row .field-label{margin-top:4px}
