body{background:#f6f1e7}body[data-screen=welcome],body[data-screen=room]{overflow:hidden}.app-header{height:88px;padding:14px 4%;gap:25px}.app-header .brand img{width:168px}.app-header nav{margin-left:auto;order:initial;width:auto;gap:25px}.room-back{font-size:12px;border-bottom:1px solid #b7baa9;margin-left:18px}.app-header a[aria-current=page]{font-weight:bold}.app-screen{min-height:calc(100dvh - 88px)}.app-screen:focus{outline:none}.app-screen>.sectionhead{max-width:1250px;margin-left:auto;margin-right:auto}body[data-screen=welcome] .app-header,body[data-screen=welcome] footer,body[data-screen=room] footer{display:none}body[data-screen=room] .room-back{display:none}.room-screen{height:calc(100dvh - 88px);min-height:0;background:#211c16;position:relative;display:flex;flex-direction:column;padding:0;isolation:isolate}.room-viewport{flex:1;min-height:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#9f8659 #28231b;position:relative;overscroll-behavior-x:contain}.room-art{height:100%;aspect-ratio:3/2;min-width:100%;position:relative;user-select:none}.room-art>img{width:100%;height:100%;object-fit:fill;display:block;pointer-events:none}.room-intro{position:absolute;left:4%;top:24px;pointer-events:none;color:#fff9e8;text-shadow:0 2px 12px #000;background:linear-gradient(90deg,#211b16b8,transparent);padding:12px 40px 14px 14px;max-width:520px}.room-intro h1{font-size:34px;letter-spacing:-1px;margin:8px 0;line-height:1.1}.room-intro p{font-size:12px}.room-intro .eyebrow{font-size:9px}.hotspot{position:absolute;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;background:transparent;color:#fff9e9;transition:background .2s,border .2s}.hotspot span{font-size:12px;font-weight:500;background:#231d16cf;backdrop-filter:blur(6px);padding:6px 12px 6px 6px;border:1px solid #e6d7b899;border-radius:30px;box-shadow:0 4px 14px #0005;white-space:nowrap;display:flex;gap:6px;align-items:center}.hotspot i{font-size:20px;line-height:1;border:1px solid #e4d8bd88;border-radius:50%;width:23px;height:23px;text-align:center;font-style:normal}.hotspot:hover,.hotspot:focus-visible{border-color:#f5e7bc;background:#f6e9ba24;outline:2px solid #e4d8bd;outline-offset:3px}.hotspot:hover span{background:#f4ead6;color:#2c281f}.mantel-spot{left:21%;top:29%;width:20%;height:9%}.light-spot{left:35%;top:9%;width:28%;height:20%}.table-spot{left:33%;top:51%;width:32%;height:37%}.shelf-spot{left:46%;top:30%;width:18%;height:14%}.wall-spot{left:80%;top:28%;width:19%;height:34%}.door-spot{left:64%;top:21%;width:13%;height:43%}.door-spot span{transform:rotate(0)}.room-menu{padding:14px 4% 18px;background:#f2ecdd;color:#2c392d;flex-shrink:0}.room-menu>.eyebrow{display:block;margin-bottom:8px;font-size:8px}.room-menu nav{display:grid;grid-template-columns:repeat(6,1fr);gap:0}.room-menu nav a{font:21px Georgia,serif;border-left:1px solid #d7cdb7;padding:0 16px}.room-menu nav a:first-child{border-left:0;padding-left:0}.room-menu small{font:10px/1.6 Arial,sans-serif;display:block;color:#6c6d61;margin-top:4px}.room-menu a:hover{text-decoration:underline}.pan-hint{position:absolute;bottom:135px;left:50%;transform:translateX(-50%);color:#fff6e4;background:#231d16c9;font-size:10px;padding:6px 13px;border-radius:30px;pointer-events:none}.concept-note{position:absolute;right:12px;bottom:119px;font-size:8px;color:#fffae0aa;pointer-events:none}.entry{position:fixed;inset:0;z-index:20;overflow:hidden;touch-action:pan-y;background:transparent}.entry-door{position:absolute;inset:0;background:#5f3f23 url('assets/welcome-door.png') center/cover no-repeat;box-shadow:0 0 65px #000;will-change:transform;touch-action:pan-y;cursor:grab;user-select:none}.entry-door:active{cursor:grabbing}.entry-door.is-sliding{transition:transform 950ms cubic-bezier(.4,0,.15,1)}.entry-shade{position:absolute;inset:0;background:linear-gradient(0deg,#160f09b8,transparent 45%,#1c130b24)}.entry-mark{position:absolute;top:24%;left:50%;transform:translateX(-50%);text-align:center;width:min(80%,480px);color:#fff5d8;text-shadow:0 2px 8px #1a0e04}.entry-mark>.eyebrow{font-size:9px;letter-spacing:2.5px}.logo-plaque{background:transparent;box-shadow:none;border:0;padding:25px 28px;margin:18px 0 22px;transform:rotate(-1deg)}.logo-plaque img{width:100%;display:block;filter:invert(1);mix-blend-mode:screen;pointer-events:none}.entry-mark p{font:22px/1.4 Georgia,serif;letter-spacing:.3px}.entry-controls{position:absolute;bottom:9%;left:50%;transform:translateX(-50%);color:#fff6e4;text-align:center;width:330px;max-width:90vw}.entry-controls>.eyebrow{letter-spacing:4px;font-size:9px}.entry-controls>div{display:flex;align-items:center;gap:24px;justify-content:center;margin-top:15px}.entry-controls p{font:23px/1.2 Georgia,serif;text-shadow:0 2px 10px #000}.entry-controls small{font:10px/1.9 Arial,sans-serif}.entry-controls button{border:1px solid #f8e5bc8c;color:#fff6e4;background:#20150969;width:48px;height:48px;font-size:24px;border-radius:50%;transition:background .2s}.entry-controls button:hover{background:#f2e4cc;color:#302a21}.entry-controls button:focus-visible{outline:3px solid #fff4c9}.product-heading{max-width:900px;margin-bottom:38px}.product-heading h1{font-size:64px;letter-spacing:-2px;margin:14px 0}.product-heading>p{max-width:570px;color:#68705f;font-size:17px}.product-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:7%;align-items:center}.product-layout figure>img{width:100%;max-height:550px;object-fit:cover}.product-layout figcaption{font-size:10px;color:#6b6c60;margin-top:10px}.product-copy h2{font-size:36px}.product-copy p{font-size:15px;margin:20px 0;color:#66705f}.product-copy ul{padding-left:20px;font-size:14px;line-height:2;color:#45513f;margin-bottom:25px}.product-copy .back-link{display:block;width:fit-content;margin-top:15px;font-size:12px}.product-bottom{margin-top:45px;padding-top:22px;border-top:1px solid #d9d6c9;display:flex;justify-content:space-between;gap:15px;font-size:12px}.dimensions{grid-template-columns:1fr 1.3fr}.dimensions label select{margin-top:7px;padding:12px}.app-screen[hidden],.entry[hidden]{display:none!important}body[data-screen=welcome] .room-screen{height:100dvh}body:not([data-screen=about]) footer{display:none}#small-batch{align-content:center}#about{align-content:center}#workshop,#saved,#product{padding-top:35px}.app-header .brand img{mix-blend-mode:multiply}@media(min-aspect-ratio:17/10){.room-art{aspect-ratio:auto;min-width:100%;width:100%}.room-art>img{object-fit:cover}.entry-door{background-size:100% auto;background-position:center 42%}.entry-mark{top:19%;width:380px}.entry-controls{bottom:6%}}@media(max-width:800px){.app-header{height:76px;padding:10px 4%;gap:14px;flex-wrap:nowrap}.app-header .brand img{width:120px}.app-header nav{width:auto;gap:12px;order:initial;font-size:10px}.app-header nav a:last-child{display:none}.room-back{font-size:10px;margin:0;white-space:nowrap}.app-header .brand{flex-shrink:0}.app-screen{min-height:calc(100dvh - 76px)}.room-screen{height:calc(100dvh - 76px)}.room-intro{top:15px;left:15px;padding:10px 30px 12px 10px;max-width:300px}.room-intro h1{font-size:27px;letter-spacing:-.8px}.room-intro .eyebrow{font-size:7px;letter-spacing:1.3px}.room-intro p{font-size:11px}.room-menu{padding:12px 4% 18px}.room-menu nav{grid-template-columns:repeat(3,1fr);gap:14px 0}.room-menu nav a{font-size:18px;padding:0 10px}.room-menu nav a:nth-child(4){border-left:0;padding-left:0}.room-menu small{font-size:8px;line-height:1.4}.room-menu>.eyebrow{margin-bottom:13px}.pan-hint{bottom:190px;font-size:9px;white-space:nowrap}.concept-note{bottom:170px;font-size:7px}.hotspot span{font-size:11px}.room-art{min-width:0}.entry-mark{top:26%;width:78%;max-width:400px}.logo-plaque{padding:22px;margin:15px 0 20px}.entry-mark>.eyebrow{font-size:7px;letter-spacing:1.7px}.entry-mark p{font-size:20px}.entry-controls{bottom:12%}.product-heading h1{font-size:48px}.product-heading>p{font-size:15px}.product-layout{grid-template-columns:1fr;gap:25px}.product-layout figure>img{max-height:360px}.product-copy h2{font-size:31px}.product-bottom{flex-direction:column}.dimensions{grid-template-columns:1fr 1.4fr}.story{padding-top:35px}.room-back+nav{gap:12px}body:not([data-screen=room]):not([data-screen=welcome]) .app-header nav a:first-child{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.entry-door.is-sliding{transition:none}.hotspot{transition:none}}
.room-intro h1:focus,.app-screen h1:focus,.app-screen h2:focus{outline:none}.light-spot span{transform:translateY(26px)}
@media(max-width:800px){.room-intro{max-width:none;right:15px;left:15px;top:10px;padding:8px 15px 10px 10px;background:linear-gradient(90deg,#211b16b8,transparent 85%)}.room-intro h1{font-size:22px;margin:5px 0}.room-intro p{display:none}body[data-screen=room] .app-header nav a:last-child{display:inline}.app-header nav{gap:11px;font-size:9px}.app-header .brand img{width:115px}.light-spot span{transform:translateY(38px)}}
body[data-screen=welcome] .app-header{display:flex}body[data-screen=welcome] .room-screen{height:calc(100dvh - 88px)}
@media(max-width:800px){body[data-screen=welcome] .room-screen{height:calc(100dvh - 76px)}}
.owner-link{font-size:10px!important}.draft-preview{position:fixed;z-index:50;bottom:0;left:0;right:0;background:#f5cc6c;color:#34280e;text-align:center;padding:9px;font-size:11px}.draft-preview a{text-decoration:underline;margin-left:15px}.batch-listings{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:25px;margin-top:35px}.batch-card{padding:20px;background:#fffdf5;border:1px solid #d7d6c9}.batch-card>img{width:100%;height:240px;object-fit:cover}.batch-card h3{margin-top:15px}.batch-card strong{font:28px Georgia,serif}.shelf-config{margin-top:50px;border-top:1px solid #d7d6c9;padding-top:30px}.shelf-config .estimate strong{display:block;font-size:27px;margin:15px 0}.shelf-config #shelfBreakdown{font-size:12px;color:#66705f}.shelf-config #shelfInquiry{margin-top:20px}.entry-mark p{white-space:normal}@media(max-width:800px){.app-header .owner-link{display:none}.draft-preview{font-size:9px}.shelf-config .config{grid-template-columns:1fr}}
.shelf-reference{margin-top:18px;font-size:12px;color:#52604a}.shelf-reference summary{cursor:pointer;padding:10px 0}.shelf-reference img{width:100%;max-height:500px;object-fit:contain;background:#e9e5dc}.shelf-reference p{font-size:11px;margin-top:10px}

.shelf-mounting{margin:0 0 22px;padding:14px 16px;background:#eee8dd;border:1px solid #d6cbbb;border-radius:8px}.shelf-mounting summary{cursor:pointer;font-weight:600}.shelf-mounting p{font-size:14px;line-height:1.6}.shelf-mount-diagram{max-width:560px;margin:12px auto}.shelf-mount-diagram svg{display:block;width:100%;height:auto}.shelf-bracket-photo img{display:block;width:100%;height:auto;margin-top:12px;border-radius:5px}

.room-menu-toggle{display:none}
@media(orientation:landscape) and (max-height:600px){
 body[data-screen=room] .app-header{height:52px;padding:7px 4%}body[data-screen=room] .app-header .brand img{width:105px}
 body[data-screen=room] .room-screen{height:calc(100dvh - 52px);min-height:0}
 .room-screen .room-menu-toggle{display:block;position:absolute;z-index:5;bottom:0;left:50%;transform:translateX(-50%);border:1px solid #cfc2a5;border-bottom:0;border-radius:10px 10px 0 0;background:#f2ecdd;color:#2c392d;padding:8px 22px;font-size:11px;min-height:34px;touch-action:none;cursor:pointer}
 .room-screen .room-menu{position:absolute;z-index:4;bottom:34px;left:0;right:0;max-height:55dvh;overflow-y:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;transform:translateY(110%);transition:transform .22s ease,opacity .22s ease,visibility .22s;padding:12px 4%}
 .room-screen.menu-open .room-menu{visibility:visible;opacity:1;transform:translateY(0)}
 .room-screen .room-menu nav{grid-template-columns:repeat(3,1fr);gap:12px 0}.room-screen .room-menu nav a{font-size:17px}.room-screen .room-menu nav a:nth-child(4){border-left:0;padding-left:0}.room-screen .room-menu small{font-size:9px}
 .room-screen .pan-hint{bottom:43px;font-size:9px}.room-screen .concept-note{bottom:8px}.room-screen .room-intro{top:8px;left:12px;padding:6px 20px 8px 10px}.room-screen .room-intro h1{font-size:20px;margin:4px 0}.room-screen .room-intro p{display:none}.room-screen .room-intro .eyebrow{font-size:7px}
 .room-screen .room-art{height:100%;width:auto;min-width:0;aspect-ratio:3/2;margin:auto}.room-screen .room-art>img{object-fit:fill}.room-screen .hotspot span{font-size:10px;padding:4px 8px 4px 4px}.room-screen .light-spot span{transform:translateY(12px)}
}
@media(prefers-reduced-motion:reduce){.room-screen .room-menu{transition:none}}
.table-config{margin:20px 0 45px}.table-config-head{margin-bottom:28px}.table-config-head h2{font:42px/1.1 Georgia,serif;color:#233e31;margin:12px 0}.table-config-head p{color:#68705f;font-size:14px}.table-config .config{align-items:start}.table-visual model-viewer{height:460px;width:100%;background:#e9e5db;border-radius:5px}.table-visual #tableStatus{font-size:12px;color:#52604a;margin:12px 0}.table-bases{padding:0;border:0;margin:0 0 26px}.table-bases legend{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px}.table-bases label{display:flex;gap:12px;border:1px solid #d7cebb;padding:13px 15px;margin-bottom:8px;cursor:pointer;background:#fffdf7}.table-bases label:has(input:checked){border-color:#3d5b45;background:#e7ebdf}.table-bases input{width:17px;height:17px;margin-top:2px;accent-color:#233e31}.table-bases span{font:19px Georgia,serif}.table-bases small{display:block;font:11px/1.5 Arial,sans-serif;color:#6b7063;margin-top:5px}.table-dimensions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.table-config #tableFinish{margin:7px 0 24px;width:100%}.table-config .estimate strong{display:block;font:34px Georgia,serif;margin:14px 0}.table-config #tableBreakdown{font-size:12px;line-height:1.7;color:#58614f}.table-config #tableBreakdown p{margin:5px 0}.table-config #tableFeedback{font-size:12px;color:#4c5b43}.table-gallery{margin-top:18px;border-top:1px solid #d7cebb;padding:14px 0}.table-gallery summary{cursor:pointer;font-size:12px}.table-gallery img{width:100%;height:auto;display:block;margin-top:15px}.table-gallery figcaption{font-size:11px;line-height:1.5;color:#68705f;margin:8px 0 20px}body[data-screen=tables] .product-layout[hidden]{display:none}@media(max-width:800px){.table-config .config{grid-template-columns:1fr}.table-visual model-viewer{height:340px}.table-config-head h2{font-size:33px}.table-dimensions{gap:8px}.table-dimensions label{font-size:11px}.table-dimensions input{padding:10px 8px}}

.table-config #tableBreakdown{display:block}.table-config #tableBreakdown p{display:block}.table-config .table-config-head p{max-width:820px;line-height:1.7}

.shelf-mount-diagram img{display:block;width:100%;height:auto;border-radius:6px}
.door-config .config{align-items:start}.door-visual model-viewer{width:100%;height:650px;max-height:78dvh;background:#eae5da;border-radius:8px}.door-config .step{margin-top:20px}.door-config form>label{margin-bottom:18px}.door-config .estimate p{line-height:1.6}@media(max-width:760px){.door-visual model-viewer{height:530px;max-height:70dvh}}

.door-view-controls{display:flex;gap:8px;justify-content:center;margin:12px 0}.door-view-controls button[aria-pressed="true"]{background:#294738;color:#fff;border-color:#294738}
.door-config .dimensions{grid-template-columns:repeat(2,1fr)}.door-config .estimate strong{display:block;font:34px Georgia,serif;margin:14px 0}.door-config #doorBreakdown{display:block;font-size:12px;line-height:1.7;color:#58614f}.door-config #doorBreakdown p{display:block;margin:5px 0}

.door-grip{width:24px;height:62px;padding:0;border:1px solid #f8f0d780;border-radius:12px;background:#18241a44;color:#fff9df;cursor:ew-resize;touch-action:none;pointer-events:auto;font-size:16px}.door-grip:not([data-visible]){opacity:0;pointer-events:none}.door-grip:focus-visible,.door-grip:hover{background:#223b2bd9;outline:2px solid #fff2c5}.door-slide-axis{opacity:0;pointer-events:none}.door-grip[hidden]{display:none}.door-slide-hint{max-width:46ch}



/* Cladding is a fixed elevation, rather than an orbiting object. */
body[data-screen="cladding"] .product-layout{display:none}
.cladding-config{margin-top:2rem}.cladding-config .config{grid-template-columns:minmax(240px,1fr) minmax(300px,1fr);align-items:start;gap:clamp(2rem,5vw,5rem)}.cladding-visual{position:sticky;top:1.5rem;min-width:0}.cladding-wall{position:relative;width:min(100%,43.75vh);margin:0 auto;overflow:hidden;border:1px solid #75624b;background:#584b3b;box-shadow:0 16px 30px #3e34251c}.cladding-wall canvas{width:100%;height:100%;display:block;pointer-events:none}.cladding-scale{position:absolute;bottom:.7rem;left:50%;transform:translateX(-50%);background:#f6f1e7e8;color:#253d2e;padding:.4rem .7rem;white-space:nowrap;font-size:.75rem;letter-spacing:.05em}.cladding-visual .caption,.cladding-visual [role="status"]{max-width:44ch;margin:1rem auto}.cladding-config .dimensions{grid-template-columns:1fr 1fr}.cladding-materials{margin:0 0 1.4rem;padding:0;border:0}.cladding-materials legend{font-size:.85rem;margin-bottom:.7rem}.cladding-materials label{display:flex;align-items:center;gap:.65rem;padding:.7rem .8rem;border:1px solid #b6b0a0;margin:.4rem 0;cursor:pointer}.cladding-materials label:has(input:checked){border-color:#294b38;background:#e7e9dd}.cladding-materials input{width:17px;height:17px;accent-color:#294b38;margin:0}.cladding-swatch{display:block;width:27px;height:27px;border:1px solid #786d58;flex:none}.cladding-swatch.brown{background:#886847}.cladding-swatch.gray{background:#99978b}.cladding-swatch.red{background:#8b3c32}.cladding-config #claddingBreakdown{display:block}.cladding-config #claddingBreakdown p{font-size:.85rem;margin:.45rem 0}.cladding-config [hidden]{display:none!important}
@media(max-width:700px){.cladding-config .config{grid-template-columns:1fr;gap:1.5rem}.cladding-visual{position:static}.cladding-wall{width:min(100%,43.75svh)}.cladding-config .table-config-head{margin-bottom:1.5rem}}
.cladding-config .estimate{display:block}.cladding-config .estimate>strong,.cladding-config .estimate>.eyebrow{display:block}.cladding-coverage{padding:.75rem 0;border-top:1px solid #c7c0ae}.cladding-coverage output{font-weight:600}
.cladding-openings{border:1px solid #c7c0ae;padding:1rem;margin:1rem 0}.cladding-openings legend{font-family:Georgia,serif;font-size:1.1rem}.cladding-cutout{border-bottom:1px solid #c7c0ae;margin-bottom:1rem;padding-bottom:1rem}.cladding-cutout .dimensions{margin:.6rem 0}.cladding-ar{border-top:1px solid #c7c0ae;margin-top:1.5rem;padding-top:1rem}.cladding-ar model-viewer{width:100%;height:380px;background:#dedbd1;touch-action:pan-y}.cladding-visual:has(#claddingARViewer:not([hidden])){position:static}.cladding-ar .button{width:100%}
.cladding-trace canvas{display:block;width:100%;height:auto;background:#e0dacb;border:1px solid #837660;touch-action:none;cursor:crosshair}.cladding-trace .actions{flex-wrap:wrap;margin:1rem 0}.cladding-cutout summary{cursor:pointer;margin-bottom:.6rem;font-size:.85rem}.cladding-trace input[type=file]{width:100%;font-size:.8rem}
.trace-tools{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:.7rem 0}.trace-tools button{font:inherit;font-size:.8rem;padding:.65rem .7rem;min-height:44px;border:1px solid #9c9f8a;background:#f8f5eb;color:#214331;cursor:pointer}.trace-tools button[aria-pressed=true]{background:#244432;color:#fff}.trace-tools button:disabled{opacity:.45;cursor:default}.trace-tools output{min-width:4em;text-align:center;font-size:.85rem}.cladding-trace canvas{aspect-ratio:4/3}.cladding-trace #claddingTraceHint{font-size:.85rem;min-height:3em}

.cladding-photo-preview{border-top:1px solid #c7c0ae;margin-top:1.5rem;padding-top:1rem}.cladding-photo-preview canvas{width:100%;height:auto;display:block;border:1px solid #9c9587}.cladding-photo-preview input[type=range]{width:100%;accent-color:#254d35}.cladding-visual:has(.cladding-photo-preview #claddingPhotoResult:not([hidden])){position:static}

.floor-spot{left:64%;top:81%;width:14%;height:12%}.beam-spot{left:62%;top:2%;width:14%;height:13%}.stairs-spot{left:1%;top:24%;width:18%;height:58%}.door-placement-model{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.room-menu nav{grid-template-columns:repeat(3,1fr);gap:12px 0}.room-menu nav a:nth-child(3n+1){border-left:0;padding-left:0}.room-menu nav a:nth-child(4){border-left:0}.room-menu nav a{font-size:18px}.room-menu{max-height:42vh;overflow:auto}

/* Blend the white entrance mark directly into the door grain. */
.entry-mark{mix-blend-mode:screen}
