:root{--navy:#14232d;--ink:#192a34;--cream:#f7f3e9;--gold:#efbc75;--red:#b8332d;--muted:#5e6667;--line:#d7d6cc;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1,h2,h3{font-family:var(--serif);line-height:1.05}h2{font-size:clamp(42px,4.1vw,64px);letter-spacing:-1.7px}h3{font-size:34px}em{font-style:italic}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:6px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #9e4a29;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:-80px;left:20px;background:var(--cream);color:var(--ink);padding:12px 20px;z-index:100}.skip:focus{top:12px}.section-wrap{max-width:1280px;padding-left:64px;padding-right:64px;margin:0 auto}.eyebrow{font-size:11px;font-weight:600;letter-spacing:2.2px;line-height:1.7;margin-bottom:22px}.announcement{height:34px;background:var(--gold);color:var(--ink);display:flex;gap:18px;align-items:center;justify-content:center;font-size:11px;letter-spacing:.5px;font-weight:600}.announcement>span{font-size:12px}.site-header{height:100px;position:sticky;top:0;z-index:20;background:var(--navy);color:var(--cream);display:flex;align-items:center;justify-content:space-between;padding:0 5%;box-shadow:0 1px 0 #ffffff12}.wordmark{display:flex;gap:9px;align-items:center;line-height:.7}.wordmark>svg{width:30px;height:43px;color:var(--gold)}.wordmark>span{font-family:var(--serif);font-size:51px;letter-spacing:-2px}.wordmark-small{display:block;font:9px var(--sans);letter-spacing:3.2px;margin-top:10px;margin-left:3px}nav{display:flex;align-items:center;gap:35px;font-size:13px}nav>a:not(.button):hover{color:var(--gold)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:17px 25px;background:var(--red);color:#fff;border:1px solid transparent;border-radius:4px;font-family:var(--sans);font-weight:500;font-size:14px;line-height:1.5;transition:background .2s,transform .2s}.button:hover{background:#9c2924;transform:translateY(-2px)}.button span{font-size:20px;line-height:1}.button-small{padding:12px 20px;gap:24px}.menu-button{display:none}.hero{height:760px;position:relative;overflow:hidden;background:#333c3b;color:#fff}.hero-scene,.hero-night,.hero-day,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-night,.hero-day{object-fit:cover;object-position:center 62%}.hero-day{clip-path:inset(0 calc(100% - var(--reveal)) 0 0)}.hero-shade{background:linear-gradient(180deg,#08131ac7 0%,#0c141d8a 29%,#08121b28 62%,#08131a12 76%,#08131aba 100%)}.scene-labels{position:absolute;top:32px;left:5%;right:5%;display:flex;justify-content:space-between;z-index:3;pointer-events:none;font-size:9px;letter-spacing:2px;opacity:.85}.hero-copy{position:relative;z-index:3;pointer-events:none;text-align:center;max-width:1000px;margin:auto;padding:71px 24px 0}.hero-copy .eyebrow{color:#f3d1a2;font-size:10px;margin-bottom:16px}.hero h1{font-size:clamp(68px,6.9vw,104px);letter-spacing:-2.5px;line-height:.99;text-shadow:0 2px 20px #0003}.hero h1 em{color:#f9ddae}.hero-copy>p:not(.eyebrow){font-size:15px;line-height:1.7;margin-top:24px}.hero-actions{display:flex;gap:30px;align-items:center;justify-content:center;margin-top:27px;pointer-events:auto;width:fit-content;margin-left:auto;margin-right:auto}.text-link{display:inline-flex;align-items:center;gap:22px;font-size:13px;font-weight:500;border-bottom:1px solid currentColor;padding-bottom:6px}.text-link:hover{color:var(--gold)}.reveal-range{position:absolute;z-index:2;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}.hero:has(.reveal-range:focus-visible){outline:4px solid var(--gold);outline-offset:-6px}.reveal-line{position:absolute;z-index:2;left:var(--reveal);top:0;bottom:0;width:1px;background:#f4d9aa80;pointer-events:none}.reveal-line>span{position:absolute;top:74%;left:0;transform:translate(-50%,-50%);width:58px;height:58px;border:1px solid #fae4c5;border-radius:50%;display:grid;place-items:center;background:#f5ddadf2;color:var(--ink);font-size:27px;box-shadow:0 0 0 7px #fff1}.hero-bottom{position:absolute;left:5%;right:5%;bottom:25px;display:flex;justify-content:space-between;align-items:end;gap:20px;z-index:3;pointer-events:none}.drag-hint{font-size:12px;font-weight:500}.drag-hint>span{font-size:22px;margin-right:10px}.concept-label{font-size:10px;color:#e4e5e1}.service-strip{display:flex;justify-content:center;background:var(--navy);color:var(--cream);padding:24px 32px;gap:7%;border-bottom:1px solid #ffffff12;font-size:13px}.service-strip span{display:flex;align-items:center;gap:14px}.service-strip small{color:var(--gold);font-size:10px;letter-spacing:1px}.service{padding-top:112px;padding-bottom:104px}.section-heading{display:grid;grid-template-columns:1.45fr 1fr;gap:70px;align-items:end}.section-heading h2{font-size:clamp(42px,3.7vw,56px)}.section-heading em,.faq em{color:#9b4b32}.section-intro{font-size:16px;color:var(--muted);line-height:1.85;max-width:390px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:66px}.steps article{border-top:1px solid #a9aba3;padding-top:16px}.step-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;font-size:10px;font-weight:600;letter-spacing:1.8px}.step-top span:last-child{font-size:26px;color:#a25337}.steps h3{margin-bottom:18px;font-size:31px}.steps p{color:var(--muted);font-size:14px;line-height:1.85}.service-note{font-size:11px;margin-top:40px;color:var(--muted);padding-top:22px;border-top:1px solid var(--line)}.looks{background:var(--navy);color:var(--cream);padding:94px 0 70px}.looks-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:38px}.looks-heading .eyebrow{color:var(--gold)}.looks-heading h2 em{color:var(--gold)}.looks-heading>p{font-size:13px;color:#bcc5c8;padding-bottom:4px;line-height:1.8}.style-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.style-option{display:flex;gap:16px;align-items:center;background:transparent;color:var(--cream);border:1px solid #ffffff32;border-radius:3px;padding:20px;font-size:13px;text-align:left;transition:background .2s}.style-option.active{background:var(--cream);color:var(--ink);border-color:var(--cream)}.style-option:hover:not(.active){background:#ffffff10}.swatches{display:flex;gap:4px;flex-shrink:0}.swatches i{height:9px;width:9px;border-radius:50%;display:block;box-shadow:0 0 6px #fff2}.warm{background:#e0b777}.red{background:#c64236}.yellow{background:#dbaa3f}.blue{background:#4b8dc0}.green{background:#43936a}.style-arrow{margin-left:auto}.style-preview{position:relative;overflow:hidden;border-radius:4px}.style-preview img{aspect-ratio:2/1;object-fit:cover}.style-preview figcaption{position:absolute;left:24px;bottom:20px;right:24px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#fff;text-shadow:0 1px 6px #000}.style-preview figcaption>span:first-child{border:1px solid #ffffff50;border-radius:30px;padding:7px 17px;background:#0d1929b5;backdrop-filter:blur(8px);font-size:12px}.style-footer{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:25px}.style-footer>p{font-size:13px;color:#d1d4d1}.style-footer .text-link{color:var(--gold);white-space:nowrap}.concept-note{font-size:10px;color:#aeb9bc;margin-top:19px}.faq{padding-top:108px;padding-bottom:108px;display:grid;grid-template-columns:1fr 1.3fr;gap:90px}.big-star{display:block;font:100px var(--serif);color:#af6848;margin-top:33px}.questions{border-top:1px solid #c0c1b8}details summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.questions summary{display:flex;justify-content:space-between;gap:25px;font-size:15px;font-weight:500;padding:23px 0;line-height:1.5}.questions summary span{font-size:22px;color:#a25337;line-height:1}.questions details{border-bottom:1px solid #c0c1b8}.questions details p{font-size:14px;color:var(--muted);line-height:1.9;padding:0 35px 23px 0}.questions details[open] summary span,.form-details[open]>summary>span:last-child{transform:rotate(45deg)}.planning{background:#23353e;color:var(--cream);padding:100px 0}.plan-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:92px;align-items:start}.plan-copy{position:sticky;top:145px;padding-top:20px}.plan-copy .eyebrow{color:var(--gold);font-size:10px}.plan-copy h2{font-size:70px;line-height:1.02}.plan-copy h2 em{color:var(--gold)}.plan-copy>p:not(.eyebrow){font-size:14px;color:#ccd3d3;margin-top:28px;line-height:1.9}.plan-location{display:flex;gap:17px;margin-top:44px;align-items:center;font-size:10px;letter-spacing:1.5px}.plan-location>span{font-size:32px;color:var(--gold)}.plan-location small{display:block;font-size:12px;letter-spacing:0;color:#c6cecf;margin-top:5px}form{position:relative;background:var(--cream);color:var(--ink);padding:40px;border-radius:5px}form h3{font-size:37px}.form-intro{font-size:12px;color:var(--muted);margin:10px 0 28px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}form label{display:block;font-size:11px;font-weight:600;line-height:1.7;margin-bottom:18px}input,select,textarea{border:1px solid #cbd0c9;background:#fffdf8;color:var(--ink);border-radius:3px;width:100%;padding:12px 11px;margin-top:7px;font-size:13px;line-height:1.5;min-width:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#737a79;opacity:1}select{min-height:45px;padding-right:25px}.optional{font-weight:400;color:var(--muted);font-size:10px}.form-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:2px;margin-bottom:23px}.form-details>summary{font-size:12px;display:flex;align-items:center;gap:5px;padding:15px 0}.form-details>summary>span:last-child{font-size:19px;margin-left:auto;color:#9b4b32}.timing-fields{padding-top:8px}.submit-button{width:100%;font-size:13px;padding:16px 20px}.button:disabled{opacity:.6;cursor:wait;transform:none}.form-footnote{font-size:10px;line-height:1.8;color:var(--muted);margin-top:13px;text-align:center}.privacy-details{margin-top:20px}.privacy-details summary{font-size:10px;text-decoration:underline;color:var(--muted)}.privacy-details p{font-size:11px;line-height:1.8;color:var(--muted);margin-top:9px}.form-result{border-top:1px solid #bfc4bb;margin-top:24px;padding-top:20px}.form-result strong{font-size:14px}.form-result p{font-size:12px;line-height:1.8;overflow-wrap:anywhere;margin:7px 0 15px}.result-actions{display:flex;gap:20px;flex-wrap:wrap}.result-actions button{background:transparent;border:0;border-bottom:1px solid currentColor;color:var(--ink);padding:0 0 3px;font-size:11px}.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}footer{background:var(--navy);color:var(--cream)}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:57px;padding-bottom:48px}.footer-main>p{font-size:12px;color:#c4cdcd;line-height:1.8}.back-top{font-size:11px}.footer-bottom{display:flex;justify-content:space-between;gap:24px;padding-top:20px;padding-bottom:25px;position:relative;font-size:10px;color:#aeb9bc}.footer-bottom:before{content:'';position:absolute;top:0;left:64px;right:64px;border-top:1px solid #ffffff20}.footer-bottom a{text-decoration:underline;text-underline-offset:3px}.footer-bottom span{margin:0 7px}
@media(min-width:1600px){.hero{height:850px}.hero-copy{padding-top:100px}.hero-night,.hero-day{object-position:center 58%}}
@media(max-width:1100px){.section-wrap{padding-left:38px;padding-right:38px}.section-heading{gap:40px;grid-template-columns:1.2fr 1fr}.steps{gap:25px}.looks-heading{align-items:start}.style-option{padding:17px 13px;gap:10px;font-size:11px}.faq{gap:48px}.plan-grid{gap:46px;grid-template-columns:1fr 1.2fr}.plan-copy h2{font-size:60px}form{padding:29px}.footer-bottom:before{left:38px;right:38px}.hero{height:700px}}
@media(max-width:760px){html{scroll-padding-top:88px}.section-wrap{padding-left:24px;padding-right:24px}.announcement{font-size:9px;letter-spacing:0;height:32px;gap:9px}.announcement>span{font-size:10px}.site-header{height:82px;padding:0 24px}.wordmark>span{font-size:44px}.wordmark-small{font-size:8px;letter-spacing:2.5px;margin-top:9px}.wordmark>svg{width:25px;height:38px}.menu-button{display:flex;align-items:center;gap:12px;background:transparent;border:1px solid #ffffff40;color:var(--cream);padding:8px 12px;border-radius:3px;font-size:11px}.menu-button>span{font-size:17px}nav{position:absolute;top:82px;left:0;right:0;background:var(--navy);padding:20px 24px 27px;display:none;align-items:stretch;gap:0;border-top:1px solid #ffffff20;box-shadow:0 16px 25px #0003}nav.open{display:flex;flex-direction:column}nav>a:not(.button){padding:13px 0}nav>.button{margin-top:12px}.hero{height:720px}.hero-night,.hero-day{object-position:53% center}.scene-labels{top:22px;left:24px;right:24px;font-size:7px;letter-spacing:1px}.hero-copy{padding:65px 18px 0}.hero-copy .eyebrow{font-size:8px;letter-spacing:1.2px;max-width:300px;margin:0 auto 21px}.hero h1{font-size:64px;letter-spacing:-1.7px;line-height:1}.hero h1 em{display:inline-block;max-width:360px}.hero-copy>p:not(.eyebrow){font-size:12px;line-height:1.8;margin-top:22px}.hero-copy>p:not(.eyebrow) br{display:none}.hero-actions{flex-direction:column;gap:18px;margin-top:25px}.hero-actions .button{padding:15px 22px;font-size:13px}.hero-actions .text-link{font-size:11px}.hero-shade{background:linear-gradient(180deg,#08131acc 0%,#08131a80 44%,#08131a0d 70%,#08131ab3 100%)}.reveal-line>span{top:78%;width:48px;height:48px;font-size:23px}.hero-bottom{left:24px;right:24px;bottom:20px;align-items:start;flex-direction:column;gap:10px}.drag-hint{font-size:10px}.drag-hint>span{font-size:17px}.concept-label{font-size:8px}.service-strip{padding:24px;gap:13px;justify-content:space-between;align-items:start;font-size:11px}.service-strip span{flex:1;display:block;line-height:1.6;max-width:110px}.service-strip small{display:block;margin-bottom:7px;font-size:9px}.service{padding-top:66px;padding-bottom:61px}.section-heading{grid-template-columns:1fr;gap:26px}.eyebrow{font-size:9px;letter-spacing:1.5px;margin-bottom:18px}.section-heading h2{font-size:43px;letter-spacing:-1.2px}.section-intro{font-size:14px;line-height:1.85;max-width:none}.steps{grid-template-columns:1fr;gap:30px;margin-top:39px}.step-top{margin-bottom:14px;font-size:9px}.steps h3{font-size:32px;margin-bottom:12px}.steps p{font-size:13px}.service-note{font-size:10px;margin-top:31px}.looks{padding:60px 0 48px}.looks-heading{display:block;margin-bottom:29px}.looks-heading h2{font-size:46px;max-width:320px;letter-spacing:-1px}.looks-heading>p{font-size:12px;margin-top:20px}.style-options{grid-template-columns:1fr;gap:8px;margin-bottom:15px}.style-option{padding:13px 16px;font-size:12px;gap:17px}.style-preview img{aspect-ratio:1.12/1;object-position:53% center}.style-preview figcaption{left:13px;right:13px;bottom:13px;font-size:8px;gap:10px}.style-preview figcaption>span:first-child{font-size:10px;padding:5px 10px}.style-footer{align-items:start;flex-direction:column;gap:18px;margin-top:20px}.style-footer>p{font-size:12px;max-width:300px;line-height:1.8}.style-footer .text-link{font-size:12px}.concept-note{font-size:9px;line-height:1.8;margin-top:25px}.faq{padding-top:64px;padding-bottom:65px;grid-template-columns:1fr;gap:33px}.faq h2{font-size:47px;letter-spacing:-1px}.big-star{display:none}.questions summary{font-size:13px;padding:21px 0;gap:16px}.questions details p{font-size:12px;padding-right:18px}.planning{padding:62px 0}.plan-grid{grid-template-columns:1fr;gap:38px}.plan-copy{position:static;padding:0}.plan-copy h2{font-size:57px;letter-spacing:-1.4px}.plan-copy h2 br:nth-child(1){display:none}.plan-copy h2 em br{display:none}.plan-copy h2 em{display:block;margin-top:6px;max-width:360px}.plan-copy>p:not(.eyebrow){font-size:13px;margin-top:23px}.plan-location{margin-top:27px}.plan-location>span{font-size:25px}form{padding:27px 22px}form h3{font-size:33px}.form-intro{font-size:11px;margin-bottom:25px}.form-row{grid-template-columns:1fr;gap:0}form label{font-size:11px}input,select,textarea{font-size:16px;padding:11px 10px}textarea::placeholder,input::placeholder{font-size:12px}select{font-size:13px;min-height:48px}.form-details>summary{font-size:11px}.submit-button{font-size:12px;gap:12px;padding:15px 13px}.footer-main{padding-top:44px;padding-bottom:32px;align-items:start;flex-wrap:wrap;gap:26px}.footer-main>p{font-size:11px;max-width:180px}.back-top{width:100%;font-size:10px}.footer-bottom{display:block;font-size:9px;padding-top:20px;padding-bottom:25px}.footer-bottom>p+p{margin-top:12px;line-height:2.1}.footer-bottom:before{left:24px;right:24px}}
@media(max-width:370px){.hero h1{font-size:57px}.announcement{font-size:8px}.plan-copy h2{font-size:53px}form{padding:24px 18px}.style-preview figcaption>span:last-child{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Readability scale: one step above the 16px body baseline. */
:root {
  --type-body: 1.125rem;
  --type-ui: 1rem;
  --type-small: .875rem;
  --type-caption: .75rem;
}
body { font-size: var(--type-body); }
.eyebrow, .hero-copy .eyebrow, .plan-copy .eyebrow,
.scene-labels, .service-strip small, .step-top {
  font-size: var(--type-caption);
}
.announcement { font-size: var(--type-small); min-height: 38px; height: auto; padding: 7px 18px; text-align: center; }
nav, .menu-button, .text-link, .hero-actions .text-link,
.service-strip, .style-option, .style-footer .text-link,
form label, .form-details>summary {
  font-size: var(--type-ui);
}
.button, .hero-actions .button, .submit-button,
.hero-copy>p:not(.eyebrow), .section-intro, .steps p,
.looks-heading>p, .style-footer>p, .questions summary,
.questions details p, .plan-copy>p:not(.eyebrow),
input, select, textarea {
  font-size: var(--type-body);
}
.drag-hint, .service-note, .concept-note,
.style-preview figcaption>span:first-child, .plan-location,
.plan-location small, .form-intro, .optional, .form-footnote,
.privacy-details summary, .privacy-details p, .form-result p,
.result-actions button, .footer-main>p, .back-top, .footer-bottom {
  font-size: var(--type-small);
}
.concept-label, .style-preview figcaption,
.style-preview figcaption>span:last-child { font-size: var(--type-caption); }
.form-result strong { font-size: var(--type-body); }
input::placeholder, textarea::placeholder { font-size: var(--type-ui); }
h2 { font-size: clamp(48px, 4.6vw, 72px); }
h3 { font-size: 40px; }
.hero h1 { font-size: clamp(76px, 7.5vw, 112px); }
.hero-copy { max-width: 1120px; }
.section-heading h2 { font-size: clamp(48px, 4.15vw, 64px); }
.steps h3 { font-size: 36px; }
.plan-copy h2 { font-size: 80px; }
form h3 { font-size: 42px; }
.form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.style-option { min-width: 0; }
.style-option>span:not(.swatches) { min-width: 0; }
.form-details>summary { flex-wrap: wrap; }
.footer-main>p { max-width: 350px; }
@media (max-width: 1100px) {
  nav { gap: 22px; }
  .plan-copy h2 { font-size: 68px; }
  .plan-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
  .form-row { grid-template-columns: 1fr; }
  .style-option { gap: 10px; }
  .style-option .swatches { gap: 3px; }
  .style-option .swatches i { width: 7px; height: 7px; }
}
@media (max-width: 760px) {
  .announcement { font-size: var(--type-caption); gap: 8px; }
  .announcement>span { flex-shrink: 0; }
  .hero { height: 820px; }
  .hero-copy .eyebrow { max-width: 340px; letter-spacing: 1px; }
  .hero h1 { font-size: 72px; }
  .hero h1 em { max-width: 400px; }
  .hero-copy>p:not(.eyebrow) { line-height: 1.65; }
  .hero-actions .button { padding: 15px 20px; }
  .scene-labels { font-size: 11px; letter-spacing: .5px; }
  .hero-bottom { gap: 9px; }
  .service-strip { font-size: var(--type-small); }
  .section-heading h2 { font-size: 48px; }
  .steps h3 { font-size: 36px; }
  .looks-heading h2, .faq h2 { font-size: 54px; max-width: none; }
  .style-option .swatches { gap: 4px; }
  .style-option .swatches i { width: 9px; height: 9px; }
  .style-preview figcaption { flex-wrap: wrap; gap: 6px; }
  .style-preview figcaption>span:last-child { background: #14232dcc; padding: 3px 7px; border-radius: 3px; }
  .style-footer>p { max-width: none; }
  .plan-grid { grid-template-columns: minmax(0, 1fr); }
  .plan-copy h2 { font-size: 64px; }
  form h3 { font-size: 38px; }
  .submit-button { font-size: var(--type-ui); }
  .form-details>summary { font-size: var(--type-small); }
  .footer-main>p { max-width: 210px; }
}
@media (max-width: 370px) {
  .hero h1 { font-size: 64px; }
  .hero-actions .button { font-size: var(--type-ui); }
  .plan-copy h2 { font-size: 60px; }
  .hero-bottom { left: 18px; right: 18px; }
}

/* Scroll-lit Christmas story. Static and reduced-motion versions remain readable. */
.night-service { --story-progress: 1; --header-height: 100px; background: #080f20; color: #fbf1df; position: relative; }
.night-scene { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 50% 110%,#1d355a88,transparent 65%),linear-gradient(145deg,#080e1c,#101c34 55%,#0a1226); }
.night-stars,.night-clouds { position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.night-stars { background: url('assets/night-stars.svg') center / cover; opacity: .8; }
.night-clouds { background: radial-gradient(ellipse at 8% 45%,#31435a44,transparent 40%),radial-gradient(ellipse at 80% 25%,#392c4f44,transparent 45%); }
.night-inner { position: relative; padding-top: 60px; padding-bottom: 44px; }
.night-heading { text-align: center; }
.night-heading .eyebrow { color: #e5be85; margin-bottom: 13px; }
.night-heading h2 { font-size: clamp(42px,4vw,60px); letter-spacing: -1.3px; }
.night-heading h2 em { color: #f3ce98; }
.night-heading>p:last-child { color: #bdc9d7; font-size: var(--type-body); line-height: 1.65; margin: 18px auto 0; }
.night-lamps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 44px; position: relative; margin-top: 12px; }
.night-wire { position: absolute; top: 0; left: -9%; width: 118%; height: 70px; overflow: visible; pointer-events: none; }
.night-wire path { fill: none; stroke-width: 2; }
.wire-base { stroke: #5c6c79; opacity: .45; }
.wire-glow { stroke: #f5d69b; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--story-progress)); filter: drop-shadow(0 0 5px #eecb87); }
.step-lamp { --draw: 1; --glow: 1; --bulb-rgb: 255,207,125; position: relative; display: flex; flex-direction: column; align-items: center; padding: 42px 0 12px; background: transparent; border: 0; color: rgb(var(--bulb-rgb)); border-radius: 12px; font: inherit; }
.lamp-2 { --bulb-rgb: 248,143,124; }
.lamp-3 { --bulb-rgb: 157,220,193; }
.lamp-art { height: 230px; width: auto; overflow: visible; position: relative; }
.lamp-halo { position: absolute; width: 320px; height: 320px; max-width: 150%; left: 50%; top: 20px; transform: translateX(-50%) scale(calc(.65 + var(--glow)*.35)); background: radial-gradient(ellipse,rgba(var(--bulb-rgb),.2),rgba(var(--bulb-rgb),.07) 35%,transparent 65%); opacity: var(--glow); pointer-events: none; }
.lamp-cord { fill: none; stroke: #73817e; stroke-width: 3; }
.lamp-socket { fill: #33403f; stroke: #85918a; stroke-width: 1; }
.socket-lines { stroke: #9ba89b; stroke-width: 2; opacity: .6; }
.lamp-glass { opacity: calc(.05 + var(--glow)*.9); filter: drop-shadow(0 0 15px rgba(var(--bulb-rgb),.65)); }
.lamp-outline { fill: none; stroke: currentColor; stroke-width: 2.4; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--draw)); filter: drop-shadow(0 0 4px currentColor); }
.lamp-shine { fill: none; stroke: #fff6dc; stroke-width: 6; stroke-linecap: round; opacity: calc(var(--glow)*.7); }
.lamp-number { font: 78px var(--serif); fill: #fff5d8; opacity: calc(.22 + var(--glow)*.78); filter: drop-shadow(0 1px 9px #111c2888); }
.lamp-label { font-size: var(--type-small); font-weight: 600; letter-spacing: 2.5px; color: #e9dfd2; opacity: calc(.45 + var(--glow)*.55); margin-top: 2px; }
.night-copy-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 44px; margin-top: 13px; }
.night-step-copy { --reveal: 1; text-align: center; opacity: var(--reveal); transform: translateY(calc((1 - var(--reveal))*16px)); }
.night-step-copy h3 { font-size: 36px; margin-bottom: 14px; color: #fbf1df; }
.night-step-copy p { color: #c2ccda; font-size: var(--type-body); line-height: 1.7; }
.night-footer { text-align: center; margin-top: 28px; }
.night-scroll-hint { display: none; color: #efd1a3; font-size: var(--type-caption); letter-spacing: 1px; }
.night-scroll-hint>span:first-child { margin-right: 8px; }
.story-count { margin-left: 22px; font-size: 11px; letter-spacing: 2px; color: #c7d0dc; }
.night-note { font-size: var(--type-small); color: #aab9cb; margin-top: 12px; }
.story-enhanced { height: calc(var(--scene-viewport-height, 100svh) - var(--header-height) + var(--scene-viewport-height, 100svh)*1.4); }
.story-enhanced .night-scene { position: sticky; top: var(--header-height); height: calc(var(--scene-viewport-height, 100svh) - var(--header-height)); }
.story-enhanced .night-inner { height: 100%; display: flex; flex-direction: column; justify-content: center; padding-top: 26px; padding-bottom: 22px; }
.story-enhanced .night-heading h2 { font-size: clamp(42px,calc(var(--scene-viewport-height, 100svh)*.057),60px); }
.story-enhanced .lamp-art { height: clamp(150px,calc(var(--scene-viewport-height, 100svh)*.23),230px); }
.story-enhanced .night-footer { margin-top: 22px; }
.story-enhanced .night-scroll-hint { display: block; }
@media (min-width: 761px) {
 .story-enhanced.story-compact .night-heading>p:last-child { margin-top: 10px; }
 .story-enhanced.story-compact .night-heading>p:last-child br { display: none; }
 .story-enhanced.story-compact .night-lamps { margin-top: 0; }
 .story-enhanced.story-compact .night-copy-grid { gap: 25px; margin-top: 4px; }
 .story-enhanced.story-compact .night-step-copy h3 { font-size: 32px; margin-bottom: 10px; }
 .story-enhanced.story-compact .night-step-copy p { line-height: 1.55; }
 .story-enhanced.story-compact .night-footer { margin-top: 16px; }
 .story-enhanced.story-compact .night-note { margin-top: 7px; }
}
@media (max-width: 760px) {
 .night-service { --header-height: 82px; }
 .night-inner { padding-top: 54px; padding-bottom: 44px; }
 .night-heading h2,.story-enhanced .night-heading h2 { font-size: 43px; line-height: 1.06; }
 .night-heading h2 em { display: block; }
 .night-heading>p:last-child { font-size: 16px; line-height: 1.6; max-width: 400px; margin-top: 16px; }
 .night-heading>p:last-child br { display: none; }
 .night-heading .eyebrow { font-size: 11px; letter-spacing: 1.3px; }
 .night-lamps { gap: 6px; margin-top: 6px; }
 .night-wire { left: -10%; width: 120%; }
 .step-lamp { padding-top: 42px; padding-bottom: 8px; }
 .lamp-art,.story-enhanced .lamp-art { height: 155px; max-width: 100%; }
 .lamp-halo { width: 200px; height: 200px; top: 40px; }
 .lamp-label { font-size: 11px; letter-spacing: 1px; margin-top: 10px; white-space: nowrap; }
 .night-copy-grid { grid-template-columns: 1fr; gap: 30px; margin-top: 18px; }
 .night-step-copy { max-width: 450px; margin: auto; width: 100%; }
 .night-step-copy h3 { font-size: 36px; }
 .night-step-copy p { font-size: 18px; line-height: 1.65; }
 .night-note { font-size: 12px; }
 .story-enhanced .night-inner { padding-top: 26px; padding-bottom: 24px; }
 .story-enhanced .night-copy-grid { display: grid; flex: 0 0 auto; }
 .story-enhanced .night-step-copy { grid-area: 1 / 1; visibility: hidden; }
 .story-enhanced .night-step-copy.is-current { visibility: visible; }
 .story-enhanced .night-footer { margin-top: 18px; }
}
@media (max-width: 370px) {
 .night-heading h2,.story-enhanced .night-heading h2 { font-size: 38px; }
 .lamp-art,.story-enhanced .lamp-art { height: 135px; }
 .lamp-label { font-size: 10px; letter-spacing: .5px; }
 .night-step-copy h3 { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
 .night-service { height: auto; }
 .night-scene { position: relative; height: auto; }
 .night-step-copy { transform: none; opacity: 1; }
}

/* Preferred date, never an appointment or availability claim. */
.install-date-field { min-width: 0; margin: 8px 0 25px; padding: 0; border: 0; }
.install-date-field legend { font-size: var(--type-ui); font-weight: 600; padding: 0; }
#install-date-help { font-size: var(--type-small); line-height: 1.7; color: var(--muted); margin: 8px 0 17px; }
.install-calendar { border: 1px solid #cbd0c9; border-radius: 5px; padding: 15px 13px 12px; background: #fffdf8; }
.calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.calendar-heading h4 { font-size: 18px; font-weight: 600; margin: 0; }
.calendar-heading button { display: grid; place-items: center; background: transparent; color: var(--ink); border: 1px solid #d5d8cd; width: 38px; height: 38px; border-radius: 50%; font-size: 26px; line-height: 1; padding: 0; }
.calendar-heading button:hover:not(:disabled) { background: #efe6d8; }
.calendar-heading button:disabled { opacity: .25; cursor: default; }
.calendar-grid { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 2px; text-align: center; }
.calendar-grid th { font-size: 12px; color: #737a79; font-weight: 500; height: 28px; }
.calendar-grid abbr { text-decoration: none; }
.calendar-grid td { padding: 0; }
.calendar-grid button { display: block; width: 100%; height: 40px; padding: 0; border: 1px solid transparent; background: transparent; border-radius: 50%; color: var(--ink); font-size: 16px; }
.calendar-grid button[aria-current="date"] { border-color: #b7bcb0; }
.calendar-grid button:hover:not(:disabled) { background: #f2e4cc; }
.calendar-grid button.selected,.calendar-grid button.selected:hover { color: #fff; background: var(--red); }
.calendar-grid button:disabled { color: #a4aaa4; opacity: .55; cursor: default; }
.calendar-grid button:focus-visible,.calendar-heading button:focus-visible { outline-color: #a65635; outline-offset: 1px; }
.date-entry { display: flex; gap: 12px; align-items: center; margin-top: 12px; flex-wrap: wrap; }
.date-entry input { flex: 1; width: auto; min-width: 150px; font-size: 16px; margin: 0; }
.date-entry button { padding: 10px 0; background: none; border: 0; color: #7b4030; text-decoration: underline; text-underline-offset: 3px; font-size: 14px; }
.date-entry button.is-flexible { color: var(--muted); }
#selected-date { font-size: 13px; color: var(--muted); margin-top: 12px; line-height: 1.7; }
@media (max-width: 370px) { .install-calendar { padding: 13px 7px 10px; } .calendar-grid { border-spacing: 1px; } .calendar-grid button { height: 36px; } }

/* Midnight blue, plum atmosphere, champagne light, and warm seasonal accents. */
body { background: #091221; color: #f7f0e3; }
.site-header { background: #0b1525; }
.service-strip { background: #101c30; border-bottom-color: #44506a40; }
.looks { background: radial-gradient(ellipse at 80% 0,#30203b55,transparent 60%),#0b1629; }
.faq { color: #f7f0e3; }
.faq .eyebrow { color: #e6bb82; }
.faq em,.big-star { color: #efc88e; }
.questions,.questions details { border-color: #35425a; }
.questions summary span { color: #efc88e; }
.questions details p { color: #bdc9d9; }
.planning { background: radial-gradient(ellipse at 10% 30%,#25345099,transparent 65%),linear-gradient(145deg,#111f35,#161c32); border-top: 1px solid #43516a60; }
form { background: #162237; border: 1px solid #3a4962; color: #f7f0e3; box-shadow: 0 20px 70px #02081530; }
.form-intro,.optional,.form-footnote,.privacy-details summary,.privacy-details p,
#install-date-help,#selected-date { color: #b9c6d8; }
input,select,textarea { background: #0d192b; border-color: #43516a; color: #f7f0e3; color-scheme: dark; }
input::placeholder,textarea::placeholder { color: #a6b5ca; }
.form-details,.form-result { border-color: #43516a; }
.form-details>summary>span:last-child { color: #efc88e; }
.result-actions button { color: #efc88e; }
.install-calendar { background: #0d192b; border-color: #43516a; }
.calendar-heading button { border-color: #43516a; color: #f7f0e3; }
.calendar-heading button:hover:not(:disabled) { background: #26364f; }
.calendar-grid th { color: #a6b5ca; }
.calendar-grid button { color: #f7f0e3; }
.calendar-grid button[aria-current="date"] { border-color: #bc9d73; }
.calendar-grid button:hover:not(:disabled) { background: #2b3a51; }
.calendar-grid button.selected,.calendar-grid button.selected:hover { background: #efc88e; color: #102039; }
.calendar-grid button:disabled { color: #7e8ca1; }
.calendar-grid button:focus-visible,.calendar-heading button:focus-visible { outline-color: #efc88e; }
.date-entry button { color: #efc88e; }
.date-entry button.is-flexible { color: #b9c6d8; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline-color: #efc88e; }
footer { background: #070f1d; }
@media (max-width: 370px) {
 .story-enhanced.story-short .night-heading h2 { font-size: 34px; }
 .story-enhanced.story-short .night-inner { padding-top: 18px; padding-bottom: 18px; }
 .story-enhanced.story-short .lamp-art { height: 120px; }
 .story-enhanced.story-short .night-footer { margin-top: 12px; }
}

/* A cinematic ribbon of Christmas homes, driven by the reader's scroll. */
.christmas-gallery { --gallery-card-width: min(82vw, 1000px); --gallery-header: 100px; --gallery-progress: 0; position: relative; background: radial-gradient(ellipse at 25% 0,#28355488,transparent 55%),radial-gradient(ellipse at 85% 85%,#46263e55,transparent 60%),#080f20; color:#f7f0e3; }
.gallery-scene { position:relative; padding:70px 0 50px; }
.gallery-heading { text-align:center; width:100%; margin-bottom:30px; }
.gallery-heading .eyebrow { color:#dcb989; margin-bottom:12px; }
.gallery-heading h2 { font-size:clamp(44px,5vw,78px); line-height:1.04; }
.gallery-heading h2 em { color:#f2cf99; }
.gallery-heading>p:last-child { margin-top:15px; color:#b9c6d8; font-size:17px; }
.gallery-window { overflow-x:auto; overflow-y:hidden; width:100%; scrollbar-width:thin; scrollbar-color:#7d6d5b transparent; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; padding:28px 0 16px; }
.gallery-window:focus-visible { outline:1px solid #efc88e; outline-offset:-3px; }
.gallery-track { display:flex; position:relative; width:max-content; gap:clamp(22px,4vw,70px); padding:0 calc((100vw - var(--gallery-card-width)) / 2); will-change:transform; }
.gallery-card { flex:0 0 var(--gallery-card-width); width:var(--gallery-card-width); margin:0; scroll-snap-align:center; transform:translateY(var(--card-rise,0px)) rotate(var(--card-turn,0deg)); opacity:var(--card-fade,1); transform-origin:center; }
.gallery-photo { aspect-ratio:3/2; overflow:hidden; border-radius:7px; background:#101b2c; box-shadow:0 20px 50px #0005; border:1px solid #edce9b35; }
.gallery-photo img { width:100%; height:100%; object-fit:cover; transform:translateX(var(--photo-shift,0px)) scale(1.075); }
.gallery-card figcaption { display:flex; gap:24px; align-items:center; padding:18px 3px 2px; font:28px var(--serif); color:#f7ead8; }
.gallery-number { font:13px var(--sans); color:#efc88e; flex-shrink:0; letter-spacing:1px; }
.gallery-number span { color:#8292ac; }
.gallery-spark { margin-left:auto; color:#e5ba82; }
.gallery-footer { width:100%; display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:24px; }
.gallery-direction { display:flex; gap:12px; align-items:center; font-size:14px; color:#b9c6d8; }
.gallery-direction>span:first-child { font-size:23px; color:#e6bb82; }
.gallery-controls { display:flex; gap:16px; align-items:center; }
.gallery-controls button { display:grid; place-items:center; height:44px; width:44px; border:1px solid #68738a; border-radius:50%; background:transparent; color:#f2cf99; font-size:23px; transition:background .2s; }
.gallery-controls button:hover:not(:disabled) { background:#37415a; }
.gallery-controls button:disabled { opacity:.25; cursor:default; }
#gallery-count { color:#efc88e; font-size:14px; white-space:nowrap; font-variant-numeric:tabular-nums; }
#gallery-count span { color:#8390a6; }
.gallery-footer .text-link { font-size:14px; color:#f2cf99; }
.gallery-progress { position:absolute; bottom:0; left:0; width:100%; height:2px; background:#58617840; }
.gallery-progress span { display:block; width:100%; height:100%; background:linear-gradient(90deg,#c79e65,#ffe5ae); transform:scaleX(var(--gallery-progress)); transform-origin:left; }
.gallery-enhanced { --gallery-card-width: min(82vw, calc((var(--scene-viewport-height, 100svh) - 390px)*1.5), 1000px); height:calc(var(--scene-viewport-height, 100svh) - var(--gallery-header) + var(--gallery-travel)); }
.gallery-enhanced .gallery-scene { position:sticky; top:var(--gallery-header); height:calc(var(--scene-viewport-height, 100svh) - var(--gallery-header)); padding:28px 0 24px; display:flex; flex-direction:column; justify-content:center; overflow:hidden; }
.gallery-enhanced .gallery-heading { margin-bottom:0; }
.gallery-enhanced .gallery-window { overflow:hidden; flex-shrink:0; scroll-snap-type:none; touch-action:pan-y; }
.gallery-enhanced .gallery-footer { margin-top:12px; }
@media (max-width:900px) { .gallery-footer { gap:16px; flex-wrap:wrap; } .gallery-direction { flex:1; } .gallery-footer>.text-link { display:none; } }
@media (max-width:600px) {
 .christmas-gallery { --gallery-card-width:86vw; }
 .gallery-enhanced { --gallery-card-width:min(86vw,calc((var(--scene-viewport-height, 100svh) - 390px)*1.5)); }
 .gallery-heading { padding-left:24px; padding-right:24px; }
 .gallery-heading .eyebrow { font-size:10px; letter-spacing:1.6px; }
 .gallery-heading h2 { font-size:clamp(43px,11vw,62px); max-width:430px; margin:auto; }
 .gallery-heading h2 em { display:block; }
 .gallery-heading>p:last-child { font-size:16px; margin-top:14px; }
 .gallery-card figcaption { font-size:24px; gap:14px; padding-top:15px; }
 .gallery-number { font-size:11px; }
 .gallery-number span { display:none; }
 .gallery-footer { flex-direction:column; gap:18px; margin-top:24px; padding-left:16px; padding-right:16px; }
 .gallery-direction { flex:initial; font-size:13px; }
 .gallery-controls { gap:22px; }
 .gallery-scene { padding:55px 0 35px; }
 .gallery-window { padding-top:30px; }
 .gallery-enhanced .gallery-footer { margin-top:16px; }
}
@media (prefers-reduced-motion:reduce) { .gallery-photo img { transform:none; } .gallery-card { transform:none; } }

/* Custom pointer surface keeps the visual divider aligned with a finger on every browser. */
.reveal-ready .reveal-range { pointer-events: none; }
.reveal-surface { position: absolute; inset: 0; z-index: 2; cursor: ew-resize; touch-action: pan-y pinch-zoom; user-select: none; -webkit-user-select: none; }
