:root {
  --bg: #f6f7f9; --bg-accent: #eef1f4; --panel: #fff; --panel-strong: #fbfcfd;
  --border: rgba(78,92,107,.14); --text: #1f2933; --muted: #697a8c;
  --primary: #7b828a; --primary-strong: #5f6670; --primary-soft: rgba(123,130,138,.12);
  --success: #2f7d61; --shadow: 0 24px 80px rgba(43,54,67,.12);
  --radius-xl: 26px; --radius-lg: 18px; --radius-md: 14px;
  --font: "Pretendard Variable","Noto Sans KR","Segoe UI",sans-serif;
}
.character-stage.performing{width:min(var(--action-width),320px)!important;height:min(var(--action-height),88%,360px)!important}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;font-family:var(--font);color:var(--text);background:var(--bg)}
body{padding-bottom:124px;background:radial-gradient(circle at 50% -20%,#fff 0,transparent 46%),linear-gradient(135deg,var(--bg),var(--bg-accent))}
button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:26px 0 36px}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 8px}.eyebrow,.room-kicker{font-size:10px;letter-spacing:.18em;font-weight:800;color:var(--muted)}
h1,h2,p{margin:0}.brand-block h1{font-size:23px;letter-spacing:-.04em;margin-top:4px}.topbar-actions{display:flex;align-items:center;gap:10px}.status-pill{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--border);background:rgba(255,255,255,.68);border-radius:99px;font-size:12px;color:var(--muted);backdrop-filter:blur(14px)}.status-dot{width:7px;height:7px;background:#74c291;border-radius:50%;box-shadow:0 0 0 4px rgba(116,194,145,.14)}
.icon-button{width:42px;height:42px;border:1px solid var(--border);border-radius:14px;background:var(--panel);display:grid;place-items:center;box-shadow:0 8px 24px rgba(43,54,67,.08);transition:.2s}.icon-button:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(43,54,67,.14)}.icon-button svg{width:19px;fill:var(--primary-strong)}
.world-card{position:relative;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.95);border-radius:32px;padding:18px;box-shadow:var(--shadow);overflow:hidden}.room-meta{display:flex;align-items:flex-end;justify-content:space-between;padding:8px 10px 17px}.room-meta h2{font-size:26px;letter-spacing:-.05em;margin-top:3px}.room-meta p{color:var(--muted);font-size:13px;margin-bottom:4px}
.scene{height:min(610px,calc(100vh - 300px));min-height:430px;position:relative;overflow:hidden;border-radius:22px;background:#d9c9b5;isolation:isolate;border:1px solid rgba(43,54,67,.08);transition:background .45s}.scene::before{content:"";position:absolute;inset:0;opacity:.22;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:4px 4px;mix-blend-mode:soft-light}.scene-light{position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.55),transparent 35%,rgba(54,40,30,.08));z-index:-1}
.scene-content{position:absolute;inset:0}.back-wall{position:absolute;inset:0 0 24%;background:var(--wall,#d8c9b8)}.floor{position:absolute;left:0;right:0;bottom:0;height:27%;background:var(--floor,#9b8069);clip-path:polygon(0 8%,100% 0,100% 100%,0 100%)}.floor::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(92deg,transparent 0 95px,rgba(50,35,25,.08) 96px 98px)}
.window{position:absolute;left:8%;top:9%;width:19%;height:31%;background:linear-gradient(#a8ccda,#f0d4b2);border:10px solid #f3eee7;box-shadow:0 8px 24px rgba(50,45,40,.14)}.window::before,.window::after{content:"";position:absolute;background:#f3eee7}.window::before{width:7px;inset:0 auto 0 48%}.window::after{height:7px;inset:48% 0 auto}.window-glow{position:absolute;left:22%;top:8%;width:40%;height:76%;background:linear-gradient(110deg,rgba(255,245,208,.46),transparent);transform:skewX(-14deg);filter:blur(4px)}
.object{position:absolute;border:0;background:transparent;padding:0;filter:drop-shadow(0 12px 14px rgba(45,32,23,.14));transition:transform .25s,filter .25s;z-index:2}.object::after{content:"";position:absolute;width:7px;height:7px;right:3px;top:0;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.26),0 0 14px #fff;animation:twinkle 1.8s infinite}.object:hover{transform:translateY(-5px) scale(1.03);filter:drop-shadow(0 16px 18px rgba(45,32,23,.24))}.object span{display:block}.object-label{position:absolute!important;left:50%;top:calc(100% + 7px);transform:translateX(-50%);opacity:0;color:white;background:rgba(31,41,51,.8);font-size:10px;white-space:nowrap;padding:4px 7px;border-radius:6px;transition:.2s}.object:hover .object-label{opacity:1}
.bed{left:4%;bottom:14%;width:37%;height:25%}.bed .frame{position:absolute;inset:25% 0 0;background:#725947;border-radius:8px}.bed .mattress{position:absolute;inset:5% 2% 27%;background:#f0e8df;border-radius:18px 20px 8px 8px;box-shadow:inset 0 -9px rgba(120,99,82,.08)}.bed .blanket{position:absolute;left:36%;right:1%;top:19%;bottom:27%;background:#8b9ba4;border-radius:8px 18px 5px 5px;clip-path:polygon(5% 0,100% 12%,100% 100%,0 100%)}.bed .pillow{position:absolute;left:5%;top:7%;width:34%;height:27%;background:#fffaf4;border-radius:45%}
.nightstand{left:43%;bottom:21%;width:9%;height:18%;background:#7a5f4c;border-radius:5px;box-shadow:inset 0 -32px rgba(0,0,0,.07)}.nightstand::before{content:"";position:absolute;left:42%;top:56%;width:5px;height:5px;background:#d8c09c;border-radius:50%}
.lamp{left:44%;bottom:39%;width:7%;height:16%}.lamp .shade{height:48%;background:#dfb879;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%)}.lamp .stem{width:7px;height:42%;background:#6e6259;margin:auto}.lamp .base{height:9%;width:60%;background:#6e6259;border-radius:50%;margin:auto}
.poster{right:8%;top:10%;width:16%;height:25%;background:#f1eee8;border:8px solid #775f50;display:grid!important;place-items:center;color:#a58165;font-size:33px;font-weight:900}.plant{right:7%;bottom:20%;width:13%;height:30%}.plant .pot{position:absolute;bottom:0;left:25%;width:56%;height:36%;background:#a55f48;clip-path:polygon(6% 0,94% 0,80% 100%,20% 100%)}.plant .leaf{position:absolute;left:47%;bottom:29%;width:22%;height:55%;background:#59765c;border-radius:100% 0 100% 0;transform-origin:bottom}.plant .leaf:nth-child(2){transform:rotate(-42deg)}.plant .leaf:nth-child(3){transform:rotate(42deg)}
.sofa{left:5%;bottom:14%;width:42%;height:29%;background:#879399;border-radius:24px 24px 9px 9px;box-shadow:inset 0 -28px rgba(31,41,51,.12)}.sofa::before{content:"";position:absolute;left:6%;right:6%;top:10%;height:54%;border-radius:18px;background:#99a5aa;box-shadow:inset 0 -3px rgba(255,255,255,.16)}.sofa .cushion{position:absolute;top:15%;left:18%;width:28%;height:45%;background:#ba8867;border-radius:15px;transform:rotate(-5deg)}.coffee-table{left:39%;bottom:9%;width:26%;height:15%;border-radius:50%;background:#775f4c}.coffee-table::before{content:"";position:absolute;left:45%;top:50%;height:75%;width:12%;background:#624d40}.tv{right:7%;bottom:34%;width:25%;height:29%;background:#26313a;border:10px solid #514943;border-radius:8px;box-shadow:0 15px 0 -5px #6e5b4f}.tv::before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.14),transparent 45%)}
.gym-rack{left:4%;bottom:17%;width:24%;height:60%;border:9px solid #4e5860;border-bottom-width:14px}.gym-rack::before,.gym-rack::after{content:"";position:absolute;left:-8px;right:-8px;height:7px;background:#4e5860}.gym-rack::before{top:22%}.gym-rack::after{top:59%}.barbell{left:7%;bottom:49%;width:36%;height:9%}.barbell .bar{position:absolute;left:0;right:0;top:43%;height:7px;background:#c2c9cc}.barbell .plate{position:absolute;top:0;width:16px;height:100%;background:#394149;border-radius:3px}.barbell .plate.left{left:5%}.barbell .plate.right{right:5%}.bench{left:28%;bottom:19%;width:32%;height:13%;background:#354049;border-radius:6px;transform:skewX(-8deg)}.bench::before,.bench::after{content:"";position:absolute;top:70%;width:8px;height:85%;background:#505a61}.bench::before{left:15%}.bench::after{right:15%}.treadmill{right:4%;bottom:16%;width:29%;height:38%;border-left:8px solid #4a555c}.treadmill::before{content:"";position:absolute;left:-8px;right:0;bottom:0;height:18%;background:#303a41;border-radius:30px 6px 6px}.treadmill::after{content:"";position:absolute;left:-9px;top:0;width:70%;height:8px;background:#4a555c;transform:rotate(10deg);transform-origin:left}
.lockers{position:absolute;left:3%;right:3%;top:8%;height:48%;display:flex;gap:5px}.locker{flex:1;background:#89959b;border:3px solid #6f7b81;position:relative}.locker::before{content:"";position:absolute;left:18%;right:18%;top:12%;height:14%;background:repeating-linear-gradient(#56636a 0 3px,transparent 3px 7px)}.locker::after{content:"";position:absolute;right:13%;top:48%;width:5px;height:18%;background:#d5dbdc;border-radius:3px}.long-bench{left:24%;bottom:16%;width:53%;height:14%;background:#8a684c;border-radius:4px}.long-bench::before,.long-bench::after{content:"";position:absolute;top:80%;width:7px;height:95%;background:#5e6870}.long-bench::before{left:10%}.long-bench::after{right:10%}.open-locker{right:13%;top:14%;width:14%;height:38%;background:#66737a;transform-origin:left}.open-locker::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.22),transparent)}
.tile-wall{position:absolute;inset:0 0 19%;background-color:#cdd8d8;background-image:linear-gradient(#b4c2c2 2px,transparent 2px),linear-gradient(90deg,#b4c2c2 2px,transparent 2px);background-size:54px 54px}.tub{left:5%;bottom:14%;width:42%;height:32%;background:#edf1ee;border:8px solid #f8faf8;border-radius:12px 12px 36px 36px;box-shadow:inset 0 -14px rgba(125,145,145,.12)}.tub::after{content:"";position:absolute;left:12%;right:12%;bottom:-12%;height:16%;border-radius:50%;background:rgba(30,40,40,.12);filter:blur(8px)}.shower{left:7%;top:8%;width:20%;height:34%;border-right:7px solid #7e8a8c}.shower::before{content:"";position:absolute;right:-7px;top:0;width:62%;height:12px;background:#7e8a8c;border-radius:12px}.shower::after{content:"";position:absolute;right:-16px;top:7px;width:35px;height:18px;background:#99a5a6;border-radius:50%}.sink{right:7%;bottom:26%;width:30%;height:18%;background:#f2f4f1;border-radius:50% 50% 14px 14px;box-shadow:0 22px 0 -10px #879190}.mirror{right:9%;top:10%;width:26%;height:34%;border-radius:50% 50% 8px 8px;background:linear-gradient(135deg,#a9c2c7,#edf4f3);border:8px solid #728083}.towel{right:40%;top:20%;width:10%;height:27%;background:#d49a7c;border-radius:4px}
.interaction-cover{position:absolute;z-index:6;pointer-events:none;opacity:0;transition:opacity .2s}.scene[data-interaction="bed"] .cover-bed,.scene[data-interaction="sofa"] .cover-sofa,.scene[data-interaction="coffee-table"] .cover-table,.scene[data-interaction="bench"] .cover-bench,.scene[data-interaction="treadmill"] .cover-treadmill,.scene[data-interaction="long-bench"] .cover-long-bench,.scene[data-interaction="tub"] .cover-tub,.scene[data-interaction="sink"] .cover-sink{opacity:1}.cover-bed{left:17.3%;bottom:20.7%;width:23.7%;height:13.5%;background:#8b9ba4;border-radius:8px 18px 5px 5px;clip-path:polygon(5% 0,100% 12%,100% 100%,0 100%)}.cover-sofa{left:5%;bottom:14%;width:42%;height:12%;background:#77858c;border-radius:4px 4px 9px 9px;box-shadow:inset 0 -22px rgba(31,41,51,.12)}.cover-table{left:39%;bottom:9%;width:26%;height:7%;border-radius:50%;background:#775f4c}.cover-bench{left:28%;bottom:19%;width:32%;height:6%;background:#354049;border-radius:6px;transform:skewX(-8deg)}.cover-treadmill{right:4%;bottom:16%;width:29%;height:8%;background:#303a41;border-radius:30px 6px 6px}.cover-long-bench{left:24%;bottom:16%;width:53%;height:7%;background:#8a684c;border-radius:4px}.cover-tub{left:5%;bottom:14%;width:42%;height:20%;background:#edf1ee;border:8px solid #f8faf8;border-top-width:3px;border-radius:5px 5px 36px 36px;box-shadow:inset 0 -14px rgba(125,145,145,.12)}.cover-sink{right:7%;bottom:26%;width:30%;height:9%;background:#f2f4f1;border-radius:50% 50% 14px 14px}.object.action-hidden{opacity:0}
.character-stage{position:absolute;left:50%;bottom:12%;width:230px;height:390px;transform:translateX(-50%);transform-origin:50% 100%;z-index:4;pointer-events:none;transition:left 1.15s cubic-bezier(.4,0,.2,1),bottom .7s,width .45s,height .45s}.character-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 9px rgba(35,26,21,.18));z-index:2;image-rendering:auto;transform-origin:50% 100%;animation:idle 3.2s ease-in-out infinite}.character-stage.performing{bottom:var(--action-bottom);width:var(--action-width);height:var(--action-height);z-index:4}.character-stage.performing img{animation:none;transform:scaleX(var(--action-flip,1));filter:drop-shadow(0 8px 7px rgba(35,26,21,.16))}.character-stage.performing .character-shadow{opacity:.35}.character-shadow{position:absolute;left:22%;right:22%;bottom:-1%;height:7%;background:rgba(39,31,28,.22);filter:blur(7px);border-radius:50%}.character-stage.walking img{animation:walk .52s steps(2) infinite}.character-stage.talking img{animation:talk .7s ease-in-out infinite}
.speech-bubble{position:absolute;left:50%;bottom:70%;z-index:8;max-width:min(430px,62%);min-width:58px;padding:14px 17px;background:rgba(255,255,255,.96);border:1px solid rgba(78,92,107,.13);border-radius:18px 18px 18px 5px;box-shadow:0 14px 42px rgba(43,54,67,.16);font-size:14px;line-height:1.55;opacity:0;transform:translate(-40%,-8px) scale(.96);transition:.3s;pointer-events:none;white-space:pre-wrap}.speech-bubble.visible{opacity:1;transform:translate(-40%,-18px) scale(1)}.speech-bubble.loading{font-size:22px;letter-spacing:.2em;animation:bubblePulse 1s infinite}.speech-bubble::after{content:"";position:absolute;left:25px;bottom:-8px;width:15px;height:15px;background:inherit;transform:rotate(45deg);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.interaction-caption{position:absolute;left:50%;bottom:5%;transform:translateX(-50%) translateY(10px);z-index:8;padding:8px 12px;border-radius:99px;background:rgba(31,41,51,.78);color:#fff;font-size:11px;letter-spacing:.02em;opacity:0;transition:.3s;backdrop-filter:blur(8px)}.interaction-caption.visible{opacity:1;transform:translateX(-50%) translateY(0)}
.room-arrow{position:absolute;top:54%;z-index:10;width:50px;height:50px;border:1px solid rgba(255,255,255,.8);border-radius:17px;background:rgba(255,255,255,.72);box-shadow:0 12px 30px rgba(43,54,67,.14);backdrop-filter:blur(12px);font-size:22px;transition:.2s}.room-arrow:hover{background:#fff;transform:scale(1.07)}.room-arrow-left{left:31px}.room-arrow-right{right:31px}.room-dots{display:flex;justify-content:center;gap:7px;padding:15px 0 2px}.room-dot{width:25px;height:5px;padding:0;border:0;border-radius:99px;background:#dce1e4;transition:.3s}.room-dot.active{width:44px;background:var(--primary-strong)}.hint{position:absolute;right:30px;bottom:17px;color:var(--muted);font-size:11px}.hint-icon{display:inline-grid;place-items:center;width:19px;height:19px;background:var(--primary-soft);border-radius:7px;margin-right:5px}
.room-living{--wall:#d8d4ca;--floor:#917866}.room-gym{--wall:#bac3c5;--floor:#596368}.room-locker{--wall:#c5c1b6;--floor:#667074}.room-bathroom{--floor:#91a0a0}
.composer{position:fixed;z-index:30;left:0;right:0;bottom:0;padding:14px 18px 18px;background:linear-gradient(transparent,rgba(246,247,249,.92) 20%,rgba(246,247,249,.98));}.composer-inner{width:min(920px,100%);margin:auto;display:grid;grid-template-columns:1fr auto;gap:9px;background:#fff;border:1px solid var(--border);border-radius:20px;padding:10px 10px 9px 16px;box-shadow:0 18px 50px rgba(43,54,67,.16)}.composer textarea{border:0;outline:0;resize:none;min-height:38px;max-height:90px;padding:7px 0;background:transparent;line-height:1.5}.composer textarea::placeholder{color:#9aa5ad}.composer-meta{grid-column:1;font-size:9px;color:#9aa5ad;display:flex;gap:12px}.composer button{grid-column:2;grid-row:1/3;align-self:stretch;border:0;border-radius:14px;background:#343d45;color:white;padding:0 19px;font-weight:700}.composer button:hover{background:#1f2933}.composer button:disabled{opacity:.45;cursor:wait}
.modal-backdrop{position:fixed;z-index:50;inset:0;background:rgba(31,41,51,.28);backdrop-filter:blur(9px);display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.settings-panel{width:min(620px,100%);max-height:min(760px,92vh);overflow:auto;background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.9);border-radius:28px;box-shadow:0 30px 100px rgba(31,41,51,.28);padding:25px}.settings-header{display:flex;justify-content:space-between;align-items:flex-start}.settings-header h2{font-size:27px;margin-top:4px}.close-button{border:0;background:var(--primary-soft);border-radius:12px;padding:8px 11px;color:var(--muted)}.close-button span{font-size:18px;margin-left:4px}.tabs{display:flex;gap:4px;margin:22px 0 18px;border-bottom:1px solid var(--border)}.tab{position:relative;border:0;background:transparent;padding:10px 18px;color:var(--muted);font-weight:700}.tab.active{color:var(--text)}.tab.active::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--text);border-radius:2px}.tab-panel{display:none}.tab-panel.active{display:block}.form-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.form-section-title span{font-weight:800}.form-section-title small{font-size:10px;color:var(--muted)}.field{display:block;margin:13px 0}.field>span{display:block;font-size:11px;color:var(--muted);margin:0 0 7px 3px;font-weight:700}.field input,.field textarea,.field select{width:100%;border:1px solid var(--border);background:#f9fafb;border-radius:13px;padding:11px 13px;outline:0;transition:.2s}.field input:focus,.field textarea:focus,.field select:focus{border-color:#8795a1;box-shadow:0 0 0 4px rgba(123,130,138,.1);background:#fff}.field textarea{resize:vertical;line-height:1.55}.input-with-action,.model-row{display:flex;gap:8px}.input-with-action input,.model-row select{flex:1}.input-with-action button,.secondary-button{border:1px solid var(--border);background:#fff;border-radius:12px;padding:0 14px;font-size:11px;font-weight:700}.connection-note{font-size:10px;color:var(--muted);padding:11px 13px;background:#f5f7f8;border-radius:12px}.connection-note span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9ba5ab;margin-right:5px}.connection-note.success span{background:#5aae7c}.connection-note.error span{background:#cc6b62}.character-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.character-choice{display:grid;grid-template-columns:54px 1fr 20px;align-items:center;text-align:left;border:1px solid var(--border);background:#fafbfb;border-radius:15px;padding:8px}.character-choice.active{border-color:#74818b;background:#f2f5f6;box-shadow:0 0 0 3px rgba(123,130,138,.08)}.character-choice img{width:48px;height:57px;object-fit:contain;object-position:bottom}.character-choice strong,.character-choice small{display:block}.character-choice small{font-size:9px;color:var(--muted);margin-top:3px}.character-choice i{font-style:normal;opacity:0}.character-choice.active i{opacity:1}.field-count{display:block;text-align:right;color:var(--muted);font-size:9px;margin-top:5px}.reset-button{border:0;background:transparent;color:var(--muted);font-size:11px;text-decoration:underline;padding:4px}.settings-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);margin-top:20px;padding-top:16px;color:var(--muted);font-size:10px}.primary-button{border:0;background:#343d45;color:#fff;border-radius:12px;padding:10px 22px;font-weight:700}
@keyframes idle{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(-3px) scaleY(1.006)}}@keyframes walk{0%{transform:translate(-4px,-2px) rotate(-1deg)}50%{transform:translate(4px,0) rotate(1deg)}100%{transform:translate(-4px,-2px) rotate(-1deg)}}@keyframes talk{0%,100%{transform:translateY(0)}35%{transform:translateY(-4px) rotate(-.7deg)}70%{transform:translateY(-1px) rotate(.7deg)}}@keyframes interact{0%,100%{transform:rotate(0)}30%{transform:translateY(-8px) rotate(-4deg)}60%{transform:translateY(-2px) rotate(3deg)}}@keyframes lift{0%,100%{transform:translateY(0) scaleY(1)}35%{transform:translateY(8px) scaleY(.96)}60%{transform:translateY(-9px) scaleY(1.03)}}@keyframes rest{40%{transform:translateY(34px) rotate(-4deg) scale(.97)}70%{transform:translateY(30px) rotate(-3deg) scale(.97)}}@keyframes showerMove{0%,100%{transform:translateX(0)}50%{transform:translateX(6px) rotate(1deg)}}@keyframes twinkle{0%,100%{opacity:.3;transform:scale(.7)}50%{opacity:1;transform:scale(1.2)}}@keyframes bubblePulse{50%{letter-spacing:.35em;opacity:.7}}
@media(max-width:720px){body{padding-bottom:112px}.app-shell{width:calc(100% - 16px);padding-top:10px}.topbar{height:64px}.status-pill{display:none}.world-card{padding:9px;border-radius:22px}.room-meta{padding:8px 7px 12px;display:block}.room-meta h2{font-size:22px}.room-meta p{font-size:11px;margin-top:3px}.scene{height:calc(100vh - 250px);min-height:420px;border-radius:17px}.room-arrow{width:42px;height:42px}.room-arrow-left{left:18px}.room-arrow-right{right:18px}.character-stage{width:180px;height:330px}.speech-bubble{max-width:78%;bottom:70%}.hint{display:none}.composer{padding:10px}.composer-inner{border-radius:17px}.composer-meta span:last-child{display:none}.character-choices{grid-template-columns:1fr}.settings-panel{padding:18px;border-radius:22px}.settings-footer span{display:none}.window{width:25%}.bed{width:48%}.tv{width:30%}.object-label{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* Fixed-size pixel world -------------------------------------------------- */
.app-shell{width:min(1180px,calc(100% - 32px))}
.world-card{overflow:visible}
.scene-viewport{position:relative;width:100%;height:610px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab;touch-action:pan-y;user-select:none;border:4px solid #373541;background:#373541;box-shadow:8px 8px 0 rgba(55,53,65,.18)}
.scene-viewport::-webkit-scrollbar{display:none}.scene-viewport.dragging{cursor:grabbing}.scene-viewport.dragging *{cursor:grabbing!important}
.scene{width:1120px;height:602px;min-height:602px;margin:0 auto;flex:none;border:0;border-radius:0;background:#c9b58f;image-rendering:pixelated;transition:background-color .3s steps(3,end)}
.scene::before{opacity:.2;background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(54,46,52,.13) 3px 4px),repeating-linear-gradient(90deg,transparent 0 3px,rgba(255,255,255,.12) 3px 4px);background-size:4px 4px;mix-blend-mode:multiply}
.scene-light{background:linear-gradient(115deg,rgba(255,238,178,.22) 0 20%,transparent 20% 72%,rgba(45,37,45,.12) 72%);z-index:0;pointer-events:none}
.scene-content{z-index:1}.back-wall{inset:0 0 28%;background-color:var(--wall,#c8b486);background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(67,57,62,.09) 31px 33px),repeating-linear-gradient(90deg,transparent 0 63px,rgba(255,255,255,.08) 63px 65px);border-bottom:8px solid var(--trim,#5d4d52)}
.floor{height:28%;clip-path:none;background-color:var(--floor,#8a674d);border-top:5px solid rgba(255,232,190,.28)}.floor::after{background:repeating-linear-gradient(90deg,transparent 0 110px,rgba(46,37,42,.18) 110px 114px),repeating-linear-gradient(0deg,transparent 0 39px,rgba(46,37,42,.11) 39px 43px)}

.window{left:8%;top:9%;width:19%;height:31%;border:8px solid #594b54;border-radius:0;background:linear-gradient(#7fb2c1 0 48%,#e8bf82 48% 52%,#efcf91 52%);box-shadow:6px 6px 0 rgba(47,39,45,.22),inset 0 0 0 5px #eadbb6}.window::before,.window::after{background:#594b54}.window::before{width:6px}.window::after{height:6px}.window-glow{display:none}
.poster{border:7px solid #57454a;border-radius:0;background:#d9c69c;color:#8a564a;box-shadow:6px 6px 0 rgba(55,42,46,.18);font-family:monospace;text-shadow:3px 3px 0 #f0dfb5}
.object{filter:drop-shadow(6px 7px 0 rgba(48,38,44,.2));transition:transform .12s steps(2,end),filter .12s steps(2,end)}.object::after{width:8px;height:8px;border-radius:0;background:#fff2a8;box-shadow:8px 0 #fff,-8px 0 #fff2a8,0 8px #fff,0 -8px #fff;animation:pixelTwinkle 1.2s steps(2,end) infinite}.object:hover{transform:translate(-2px,-4px);filter:drop-shadow(8px 10px 0 rgba(48,38,44,.25))}.object-label{border-radius:0;border:2px solid #eee0b7;background:#38333d;color:#fff4cf;box-shadow:3px 3px 0 rgba(0,0,0,.28);font-family:monospace;font-weight:700}
.bed .frame{border-radius:0;background:#59434a;border:4px solid #3b333c;box-shadow:inset 0 -12px #44343c}.bed .mattress{border-radius:0;background:#e9dbb8;border:4px solid #6b5960;box-shadow:inset 0 -10px #c9b78f}.bed .blanket{border-radius:0;clip-path:none;background:repeating-linear-gradient(90deg,#697e87 0 24px,#718b91 24px 48px);border:4px solid #45545d}.bed .pillow{border-radius:0;background:#f5e8c7;border:3px solid #8f7b73;box-shadow:inset -8px -6px #d8c59e}
.nightstand{border-radius:0;background:#704e45;border:4px solid #43343a;box-shadow:inset 0 -28px #5b403e,5px 5px 0 rgba(48,36,40,.2)}.nightstand::before{width:6px;height:6px;border-radius:0;background:#e0b864}
.lamp .shade{background:#d99a58;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);border-bottom:4px solid #6c4c45}.lamp .stem{width:7px;background:#4a4147}.lamp .base{border-radius:0;background:#4a4147;border:2px solid #2f2d35}
.plant .pot{background:#9b5547;clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);border-top:5px solid #563e42}.plant .leaf{border-radius:0;background:#4d704f;clip-path:polygon(50% 0,100% 32%,72% 100%,30% 100%,0 34%);box-shadow:inset 5px 0 #6d8d5e}
.sofa{border-radius:0;background:#6d7d80;border:5px solid #3f474e;box-shadow:inset 0 -25px #536267,inset 0 6px #91a1a0}.sofa::before{border-radius:0;background:#819295;border:4px solid #536267;box-shadow:inset 0 -8px #718286}.sofa .cushion{border-radius:0;background:#b86f53;border:3px solid #724a47;box-shadow:inset -7px -7px #995d4e}
.coffee-table{border-radius:0;background:#684c40;border:5px solid #3d3236;box-shadow:inset 0 8px #8b654b}.coffee-table::before{background:#48383a;border:3px solid #2e2b32}
.tv{border-radius:0;background:#202932;border:9px solid #463a3d;box-shadow:7px 8px 0 #654c43,inset 0 0 0 5px #34444e}.tv::before{background:linear-gradient(135deg,#496573 0 18%,#293741 18% 72%,#344c58 72%)}
.gym-rack{border-color:#41494e;border-radius:0;box-shadow:6px 0 #697378}.gym-rack::before,.gym-rack::after{background:#41494e;box-shadow:0 4px #252d33}.barbell .bar{height:8px;background:#aeb8b6;border:2px solid #515b5e}.barbell .plate{border-radius:0;background:#303840;border:3px solid #1f272f;box-shadow:inset 4px 0 #566069}
.bench{border-radius:0;background:#2d363c;border:4px solid #1d252c;box-shadow:inset 0 6px #566167}.bench::before,.bench::after{background:#424d52;border:2px solid #252d32}.treadmill{border-color:#3e484e}.treadmill::before{border-radius:0;background:#282f36;border:4px solid #171e25;box-shadow:inset 0 6px #4c575c}.treadmill::after{height:9px;background:#3e484e;box-shadow:0 4px #242c31}
.lockers{gap:4px}.locker{background:#718085;border:4px solid #4a565c;box-shadow:inset 5px 0 #87969a,inset -5px 0 #5d6b70}.locker::before{background:repeating-linear-gradient(#39464d 0 4px,transparent 4px 9px)}.locker::after{border-radius:0;background:#d1c59c;box-shadow:2px 2px #4d5150}.long-bench{border-radius:0;background:#7a543f;border:4px solid #46373a;box-shadow:inset 0 7px #9a7050}.long-bench::before,.long-bench::after{background:#4d575a;border:2px solid #30383c}.open-locker{background:#536268;border:5px solid #344047;box-shadow:inset 9px 0 #313c42}.open-locker::before{background:repeating-linear-gradient(0deg,rgba(0,0,0,.2) 0 12px,transparent 12px 25px)}
.tile-wall{inset:0 0 24%;background-color:#aebfc0;background-image:linear-gradient(#71888b 4px,transparent 4px),linear-gradient(90deg,#71888b 4px,transparent 4px);background-size:56px 56px;border-bottom:8px solid #526a6c}.tub{border-radius:0;background:#d8dfd3;border:8px solid #f2e8c9;box-shadow:inset 0 -18px #aab9b2,7px 7px 0 rgba(48,52,51,.2)}.tub::after{display:none}.shower{border-color:#596d70}.shower::before{border-radius:0;background:#596d70;border:3px solid #354b4e}.shower::after{border-radius:0;background:#819394;border:3px solid #4c6264}.sink{border-radius:0;background:#e2e3ce;border:6px solid #f7edce;box-shadow:0 22px 0 -9px #697c7b,6px 6px 0 rgba(50,58,57,.16)}.mirror{border-radius:0;background:linear-gradient(135deg,#789ba1 0 35%,#bed1c8 35% 42%,#86a7aa 42%);border:8px solid #4e6367;box-shadow:6px 6px 0 rgba(43,55,57,.2)}.towel{border-radius:0;background:repeating-linear-gradient(0deg,#bd725c 0 13px,#cb8468 13px 26px);border:4px solid #80544e}
.interaction-cover{transition:opacity .1s steps(1,end)}.cover-bed,.cover-sofa,.cover-table,.cover-bench,.cover-treadmill,.cover-long-bench,.cover-tub,.cover-sink{border-radius:0!important;filter:none}.cover-bed{clip-path:none;border:4px solid #45545d;background:repeating-linear-gradient(90deg,#697e87 0 24px,#718b91 24px 48px)}.cover-sofa{border:5px solid #3f474e;background:#536267}.cover-table{border:5px solid #3d3236;background:#684c40}.cover-bench{border:4px solid #1d252c;background:#2d363c}.cover-treadmill{border:4px solid #171e25;background:#282f36}.cover-long-bench{border:4px solid #46373a;background:#7a543f}.cover-tub{border:8px solid #f2e8c9;background:#d8dfd3}.cover-sink{border:6px solid #f7edce;background:#e2e3ce}
.character-stage img{image-rendering:pixelated;filter:drop-shadow(6px 8px 0 rgba(40,31,35,.2))}.character-stage.performing img{filter:drop-shadow(5px 6px 0 rgba(40,31,35,.18))}.character-shadow{filter:none;height:4%;border-radius:0;background:rgba(48,37,40,.24)}
.speech-bubble{border-radius:0;border:3px solid #403943;background:#fff5d7;box-shadow:6px 6px 0 rgba(44,37,43,.25);font-family:var(--font)}.speech-bubble::after{width:13px;height:13px;border:0;border-right:3px solid #403943;border-bottom:3px solid #403943}.interaction-caption{border-radius:0;border:2px solid #d9c99e;background:#38333d;backdrop-filter:none;box-shadow:4px 4px 0 rgba(0,0,0,.2)}
.room-arrow{border-radius:0;border:3px solid #403943;background:#fff1c8;box-shadow:5px 5px 0 rgba(48,40,46,.24);backdrop-filter:none}.room-arrow:hover{background:#fff8df;transform:translate(-2px,-2px)}
.room-bedroom{--wall:#c6af82;--floor:#826047;--trim:#5d4647}.room-living{--wall:#aaa98f;--floor:#795b4c;--trim:#4d4745}.room-gym{--wall:#8d9b98;--floor:#465358;--trim:#374349}.room-locker{--wall:#aaa596;--floor:#536166;--trim:#414c51}.room-bathroom{--floor:#71898a}
.character-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profile-section-label{margin:18px 0 2px;padding-bottom:8px;border-bottom:2px solid var(--border);font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--text)}
@keyframes pixelTwinkle{0%,100%{opacity:.35;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}
@media(max-width:1156px){.scene{margin:0}.scene-viewport::after{content:"↔ DRAG / SWIPE";position:sticky;display:block;left:12px;bottom:12px;width:max-content;z-index:12;padding:5px 8px;border:2px solid #403943;background:#fff1c8;color:#403943;box-shadow:3px 3px 0 rgba(48,40,46,.25);font:700 10px/1 monospace;pointer-events:none}.world-card{overflow:hidden}.room-arrow-left{left:20px}.room-arrow-right{right:20px}}
@media(max-width:720px){.scene-viewport{height:610px}.scene{width:1120px;height:602px;min-height:602px}.character-stage{width:230px;height:390px}.window{width:19%}.bed{width:37%}.tv{width:25%}.character-profile-grid{grid-template-columns:1fr}.settings-panel{max-height:94vh}.world-card{padding:9px}.app-shell{width:calc(100% - 16px)}}

/* Real open locker */
.open-locker{left:69.8%;right:auto;top:8%;width:13.1%;height:48%;background:#2e393e;border:4px solid #4a565c;box-shadow:inset 8px 0 #222d32,inset -5px 0 #66757a;overflow:visible;z-index:3}
.open-locker::before{content:"";position:absolute;left:7%;right:7%;top:24%;height:4px;background:#8f9b9c;box-shadow:0 100px #8f9b9c;z-index:2}
.open-locker .locker-cavity{position:absolute;inset:0;overflow:hidden;background:linear-gradient(90deg,#222c31 0 14%,#354248 14% 100%)}
.open-locker .locker-shelf{position:absolute;left:8%;right:8%;top:24%;height:5px;background:#8b999a;border-bottom:3px solid #20292e}
.open-locker .locker-hanger{position:absolute;left:31%;top:31%;width:42%;height:23%;border:4px solid #d5c491;border-top:0;transform:rotate(45deg);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.open-locker .locker-shirt{position:absolute;left:27%;top:38%;width:50%;height:31%;background:#9c5c4e;border:4px solid #613f42;clip-path:polygon(20% 0,38% 0,42% 10%,58% 10%,62% 0,80% 0,100% 20%,82% 38%,75% 30%,75% 100%,25% 100%,25% 30%,18% 38%,0 20%);box-shadow:inset 0 -9px #7f4d48}
.open-locker .locker-door{position:absolute;left:96%;top:-4px;width:74%;height:calc(100% + 8px);background:#66767b;border:4px solid #3e4a50;box-shadow:inset 7px 0 #7f8e91,inset -6px 0 #526166,7px 7px 0 rgba(38,43,45,.24);transform:skewY(-5deg);transform-origin:left center;z-index:4}
.open-locker .locker-door::before{content:"";position:absolute;left:20%;right:20%;top:11%;height:13%;background:repeating-linear-gradient(#344147 0 4px,transparent 4px 9px)}
.open-locker .locker-door::after{content:"";position:absolute;left:16%;top:48%;width:6px;height:18%;background:#e1d4aa;box-shadow:2px 2px #374247}
.open-locker .object-label{left:50%;top:calc(100% + 10px);z-index:6}

/* Character-anchored bubble */
.speech-bubble{left:var(--bubble-x,50%);bottom:var(--bubble-bottom,92%);width:max-content;max-width:430px;min-width:58px;transform:translate(-50%,-8px) scale(.96);z-index:9}
.speech-bubble.visible{transform:translate(-50%,-18px) scale(1)}
.speech-bubble::after{left:50%;bottom:-9px;transform:translateX(-50%) rotate(45deg)}
.character-stage.walking .speech-bubble:not(.visible){display:none}

/* Session history */
.history-button{position:relative}.history-button span{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border:2px solid #fff;background:#b56b55;color:#fff;font:800 9px/1 monospace;box-shadow:2px 2px 0 rgba(47,39,44,.2)}.history-button span[hidden]{display:none}
.history-panel{width:min(680px,100%);height:min(720px,90vh);display:flex;flex-direction:column;background:#fffdf7;border:4px solid #403943;box-shadow:10px 10px 0 rgba(38,32,38,.22);padding:25px}.history-panel h2{font-size:27px;margin-top:4px}.history-note{margin:14px 0;color:var(--muted);font-size:11px}.history-list{flex:1;min-height:0;overflow-y:auto;padding:12px;background:#eee7d3;border:3px solid #665a5b;scrollbar-color:#665a5b transparent}.history-entry{width:min(82%,520px);margin:0 0 14px;padding:12px 14px;border:3px solid #403943;box-shadow:4px 4px 0 rgba(47,39,44,.18);background:#fff8df}.history-entry.user{margin-left:auto;background:#d9e1d2}.history-entry.assistant{margin-right:auto}.history-speaker{margin-bottom:6px;color:#71646a;font-size:10px;font-weight:900;letter-spacing:.08em}.history-entry p{white-space:pre-wrap;font-size:13px;line-height:1.6}.history-empty{display:grid;place-items:center;height:100%;color:#82767a;font-size:13px}
@media(max-width:720px){.speech-bubble{max-width:310px}.history-panel{height:92vh;padding:18px}.history-entry{width:91%}}

/* Single-viewport application layout */
html,body{width:100%;height:100%;height:100svh;min-height:0;overflow:hidden}
body{padding-bottom:0}
.app-shell{height:calc(100svh - 100px);padding:8px 0;display:flex;flex-direction:column}
.topbar{height:58px;flex:0 0 58px}
.world-card{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px 14px}
.room-meta{flex:none;padding:5px 10px 10px}.room-dots{flex:none;padding:9px 0 0}.hint{bottom:10px}
.scene-area{position:relative;flex:1;min-height:0;overflow:hidden}
.scene-viewport{width:100%;height:100%;min-height:0;overflow:auto;touch-action:none}
.scene-area>.interaction-caption{left:50%;bottom:5%;width:max-content;max-width:calc(100% - 32px);text-align:center;white-space:normal;pointer-events:none}
.scene{flex:none}
.composer{height:100px;padding:10px 18px 12px;background:linear-gradient(transparent,rgba(246,247,249,.97) 18%,var(--bg) 42%)}
.composer-inner{max-height:78px}.settings-footer{justify-content:space-between;gap:12px}.settings-version{margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums}

/* History reuses the settings overlay's visual language */
.history-panel{width:min(620px,100%);height:min(700px,88svh);background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.9);border-radius:28px;box-shadow:0 30px 100px rgba(31,41,51,.28);padding:25px}
.history-note{margin:12px 0 16px;padding:10px 12px;border-radius:12px;background:#f5f7f8;color:var(--muted)}
.history-list{padding:14px;background:#f7f9fa;border:1px solid var(--border);border-radius:16px;scrollbar-color:#a9b2b8 transparent}
.history-entry{margin-bottom:12px;padding:11px 13px;border:1px solid var(--border);border-radius:14px;box-shadow:0 6px 18px rgba(43,54,67,.06);background:#fff}
.history-entry.user{background:#eef2f3;border-color:rgba(95,102,112,.18)}.history-speaker{color:var(--muted)}
.history-empty{color:var(--muted)}
@media(max-width:720px){.app-shell{height:calc(100svh - 90px);padding:4px 0}.topbar{height:52px;flex-basis:52px}.world-card{padding:8px}.room-meta{padding:3px 7px 7px}.scene-viewport{height:auto}.composer{height:90px;padding:8px 10px}.composer-inner{max-height:74px}.history-panel{height:90svh;padding:18px;border-radius:22px}.history-list{border-radius:13px}.history-entry{border-radius:12px}}
@media(max-width:720px){.settings-footer #saveStatus{display:none}.settings-footer .settings-version{display:inline;margin-left:0}}

/* Living-room hit targets */
.room-living .living-plant{left:54%;right:auto;bottom:18%;width:12%;height:29%;z-index:5}
.room-living .tv{right:5%;width:25%;z-index:2}

/* More physical bathroom fixtures */
.room-bathroom .tub{left:5%;bottom:12%;width:43%;height:35%;border:0;background:transparent;box-shadow:none;overflow:visible}
.tub .tub-basin{position:absolute;left:0;right:0;bottom:0;height:73%;background:#c9d2cc;border:7px solid #f4eed8;box-shadow:inset 0 -20px #9daea8,7px 7px 0 rgba(45,55,55,.2);clip-path:polygon(0 0,100% 0,94% 100%,8% 100%)}
.tub .tub-water{position:absolute;left:7%;right:7%;top:27%;height:17%;background:repeating-linear-gradient(90deg,#83afb4 0 26px,#93c0c0 26px 52px);border:4px solid #506e72;z-index:2}
.tub .tub-rim{position:absolute;left:-2%;right:-2%;top:20%;height:15%;background:#f2ead1;border:5px solid #6c7773;box-shadow:inset 0 6px #fff9e6;z-index:3}
.tub .tub-faucet{position:absolute;right:7%;top:2%;width:18%;height:24%;border:7px solid #596b6d;border-left:0;border-bottom:0;z-index:4}.tub .tub-faucet::after{content:"";position:absolute;right:-7px;bottom:-4px;width:22px;height:9px;background:#596b6d;border:3px solid #394c4e}
.room-bathroom .sink{right:7%;bottom:15%;width:27%;height:35%;border:0;background:transparent;box-shadow:none;overflow:visible}
.sink .sink-basin{position:absolute;left:0;right:0;top:7%;height:37%;background:#e5e6d6;border:6px solid #f7efd3;box-shadow:inset 0 -12px #b8c5be,5px 5px 0 rgba(43,54,55,.18);clip-path:polygon(0 0,100% 0,88% 78%,68% 100%,30% 100%,12% 78%)}
.sink .sink-pedestal{position:absolute;left:36%;right:36%;top:40%;bottom:0;background:#cbd2c8;border:5px solid #697977;box-shadow:inset 7px 0 #eef0dc}
.sink .sink-faucet{position:absolute;left:44%;top:-7%;width:22%;height:25%;border:7px solid #5d7072;border-left:0;border-bottom:0;z-index:3}.sink .sink-faucet::after{content:"";position:absolute;right:-7px;bottom:-5px;width:18px;height:8px;background:#5d7072}
.sink .sink-handle{position:absolute;top:2%;width:20px;height:8px;background:#687b7c;border:3px solid #3d5153;z-index:4}.sink .sink-handle.hot{left:23%}.sink .sink-handle.cold{right:18%}.sink .sink-handle.hot::after,.sink .sink-handle.cold::after{content:"";position:absolute;left:4px;top:-7px;width:6px;height:6px;background:#b9685b}.sink .sink-handle.cold::after{background:#5f8ba8}
.cover-tub{left:5%;bottom:12%;width:43%;height:20%;background:transparent;border:0;box-shadow:none;overflow:visible}
.cover-tub::before{content:"";position:absolute;inset:0;background:#b9c5bf;border:7px solid #f4eed8;clip-path:polygon(2% 0,98% 0,92% 100%,9% 100%);box-shadow:inset 0 -15px #9daea8}
.scene[data-interaction="tub"] .cover-tub{opacity:1}.cover-tub .foam-cluster{position:absolute;left:8%;right:8%;top:-37%;height:45%;z-index:2;background:radial-gradient(circle at 6% 63%,#fff 0 13px,#b9ccca 14px 16px,transparent 17px),radial-gradient(circle at 16% 39%,#eef7f3 0 17px,#b9ccca 18px 20px,transparent 21px),radial-gradient(circle at 27% 66%,#fff 0 15px,#b9ccca 16px 18px,transparent 19px),radial-gradient(circle at 39% 36%,#f7fbf8 0 20px,#b9ccca 21px 23px,transparent 24px),radial-gradient(circle at 51% 64%,#fff 0 16px,#b9ccca 17px 19px,transparent 20px),radial-gradient(circle at 63% 38%,#eef7f3 0 19px,#b9ccca 20px 22px,transparent 23px),radial-gradient(circle at 75% 64%,#fff 0 15px,#b9ccca 16px 18px,transparent 19px),radial-gradient(circle at 86% 37%,#f7fbf8 0 18px,#b9ccca 19px 21px,transparent 22px),radial-gradient(circle at 95% 66%,#fff 0 13px,#b9ccca 14px 16px,transparent 17px)}
.cover-sink{right:7%;bottom:36%;width:27%;height:8%;background:#d8ded2;border:6px solid #f7efd3;clip-path:polygon(0 0,100% 0,86% 100%,14% 100%)}

/* Interaction and viewport refinements */
.settings-section+.settings-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}
.settings-section .form-section-title{margin-bottom:10px}
.brand-block h1{font-variant-numeric:tabular-nums;white-space:nowrap}
.scene-content{z-index:auto}
.scene-viewport{height:100%;min-height:0;overflow-x:auto;overflow-y:hidden!important;overscroll-behavior:none;touch-action:none}
.scene-sizer{position:relative;flex:0 0 auto;margin:0 auto;overflow:visible}
.scene{position:absolute;left:0;top:0;width:1120px;height:602px;min-height:602px;margin:0;transform-origin:top left}
.character-stage{width:var(--base-width,210px);height:min(360px,88%);bottom:10%}
.character-stage.performing{height:min(var(--action-height),88%)}
.character-stage.size-snap{transition:left 1.15s cubic-bezier(.4,0,.2,1)}
.character-stage.booting img,.character-stage.booting .character-shadow{opacity:0!important}

.room-bedroom .bed{width:35%}.room-living .sofa{width:39%}.room-living .tv{right:6%;width:23%;height:27%}.room-living .living-plant{left:56%;width:11%;height:27%;z-index:3}
.room-gym .gym-rack{width:22%;height:57%}.room-gym .bench{left:30%;width:29%;height:12%}.room-gym .treadmill{right:5%;width:27%;height:36%}
.room-locker .long-bench{left:28%;width:46%;height:13%}
.room-bathroom .tub{left:9%;width:33%;height:29%}.room-bathroom .sink{right:10%;width:20%;height:27%}.room-bathroom .mirror{right:10%;width:20%;height:27%}

.bench::before,.bench::after,.long-bench::before,.long-bench::after{display:none}
.bench .bench-leg,.long-bench .bench-leg{position:absolute;top:72%;width:10px;height:92%;display:block;background:#424d52;border:2px solid #252d32;z-index:-1}
.bench .bench-leg.left,.long-bench .bench-leg.left{left:13%}.bench .bench-leg.right,.long-bench .bench-leg.right{right:13%}
.long-bench .bench-leg{background:#4d575a;border-color:#30383c}
.cover-bench{left:30%;bottom:19%;width:29%;height:3%;border:0;background:#242d33;transform:skewX(-8deg);box-shadow:none}
.cover-treadmill{right:5%;bottom:16%;width:27%;height:3%;z-index:6}
.cover-long-bench{left:28%;bottom:16%;width:46%;height:3%;border:0;background:#654632;box-shadow:none}
.cover-sink{display:none}
.cover-bed,.cover-sofa,.cover-bench,.cover-long-bench{display:none!important}
.cover-tub{left:9%;bottom:12%;width:33%;height:29%}
.cover-tub::before{inset:auto 0 0;height:73%;background:#c9d2cc;border:7px solid #f4eed8;clip-path:polygon(0 0,100% 0,94% 100%,8% 100%);box-shadow:inset 0 -20px #9daea8,7px 7px 0 rgba(45,55,55,.2);z-index:1}
.cover-tub::after{content:"";position:absolute;left:-2%;right:-2%;top:20%;height:15%;background:#f2ead1;border:5px solid #6c7773;box-shadow:inset 0 6px #fff9e6;z-index:2}
.cover-tub .foam-cluster{left:8%;right:8%;top:17%;height:22%;z-index:3}
.scene[data-interaction="sink"] .sink{z-index:2}
.character-stage.performing{width:min(var(--action-width),320px);max-height:360px}
.character-stage img,.character-stage.performing img{filter:none!important}
.character-shadow{left:27%;right:27%;height:4%;border-radius:50%;background:rgba(48,37,40,.22)}

@media(max-width:720px){.brand-block h1{font-size:15px}.scene-viewport{height:100%}.scene-area>.interaction-caption{bottom:10px;max-width:calc(100% - 24px)}.scene{width:1120px;height:602px;min-height:602px}.character-stage{width:var(--base-width,210px);height:min(360px,88%)}.composer-inner{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:8px;row-gap:4px;align-items:stretch;padding:8px 8px 7px 12px}.composer textarea{grid-column:1;grid-row:1;min-width:0;width:100%;min-height:32px;max-height:44px;padding:5px 0;overflow-y:auto}.composer-meta{grid-column:1;grid-row:2;min-width:0}.composer button{position:static;grid-column:2;grid-row:1/3;min-width:72px;padding:0 12px}}
