@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--cream:#faf9f6;--navy:#574338;--teal:#735647;--coral:#ff846d;--gold:#dcb878;--muted:#847970;--line:#e6e1db;font-family:'DM Sans',Arial,sans-serif;color:var(--navy);background:#f0ede8}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--cream)}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--coral);outline-offset:4px}button:disabled{opacity:.45;cursor:wait}.masthead{max-width:1380px;margin:auto;padding:27px 5%;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:5px;text-decoration:none;color:#2b2622;font-size:29px;font-weight:500;letter-spacing:-1.8px}.brand-dot{width:13px;height:13px;background:var(--coral);border-radius:50%;margin:6px 0 0 2px}.room-badge{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:1.5px}.status-dot{display:inline-block;background:var(--coral);width:6px;height:6px;border-radius:50%}main{max-width:1280px;margin:auto;padding:0 4%}.stepbar{border-top:1px solid var(--line);padding:17px 0;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;font-weight:500;letter-spacing:2px}.stepbar>div{display:flex;align-items:center;gap:18px;font-size:9px;letter-spacing:1px}.stepbar>div>span{color:#a79d94}.stepbar .active{color:var(--navy);border-bottom:1px solid var(--coral);padding-bottom:4px}.stepbar b{font-weight:500;margin-right:6px}.stepbar i{color:var(--line);font-style:normal}.stage{position:relative;min-height:565px;padding:35px 40px;background:#fff;animation:arrive .25s ease-out}.welcome{display:flex;flex-direction:column;align-items:center;padding:32px 35px 0;text-align:center;overflow:hidden}.welcome-copy{position:relative;z-index:1}.welcome h1{font-size:clamp(48px,8.7vw,108px);font-weight:400;line-height:1.05;letter-spacing:-7px;margin:12px 0}.welcome h1 br{display:none}.welcome h1 span{color:var(--navy)}.welcome-copy p{margin:10px 0 20px;font-size:17px;color:var(--muted)}.welcome-copy p br{display:none}.welcome-copy p br:after{content:' '}.welcome .eyebrow{color:var(--muted)}h2{font-weight:500;font-size:40px;line-height:1.15;letter-spacing:-1.7px;margin:14px 0}p{color:var(--muted);font-size:15px;line-height:1.6}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:54px;padding:15px 23px;border:1px solid var(--line);border-radius:5px;text-decoration:none;font-size:14px;font-weight:500;transition:background .18s,transform .18s;color:var(--navy)}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.primary{background:var(--coral);border-color:var(--coral);color:#37261e}.primary:hover{background:#fb947f}.secondary{background:#fff;border-color:#cfc5bc}.navy{background:var(--navy);color:#fff;border-color:var(--navy)}.start{min-width:232px}.microcopy{font-size:9px;letter-spacing:1.1px;margin:15px 0 0;color:var(--muted)}.camera-art{position:relative;width:100%;height:320px;display:flex;justify-content:center;align-items:center;margin:4px 0 0}.camera-product{display:block;width:min(580px,85%);height:100%;object-fit:contain;filter:drop-shadow(0 15px 14px #58433318)}.product-caption{position:absolute;right:2px;bottom:38px;font-size:8px;letter-spacing:1.4px;max-width:160px;text-align:left;line-height:1.8;color:var(--muted);border-left:1px solid #cfc5bc;padding-left:15px}.welcome-strip{width:calc(100% + 70px);background:var(--coral);display:flex;align-items:center;justify-content:center;gap:27px;font-size:22px;font-weight:500;padding:22px 15px;color:var(--navy)}.welcome-strip i{font-style:normal;font-size:12px;color:#b4543d}.welcome-mode{font-size:10px;color:var(--muted);padding:13px;background:var(--cream);width:calc(100% + 70px)}footer{max-width:1280px;margin:20px auto;padding:0 4%;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}footer>div{display:flex;align-items:center;gap:25px}footer a{text-decoration:none}.text-button{background:none;border:0;color:inherit;padding:12px 0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.screen-heading{text-align:center}.screen-heading p{font-size:14px;margin:10px 0 24px}.screen-heading .eyebrow{color:var(--muted)}.viewfinder{position:relative;max-width:640px;height:340px;margin:auto;border:7px solid #3d342e;border-radius:9px;background:#332d28;overflow:hidden;box-shadow:0 12px 30px #503c3112}.viewfinder video,.viewfinder img{width:100%;height:100%;object-fit:contain}.viewfinder video{transform:scaleX(-1)}.viewfinder-label{position:absolute;top:13px;left:13px;z-index:3;color:#fff;font-size:9px;letter-spacing:1.2px;display:flex;align-items:center;gap:7px;background:#332d2899;padding:8px;border-radius:3px}.camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:50px;color:var(--coral);pointer-events:none}.camera-placeholder span{font-size:13px;color:#f7efe6;margin-top:15px}#countdown:not(:empty){position:absolute;inset:0;display:grid;place-items:center;font-size:130px;font-weight:500;color:#fff;background:#332d284d}.corner{position:absolute;width:20px;height:20px;border:1px solid #ffffff88;pointer-events:none}.tl{top:55px;left:15px;border-right:0;border-bottom:0}.tr{top:55px;right:15px;border-left:0;border-bottom:0}.bl{bottom:15px;left:15px;border-right:0;border-top:0}.br{bottom:15px;right:15px;border-left:0;border-top:0}.controls{display:flex;justify-content:center;gap:14px;margin-top:20px}.upload{cursor:pointer}.upload input{position:absolute;width:1px;height:1px;opacity:0}.upload:focus-within{outline:3px solid var(--coral);outline-offset:4px}.fineprint{font-size:11px;color:var(--muted);text-align:center;margin:20px 0 0}.error{font-size:13px;color:#a33f2b;text-align:center;margin:12px 0 0}.error:empty{display:none}.theme-layout{display:grid;grid-template-columns:210px 1fr;gap:30px;align-items:center;margin:28px 0}.mini-print{padding:12px;background:#faf8f4;transform:rotate(-3deg);box-shadow:0 10px 20px #58433317}.mini-print img{width:100%;height:230px;object-fit:cover}.mini-print span{display:block;text-align:center;font-size:8px;letter-spacing:1px;margin:16px 0 5px}.themes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.theme-card{position:relative;text-align:left;background:#fff;border:1px solid var(--line);border-radius:6px;padding:18px;min-height:143px;color:var(--navy);transition:border-color .15s,background .15s}.theme-card:hover{border-color:#b6a69a}.theme-card.selected{border:1px solid var(--coral);background:#fff6f1}.theme-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;font-size:23px;color:var(--navy);background:color-mix(in srgb,var(--accent) 25%,white);margin-bottom:12px}.theme-card b{display:block;font-size:15px;font-weight:500}.theme-card small{display:block;font-size:10px;color:var(--muted);margin-top:6px;line-height:1.5}.selected-mark{position:absolute;right:14px;top:14px;color:#ae614b}.generating{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.generating p{margin:0 0 28px}.magic-orbit{position:relative;width:130px;height:130px;margin-bottom:25px}.magic-orbit span{display:block;font-size:110px;line-height:130px;color:var(--coral);animation:spin 12s linear infinite}.magic-orbit i,.magic-orbit b{display:none}.loading-track{width:240px;height:3px;background:var(--line);overflow:hidden}.loading-track i{display:block;width:40%;height:100%;background:var(--coral);animation:loading 1.7s ease-in-out infinite}.pill{font-size:9px;letter-spacing:1.7px;color:var(--muted)}.result{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.result-photo{text-align:center;filter:drop-shadow(0 9px 12px #503c3120)}.result-photo img{max-width:100%;max-height:490px}.result-copy h2{font-size:59px;letter-spacing:-3px}.result-copy p{font-size:14px;max-width:330px}.result-copy .result-notice{font-size:11px;color:var(--muted)}.result-actions{display:flex;flex-direction:column;gap:11px;max-width:300px}.result-actions .text-button{padding:7px}.result-copy .fineprint{display:block;text-align:left}dialog{max-width:460px;width:calc(100% - 32px);padding:32px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);box-shadow:0 20px 70px #32251d44}dialog::backdrop{background:#382b2255;backdrop-filter:blur(3px)}dialog h2{font-size:30px}dialog label{display:block;font-size:13px;font-weight:500;margin-top:18px}dialog input:not([type=checkbox]){width:100%;padding:14px;border:1px solid var(--line);border-radius:4px;margin-top:8px}.check-label{display:flex!important;align-items:center;gap:8px}.settings-note,#mode-info{font-size:12px}.close-button{position:absolute;top:12px;right:16px;background:none;border:0;color:var(--navy);font-size:28px}#settings-error{font-size:12px;color:#a33f2b}.display-mode .masthead,.display-mode footer{display:none}.display-mode main{max-width:none;height:100vh;padding:0}.display-photo{width:100%;height:100vh;background:#241f1b;display:grid;place-items:center}.display-photo img{max-width:100%;height:100%;object-fit:contain;animation:arrive .4s}.display-idle{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.display-idle h1{font-size:clamp(40px,6vw,80px);font-weight:400;letter-spacing:-3px;line-height:1.1}.idle-star{font-size:75px;color:var(--coral)}.display-error{position:fixed;bottom:15px;left:15px;right:15px;padding:15px;background:#fff;border:1px solid var(--coral);font-size:13px;margin:0;border-radius:5px}
@keyframes arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes loading{from{transform:translateX(-100%)}to{transform:translateX(350%)}}
@media(max-width:1000px){.masthead{padding:24px 4%}.stage{padding:28px}.welcome{padding:28px 28px 0}.welcome h1{letter-spacing:-4px}.welcome-strip,.welcome-mode{width:calc(100% + 56px)}.stepbar>div{gap:9px;font-size:8px}.theme-layout{grid-template-columns:155px 1fr;gap:20px}.mini-print img{height:190px}.theme-card{padding:14px}.result{gap:30px}.result-copy h2{font-size:49px}.product-caption{max-width:115px;font-size:7px;right:-5px}}
@media(max-width:720px){.masthead{padding:22px}.brand{font-size:26px}.room-badge{font-size:8px}.stepbar>.eyebrow{display:none}.stepbar{justify-content:center}.stepbar>div{gap:8px;font-size:7px;letter-spacing:.4px}main{padding:0 12px}.stage{padding:25px 20px}.welcome{padding:30px 20px 0}.welcome h1{font-size:clamp(48px,11vw,75px);letter-spacing:-3px;line-height:1.07;margin:18px 0}.welcome h1 br{display:block}.welcome-copy p{font-size:15px;margin-bottom:20px}.welcome-copy p br{display:block}.microcopy{font-size:8px;letter-spacing:.5px}.camera-art{height:270px;margin-top:20px}.camera-product{width:100%}.product-caption{display:none}.welcome-strip,.welcome-mode{width:calc(100% + 40px)}.welcome-strip{font-size:14px;gap:12px;padding:23px 10px}.welcome-strip i{font-size:7px}.welcome-mode{font-size:9px}.screen-heading h2{font-size:30px;letter-spacing:-1px}.screen-heading p{font-size:13px}.viewfinder{height:300px;border-width:5px}.controls{flex-wrap:wrap}.controls .button{font-size:13px;padding:14px}.theme-layout{display:block}.mini-print{display:none}.themes-grid{grid-template-columns:repeat(2,1fr);gap:10px}.theme-card{min-height:145px}.result{display:flex;flex-direction:column;gap:25px}.result-photo img{max-height:410px}.result-copy{text-align:center}.result-copy h2{font-size:45px}.result-actions{margin:auto}.result-copy .fineprint{text-align:center}footer{flex-direction:column;gap:10px;margin:22px 0}.generating{min-height:500px}.generating h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.doorbell-start{position:absolute;left:4%;top:50%;transform:translateY(-50%);width:clamp(108px,12vw,142px);padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;filter:drop-shadow(0 7px 6px #44342924);transition:transform .18s,filter .18s}
.doorbell-start img{display:block;width:100%;height:auto;user-select:none}
.doorbell-start:hover{transform:translateY(-50%) scale(1.04);filter:drop-shadow(0 10px 8px #44342930)}
.doorbell-start:active{transform:translateY(-50%) scale(.96);filter:drop-shadow(0 3px 3px #44342924)}
.doorbell-start:focus-visible{outline:3px solid var(--coral);outline-offset:6px}
@media(max-width:720px){.welcome .camera-art{height:auto;min-height:300px;flex-direction:column;margin-top:2px}.welcome .camera-product{height:260px}.doorbell-start{position:relative;left:auto;top:auto;transform:none;order:-1;width:112px;margin:8px 0 12px}.doorbell-start:hover{transform:scale(1.04)}.doorbell-start:active{transform:scale(.96)}}
@media(prefers-reduced-motion:reduce){.doorbell-start{transition:none}}
.camera-scene{position:relative;width:min(580px,85%);height:100%;flex:none}
.camera-scene .camera-product{width:100%;height:100%;position:relative;z-index:1}
.marina-reclining{position:absolute;right:-6%;bottom:-3%;height:125%;width:auto;max-width:none;z-index:2;pointer-events:none;user-select:none}
.welcome .camera-art{isolation:isolate}
.welcome .welcome-strip{position:relative;z-index:0}
.welcome .product-caption{z-index:3}
@media(max-width:720px){.camera-scene{width:100%;height:260px}.camera-scene .camera-product{width:82%;height:260px;object-fit:contain;margin-left:-2%}.marina-reclining{height:106%;right:0;bottom:0}}
.marina-reclining{right:-1%}
.welcome .product-caption{right:-12px;max-width:95px;bottom:35px;font-size:7px}
@media(max-width:720px){.marina-reclining{right:0}}
