/* LightDecor v2 additions. Builds on the original /assets/site.css tokens. */
:root{--c-card:rgba(255,255,255,.045);--c-line:rgba(255,255,255,.1)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* ---------- Home: scroll 3D ---------- */
.story-sticky canvas#cinemaCanvas{z-index:0}
.story-fallback{position:absolute;inset:0;z-index:0;display:none}
.story-fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease;filter:brightness(.62) saturate(.95)}
.story-shell.no-webgl .story-fallback{display:block}
.story-shell.no-webgl canvas{display:none}
.story-sticky:after{background:linear-gradient(90deg,rgba(6,8,12,.55) 0%,rgba(6,8,12,.18) 42%,rgba(6,8,12,0) 70%),linear-gradient(180deg,rgba(6,8,12,0) 60%,rgba(6,8,12,.5) 100%)}
.story-card{will-change:transform;transform:translateY(calc(var(--sp,0) * -46px)) !important;transition:opacity .5s ease,border-color .5s ease,background .5s ease}
.story-step:not(.active) .story-card{opacity:.28}
.space-chips{display:flex;gap:6px;flex-wrap:wrap}
.space-chip{font:700 9.5px/1 var(--mono);letter-spacing:.16em;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(8,10,15,.42);color:rgba(255,255,255,.55);transition:.35s}
.space-chip.on{color:#11141a;background:linear-gradient(135deg,#f4f0e6,#d5b77d);border-color:transparent;box-shadow:0 0 22px rgba(217,181,116,.35)}
.layer-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.layer-pills span{padding:9px 12px;border-radius:999px;font:700 10px var(--mono);letter-spacing:.14em}
/* ---------- Sections ---------- */
.section-tight{padding:80px 0}
.lead-sm{font-size:1.05rem;line-height:1.75;color:#aab0bd;max-width:720px}
.spaces-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.space-card{position:relative;min-height:340px;border-radius:24px;overflow:hidden;border:1px solid var(--c-line);background:#10141b;text-decoration:none;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;transition:transform .35s ease,border-color .35s ease}
.space-card:hover{transform:translateY(-4px);border-color:rgba(217,181,116,.4)}
.space-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s ease;filter:brightness(.82) saturate(1.02)}
.space-card:hover img{transform:scale(1.06)}
.space-card:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,8,12,0) 30%,rgba(6,8,12,.55) 62%,rgba(6,8,12,.94) 100%)}
.space-card .sc-body{padding:22px}
.space-card .eyebrow{display:block;margin-bottom:10px}
.space-card h3{font-size:1.65rem;margin-bottom:8px}
.space-card p{margin:0;color:#c3c8d1;font-size:14px;line-height:1.55}
.space-card .sc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.space-card .sc-tags span{font-size:11px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#dfe2e8}
.space-card .sc-go{margin-top:14px;font-weight:700;font-size:13px;color:#f0dfbc}
.space-card.wide{grid-column:span 2}
.gallery{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:220px;gap:12px}
.gallery figure{position:relative;margin:0;border-radius:20px;overflow:hidden;border:1px solid var(--c-line);background:#10141b}
.gallery figure:nth-child(1){grid-column:span 3;grid-row:span 2}.gallery figure:nth-child(2){grid-column:span 3}.gallery figure:nth-child(3){grid-column:span 3}
.gallery figure:nth-child(4),.gallery figure:nth-child(5),.gallery figure:nth-child(6){grid-column:span 2;grid-row:span 1}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.86)}
.gallery figcaption{position:absolute;left:12px;right:12px;bottom:12px;padding:12px 14px;border-radius:14px;background:rgba(8,10,15,.72);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);font-size:13px;line-height:1.45;color:#d8dbe2}
.gallery figcaption b{display:block;font:700 10px var(--mono);letter-spacing:.16em;color:#d9b574;margin-bottom:4px;text-transform:uppercase}
.disclaimer{font-size:12.5px;color:#7f8695;margin-top:16px;line-height:1.6}
.deliver-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:34px}
.deliver-grid div{padding:18px;border-radius:18px;border:1px solid var(--c-line);background:var(--c-card)}
.deliver-grid b{display:block;font-size:15px;margin:10px 0 6px}.deliver-grid small{color:#8f96a3;line-height:1.5;display:block}
.deliver-grid i{display:block;width:12px;height:12px;border-radius:50%;background:var(--c,#d9b574);box-shadow:0 0 14px var(--c,#d9b574)}
.studio-shot{position:relative;border-radius:28px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 90px rgba(0,0,0,.45)}
.studio-shot img{display:block;width:100%;height:auto}
.studio-shot figcaption{position:absolute;left:16px;bottom:14px;padding:8px 12px;border-radius:999px;background:rgba(10,12,18,.66);font-size:11px;color:#c5cad3;border:1px solid rgba(255,255,255,.12)}
/* ---------- Plans ---------- */
.plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
.plan-card{position:relative;display:flex;flex-direction:column;padding:28px;border-radius:24px;border:1px solid var(--c-line);background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.02))}
.plan-card.featured{background:linear-gradient(150deg,rgba(217,181,116,.17),rgba(255,255,255,.04));border-color:rgba(217,181,116,.38)}
.plan-card .badge{position:absolute;top:20px;right:20px;font:700 10px var(--mono);letter-spacing:.14em;padding:6px 10px;border-radius:999px;background:rgba(217,181,116,.16);color:#f0dfbc;border:1px solid rgba(217,181,116,.35)}
.plan-card h3{font-size:2rem;margin:6px 0 10px}
.plan-price{font:700 13px var(--mono);letter-spacing:.06em;color:#d2b47e}
.plan-price strong{font:650 2.6rem/1 var(--sans);letter-spacing:-.04em;color:#f2efe7;margin-right:8px}
.plan-card h4{font:700 10.5px var(--mono);letter-spacing:.16em;color:#8f96a3;text-transform:uppercase;margin:22px 0 6px}
.plan-card ul{list-style:none;padding:0;margin:0}
.plan-card li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:14px;color:#b7bcc6;line-height:1.45}
.plan-card li:before{content:"✦ ";color:#d9b574}
.plan-card li.new:before{content:"＋ ";color:#8da7ff}
.plan-card .plan-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 6px}
.plan-card .plan-meta div{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.plan-card .plan-meta small{display:block;font-size:10.5px;color:#7f8695;letter-spacing:.06em;text-transform:uppercase}.plan-card .plan-meta b{font-size:13.5px}
.plan-card .plan-actions{margin-top:auto;padding-top:22px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.plan-card .billing{font-size:12.5px;color:#8f96a3;margin:14px 0 0}
.compare-wrap{overflow-x:auto;border-radius:22px;border:1px solid var(--c-line);background:rgba(255,255,255,.025)}
.compare{width:100%;border-collapse:collapse;min-width:760px}
.compare th,.compare td{padding:15px 18px;text-align:left;border-bottom:1px solid rgba(255,255,255,.07);font-size:14px;vertical-align:top}
.compare thead th{font-size:15px;background:rgba(255,255,255,.03)}
.compare thead th small{display:block;font:700 11px var(--mono);color:#d2b47e;margin-top:4px;letter-spacing:.04em}
.compare tbody th{font-weight:600;color:#c8ccd6;width:30%}
.compare td{color:#aab0bd}.compare td.y{color:#8ce1bb}.compare .col-feat{background:rgba(217,181,116,.06)}
.compare tfoot td{border-bottom:0}
.faq{display:grid;gap:10px;max-width:980px}
.faq details{border:1px solid var(--c-line);border-radius:18px;background:var(--c-card);padding:0 20px}
.faq summary{cursor:pointer;list-style:none;padding:18px 0;font-weight:650;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";color:#d9b574;font-size:20px;line-height:1}.faq details[open] summary:after{content:"–"}
.faq details p{margin:0 0 18px;color:#aab0bd;line-height:1.7}
.note-band{padding:22px 24px;border-radius:20px;border:1px dashed rgba(217,181,116,.35);background:rgba(217,181,116,.05);color:#d8d2c4;line-height:1.65}
.note-band a{color:#f0dfbc}
pre.plan{white-space:pre-wrap;font:13.5px/1.7 var(--mono);color:#d8dbe2;background:rgba(255,255,255,.04);border:1px solid var(--c-line);border-radius:16px;padding:18px}
/* ---------- Studio ---------- */
.studio-page{padding-top:40px}
.studio-hero{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:end;margin-bottom:34px}
.studio-hero h1{font-size:clamp(2.6rem,5vw,5rem)}
.studio-hero .hero-lead{margin:18px 0 0}
.studio-hero .facts{display:grid;gap:10px}
.studio-hero .facts div{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--c-line);background:var(--c-card);font-size:13.5px;color:#c3c8d1}
.studio-hero .facts i{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 12px var(--c);flex:none}
.studio-form{display:grid;gap:18px;padding:28px;border-radius:28px;border:1px solid var(--c-line);background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02))}
.f-step{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.f-step:last-of-type{border-bottom:0}
.f-step>header .eyebrow{display:block;margin-bottom:8px}.f-step>header h3{font-size:1.2rem}.f-step>header p{font-size:13px;color:#8f96a3;line-height:1.5;margin:8px 0 0}
.space-pick{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.space-opt{position:relative;margin:0 !important;display:block !important;cursor:pointer}
.space-opt input{position:absolute;opacity:0;pointer-events:none}
.space-opt span{display:flex;flex-direction:column;justify-content:flex-end;height:132px;padding:12px;border-radius:16px;border:1px solid var(--c-line);background-size:cover;background-position:center;position:relative;overflow:hidden;color:#f2efe7;transition:.25s}
.space-opt span:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,8,12,.1),rgba(6,8,12,.86));z-index:0}
.space-opt b,.space-opt small{position:relative;z-index:1}.space-opt b{font-size:14px}.space-opt small{font-size:11px;color:#b9bfca;line-height:1.35;margin-top:3px}
.space-opt input:checked+span{border-color:#d9b574;box-shadow:0 0 0 2px rgba(217,181,116,.45),0 14px 40px rgba(0,0,0,.35);transform:translateY(-2px)}
.space-opt input:focus-visible+span{outline:2px solid #8da7ff;outline-offset:2px}
.pill-row{display:flex;flex-wrap:wrap;gap:8px}
.pill-opt{margin:0 !important;display:inline-block !important;cursor:pointer}
.pill-opt input{position:absolute;opacity:0;pointer-events:none}
.pill-opt span{display:inline-block;padding:10px 14px;border-radius:999px;border:1px solid var(--c-line);background:rgba(255,255,255,.04);font-size:13.5px;color:#c8ccd6;transition:.2s}
.pill-opt input:checked+span{background:#f2efe7;color:#11141a;border-color:#f2efe7;font-weight:700}
.pill-opt input:focus-visible+span{outline:2px solid #8da7ff;outline-offset:2px}
.dims{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.field{display:grid !important;gap:6px !important;margin:0 !important;font-size:12.5px !important;color:#a8aeba !important}
.field input,.field select{width:100%;min-height:46px;padding:0 14px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(8,10,15,.6);color:#f2efe7;font:inherit;font-size:15px}
.field input:focus,.field select:focus{outline:none;border-color:#d9b574;box-shadow:0 0 0 3px rgba(217,181,116,.18)}
.field small{color:#6f7684;font-size:11px}
.check{display:flex !important;align-items:center;gap:10px;margin:0 !important;font-size:14px !important;color:#c8ccd6 !important;min-height:46px}
.check input{width:18px;height:18px;accent-color:#d9b574}
.area-readout{font:12px var(--mono);color:#8f96a3;margin-top:10px}
.drop{display:grid;place-items:center;text-align:center;gap:6px;padding:26px;border-radius:18px;border:1.5px dashed rgba(255,255,255,.2);background:rgba(255,255,255,.025);cursor:pointer;transition:.2s}
.drop:hover,.drop.over{border-color:#d9b574;background:rgba(217,181,116,.06)}
.drop b{font-size:15px}.drop small{color:#8f96a3}
.photo-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:12px}
.photo-thumb{position:relative;margin:0;border-radius:14px;overflow:hidden;border:1px solid var(--c-line);aspect-ratio:4/3;background:#10141b}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.photo-thumb figcaption{position:absolute;left:0;right:0;bottom:0;padding:5px 8px;font-size:10.5px;background:rgba(6,8,12,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-x{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(6,8,12,.75);color:#fff;cursor:pointer;font-size:16px;line-height:1}
.form-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding-top:6px}
.form-actions .muted{font-size:13px}
/* result */
.result{margin-top:56px;scroll-margin-top:96px}
.res-head{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;margin-bottom:18px}
.res-head h2{font-size:clamp(1.8rem,2.6vw,2.7rem)}
.res-dims{color:#aab0bd;margin:10px 0 0}
.res-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.res-stats div{padding:7px 12px;border-radius:14px;border:1px solid var(--c-line);background:var(--c-card)}
.res-stats strong{display:block;font-size:16px}.res-stats small{color:#8f96a3;font-size:11.5px}
.dl-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.dl-row .btn{min-height:42px;padding:0 14px;font-size:14px}
.btn.ghost{background:rgba(255,255,255,.06);color:#f2efe7}
.dl-status{font:12px var(--mono);color:#8ce1bb;text-align:right;margin-top:8px;min-height:16px}
.res-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.viewer-wrap{position:relative;border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#07090d;height:min(70vh,680px);min-height:440px;box-shadow:0 30px 90px rgba(0,0,0,.4)}
.viewer{position:absolute;inset:0}
.viewer canvas{display:block;touch-action:none}
.viewer-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.pin-label{position:absolute;left:0;top:0;pointer-events:auto;display:inline-flex;align-items:center;gap:6px;transform-origin:0 0;margin:-13px 0 0 -13px;padding:3px 9px 3px 3px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(8,10,15,.74);backdrop-filter:blur(6px);color:#eef0f4;font:600 11px/1 var(--sans);cursor:pointer;white-space:nowrap;transition:background .2s,border-color .2s}
.pin-label b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 4px;border-radius:999px;background:var(--c);color:#0b0d12;font:800 10.5px/1 var(--mono);box-shadow:0 0 12px var(--c)}
.pin-label:hover,.pin-label.active{background:rgba(20,24,34,.95);border-color:var(--c);z-index:5}
.viewer-overlay.compact .pin-label{padding:3px}.viewer-overlay.compact .pin-label span{display:none}
.viewer-overlay.compact .pin-label:hover span,.viewer-overlay.compact .pin-label.active span{display:inline;padding-right:6px}
.room-label{position:absolute;left:0;top:0;transform-origin:0 0;margin:0 0 0 -40px;width:80px;text-align:center;font:700 9.5px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);text-shadow:0 1px 6px #000;pointer-events:none}
.viewer-bar{position:absolute;left:14px;right:14px;top:14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;pointer-events:none;z-index:3}
.viewer-bar>*{pointer-events:auto}
.segs{display:inline-flex;gap:3px;padding:4px;border-radius:14px;background:rgba(8,10,15,.7);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px)}
.seg{border:0;background:transparent;color:#c8ccd6;padding:8px 12px;border-radius:10px;font:600 12.5px var(--sans);cursor:pointer}
.seg.on{background:#f2efe7;color:#11141a}
.viewer-tools{display:flex;gap:8px;flex-wrap:wrap}
.tog{display:inline-flex !important;align-items:center;gap:7px;margin:0 !important;padding:8px 11px;border-radius:12px;background:rgba(8,10,15,.7);border:1px solid rgba(255,255,255,.12);font-size:12.5px !important;color:#c8ccd6 !important;cursor:pointer}
.tog input{accent-color:#d9b574}
.viewer-foot{position:absolute;left:14px;right:14px;bottom:14px;display:flex;justify-content:space-between;gap:10px;align-items:flex-end;pointer-events:none;z-index:3}
.hint{font-size:11.5px;color:rgba(255,255,255,.55);background:rgba(8,10,15,.55);padding:7px 10px;border-radius:10px}
.palette-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:12px;background:rgba(8,10,15,.7);border:1px solid rgba(255,255,255,.12);font-size:12px;color:#d8dbe2}
.palette-chip i{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.25)}
.palette-chip span{margin-right:4px}
.viewer-error{position:absolute;inset:auto 20px 70px 20px;padding:14px;border-radius:12px;background:rgba(255,119,119,.12);border:1px solid rgba(255,119,119,.4);color:#ffd2d2;z-index:4}
.side-panel{display:grid;gap:14px}
.panel{padding:20px;border-radius:22px;border:1px solid var(--c-line);background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02))}
.panel h3{font-size:1.15rem;margin-bottom:12px}
.legend{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.legend li{display:grid;grid-template-columns:16px 1fr auto;gap:10px;align-items:center;font-size:13.5px;color:#c8ccd6}
.legend i{width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}
.legend b{font:700 12px var(--mono);color:#f0dfbc}
.notes{margin:0;padding-left:18px;color:#aab0bd;font-size:13px;line-height:1.6}.notes li{margin-bottom:8px}
.fx-list{display:grid;gap:10px;max-height:none}
.fx-room{border:1px solid var(--c-line);border-radius:18px;background:rgba(255,255,255,.025);overflow:hidden}
.fx-room summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-weight:700}
.fx-room summary::-webkit-details-marker{display:none}
.fx-room summary small{font:600 11px var(--mono);color:#8f96a3}
.fx-item{padding:13px 16px;border-top:1px solid rgba(255,255,255,.06);border-left:3px solid var(--c);transition:background .2s}
.fx-item.hi,.fx-item:hover,.fx-item.flash{background:rgba(255,255,255,.05)}
.fx-head{display:flex;align-items:center;gap:10px}
.fx-id{font:800 11px var(--mono);padding:3px 7px;border-radius:999px;background:var(--c);color:#0b0d12}
.fx-head h4{margin:0;font-size:14.5px;flex:1}
.fx-qty{font:700 13px var(--mono);color:#f0dfbc;white-space:nowrap}.fx-qty small{color:#8f96a3;font-weight:500}
.fx-meta{margin:6px 0 0;font-size:12px;color:#8f96a3}.fx-meta span{color:#c5ad82}
.fx-bulb{margin:6px 0 0;font:12px/1.5 var(--mono);color:#cfd3db}.fx-bulb em{color:#9aa1ae;font-style:normal}
.fx-why{margin:6px 0 0;font-size:13px;line-height:1.55;color:#aab0bd}
.res-section{margin-top:56px}
.res-section .section-head{margin-bottom:24px}
.list-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.styles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.style-card{display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:24px;border:1px solid var(--c-line);background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02));transition:border-color .3s}
.style-card.applied{border-color:rgba(217,181,116,.6);box-shadow:0 0 0 1px rgba(217,181,116,.25),0 20px 60px rgba(0,0,0,.3)}
.style-card h3{font-size:1.7rem;margin-top:8px}
.style-card .muted{margin:8px 0 0;font-size:13.5px;line-height:1.55}
.swatches{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.swatches li{display:grid;gap:6px}
.swatches i{display:block;height:58px;border-radius:12px;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 -12px 20px rgba(0,0,0,.08)}
.swatches b{font:700 10.5px var(--mono);color:#e6e2d8}
.swatches small{font-size:10.5px;color:#8f96a3;line-height:1.3}.swatches em{font-style:normal;color:#c5ad82;text-transform:uppercase;font-size:9px;letter-spacing:.1em}
.style-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.style-cols h5{margin:0 0 6px;font:700 10px var(--mono);letter-spacing:.14em;color:#8f96a3;text-transform:uppercase}
.style-cols ul{margin:0;padding-left:16px;font-size:13px;color:#b7bcc6;line-height:1.55}
.style-mood{margin:0;font-size:13px;color:#cfd3db;line-height:1.55;padding:12px;border-radius:12px;background:rgba(255,255,255,.04)}
.style-mood b{display:block;font:700 10px var(--mono);letter-spacing:.14em;color:#d2b47e;text-transform:uppercase;margin-bottom:4px}
.style-card .btn{margin-top:auto}
.res-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.res-photo{margin:0;border-radius:20px;overflow:hidden;border:1px solid var(--c-line);background:var(--c-card)}
.res-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.res-photo figcaption{padding:12px 14px;font-size:13px;line-height:1.55;color:#aab0bd}.res-photo figcaption b{color:#f0dfbc;margin-right:6px}
.report{display:none}
body.report-mode .report{display:block}
body.report-mode>*:not(.report):not(script){display:none !important}
.report{padding:30px 0 60px;background:#e9e6df;min-height:100vh;color:#15171c}
.report-bar{width:min(900px,calc(100% - 32px));margin:0 auto 18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.report-bar .muted{color:#6a6f78;font-size:13px}
.report-page{width:min(900px,calc(100% - 32px));margin:0 auto;background:#fff;color:#15171c;padding:44px 48px;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.18);font-size:13px}
.report-page h1{font-size:2.4rem;letter-spacing:-.03em;margin:22px 0 4px;color:#111}
.report-page h2{font-size:1.25rem;letter-spacing:-.01em;margin:26px 0 10px;color:#111}
.report-page h3{font-size:1rem;margin:0 0 8px;color:#111}.report-page h4{margin:14px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6a6f78}
.r-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #111;padding-bottom:14px}
.r-head .brand{color:#111}.r-head .logo-mark{background:#111;color:#f2efe7;border-color:#111}
.r-meta{text-align:right;display:grid;font-size:12px;color:#555}.r-meta b{color:#111;font-size:13px}
.r-sub{color:#555;margin:0 0 18px}
.r-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;align-items:start}
.r-shot{margin:0}.r-shot img{width:100%;border-radius:6px;display:block;border:1px solid #ddd}.r-shot figcaption{font-size:11px;color:#777;margin-top:6px}
.r-facts dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 16px}.r-facts dt{color:#666}.r-facts dd{margin:0;font-weight:700}
.r-palette ul{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:5px}
.r-palette li{display:flex;align-items:center;gap:10px}.r-palette i{width:30px;height:20px;border-radius:4px;border:1px solid rgba(0,0,0,.15);flex:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.r-palette em{color:#888;font-style:normal;font-size:11px;text-transform:uppercase}
.r-table{width:100%;border-collapse:collapse;font-size:12px}
.r-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#666;border-bottom:1.5px solid #111;padding:6px 6px}
.r-table td{border-bottom:1px solid #e3e3e3;padding:7px 6px;vertical-align:top}.r-table small{color:#666}
.r-id{display:inline-block;font:800 10.5px var(--mono);padding:2px 6px;border-radius:999px;background:var(--c);color:#111;border:1px solid rgba(0,0,0,.2);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.r-table tr{break-inside:avoid}
.r-two{display:grid;grid-template-columns:1fr 1fr;gap:26px}.r-two ul{padding-left:16px;margin:0;line-height:1.55}
.r-photos{display:grid;grid-template-columns:1fr 1fr;gap:8px}.r-photos figure{margin:0}.r-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}.r-photos figcaption{font-size:10px;color:#666}
.r-foot{margin-top:26px;padding-top:12px;border-top:1px solid #ddd;font-size:10.5px;color:#777}
@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff !important}
  body>*:not(.report){display:none !important}
  .report{display:block !important;padding:0;background:#fff;min-height:0}
  .no-print,.report-bar{display:none !important}
  .report-page{width:auto;box-shadow:none;padding:0;border-radius:0}
  .ambient{display:none}
}
/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .spaces-grid{grid-template-columns:repeat(2,1fr)}.space-card.wide{grid-column:span 2}
  .deliver-grid{grid-template-columns:repeat(2,1fr)}
  .space-pick{grid-template-columns:repeat(4,1fr)}
  .res-grid{grid-template-columns:1fr}.list-grid{grid-template-columns:1fr}
  .styles{grid-template-columns:1fr 1fr}
  .plan-cards{grid-template-columns:1fr}
}
@media (max-width:760px){
  .spaces-grid{grid-template-columns:minmax(0,1fr)}.space-card.wide{grid-column:auto}.space-card{min-height:300px}
  .gallery{grid-template-columns:minmax(0,1fr);grid-auto-rows:240px}.gallery figure{grid-column:auto !important;grid-row:auto !important}
  .deliver-grid{grid-template-columns:minmax(0,1fr)}
  .studio-hero{grid-template-columns:minmax(0,1fr)}
  .f-step{grid-template-columns:minmax(0,1fr);gap:12px}
  .space-pick{grid-template-columns:repeat(2,1fr)}
  .dims{grid-template-columns:repeat(2,minmax(0,1fr))}
  .res-head{grid-template-columns:minmax(0,1fr)}.dl-row{justify-content:flex-start}.dl-status{text-align:left}
  .viewer-wrap{height:62vh;min-height:380px}
  .styles{grid-template-columns:minmax(0,1fr)}
  .report-page{padding:24px 18px}.r-grid,.r-two{grid-template-columns:minmax(0,1fr)}
  .space-chips{display:none}
  .studio-form{padding:18px}
  .viewer-bar{left:10px;right:10px;top:10px;gap:6px}.viewer-tools{gap:5px;align-items:flex-start}.viewer-bar .seg,.viewer-bar .tog{padding:6px 9px;font-size:11.5px !important;min-height:0 !important;height:auto !important;line-height:1.2}
}
@media (prefers-reduced-motion:reduce){.story-card{transform:none !important}.space-card img,.space-card{transition:none}}
/* first story card visible on load + nav CTA contrast fix */
.story-steps{margin-top:-100svh}
.glass-nav a.nav-buy,.glass-nav a.nav-buy:hover{color:#11141a;font-weight:750}
.viewer-overlay.compact .pin-label b{min-width:17px;height:17px;font-size:9.5px;box-shadow:none}
.viewer-overlay.compact .pin-label{margin:-10px 0 0 -10px;background:rgba(8,10,15,.55)}

/* keep page grids from growing past the viewport (wide compare table) */
.page-cinema{grid-template-columns:minmax(0,1fr)}
.pill-opt{position:relative}.pill-opt input,.space-opt input{width:1px !important;height:1px !important;min-height:0 !important;padding:0 !important;margin:0 !important}
.tog input{width:auto !important;height:auto !important;min-height:0 !important;margin:0 !important;padding:0 !important}

/* ===================== round 3: cinematic 3D framing ===================== */
.story-letterbox{position:absolute;inset:0;z-index:3;pointer-events:none}
.story-letterbox:before,.story-letterbox:after{content:"";position:absolute;left:0;right:0;height:var(--lb,9vh);background:#000;transition:height 1.2s cubic-bezier(.2,.7,.1,1)}
.story-letterbox:before{top:0}.story-letterbox:after{bottom:0}
.story-shell:not(.webgl-on) .story-letterbox{--lb:0px}
.story-shell.webgl-on .story-vignette{opacity:.75}
.story-progress{bottom:calc(var(--lb,9vh) / 2) !important}
.story-side-note{bottom:calc(var(--lb,9vh) + 14px) !important}
@media (max-width:760px){.story-letterbox{--lb:5vh}}

/* ===================== photo story (sticky full-bleed chapters) ===================== */
.photo-story{position:relative;height:calc(var(--n,13) * 82svh + 100svh);background:#030405}
.ps-sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:#030405}
.ps-frames,.ps-frame{position:absolute;inset:0;margin:0}
.ps-frames{z-index:0}
.ps-shade{z-index:1}
.ps-frame{opacity:0;visibility:hidden}
.ps-frame picture,.ps-frame img{position:absolute;inset:0;width:100%;height:100%;display:block}
.ps-frame img{object-fit:cover;transform:scale(var(--z,1.08)) translate3d(var(--px,0),var(--py,0),0)}
.ps-frame.live img{will-change:transform}
.ps-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(3,4,6,.9) 0%,rgba(3,4,6,.74) 30%,rgba(3,4,6,.3) 52%,rgba(3,4,6,0) 72%,rgba(3,4,6,.25) 100%),linear-gradient(180deg,rgba(3,4,6,.55) 0%,rgba(3,4,6,0) 22%,rgba(3,4,6,0) 70%,rgba(3,4,6,.7) 100%),radial-gradient(ellipse at 60% 50%,transparent 55%,rgba(0,0,0,.45) 100%)}
.ps-bars{position:absolute;inset:0;pointer-events:none;z-index:2}
.ps-bars:before,.ps-bars:after{content:"";position:absolute;left:0;right:0;height:7vh;background:#020304}
.ps-bars:before{top:0}.ps-bars:after{bottom:0}
.ps-top{position:absolute;z-index:4;top:calc(7vh + 92px);left:max(28px,5vw);right:max(28px,5vw);display:flex;justify-content:space-between;gap:16px;align-items:center;color:rgba(255,255,255,.66);font:700 10px/1.2 var(--mono);letter-spacing:.17em}
.ps-top .eyebrow{margin:0}
.ps-part{color:#e6c88f}
.ps-count b{color:#fff;font-size:13px}
.ps-caps{position:absolute;inset:0;z-index:3;pointer-events:none}
.ps-cap{position:absolute;left:max(28px,5vw);top:50%;width:min(600px,44vw);transform:translate3d(0,calc(-50% + var(--cy,0px)),0);opacity:0;visibility:hidden;text-shadow:0 6px 30px rgba(0,0,0,.55)}
.ps-cap.on{visibility:visible;pointer-events:auto}
.ps-cap:before{content:"";position:absolute;inset:-70px -110px -70px -90px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 40% 50%,rgba(3,4,6,.72),rgba(3,4,6,.35) 45%,rgba(3,4,6,0) 70%)}
.ps-chapter{display:inline-block;font:700 10.5px/1.2 var(--mono);letter-spacing:.2em;color:#e6c88f;padding:7px 10px;border:1px solid rgba(230,200,143,.35);border-radius:999px;background:rgba(10,12,16,.45)}
.ps-cap h2{font-size:clamp(2.6rem,5vw,5.4rem);line-height:.95;letter-spacing:-.035em;margin:18px 0 0}
.ps-cap p{font-size:clamp(1rem,1.25vw,1.2rem);line-height:1.65;color:#d5d8de;margin:18px 0 0;max-width:540px}
.ps-note{display:block;margin-top:16px;font:600 11px/1.4 var(--mono);letter-spacing:.06em;color:rgba(255,255,255,.55)}
.ps-note:before{content:"";display:inline-block;width:18px;height:1px;background:rgba(255,255,255,.4);vertical-align:middle;margin-right:8px}
.ps-cap .hero-actions{margin-top:22px}
.ps-rail{position:absolute;z-index:4;right:max(22px,3vw);top:50%;transform:translateY(-50%);display:grid;gap:4px}
.ps-rail button{display:flex;align-items:center;justify-content:flex-end;gap:10px;border:0;background:transparent;color:rgba(255,255,255,.45);font:600 10.5px/1 var(--sans);letter-spacing:.02em;cursor:pointer;padding:4px 0;text-align:right}
.ps-rail button span{opacity:0;transform:translateX(6px);transition:.3s;white-space:nowrap}
.ps-rail button i{width:7px;height:7px;border-radius:50%;border:1px solid rgba(255,255,255,.5);transition:.3s;flex:none}
.ps-rail button.on{color:#fff}.ps-rail button.on span,.ps-rail:hover button span{opacity:1;transform:none}
.ps-rail button.on i{background:#e6c88f;border-color:#e6c88f;box-shadow:0 0 12px rgba(230,200,143,.8);transform:scale(1.25)}
.ps-rail button.done i{background:rgba(255,255,255,.5)}
.ps-progress{position:absolute;z-index:4;left:max(28px,5vw);right:max(28px,5vw);bottom:3.5vh;height:1px;background:rgba(255,255,255,.18)}
.ps-progress span{display:block;height:100%;transform-origin:left;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#f4e5c6,#d8a757,#95aef9)}
.ps-credit{position:absolute;z-index:4;right:max(28px,5vw);bottom:calc(7vh + 12px);margin:0;font:600 9.5px/1.3 var(--mono);letter-spacing:.08em;color:rgba(255,255,255,.4)}
@media (max-width:760px){
  .photo-story{height:calc(var(--n,13) * 72svh + 100svh)}
  .ps-bars:before,.ps-bars:after{height:4vh}
  .ps-top{top:calc(4vh + 78px);font-size:9px}.ps-top .eyebrow{display:none}
  .ps-shade{background:linear-gradient(180deg,rgba(3,4,6,.55) 0%,rgba(3,4,6,0) 25%,rgba(3,4,6,.15) 45%,rgba(3,4,6,.92) 78%,rgba(3,4,6,.98) 100%)}
  .ps-cap{left:20px;right:20px;width:auto;top:auto;bottom:calc(4vh + 34px);transform:translate3d(0,var(--cy,0px),0)}
  .ps-cap h2{font-size:clamp(2.2rem,10vw,3rem)}
  .ps-cap:before{inset:-40px -20px -30px -20px;background:radial-gradient(ellipse at 50% 60%,rgba(3,4,6,.7),rgba(3,4,6,0) 72%)}
  .ps-cap p{font-size:.98rem}
  .ps-rail{display:none}
  .ps-credit{display:none}
  .ps-progress{bottom:2vh;left:20px;right:20px}
}
@media (prefers-reduced-motion:reduce){.ps-frame img{transform:none !important}.ps-cap{transition:opacity .3s}}

/* ===================== photo captions (photos read as a story) ===================== */
.movie-media figcaption.photo-cap,.page-hero-media figcaption.photo-cap,.studio-shot figcaption.photo-cap,.space-card figcaption.photo-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;gap:6px;max-width:none;padding:56px clamp(18px,2.2vw,28px) clamp(18px,2vw,24px);border:0;border-radius:0;background:linear-gradient(180deg,rgba(6,8,12,0),rgba(6,8,12,.72) 45%,rgba(6,8,12,.92));backdrop-filter:none;color:#e9ebef;font:inherit;letter-spacing:normal;text-transform:none}
.photo-cap span{font:700 10px/1.2 var(--mono);letter-spacing:.18em;color:#e6c88f}
.photo-cap b{font-size:clamp(1.1rem,1.6vw,1.45rem);letter-spacing:-.02em;line-height:1.15;color:#fff}
.photo-cap small{font-size:13px;line-height:1.55;color:#c3c8d1;max-width:560px}
.studio-shot figcaption.photo-cap{padding-top:40px}
@media (max-width:760px){.story-letterbox:before{display:none}}

/* ===================== Order flow (demo) ===================== */
.order-page{padding-top:40px}
.order-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:28px;align-items:end;margin-bottom:26px}
.order-hero h1{font-size:clamp(2.2rem,4.4vw,3.6rem);letter-spacing:-.04em;margin:10px 0 12px}
.demo-flag{padding:16px 18px;border-radius:18px;border:1px dashed rgba(217,181,116,.55);background:rgba(217,181,116,.07);display:grid;gap:4px;font-size:13.5px;color:#cfd3dc}
.demo-flag b{color:#d9b574;font:700 11px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.order-steps{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:0;margin:0 0 30px;counter-reset:s}
.order-steps li{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid var(--c-line);background:rgba(255,255,255,.025);color:#8f96a3;font-size:13.5px;font-weight:600}
.order-steps li i{font-style:normal;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.2);font:700 12px var(--mono);flex:none}
.order-steps li.on{border-color:#d9b574;color:#f2efe7;background:rgba(217,181,116,.08)}.order-steps li.on i{background:#d9b574;color:#11141a;border-color:#d9b574}
.order-steps li.done{color:#c8ccd6}.order-steps li.done i{background:rgba(118,223,174,.16);border-color:#76dfae;color:#76dfae}
.o-step{animation:oIn .35s ease}@keyframes oIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.o-head{margin-bottom:20px}.o-head h2{font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.03em;margin:8px 0 6px}.o-head p{max-width:720px}
.o-actions{display:flex;align-items:center;gap:14px;justify-content:space-between;flex-wrap:wrap;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.07)}
.o-actions .btn-glow{margin-left:auto}.o-msg{color:#ffb38a;font-size:13.5px}.o-msg:empty{display:none}
.btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}
.demo-btn{background:transparent !important;border:1.5px dashed #d9b574 !important;color:#d9b574 !important}
.demo-btn:hover{background:rgba(217,181,116,.1) !important}
.pkg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pkg-card{position:relative;margin:0 !important;display:flex !important;flex-direction:column;border-radius:20px;border:1px solid var(--c-line);background:rgba(255,255,255,.03);overflow:hidden;cursor:pointer;transition:.25s}
.pkg-card input{position:absolute;opacity:0;width:1px !important;height:1px !important;min-height:0 !important;padding:0 !important;margin:0 !important}
.pkg-card:hover{border-color:rgba(255,255,255,.25);transform:translateY(-2px)}
.pkg-card.on{border-color:#d9b574;box-shadow:0 0 0 2px rgba(217,181,116,.4),0 18px 50px rgba(0,0,0,.35)}
.pkg-card:has(input:focus-visible){outline:2px solid #8da7ff;outline-offset:2px}
.pkg-img{display:block;height:118px;background-size:cover;background-position:center;position:relative}
.pkg-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,12,17,.8))}
.pkg-body{display:grid;gap:4px;padding:14px 16px 16px}.pkg-body b{font-size:16px;color:#f2efe7}.pkg-body small{color:#9aa1ad;font-size:12.5px;line-height:1.4;min-height:35px}
.pkg-price{display:flex;align-items:baseline;gap:6px;margin-top:6px}.pkg-price strong{font-size:18px;color:#f2efe7}.pkg-price em{font-style:normal;color:#8f96a3;font-size:12px}
.pkg-plan{font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#d9b574}
.pkg-sub{margin-top:18px;padding:18px 20px;border-radius:18px;border:1px solid var(--c-line);background:rgba(255,255,255,.025)}
.pkg-sub .eyebrow{display:block;margin-bottom:10px}.pkg-sub p{margin:0}
.pay-card{max-width:860px;padding:26px;border-radius:24px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02));box-shadow:0 30px 80px rgba(0,0,0,.3)}
.pay-sum{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:18px;align-items:center}
.pay-sum .pkg-img{height:84px;border-radius:14px;overflow:hidden}.pay-sum h3{font-size:1.5rem;margin:6px 0 2px}.pay-sum p{margin:0}
.pay-price{text-align:right}.pay-price strong{display:block;font-size:1.7rem;letter-spacing:-.02em}.pay-price small{color:#8f96a3}
.pay-list{margin:20px 0;padding:0;list-style:none;display:grid;gap:8px}.pay-list li{padding-left:24px;position:relative;color:#cfd3dc;font-size:14.5px}.pay-list li:before{content:"✦";position:absolute;left:0;color:#d9b574}
.pay-actions{display:flex;gap:12px;flex-wrap:wrap}
.pay-note{margin:16px 0 0;font-size:12.5px;color:#8f96a3;line-height:1.55}.pay-note code{font:600 12px var(--mono);color:#d9b574}
.o-panel{padding:20px 22px;border-radius:20px;border:1px solid var(--c-line);background:rgba(255,255,255,.025);margin-bottom:16px}
.o-panel[hidden]{display:none}.o-panel header{margin-bottom:14px}.o-panel header h3{font-size:1.15rem;margin:6px 0 2px}.o-panel header p{margin:0;font-size:13px}
.style-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.style-opt{position:relative;margin:0 !important;display:grid !important;gap:4px;padding:14px 16px;border-radius:16px;border:1px solid var(--c-line);cursor:pointer;background:rgba(8,10,15,.4)}
.style-opt input{position:absolute;opacity:0;width:1px !important;height:1px !important;min-height:0 !important;padding:0 !important}
.style-opt b{color:#f2efe7}.style-opt small{color:#8f96a3;font-size:12px}.style-opt .sw{display:flex;gap:4px;margin-top:6px}.style-opt .sw i{width:20px;height:20px;border-radius:6px;border:1px solid rgba(255,255,255,.15)}
.style-opt.on{border-color:#d9b574;background:rgba(217,181,116,.07)}
.area-list{display:grid;gap:12px;margin-bottom:16px}
.area-card{padding:16px 18px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035)}
.area-card.invalid{border-color:#ff8f6b}
.area-card header{display:flex;gap:12px;align-items:flex-end;margin-bottom:12px}
.area-num{font:700 13px var(--mono);color:#11141a;background:#d9b574;border-radius:10px;padding:8px 9px;flex:none;align-self:center}
.field.slim{min-width:160px}.field.grow{flex:1}
.area-del{flex:none;width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#c8ccd6;font-size:20px;cursor:pointer;align-self:flex-end;margin-bottom:3px}
.area-del:hover{border-color:#ff8f6b;color:#ff8f6b}
.area-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.area-read{margin:10px 0 0;font:600 11.5px var(--mono);color:#8f96a3}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip{padding:9px 13px;border-radius:999px;border:1px solid var(--c-line);background:rgba(255,255,255,.04);color:#d6d9e0;font:600 13px var(--sans);cursor:pointer}
.chip:hover{border-color:#d9b574;color:#f2efe7}
.area-count{font:600 12px var(--mono);color:#8f96a3}.area-count b{color:#d9b574}
.ph-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ph-card{padding:16px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03)}
.ph-card.ok{border-color:rgba(118,223,174,.45)}
.ph-card header{display:flex;gap:12px;align-items:center;margin-bottom:12px}.ph-card h4{margin:0;font-size:1.05rem}.ph-card header small{color:#8f96a3;font-size:12px}
.ph-count{margin-left:auto;font:600 11px var(--mono);color:#8f96a3}.ph-card.ok .ph-count{color:#76dfae}
.ph-drop{padding:18px}
.ph-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.ph-thumbs:empty{display:none}
.ph-thumbs figure{position:relative;margin:0;aspect-ratio:4/3;border-radius:10px;overflow:hidden}.ph-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.ph-thumbs button{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(8,10,15,.8);color:#fff;cursor:pointer;line-height:1}
/* dashboard */
.dash-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:20px}
.dash-head h1{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.04em;margin:8px 0 6px}.dash-head p{margin:0}.mono{font-family:var(--mono)}
.status-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--c-line);font:700 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#f2efe7;background:rgba(255,255,255,.05);font-style:normal}
.status-pill i{width:8px;height:8px;border-radius:50%;background:#ffd27a;box-shadow:0 0 10px #ffd27a}
.status-pill.s-generated i{background:#76dfae;box-shadow:0 0 10px #76dfae}.status-pill.s-awaiting_payment i{background:#ff8f6b;box-shadow:0 0 10px #ff8f6b}
.timeline{list-style:none;padding:0;margin:0 0 26px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.timeline li{position:relative;padding:14px 14px 14px 36px;border-radius:14px;border:1px solid var(--c-line);background:rgba(255,255,255,.025);display:grid;gap:2px}
.timeline li i{position:absolute;left:14px;top:18px;width:11px;height:11px;border-radius:50%;border:2px solid #5d6370}
.timeline li.done i{background:#76dfae;border-color:#76dfae}.timeline li.future{opacity:.6;border-style:dashed}
.timeline b{font-size:13.5px}.timeline small{color:#8f96a3;font-size:11.5px}.timeline em{font-style:normal;color:#aab0bb;font-size:11.5px}
.gen-box{padding:28px;border-radius:22px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035);max-width:760px}
.gen-box h3{margin:10px 0 14px;font-size:1.3rem}.gen-box.err h3{color:#ff8f6b}
.gen-track{height:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}.gen-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#d9b574,#ffd27a);transition:width .3s}
.dash-actions{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;padding:18px 20px;border-radius:20px;border:1px solid rgba(217,181,116,.35);background:rgba(217,181,116,.06);margin-bottom:18px}
.dash-actions p{margin:4px 0 0}.dash-actions .dl-status{flex-basis:100%;text-align:right;margin:0;font-size:12px;color:#8f96a3}
.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px;scrollbar-width:thin}
.tab{flex:none;padding:10px 15px;border-radius:12px;border:1px solid var(--c-line);background:rgba(255,255,255,.03);color:#c8ccd6;font:600 13.5px var(--sans);cursor:pointer;white-space:nowrap}
.tab.on{background:#f2efe7;color:#11141a;border-color:#f2efe7}
.dash-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.tab-side .panel{padding:18px}.small{font-size:12.5px}.tab-side .muted.small{margin:-6px 0 4px}
.file-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.file-btn{display:grid;gap:2px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--c-line);background:rgba(8,10,15,.45);color:#f2efe7;cursor:pointer;font:inherit}
.file-btn:hover{border-color:#d9b574}.file-btn b{font-size:13px}.file-btn small{color:#8f96a3;font:500 10.5px var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-btn.k-glb b:before,.file-btn.k-obj b:before{content:"◆ ";color:#8da7ff}.file-btn.k-png b:before{content:"▣ ";color:#e48cff}.file-btn.k-csv b:before,.file-btn.k-json b:before{content:"≡ ";color:#76dfae}.file-btn.k-html b:before{content:"⧉ ";color:#ffd27a}
.tab-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tab-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.tab-photos figure{margin:0}.tab-photos figcaption{font-size:11px;color:#9aa1ad;margin-top:3px}
.lights-sec summary{cursor:pointer;list-style:none;display:flex;gap:12px;align-items:baseline;padding:16px 18px;border-radius:16px;border:1px solid var(--c-line);background:rgba(255,255,255,.03)}
.lights-sec summary::-webkit-details-marker{display:none}.lights-sec summary:after{content:"Show ▾";margin-left:auto;font:600 12px var(--mono);color:#8f96a3}.lights-sec[open] summary:after{content:"Hide ▴"}
.table-scroll{overflow-x:auto;margin-top:10px;border-radius:14px;border:1px solid var(--c-line)}
.data-table{width:100%;border-collapse:collapse;font-size:12.5px}
.data-table th,.data-table td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;vertical-align:top}
.data-table thead th{position:sticky;top:0;background:#151820;color:#aab0bb;font:700 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.data-table td.why{color:#9aa1ad;min-width:280px}.kdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:6px}
.file-table tr.dir th{background:rgba(217,181,116,.08);color:#d9b574;font:700 12px var(--mono)}
.mini-btn{padding:5px 10px;border-radius:9px;border:1px solid var(--c-line);background:rgba(255,255,255,.05);color:#f2efe7;font:600 12px var(--sans);cursor:pointer}.mini-btn:hover{border-color:#d9b574}
.decor-area{border:1px solid var(--c-line);border-radius:18px;background:rgba(255,255,255,.025);margin-bottom:10px;overflow:hidden}
.decor-area summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;padding:14px 18px;font-weight:700}.decor-area summary::-webkit-details-marker{display:none}
.decor-area summary small{font:600 11px var(--mono);color:#8f96a3}
.decor-rows{display:grid}
.decor-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:16px;padding:14px 18px;border-top:1px solid rgba(255,255,255,.06);align-items:start}
.di-cat{font:700 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#d9b574}.decor-item h4{margin:3px 0 4px;font-size:15px}
.di-size{margin:0;color:#f2efe7;font-size:13.5px}.di-size em{color:#d9b574;font-style:normal;font-weight:700}
.di-why{margin:0;color:#aab0bb;font-size:13px;line-height:1.5}.di-why small{color:#7f8693}
.di-links{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.di-links a{padding:6px 10px;border-radius:999px;font:700 11.5px var(--sans);text-decoration:none;color:#fff;background:#232733;border:1px solid rgba(255,255,255,.12)}
.di-links a:nth-child(1){background:#2b2418;border-color:#7a5f2c}.di-links a:nth-child(2){background:#0d2a45;border-color:#0058a3}.di-links a:nth-child(3){background:#2d1638;border-color:#7b189f}
.di-links a:hover{filter:brightness(1.3)}
.zip-tree{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;font-family:var(--mono);font-size:12px}
.zt-root{grid-column:1/-1;font-weight:700;color:#d9b574;font-size:14px}
.zt-dir{padding:12px 14px;border-radius:14px;border:1px solid var(--c-line);background:rgba(255,255,255,.03)}
.zt-name{font-weight:700;color:#f2efe7;margin-bottom:6px}.zt-dir ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.zt-dir li{display:flex;justify-content:space-between;gap:8px;color:#c8ccd6}.zt-dir li small{color:#7f8693}
.backend-note{padding:18px 20px;border-radius:18px;border:1px dashed rgba(255,255,255,.18);color:#aab0bb}.backend-note p{margin:6px 0 0}
.order-list{list-style:none;padding:0;display:grid;gap:8px}.order-list a{display:flex;gap:14px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--c-line);color:#f2efe7;text-decoration:none}
.order-list a span{color:#9aa1ad}.order-list .status-pill{margin-left:auto}
.offscreen-render{position:fixed;left:-20000px;top:0;width:1600px;height:1000px;pointer-events:none}
@media (max-width:1100px){.pkg-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.area-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-grid{grid-template-columns:minmax(0,1fr)}.timeline{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.order-hero{grid-template-columns:minmax(0,1fr)}.order-steps{grid-template-columns:repeat(5,auto);overflow-x:auto}.order-steps li span{display:none}.order-steps li.on span{display:inline}
.pkg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pkg-img{height:90px}.style-pick{grid-template-columns:minmax(0,1fr)}.area-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.area-card header{flex-wrap:wrap}.field.slim{min-width:0;flex:1 1 40%}
.ph-list{grid-template-columns:minmax(0,1fr)}.pay-sum{grid-template-columns:72px minmax(0,1fr)}.pay-price{grid-column:1/-1;text-align:left}
.dash-head{flex-direction:column;align-items:flex-start}.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.decor-item{grid-template-columns:minmax(0,1fr)}.di-links{justify-content:flex-start}.file-btns{grid-template-columns:minmax(0,1fr)}
.o-actions .btn-glow{margin-left:0;width:100%}}
.segs[hidden]{display:none !important}
.area-card .field select{height:46px;min-height:46px;margin:0 !important;padding:0 12px}
.area-card .field{align-content:start}
.pkg-alt{justify-content:flex-end;border-style:dashed;background:radial-gradient(120% 90% at 100% 0%,rgba(217,181,116,.12),transparent 60%),rgba(255,255,255,.02);text-decoration:none}
.pkg-alt .pkg-body{padding:18px 16px}.pkg-alt .pkg-body small{min-height:0}
.zt-dir.whole{border-color:rgba(217,181,116,.45)}.zt-dir li.ph span{color:#9aa1ad}.zt-dir li.ph span:before{content:"↳ ";color:#5d6370}
.zip-list{padding-top:12px}.zip-list .section-head p{max-width:420px}
#fileTable td:nth-child(2){width:120px;text-align:right;color:var(--muted,#9aa0a6);font-variant-numeric:tabular-nums}
#fileTable td:last-child{width:130px;text-align:right}
#fileTable td{vertical-align:middle}

/* ===================== homepage film (one sticky stage, scroll-scrubbed) ===================== */
.home-film{position:relative;overflow:clip;background:#030405}
.fm{position:relative;height:calc(var(--total,20) * 100svh + 100svh);background:#030405}
.fm-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#04060a;isolation:isolate;--lb:13vh}
.fm-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}
.fm-fallback{position:absolute;inset:0;z-index:0;display:none}
.fm-fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:brightness(.55) saturate(.95)}
.fm.no-webgl .fm-fallback{display:block}.fm.no-webgl .fm-canvas{display:none}
.fm-shade-3d{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(4,6,10,.78) 0%,rgba(4,6,10,.4) 30%,rgba(4,6,10,0) 56%),radial-gradient(ellipse at 62% 50%,transparent 50%,rgba(0,0,0,.5) 100%)}
.fm-frames{position:absolute;inset:0;z-index:2}
.fm-frame{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;overflow:hidden}
.fm-frame picture,.fm-frame img{position:absolute;inset:0;width:100%;height:100%;display:block}
.fm-frame img{object-fit:cover;transform:scale(1.06);will-change:transform}
.fm-shade-photo{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;visibility:hidden;background:linear-gradient(90deg,rgba(3,4,6,.9) 0%,rgba(3,4,6,.7) 28%,rgba(3,4,6,.22) 52%,rgba(3,4,6,0) 70%,rgba(3,4,6,.25) 100%),radial-gradient(ellipse at 60% 50%,transparent 55%,rgba(0,0,0,.45) 100%)}
/* montage wall */
.fm-wall-wrap{position:absolute;inset:0;z-index:4;opacity:0;visibility:hidden;overflow:hidden;background:#030405}
.fm-wall{position:absolute;left:0;top:0;width:100%;height:100%;box-sizing:border-box;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:12px;padding:calc(7vh + 56px) calc(3.2vw + 26px) calc(7vh + 236px) 3.2vw;transform-origin:0 0;--lab:1}
.fm-tile{position:relative;border-radius:16px;overflow:hidden;background:#0b0e14 var(--bg) center/cover no-repeat;box-shadow:0 20px 50px rgba(0,0,0,.45);color:#fff;text-decoration:none}
.fm-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.72));opacity:var(--lab)}
.fm-tile span{position:absolute;left:16px;bottom:14px;z-index:1;font:650 clamp(1.05rem,1.6vw,1.5rem)/1 var(--sans);letter-spacing:-.02em;opacity:var(--lab)}
.fm-tile-cta{background:linear-gradient(150deg,rgba(217,181,116,.28),rgba(141,167,255,.12)),#0c0f16;border:1px solid rgba(217,181,116,.4)}
.fm-tile-cta:after{display:none}
.fm-tile-cta span{top:16px;bottom:auto}
.fm-tile-cta small{position:absolute;left:16px;bottom:14px;font:700 11px var(--mono);letter-spacing:.12em;color:#f0dfbc;opacity:var(--lab)}
.fm-tile:hover{outline:1px solid rgba(240,223,188,.6)}
/* studio screen */
.fm-screen-wrap{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;padding:0 4.5vw;perspective:1500px;opacity:0;visibility:hidden;pointer-events:none}
.fm-screen{margin:0;width:min(56vw,1000px);border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.16);background:#0b0e14;box-shadow:0 50px 120px rgba(0,0,0,.6),0 0 0 6px rgba(255,255,255,.03);transform-origin:50% 100%;will-change:transform}
.fm-screen img{display:block;width:100%;height:auto}
.fm-screen figcaption{padding:10px 14px;font:700 10px var(--mono);letter-spacing:.16em;color:rgba(255,255,255,.55);border-top:1px solid rgba(255,255,255,.08)}
/* deliverables */
.fm-deliver{position:absolute;z-index:6;right:4.5vw;top:50%;transform:translateY(-50%);width:min(560px,42vw);list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;pointer-events:none}
.fm-deliver li{opacity:0;visibility:hidden;display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:start;padding:16px 16px 15px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(150deg,rgba(14,17,24,.92),rgba(10,12,17,.82));box-shadow:0 20px 50px rgba(0,0,0,.4)}
.fm-deliver i{grid-row:span 2;width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--c);box-shadow:0 0 16px var(--c)}
.fm-deliver b{font-size:15px;color:#f2efe7}
.fm-deliver small{font-size:12.5px;line-height:1.45;color:#9aa1ad;margin-top:3px}
.fm-glow{position:absolute;z-index:7;left:58%;top:30%;width:44vw;height:44vw;margin:-22vw 0 0 -22vw;border-radius:50%;background:radial-gradient(circle,rgba(255,196,128,.55),rgba(255,170,90,.12) 40%,transparent 68%);opacity:0;visibility:hidden;pointer-events:none;mix-blend-mode:screen}
.fm-dip{position:absolute;inset:0;z-index:8;background:#030405;opacity:0;visibility:hidden;pointer-events:none}
/* opening titles */
.fm-title{position:absolute;inset:0;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(13vh + 40px) 6vw 13vh;will-change:transform,opacity}
.fm-logo{display:flex;align-items:center;gap:14px}
.fm-logo .logo-mark{transform:scale(1.25)}
.fm-word{font:650 clamp(1.4rem,2.2vw,2rem)/1 var(--sans);letter-spacing:-.02em;color:#f4efe4}
.fm-presents{margin-top:26px;font:700 10.5px var(--mono);letter-spacing:.32em;color:rgba(230,200,143,.85)}
.fm-title h1{margin:18px 0 0;font-size:clamp(3rem,7.4vw,7.6rem);line-height:.92;letter-spacing:-.045em;max-width:13ch;text-shadow:0 10px 50px rgba(0,0,0,.6)}
.fm-title h1 em{font-family:Georgia,serif;font-weight:400;color:#e2c48e}
.fm-tag{margin:22px auto 0;max-width:560px;color:#c9cdd5;font-size:clamp(1rem,1.3vw,1.2rem);line-height:1.6}
.fm-title .hero-actions{margin-top:28px;display:flex;gap:20px;align-items:center;justify-content:center;flex-wrap:wrap}
.fm-title .text-link{color:#f5efe2}
.fm-cue{position:absolute;left:50%;bottom:calc(var(--lb) + 22px);transform:translateX(-50%);font:700 10px var(--mono);letter-spacing:.26em;color:rgba(255,255,255,.62);display:flex;flex-direction:column;align-items:center;gap:10px;white-space:nowrap}
.fm-cue:after{content:"";width:1px;height:34px;background:linear-gradient(180deg,rgba(255,255,255,.7),transparent);animation:fmCue 1.8s ease-in-out infinite}
@keyframes fmCue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.fm-ready .fm-title>*{animation:fmIn 1.1s cubic-bezier(.2,.7,.1,1) both}
.fm-ready .fm-title>.fm-logo{animation-delay:.15s}.fm-ready .fm-title>.fm-presents{animation-delay:.45s}.fm-ready .fm-title>h1{animation-delay:.7s}
.fm-ready .fm-title>.fm-tag{animation-delay:1s}.fm-ready .fm-title>.hero-actions{animation-delay:1.2s}
.fm-ready .fm-title>.fm-cue{animation:fmInCue 1s 1.8s both}
@keyframes fmIn{from{opacity:0;transform:translate3d(0,18px,0);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes fmInCue{from{opacity:0}to{opacity:1}}
/* captions */
.fm-caps{position:absolute;inset:0;z-index:10;pointer-events:none}
.fm-cap{position:absolute;left:max(28px,5vw);top:50%;width:min(580px,42vw);transform:translate3d(0,calc(-50% + var(--cy,0px)),0);opacity:0;visibility:hidden;text-shadow:0 6px 30px rgba(0,0,0,.55)}
.fm-cap.on{pointer-events:auto}
.fm-cap:before{content:"";position:absolute;inset:-70px -110px -70px -90px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 40% 50%,rgba(3,4,6,.6),rgba(3,4,6,.25) 45%,rgba(3,4,6,0) 70%)}
.fm-chapter{display:inline-block;font:700 10.5px/1.2 var(--mono);letter-spacing:.2em;color:#e6c88f;padding:7px 10px;border:1px solid rgba(230,200,143,.35);border-radius:999px;background:rgba(10,12,16,.5)}
.fm-cap h2{font-size:clamp(2.4rem,4.6vw,5rem);line-height:.95;letter-spacing:-.035em;margin:18px 0 0}
.fm-cap p{font-size:clamp(1rem,1.2vw,1.16rem);line-height:1.65;color:#d5d8de;margin:18px 0 0;max-width:520px}
.fm-cap .layer-pills{margin-top:20px}
.fm-cap .hero-actions{margin-top:24px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.fm-cap .text-link{color:#f5efe2}
.fm-note{display:block;margin-top:16px;font:600 11px/1.4 var(--mono);letter-spacing:.06em;color:rgba(255,255,255,.55)}
.fm-note:before{content:"";display:inline-block;width:18px;height:1px;background:rgba(255,255,255,.4);vertical-align:middle;margin-right:8px}
.fm-cap-montage{top:auto;bottom:calc(var(--lb) + 26px);transform:translate3d(0,var(--cy,0px),0);width:min(760px,80vw)}
.fm-cap-montage h2{font-size:clamp(2rem,3.6vw,3.8rem)}
.fm-cap-montage p{margin-top:12px}
.fm-cap-montage:before{inset:-60px -120px -40px -100px;background:radial-gradient(ellipse at 30% 70%,rgba(3,4,6,.92),rgba(3,4,6,.5) 50%,rgba(3,4,6,0) 75%)}
/* credits */
.fm-credits{position:absolute;inset:0;z-index:11;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none}
.fm-roll{position:absolute;left:50%;top:0;width:min(680px,88vw);transform:translate3d(-50%,100vh,0);text-align:center;will-change:transform}
.fm-cr-top{margin:0;font:700 13px var(--mono);letter-spacing:.5em;color:#e6c88f}
.fm-cr-sub{margin:10px 0 0;font-family:Georgia,serif;font-style:italic;color:#aeb4bf;font-size:1.1rem}
.fm-roll h2{margin:18px 0 54px;font-size:clamp(2.2rem,4.4vw,4.2rem);line-height:1;letter-spacing:-.035em}
.fm-cr-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:9px 0;align-items:baseline}
.fm-cr-row span{text-align:right;font:700 10.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#8d94a1}
.fm-cr-row b{text-align:left;font-weight:500;font-size:1.12rem;color:#f2efe7}
.fm-cr-end{margin:70px 0 0;font:700 11px var(--mono);letter-spacing:.4em;color:#8d94a1;display:flex;flex-direction:column;gap:14px;align-items:center}
.fm-cr-end span{font:600 clamp(1.8rem,3vw,2.6rem)/1 var(--sans);letter-spacing:-.03em;color:#f2e2c0}
/* letterbox bars + HUD */
.fm-bars{position:absolute;inset:0;z-index:12;pointer-events:none}
.fm-bars i{position:absolute;left:0;right:0;height:50%;background:#000;will-change:transform}
.fm-bar-t{top:0;transform-origin:50% 0;transform:scaleY(.26)}
.fm-bar-b{bottom:0;transform-origin:50% 100%;transform:scaleY(.26)}
.fm-hud{position:absolute;z-index:13;left:max(28px,4vw);right:max(28px,4vw);bottom:calc(var(--lb) / 2 + 6px);display:flex;justify-content:space-between;gap:20px;font:700 10px/1 var(--mono);letter-spacing:.18em;color:rgba(255,255,255,.6);opacity:0;pointer-events:none;transform:translateY(50%)}
.fm-hud b{color:#fff;font-size:12px}
.fm-progress{position:absolute;z-index:13;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.08)}
.fm-progress span{display:block;height:100%;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,#f4e5c6,#d8a757,#95aef9)}
.fm-rail{position:absolute;z-index:13;right:max(18px,2.2vw);top:50%;transform:translateY(-50%);display:grid;gap:2px}
.fm-rail button{display:flex;flex-direction:row-reverse;align-items:center;justify-content:flex-start;gap:10px;border:0;background:transparent;color:rgba(255,255,255,.45);font:600 10px/1 var(--mono);letter-spacing:.12em;cursor:pointer;padding:3px 0;text-align:right}
.fm-rail button span{opacity:0;transform:translateX(6px);transition:.3s;white-space:nowrap}
.fm-rail button i{width:6px;height:6px;border-radius:50%;border:1px solid rgba(255,255,255,.5);transition:.3s;flex:none}
.fm-rail button.on{color:#fff}.fm-rail:hover button span{opacity:1;transform:none}
.fm-rail:hover{background:linear-gradient(270deg,rgba(3,4,6,.8),rgba(3,4,6,0));padding-left:40px}
.fm-rail button.on i{background:#e6c88f;border-color:#e6c88f;box-shadow:0 0 12px rgba(230,200,143,.8);transform:scale(1.3)}
.fm-rail button.done i{background:rgba(255,255,255,.45)}
.fm-rail{opacity:0}
.fm-credit-note{position:absolute;z-index:13;right:max(28px,4vw);bottom:calc(var(--lb) + 12px);margin:0;font:600 9.5px/1.3 var(--mono);letter-spacing:.08em;color:rgba(255,255,255,.4);opacity:0;pointer-events:none}
/* after the film: the plans, like the card after the credits */
.fm-after{position:relative;z-index:2;background:linear-gradient(180deg,#030405 0%,#06080c 60%,var(--bg,#080a0f) 100%);padding:10vh 0 12vh}
.fm-after-head{text-align:center;max-width:820px;margin:0 auto 46px}
.fm-after-head h2{font-size:clamp(2.2rem,4.4vw,4.4rem);line-height:1;letter-spacing:-.035em;margin:14px 0 0}
.fm-after-head p{margin:18px auto 0;max-width:640px}
.fm-final{margin-top:9vh;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;padding:38px 40px;border-radius:26px;border:1px solid rgba(217,181,116,.3);background:linear-gradient(150deg,rgba(217,181,116,.12),rgba(255,255,255,.02))}
.fm-final h2{margin:10px 0 0;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.02;letter-spacing:-.03em;max-width:20ch}
.fm-final .hero-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.film-page .ambient{display:none}
/* plan cards (one per space type) */
.pc-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.pc{padding:18px 18px 20px;border-radius:22px}
.pc .pc-img{height:112px;margin:0 0 16px;border-radius:14px;background:#0b0e14 center/cover no-repeat;filter:saturate(.95) brightness(.9);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.pc h3{font-size:1.45rem;margin:0 0 6px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pc .pc-was{font:700 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#8f96a3;padding:3px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.12)}
.pc .plan-price{margin:2px 0 0}.pc .plan-price strong{font-size:2.1rem}
.pc .pc-blurb{font-size:13.5px;line-height:1.5;margin:10px 0 0;min-height:3em}
.pc .plan-meta{margin:14px 0 4px}.pc .plan-meta b{font-size:12.5px;line-height:1.35;display:block}
.pc .pc-list li{padding:7px 0 7px 20px;font-size:13px;position:relative}
.pc .pc-list li:before{content:"✓";position:absolute;left:0;top:7px;color:#8ce1bb;font-weight:700}
.pc .badge{top:26px;right:26px;background:rgba(10,12,16,.75);backdrop-filter:blur(6px)}
.pc .plan-actions{padding-top:16px}.pc .plan-actions .btn{padding-inline:16px}
.pc .billing{margin-top:12px}
.compare-8 .compare{min-width:1180px}
.compare-8 .compare tbody th{width:auto;min-width:190px}
.compare-8 .compare th,.compare-8 .compare td{padding:13px 12px;font-size:13px}
.compare-8 thead th:first-child,.compare-8 tbody th{position:sticky;left:0;background:#0d1016;z-index:1}
@media (max-width:1180px){.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.pc-grid{grid-template-columns:1fr}.pc .pc-blurb{min-height:0}}
@media (max-width:900px){
  .fm-shade-3d{background:linear-gradient(180deg,rgba(4,6,10,.35) 0%,rgba(4,6,10,0) 24%,rgba(4,6,10,.2) 45%,rgba(4,6,10,.9) 76%,rgba(4,6,10,.97) 100%)}
  .fm-shade-photo{background:linear-gradient(180deg,rgba(3,4,6,.5) 0%,rgba(3,4,6,0) 25%,rgba(3,4,6,.15) 45%,rgba(3,4,6,.9) 76%,rgba(3,4,6,.98) 100%)}
  .fm-cap{left:20px;right:20px;width:auto;top:auto;bottom:calc(var(--lb) + 44px);transform:translate3d(0,var(--cy,0px),0)}
  .fm-cap h2{font-size:clamp(2rem,9.5vw,3rem)}
  .fm-cap p{font-size:.97rem;line-height:1.55;margin-top:12px}
  .fm-cap:before{inset:-40px -20px -30px -20px;background:radial-gradient(ellipse at 50% 60%,rgba(3,4,6,.66),rgba(3,4,6,0) 72%)}
  .fm-note{display:none}
  .fm-rail,.fm-credit-note{display:none}
  .fm-hud{left:20px;right:20px}.fm-hud-r{display:none}
  .fm-wall{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,1fr);gap:8px;padding:calc(4vh + 70px) 14px calc(4vh + 250px)}
  .fm-cap-montage p{font-size:.92rem}
  .fm-cap-montage{bottom:calc(var(--lb) + 24px)}
  .fm-screen-wrap{justify-content:center;align-items:flex-start;padding:calc(4vh + 84px) 16px 0}
  .fm-screen{width:100%}
  .fm-deliver{left:16px;right:16px;width:auto;top:calc(4vh + 78px);transform:none;gap:8px}
  .fm-deliver li{padding:11px 12px;grid-template-columns:1fr;row-gap:2px}
  .fm-deliver i{display:none}.fm-deliver b{font-size:13.5px}.fm-deliver small{font-size:11.5px}
  .fm-title{padding:calc(6vh + 80px) 22px calc(6vh + 70px)}
  .fm-title h1{font-size:clamp(2.7rem,12.5vw,4.4rem)}
  .fm-presents{letter-spacing:.22em;font-size:9.5px}
  .fm-glow{left:50%;top:38%;width:90vw;height:90vw;margin:-45vw 0 0 -45vw}
  .fm-final{padding:26px 22px}
  .fm-cr-row{gap:14px}.fm-cr-row b{font-size:1rem}
}
@media (max-width:900px) and (max-height:700px){.fm-cap p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}}
@media (prefers-reduced-motion:reduce){
  .fm-ready .fm-title>*{animation:none!important}
  .fm-cue:after{animation:none}
  .fm-frame img{transform:scale(1.02)!important}
}

/* ===== plans motion (home plans, /plans, /pricing, compare table) =====
   Only transform/opacity/box-shadow/border-color animate, so nothing moves the layout.
   Image boxes and dot rows have fixed sizes: no layout shift. Reduced motion is honoured at the bottom. */
html{scroll-behavior:smooth}
#plans,#compare,section[id]{scroll-margin-top:calc(var(--hdr,64px) + 24px)}
.pc{transition:transform .35s cubic-bezier(.2,.65,.2,1),box-shadow .35s ease,border-color .35s ease,background-color .35s ease;will-change:auto}
.pc .pc-img{position:relative;overflow:hidden;background-image:none}
.pc .pc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.65,.2,1)}
/* soft staggered reveal: keyframes with "backwards" fill, so hover transforms still work afterwards */
.pc.reveal{opacity:0;transform:translate3d(0,22px,0);transition-property:transform,box-shadow,border-color,background-color}
.pc.reveal.in{opacity:1;transform:none;transition-delay:0s !important;animation:pcIn .8s cubic-bezier(.2,.65,.2,1) backwards;animation-delay:calc(var(--i,0) * 80ms)}
@keyframes pcIn{from{opacity:0;transform:translate3d(0,24px,0) scale(.985)}to{opacity:1;transform:none}}
.compare-wrap.reveal{transition-duration:.9s}
@media (hover:hover) and (pointer:fine){
  .pc.reveal.in:hover{transform:translate3d(0,-6px,0);border-color:rgba(217,181,116,.5);box-shadow:0 30px 60px -28px rgba(0,0,0,.8),0 0 0 1px rgba(217,181,116,.14),0 0 46px -16px rgba(217,181,116,.28)}
  .pc:hover .pc-img img{transform:scale(1.06)}
}
.pc:focus-within{border-color:rgba(217,181,116,.55);box-shadow:0 0 0 1px rgba(217,181,116,.2),0 18px 44px -26px rgba(0,0,0,.8)}
.pc a:focus-visible,.pc-grid:focus-visible{outline:2px solid #d9b574;outline-offset:3px;border-radius:12px}
.pc .btn{transition:transform .25s ease,box-shadow .25s ease,filter .25s ease}
.pc .btn:hover{transform:translate3d(0,-1px,0)}
.pc .btn:active{transform:none}
.pc .text-link{transition:color .2s ease,transform .2s ease}
.pc-dots{display:none}
/* compare table: sticky header. Wide screens: the page scrolls it (overflow clipped, not scrolling).
   Narrower screens: the table scrolls inside a capped box, so header + first column stay in view. */
.compare-8 thead th{position:sticky;top:0;z-index:2;background:#0d1016;box-shadow:0 1px 0 rgba(255,255,255,.12)}
.compare-8 thead th:first-child{left:0;z-index:4}
.compare-8 thead th.col-feat{background:#15130f}
.compare-8 tbody th{z-index:1}
.compare-8 .compare tbody tr{transition:background-color .2s ease}
.compare-8 .compare tbody tr:hover td,.compare-8 .compare tbody tr:hover th{background-color:rgba(255,255,255,.035)}
.compare-8 .compare tbody tr:hover th{background-color:#12151c}
.compare-8.compare-wrap{max-height:min(82vh,780px);overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth}
@media (min-width:1240px){
  @supports (overflow:clip){
    .compare-8.compare-wrap{max-height:none;overflow:clip}
    .compare-8 thead th{top:var(--hdr,64px)}
  }
}
/* phones: the 8 plans become a horizontal snap carousel */
@media (max-width:700px){
  .pc-grid{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:14px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:-14px;padding:4px 14px 10px;scroll-behavior:smooth}
  .pc-grid::-webkit-scrollbar{display:none}
  .pc-grid>.pc{flex:0 0 min(84vw,340px);scroll-snap-align:center;scroll-snap-stop:always}
  .pc-grid>.pc.reveal{opacity:1;transform:none;animation:none}
  .pc-dots{display:flex;justify-content:center;align-items:center;gap:4px;height:30px;margin:2px 0 0}
  .pc-dots button{width:22px;height:22px;padding:0;border:0;background:none;display:grid;place-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .pc-dots button:before{content:"";width:7px;height:7px;border-radius:99px;background:rgba(255,255,255,.28);transition:width .3s ease,background-color .3s ease}
  .pc-dots button[aria-current="true"]:before{width:22px;background:#d9b574}
  .pc-dots button:focus-visible{outline:2px solid #d9b574;border-radius:8px}
  .compare-8.compare-wrap{max-height:min(78vh,640px)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pc,.pc .pc-img img,.pc .btn,.pc-dots button:before,.compare-8 .compare tbody tr{transition:none !important}
  .pc.reveal,.pc.reveal.in{opacity:1;transform:none;animation:none !important}
  .pc.reveal.in:hover{transform:none}.pc:hover .pc-img img{transform:none}
  .pc-grid,.compare-8.compare-wrap{scroll-behavior:auto}
}
/* ===== end plans motion ===== */

/* ===== home headline (long H1) ===== */
.fm-title h1{font-size:clamp(2.1rem,3.9vw,4.4rem);line-height:1.04;max-width:26ch;text-wrap:balance;overflow-wrap:break-word}
.fm-title h1 em{display:block}
.fm-title .fm-sub{margin:20px 0 0;font-size:clamp(1.15rem,2vw,1.7rem);letter-spacing:-.02em;color:#e9e2d2;text-shadow:0 6px 30px rgba(0,0,0,.6)}
.fm-title .fm-sub em{font-family:Georgia,serif;color:#e2c48e}
.fm-title>.fm-sub{animation-delay:.85s}
.fm-title .fm-tag{margin-top:14px}
@media(min-height:1px) and (min-width:901px) and (max-height:860px){.fm-title{padding-top:calc(9vh + 30px)}.fm-title h1{font-size:clamp(2.1rem,min(3.9vw,6.2vh),4.4rem)}.fm-title .fm-sub{margin-top:12px}.fm-title .hero-actions{margin-top:20px}}
@media(max-width:900px){.fm-title h1{font-size:clamp(1.75rem,8.2vw,2.8rem);max-width:100%;line-height:1.08}.fm-title .fm-sub{font-size:1.1rem;margin-top:14px}.fm-title>.fm-sub{animation:none!important}}
@media(min-width:901px) and (max-height:760px){.fm-title .fm-presents{display:none}}
/* ===== end home headline ===== */
