/* Only interface surfaces change. Product photography and catalog paper stay true. */
:root{--page:#fff;--surface:#f5f5f2;--ink:#20201c;--muted:#565950;--line:#d7d8d0;--glow:#f3e4a9;--logo-filter:none;color-scheme:light}
:root[data-ambient='dawn']{--page:#f6eee2;--surface:#ece1d1;--ink:#30281d;--muted:#625747;--line:#d4c5ad;--glow:#e5bf69}
:root[data-ambient='dusk']{--page:#eee0ce;--surface:#e6d3b9;--ink:#332718;--muted:#66553f;--line:#cbb89b;--glow:#d7a64b}
:root[data-ambient='night']{--page:#202126;--surface:#292b31;--ink:#f4f0e7;--muted:#c1beb7;--line:#4c4c51;--glow:#e0b64d;--logo-filter:invert(1);color-scheme:dark}
:root[data-ambient='late']{--page:#131b25;--surface:#1d2835;--ink:#edf1f4;--muted:#bdc7d0;--line:#3f4c5b;--glow:#cabb88;--logo-filter:invert(1);color-scheme:dark}
:root[data-weather='rain']:is([data-ambient='day'],[data-ambient='dawn'],[data-ambient='dusk']){--page:#e8edf0;--surface:#dce4e8;--ink:#1d303a;--muted:#4c626e;--line:#b9cbd3;--glow:#92afbf}
:root[data-weather='cloud'][data-ambient='day']{--page:#f0f2f2;--surface:#e5e9ea;--ink:#243139;--muted:#52616a;--line:#c5d0d5}
:root[data-weather='rain']:is([data-ambient='night'],[data-ambient='late']){--page:#14242d;--surface:#20343e;--ink:#edf4f6;--muted:#b8cbd2;--line:#415c68;--glow:#96b9ca}
html body,html body>header,html body>footer,html .reader-header,html .hero,html .work,html .content-section,html .conditions,html .contact,html .buying,html .catalog-access{background:var(--page);color:var(--ink)}
html .about,html .accounts,html .team-card{background:var(--surface);color:var(--ink)}
html .hero-image,html .image-caption,html .reader-controls{background:var(--page);color:var(--ink)}
html :is(em,.contact em,.intro,.gallery article>p,.section-heading>p,.about p:not(.eyebrow),.terms-grid p,footer p,.buy-steps p,.contact>p:not(.eyebrow),.contact .message-only,.term-number,.buy-steps li:before,.film-heading .eyebrow,.retouch-note,.team-monogram,.project-label>span){color:var(--ink)}
html :is(.intro,.gallery article>p,.editorial-project>p,.section-heading>p,.about p:not(.eyebrow),footer p,.hero-guarantee,.video-hint,.retouch-note){color:var(--muted)}
html :is(header,footer,.about,.accounts,.buying,.conditions,.contact,.content-section,.catalog-access,.hero-proof,.image-caption,.places,.category-title,.catalog-nav a,.team-card,.team-monogram,.lines-grid article,.term-number,.account-grid article,.buy-steps li:before,.project-angle,.finish-reference,.finish-preview figcaption,.warranty-details details,.terms-grid dl>div,.video-showcase){border-color:var(--line)}
html .brand img,html .reader-header img{filter:var(--logo-filter)}
html :is(.quote-form input,.quote-form textarea,.quote-form select,.quote-delivery textarea,.finish-option,.reader-controls input,.reader-navigation select){color:var(--ink);background:var(--surface);border-color:var(--line)}
html .finish-option[aria-pressed=true]{border-color:var(--action);box-shadow:0 0 0 1px var(--action)}
html .finish-option:hover{background:var(--page)}
html .language-switch{border-color:var(--line)}html .language-switch button{background:var(--surface);color:var(--ink)}html .language-switch button[aria-pressed=true]{background:var(--action);color:var(--action-ink);box-shadow:none}
html .copy-request{color:var(--ink);border-color:var(--line)}
html :is(a,button,input,select,textarea,summary):focus-visible{outline-color:var(--ink)}

/* A small weather desk and palette chooser, shared by home and catalog. */
:root[data-ambient='sky']{--page:#e6f3fc;--surface:#d8eaf8;--ink:#193548;--muted:#3c5c73;--line:#a7c7dd;--glow:#9ccbe8}
:root[data-ambient='dusk']{--page:#f8d3b3;--surface:#efbea0;--ink:#442718;--muted:#704630;--line:#c99b7c;--glow:#e6a269}
:root[data-ambient='forest']{--page:#203c31;--surface:#2b4a3e;--ink:#f1f5ec;--muted:#cbd8cd;--line:#547262;--glow:#b8c998;--logo-filter:invert(1);color-scheme:dark}
/* Keep the time-of-day character even when the forecast is rainy. */
:root[data-weather='rain'][data-ambient='sky'],:root[data-weather='storm'][data-ambient='sky']{--page:#e0edf5;--surface:#d2e4ef;--line:#aec6d5}
:root:is([data-weather='rain'],[data-weather='storm'])[data-ambient='dusk']{--page:#edcfc0;--surface:#dfbaaa;--ink:#442718;--muted:#664738;--line:#bea092}
:root[data-weather='storm'][data-ambient='day']{--page:#e8edf0;--surface:#dce4e8;--ink:#1d303a;--muted:#4c626e;--line:#b9cbd3}
.ambient-bar{position:relative;z-index:6;max-width:1600px;margin:auto;padding:10px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);color:var(--muted);background:var(--page);font-size:14px;line-height:1.5}
.ambient-preferences,.visit-weather{position:static;min-width:0}.ambient-preferences{flex-shrink:0}
.ambient-preferences summary,.visit-weather summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:12px;color:var(--ink);list-style:none;font-size:14px}
.ambient-preferences summary::-webkit-details-marker,.visit-weather summary::-webkit-details-marker{display:none}
.ambient-preferences summary:after,.visit-weather summary:after{content:'⌄';font-size:17px;flex:none}.ambient-preferences[open] summary:after,.visit-weather[open] summary:after{content:'⌃'}
.weather-summary-label{font-weight:600}.visit-weather summary #ambient-status{font-size:13px;color:var(--muted)}
.ambient-panel,.weather-panel{position:absolute;right:5%;top:calc(100% - 1px);width:350px;max-width:90%;max-height:70svh;overflow-y:auto;overscroll-behavior:contain;padding:26px;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 16px 40px #0003;scrollbar-gutter:stable}
.weather-panel{left:5%;right:auto;width:680px;padding:30px}
.ambient-panel fieldset{border:0;padding:0;margin:0;min-width:0}.ambient-panel legend{font-family:Georgia,serif;font-size:27px;line-height:1.15;margin-bottom:22px;padding:0}
.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.theme-options button{border:1px solid var(--line);background:var(--page);color:var(--ink);border-radius:3px;min-height:81px;padding:8px 5px;font:14px/1.4 Arial,Helvetica,sans-serif;cursor:pointer;min-width:0}
.theme-options button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:1px;font-weight:600}.theme-options button:hover{border-color:var(--ink)}
.theme-chip{display:block;height:26px;width:100%;border:1px solid #0002;border-radius:2px;margin-bottom:8px}
.theme-auto{background:linear-gradient(110deg,#cde9fc 0 28%,#fff 28% 50%,#f3bc95 50% 76%,#202126 76%)}.theme-sky{background:#e6f3fc}.theme-day{background:#fff}.theme-dusk{background:#f8d3b3}.theme-forest{background:#203c31}.theme-night{background:#202126}
.custom-color-label{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:14px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.custom-color-label input{width:54px;height:44px;flex:none;padding:3px;background:var(--page);border:1px solid var(--line);border-radius:3px;cursor:pointer}
.ambient-panel p{font-size:14px;line-height:1.6;margin:18px 0 0}.ambient-panel a,.weather-source a{text-decoration:underline;text-underline-offset:3px}.ambient-source{font-size:12px!important;color:var(--muted)}
.weather-panel .eyebrow{font-size:12px;margin:0 0 12px;letter-spacing:1.8px}.weather-panel h2{font-size:36px;line-height:1.1;margin:0 0 24px;letter-spacing:-.7px}
.weather-places{display:grid;grid-template-columns:1fr;gap:12px}.weather-location{display:flex;flex-direction:column;gap:5px;padding:16px;border:1px solid var(--line);border-left:3px solid var(--ink);font:14px/1.5 Arial,Helvetica,sans-serif}.weather-location strong{font:32px/1.2 Georgia,serif}.weather-location small{font-size:14px;color:var(--muted)}
.weather-places button{display:flex;flex-direction:column;align-items:start;gap:5px;min-width:0;padding:16px;background:var(--page);color:var(--ink);border:1px solid var(--line);border-radius:3px;cursor:pointer;text-align:left;font:14px/1.4 Arial,Helvetica,sans-serif}
.weather-places button strong{font-family:Georgia,serif;font-weight:400;font-size:27px;line-height:1.1}.weather-places button small{font-size:12px;line-height:1.5;color:var(--muted)}
.weather-places button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 3px var(--action)}
.weather-panel .weather-current{font-size:16px;line-height:1.6;margin:22px 0}
.weather-day-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 15px}.weather-day-controls button{font:14px/1.4 Arial,Helvetica,sans-serif;min-height:44px;padding:10px 17px;border:1px solid var(--line);border-radius:3px;background:var(--page);color:var(--ink);cursor:pointer}
.weather-day-controls button[aria-pressed=true]{background:var(--action);color:var(--action-ink);border-color:transparent}.weather-day-controls>span{font-size:13px;margin-left:auto;color:var(--muted)}
.weather-hours{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.weather-hour{display:flex;flex-direction:column;gap:7px;padding:16px 12px;border:1px solid var(--line);background:var(--page);border-radius:2px;text-align:center;min-width:0}
.weather-hour time{font-size:14px;font-variant-numeric:tabular-nums}.weather-hour strong{font-family:Georgia,serif;font-size:34px;line-height:1.1;font-weight:400}.weather-hour>span{font-size:14px;line-height:1.4}.weather-hour small{font-size:12px;line-height:1.5;color:var(--muted)}
.weather-message{font-size:14px;line-height:1.6;margin:18px 0}.weather-source{font-size:12px;line-height:1.6;color:var(--muted);margin:20px 0 0}.weather-retry{font:14px Arial,Helvetica,sans-serif;padding:8px 0;min-height:44px;border:0;background:none;color:var(--ink);text-decoration:underline;cursor:pointer;margin:0 18px 14px 0}
.weather-panel>.button{max-width:100%;font-size:14px}
@media(prefers-reduced-motion:no-preference){body,body>header,body>footer,.hero,.work,.content-section,.conditions,.contact,.buying,.catalog-access,.about,.accounts,.team-card,.ambient-bar{transition:background-color 1.2s ease,color 1.2s ease}}
@media(max-width:760px){.ambient-bar{padding:8px 6%;gap:16px}.visit-weather summary{flex-wrap:wrap;gap:2px 8px;position:relative;padding-right:17px;line-height:1.4}.visit-weather summary:after{position:absolute;right:0;top:12px}.weather-summary-label,.visit-weather summary #ambient-status{flex-basis:100%}.visit-weather summary #ambient-status{font-size:12px}.ambient-preferences summary{max-width:135px;font-size:14px;line-height:1.4;gap:8px}.weather-panel,.ambient-panel{left:12px;right:12px;width:auto;max-width:none;padding:24px 20px;max-height:66svh}.weather-panel h2{font-size:32px}.weather-places button{padding:13px}.weather-places button strong{font-size:25px}.weather-hours{gap:8px}.weather-hour{padding:14px 8px}.weather-hour small{font-size:12px}.weather-panel>.button{width:100%}.theme-options{gap:10px}.ambient-panel legend{font-size:29px}}
@media(max-width:380px){.weather-hours{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-places button small{font-size:12px}.weather-day-controls>span{flex-basis:100%;margin-left:0;margin-top:5px}}
@media print{:root{--page:#fff!important;--surface:#fff!important;--ink:#000!important;--muted:#333!important;--line:#ccc!important;--logo-filter:none!important;color-scheme:light}.ambient-bar{display:none}}

/* A coherent white-to-black palette; automatic sunset is deliberately softer. */
:root[data-ambient='ivory']{--page:#f7f5f0;--surface:#eeece6;--ink:#292822;--muted:#5f5d55;--line:#d0cec6}
:root[data-ambient='pearl']{--page:#ededed;--surface:#e3e3e3;--ink:#202020;--muted:#565656;--line:#c4c4c4}
:root[data-ambient='stone']{--page:#c9c9c7;--surface:#bebebc;--ink:#191919;--muted:#41413f;--line:#979794}
:root[data-ambient='charcoal']{--page:#353535;--surface:#414141;--ink:#f8f8f5;--muted:#d0d0cc;--line:#696965;--logo-filter:invert(1);color-scheme:dark}
:root[data-ambient='night']{--page:#171717;--surface:#252525;--ink:#f6f6f2;--muted:#c7c7c2;--line:#494946;--logo-filter:invert(1);color-scheme:dark}
:root[data-ambient='dusk'],:root:is([data-weather='rain'],[data-weather='storm'])[data-ambient='dusk']{--page:#f3e7e2;--surface:#eadbd4;--ink:#43322b;--muted:#6a564d;--line:#d2bfb5;--glow:#dfbfae}
.theme-options{grid-template-columns:repeat(3,minmax(0,1fr))}.theme-options button[data-theme='auto']{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:16px;min-height:48px}.theme-options button[data-theme='auto'] .theme-chip{width:80px;margin:0;height:22px}
.theme-auto{background:linear-gradient(110deg,#e6f3fc 0 28%,#fff 28% 50%,#f3e7e2 50% 76%,#171717 76%)}.theme-ivory{background:#f7f5f0}.theme-pearl{background:#ededed}.theme-stone{background:#c9c9c7}.theme-charcoal{background:#353535}.theme-night{background:#171717}
.weather-location-note{font-size:14px;line-height:1.65;color:var(--muted);margin:18px 0 0;padding-bottom:18px;border-bottom:1px solid var(--line)}
.places{flex-wrap:wrap;gap:28px 60px}.places span{font-size:12px;letter-spacing:1.1px}
