@font-face{font-family:Manrope;src:url('./assets/Manrope-Regular.ttf');font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url('./assets/Manrope-Bold.ttf');font-weight:700;font-display:swap}@font-face{font-family:Orbitron;src:url('./assets/Orbitron.ttf');font-weight:700;font-display:swap}
:root{--ink:#f0f3e9;--muted:#9fa99b;--accent:#c6f064;--line:#293226;--bg:#0b100b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,sans-serif;-webkit-font-smoothing:antialiased}button,a,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:4px}button{color:inherit}h1,p{margin:0}.topbar{height:88px;max-width:1500px;padding:0 54px;display:flex;align-items:center;justify-content:space-between;margin:auto;border-bottom:1px solid var(--line)}.brand{font-family:Orbitron,sans-serif;font-size:15px;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}.brand span{color:#66755e;margin:0 9px}.tag{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.14em;color:var(--muted)}.tag i{width:5px;height:5px;border-radius:50%;background:var(--accent)}.configurator{max-width:1500px;display:grid;grid-template-columns:350px minmax(0,1fr);gap:55px;padding:52px 54px 28px;margin:auto}.panel{padding-top:16px}.eyebrow{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:17px}h1{font-weight:700;font-size:40px;line-height:1.14;letter-spacing:-.045em}.lead{color:var(--muted);font-size:13px;line-height:1.75;margin-top:20px;margin-bottom:34px}fieldset{border:0;padding:0;margin:0 0 25px;min-width:0}legend{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;margin-bottom:11px;color:var(--muted)}.segmented{display:flex;padding:4px;border:1px solid var(--line);border-radius:9px;gap:3px;background:#10170f}.segmented button{flex:1;padding:12px 8px;border:0;border-radius:6px;background:transparent;font-size:12px;font-weight:700;color:var(--muted);transition:background .2s,color .2s}.segmented button[aria-pressed=true]{background:var(--accent);color:#142009}.finishes{display:flex;flex-direction:column;gap:6px}.finish{border:1px solid var(--line);border-radius:7px;background:#10170f;padding:9px 12px;display:grid;grid-template-columns:34px 1fr 16px;align-items:center;gap:13px;text-align:left;font-size:12px;transition:border-color .2s}.finish[aria-pressed=true]{border-color:#91b348;background:#18220f}.finish b{color:var(--accent);font-size:13px;opacity:0}.finish[aria-pressed=true] b{opacity:1}.swatch{width:34px;height:34px;border-radius:50%;background-size:800% 100%;border:1px solid #ffffff25;box-shadow:inset 0 0 0 1px #0003}.swatch.oak{background-image:url('./assets/wood-oak.jpg')}.swatch.dark{background-image:url('./assets/wood-dark.jpg')}.swatch.light{background-image:url('./assets/wood-light.jpg')}.toggles{display:grid;gap:18px;margin:7px 0 27px}.toggles label{display:flex;justify-content:space-between;align-items:center;position:relative;font-size:12px;color:#bac3b4;cursor:pointer}.toggles input{position:absolute;opacity:0;right:0}.switch{height:20px;width:35px;border-radius:15px;background:#34402c;position:relative;transition:background .2s}.switch:after{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#adbba2;transition:transform .2s}.toggles input:checked+.switch{background:#91b348}.toggles input:checked+.switch:after{background:#f3ffdd;transform:translateX(15px)}.download{width:100%;display:flex;justify-content:space-between;border:1px solid #546542;border-radius:7px;background:transparent;padding:15px 13px;font-size:12px}.download span:last-child{color:var(--accent);font-size:11px}.download:disabled{opacity:.4;cursor:wait}.note{margin-top:12px;font-size:9px;line-height:1.7;color:#75826c;max-width:320px}
.stage{position:relative;min-width:0;min-height:780px;border:1px solid #263120;border-radius:12px;background:radial-gradient(ellipse at 50% 43%,#213223 0%,#121c13 50%,#0c130d 85%);overflow:hidden}.stage-top{position:absolute;z-index:2;left:25px;right:20px;top:19px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.stage-top>span{font-size:9px;letter-spacing:.11em;color:#9daa91}.stage-top button{pointer-events:auto;border:1px solid #46503a66;border-radius:5px;background:#13201088;width:30px;height:30px;font-size:20px;color:#becbb4}.stage:fullscreen{width:100%;height:100%;border-radius:0}#viewport{width:100%;height:100%;position:absolute;inset:0;cursor:grab;touch-action:none}#viewport:active{cursor:grabbing}#viewport canvas{display:block;width:100%;height:100%;outline:none}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;color:var(--muted);z-index:3}.spinner{height:16px;width:16px;border-radius:50%;border:1px solid #4e5d3e;border-top-color:var(--accent);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.view-controls{position:absolute;bottom:54px;left:50%;transform:translateX(-50%);display:flex;gap:3px;border:1px solid #40513280;background:#0c150cce;backdrop-filter:blur(10px);border-radius:7px;padding:4px;white-space:nowrap}.view-controls button{border:0;background:transparent;border-radius:4px;font-size:10px;padding:9px 13px;color:#b3c0a7}.view-controls button.active{background:#304023;color:#e2eecf}.gesture-hint{position:absolute;bottom:25px;left:0;right:0;display:flex;justify-content:center;gap:23px;color:#6f8065;font-size:9px;pointer-events:none}.page-note{max-width:1500px;margin:auto;padding:0 54px 30px;color:#66725c;font-size:9px}.stage.night{background:radial-gradient(ellipse at 50% 43%,#102019,#080f0a 65%)}
body.embed .topbar,body.embed .intro,body.embed .page-note{display:none}body.embed .configurator{padding:18px;gap:24px;grid-template-columns:270px minmax(0,1fr);height:100vh;max-width:none}body.embed .stage{min-height:550px}body.embed .panel{display:flex;flex-direction:column;justify-content:center}body.model-only .panel{display:none}body.model-only .configurator{display:block;padding:0}body.model-only .stage{height:100vh;border:0;border-radius:0}
@media(min-width:1550px){.stage{min-height:880px}}
@media(max-width:1050px){.topbar{padding:0 28px;height:72px}.configurator{grid-template-columns:285px minmax(0,1fr);gap:28px;padding:28px}.panel h1{font-size:34px}.stage{min-height:790px}.stage-top{left:15px;right:15px}.view-controls button{padding:9px 9px}.gesture-hint{font-size:8px;gap:14px}.page-note{padding-inline:28px}}
@media(max-width:740px){.topbar{height:66px;padding-inline:18px}.brand{font-size:11px}.brand span{margin:0 3px}.tag{font-size:8px;letter-spacing:.06em}.configurator,body.embed .configurator{display:flex;flex-direction:column;gap:24px;padding:18px;height:auto}.stage,body.embed .stage{order:-1;min-height:570px;height:570px;flex:none}.panel{padding-top:0}.intro h1 br{display:none}.intro h1{font-size:32px}.intro .lead{margin:12px 0 25px;font-size:12px}.intro .lead br{display:none}.eyebrow{margin-bottom:10px}.finishes{flex-direction:row}.finish{display:flex;flex:1;flex-direction:column;gap:8px;padding:12px 3px;position:relative;font-size:10px}.finish b{position:absolute;right:7px;top:5px}.swatch{height:33px;width:33px}fieldset{margin-bottom:22px}.toggles{grid-template-columns:1fr 1fr;column-gap:25px}.note{max-width:none}.page-note{padding:0 18px 20px;font-size:8px}.view-controls button{padding:9px 10px}.stage-top{top:14px}body.model-only .stage{min-height:100vh;height:100vh}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Keep camera content clear of the toolbar and view controls. */
#viewport{inset:48px 0 86px;height:calc(100% - 134px)}
.view-controls{bottom:37px}.gesture-hint{bottom:17px}
.swatch{background-size:1600% 100%}
.poster{position:absolute;inset:48px 0 86px;display:flex;align-items:center;justify-content:center;pointer-events:none}.poster img{width:100%;height:100%;object-fit:contain}.stage.live .poster{display:none}.fallback-active #viewport canvas{display:none}.fallback-active #viewport{pointer-events:none}.fallback-active .gesture-hint{display:none}.page-note a{color:#a9c183;margin-left:12px}.page-note #render-status{margin-top:12px;font-size:12px;color:#bac8b3}.page-note button{margin-top:10px;border:1px solid #536743;color:#e8efdf;background:#152012;border-radius:5px;padding:8px 12px}button:disabled{cursor:not-allowed;opacity:.4}#loading[hidden]{display:none}
