:root{color-scheme:light;--ink:#302341;--muted:#645672;--accent:#63428c;--border:#e7dcef;--paper:#fff;--bg:#f8f5fc;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}a{color:var(--accent)}[hidden]{display:none!important}svg{display:block}.symbols{width:0;height:0;position:absolute;overflow:hidden}.brand-icon svg,.button svg,.tile-icon svg,.tile-arrow svg,footer svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.shell{width:min(100% - 48px,1080px);margin-inline:auto}.site-head{height:91px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:750;font-size:21px;line-height:1.15;color:var(--ink);letter-spacing:-.04em}.brand b{color:var(--accent)}.brand small{display:block;margin-top:4px;font-size:9px;font-weight:750;letter-spacing:.14em;color:var(--muted)}.brand-icon{display:grid;place-items:center;background:#eadcf6;color:var(--accent);width:45px;height:45px;border-radius:15px}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:12px;padding:9px 15px;font-weight:700;font-size:.88rem;line-height:1.2;text-align:center}.button svg{width:18px;height:18px}.subtle{background:var(--paper);border-color:var(--border);color:var(--accent)}.primary{background:var(--accent);color:#fff}.secondary{background:#efe6f7;color:#553477}.danger{background:#fae9ed;color:#84283f}.button:hover:not(:disabled){filter:brightness(.95)}:focus-visible{outline:3px solid #825db4;outline-offset:3px}
.hero{position:relative;display:grid;grid-template-columns:1.08fr 1fr;align-items:center;min-height:335px;overflow:hidden;border-radius:29px;border:1px solid #e6d7f1;background:radial-gradient(ellipse at 85% 15%,#e7d8f5,transparent 60%),linear-gradient(117deg,#f1e8fa,#eee3f8);isolation:isolate}.hero-copy{padding:40px 0 40px 47px;z-index:1}.eyebrow{font-size:.69rem;letter-spacing:.14em;font-weight:780;color:#634887;margin:0 0 11px}.hero .eyebrow{display:flex;align-items:center;gap:8px}.hero .eyebrow span{height:7px;width:7px;border-radius:50%;background:#956abc}.hero h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(3.25rem,7.8vw,6rem);line-height:.91;letter-spacing:-.075em;margin:0;color:#30213f}.hero h1 em{color:#76519d;font-weight:400}.hero-copy>p:last-child{max-width:300px;color:#564363;line-height:1.55;margin:21px 0 0;font-size:.96rem}.hero-art{width:100%;max-width:465px;height:auto;justify-self:center;margin-left:-8%}
.tools{margin-top:32px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}.section-head h2,.panel h2{font-size:1.5rem;letter-spacing:-.045em;margin:0}.section-head>span{font-size:.67rem;letter-spacing:.13em;color:var(--muted);font-weight:750}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tile{position:relative;display:flex;flex-direction:column;text-align:left;align-items:flex-start;min-width:0;min-height:169px;padding:17px 19px 20px;background:var(--paper);border:1px solid var(--border);border-radius:19px;color:var(--ink);box-shadow:0 4px 18px #40255d05;transition:border-color .16s,transform .16s}.tile:hover{transform:translateY(-2px);border-color:#bba2d4}.tile-camera{--tile:#eaddf6;--icon:#65428e}.tile-sound{--tile:#ddefe6;--icon:#2e6555}.tile-lamp{--tile:#fbe4e5;--icon:#923c4d}.tile-icon{width:42px;height:42px;border-radius:13px;background:var(--tile);color:var(--icon);display:grid;place-items:center;margin-bottom:17px}.tile-status{position:absolute;top:20px;right:14px;font-size:.64rem;line-height:1.2;font-weight:760;color:var(--icon);background:var(--tile);border-radius:20px;padding:5px 8px}.tile-title{font-weight:780;letter-spacing:-.035em;font-size:1.2rem;line-height:1.2;padding-right:18px}.tile-copy{margin-top:5px;color:var(--muted);font-size:.82rem;line-height:1.35;padding-right:20px}.tile-arrow{position:absolute;right:15px;bottom:18px;color:var(--icon)}.tile-arrow svg{width:17px;height:17px}
.panel{margin:23px 0 0;padding:23px;border-radius:19px;border:1px solid var(--border);background:var(--paper);scroll-margin-top:12px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-head .eyebrow{margin-bottom:4px}.panel p{color:var(--muted);line-height:1.55}.roles,.form-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0}.hint{font-size:.83rem;margin:14px 0 0}.controls{display:grid;grid-template-columns:1fr 1fr;gap:19px;margin:18px 0}.controls label{display:flex;justify-content:space-between;gap:10px}label{display:block;margin-bottom:8px;font-weight:680;font-size:.89rem}output,.count{color:var(--accent);font-weight:750;font-variant-numeric:tabular-nums}input,select{max-width:100%;min-width:0}input[type=range]{display:block;width:100%;height:44px;margin:0;accent-color:var(--accent)}select,input[type=text]{padding:9px 12px;height:44px;border-radius:10px;border:1px solid #d9cbe7;background:#fbf8fe;color:var(--ink)}select{width:100%}input[type=text]{width:min(100%,265px);letter-spacing:.08em;text-transform:uppercase}.room,.status,.notice{margin:15px 0;padding:13px 15px;background:#f3ebfb;border-radius:12px;color:#563675}.room{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.room .eyebrow{display:block;margin-bottom:4px}.room strong{font-family:ui-monospace,monospace;font-size:1.35rem;letter-spacing:.1em}.status{font-size:.9rem}.status[data-tone=good]{color:#265948;background:#e2f4e9}.status[data-tone=warn]{color:#792f38;background:#fae8eb}.video-wrap{position:relative;overflow:hidden;display:grid;place-items:center;background:#201828;border-radius:14px}.video-wrap video{display:block;width:100%;max-height:65svh;min-height:165px;aspect-ratio:16/9;object-fit:contain}.video-cover{position:absolute;inset:0;display:grid;place-items:center;background:#201828;color:#f7effd;font-size:.9rem}.lamp-screen{width:100%;max-width:none;height:100%;max-height:none;inset:0;border:0;margin:0;padding:0;background:#490000;color:#ffe1dd}.lamp-screen::backdrop{background:#080000}.lamp-screen-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;position:absolute;left:0;right:0;bottom:0;padding:18px 20px max(18px,env(safe-area-inset-bottom));color:#ffe1dd}.lamp-screen-controls span{background:#200000d9;border-radius:10px;padding:8px 10px;font-variant-numeric:tabular-nums}.lamp-off{background:#200000e8;color:#ffe1dd;border-color:#ffd3cc70}.notice{font-size:.86rem}.notice:empty{display:none}
footer{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--muted);font-size:.77rem;padding:24px 0 max(23px,env(safe-area-inset-bottom));margin-top:14px;border-top:1px solid var(--border)}footer span:first-child{display:flex;align-items:center;gap:7px}footer svg{width:16px;height:16px;color:var(--accent);flex:none}
@media(max-width:720px){.shell{width:calc(100% - 32px)}.hero{min-height:275px}.hero-copy{padding:30px 0 28px 24px}.hero h1{font-size:clamp(3rem,9vw,4.4rem)}.hero-art{width:114%;margin-left:-12%}.grid{gap:9px}.tile{padding:13px;min-height:150px}.tile-status{right:10px;top:14px}.tile-title{font-size:1.05rem}.tile-copy{padding-right:7px}.tile-arrow{display:none}}
@media(max-width:510px){.site-head{height:69px}.brand{font-size:18px}.brand-icon{width:38px;height:38px;border-radius:11px}.install{padding-inline:10px}.hero{min-height:231px;grid-template-columns:1.13fr 1fr;border-radius:21px}.hero-copy{padding:21px 0 22px 16px}.hero h1{font-size:clamp(2.5rem,9.8vw,3.5rem)}.hero .eyebrow{font-size:.55rem;letter-spacing:.08em}.hero-copy>p:last-child{font-size:.76rem;margin-top:15px}.hero-art{width:135%;margin-left:-21%;align-self:center}.tools{margin-top:24px}.section-head h2,.panel h2{font-size:1.26rem}.grid{grid-template-columns:1fr}.tile{display:grid;grid-template-columns:42px 1fr;column-gap:12px;min-height:79px;padding:13px 14px;align-items:center}.tile-icon{grid-row:span 2;margin:0}.tile-title{align-self:end;padding:0 26px 0 0}.tile-copy{margin-top:2px;align-self:start;padding-right:20px;font-size:.76rem}.tile-status{display:none}.tile-arrow{display:block;top:50%;bottom:auto;transform:translateY(-50%)}.panel{padding:15px}.panel-head .button{padding-inline:9px}.controls{gap:11px}.controls label{font-size:.78rem}.roles .button{flex-grow:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
