@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{font-family:"DM Sans",sans-serif;color:#efe9dd;background:#101923;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #ebba72;outline-offset:5px}.skip{position:absolute;left:-9999px;z-index:10}.skip:focus{left:12px;top:12px;background:#fff;color:#151515;padding:12px}
.topbar{height:80px;padding:0 max(5vw,24px);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff22;letter-spacing:.18em;font-size:11px;font-weight:700}.brand{display:flex;gap:14px;align-items:center}.brand-mark{color:#f1bd79;font-size:28px;font-weight:400}.edition{color:#9ba6a7}.edition span{color:#bd7f63;padding:0 8px}
.intro{min-height:650px;display:grid;grid-template-columns:1.08fr .92fr;padding:90px max(7vw,26px) 115px;gap:35px;max-width:1550px;margin:auto;align-items:center}.eyebrow{font-size:11px;letter-spacing:.23em;color:#d8a570;font-weight:700}.spark{display:inline-block;width:7px;height:7px;background:#e9ae71;border-radius:50%;margin-right:9px;box-shadow:0 0 16px #eaa969}.rule{display:inline-block;width:24px;border-top:1px solid #a88d73;margin:0 10px 3px}
h1,h2{font-family:"DM Serif Display",Georgia,serif;font-weight:400;letter-spacing:-.035em}h1{font-size:clamp(66px,7.4vw,122px);line-height:.96;margin:35px 0}h1 em,h2 em{color:#e2aa73;font-weight:400}.intro p{font-size:19px;line-height:1.75;color:#b9bfc1;max-width:510px}.enter{display:inline-flex;align-items:center;gap:65px;background:#e5b477;color:#1e2221;padding:19px 22px;margin:32px 0 22px;font-weight:700}.enter:hover{background:#f5c894}.quiet{display:block;color:#879394;font-size:12px}.portal{height:520px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.portal:before{content:"";position:absolute;width:80%;height:80%;border-radius:50%;background:radial-gradient(circle,#b36c2935,transparent 65%);filter:blur(30px)}.portal-arch{width:min(340px,80%);height:430px;border:17px solid #29323a;border-bottom:0;border-radius:180px 180px 0 0;background:linear-gradient(90deg,#161e27 0%,#222b32 80%);box-shadow:0 15px 75px #000b, inset 0 0 0 5px #435057;position:relative;overflow:hidden}.portal-arch:before{content:"";position:absolute;inset:14px;border:1px solid #c7935a4d;border-radius:150px 150px 0 0}.glow{position:absolute;inset:20% 0 0 20%;background:radial-gradient(ellipse at 50% 75%,#e1a75a75,transparent 63%);filter:blur(25px)}.portal-door{position:absolute;bottom:0;left:25%;height:76%;width:71%;border:8px solid #5f5146;background:linear-gradient(110deg,#7e5a3e,#2b292a 65%);box-shadow:-15px 0 30px #0007}.portal-door:after{content:"";position:absolute;inset:25px;border:1px solid #b1815366}.knob{position:absolute;left:15%;top:57%;width:10px;height:10px;background:#f7d49b;border-radius:50%;box-shadow:0 0 18px #e5aa62;z-index:1}.portal-caption{color:#8d9a9b;font-size:11px;letter-spacing:.25em;margin-top:25px}
.experience{background:#eae4d7;color:#212c31;padding:105px max(7vw,26px) 75px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;max-width:1360px;margin:0 auto 40px}.section-heading .eyebrow,.journal .eyebrow{color:#a86c42}.section-heading h2,.journal h2{font-size:clamp(40px,4vw,64px);margin:13px 0}.section-heading p,.journal p{color:#697273;margin:0;font-size:16px}.counter{text-align:right;white-space:nowrap}.counter strong{font:42px "DM Serif Display",serif;display:block}.counter span{font-size:10px;letter-spacing:.17em}
.scene{--warmth:0;max-width:1360px;height:560px;position:relative;margin:auto;overflow:hidden;border-radius:5px;background:radial-gradient(ellipse at 57% 66%,rgba(222,155,78,calc(.07 + var(--warmth)*.34)),transparent 45%),linear-gradient(180deg,#24323c,#17252d 72%,#131d23);box-shadow:0 30px 65px #17232c3d}.scene:before{content:"";position:absolute;inset:0;opacity:.12;background:repeating-linear-gradient(90deg,transparent 0 100px,#d9bc8a 101px 102px)}.scene-floor{position:absolute;bottom:0;width:100%;height:26%;background:linear-gradient(#5b4839,#342d2c);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);border-top:7px solid #8d624a}.window{position:absolute;left:11%;top:10%;width:21%;height:48%;border:15px solid #705643;background:linear-gradient(#0d1a2a,#30415a);box-shadow:inset 0 0 0 4px #9c7250,0 20px 35px #0009}.window:after{content:"";position:absolute;left:46%;top:0;bottom:0;border-left:7px solid #725b4b}.moon{position:absolute;right:17%;top:16%;width:50px;height:50px;background:#e7d3a0;border-radius:50%;box-shadow:0 0 40px #d9c59c}.shelf{position:absolute;left:38%;right:8%;top:59%;height:14px;background:#8e6446;box-shadow:0 9px 0 #3b2a26,0 75px 0 15px #705039}.lamp{position:absolute;right:10%;top:38%;width:70px;height:160px;filter:drop-shadow(0 0 calc(var(--warmth)*18px) #eab76c)}.shade{position:absolute;top:0;left:4px;border-left:29px solid transparent;border-right:29px solid transparent;border-bottom:0;border-top:55px solid #e4ad66}.stem{position:absolute;top:49px;left:33px;width:5px;height:90px;background:#9e7951}.base{position:absolute;top:137px;left:15px;width:42px;height:7px;background:#aa8252;border-radius:50%}
.object{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;gap:9px;border:1px solid #f3d4aa77;background:#12202bc9;color:#f9e7ce;padding:11px 14px;min-width:118px;box-shadow:0 7px 20px #0006;transition:transform .2s,background .2s}.object:hover{transform:translateY(-7px);background:#533f31}.object.found{border-color:#f6c88d;background:#574736}.object-icon{font-family:Georgia,serif;font-size:34px;line-height:1}.object span:last-child{font-size:11px;letter-spacing:.08em}.photograph{left:42%;top:14%}.letter{left:48%;top:66%}.radio{left:67%;top:43%}.clock{left:26%;top:43%}.frame{left:8%;top:66%}.room-bottom{display:flex;justify-content:space-between;max-width:1360px;margin:22px auto 0;color:#8c8175;font-size:11px;letter-spacing:.16em}.room-bottom button{border:0;background:transparent;color:#664b3b;text-decoration:underline}
.journal{background:#f4efe5;color:#29343a;display:grid;grid-template-columns:.7fr 1.3fr;gap:55px;padding:100px max(7vw,26px)}.journal>div{max-width:420px}.journal ol{margin:0;padding:0;list-style:none;display:grid;gap:12px}.journal li{background:#fffdf8;border:1px solid #e4d9c9;padding:17px 22px;display:flex;gap:20px;align-items:baseline;line-height:1.55}.journal li strong{min-width:145px}.journal li span{color:#586365}.journal li.empty{color:#8c9290;font-style:italic}.journal li.ending{background:#ecd3b3;color:#3b3128}
.outro{text-align:center;padding:110px 24px 120px;max-width:850px;margin:auto}.outro h2{font-size:clamp(45px,6vw,82px);line-height:1.08;margin:20px 0}.outro p{color:#abb6b7;max-width:590px;margin:0 auto 32px;line-height:1.7}.outro a{color:#edbd82;text-decoration:underline}footer{border-top:1px solid #ffffff20;padding:32px max(5vw,24px);display:flex;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:.14em;color:#aab4b2}
dialog{border:0;padding:0;width:min(610px,calc(100vw - 30px));max-height:90vh;background:#f5eee1;color:#252f34;box-shadow:0 30px 80px #0008}dialog::backdrop{background:#07121ddb;backdrop-filter:blur(5px)}.dialog-inner{padding:43px;position:relative}.close{position:absolute;right:22px;top:15px;border:0;background:none;font-size:32px;color:#4b5354}.dialog-inner .eyebrow{color:#9c643c}.dialog-inner h2{font-size:50px;margin:12px 0}.dialog-lede{font-size:17px;line-height:1.65;color:#535f60}#sources article{border-top:1px solid #cfbea7;padding:22px 0}.source-label{font-size:10px;letter-spacing:.17em;color:#90643f;font-weight:700}blockquote{font:19px/1.65 "DM Serif Display",Georgia,serif;margin:14px 0}.dialog-actions{display:flex;justify-content:flex-end}.dialog-actions button{background:#25333a;color:#fff;border:0;padding:15px}
@media(max-width:800px){.edition{display:none}.intro{grid-template-columns:1fr;padding-top:65px;padding-bottom:60px}.portal{height:290px}.portal-arch{height:265px;width:205px;border-width:11px}.portal-caption{font-size:9px}.section-heading,.journal{display:block}.counter{text-align:left;margin-top:25px}.scene{height:510px}.object{min-width:90px;padding:9px 6px}.object span:last-child{font-size:9px}.object-icon{font-size:27px}.photograph{left:37%;top:10%}.letter{left:43%;top:68%}.radio{left:68%;top:45%}.clock{left:10%;top:42%}.frame{left:8%;top:70%}.journal ol{margin-top:32px}.journal li{display:block}.journal li strong{display:block;margin-bottom:7px}footer{flex-wrap:wrap}.room-bottom{line-height:1.6}}
@media(max-width:450px){.scene{height:470px}.window{left:8%;width:35%}.shelf{left:30%;right:6%}.object{min-width:78px}.radio{left:70%;top:46%}.clock{left:5%}.letter{left:39%}.frame{left:4%}.dialog-inner{padding:35px 23px}.dialog-inner h2{font-size:40px}blockquote{font-size:17px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.ask{padding:100px max(7vw,26px);background:#202c33;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.ask h2{font-size:clamp(40px,4vw,62px);margin:18px 0}.ask p{line-height:1.7;color:#b8c2c2}.ask-intro{max-width:510px}.ask-panel{background:#f4eee4;color:#26343a;padding:34px;max-width:720px;width:100%}.ask-panel form{display:grid;gap:15px}.ask-panel label:not(.consent){font-size:11px;letter-spacing:.17em;font-weight:700}.ask-panel textarea{font:17px/1.5 "DM Sans",sans-serif;width:100%;resize:vertical;padding:16px;background:#fffcf7;border:1px solid #bba991;color:#1d292e}.consent{font-size:13px;line-height:1.55;display:flex;align-items:flex-start;gap:10px}.consent input{margin-top:4px}.ask-panel button{border:0;padding:15px;background:#aa744d;color:white;font-weight:700;justify-self:start}.ask-panel button:disabled{opacity:.5;cursor:wait}#answer{border-top:1px solid #d3c6b6;margin-top:28px;padding-top:20px}#answer p{color:#465355;margin:10px 0}#answer strong,#answer cite{font-size:11px;letter-spacing:.12em;color:#8e603f;font-style:normal}#answer blockquote{margin:14px 0;padding:12px 15px;background:#fffaf1;border-left:3px solid #d6a06b;font:16px/1.6 Georgia,serif}#answer blockquote cite{display:block;margin-bottom:5px}#answer small{color:#697271;line-height:1.5;display:block}@media(max-width:800px){.ask{display:block}.ask-panel{margin-top:35px;padding:24px}}
.room-nav{display:flex;gap:28px;letter-spacing:.08em;font-size:12px;color:#e4b378}.room-nav a:hover{text-decoration:underline}.room-intro{text-align:center;padding:60px 24px 0}.room-intro p{font:clamp(20px,2vw,29px)/1.4 "DM Serif Display",Georgia,serif;margin:14px auto 0;color:#ede3d5}.room-intro+.experience{padding-top:65px}.home-preview .scene{pointer-events:none;height:390px}.home-preview .object{transform:scale(.86)}.home-preview .object:hover{transform:scale(.86)}.preview-link{margin:0;white-space:nowrap}.object-list{max-width:1360px;margin:20px auto 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.object-list span{font-size:11px;letter-spacing:.15em;color:#795e4b;margin-right:8px}.object-list button{border:1px solid #bda98f;background:#f7f1e8;color:#4a3930;padding:10px 13px}.object-list button:hover{background:#e8d1af}.room-bottom a{text-decoration:underline;color:#664b3b}@media(max-width:800px){.room-nav{gap:12px}.room-intro{padding-top:40px}.home-preview .scene{height:330px}.preview-link{margin:20px 0 0}}@media(max-width:450px){.room-nav a:nth-child(2){display:none}.home-preview .scene{height:290px}}
/* The introduction is optional; native details retains keyboard accessibility. */
.room-intro{padding:18px 24px;text-align:center;border-bottom:1px solid #ffffff18}
.room-intro summary{display:flex;align-items:center;justify-content:center;gap:12px;width:fit-content;margin:auto;cursor:pointer;color:#f1bd79;font-size:13px;font-weight:700;letter-spacing:.04em;list-style:none;padding:10px 18px;border:1px solid #f1bd7955;border-radius:6px}
.room-intro summary::-webkit-details-marker{display:none}
.room-intro summary:hover{background:#ffffff09}
.room-intro summary:focus-visible{outline:2px solid #f1bd79;outline-offset:4px}
.room-intro .intro-hide{display:none}
.room-intro[open] .intro-show{display:none}
.room-intro[open] .intro-hide{display:inline}
.room-intro[open] .intro-chevron{transform:rotate(180deg)}
.room-intro-content{padding:28px 0 18px;max-width:1000px;margin:auto}
.room-intro p{margin-bottom:0}
.room-intro+.experience{padding-top:40px}
.creator{max-width:1250px;margin:auto;padding:65px max(4vw,24px) 90px}.creator h1{font-size:clamp(48px,6vw,80px);margin:22px 0}.creator-lede{font-size:20px;color:#bec9c9}.privacy-note{padding:22px;background:#26353d;border-left:3px solid #e5b477;line-height:1.7;margin:28px 0 36px}.privacy-note strong{display:block;color:#f1bd79}.memory-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.memory-card,.room-meta{padding:25px;border:1px solid #d9c6ae;background:#f3ede2;color:#26343a;margin:0 0 25px;min-width:0}.memory-card legend{background:#6b3b43;color:#fff5e8;padding:9px 15px;font-weight:700}.creator label:not(.consent){display:block;font-weight:700;margin:8px 0 10px}.creator input:not([type=checkbox]),.creator textarea{font:16px/1.6 "DM Sans",sans-serif;display:block;width:100%;padding:13px;border:1px solid #ab9985;background:#fffcf7;color:#26343a;margin-bottom:18px}.creator textarea{resize:vertical}.creator small{line-height:1.6;color:#596462}.creator-actions{display:flex;flex-wrap:wrap;gap:14px}.creator-actions button{padding:15px 22px;border:1px solid #e5b477;background:transparent;color:#f1bd79;font-weight:700}.creator-actions .primary-action{background:#e5b477;color:#202c33}#save-status{padding:18px;background:#26353d;line-height:1.6}.restore-panel{border:1px solid #647377;padding:22px;margin-top:28px;line-height:1.7}.restore-panel summary{cursor:pointer;color:#f1bd79;font-weight:700}.restore-panel input{max-width:600px}@media(max-width:750px){.memory-grid{grid-template-columns:1fr}.creator h1{font-size:50px}.creator .topbar{height:auto}.creator-actions button{width:100%}}
.creator-link{display:block;color:#e5b477;text-decoration:underline;margin:0 0 20px;font-weight:700}.object span:last-child{max-width:140px;overflow-wrap:anywhere}.room-nav{flex-wrap:wrap}.room-meta .consent{margin-top:18px}
.personal-scene{background:radial-gradient(ellipse at 57% 66%,#dfa65b22,transparent 55%),linear-gradient(var(--wall-top),var(--wall-bottom))}.personal-scene .scene-floor{background:linear-gradient(var(--floor-color),#342d2c)}.personal-scene[data-floor=tile] .scene-floor{background:repeating-conic-gradient(var(--floor-color) 0% 25%,#d0c0a6 0% 50%) 0/60px 60px}.personal-scene [hidden]{display:none}.personal-object{max-width:150px}.creator-scene{height:440px;margin-top:25px}.creator-scene .object{min-width:75px;padding:8px;pointer-events:none}.creator-scene .object-icon{font-size:28px}.decor-controls{display:flex;gap:22px;flex-wrap:wrap;align-items:center}.creator select{display:block;padding:12px;font:inherit;background:#fffcf7;color:#26343a;border:1px solid #ab9985;margin-top:10px;max-width:100%}.object-toolbar{margin:35px 0 25px}.object-toolbar h2,.room-meta h2{font-size:36px;margin:10px 0}.object-toolbar button{background:#e5b477;color:#202c33;padding:14px 20px;border:0;font-weight:700}.remove-object{padding:10px 14px;border:1px solid #6b3b43;color:#6b3b43;background:transparent}.memory-card input[type=range]{padding:0;accent-color:#6b3b43}.creator-scene .window{border-width:10px}.creator-scene .object span:last-child{max-width:110px}
/* Small furniture silhouettes, drawn locally without external image assets. */
.decor-icon{position:relative;display:block;width:50px;height:48px;flex-shrink:0}.icon-chair,.icon-table,.icon-plant,.icon-book{font-size:0!important}
.icon-chair{background:linear-gradient(#c48d64,#c48d64) 9px 3px/31px 24px no-repeat,linear-gradient(#efc18a,#efc18a) 5px 27px/39px 7px no-repeat,linear-gradient(#b58a67,#b58a67) 8px 33px/4px 15px no-repeat,linear-gradient(#b58a67,#b58a67) 37px 33px/4px 15px no-repeat;border-radius:6px}
.icon-table{background:linear-gradient(#d3a078,#d3a078) 1px 16px/48px 8px no-repeat,linear-gradient(#9e7657,#9e7657) 7px 24px/5px 24px no-repeat,linear-gradient(#9e7657,#9e7657) 38px 24px/5px 24px no-repeat}
.icon-plant:before{content:'';position:absolute;left:11px;top:0;width:30px;height:32px;background:#91b58c;clip-path:polygon(50% 100%,0 35%,15% 10%,48% 55%,45% 0,75% 10%,58% 65%,90% 25%,100% 50%)}
.icon-plant:after{content:'';position:absolute;left:14px;top:29px;width:24px;height:19px;background:#d39b76;clip-path:polygon(0 0,100% 0,85% 100%,15% 100%)}
.icon-book{width:35px;margin:0 7px;border-radius:3px 6px 6px 3px;background:linear-gradient(90deg,#edd8ac 0 10%,#865261 10% 100%);border:2px solid #c89a79;box-shadow:3px 2px 0 #d5c8a4}
.icon-book:after{content:'';position:absolute;left:10px;right:5px;top:11px;height:12px;border-top:1px solid #e7c693;border-bottom:1px solid #e7c693}
.personal-scene{--object-size:clamp(78px,12vw,130px);border:8px solid #544c43;border-bottom:12px solid #9b7859;box-shadow:0 22px 45px #0005,inset 28px 0 30px #0003,inset -28px 0 30px #0003;perspective:900px}
.personal-scene:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(120deg,#ffffff12,transparent 18%,transparent 83%,#0002);border-left:18px solid #ffffff09;border-right:18px solid #0002}
.personal-scene .scene-floor{height:32%;border-top:4px solid #b28c65;transform:perspective(500px) rotateX(20deg);transform-origin:bottom;}
.personal-object{width:var(--object-size);min-width:0!important;max-width:none;left:min(var(--object-x),calc(100% - var(--object-size)))!important;top:min(var(--object-y),calc(100% - 112px))!important;max-height:112px}
.personal-object span:last-child{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.creator-scene .personal-object{pointer-events:auto;touch-action:none;cursor:grab;user-select:none}
.creator-scene .personal-object.dragging{cursor:grabbing;z-index:8;transform:none;box-shadow:0 12px 25px #0008;outline:2px solid #efc18a}
.creator-scene .personal-object:hover{transform:none}.creator-scene .personal-object:focus-visible{z-index:9}
#clean-preview{background:#26343a;color:#f3d5a6;border:1px solid #b59b7d;padding:11px 16px;font-weight:700;margin:8px 0}
.clean-preview .decor-controls,.clean-preview>p{display:none}.clean-preview .creator-scene{height:560px}
.preview-only .memory-grid,.preview-only .object-toolbar,.preview-only #creator-form>.room-meta:not(:has(#room-preview)){display:none}
.room-camera{max-width:1360px;margin:0 auto;min-width:0}.camera-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#17252d;padding:12px;border-radius:7px 7px 0 0;color:#f4e8d6}.camera-toolbar button{padding:10px 14px;border:1px solid #bba07d;background:#253842;color:#f4e8d6;border-radius:5px;font-weight:700;min-height:42px}.camera-toolbar button:hover,.camera-toolbar button[aria-pressed=true]{background:#e5b477;color:#17252d}.camera-toolbar output{min-width:52px;text-align:center;font-size:13px}.camera-viewport{overflow:hidden;position:relative;isolation:isolate;background:#16242d;border-radius:0 0 6px 6px;outline-offset:4px}.camera-viewport>.scene{margin:0;width:100%;max-width:none;transform-origin:0 0;will-change:transform}.camera-viewport .scene.camera-smooth{transition:transform .22s cubic-bezier(.2,.7,.3,1)}.camera-help{font-size:13px!important;line-height:1.6;color:#616c6d!important;margin:12px 0!important}.pan-mode{cursor:grab;touch-action:none}.panning{cursor:grabbing}.pan-mode .object{cursor:pointer}.creator .pan-mode .object{cursor:grab;touch-action:none}.room-camera.expanded{position:fixed;inset:16px;z-index:999;max-width:none;margin:0;padding:12px;background:#eee5d6;box-shadow:0 0 0 40px #08131de6;border-radius:10px;display:flex;flex-direction:column;overflow:auto}.room-camera.expanded .camera-viewport{flex:1;min-height:200px}.room-camera.expanded .scene{height:100%!important;min-height:400px}.room-camera.expanded .camera-help{flex-shrink:0}.camera-viewport:focus-visible{outline:3px solid #b37a45}.room-camera:has(.creator-scene) .camera-help{color:#4c585c!important}@media(max-width:600px){.camera-toolbar{gap:6px;padding:8px}.camera-toolbar button{font-size:12px;padding:9px 10px}.room-camera.expanded{inset:6px;padding:8px}.room-camera.expanded .scene{min-height:300px}}
.dialog-actions{gap:12px;flex-wrap:wrap}.dialog-actions button{min-height:44px}.dialog-actions #previous-object{background:transparent;color:#25333a;border:1px solid #9d8a73}
/* The cutaway demo: all illustrations are original inline SVG. */
.room-page .experience{background:#101923;color:#eee6d8;padding:40px max(3vw,16px)}.room-page .section-heading{margin-bottom:25px}.room-page .section-heading h2{font-size:clamp(30px,3.8vw,54px)}.room-page .section-heading p{color:#bac1c2;max-width:700px;line-height:1.6}.room-page .section-heading .eyebrow{color:#d8ad77}.room-page .counter strong{color:#e7bd82}.room-page .camera-help{color:#b6bfc1!important}.room-page .object-list>span,.room-page .room-bottom,.room-page .room-bottom button{color:#d4bb98}.room-page .object-list button{background:#22313c;color:#f1e5d1;border-color:#6f705f}.room-page .room-camera.expanded{background:#101923}.interior.scene{height:auto;aspect-ratio:1200/760;background:#101923;border-radius:4px;box-shadow:none}.interior.scene:before{display:none}.interior-drawing{position:absolute;inset:0;pointer-events:none;transition:transform .7s ease;filter:brightness(.96)}.interior-drawing>svg{width:100%;height:100%;display:block}.interior .object{padding:0;min-width:44px;min-height:44px;width:11.67%;height:15.8%;background:transparent;border:0;box-shadow:none;gap:0;transition:filter .2s,translate .2s;transform:none}.interior .object svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(3px 6px 3px #0006)}.interior .object span:last-child{position:absolute;top:100%;left:50%;translate:-50% 0;max-width:none;white-space:nowrap;padding:5px 9px;background:#101923;color:#f2d5a8;border:1px solid #827254;border-radius:3px;font-size:11px;letter-spacing:.02em;opacity:0;pointer-events:none}.interior .object:hover,.interior .object:focus-visible{translate:0 -3px;filter:drop-shadow(0 0 6px #efbd7388);z-index:5}.interior .object:hover span,.interior .object:focus-visible span{opacity:1}.interior .object:focus-visible{outline:3px solid #f3c88b;outline-offset:3px;border-radius:5px}.interior .object.found:after{content:'✓';position:absolute;right:1%;top:7%;background:#e7c18a;color:#101923;border-radius:50%;width:19px;height:19px;font-size:13px;display:grid;place-items:center}.interior .photograph{left:44%;top:24%;width:10%;height:16%}.interior .letter{left:44%;top:58%;width:9%;height:10%}.interior .radio{left:74%;top:30%;width:10%;height:17%}.interior .clock{left:68%;top:39%;width:10%;height:14%}.interior .frame{left:53%;top:21%;width:10%;height:18%}.mood-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 0;max-width:1360px;margin:auto;color:#e5dac7}.mood-controls label{display:flex;gap:12px;align-items:center;font-size:13px}.mood-controls select,.mood-controls button{font:inherit;font-size:13px;padding:10px 13px;min-height:44px;color:#f0e2cc;background:#22313c;border:1px solid #82745c;border-radius:5px}.mood-controls button[aria-pressed=true]{border-color:#e5b477;color:#f4c98e}.mood-controls>span{font-size:12px;color:#b7c0c3}.interior[data-time=dawn] .interior-drawing{filter:brightness(1.13) sepia(.12)}.interior[data-time=day] .interior-drawing{filter:brightness(1.3)}.interior[data-time=day] .day-shaft{opacity:.19}.interior[data-time=dawn] .day-shaft{opacity:.14}.interior[data-time=night] .room-window{filter:brightness(.45)}.interior[data-time=night] .day-shaft{opacity:.02}.interior[data-lamp=off] .lamp-pool,.interior[data-lamp=off] .lamp-mark{opacity:0}.interior[data-lamp=off] .lamp-shade{fill:#776b54}.lamp-pool,.lamp-shade,.lamp-mark,.day-shaft{transition:opacity 1s,fill 1s}.dust{animation:dust-drift 18s ease-in-out infinite alternate}.curtain{transform-origin:200px 134px;animation:curtain-sway 9s ease-in-out infinite alternate}.detail-illustration:not(:empty){background:#23323d;border-radius:5px;padding:12px;margin:10px 0 24px;display:grid;place-items:center}.detail-illustration svg{width:170px;height:145px}.evidence-limit{border-left:3px solid #987042;padding:12px 16px;font-size:14px;line-height:1.6;background:#e9dfcf;color:#37444a}@keyframes dust-drift{to{transform:translate(9px,-14px);opacity:.5}}@keyframes curtain-sway{to{transform:skewX(.7deg)}}@media(max-width:600px){.room-page .experience{padding:25px 12px}.room-page .section-heading{position:relative;padding-right:60px}.room-page .counter{position:absolute;right:0;top:0;margin:0}.room-page .counter strong{font-size:25px}.room-page .counter span{font-size:8px;display:block;max-width:60px;white-space:normal}.interior.scene{aspect-ratio:1.15;height:auto;min-height:300px}.interior .object span:last-child{font-size:10px}.mood-controls{gap:8px}.mood-controls>span{width:100%}.room-page .camera-toolbar button{padding:8px}.room-page .object-list{gap:8px}.room-page .object-list button{min-height:44px}.room-page .room-camera.expanded .interior.scene{min-height:300px}.room-page .section-heading p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.interior .dust{display:none}.interior .curtain{animation:none}.interior-drawing,.interior .object,.lamp-pool,.lamp-shade,.lamp-mark,.day-shaft{transition:none}.interior .object:hover{translate:none}}
/* Shared personal-room shell; positions remain normalized for old backups. */
.personal-scene.interior{border:0;perspective:none;height:auto;min-height:320px;aspect-ratio:1200/760;background:#101923}.personal-scene.interior:after{display:none}.personal-scene.interior[data-shell=compact]{aspect-ratio:1.25}.personal-scene.interior[data-shell=wide]{aspect-ratio:1.9}.personal-scene.interior .personal-object{height:auto;min-height:64px;max-height:112px;width:var(--object-size);background:#14222cde;border:1px solid #b49b7055;padding:5px;border-radius:5px}.personal-scene.interior .personal-object .object-icon{display:grid;place-items:center;width:62px;height:55px}.personal-scene.interior .personal-object .object-icon svg{width:62px;height:55px}.personal-scene.interior .personal-object span:last-child{position:static;translate:none;opacity:1;white-space:normal;background:none;border:0;padding:3px;font-size:11px;max-width:130px;text-align:center}.personal-scene.interior .personal-object:hover{translate:none}.interior[data-window-position=center] .window-group{transform:translateX(315px)}.interior[data-window-position=right] .window-group{transform:translateX(600px)}.interior[data-window-position=center] .day-shaft{transform:translateX(200px)}.interior[data-window-position=right] .day-shaft{transform:translateX(350px)}.interior[data-door-position=right] .interior-door{transform:translateX(1200px) scaleX(-1)}.creator .decor-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px;padding:20px;background:#e9dfcf;border:1px solid #c4b59f;border-radius:8px}.creator .decor-controls label{font-size:14px}.creator .decor-controls select{width:100%;margin-top:8px}.creator .decor-controls .consent{align-self:center;margin-top:0}.creator-scene.interior{margin-top:20px}.creator .room-camera{margin-top:20px}@media(max-width:600px){.personal-scene.interior{min-height:340px}.creator .decor-controls{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:12px}.creator .decor-controls select{font-size:14px;padding:10px}}

.interior[data-window-position=center] .window-plant{transform:translateX(315px)}.interior[data-window-position=right] .window-plant{transform:translateX(600px)}.interior[data-door-position=right] .interior-wardrobe{display:none}
.radio-3d{margin:20px 0;padding:12px;background:#172530;color:#f2e3cd;border-radius:6px;overflow:hidden}.radio-3d canvas{display:block;width:100%;max-width:100%;touch-action:none}.radio-3d p{font:13px/1.6 sans-serif}.radio-3d button{min-height:44px;padding:10px 12px;background:#e5b477;color:#172530;border:1px solid #ba9565;border-radius:4px}.preview-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.model-credit a{text-decoration:underline;color:#f2d2a0}

.radio-3d>svg{display:block;width:100%;max-width:100%;touch-action:none}
/* One memory at a time, with artwork transforms independent of drag coordinates. */
.memory-grid{align-items:start}.memory-card>summary{cursor:pointer;font-size:18px;font-weight:700;color:#26343a;padding:10px 0;overflow-wrap:anywhere}.memory-card[open]>summary{border-bottom:1px solid #b7a78d;margin-bottom:20px}.memory-card>label{display:block;margin:18px 0}.memory-card output{display:inline-block;min-width:58px;padding:4px 8px;color:#4e3439;background:#e8d7c3;border-radius:4px;font-size:13px;font-weight:700}.object-card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.object-card-actions button,.reset-appearance{min-height:44px;border:1px solid #9c856a!important;background:#f5ecdf!important;color:#343a3c!important;padding:10px 14px!important;font-size:13px}.reset-appearance{margin:5px 10px 5px 0}.personal-scene.interior .personal-object .decor-icon{transform:rotate(var(--art-rotation,0deg)) scale(var(--art-size,1));transform-origin:center;pointer-events:none}.personal-scene.interior .personal-object{padding-top:18px;padding-bottom:9px;min-height:94px;max-height:112px}.personal-scene.interior .personal-object span:last-child{position:relative;z-index:1}.memory-card:focus-within{border-color:#936238}
.decor-icon img{width:100%;height:100%;object-fit:contain;border:2px solid #bd9d6d;border-radius:2px}.detail-illustration img{max-width:100%;max-height:320px;object-fit:contain}.memory-metadata{font-size:14px;line-height:1.7;color:#4c5557;padding:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}.memory-metadata:empty{display:none}.photo-status{font-size:13px;line-height:1.6;color:#505958}.memory-card input[type=file]{font-size:13px;max-width:100%}
/* A shared controls dock stays with the room at every view size. */
.room-camera{display:grid;grid-template-columns:minmax(0,1fr) 210px;grid-template-rows:auto auto;gap:0 14px;align-items:start}.room-camera .camera-viewport{grid-column:1;grid-row:1;border-radius:7px;min-width:0}.room-controls-dock{grid-column:2;grid-row:1;align-self:stretch;min-width:0;padding:14px;background:#17252d;color:#f2e6d4;border:1px solid #6a665a;border-radius:7px;display:flex;flex-direction:column;gap:16px;max-height:700px;overflow:auto;scrollbar-width:thin}.dock-heading{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#edc38c}.room-controls-dock .camera-toolbar{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;border-radius:0}.room-controls-dock .camera-toolbar output{align-self:center;min-width:0}.room-controls-dock .camera-toolbar button{min-width:0;white-space:normal;padding:10px 8px;font-size:12px}.room-controls-dock .mood-controls{padding:16px 0 0;border-top:1px solid #ffffff26;display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;margin:0}.room-controls-dock .mood-controls label{display:block}.room-controls-dock .mood-controls select{width:100%;margin-top:8px}.room-controls-dock .mood-controls>span{font-size:12px;line-height:1.6;color:#c0c8ca}.room-camera>.camera-help{grid-column:1/-1;grid-row:2}.creator .room-controls-dock .decor-controls{grid-template-columns:1fr;background:none;border:0;border-top:1px solid #ffffff26;padding:16px 0 0;gap:14px;color:#f2e6d4}.creator .room-controls-dock .decor-controls label{color:#f2e6d4;font-size:13px}.creator .room-controls-dock .decor-controls select{background:#253842;color:#fff2dc;border-color:#8c806a;font-size:13px;padding:10px}.creator .room-controls-dock .decor-controls .consent{color:#f2e6d4}.room-camera.expanded{display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;align-items:stretch;gap:12px}.room-camera.expanded .camera-viewport{min-height:0;flex:initial}.room-camera.expanded .scene{height:100%!important;min-height:0!important}.room-camera.expanded .room-controls-dock{max-height:none;min-height:0;overflow:auto}.room-camera.expanded>.camera-help{margin:0!important}.clean-preview .room-controls-dock .decor-controls{display:none}
@media(max-width:700px){.room-camera,.room-camera.expanded{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;gap:10px}.room-controls-dock{grid-column:1;grid-row:2;max-height:290px;padding:12px;gap:12px}.room-camera>.camera-help{grid-row:3;grid-column:1}.room-controls-dock .camera-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.room-controls-dock .camera-toolbar button{min-height:44px}.room-controls-dock .mood-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;padding-top:12px}.room-controls-dock .mood-controls>span{grid-column:1/-1}.creator .room-controls-dock .decor-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.room-camera.expanded{grid-template-rows:minmax(160px,1fr) auto auto;padding:8px;inset:6px}.room-camera.expanded .room-controls-dock{max-height:32dvh}.room-camera.expanded .camera-help{font-size:11px!important}.room-camera.expanded .scene{aspect-ratio:auto;min-height:160px!important}}
.object-catalogue{margin-top:35px;padding:24px;background:#efe5d6;color:#26343a;border-radius:8px}.object-catalogue h2{font-size:32px;margin:0 0 12px}.catalogue-filters{display:flex;gap:18px;flex-wrap:wrap;margin:20px 0}.catalogue-filters label{flex:1;min-width:150px}.catalogue-filters input,.catalogue-filters select{width:100%}#catalogue-items{display:flex;gap:10px;flex-wrap:wrap}#catalogue-items button{min-height:44px;border:1px solid #a58d70;background:#fffaf2;color:#44382e;padding:10px 15px;border-radius:5px}.selected-object{border-top:1px solid #ffffff33;padding-top:15px;display:flex;flex-direction:column;gap:9px;font-size:13px;line-height:1.5}.selected-object button{min-height:44px;background:#253842;color:#f1e1c9;border:1px solid #9d886b;border-radius:4px;padding:9px}.selected-object strong{color:#f2c98e;overflow-wrap:anywhere}.personal-object.selected{outline:3px solid #f4c783;outline-offset:2px}.personal-scene.interior .decoration-only{pointer-events:none}.creator .memory-card input[data-field=memory]{width:auto;display:inline-block;margin-right:8px}.preview-only .object-catalogue{display:none}.personal-scene.interior .decor-icon:before,.personal-scene.interior .decor-icon:after{display:none}.personal-scene.interior .decor-icon{background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important}.personal-scene.interior .decor-icon svg{display:block}@media(max-width:700px){.selected-object{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.selected-object strong{grid-column:1/-1}.object-catalogue{padding:16px}}
.getting-started{padding:18px;border:1px solid #a48b67;margin:24px 0;color:#eadbc6;line-height:1.8}.getting-started summary{cursor:pointer;font-weight:700}.getting-started li{margin:8px 0}.creator-actions a{display:inline-flex;align-items:center;min-height:44px;padding:12px;border:1px solid #d6ae76;color:#f3cc97}.custom-shape{display:block;width:45px;height:45px;border:3px solid #e3c38c}.shape-round{border-radius:50%}.shape-diamond{rotate:45deg}.interior[data-furnishings=off] .fixed-furnishing{display:none}.extra-window{transform:translateX(520px) scale(.8);transform-origin:300px 150px}.interior[data-window-position=right] .extra-window{transform:translateX(-60px) scale(.8)}.interior[data-window-position=center] .extra-window{transform:translateX(-80px) scale(.8)}.room-controls-dock #apply-style,.room-controls-dock #undo-style{min-height:44px;border:1px solid #a48b67;background:#263942;color:#f4d4a4;padding:10px}.keepsake-page{background:#eee7d9;color:#23313a}.print-controls{max-width:850px;margin:25px auto;display:flex;justify-content:space-between;padding:12px;gap:15px}.print-controls button{padding:12px;background:#24333c;color:#fff;border:0;min-height:44px}.keepsake-page main{max-width:850px;margin:30px auto;padding:35px;background:#fffaf1;line-height:1.8}.keepsake-page h1{font-size:46px}.keepsake-page h2{font-size:28px}.keepsake-list{padding-left:25px}.keepsake-list>li{padding:20px 0;border-top:1px solid #bdae95}.keepsake-list img{max-width:100%;max-height:250px;object-fit:contain}.keepsake-list p{white-space:pre-wrap;overflow-wrap:anywhere}.keepsake-page h3{font-size:14px}.memory-card input[type=color]{width:75px;height:44px;padding:4px}.catalogue-tile svg{width:55px;height:48px;display:block}.catalogue-tile{display:grid;justify-items:center;min-width:95px}
@media print{body.keepsake-page{background:white;color:#111}.print-controls{display:none!important}.keepsake-page main{max-width:none;margin:0;padding:0;background:white;font:12pt/1.6 Georgia,serif}.keepsake-page h1{font-size:28pt}.keepsake-list img{max-height:180px}.keepsake-list h2,.keepsake-page h3{break-after:avoid}.keepsake-list>li{break-inside:avoid}.keepsake-page p{orphans:3;widows:3}@page{margin:18mm}}
.room-view-choice{max-width:1360px;margin:0 auto 16px}.room-view-choice button{min-height:48px;padding:13px 20px;border:1px solid #d7ac76;background:#e5b477;color:#17252d;font-weight:700;border-radius:5px}.room3d{max-width:1360px;margin:0 auto 20px;display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:14px;background:#171f29;border-radius:8px;overflow:hidden;border:1px solid #6c665a}.room3d[hidden],.room-camera[hidden]{display:none!important}.room3d-view{position:relative;min-width:0;height:clamp(430px,52vw,720px);touch-action:none}.room3d-view>canvas,.room3d-view>svg{display:block;width:100%;height:100%}.room3d-markers{position:absolute;inset:0;pointer-events:none}.room3d-markers button{position:absolute;translate:-50% -50%;pointer-events:auto;min-width:38px;min-height:38px;border-radius:50%;background:#17252deb;border:2px solid #e9c18a;color:#ffe5bd;font-weight:700;box-shadow:0 4px 12px #0005}.room3d-markers button:hover,.room3d-markers button:focus-visible{background:#e5b477;color:#17252d;outline:3px solid #fff1cf;outline-offset:3px}.room3d-dock{display:flex;flex-direction:column;gap:10px;padding:16px;background:#202e38;color:#f2dfc6;max-height:720px;overflow:auto}.room3d-dock strong{font-size:11px;letter-spacing:.12em}.room3d-dock p{font-size:12px;line-height:1.6;color:#c8d0cf}.room3d-dock button,.room3d-dock select{min-height:44px;padding:10px;border:1px solid #9c8769;border-radius:4px;background:#283e4b;color:#f5e6ce}.room3d-dock label{font-size:13px}.room3d-dock select{display:block;width:100%;margin-top:8px}@media(max-width:700px){.room3d{grid-template-columns:1fr}.room3d-view{height:430px}.room3d-dock{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:290px}.room3d-dock strong,.room3d-dock p{grid-column:1/-1}.room3d-markers button{min-width:34px;min-height:34px}}
.room3d.expanded{position:fixed;inset:14px;z-index:999;max-width:none;margin:0;grid-template-columns:minmax(0,1fr) 205px;box-shadow:0 0 0 30px #101923ed}.room3d.expanded .room3d-view{height:100%;min-height:0}.room3d.expanded .room3d-dock{max-height:100%;min-height:0}@media(max-width:700px){.room3d.expanded{inset:6px;grid-template-columns:1fr;grid-template-rows:minmax(200px,1fr) auto}.room3d.expanded .room3d-dock{max-height:30dvh}}
.room3d-markers button img{width:26px;height:26px;object-fit:cover;display:block;border:1px solid #e6c48b;margin:3px auto;pointer-events:none}.three-inspector{border-top:1px solid #a58c6966;padding-top:12px;display:flex;flex-direction:column;gap:9px;color:#e6d6bf;font-size:13px;line-height:1.6}.three-inspector label{display:block}.room3d-dock .three-inspector strong{overflow-wrap:anywhere}.creator .room3d{margin-top:20px}.creator .room3d-dock p{color:#c8d0cf}.room3d-markers button{touch-action:none}@media(max-width:700px){.three-inspector{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.three-inspector strong,.three-inspector label{grid-column:1/-1}}
.three-shell-note{font-size:13px;line-height:1.7;max-width:700px;color:#667073}.room-page .three-shell-note{color:#bec9cb}.creator .room-view-choice{margin-top:20px}

.creator .room3d.expanded{margin:0}
.ai-arranger{margin:28px 0;padding:26px;border:1px solid #bda575;border-radius:14px;background:linear-gradient(135deg,#23343b,#18252f);color:#f2e4c8}.ai-arranger>p{max-width:76ch;line-height:1.65}.ai-arranger h2{margin-top:10px}.ai-arranger>label{display:block;margin:16px 0 8px;font-weight:600}.ai-arranger textarea,.ai-arranger>select{width:100%;max-width:780px}.ai-arranger .ai-privacy{padding:14px;border-left:3px solid #d6ae71;background:#101923}.ai-arranger details{margin:18px 0}.ai-arranger pre{max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;background:#101923;font-size:13px}.ai-arranger .room3d{margin:20px 0}.ai-arranger .consent{display:flex;gap:12px;align-items:flex-start}.ai-arranger button:disabled{opacity:.55;cursor:wait}.ai-arranger [role=status]{min-height:28px}.ai-arranger [hidden]{display:none!important}@media(max-width:600px){.ai-arranger{padding:18px}.ai-arranger .creator-actions{display:flex;flex-direction:column;align-items:stretch}}
.finish-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;grid-column:1/-1}.finish-controls input[type=color]{width:100%;min-height:40px}.three-finishes{display:grid;gap:12px;border-top:1px solid #6c6657;padding-top:16px;margin-top:10px}.three-finishes input[type=color]{width:100%;min-height:38px}.arrangement-report{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:20px 0}.arrangement-report>section{background:#101923;border:1px solid #667367;border-radius:10px;padding:18px}.arrangement-report h4{margin:0 0 12px;color:#f0d6a5}.arrangement-report ul{padding-left:20px;line-height:1.65}.arrangement-report li+li{margin-top:8px}.decor-icon[data-finish=metal] svg{filter:brightness(1.25) contrast(1.15)}.decor-icon[data-finish=fabric] svg{filter:saturate(.75)}.decor-icon[data-finish=wood] svg{filter:sepia(.2)}
.shell-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border:1px solid #80755e;border-radius:8px}.shell-controls legend{font-weight:700}.shell-controls label{display:grid;gap:6px}.shell-controls p{grid-column:1/-1;line-height:1.5}.three-shell{display:grid;gap:12px;border-top:1px solid #6c6657;margin-top:16px;padding-top:16px}.three-shell input{width:100%;min-width:0;box-sizing:border-box}@media(max-width:500px){.shell-controls{grid-template-columns:1fr}}

.room3d-markers button[hidden]{display:none!important}.object-list button.reviewed:after{content:' ✓';color:#f2cc94}

/* Keep navigation readable and reachable in compact and expanded rooms. */
body:has(.room3d.expanded,.room-camera.expanded){overflow:hidden}
.room3d-dock{overscroll-behavior:contain;scrollbar-gutter:stable;min-width:0}
.room3d-dock>*{flex-shrink:0;min-width:0}
.room3d-dock button{height:auto;white-space:normal;line-height:1.45;overflow-wrap:anywhere}
.room3d-dock label,.room3d-dock p{overflow-wrap:anywhere}
.room3d-dock>.three-expand{position:sticky;top:0;z-index:3;background:#e5b477;color:#17252d;font-weight:700;box-shadow:0 4px 10px #10192366}
.room3d-view:focus-visible{outline:3px solid #f2c88c;outline-offset:-4px}
.room3d-markers button{min-width:44px;min-height:44px}
@media(max-width:700px){.room3d-dock>.three-expand{grid-column:1/-1}.room3d-dock{gap:12px;padding:12px;grid-auto-rows:min-content}.room3d.expanded{grid-template-rows:minmax(180px,1fr) minmax(150px,32dvh)}.room3d.expanded .room3d-dock{max-height:none}.room3d-view{height:clamp(300px,68dvh,430px)}.room3d-markers button{min-width:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.camera-viewport .scene.camera-smooth{transition:none}}

/* One object form stays beside the room, in normal and expanded editing views. */
.creator .room3d,.creator .room3d.expanded{grid-template-columns:minmax(0,1fr) 340px}
.creator .room-camera,.creator .room-camera.expanded{grid-template-columns:minmax(0,1fr) 340px}
.object-workbench{background:#f3ede2;color:#26343a;border:1px solid #bda88e;border-radius:8px;padding:14px;min-width:0}
.object-workbench h3{font-size:21px;margin:0 0 14px}.object-workbench .selected-object{border-color:#bda88e;margin:12px 0}.object-workbench .selected-object strong{color:#643c42}
.object-workbench .memory-grid{display:block}.object-workbench .memory-card{border:0;padding:0;margin:18px 0}.object-workbench .memory-card[hidden],.object-toolbar[hidden]{display:none!important}
.creator .object-workbench label:not(.consent){color:#26343a;font-size:14px}.creator .object-workbench input:not([type=checkbox]),.creator .object-workbench textarea,.creator .object-workbench select{max-width:100%;min-width:0;background:#fffcf7;color:#26343a;margin:7px 0 12px;font-size:14px;padding:9px}
.creator .object-workbench input[type=range]{padding:0}.object-workbench input[type=checkbox]{min-height:auto}
.object-workbench .object-catalogue{margin:10px 0;padding:0;background:transparent}.object-workbench .object-catalogue h2{display:none}.object-workbench .catalogue-filters{display:block;margin:10px 0}.object-workbench #catalogue-items{max-height:260px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}.object-workbench #catalogue-items button{min-width:0;padding:8px;font-size:13px}
.workbench-catalogue{border-block:1px solid #bda88e;padding:12px 0;margin:16px 0}.workbench-catalogue summary{cursor:pointer;font-weight:700}.object-workbench .workbench-save{width:100%;background:#6b3b43;color:#fff5e8;font-weight:700}
.creator .room-controls-dock{overscroll-behavior:contain}.object-workbench #add-object{width:100%;min-height:44px;background:#6b3b43;color:#fff5e8;border:0;border-radius:4px;margin-bottom:10px}
@media(max-width:800px){.creator .room3d,.creator .room3d.expanded,.creator .room-camera,.creator .room-camera.expanded{grid-template-columns:minmax(0,1fr) 290px}.creator .room3d-view{min-width:0}}
@media(max-width:600px){.creator .room3d,.creator .room3d.expanded,.creator .room-camera,.creator .room-camera.expanded{grid-template-columns:minmax(0,1fr)}.object-workbench{grid-column:1/-1}.creator .room3d-dock{display:flex;max-height:45dvh}.creator .room3d.expanded{grid-template-rows:minmax(170px,1fr) minmax(180px,43dvh)}.creator .room3d.expanded .room3d-dock{max-height:none}.creator .room-controls-dock{max-height:45dvh}.object-workbench .selected-object{display:flex}}

.creator .room-camera,.room-page .room-camera{display:none!important}.creator #clean-preview[hidden]{display:none!important}
.object-workbench .selected-object{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.object-workbench .selected-object>strong{grid-column:1/-1}.object-workbench .selected-object button{font-size:13px;padding:8px;min-width:0}.object-workbench .selected-object>button:last-child{grid-column:1/-1}

.starter-choices{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.starter-choices button{min-height:48px;padding:12px 20px}.room-start{border:1px solid #b89a70;padding:clamp(20px,4vw,36px);margin-bottom:28px;border-radius:12px;background:#eee6d6;color:#24323c}.room-start h2{margin:10px 0}.room-start p{max-width:72ch;line-height:1.6}.room-start button{background:#583e48;color:#fff;border:1px solid #583e48}.room-start button:focus-visible{outline:3px solid #9b641c;outline-offset:4px}

.gallery-page{max-width:1260px;margin:auto;padding:60px 24px}.gallery-page h1{font-size:clamp(44px,7vw,80px);margin:12px 0 20px}.gallery-lede{font-size:20px;line-height:1.7;max-width:750px}.gallery-disclosure{line-height:1.7;color:#b9c5c9;max-width:850px}.gallery-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:40px 0 24px}.gallery-heading h2{font-size:38px;margin:10px 0}.gallery-memory-list{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 60px}.gallery-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:30px 0 50px}.gallery-card{border:1px solid #59646a;border-radius:14px;overflow:hidden;background:#eee6d6;color:#24323c;padding:0 22px 24px}.gallery-card-art{background:var(--room-swatch);margin:0 -22px 24px;height:160px;display:grid;place-items:center}.gallery-card-art svg{width:150px;height:120px}.gallery-card h3{font-size:26px;margin:12px 0}.gallery-card p{line-height:1.6;min-height:52px}.gallery-card button{display:block;background:#583e48;color:white;margin:16px 0;min-height:48px;width:100%}.gallery-card button[aria-pressed=true]{background:#243e38;outline:3px solid #c1914e}.gallery-card a{color:#583e48}.gallery-card .eyebrow{color:#7a4b30}#gallery-memory{max-width:600px;padding:32px;background:#eee6d6;color:#24323c;border-radius:12px}#gallery-memory p{line-height:1.8}#gallery-memory .gallery-disclosure{color:#4c5b60}#gallery-close{float:right;margin-bottom:16px}.gallery-page .room3d{min-height:520px}@media(max-width:800px){.gallery-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-heading{display:block}}@media(max-width:540px){.gallery-cards{grid-template-columns:1fr}.gallery-page{padding:32px 16px}.gallery-page .room3d{min-height:400px}.gallery-memory-list button{width:100%}}

.gallery-page .room3d{grid-template-columns:minmax(0,1fr) 280px}.gallery-page .room3d.expanded{grid-template-columns:minmax(0,1fr) 300px}.gallery-page #gallery-room-title{scroll-margin-top:24px}@media(max-width:700px){.gallery-page .room3d,.gallery-page .room3d.expanded{grid-template-columns:minmax(0,1fr)}}

#gallery-explore{background:#e5b477;color:#17252d;border:1px solid #e5b477;font-weight:700;opacity:1}

.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px max(24px,5vw);background:#101923f5;border-bottom:1px solid #ffffff24;backdrop-filter:blur(12px)}.site-brand{display:flex;align-items:center;gap:12px;color:#f1dfc0;font-size:12px;letter-spacing:.14em;font-weight:700;text-decoration:none}.site-brand span{color:#e5b477;font-size:28px}.site-nav{display:flex;gap:8px;align-items:center}.site-nav a{display:block;padding:12px 16px;min-height:44px;box-sizing:border-box;border:1px solid transparent;border-radius:8px;font-size:14px;line-height:1.4;font-weight:600;letter-spacing:0;color:#d9dfe1;text-decoration:none;white-space:nowrap}.site-nav a:hover{background:#ffffff12}.site-nav a[aria-current=page]{background:#e5b477;color:#17252d;border-color:#e5b477}.site-nav a:focus-visible,.page-context a:focus-visible{outline:3px solid #f2c88c;outline-offset:3px}.page-context{padding:14px max(24px,5vw);background:#192731;border-bottom:1px solid #ffffff18;color:#d9dfe1;display:flex;align-items:center;justify-content:space-between;gap:16px}.page-location{margin:0;font-size:14px;line-height:1.5}.page-context nav{display:flex;gap:8px;flex-wrap:wrap}.page-context a{padding:10px 12px;min-height:44px;box-sizing:border-box;border:1px solid #53646d;border-radius:6px;color:#f3d6ae;font-size:13px;text-decoration:none;display:flex;align-items:center}.page-context[hidden]{display:none}#start-title,#arrange-title,#room-workspace,#save-room-actions,#journal-title,#room,#choose-room,#gallery-room-title{scroll-margin-top:115px}.keepsake-page .site-brand{color:#f1dfc0}@media(max-width:800px){.site-header{flex-direction:column;align-items:stretch;gap:10px;padding:12px 16px}.site-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.site-nav a{padding:10px 6px;text-align:center;white-space:normal;font-size:13px}.site-brand{font-size:11px}.page-context{display:block;padding:12px 16px}.page-context nav{margin-top:10px}#start-title,#arrange-title,#room-workspace,#save-room-actions,#journal-title,#room,#choose-room,#gallery-room-title{scroll-margin-top:155px}}@media print{.site-header,.page-context{display:none!important}}

.gallery-page #gallery-room-title{scroll-margin-top:115px}@media(max-width:800px){.gallery-page #gallery-room-title{scroll-margin-top:155px}}
