@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";:root{font-family:DM Sans,sans-serif;color:#34342d;background:#e9e3da;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-optical-sizing:auto;font-weight:400;--sage:#76836e;--ink:#34342d;--cream:#f7f4ee}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;min-height:100%;overscroll-behavior:none}button,input{font:inherit}button{color:inherit}.app-shell{position:relative;width:100%;height:100%;height:100dvh;overflow:hidden;background:#e8e2d8;isolation:isolate;user-select:none;-webkit-user-select:none}.scene-frame{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;touch-action:none;cursor:grab}.scene-frame:active{cursor:grabbing}.room-canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.scene-wash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#faf8f3e6 0,#faf8f3b8 9%,#faf8f300 25%,#faf8f300 70%,#f9f6ef33 83%,#f9f6efeb)}.topbar{position:absolute;z-index:3;left:clamp(20px,5vw,76px);right:clamp(20px,5vw,76px);top:clamp(18px,3.6vh,42px);height:52px;display:flex;align-items:center;gap:12px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:var(--sage);color:#fff;font:500 28px Georgia,serif;box-shadow:0 7px 20px #58634730}.brand-copy{display:flex;flex-direction:column;gap:3px;letter-spacing:.18em;font-size:13px}.brand-copy strong{font-size:14px}.brand-copy span{font-size:9px;color:#8b887e}.room-label{position:absolute;left:50%;transform:translate(-50%);font-size:10px;font-weight:700;letter-spacing:.2em;color:#817f72;display:flex;align-items:center;gap:10px;white-space:nowrap}.room-label i{font-style:normal;color:#aaa597}.live-dot{width:8px;height:8px;background:#89967c;border-radius:50%;box-shadow:0 0 0 4px #89967c26}.top-actions{margin-left:auto;display:flex;gap:10px}.icon-button{width:43px;height:43px;border:1px solid #b9b3a877;background:#faf8f2cb;border-radius:50%;display:grid;place-items:center;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .18s,background .18s}.icon-button:hover{transform:translateY(-1px);background:#fff}.welcome-copy{position:absolute;z-index:2;left:clamp(24px,7.3vw,112px);top:clamp(130px,23vh,250px);pointer-events:none;text-shadow:0 2px 18px #f5f1e9a8}.eyebrow{display:flex;align-items:center;gap:8px;color:#8d866e;font-size:10px;font-weight:700;letter-spacing:.22em}.eyebrow svg{color:#b49a66}.welcome-copy h1{margin:15px 0 10px;font:500 clamp(40px,6.4vw,82px)/.92 "Playfair Display",Georgia,serif;letter-spacing:-.055em;color:#37382f}.welcome-copy h1 em{color:#78836d;font-weight:500}.welcome-copy p{margin:19px 0 0;color:#777568;font-size:clamp(12px,1.1vw,15px);letter-spacing:.02em}.room-status{position:absolute;z-index:3;right:clamp(20px,6vw,85px);top:clamp(105px,19vh,200px);display:flex;align-items:center;gap:11px;padding:12px 17px;border:1px solid #fff;background:#fbf8f0dc;border-radius:50px;box-shadow:0 8px 28px #6c604c16;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.status-sun{width:34px;height:34px;display:grid;place-items:center;color:#a99361;background:#ede5d1;border-radius:50%}.room-status div{display:flex;flex-direction:column;gap:2px}.room-status b{font-size:10px;letter-spacing:.17em}.room-status small{font-size:11px;color:#969083}.camera-zoom{position:absolute;z-index:4;right:clamp(19px,4.4vw,58px);top:50%;transform:translateY(-50%);width:48px;height:202px;padding:10px 7px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;border:1px solid #fff;background:#fbf8f0dc;border-radius:30px;box-shadow:0 9px 25px #40342522;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.camera-zoom button{border:0;background:transparent;color:#75806d;font-size:24px;line-height:1;cursor:pointer;width:30px;height:28px}.camera-zoom input{width:136px;height:4px;accent-color:#79856f;transform:rotate(-90deg);transform-origin:center;position:absolute;top:99px;left:-45px;cursor:pointer}.bottom-hint{position:absolute;z-index:2;left:50%;bottom:clamp(88px,12vh,125px);transform:translate(-50%);display:flex;align-items:center;gap:13px;padding:11px 18px;border:1px solid #fff9;background:#f9f6efd9;border-radius:30px;color:#777568;font-size:11px;white-space:nowrap;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-hint i{height:13px;width:1px;background:#cfc8ba}.tv-pill{position:absolute;z-index:4;right:clamp(82px,10vw,138px);bottom:clamp(90px,13vh,138px);display:flex;align-items:center;gap:9px;padding:12px 18px;border:1px solid #faf8f1;background:#71806c;color:#fff;border-radius:28px;box-shadow:0 8px 23px #45523d30;cursor:pointer;transition:transform .18s,background .18s}.tv-pill:hover{transform:translateY(-2px);background:#62735d}.tv-pill.is-on{background:#af8b5e}.bottom-bar{position:absolute;z-index:3;bottom:0;left:0;right:0;height:79px;padding:0 clamp(22px,5vw,78px);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#f9f6ef00,#f9f6efda 50%,#f9f6eff2);pointer-events:none}.home-chip{display:flex;align-items:center;gap:10px}.home-dot{width:42px;height:42px;border-radius:50%;background:#7c896f;color:#fff;display:grid;place-items:center}.home-chip div{display:flex;flex-direction:column;gap:3px}.home-chip b{font-size:13px;letter-spacing:.09em}.home-chip small{font-size:11px;color:#9b978b}.bottom-controls{height:42px;display:flex;align-items:center;gap:12px;color:#8b8b7a;font-size:9px;font-weight:700;letter-spacing:.14em}.light-control{border:0;background:transparent;padding:0;cursor:pointer;pointer-events:auto}.light-control:hover{color:#59684f}.muted-divider{height:16px;width:1px;background:#cfc8ba}.light-indicator{width:24px;height:14px;border-radius:9px;background:#bcb6a9;position:relative;transition:background .18s}.light-indicator.active{background:#87937c}.light-indicator:after{content:"";position:absolute;width:10px;height:10px;right:2px;top:2px;background:#f6f4eb;border-radius:50%;transition:left .18s,right .18s}.light-indicator:not(.active):after{right:auto;left:2px}@media(max-width:700px){.topbar{top:max(14px,env(safe-area-inset-top));left:17px;right:17px;gap:9px}.brand-mark{width:38px;height:38px;font-size:25px}.brand-copy{font-size:11px}.brand-copy strong{font-size:12px}.room-label{top:54px;left:0;transform:none;font-size:8px;letter-spacing:.13em;gap:8px}.top-actions{gap:6px}.icon-button{width:38px;height:38px}.welcome-copy{left:22px;top:22%}.welcome-copy h1{font-size:clamp(38px,12vw,57px);margin:12px 0 8px}.welcome-copy p{font-size:11px;margin-top:13px;max-width:145px;line-height:1.45}.eyebrow{font-size:8px;letter-spacing:.16em}.room-status{right:17px;top:18%;padding:9px 12px;gap:8px}.status-sun{width:30px;height:30px}.room-status b{font-size:9px}.room-status small{font-size:10px}.camera-zoom{right:13px;width:42px;height:170px;padding:8px 5px}.camera-zoom input{top:82px;left:-48px;width:132px}.bottom-hint{bottom:calc(80px + env(safe-area-inset-bottom));gap:8px;padding:9px 12px;font-size:9px}.tv-pill{right:16px;bottom:calc(131px + env(safe-area-inset-bottom));padding:10px 13px;font-size:11px}.bottom-bar{height:calc(66px + env(safe-area-inset-bottom));padding:0 18px max(7px,env(safe-area-inset-bottom))}.home-dot{width:37px;height:37px}.bottom-controls{gap:8px;font-size:8px}}@media(orientation:portrait)and (max-width:700px){.scene-frame canvas{transform-origin:center center}.scene-frame{top:0;right:0;bottom:0;left:0}.welcome-copy{top:20%}.camera-zoom{top:49%}.room-status{top:17%}}@media(max-height:430px)and (orientation:landscape){.topbar{top:10px;height:40px}.brand-mark,.icon-button{width:34px;height:34px}.room-label{font-size:8px}.welcome-copy{top:27%;left:6%}.welcome-copy h1{font-size:clamp(34px,7vh,54px)}.welcome-copy p{margin-top:10px}.room-status{top:15%;right:7%;padding:7px 12px}.camera-zoom{height:150px;width:41px}.bottom-hint{bottom:55px;padding:7px 12px}.bottom-bar{height:52px}.tv-pill{bottom:61px;padding:8px 13px}}
