@font-face{font-family:Atmos;src:local('Helvetica Neue');font-style:normal;font-weight:100 900;font-display:swap}
:root{font-family:Atmos,'Helvetica Neue',Arial,sans-serif;color:#30342e;background:#e9e7e1;font-synthesis:none;--ink:#30342e;--muted:#777b73;--line:#d3d4ca;--accent:#687459;--paper:#f5f4ef;--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,#viewport:focus-visible{outline:2px solid #697954;outline-offset:5px}button:disabled{opacity:.5;cursor:wait}button svg,svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;border-bottom:1px solid var(--line);position:relative;z-index:5;background:#e9e7e1}.brand{font-size:40px;letter-spacing:-2.5px;font-weight:500;line-height:1;display:flex;align-items:center}.brand-mark{align-self:flex-start;font-size:13px;letter-spacing:0;margin:4px 0 0 4px}.brand-descriptor{font-size:10px;letter-spacing:1.6px;max-width:90px;line-height:1.6;margin-left:27px}.header-center{display:flex;align-items:center;gap:15px;font-size:11px;letter-spacing:1.7px;color:#676b62}.fine-line{width:25px;height:1px;background:#7d8275}.edition{margin-left:15px;font-size:10px;border:1px solid #c7cbbe;border-radius:3px;padding:6px 8px;letter-spacing:1px}.text-button{display:flex;gap:16px;align-items:center;font-size:13px}.text-button svg{width:17px;height:17px}.text-button:hover{color:var(--accent)}main{max-width:2400px;margin:auto}.experience{position:relative;height:calc(100svh - 316px);min-height:470px;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 65% 45%,#f4f2ed 0,#e9e7e1 67%)}#viewport{position:absolute;inset:0;outline-offset:-4px;touch-action:none}#viewport canvas{width:100%;height:100%;display:block;cursor:grab;outline:none}#viewport canvas:active{cursor:grabbing}.intro{position:absolute;left:4%;top:48px;pointer-events:none;z-index:2}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:500;margin:0 0 23px}.eyebrow>span{margin-right:12px;color:var(--muted)}h1{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.45vw,58px);line-height:1.06;letter-spacing:-2px;margin:0}h1>span{color:#879070}.intro-copy{font-size:13px;line-height:1.65;color:#73776e;margin:19px 0 25px}.project-specs{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:1px;color:#757c6d}.project-specs span+span:before{content:'·';margin-right:10px}.scene-caption{position:absolute;right:4%;top:35px;display:flex;gap:10px;align-items:center;font-size:10px;letter-spacing:1.6px;color:#626858}.live-dot{width:5px;height:5px;border-radius:50%;background:#7a8566}.caption-divider{height:11px;width:1px;background:#bec4b5;margin:0 4px}#live-time{font-variant-numeric:tabular-nums;letter-spacing:1px}.scene-toolbar{position:absolute;right:4%;top:85px;display:flex;flex-direction:column;gap:8px;z-index:3}.icon-button{border:1px solid #c8cbbdaa;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;background:#eeeee455;backdrop-filter:blur(12px)}.icon-button:hover{background:#f8f7f0}.icon-button svg{width:16px;height:16px}.scene-bottom{position:absolute;bottom:23px;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;pointer-events:none;color:#777c71}.orbit-hint{display:flex;align-items:center;gap:10px;font-size:11px}.orbit-hint svg{width:18px;height:18px}.orbit-hint i{font-style:normal;margin:0 5px}.scene-number{font-size:9px;letter-spacing:1.7px}.controls{margin:0 4%;border:1px solid #cecec3;border-radius:9px;display:grid;grid-template-columns:1.1fr 1.05fr 1fr;background:#f3f2eceb;box-shadow:0 4px 24px #2d322304;position:relative;z-index:4}.control-block{padding:23px 29px 19px;min-width:0}.control-block+.control-block{border-left:1px solid var(--line)}.control-heading{display:flex;align-items:center;justify-content:space-between;font-size:14px;gap:12px}.heading-right{display:flex;gap:9px;align-items:center}output{font-size:13px;font-variant-numeric:tabular-nums}.mini-button{display:grid;place-items:center;width:23px;height:23px;border:1px solid #cbd0c1;border-radius:50%}.mini-button svg{width:12px;height:12px}.time-slider{display:flex;align-items:center;gap:14px;margin-top:15px}.time-slider svg{width:17px;height:17px;color:#7c806e}input[type=range]{appearance:none;-webkit-appearance:none;height:24px;background:transparent;cursor:pointer;min-width:0;width:100%;margin:0}input[type=range]::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,#787ba2 0,#e8d8a1 25%,#f1d99c 50%,#bea674 75%,#666c85 100%);border-radius:10px}input[type=range]::-moz-range-track{height:3px;background:linear-gradient(90deg,#787ba2,#e8d8a1 25%,#f1d99c 50%,#bea674 75%,#666c85);border-radius:10px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border:3px solid #f5f2e9;background:#717857;border-radius:50%;margin-top:-5px;box-shadow:0 0 0 1px #8a907b}input[type=range]::-moz-range-thumb{width:8px;height:8px;border:3px solid #f5f2e9;background:#717857;border-radius:50%;box-shadow:0 0 0 1px #8a907b}.time-labels{display:flex;justify-content:space-between;padding:3px 26px 0}.time-labels button{font-size:11px;color:#8a8d81;padding:4px}.time-labels button.selected{color:#48503e}.muted{color:var(--muted)}.small-label{font-size:11px}.material-options{display:flex;gap:22px;margin-top:18px}.material-button{display:flex;align-items:center;gap:9px;font-size:11px;padding:0;min-height:30px;color:#858878}.material-button.selected{color:#363d2e}.swatch{display:block;border-radius:50%;width:26px;height:26px;flex-shrink:0;border:3px solid #f3f2ec;box-shadow:0 0 0 1px transparent;position:relative}.selected .swatch{box-shadow:0 0 0 1px #788465}.swatch-oak{background:repeating-linear-gradient(85deg,#c0a784 0px,#c0a784 2px,#c5ac8b 3px,#ccb69a 5px)}.swatch-black{background:#373b35}.selected .swatch:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:white;text-shadow:0 1px 3px #0008}.material-note{font-size:10px;color:#989b8c;margin-top:12px}.switch{display:block;position:relative;width:36px;height:21px;cursor:pointer;flex-shrink:0}.switch input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer;z-index:1;width:100%;height:100%}.switch-track{display:block;height:100%;border-radius:99px;background:#d4d7cc;transition:background .25s}.switch-track:after{content:'';position:absolute;width:15px;height:15px;top:3px;left:3px;border-radius:50%;background:#fefefb;box-shadow:0 1px 3px #1e331126;transition:transform .25s}.switch input:checked+.switch-track{background:#708160}.switch input:checked+.switch-track:after{transform:translateX(15px)}.switch input:focus-visible+.switch-track{outline:2px solid #708160;outline-offset:4px}.automation-control p{font-size:12px;color:#7f8475;margin:20px 0 12px}.automation-foot{display:flex;gap:7px;align-items:center;font-size:10px;color:#8c9181}.automation-foot svg{width:14px;height:14px}.footer{height:72px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;gap:20px}.views{display:flex;align-items:center;gap:5px}.view-label{font-size:9px;letter-spacing:1.5px;color:#858a7b;margin-right:12px}.view-button{font-size:11px;white-space:nowrap;min-height:34px;padding:8px 11px;border-radius:5px;color:#777d6e}.view-button>span{font-size:9px;margin-right:7px;color:#959b89}.view-button.active{background:#daddd0;color:#3d4533}.view-button:hover{background:#e0e3d8}.quality-status{display:flex;align-items:center;gap:7px;font-size:9px;color:#808775;white-space:nowrap}#quality-dot{width:4px;height:4px;border-radius:50%;background:#8b957a}.footer-credit{font-size:8px;letter-spacing:1.2px;margin-left:23px}.scene-loading{position:absolute;inset:0;display:flex;gap:15px;align-items:center;justify-content:center;z-index:7;background:#e9e7e1;font-size:13px;transition:opacity .5s}.scene-loading.loaded{opacity:0;pointer-events:none}.loader-ring{width:18px;height:18px;border:1px solid #b7bead;border-top-color:#39432f;border-radius:50%;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hotspots{position:absolute;inset:0;pointer-events:none}.hotspot{position:absolute;left:0;top:0;pointer-events:auto;display:flex;align-items:center;gap:8px;padding:8px;white-space:nowrap;opacity:0;transition:opacity .35s;will-change:transform}.hotspot.visible{opacity:1}.hotspot-dot{width:25px;height:25px;display:grid;place-items:center;font-size:19px;font-weight:300;border:1px solid #fff9;border-radius:50%;background:#f4f3e5cc;box-shadow:0 2px 10px #29321b1f;backdrop-filter:blur(8px)}.hotspot-label{font-size:10px;background:#f4f3e5cf;border-radius:3px;padding:7px 10px;backdrop-filter:blur(8px);color:#46513d;box-shadow:0 2px 10px #29321b08}.hotspot:hover .hotspot-dot{background:#485a37;color:white}.automation-overlay{position:absolute;left:4%;bottom:67px;width:275px;background:#243531eb;color:#d7e6db;border:1px solid #749e8944;border-radius:7px;padding:16px 17px;z-index:5;backdrop-filter:blur(20px);box-shadow:0 8px 40px #172e2226}.automation-heading{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:1px;margin-bottom:16px}.automation-heading svg{width:16px;height:16px;color:#add9b6}.simulation-label{font-size:7px;margin-left:auto;border:1px solid #93af9866;padding:4px;letter-spacing:.5px}.zone-status{display:flex;justify-content:space-between;font-size:11px;margin:12px 0}.zone-status span:last-child{color:#8da197}.zone-status span.occupied{color:#c1e9a5}.sensor-state{font-size:10px;border-top:1px solid #80988c44;padding-top:13px;margin-top:14px;color:#9ebaaa}.simulation-button{font-size:10px;display:flex;align-items:center;gap:7px;border:1px solid #91b39b66;background:#57746455;border-radius:4px;width:100%;padding:10px;margin-top:13px}.simulation-button svg{width:15px;height:15px}.simulation-button svg:last-child{margin-left:auto}.simulation-button:hover{background:#57746499}.toast{position:fixed;left:50%;bottom:240px;transform:translate(-50%,12px);padding:12px 18px;background:#303c2eef;color:#f6f5e9;font-size:12px;border-radius:6px;box-shadow:0 5px 25px #1e311322;pointer-events:none;opacity:0;z-index:15;transition:opacity .25s,transform .25s;text-align:center;max-width:90vw}.toast.visible{opacity:1;transform:translate(-50%,0)}.fallback{position:absolute;inset:0;z-index:8;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px}.fallback h2{font:normal 36px/1.1 var(--serif);margin:0 0 20px}.fallback p:not(.eyebrow){max-width:400px;font-size:14px;line-height:1.6}.solid-button{background:#3f4a34;color:white;padding:12px 20px;border-radius:4px;margin-top:10px}.noscript{position:fixed;inset:0;display:grid;place-items:center;background:var(--paper);z-index:100;padding:30px;font-size:20px}body.night .experience{background:radial-gradient(ellipse at 65% 45%,#363d44,#23292f)}body.night .intro{color:#e6e6dc}body.night .intro-copy,body.night .project-specs,body.night .eyebrow>span,body.night .scene-bottom,body.night .scene-caption{color:#b2b8ae}body.night .scene-toolbar{color:#d2dace}body.night .icon-button{background:#2b353644;border-color:#87988a44}.experience{transition:background 1s}.immersive .header,.immersive .intro,.immersive .controls,.immersive .footer,.immersive .scene-bottom,.immersive .scene-caption{display:none}.immersive .experience{height:100svh;min-height:0}.immersive .scene-toolbar{top:24px}.immersive .automation-overlay{bottom:25px}.immersive .toast{bottom:35px}
@media(min-width:1600px){.experience{min-height:560px}.control-block{padding:27px 35px 24px}.footer{height:80px}.experience{height:calc(100svh - 336px)}.intro{top:60px}.intro-copy{font-size:14px}.control-heading{font-size:15px}.material-button,.time-labels button,.automation-control p{font-size:13px}.material-note,.automation-foot{font-size:11px}.scene-caption{font-size:11px}}
@media(max-width:1100px){.brand-descriptor{display:none}.header-center{font-size:10px}.control-block{padding:20px}.material-options{gap:12px;flex-wrap:wrap}.material-button{font-size:10px}.footer-credit{display:none}.header{height:76px}.experience{height:calc(100svh - 300px)}.intro{top:34px}.quality-status{font-size:8px}.view-label{display:none}.view-button{padding:8px 9px}.scene-caption{top:25px}.scene-toolbar{top:65px}}
@media(max-width:760px){.header{height:70px;padding:0 6%}.brand{font-size:34px}.brand-mark{font-size:11px}.header-center{display:none}.text-button{font-size:12px;gap:9px}.experience{height:61svh;min-height:420px;max-height:660px}.intro{left:6%;top:28px}.eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:13px}h1{font-size:35px;letter-spacing:-1.5px}.intro-copy{font-size:11px;margin-top:12px}.project-specs{display:none}.scene-caption{right:6%;top:31px;font-size:8px;gap:6px;letter-spacing:1px}.scene-caption .caption-divider,#live-time{display:none}.scene-toolbar{right:5%;top:65px;gap:6px}.icon-button{height:33px;width:33px}.icon-button svg{width:14px;height:14px}.scene-bottom{bottom:17px;left:6%;right:6%}.orbit-hint{font-size:9px;gap:7px}.scene-number{display:none}.orbit-hint i{margin:0 2px}.orbit-hint svg{width:15px;height:15px}.controls{margin:0 5%;grid-template-columns:1fr 1fr;border-radius:7px}.control-block{padding:18px 17px}.control-heading{font-size:13px}.atmosphere-control{grid-column:1/-1}.control-block.material-control{border-left:none;border-top:1px solid var(--line)}.automation-control{border-top:1px solid var(--line)}.time-slider{margin-top:10px}.time-labels{padding-top:0}.material-options{flex-direction:column;gap:10px;margin-top:15px}.material-button{font-size:11px}.material-note{display:none}.small-label{display:none}.automation-control p{font-size:11px;line-height:1.5;margin:15px 0 12px}.automation-foot{font-size:9px;line-height:1.5;align-items:flex-start}.automation-foot svg{margin-top:1px}.footer{padding:12px 4%;height:auto;display:block}.views{justify-content:space-between;gap:0}.view-button{font-size:10px;padding:10px 8px}.view-button>span{font-size:8px;margin-right:4px}.quality-status{justify-content:center;margin:15px 0 7px;font-size:9px}.footer-credit{display:inline;font-size:7px;margin-left:8px}.automation-overlay{left:6%;bottom:49px;width:245px;padding:13px}.automation-overlay~.hotspots{display:none}.hotspot-label{font-size:9px;padding:6px 8px}.hotspot-dot{width:22px;height:22px;font-size:17px}.toast{bottom:28px}.switch{width:32px;height:19px}.switch-track:after{width:13px;height:13px}.switch input:checked+.switch-track:after{transform:translateX(13px)}.simulation-label{font-size:6px}.simulation-button{font-size:10px}.simulation-button svg:last-child{display:none}}
@media(max-width:360px){h1{font-size:30px}.view-button{padding:9px 5px}.control-block{padding:16px 12px}.control-heading{font-size:12px}.intro-copy{font-size:10px}.experience{min-height:400px}.scene-caption{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-contrast:more){:root{--muted:#484d42}.muted,.material-note,.automation-foot,.project-specs,.intro-copy,.time-labels button,.quality-status{color:#454d3d}.icon-button,.controls{border-color:#626b57}}
/* Readable control labels and comfortable touch targets. */
.brand-descriptor{font-size:10px}.header-center{font-size:12px}.edition{font-size:11px}.text-button{font-size:14px;min-height:44px}.eyebrow{font-size:11px}.intro-copy{font-size:14px}.project-specs{font-size:11px}.scene-caption{font-size:12px}.orbit-hint{font-size:12px}.scene-number{font-size:11px}.control-heading{font-size:15px}.small-label{font-size:12px}output{font-size:14px}.time-labels button{font-size:12px;min-height:30px}.material-options{gap:16px}.material-button{font-size:13px;min-height:36px}.material-note{font-size:12px;margin-top:9px}.automation-control p{font-size:13px}.automation-foot{font-size:12px}.view-label{font-size:11px}.view-button{font-size:13px;min-height:40px}.view-button>span{font-size:11px}.quality-status{font-size:11px}.footer-credit{font-size:10px}.hotspot-label{font-size:12px}.hotspot{min-height:44px}.hotspot-dot{width:28px;height:28px}.automation-overlay{width:300px}.automation-heading{font-size:11px}.simulation-label{font-size:8px}.zone-status{font-size:13px}.sensor-state,.simulation-button{font-size:12px}.simulation-button{min-height:44px}.toast{font-size:14px}.automation-control p{line-height:1.5}.switch{width:40px;height:24px}.switch-track:after{width:18px;height:18px}.switch input:checked+.switch-track:after{transform:translateX(16px)}
@media(min-width:761px){.experience{height:calc(100svh - 334px)}}
@media(max-width:1150px) and (min-width:761px){.material-options{flex-direction:column;gap:0}.material-note{display:none}.quality-status{display:none}.controls{grid-template-columns:1.1fr 1fr 1fr}.control-block{padding:18px}.experience{height:calc(100svh - 334px)}}
@media(max-width:760px){.scene-caption{font-size:10px}.eyebrow{font-size:10px}.intro-copy{font-size:12px}.text-button{font-size:13px}.scene-bottom .orbit-hint{font-size:11px}.control-heading{font-size:14px}.material-button{font-size:12px;min-height:36px}.material-options{gap:7px}.automation-control p{font-size:12px}.automation-foot{font-size:11px}.view-button{font-size:12px;min-height:44px;padding:10px 7px}.view-button>span{font-size:10px}.footer-credit{font-size:9px}.quality-status{font-size:11px}.automation-overlay{width:275px;bottom:48px}.automation-heading{font-size:10px}.zone-status{font-size:12px}.hotspot-label{font-size:11px}.automation-overlay~.hotspots{display:block}.automation-active .hotspots{display:none}.material-options{margin-top:12px}.controls .control-block{min-width:0}.switch{width:36px;height:22px}.switch-track:after{width:16px;height:16px}.switch input:checked+.switch-track:after{transform:translateX(14px)}}
@media(max-width:370px){.view-button>span{display:none}.view-button{font-size:11px}.control-heading{font-size:13px}.material-button{font-size:11px}.automation-foot{font-size:10px}.scene-caption{font-size:9px}}
@media(min-width:761px) and (max-height:780px){.experience{min-height:440px}.intro{top:32px}.intro-copy{margin-bottom:16px}}
@media(hover:none){.icon-button{min-width:40px;min-height:40px}.mini-button{width:30px;height:30px}.time-labels button{min-height:36px}}
/* Secondary labels remain readable on high-density and small displays. */
.brand-descriptor,.edition,.eyebrow,.project-specs,.scene-number,.view-label,.footer-credit,.view-button>span,.quality-status{font-size:12px}.brand-descriptor{max-width:110px;letter-spacing:1px}.view-button{font-size:14px}.material-button{font-size:14px}.time-labels button{font-size:13px}.automation-control p{font-size:14px}.simulation-label{font-size:10px}.control-block{padding-bottom:18px}.controls{min-height:156px}.material-button span:last-child{text-align:left}.footer-credit{letter-spacing:.7px}.header-center{font-size:12px}
@media(max-width:760px){.brand-descriptor{display:none}.eyebrow,.scene-caption,.intro-copy,.orbit-hint,.hotspot-label,.automation-foot,.quality-status,.footer-credit{font-size:12px}.eyebrow{letter-spacing:1px}.scene-caption{font-size:11px}.view-button{font-size:13px;padding:9px 7px}.view-button>span{display:none}.material-button{font-size:13px;line-height:1.3}.automation-control p{font-size:13px}.control-heading label{min-width:0}.control-heading{gap:8px}.simulation-label{font-size:9px}.controls{min-height:0}.scene-caption{letter-spacing:.5px}.scene-bottom .orbit-hint{font-size:10px}.automation-heading{font-size:11px}.time-labels button{font-size:13px}}
