@font-face {
font-family: 'Figtree';
src: url('/assets/fonts/figtree-variable.woff2') format('woff2-variations');
font-weight: 300 800;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Architects Daughter';
src: url('/assets/fonts/architects-daughter-400.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
size-adjust: 85%;
}
@font-face {
font-family: 'Architects Daughter';
src: url('/assets/fonts/architects-daughter-400.woff2') format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
size-adjust: 85%;
}
:root {
--c-paper: #ffffff;        
--c-paper-2: #f5f5f4;
--c-limestone: #ececea;
--c-stone: #d6d6d3;
--c-line: #e2e2df;
--c-graphite: #1f2427;
--c-ink: #15191b;          
--c-ink-2: #1b2023;
--c-slate: #697178;        
--c-slate-2: #555c62;
--c-forest: #244a42;
--c-forest-2: #2f5f55;
--c-copper: #b7855b;       
--c-copper-ink: #8a5a34;   
--c-copper-soft: #e7d3bf;
--c-white: #fff;
--c-on-dark: #f3efe8;
--c-on-dark-2: #b9b4ab;    
--bg: var(--c-paper);
--fg: var(--c-graphite);
--fg-muted: var(--c-slate-2);
--accent: var(--c-forest);
--accent-2: var(--c-copper);
--focus: #2f6f62;
--f-display: 'Architects Daughter', 'Bradley Hand', 'Segoe Print', cursive;
--f-brand: var(--f-display);
--f-sans: 'Figtree', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
--fs-hero: clamp(3rem, 1.2rem + 7.4vw, 8.25rem);
--fs-d1: clamp(2.6rem, 1.4rem + 4.6vw, 5.75rem);
--fs-d2: clamp(2.1rem, 1.3rem + 3vw, 4.1rem);
--fs-d3: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem);
--fs-lead: clamp(1.075rem, 1rem + 0.35vw, 1.3rem);
--fs-body: 1rem;
--fs-sm: 0.9rem;
--fs-xs: 0.78rem;
--lh-tight: 1.06;
--lh-snug: 1.2;
--lh-body: 1.65;
--tracking-caps: 0.16em;
--s-1: 0.25rem; --s-2: 0.5rem; --s-3: 0.75rem; --s-4: 1rem; --s-5: 1.5rem;
--s-6: 2rem; --s-7: 3rem; --s-8: 4rem; --s-9: 6rem; --s-10: 8rem;
--section-y: clamp(4.5rem, 3rem + 6vw, 9rem);
--gutter: clamp(1rem, 0.5rem + 2.5vw, 3rem);
--container: 1320px;
--container-narrow: 820px;
--r-sm: 8px;
--r-md: 14px;
--r-lg: 22px;
--r-xl: 32px;
--shadow-1: 0 1px 2px rgb(31 36 39 / .06), 0 2px 8px rgb(31 36 39 / .05);
--shadow-2: 0 2px 6px rgb(31 36 39 / .06), 0 18px 40px -12px rgb(31 36 39 / .18);
--shadow-3: 0 30px 80px -24px rgb(21 25 27 / .45);
--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
--ease-spring: cubic-bezier(0.34, 1.36, 0.64, 1);
--t-fast: 180ms;
--t-std: 340ms;
--t-expr: 720ms;
--stagger: 80ms;
--header-h: 76px;
}
@media (prefers-reduced-motion: reduce) {
:root { --t-fast: 1ms; --t-std: 1ms; --t-expr: 1ms; --stagger: 0ms; }
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
margin: 0;
background: var(--bg);
color: var(--fg);
font-family: var(--f-sans);
font-size: var(--fs-body);
line-height: var(--lh-body);
font-weight: 450;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
overflow-x: clip;
}
img, svg, video, canvas, picture { display: block; max-width: 100%; }
img { height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
p, h1, h2, h3, h4, h5, h6, figure, blockquote, dl, dd { margin: 0; }
ul[class], ol[class] { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { font-weight: 400; text-wrap: balance; }
p { text-wrap: pretty; }
strong { font-weight: 650; }
hr { border: 0; border-top: 1px solid var(--c-line); margin: var(--s-7) 0; }
::selection { background: var(--c-forest); color: var(--c-paper); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 4px; }
.on-dark :focus-visible, .is-dark :focus-visible { outline-color: var(--c-copper-soft); }
.skip-link {
position: fixed; left: 16px; top: -100px; z-index: 1000;
background: var(--c-ink); color: var(--c-on-dark); padding: 12px 18px; border-radius: var(--r-sm);
text-decoration: none; font-weight: 600;
}
.skip-link:focus { top: 16px; }
.sr-only {
position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.display-hero, .display-1, .display-2, .display-3 { font-family: var(--f-display); font-weight: 400; letter-spacing: -0.015em; }
.display-hero { font-size: var(--fs-hero); line-height: 1.05; letter-spacing: -0.025em; }
.display-1 { font-size: var(--fs-d1); line-height: var(--lh-tight); }
.display-2 { font-size: var(--fs-d2); line-height: 1.06; }
.display-3 { font-size: var(--fs-d3); line-height: 1.12; }
.display-hero em, .display-1 em, .display-2 em, .display-3 em { color: var(--accent); }
.on-dark .display-hero em, .on-dark .display-1 em, .on-dark .display-2 em, .on-dark .display-3 em, .is-dark em { color: var(--c-copper-soft); }
.h-card { font-family: var(--f-sans); font-size: 1.15rem; font-weight: 650; line-height: 1.3; letter-spacing: -0.01em; }
.lead { font-size: var(--fs-lead); line-height: 1.55; color: var(--fg-muted); max-width: 60ch; }
.small { font-size: var(--fs-sm); }
.muted { color: var(--fg-muted); }
.eyebrow {
font-family: var(--f-sans); font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps);
text-transform: uppercase; color: var(--c-copper-ink); display: inline-flex; align-items: center; gap: 10px;
margin-bottom: var(--s-5);
}
.eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; opacity: .7; }
.on-dark .eyebrow, .is-dark .eyebrow { color: var(--c-copper-soft); }
.on-dark, .is-dark { background: var(--c-ink); color: var(--c-on-dark); --fg-muted: var(--c-on-dark-2); --c-line: rgb(255 255 255 / .12); }
.on-dark .lead, .is-dark .lead { color: var(--c-on-dark-2); }
.prose { max-width: 72ch; font-size: 1.0625rem; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-family: var(--f-display); font-size: var(--fs-d3); line-height: 1.15; margin-top: 2.2em; }
.prose h3 { font-size: 1.2rem; font-weight: 650; margin-top: 1.8em; letter-spacing: -0.01em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li + li { margin-top: .45em; }
.prose a { color: var(--accent); }
.prose blockquote { border-left: 2px solid var(--c-copper); padding: .2em 0 .2em 1.2em; font-family: var(--f-display); font-size: 1.4rem; line-height: 1.35; }
.prose table, table.table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.prose th, .prose td, .table th, .table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--c-line); vertical-align: top; }
.prose th, .table th { font-weight: 650; background: var(--c-paper-2); }
.table-wrap { overflow-x: auto; border: 1px solid var(--c-line); border-radius: var(--r-md); }
.table-wrap table { border: 0; }
.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.container--narrow { max-width: calc(var(--container-narrow) + var(--gutter) * 2); }
.section { padding-block: var(--section-y); position: relative; }
.section--tight { padding-block: calc(var(--section-y) * .6); }
.section--paper2 { background: var(--c-paper-2); }
.section--stone { background: var(--c-limestone); }
.section-head { display: grid; gap: var(--s-4); margin-bottom: clamp(2.5rem, 2rem + 2vw, 4.5rem); max-width: 860px; }
.section-head .eyebrow { margin-bottom: 0; }
.section-head--center { text-align: center; margin-inline: auto; justify-items: center; }
.section-head--center .lead { margin-inline: auto; }
.grid { display: grid; gap: var(--s-5); }
.grid-2 { display: grid; gap: var(--s-6); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { display: grid; gap: var(--s-5); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { display: grid; gap: var(--s-5); grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }
.split { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2rem, 1rem + 4vw, 6rem); align-items: start; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; } }
.stack > * + * { margin-top: var(--s-4); }
.js .reveal { opacity: 0; transform: translate3d(0, 22px, 0); }
.js .reveal.is-in {
opacity: 1; transform: none;
transition: opacity var(--t-expr) var(--ease-out), transform var(--t-expr) var(--ease-out);
transition-delay: calc(var(--d, 0) * var(--stagger));
}
.js .reveal-mask { clip-path: inset(0 0 100% 0); }
.js .reveal-mask.is-in { clip-path: inset(0 0 0 0); transition: clip-path 1000ms var(--ease-out); transition-delay: calc(var(--d, 0) * var(--stagger)); }
@media (prefers-reduced-motion: reduce) {
.js .reveal, .js .reveal-mask { opacity: 1; transform: none; clip-path: none; }
}
.btn {
--btn-bg: var(--c-graphite); --btn-fg: var(--c-paper); --btn-bd: transparent;
display: inline-flex; align-items: center; justify-content: center; gap: 10px;
min-height: 52px; padding: 0 24px; border-radius: 999px; border: 1px solid var(--btn-bd);
background: var(--btn-bg); color: var(--btn-fg); text-decoration: none; font-weight: 650; font-size: .975rem;
letter-spacing: -0.005em; white-space: nowrap; position: relative; isolation: isolate; overflow: hidden;
transition: transform var(--t-fast) var(--ease-out), box-shadow var(--t-std) var(--ease-out), background var(--t-std) var(--ease-out), color var(--t-std) var(--ease-out), border-color var(--t-std);
}
.btn::after { 
content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
background: radial-gradient(120px 60px at var(--mx, 50%) var(--my, 50%), rgb(255 255 255 / .22), transparent 70%);
opacity: 0; transition: opacity var(--t-std);
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); }
.btn:hover::after { opacity: 1; }
.btn:active { transform: translateY(0); }
.btn__icon { transition: transform var(--t-fast) var(--ease-out); flex: none; }
.btn:hover .btn__icon { transform: translateX(3px); }
.btn--primary { --btn-bg: var(--c-forest); --btn-fg: #fff; }
.btn--primary:hover { --btn-bg: var(--c-forest-2); }
.btn--ghost { --btn-bg: transparent; --btn-fg: var(--c-graphite); --btn-bd: rgb(31 36 39 / .25); }
.btn--ghost:hover { --btn-bd: var(--c-graphite); box-shadow: none; }
.btn--light { --btn-bg: var(--c-paper); --btn-fg: var(--c-ink); }
.btn--dark-ghost { --btn-bg: rgb(255 255 255 / .04); --btn-fg: var(--c-on-dark); --btn-bd: rgb(255 255 255 / .3); backdrop-filter: blur(6px); }
.btn--dark-ghost:hover { --btn-bd: rgb(255 255 255 / .7); }
.btn--link { --btn-bg: transparent; min-height: 0; padding: 0; border-radius: 0; color: var(--accent); }
.btn--link:hover { transform: none; box-shadow: none; }
.btn--sm { min-height: 42px; padding: 0 18px; font-size: .9rem; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
@media (max-width: 480px) { .btn-row > .btn { flex: 1 1 100%; } }
.link-arrow { display: inline-flex; align-items: center; gap: 8px; color: var(--accent); font-weight: 650; text-decoration: none; }
.link-arrow .icon { transition: transform var(--t-fast) var(--ease-out); }
.link-arrow:hover .icon { transform: translateX(3px); }
.on-dark .link-arrow, .is-dark .link-arrow { color: var(--c-copper-soft); }
.card {
background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: clamp(1.4rem, 1rem + 1vw, 2rem);
transition: transform var(--t-std) var(--ease-out), box-shadow var(--t-std) var(--ease-out), border-color var(--t-std);
}
a.card { display: block; text-decoration: none; color: inherit; }
a.card:hover, .card--hover:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); border-color: transparent; }
.on-dark .card, .is-dark .card { background: var(--c-ink-2); border-color: rgb(255 255 255 / .08); }
.card__icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; background: var(--c-paper-2); color: var(--accent); margin-bottom: var(--s-5); }
.on-dark .card__icon, .is-dark .card__icon { background: rgb(255 255 255 / .06); color: var(--c-copper-soft); }
.chip {
display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: 999px;
border: 1px solid var(--c-line); background: var(--c-white); font-size: .9rem; font-weight: 600; color: var(--fg);
transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.chip:hover { border-color: var(--c-graphite); }
.chip[aria-pressed="true"], .chip.is-active { background: var(--c-graphite); color: var(--c-paper); border-color: var(--c-graphite); }
.badge { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: var(--c-paper-2); color: var(--c-slate-2); }
.badge--demo { background: #fff4d6; color: #7a5600; border: 1px dashed #c99a2e; }
.badge--forest { background: rgb(36 74 66 / .1); color: var(--c-forest); }
.review-note { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 600; padding: 2px 10px; border-radius: 6px; background: #fff4d6; color: #6b4b00; border: 1px dashed #c99a2e; vertical-align: middle; }
.breadcrumbs ol { padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; font-size: .85rem; color: var(--fg-muted); margin-bottom: var(--s-6); }
.breadcrumbs li { display: inline-flex; align-items: center; gap: 6px; }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { color: var(--fg); text-decoration: underline; }
.page-hero { position: relative; overflow: hidden; padding: calc(var(--header-h) + clamp(2.5rem, 2rem + 4vw, 6rem)) 0 clamp(3rem, 2rem + 4vw, 6rem); background: var(--c-limestone); isolation: isolate; }
.page-hero__tex { position: absolute; inset: 0; z-index: -2; background: var(--tex) center/cover no-repeat, var(--c-limestone); opacity: .55; transform: scale(1.04); }
.js .page-hero__tex { animation: heroTexIn 1600ms var(--ease-out) both; }
@keyframes heroTexIn { from { opacity: 0; transform: scale(1.1); } to { opacity: .55; transform: scale(1.04); } }
.page-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, var(--c-paper) 0%, rgb(255 255 255 / .92) 42%, rgb(255 255 255 / .35) 100%); }
.page-hero__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: end; }
.page-hero__copy { display: grid; gap: var(--s-5); }
.page-hero__copy .eyebrow { margin-bottom: 0; }
.page-hero__copy .display-1 { max-width: 15ch; }
.page-hero--dark { background: var(--c-ink); color: var(--c-on-dark); --fg-muted: var(--c-on-dark-2); }
.page-hero--dark .page-hero__tex { opacity: .35; }
.page-hero--dark::after { background: linear-gradient(100deg, var(--c-ink) 0%, rgb(21 25 27 / .85) 45%, rgb(21 25 27 / .3) 100%); }
.page-hero--dark .eyebrow { color: var(--c-copper-soft); }
.page-hero--dark .lead { color: var(--c-on-dark-2); }
@media (max-width: 900px) { .page-hero__grid { grid-template-columns: 1fr; } }
.faq { border-top: 1px solid var(--c-line); }
.faq__item { border-bottom: 1px solid var(--c-line); }
.faq__item summary {
list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--s-5);
padding: 22px 0; font-size: clamp(1.02rem, .95rem + .3vw, 1.2rem); font-weight: 600; letter-spacing: -0.01em;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__icon { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--c-line); display: grid; place-items: center; transition: transform var(--t-std) var(--ease-out), background var(--t-std); }
.faq__item[open] .faq__icon { transform: rotate(45deg); background: var(--c-graphite); color: var(--c-paper); border-color: var(--c-graphite); }
.faq__a { padding: 0 0 24px; color: var(--fg-muted); max-width: 70ch; }
.faq__a > * + * { margin-top: .8em; }
.faq__item summary:hover span:first-child { color: var(--accent); }
.factbox { border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--s-6); background: rgb(255 255 255 / .7); backdrop-filter: blur(8px); }
.factbox__title { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); margin-bottom: var(--s-4); }
.factbox dl > div { display: grid; grid-template-columns: 9.5rem 1fr; gap: var(--s-4); padding: 10px 0; border-top: 1px solid var(--c-line); font-size: .93rem; }
.factbox dt { color: var(--fg-muted); font-weight: 600; }
@media (max-width: 480px) { .factbox dl > div { grid-template-columns: 1fr; gap: 2px; } }
.checklist { display: grid; gap: 12px; }
.checklist li { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; }
.checklist .icon { color: var(--accent); margin-top: 3px; }
.on-dark .checklist .icon, .is-dark .checklist .icon { color: var(--c-copper-soft); }
.cta-band { position: relative; overflow: hidden; isolation: isolate; background: var(--c-ink); color: var(--c-on-dark); padding-block: clamp(5rem, 3rem + 8vw, 10rem); }
.cta-band__tex { position: absolute; inset: -6%; z-index: -2; background: var(--tex) center/cover no-repeat; opacity: .5; transform: translate3d(0, var(--py, 0px), 0) scale(1.05); }
.cta-band::after { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 90% at 20% 30%, rgb(21 25 27 / .55), rgb(21 25 27 / .92)); }
.cta-band__inner { display: grid; gap: var(--s-5); max-width: 980px; }
.cta-band .display-2 { max-width: 20ch; }
.cta-band .lead { color: var(--c-on-dark-2); }
.field { display: grid; gap: 8px; }
.field label, .field legend { font-weight: 650; font-size: .92rem; }
.field .hint { font-size: .84rem; color: var(--fg-muted); }
.input, .select, .textarea {
width: 100%; min-height: 52px; padding: 12px 16px; border-radius: var(--r-md); border: 1px solid var(--c-stone); background: var(--c-white);
transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.textarea { min-height: 130px; resize: vertical; }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--c-forest); box-shadow: 0 0 0 4px rgb(36 74 66 / .15); }
.field.has-error .input, .field.has-error .select, .field.has-error .textarea { border-color: #a5362b; }
.field .error { color: #a5362b; font-size: .85rem; font-weight: 600; }
.ph { position: relative; background: var(--c-limestone) var(--tex, none) center/cover; border-radius: var(--r-lg); overflow: hidden; }
.ph__label { position: absolute; left: 12px; bottom: 12px; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: rgb(21 25 27 / .75); color: #fff; padding: 5px 10px; border-radius: 6px; }
.toast { position: fixed; left: 50%; bottom: 96px; z-index: 300; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; background: var(--c-ink); color: var(--c-on-dark); padding: 12px 18px; border-radius: 999px; font-weight: 600; font-size: .92rem; box-shadow: var(--shadow-3); transition: opacity var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out); }
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.logo { display: inline-flex; align-items: center; gap: 10px; color: var(--c-graphite); }
.logo__mark { flex: none; }
.logo__accent { fill: var(--c-copper); transition: transform var(--t-std) var(--ease-spring); transform-origin: 23px 23px; }
a:hover .logo__accent { transform: rotate(90deg); }
.logo__word { font-family: var(--f-brand); font-size: 1.85rem; line-height: 1; letter-spacing: -0.01em; display: inline-flex; align-items: baseline; gap: 6px; }
.logo__sub { font-family: var(--f-sans); font-size: .62rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; opacity: .7; }
.logo--light { color: var(--c-on-dark); }
.site-header {
position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--header-h);
color: var(--c-graphite);
transition: background var(--t-std) var(--ease-out), box-shadow var(--t-std), color var(--t-std), transform var(--t-std) var(--ease-out);
}
.site-header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-5); }
.site-header__brand { text-decoration: none; color: inherit; }
.site-header__brand .logo { color: inherit; }
.site-header.is-scrolled { background: rgb(255 255 255 / .86); backdrop-filter: saturate(1.4) blur(16px); -webkit-backdrop-filter: saturate(1.4) blur(16px); box-shadow: 0 1px 0 rgb(31 36 39 / .08); }
body.hero-dark .site-header:not(.is-scrolled) { color: var(--c-on-dark); }
body.hero-dark .site-header:not(.is-scrolled) .btn--primary { --btn-bg: var(--c-paper); --btn-fg: var(--c-ink); }
.site-nav__list { display: flex; align-items: center; gap: 2px; }
.site-nav__item { position: relative; }
.site-nav__link {
display: inline-flex; align-items: center; gap: 4px; padding: 10px 14px; border-radius: 999px; border: 0; background: none;
font-size: .92rem; font-weight: 600; text-decoration: none; color: inherit; opacity: .86; white-space: nowrap;
transition: opacity var(--t-fast), background var(--t-fast);
}
.site-nav__link:hover, .site-nav__link[aria-expanded="true"] { opacity: 1; background: rgb(127 127 127 / .12); }
.site-nav__link.is-active, .site-nav__link[aria-current="page"] { opacity: 1; }
.site-nav__link.is-active::after, .site-nav__link[aria-current="page"]::after { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--c-copper); margin-left: 4px; }
.site-nav__link .icon { flex-shrink: 0; transition: transform var(--t-fast) var(--ease-out); }
.site-nav__link[aria-expanded="true"] .icon { transform: rotate(180deg); }
.mega {
position: absolute; top: calc(100% + 10px); left: 50%; width: 360px; padding: 10px;
background: var(--c-paper); color: var(--c-graphite); border-radius: var(--r-lg); box-shadow: var(--shadow-3); border: 1px solid var(--c-line);
opacity: 0; visibility: hidden; transform: translate(-50%, 8px) scale(.98); transform-origin: top center;
transition: opacity var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out), visibility 0s linear var(--t-std);
}
.mega::before { content: ''; position: absolute; left: 0; right: 0; bottom: 100%; height: 12px; }
.has-menu.is-open .mega { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); transition-delay: 0s; }
.mega ul { margin: 0; padding: 0; list-style: none; }
.mega a { display: grid; gap: 2px; padding: 12px 14px; border-radius: var(--r-md); text-decoration: none; transition: background var(--t-fast); }
.mega a:hover, .mega a[aria-current="page"] { background: var(--c-limestone); }
.mega strong { font-weight: 650; font-size: .95rem; }
.mega span { font-size: .82rem; color: var(--c-slate-2); }
.site-header__actions { display: flex; align-items: center; gap: 10px; }
.site-header__burger { display: none; width: 46px; height: 46px; border-radius: 50%; border: 1px solid currentColor; border-color: rgb(127 127 127 / .35); background: transparent; place-items: center; color: inherit; }
@media (max-width: 1400px) { .site-nav__link { padding: 10px 10px; font-size: .9rem; } }
@media (max-width: 1280px) {
.site-nav { display: none; }
.site-header__burger { display: grid; }
}
@media (max-width: 480px) { .site-header__cta { display: none; } }
.mobile-nav { position: fixed; inset: 0; z-index: 200; background: rgb(21 25 27 / .4); backdrop-filter: blur(4px); }
.mobile-nav[hidden] { display: none; }
.mobile-nav__panel {
position: absolute; inset: 0 0 0 auto; width: min(100%, 440px); background: var(--c-paper); color: var(--c-graphite);
display: flex; flex-direction: column; padding: 16px var(--gutter) 24px; overflow-y: auto;
animation: mnavIn var(--t-std) var(--ease-out);
}
@keyframes mnavIn { from { transform: translateX(30px); opacity: 0; } }
.mobile-nav__top { display: flex; justify-content: space-between; align-items: center; height: calc(var(--header-h) - 16px); margin-bottom: 16px; }
.mobile-nav__top a { text-decoration: none; }
.mobile-nav__close { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--c-line); background: none; display: grid; place-items: center; }
.mobile-nav nav { display: grid; }
.mobile-nav__link, .mobile-nav__group summary {
display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--c-line);
font-family: var(--f-display); font-size: 1.8rem; line-height: 1.1; text-decoration: none; cursor: pointer; list-style: none;
}
.mobile-nav__group summary::-webkit-details-marker { display: none; }
.mobile-nav__group[open] summary .icon { transform: rotate(180deg); }
.mobile-nav__group ul { padding: 8px 0 12px; display: grid; list-style: none; }
.mobile-nav__group a { display: block; padding: 10px 0 10px 4px; text-decoration: none; font-weight: 600; color: var(--c-slate-2); }
.mobile-nav__cta { margin-top: auto; padding-top: var(--s-6); }
.mobile-nav__cta .btn { width: 100%; }
.site-footer { background: var(--c-ink); color: var(--c-on-dark-2); padding: clamp(4rem, 3rem + 4vw, 7rem) 0 calc(var(--s-6) + env(safe-area-inset-bottom)); font-size: .93rem; }
.site-footer a { text-decoration: none; color: var(--c-on-dark); opacity: .82; transition: opacity var(--t-fast); }
.site-footer a:hover { opacity: 1; text-decoration: underline; }
.site-footer__top { display: grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: var(--s-7) var(--s-6); padding-bottom: var(--s-8); border-bottom: 1px solid rgb(255 255 255 / .1); }
.site-footer__brand p { margin-top: var(--s-5); max-width: 38ch; }
.site-footer__note { font-size: .84rem; color: var(--c-on-dark-2); opacity: .85; }
.site-footer__title { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-soft); margin-bottom: var(--s-4); }
.site-footer__col ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.site-footer address { font-style: normal; display: grid; gap: 12px; }
.site-footer address p { display: grid; grid-template-columns: 18px 1fr; gap: 10px; }
.site-footer address .icon { margin-top: 3px; color: var(--c-copper-soft); }
.site-footer__social { display: flex; gap: 10px; margin-top: var(--s-5); }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-4); padding-top: var(--s-6); font-size: .85rem; }
@media (max-width: 1024px) { .site-footer__top { grid-template-columns: repeat(2, 1fr); } .site-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .site-footer__top { grid-template-columns: 1fr; } }
.wa-float {
position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); z-index: 150;
display: inline-flex; align-items: center; gap: 10px; height: 60px; padding: 0 16px; border-radius: 999px;
background: #25d366; color: #fff; text-decoration: none; font-weight: 700; font-size: .95rem;
box-shadow: 0 10px 30px -6px rgb(37 211 102 / .55), 0 2px 6px rgb(0 0 0 / .15);
transition: transform var(--t-std) var(--ease-spring), box-shadow var(--t-std), padding var(--t-std) var(--ease-out);
}
.wa-float:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 16px 40px -6px rgb(37 211 102 / .6), 0 2px 6px rgb(0 0 0 / .15); }
.wa-float:focus-visible { outline: 3px solid var(--c-graphite); outline-offset: 3px; }
.wa-float svg { flex: none; }
.wa-float__label { max-width: 120px; overflow: hidden; white-space: nowrap; transition: max-width var(--t-std) var(--ease-out), opacity var(--t-std); }
.wa-float.is-compact { padding: 0 16px; }
.wa-float.is-compact .wa-float__label { max-width: 0; opacity: 0; margin-left: -10px; }
.wa-float.is-compact:hover .wa-float__label { max-width: 120px; opacity: 1; margin-left: 0; }
.wa-float.is-tucked { transform: translateY(calc(100% + 28px)); opacity: 0; pointer-events: none; transition: transform var(--t-std) var(--ease-out), opacity var(--t-std); }
.wa-float__ring { position: absolute; inset: 0; border-radius: inherit; border: 2px solid #25d366; opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
.wa-float.is-pulse .wa-float__ring { animation: waRing 2.4s var(--ease-out) 3; }
}
@keyframes waRing { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.35); opacity: 0; } }
@media (max-width: 600px) { .wa-float { height: 56px; padding: 0 14px; } .wa-float__label { max-width: 0; opacity: 0; margin-left: -10px; } }
@media print { .wa-float, .site-header, .mobile-nav { display: none !important; } }
.cta-pop {
width: min(820px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0;
border: 0; border-radius: var(--r-xl); background: var(--c-paper); color: var(--fg); box-shadow: var(--shadow-3); overflow: hidden;
opacity: 0; transform: translateY(16px) scale(.98);
transition: opacity var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out);
}
.cta-pop.is-in { opacity: 1; transform: none; }
.cta-pop::backdrop { background: rgb(21 25 27 / .64); opacity: 0; transition: opacity var(--t-std) var(--ease-out); }
.cta-pop.is-in::backdrop { opacity: 1; }
.has-cta-pop { overflow: hidden; }
.cta-pop [hidden] { display: none !important; }
.cta-pop__panel {
display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); max-height: calc(100dvh - 32px);
overflow: auto; overscroll-behavior: contain; scrollbar-width: thin;
}
.cta-pop__media { position: relative; min-height: 100%; margin: 0; background: #2b2620; }
.cta-pop__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.cta-pop__quote {
position: absolute; left: 0; right: 0; bottom: 0; padding: 96px 24px 22px; color: var(--c-white);
background: linear-gradient(to top, rgb(21 25 27 / .9) 0%, rgb(21 25 27 / .65) 55%, transparent);
}
.cta-pop__quote blockquote { margin: 0 0 10px; }
.cta-pop__quote blockquote p { margin: 0; font-family: var(--f-display); font-size: 1.25rem; line-height: 1.3; }
.cta-pop__by { margin: 0; font-size: .82rem; color: rgb(255 255 255 / .8); }
.cta-pop__by strong { color: var(--c-white); }
.cta-pop__body { padding: clamp(24px, 1rem + 1.5vw, 40px); }
.cta-pop__close {
position: absolute; z-index: 2; top: 12px; right: 12px; display: grid; place-items: center; width: 44px; height: 44px;
border: 1px solid var(--c-line); border-radius: 50%; background: rgb(255 255 255 / .9); color: var(--fg); cursor: pointer;
transition: background var(--t-fast), transform var(--t-fast) var(--ease-out);
}
.cta-pop__close:hover { background: var(--c-white); transform: rotate(90deg); }
.cta-pop__eyebrow { margin: 0 48px 8px 0; font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); }
.cta-pop__title { margin: 0 48px 10px 0; font-family: var(--f-display); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); line-height: 1.15; color: var(--c-ink); }
.cta-pop__title:focus { outline: none; }
.cta-pop__text { margin: 0 0 20px; font-size: .95rem; color: var(--fg-muted); }
.cta-pop__form { display: grid; gap: 12px; }
.cta-pop__form .field label { font-weight: 600; font-size: .88rem; }
.cta-pop__form .input::placeholder, .cta-pop__form .textarea::placeholder { color: #80878c; opacity: 1; }
.cta-pop__form .input[aria-invalid="true"] { border-color: #a5362b; }
.cta-pop__form .textarea { min-height: 84px; }
.cta-pop__opt { font-weight: 400; color: var(--fg-muted); }
.cta-pop__hint { margin: -4px 0 0; font-size: .84rem; color: var(--fg-muted); }
.cta-pop__status { margin: 0; font-size: .88rem; font-weight: 600; color: #a5362b; }
.cta-pop__status:empty { display: none; }
.cta-pop__send { width: 100%; justify-content: center; margin-top: 4px; }
.cta-pop__note { margin: 0; font-size: .8rem; text-align: center; color: var(--fg-muted); }
.cta-pop__note a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.cta-pop__done { display: grid; justify-items: start; gap: 12px; padding-top: 32px; }
.cta-pop__done .cta-pop__text { margin-bottom: 8px; }
.cta-pop__tick { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--c-forest); color: var(--c-white); }
@media (max-width: 600px) {
.cta-pop { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); }
.cta-pop__panel { grid-template-columns: minmax(0, 1fr); max-height: calc(100dvh - 24px); }
.cta-pop__media { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 0; padding: 18px 64px 0 18px; background: none; }
.cta-pop__media img { position: static; width: 56px; height: 56px; border-radius: 50%; }
.cta-pop__quote { position: static; padding: 0; background: none; color: var(--fg); }
.cta-pop__quote blockquote { margin-bottom: 4px; }
.cta-pop__quote blockquote p { font-size: 1rem; }
.cta-pop__by { font-size: .76rem; color: var(--fg-muted); }
.cta-pop__by strong { color: var(--fg); }
.cta-pop__body { padding: 16px 18px 18px; }
.cta-pop__close { top: 10px; right: 10px; }
.cta-pop__eyebrow, .cta-pop__title { margin-right: 0; }
.cta-pop__text { margin-bottom: 16px; font-size: .92rem; }
}
@media (max-width: 600px) and (max-height: 700px) {
.cta-pop__media { display: none; }
.cta-pop__eyebrow, .cta-pop__title { margin-right: 48px; }
}
@media print { .cta-pop { display: none !important; } }
.hero {
--hero-bg: #0d0c0b;
--hero-scrim: 11 10 9;
position: relative;
isolation: isolate;
overflow: hidden;
display: grid;
min-height: 100vh;
min-height: clamp(600px, 100svh, 1180px);
background: var(--hero-bg);
color: var(--c-on-dark);
}
.hero__media { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.hero__poster,
.hero__stage,
.hero__scrim { position: absolute; inset: 0; }
.hero__poster {
background-color: var(--hero-bg);
background-image: radial-gradient(60% 55% at 70% 62%, rgb(120 92 64 / .22), transparent 70%);
background-size: cover;
background-position: 68% 50%;
background-repeat: no-repeat;
transition: opacity 1.2s var(--ease-out);
}
.hero:not(.is-3d) .hero__poster,
.hero.module-failed .hero__poster { background-image: url('/assets/img/hero/hero-calacatta-1920.webp'); }
.hero:not(.is-3d)[data-material="nero"] .hero__poster { background-image: url('/assets/img/hero/hero-nero-1920.webp'); }
.hero:not(.is-3d)[data-material="travertine"] .hero__poster { background-image: url('/assets/img/hero/hero-travertine-1920.webp'); }
.hero:not(.is-3d)[data-material="oak"] .hero__poster { background-image: url('/assets/img/hero/hero-oak-1920.webp'); }
.hero:not(.is-3d)[data-material="statuario"] .hero__poster { background-image: url('/assets/img/hero/hero-statuario-1920.webp'); }
.hero:not(.is-3d)[data-material="concrete"] .hero__poster { background-image: url('/assets/img/hero/hero-concrete-1920.webp'); }
.hero:not(.is-3d)[data-material="terrazzo"] .hero__poster { background-image: url('/assets/img/hero/hero-terrazzo-1920.webp'); }
.hero.is-live .hero__poster { opacity: 0; }
.hero__poster--old.is-out { opacity: 0; }
.hero__canvas {
display: block; width: 100%; height: 100%;
opacity: 0;
transition: opacity 1.1s var(--ease-out);
}
.hero__canvas.is-on { opacity: 1; }
.hero__scrim {
background:
linear-gradient(180deg, rgb(var(--hero-scrim) / .6) 0, rgb(var(--hero-scrim) / 0) 20%),
linear-gradient(90deg, rgb(var(--hero-scrim) / .86) 0%, rgb(var(--hero-scrim) / .7) 28%, rgb(var(--hero-scrim) / .3) 48%, rgb(var(--hero-scrim) / 0) 62%),
linear-gradient(0deg, rgb(var(--hero-scrim) / .5) 0, rgb(var(--hero-scrim) / .2) 12%, rgb(var(--hero-scrim) / 0) 24%),
radial-gradient(130% 100% at 68% 50%, transparent 62%, rgb(0 0 0 / .26) 100%),
radial-gradient(34% 26% at 96% 100%, rgb(var(--hero-scrim) / .5), rgb(var(--hero-scrim) / 0));
}
.hero__inner {
position: relative; z-index: 2;
display: grid;
grid-template-rows: 1fr auto;
gap: var(--s-6);
padding-top: calc(var(--header-h) + clamp(1.5rem, 5vh, 4.5rem));
padding-bottom: clamp(1.25rem, 3.2vh, 2.5rem);
}
.hero__copy { align-self: center; max-width: 47rem; }
.hero__eyebrow { margin-bottom: clamp(1.1rem, 2.6vh, 1.75rem); }
.hero__eyebrow-dot { opacity: .7; }
.hero__title {
font-size: clamp(2.85rem, min(1rem + 6.5vw, 14.2vh), 8.25rem);
line-height: 1.04;
letter-spacing: -0.028em;
max-width: 9.6em;
text-shadow: 0 2px 30px rgb(0 0 0 / .35);
}
.hero__title em { display: inline-block; }
.hero__lead {
margin-top: clamp(1.25rem, 3vh, 2rem);
max-width: 35rem;
font-size: clamp(1.02rem, .94rem + .32vw, 1.2rem);
line-height: 1.6;
color: rgb(243 239 232 / .84);
}
.hero__ctas { margin-top: clamp(1.5rem, 3.6vh, 2.5rem); }
.hero__note { margin-top: .9rem; font-size: .875rem; color: var(--c-on-dark-2); }
.hero__bar { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-5); }
.hero__cue { display: flex; align-items: center; gap: 12px; color: var(--c-on-dark-2); font-size: .7rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; transition: opacity var(--t-expr) var(--ease-out); }
.hero__cue-line { position: relative; width: 1px; height: 46px; overflow: hidden; background: rgb(255 255 255 / .16); }
.hero__cue-line::after {
content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 40%;
background: var(--c-copper-soft);
transform: translateY(-100%);
animation: hero-cue 2.6s var(--ease-in-out) 1.2s infinite;
}
.hero.is-scrolled .hero__cue { opacity: .45; }
.hero.is-scrolled .hero__cue-line::after { animation: none; transform: translateY(75%); }
@keyframes hero-cue { 0% { transform: translateY(-100%); } 65%, 100% { transform: translateY(260%); } }
.hero__materials { display: grid; justify-items: end; gap: 6px; }
.hero__materials { margin-bottom: max(0px, calc(90px - clamp(1.25rem, 3.2vh, 2.5rem))); }
.hero__switch { display: flex; gap: 2px; margin-right: -8px; }
.hero__swatch {
position: relative; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
background: none; display: grid; place-items: center; color: inherit;
-webkit-tap-highlight-color: transparent;
}
.hero__swatch::before { 
content: ''; position: absolute; inset: 7px; border-radius: 50%;
border: 1px solid rgb(243 239 232 / 0);
transition: inset var(--t-std) var(--ease-out), border-color var(--t-std);
}
.hero__swatch[aria-pressed="true"]::before { inset: 4px; border-color: rgb(243 239 232 / .9); }
.hero__swatch-chip {
width: 26px; height: 26px; border-radius: 50%;
background: var(--sw) center / 340% no-repeat, var(--sw-c, #888);
box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2), 0 3px 10px rgb(0 0 0 / .4);
transition: transform var(--t-std) var(--ease-out);
}
.hero__swatch--calacatta { --sw-c: linear-gradient(135deg, #f1eee8 0 44%, #a69a8a 47%, #ebe7e0 52%); }
.hero__swatch--nero { --sw-c: linear-gradient(135deg, #1b1c1d 0 46%, #d9d4cb 48%, #202224 51%); }
.hero__swatch--travertine { --sw-c: repeating-linear-gradient(170deg, #d6c4a6 0 5px, #c6b08f 5px 8px); }
.hero__swatch--oak { --sw-c: repeating-linear-gradient(100deg, #b98f62 0 4px, #a57a4f 4px 6px, #c49d72 6px 9px); }
.hero__swatch--statuario { --sw-c: linear-gradient(135deg, #f4f4f2 0 44%, #b4b6b8 47%, #f0f0ee 52%); }
.hero__swatch--concrete { --sw-c: radial-gradient(circle at 35% 35%, #b4b2ae, #9c9a96); }
.hero__swatch--terrazzo { --sw-c: radial-gradient(circle at 30% 30%, #c4583a 0 2px, transparent 3px), radial-gradient(circle at 65% 60%, #7d9a80 0 2px, transparent 3px), #e4ded4; }
.hero__swatch:hover .hero__swatch-chip { transform: scale(1.1); }
.hero__swatch:focus-visible { outline-offset: -2px; border-radius: 50%; }
.hero__swatch::after {
content: attr(data-name);
position: absolute; bottom: calc(100% + 2px); left: 50%;
transform: translate(-50%, 4px); opacity: 0; pointer-events: none;
padding: 5px 10px; border-radius: 999px; white-space: nowrap;
background: rgb(243 239 232 / .95); color: var(--c-ink);
font-size: .74rem; font-weight: 650; letter-spacing: 0;
transition: opacity var(--t-fast), transform var(--t-fast) var(--ease-out);
}
.hero__swatch:hover::after, .hero__swatch:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.hero__auto {
width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
background: none; display: grid; place-items: center; color: rgb(243 239 232 / .82);
-webkit-tap-highlight-color: transparent;
}
.hero__auto svg {
width: 26px; height: 26px; padding: 8px; border-radius: 50%;
fill: currentColor;
border: 1px solid rgb(243 239 232 / .3);
transition: border-color var(--t-std), color var(--t-std);
}
.hero__auto:hover svg { border-color: rgb(243 239 232 / .7); color: #fff; }
.hero__auto:focus-visible { outline-offset: -2px; }
.hero__auto-play { display: none; }
.hero:not(.is-auto) .hero__auto-pause { display: none; }
.hero:not(.is-auto) .hero__auto-play { display: block; }
.hero.is-loading .hero__swatch[aria-pressed="true"]::before { border-style: dashed; animation: hero-spin 1.4s linear infinite; }
@keyframes hero-spin { to { transform: rotate(360deg); } }
.hero__caption { text-shadow: 0 1px 12px rgb(0 0 0 / .6); display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: baseline; gap: 4px 10px; font-size: .78rem; line-height: 1.4; color: var(--c-on-dark-2); text-align: right; }
.hero__caption-spec { flex-basis: 100%; font-size: .72rem; letter-spacing: .02em; color: rgb(243 239 232 / .55); font-variant-numeric: tabular-nums; }
.no-js .hero__switch { display: none; }
@media (max-width: 899px), (max-aspect-ratio: 11/10) {
.hero { min-height: max(100svh, 640px); }
.hero__poster { background-position: 50% 0; }
.hero:not(.is-3d) .hero__poster,
.hero.module-failed .hero__poster { background-image: url('/assets/img/hero/hero-calacatta-768.webp'); }
.hero:not(.is-3d)[data-material="nero"] .hero__poster { background-image: url('/assets/img/hero/hero-nero-768.webp'); }
.hero:not(.is-3d)[data-material="travertine"] .hero__poster { background-image: url('/assets/img/hero/hero-travertine-768.webp'); }
.hero:not(.is-3d)[data-material="oak"] .hero__poster { background-image: url('/assets/img/hero/hero-oak-768.webp'); }
.hero:not(.is-3d)[data-material="statuario"] .hero__poster { background-image: url('/assets/img/hero/hero-statuario-768.webp'); }
.hero:not(.is-3d)[data-material="concrete"] .hero__poster { background-image: url('/assets/img/hero/hero-concrete-768.webp'); }
.hero:not(.is-3d)[data-material="terrazzo"] .hero__poster { background-image: url('/assets/img/hero/hero-terrazzo-768.webp'); }
.hero__scrim {
background:
linear-gradient(180deg, rgb(var(--hero-scrim) / .55) 0, rgb(var(--hero-scrim) / 0) 16%),
linear-gradient(0deg, rgb(var(--hero-scrim) / .94) 0%, rgb(var(--hero-scrim) / .86) 40%, rgb(var(--hero-scrim) / .7) 56%, rgb(var(--hero-scrim) / .56) 67%, rgb(var(--hero-scrim) / .4) 75%, rgb(var(--hero-scrim) / .18) 81%, rgb(var(--hero-scrim) / 0) 87%);
}
.hero__inner { padding-top: calc(var(--header-h) + 12vh); gap: var(--s-5); }
.hero__copy { align-self: end; }
.hero__bar { padding-top: var(--s-4); border-top: 1px solid rgb(255 255 255 / .1); }
.hero__cue { display: none; }
.hero__materials { justify-items: start; width: 100%; margin-bottom: 0; gap: 2px; }
.hero__switch { margin: 0 0 0 -8px; }
.hero__caption { order: -1; justify-content: flex-start; text-align: left; padding-right: 64px; }
}
@media (max-width: 899px) and (min-aspect-ratio: 3/4), (max-height: 560px) {
.hero__inner { padding-top: calc(var(--header-h) + 2rem); }
}
@media (max-width: 480px) {
.hero__eyebrow { flex-wrap: wrap; row-gap: 6px; text-shadow: 0 1px 10px rgb(0 0 0 / .7); }
.hero__eyebrow-dot { display: none; }
.hero__title { font-size: clamp(2.6rem, 11.6vw, 3.4rem); line-height: 1.05; }
.hero__lead { font-size: 1rem; line-height: 1.55; }
.hero__ctas { gap: 10px; }
.hero__note { font-size: .82rem; }
}
@media (min-width: 900px) and (min-aspect-ratio: 11/10) {
.hero__copy { max-width: min(47rem, 58%); }
}
@media (min-width: 1600px) and (min-aspect-ratio: 11/10) {
.hero__scrim {
background:
linear-gradient(180deg, rgb(var(--hero-scrim) / .6) 0, rgb(var(--hero-scrim) / 0) 20%),
linear-gradient(90deg, rgb(var(--hero-scrim) / .88) 0%, rgb(var(--hero-scrim) / .76) 32%, rgb(var(--hero-scrim) / .46) 48%, rgb(var(--hero-scrim) / 0) 62%),
linear-gradient(0deg, rgb(var(--hero-scrim) / .5) 0, rgb(var(--hero-scrim) / .2) 12%, rgb(var(--hero-scrim) / 0) 24%),
radial-gradient(130% 100% at 68% 50%, transparent 62%, rgb(0 0 0 / .26) 100%),
radial-gradient(34% 26% at 96% 100%, rgb(var(--hero-scrim) / .5), rgb(var(--hero-scrim) / 0));
}
}
@media (prefers-reduced-motion: reduce) {
.hero__cue-line::after { animation: none; transform: translateY(75%); }
.hero__swatch-chip, .hero__swatch::before, .hero__swatch::after, .hero__auto svg { transition: none; }
}
.wreveal__w { display: inline-block; }
.wreveal.is-armed .wreveal__w { opacity: 0; transform: translate3d(0, .38em, 0); }
.wreveal.is-in .wreveal__w {
opacity: 1; transform: none;
transition: opacity 760ms var(--ease-out), transform 900ms var(--ease-out);
transition-delay: min(calc(var(--wi, 0) * 70ms), 760ms);
}
.hstrip { background: var(--c-paper); border-bottom: 1px solid var(--c-line); padding-top: clamp(2.25rem, 1.6rem + 2.4vw, 4rem); overflow: hidden; }
.hstrip__inner { display: grid; gap: var(--s-4); }
.hstrip__label {
display: flex; align-items: center; gap: 10px; margin: 0;
font: 700 var(--fs-xs)/1 var(--f-sans); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink);
}
.hstrip__label::before { content: ''; width: 28px; height: 1px; background: currentColor; opacity: .7; }
.hstrip__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--c-line); }
.hstrip__item { position: relative; border-bottom: 1px solid var(--c-line); }
.hstrip__item:nth-child(odd) { border-right: 1px solid var(--c-line); }
.hstrip__item:nth-child(n + 3) { border-bottom: 0; }
.hstrip__link {
position: relative; display: grid; gap: 6px; align-content: start; height: 100%; min-height: 44px;
padding: 18px 12px 18px 0; text-decoration: none; color: var(--fg);
}
.hstrip__item:nth-child(even) .hstrip__link { padding-left: 16px; }
.hstrip__idx { font-size: .7rem; font-weight: 700; letter-spacing: .14em; color: var(--c-slate); transition: color var(--t-fast); }
.hstrip__name { font-family: var(--f-display); font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem); line-height: 1.02; letter-spacing: -.01em; transition: color var(--t-std) var(--ease-out); }
.hstrip__note { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; color: var(--fg-muted); }
.hstrip__go { opacity: 0; transform: translate(-4px, 4px); transition: opacity var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out); }
.hstrip__link::after { 
content: ''; position: absolute; left: 0; right: 12px; bottom: -1px; height: 1px; background: var(--c-forest);
transform: scaleX(0); transform-origin: left; transition: transform var(--t-expr) var(--ease-out);
}
.hstrip__item:nth-child(even) .hstrip__link::after { left: 16px; }
.hstrip__link:hover .hstrip__name, .hstrip__link:focus-visible .hstrip__name { color: var(--c-forest); }
.hstrip__link:hover .hstrip__idx { color: var(--c-copper-ink); }
.hstrip__link:hover .hstrip__go, .hstrip__link:focus-visible .hstrip__go { opacity: 1; transform: none; }
.hstrip__link:hover::after { transform: scaleX(1); }
.hstrip__rail { padding: clamp(1.4rem, 1rem + 1.4vw, 2.25rem) 0 clamp(1.6rem, 1rem + 2vw, 2.75rem); }
.hstrip__railhead { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); margin-bottom: 14px; }
.hstrip__cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; font-size: .8rem; color: var(--fg-muted); }
.hstrip__cap-k { font-weight: 700; color: var(--fg); letter-spacing: .01em; }
.hstrip__toggle {
flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px;
border: 1px solid var(--c-line); border-radius: 999px; background: transparent; font-size: .78rem; font-weight: 650; color: var(--fg-muted);
transition: border-color var(--t-fast), color var(--t-fast);
}
.hstrip__toggle:hover { border-color: var(--c-graphite); color: var(--fg); }
.hstrip__toggle > span { display: inline-flex; align-items: center; gap: 8px; }
.hstrip__toggle-play, .hstrip__rail.is-paused .hstrip__toggle-pause { display: none !important; }
.hstrip__rail.is-paused .hstrip__toggle-play { display: inline-flex !important; }
.hstrip__toggle[hidden] { display: none; }
.hstrip__viewport {
overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--c-stone) transparent;
-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--gutter), #000 calc(100% - var(--gutter) * 2), transparent 100%);
mask-image: linear-gradient(90deg, transparent 0, #000 var(--gutter), #000 calc(100% - var(--gutter) * 2), transparent 100%);
padding-bottom: 6px;
}
.hstrip__viewport:focus-visible { outline-offset: -2px; }
.hstrip__belt { display: flex; width: max-content; }
.hstrip__track { display: flex; padding-left: var(--gutter); }
.hstrip__track[aria-hidden="true"] { display: none; }
.hstrip__sw { flex: none; display: flex; align-items: center; gap: 12px; padding-right: clamp(1.75rem, 1rem + 2vw, 2.75rem); }
.hstrip__chip {
width: 44px; height: 44px; border-radius: 3px; overflow: hidden; background: var(--tone);
box-shadow: inset 0 0 0 1px rgb(21 25 27 / .08), 0 1px 1px rgb(21 25 27 / .08), 0 6px 14px -8px rgb(21 25 27 / .35);
transition: transform var(--t-std) var(--ease-out);
}
.hstrip__chip img { width: 100%; height: 100%; object-fit: cover; }
.hstrip__sw:hover .hstrip__chip { transform: translateY(-2px) rotate(-3deg) scale(1.06); }
.hstrip__swname { font-family: var(--f-display); font-style: italic; font-size: 1.1rem; line-height: 1; white-space: nowrap; color: var(--c-graphite); }
.hstrip__rail.is-running .hstrip__viewport { overflow: hidden; }
.hstrip__rail.is-running .hstrip__track[aria-hidden="true"] { display: flex; }
.hstrip__rail.is-running .hstrip__belt { animation: hstripDrift 90s linear infinite; }
.hstrip__rail.is-paused .hstrip__belt,
.hstrip__rail.is-offscreen .hstrip__belt,
.hstrip__viewport:hover .hstrip__belt,
.hstrip__viewport:focus-within .hstrip__belt { animation-play-state: paused; }
@keyframes hstripDrift { to { transform: translate3d(-50%, 0, 0); } }
@media (prefers-reduced-motion: reduce) { .hstrip__belt { animation: none !important; } }
@media (min-width: 900px) {
.hstrip__inner { grid-template-columns: 9.5rem minmax(0, 1fr); gap: 0; align-items: stretch; }
.hstrip__label { align-self: start; padding-top: 30px; }
.hstrip__list { grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 0; }
.hstrip__item, .hstrip__item:nth-child(odd), .hstrip__item:nth-child(n + 3) { border: 0; border-left: 1px solid var(--c-line); }
.hstrip__item::before { 
content: ''; position: absolute; left: -3.5px; top: 0; width: 6px; height: 6px; background: var(--c-copper); transform: rotate(45deg);
}
.hstrip__link, .hstrip__item:nth-child(even) .hstrip__link { padding: 24px 20px 26px 24px; }
.hstrip__link::after, .hstrip__item:nth-child(even) .hstrip__link::after { left: 24px; right: 20px; bottom: 14px; }
.hstrip__chip { width: 52px; height: 52px; }
.hstrip__swname { font-size: 1.2rem; }
}
.hpain { background: var(--c-paper); padding-block: var(--section-y); overflow-x: clip; }
.hpain__statement { display: grid; gap: var(--s-6); padding-bottom: var(--section-y); }
.hpain__statement .eyebrow { margin-bottom: 0; }
.hpain__big {
font-family: var(--f-display); font-weight: 400; font-size: clamp(3.4rem, 1.6rem + 7.2vw, 8.5rem);
line-height: 1.04; letter-spacing: -.028em; max-width: 12ch; text-wrap: balance;
}
.hpain__big em { color: var(--c-forest); }
.hpain__support { display: grid; gap: var(--s-4); max-width: 44ch; padding-top: var(--s-5); border-top: 1px solid var(--c-line); }
.hpain__support p { font-size: var(--fs-lead); line-height: 1.55; color: var(--fg-muted); }
.hpain__wrap { border-top: 1px solid var(--c-line); padding-top: var(--section-y); }
.hpain__head { display: grid; gap: var(--s-4); margin-bottom: clamp(2.5rem, 2rem + 3vw, 5rem); }
.hpain__head .eyebrow { margin-bottom: 0; }
.hpain__head .display-2 { max-width: 14ch; }
.hpain__body { display: grid; gap: clamp(2.5rem, 2rem + 2vw, 4rem); }
.hpain__visual { min-width: 0; }
.hpain__board { margin: 0; display: grid; gap: 14px; }
.hpain__grid {
display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3px; padding: 3px;
background: var(--c-stone); border-radius: 4px; box-shadow: 0 1px 0 rgb(255 255 255 / .6) inset, var(--shadow-2);
}
.hpain__slot { position: relative; aspect-ratio: 1; border-radius: 1.5px; background: var(--c-paper-2); }
.hpain__tile {
position: absolute; inset: 0; border-radius: 1.5px; overflow: hidden; background: var(--tone);
box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08);
transition: transform 1100ms var(--ease-out), box-shadow 1100ms var(--ease-out);
transition-delay: calc(var(--k, 0) * 110ms);
will-change: transform;
}
.hpain__tile img { width: 100%; height: 100%; object-fit: cover; }
.hpain__cap { display: flex; align-items: center; gap: 14px; font-size: .82rem; color: var(--fg-muted); }
.hpain__cap em { font-family: var(--f-display); font-size: 1.05rem; color: var(--c-graphite); }
.hpain__dots { display: inline-flex; gap: 5px; }
.hpain__dots i { width: 9px; height: 9px; border-radius: 1px; background: var(--c-forest); transition: background var(--t-std), transform var(--t-std) var(--ease-spring); }
.hpain__wrap.is-armed .hpain__slot { background: repeating-linear-gradient(135deg, var(--c-paper-2) 0 6px, var(--c-paper) 6px 7px); box-shadow: inset 0 0 0 1px rgb(31 36 39 / .06); }
.hpain__wrap.is-armed .hpain__tile {
transform: translate3d(var(--x), var(--y), 0) rotate(var(--r)) scale(var(--s));
box-shadow: 0 18px 28px -14px rgb(21 25 27 / .45), inset 0 0 0 1px rgb(255 255 255 / .08);
}
.hpain__wrap.is-armed .hpain__dots i { background: var(--c-stone); }
.hpain__board.is-g0 .hpain__tile[data-g="0"],
.hpain__board.is-g1 .hpain__tile[data-g="1"],
.hpain__board.is-g2 .hpain__tile[data-g="2"],
.hpain__board.is-g3 .hpain__tile[data-g="3"] { transform: none !important; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08) !important; }
.hpain__board.is-g0 .hpain__dots i:nth-child(1),
.hpain__board.is-g1 .hpain__dots i:nth-child(2),
.hpain__board.is-g2 .hpain__dots i:nth-child(3),
.hpain__board.is-g3 .hpain__dots i:nth-child(4) { background: var(--c-forest) !important; transform: rotate(45deg); }
.hpain__rows { counter-reset: none; }
.hpain__row {
display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); column-gap: var(--s-4);
padding-block: clamp(1.6rem, 1.2rem + 1vw, 2.25rem); border-top: 1px solid var(--c-line);
}
.hpain__row:last-child { border-bottom: 1px solid var(--c-line); }
.hpain__num { grid-row: 1 / span 3; font-family: var(--f-display); font-size: 1.35rem; line-height: 1.2; color: var(--c-copper-ink); }
.hpain__from, .hpain__arrow, .hpain__to { grid-column: 2; }
.hpain__tag { font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--c-slate); margin-bottom: 6px; }
.hpain__tag--to { color: var(--c-forest); }
.hpain__problem { font-family: var(--f-sans); font-size: 1.06rem; font-weight: 650; line-height: 1.35; letter-spacing: -.005em; color: var(--c-slate-2); }
.hpain__strike {
background: linear-gradient(var(--c-copper), var(--c-copper)) no-repeat 0 58% / 100% 1.5px;
transition: background-size 700ms var(--ease-out), color 700ms var(--ease-out);
}
.hpain__pdesc { margin-top: 4px; font-size: .9rem; line-height: 1.55; color: var(--c-slate); max-width: 36ch; }
.hpain__arrow { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; margin: 14px 0 10px; border-radius: 50%; border: 1px solid var(--c-line); color: var(--c-copper-ink); transform: rotate(90deg); transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out), background var(--t-std), color var(--t-std); }
.hpain__solution { font-family: var(--f-display); font-size: clamp(1.75rem, 1.35rem + 1.2vw, 2.45rem); line-height: 1.04; letter-spacing: -.01em; color: var(--c-forest); }
.hpain__sdesc { margin-top: 10px; color: var(--fg); max-width: 42ch; }
.hpain__to { transition: opacity 800ms var(--ease-out) 220ms, transform 900ms var(--ease-out) 220ms; }
.hpain__wrap.is-armed .hpain__row:not(.is-solved) .hpain__strike { background-size: 0% 1.5px; color: var(--c-graphite); }
.hpain__wrap.is-armed .hpain__row:not(.is-solved) .hpain__to { opacity: 0; transform: translate3d(0, 14px, 0); }
.hpain__wrap.is-armed .hpain__row:not(.is-solved) .hpain__arrow { opacity: .35; transform: rotate(90deg) translate3d(-8px, 0, 0); }
.hpain__row.is-solved .hpain__arrow { background: var(--c-forest); border-color: var(--c-forest); color: #fff; }
@media (min-width: 640px) and (max-width: 899px), (min-width: 1280px) {
.hpain__row { grid-template-columns: 3rem minmax(0, .9fr) 2.75rem minmax(0, 1.1fr); column-gap: clamp(1rem, .5rem + 1.5vw, 2rem); align-items: start; }
.hpain__num { grid-row: auto; }
.hpain__from { grid-column: 2; }
.hpain__arrow { grid-column: 3; margin: 22px 0 0; transform: none; }
.hpain__to { grid-column: 4; }
.hpain__wrap.is-armed .hpain__row:not(.is-solved) .hpain__arrow { transform: translate3d(-8px, 0, 0); }
.hpain__wrap.is-armed .hpain__row:not(.is-solved) .hpain__to { transform: translate3d(-18px, 0, 0); }
}
@media (min-width: 900px) {
.hpain__statement { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); align-items: end; column-gap: clamp(2rem, 4vw, 5rem); }
.hpain__statement .eyebrow { grid-column: 1 / -1; }
.hpain__support { margin-bottom: .9rem; }
.hpain__head { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); column-gap: clamp(2rem, 4vw, 5rem); align-items: end; }
.hpain__head .eyebrow { grid-column: 1 / -1; }
.hpain__head .lead { margin-bottom: .5rem; }
.hpain__body { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 5vw, 6rem); align-items: start; }
.hpain__visual { position: sticky; top: calc(var(--header-h) + 3rem); }
.hpain__row { padding-block: clamp(2rem, 1rem + 2vw, 3rem); }
}
.htiers { background: var(--c-paper-2); padding-block: var(--section-y); overflow-x: clip; }
.htiers__head { display: grid; gap: var(--s-5); margin-bottom: clamp(2.5rem, 2rem + 3vw, 5rem); }
.htiers__head .eyebrow { margin-bottom: var(--s-4); }
.htiers__head .display-2 { max-width: 17ch; }
.htiers__grid { display: grid; gap: clamp(1.25rem, 1rem + 1.5vw, 2rem); }
.htier { position: relative; perspective: 1600px; }
.htier__card {
--rx: 0deg; --ry: 0deg; --px: 0; --py: 0; --go: 0;
position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between;
min-height: clamp(36rem, 120vw, 44rem); border-radius: var(--r-sm); color: var(--c-on-dark); background: var(--c-ink);
transform: rotateX(var(--rx)) rotateY(var(--ry)); transform-origin: center;
box-shadow: 0 1px 2px rgb(21 25 27 / .12), 0 30px 60px -30px rgb(21 25 27 / .55);
transition: box-shadow var(--t-std) var(--ease-out);
}
.htier.is-tilting .htier__card { box-shadow: 0 1px 2px rgb(21 25 27 / .12), calc(var(--px) * -18px) calc(26px + var(--py) * -10px) 70px -26px rgb(21 25 27 / .6); }
.htier__card:focus-within { box-shadow: 0 0 0 1px rgb(255 255 255 / .1), 0 40px 80px -30px rgb(21 25 27 / .7); }
.htier__media { position: absolute; inset: 0; z-index: -1; background: var(--tone); overflow: hidden; }
.htier__img {
position: absolute; inset: -3%; width: 106%; height: 106%; max-width: none; object-fit: cover; opacity: 0;
transform: translate3d(calc(var(--px) * -10px), calc(var(--py) * -10px), 0) scale(1.02);
transition: opacity 900ms var(--ease-out), transform 1400ms var(--ease-out);
}
.htier__img.is-active { opacity: 1; }
.htier:hover .htier__img { transform: translate3d(calc(var(--px) * -10px), calc(var(--py) * -10px), 0) scale(1.07); }
.htier__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgb(21 25 27 / .5) 0%, rgb(21 25 27 / 0) 20%, rgb(21 25 27 / .08) 34%, rgb(21 25 27 / .62) 52%, rgb(21 25 27 / .84) 72%, rgb(21 25 27 / .92) 100%); }
.htier__body { text-shadow: 0 1px 18px rgb(21 25 27 / .35); }
.htier__glare {
position: absolute; inset: 0; pointer-events: none; mix-blend-mode: soft-light; opacity: var(--go);
background: radial-gradient(42rem circle at var(--gx, 50%) var(--gy, 30%), rgb(255 255 255 / .55), rgb(255 255 255 / .12) 30%, rgb(255 255 255 / 0) 60%);
}
.htier__top { display: flex; justify-content: space-between; gap: var(--s-4); padding: clamp(1.1rem, .9rem + .8vw, 1.6rem) clamp(1.25rem, 1rem + 1.2vw, 2rem); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.htier__index { color: var(--c-copper-soft); }
.htier__kicker { color: rgb(243 239 232 / .82); }
.htier__body { display: grid; gap: var(--s-4); padding: clamp(1.25rem, 1rem + 1.4vw, 2.5rem); }
.htier__name { font-family: var(--f-display); font-weight: 400; font-size: clamp(2.7rem, 1.6rem + 3.6vw, 5.2rem); line-height: 1.04; letter-spacing: -.025em; color: var(--c-on-dark); }
.htier__name em { color: var(--c-copper-soft); }
.htier__desc { max-width: 44ch; color: rgb(243 239 232 / .86); }
.htier__traits { display: flex; flex-wrap: wrap; gap: 6px 8px; }
.htier__traits li { font-size: .78rem; font-weight: 600; padding: 5px 11px; border-radius: 999px; border: 1px solid rgb(255 255 255 / .26); color: rgb(243 239 232 / .92); background: rgb(21 25 27 / .18); }
.htier__finishes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: var(--s-2); }
.htier__flabel { font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: rgb(243 239 232 / .7); margin-right: 4px; }
.htier__fin {
display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 14px 0 6px; border-radius: 999px;
border: 1px solid rgb(255 255 255 / .22); background: rgb(21 25 27 / .28); color: var(--c-on-dark); font-size: .85rem; font-weight: 600;
-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
transition: border-color var(--t-fast), background var(--t-fast);
}
.htier__fin:hover { border-color: rgb(255 255 255 / .6); }
.htier__fin[aria-pressed="true"] { border-color: var(--c-on-dark); background: rgb(243 239 232 / .14); }
.htier__finsw { width: 32px; height: 32px; border-radius: 50%; background: var(--tone) center/cover; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .35); }
.no-js .htier__finishes, .htier:not(.has-finishes) .htier__finishes { display: none; }
.htier__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; padding-top: var(--s-2); }
.htier__links { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.htier__links a { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; font-size: .88rem; font-weight: 600; color: var(--c-on-dark); text-decoration: underline; text-decoration-color: rgb(255 255 255 / .35); text-underline-offset: .3em; transition: text-decoration-color var(--t-fast); }
.htier__links a:hover { text-decoration-color: currentColor; }
@media (max-width: 699px) {
.htier__card { justify-content: flex-start; min-height: 0; }
.htier__top { padding-bottom: clamp(9rem, 44vw, 15rem); }
.htier__shade { background: linear-gradient(180deg, rgb(21 25 27 / .45) 0%, rgb(21 25 27 / 0) 14%, rgb(21 25 27 / 0) 26%, rgb(21 25 27 / .7) 40%, rgb(21 25 27 / .9) 56%, rgb(21 25 27 / .94) 100%); }
.htier__flabel { flex-basis: 100%; }
}
@media (max-width: 480px) {
.htier__cta .btn { flex: 1 1 100%; }
}
@media (min-width: 700px) {
.htier__card { min-height: 40rem; }
}
@media (min-width: 900px) {
.htiers__head { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); column-gap: clamp(2rem, 5vw, 6rem); align-items: end; }
.htiers__intro { padding-bottom: .5rem; }
.htiers__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; }
.htier__card { min-height: clamp(40rem, 54vw, 48rem); }
.htier--essential { margin-top: clamp(4rem, 9vw, 9rem); }
.htier--essential .htier__card { min-height: clamp(36rem, 46vw, 41rem); }
.htier--essential .htier__name { font-size: clamp(2.6rem, 1.4rem + 2.6vw, 4.2rem); }
}
.hproc { background: var(--c-paper); padding-block: var(--section-y); }
.hproc__grid { display: grid; gap: clamp(2.5rem, 2rem + 3vw, 4rem); }
.hproc__sticky { display: grid; gap: var(--s-5); }
.hproc__sticky .eyebrow { margin-bottom: 0; }
.hproc__sticky .display-2 { max-width: 15ch; }
.hproc__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; padding-top: var(--s-2); }
.hproc__meter { display: none; }
.hproc__steps { display: grid; }
.hproc__step { position: relative; padding: 0 0 clamp(1.25rem, 1rem + 1vw, 2rem) 48px; }
.hproc__step:last-child { padding-bottom: 0; }
.hproc__node {
position: absolute; left: 0; top: 26px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
background: var(--c-paper); border: 1.5px solid var(--c-forest); z-index: 1;
transition: border-color var(--t-std), box-shadow var(--t-std) var(--ease-out);
}
.hproc__node i { width: 10px; height: 10px; border-radius: 50%; background: var(--c-forest); transition: transform var(--t-std) var(--ease-spring); }
.hproc__seg { position: absolute; left: 11.25px; top: 50px; bottom: -26px; width: 1.5px; background: var(--c-line); overflow: hidden; }
.hproc__seg i { position: absolute; inset: 0; background: var(--c-forest); transform-origin: top; transform: scaleY(1); }
.hproc__card {
position: relative; display: grid; gap: var(--s-3); padding: 18px 0 8px;
border-radius: var(--r-lg); transition: background var(--t-std) var(--ease-out), box-shadow var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out);
}
.hproc__row { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); }
.hproc__num { font-family: var(--f-display); font-size: clamp(2.6rem, 2rem + 1.6vw, 3.6rem); line-height: 1; letter-spacing: -.02em; color: var(--c-forest); transition: color var(--t-std); }
.hproc__icon { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--c-line); color: var(--c-forest); background: var(--c-paper); transition: background var(--t-std), color var(--t-std), border-color var(--t-std); }
.hproc__title { font-family: var(--f-display); font-size: clamp(1.65rem, 1.35rem + 1vw, 2.25rem); line-height: 1.08; letter-spacing: -.01em; }
.hproc__desc { color: var(--fg-muted); max-width: 52ch; }
.hproc__tags { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 4px; }
.hproc__tags li { font-size: .78rem; font-weight: 600; padding: 4px 11px; border-radius: 999px; border: 1px solid var(--c-line); color: var(--c-slate-2); background: rgb(255 255 255 / .5); }
.hproc__foot { margin-top: clamp(1.75rem, 1.5rem + 1vw, 2.5rem); padding: 16px 0 0 48px; border-top: 1px solid var(--c-line); font-size: .86rem; color: var(--fg-muted); max-width: 70ch; }
.hproc.is-armed .hproc__seg i { transform: scaleY(0); }
.hproc.is-armed .hproc__node { border-color: var(--c-stone); }
.hproc.is-armed .hproc__node i { transform: scale(0); }
.hproc.is-armed .hproc__num { color: var(--c-stone); }
.hproc.is-armed .hproc__step.is-done .hproc__node { border-color: var(--c-forest); }
.hproc.is-armed .hproc__step.is-done .hproc__node i { transform: scale(1); }
.hproc.is-armed .hproc__step.is-done .hproc__num { color: var(--c-copper); }
.hproc.is-armed .hproc__step.is-active .hproc__num { color: var(--c-forest); }
.hproc.is-armed .hproc__step.is-active .hproc__node { box-shadow: 0 0 0 7px rgb(36 74 66 / .12); }
.hproc.is-armed .hproc__step.is-active .hproc__icon { background: var(--c-forest); border-color: var(--c-forest); color: #fff; }
.hproc.is-armed:not(.is-started) .hproc__step.is-active .hproc__node { border-color: var(--c-forest); box-shadow: none; }
.hproc.is-armed:not(.is-started) .hproc__step.is-active .hproc__node i { transform: scale(0); }
@media (min-width: 640px) {
.hproc__step { padding-left: 72px; }
.hproc__foot { padding-left: 72px; }
.hproc__node { left: 8px; }
.hproc__seg { left: 19.25px; }
.hproc__card { padding: 20px 28px 22px; margin-left: -28px; }
.hproc.is-armed .hproc__step.is-active .hproc__card { background: var(--c-white); box-shadow: var(--shadow-2); }
}
@media (min-width: 1000px) {
.hproc__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(3rem, 6vw, 7rem); align-items: start; }
.hproc__head { height: 100%; }
.hproc__sticky { position: sticky; top: calc(var(--header-h) + 3rem); }
.hproc.is-armed .hproc__meter {
display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-top: var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--c-line);
}
.hproc__meter-n { font-family: var(--f-display); font-size: 3.4rem; line-height: 1; color: var(--c-forest); }
.hproc__meter-of { font-size: .85rem; font-weight: 650; color: var(--c-slate); }
.hproc__meter-t { flex-basis: 100%; font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-slate-2); }
.hproc__meter.is-tick .hproc__meter-n, .hproc__meter.is-tick .hproc__meter-t { animation: hprocTick 520ms var(--ease-out); }
.hproc__step { padding-bottom: clamp(2.5rem, 8vh, 5rem); }
}
@keyframes hprocTick { from { opacity: 0; transform: translateY(8px); } }
.hproof { background: var(--c-limestone); padding-block: var(--section-y); overflow-x: clip; }
.hproof__head { display: grid; gap: var(--s-5); margin-bottom: clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.hproof__head .eyebrow { margin-bottom: var(--s-4); }
.hproof__head .lead { max-width: 52ch; }
.hproof__h { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.6rem, 1.3rem + .9vw, 2.1rem); line-height: 1.1; letter-spacing: -.01em; }
.hproof__sub, .hproof__p { color: var(--fg-muted); font-size: .95rem; }
.hproof__icon { width: 46px; height: 46px; flex: none; border-radius: 12px; display: grid; place-items: center; background: var(--c-paper-2); color: var(--c-forest); border: 1px solid var(--c-line); }
.hproof__top { display: grid; gap: clamp(1.25rem, 1rem + 2vw, 3rem); align-items: start; }
.hproof__verify { background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: clamp(1.4rem, 1rem + 1.6vw, 2.5rem); }
.hproof__vhead { display: grid; grid-template-columns: auto 1fr; gap: var(--s-4); align-items: start; margin-bottom: var(--s-5); }
.hproof__vhead .hproof__sub { margin-top: 6px; }
.hproof__list { display: grid; }
.hproof__list li {
display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 0 10px; padding: 12px 0; border-top: 1px solid var(--c-line);
}
.hproof__n { grid-column: 1; grid-row: 1 / span 2; font-size: .72rem; font-weight: 700; letter-spacing: .08em; color: var(--c-copper-ink); padding-top: 3px; }
.hproof__k { grid-column: 2; grid-row: 1; padding-right: 26px; font-weight: 650; letter-spacing: -.005em; }
.hproof__v { grid-column: 2; grid-row: 2; font-size: .85rem; color: var(--fg-muted); }
.hproof__list li::after { 
content: ''; grid-column: 2; grid-row: 1; justify-self: end; width: 18px; height: 10px; border-left: 1.5px solid var(--c-forest); border-bottom: 1.5px solid var(--c-forest);
transform: rotate(-45deg) scale(.6); opacity: .25; margin-top: 2px; transition: opacity var(--t-std), transform var(--t-std) var(--ease-spring);
}
.hproof__list li:hover::after { opacity: 1; transform: rotate(-45deg) scale(.8); }
.hproof__sheetwrap { margin: 0; display: grid; gap: 14px; }
.hsheet {
position: relative; overflow: hidden; background: #fffdf9; color: var(--c-graphite); border-radius: 3px; padding: clamp(1.1rem, .8rem + 1.2vw, 2rem);
border: 1px solid #e4ded3; font-size: .8rem;
box-shadow: 0 1px 1px rgb(21 25 27 / .05), 0 2px 4px rgb(21 25 27 / .04), 0 40px 70px -36px rgb(21 25 27 / .45);
transition: transform var(--t-expr) var(--ease-out), box-shadow var(--t-expr) var(--ease-out);
}
.hsheet::before { 
content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
background: linear-gradient(90deg, rgb(138 90 52 / .05) 1px, transparent 1px) 0 0 / 24px 100%;
}
.hsheet__stamp {
position: absolute; right: 7%; top: 44%; z-index: 2; padding: 6px 16px; border: 2px solid rgb(138 90 52 / .4); border-radius: 6px;
font: 800 clamp(1.1rem, .9rem + 1vw, 1.7rem)/1 var(--f-sans); letter-spacing: .28em; text-transform: uppercase; color: rgb(138 90 52 / .45);
transform: rotate(-14deg); pointer-events: none; mix-blend-mode: multiply;
}
.hsheet__head { position: relative; display: flex; justify-content: space-between; gap: var(--s-4); padding-bottom: 12px; border-bottom: 2px solid var(--c-graphite); }
.hsheet__brand { font-family: var(--f-brand); font-size: 1.35rem; line-height: 1; }
.hsheet__doc { margin-top: 4px; font-size: .64rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--c-slate-2); }
.hsheet__ref { display: grid; gap: 2px; text-align: right; font-size: .7rem; }
.hsheet__ref div { display: flex; gap: 8px; justify-content: flex-end; }
.hsheet__ref dt { color: var(--c-slate); font-weight: 600; }
.hsheet__ref dd { font-variant-numeric: tabular-nums; font-weight: 700; }
.hsheet__flag {
position: relative; display: inline-flex; align-items: center; gap: 6px; margin: 12px 0 14px; padding: 4px 10px; border-radius: 6px;
background: #fff4d6; color: #6b4b00; border: 1px dashed #c99a2e; font-size: .74rem; font-weight: 700;
}
.hsheet__product { position: relative; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; align-items: start; }
.hsheet__swatch {
aspect-ratio: 1; border-radius: 2px; border: 1px dashed #c9c1b3;
background: repeating-linear-gradient(135deg, transparent 0 7px, rgb(31 36 39 / .06) 7px 8px), #f6f2ea;
}
.hsheet__pdl { display: grid; }
.hsheet__pdl .hsheet__cell { display: grid; grid-template-columns: 7.2rem minmax(0, 1fr); align-items: center; padding: 5px 0; border-bottom: 1px solid #ece6db; }
.hsheet__sec { position: relative; margin: 16px 0 6px; font-size: .62rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--c-copper-ink); }
.hsheet__grid { position: relative; display: grid; gap: 1px; background: #e6e0d5; border: 1px solid #e6e0d5; }
.hsheet__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hsheet__grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hsheet__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hsheet__grid--5 .hsheet__cell:last-child { grid-column: span 2; }
.hsheet__grid .hsheet__cell { background: #fffdf9; padding: 7px 9px 8px; display: grid; gap: 3px; align-content: start; min-height: 3.1rem; }
.hsheet__cell dt { font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-slate); }
.hsheet__cell dd { font-size: .78rem; font-weight: 600; min-height: 1.1em; }
.hsheet__blank { display: inline-block; width: min(70%, 6rem); height: .9em; border-bottom: 1px dashed #b9b1a3; vertical-align: bottom; }
.hsheet__tbc { font-style: italic; font-weight: 500; color: var(--c-slate-2); }
.hsheet__foot { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-top: 14px; padding-top: 10px; border-top: 1px solid #ece6db; font-size: .68rem; color: var(--c-slate); }
.hproof__sheetcap { font-size: .84rem; color: var(--fg-muted); max-width: 54ch; }
.hproof__sheetcap strong { color: var(--fg); }
.hproof__row { display: grid; gap: clamp(1rem, .8rem + 1vw, 1.5rem); margin-top: clamp(1.25rem, 1rem + 2vw, 3rem); }
.hproof__card { display: grid; gap: var(--s-4); align-content: start; background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: clamp(1.4rem, 1rem + 1vw, 2rem); }
.hproof__card .link-arrow { margin-top: var(--s-2); min-height: 44px; }
.hproof__addr { font-style: normal; font-family: var(--f-display); font-size: clamp(1.3rem, 1.1rem + .6vw, 1.6rem); line-height: 1.25; color: var(--c-graphite); }
.hproof__factors { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.hproof__factors li { font-size: .82rem; font-weight: 650; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--c-line); background: var(--c-white); }
.hproof__factors li.hproof__plus { padding: 0; border: 0; background: none; color: var(--c-copper-ink); font-weight: 400; font-family: var(--f-display); font-size: 1.3rem; line-height: 1; }
.hproof__founder { grid-template-columns: 1fr; }
.hproof__photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 15%; border-radius: var(--r-md); background: var(--c-limestone); }
.hproof__who { margin-top: var(--s-2); font-size: .95rem; color: var(--fg-muted); }
.hproof__who strong { color: var(--fg); }
@media (min-width: 700px) {
.hproof__list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-6); }
.hsheet__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hsheet__grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.hsheet__grid--5 .hsheet__cell:last-child { grid-column: auto; }
.hproof__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hproof__founder { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: center; }
}
@media (min-width: 1000px) {
.hproof__head { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); column-gap: clamp(2rem, 5vw, 6rem); align-items: end; }
.hproof__head .lead { margin-bottom: .6rem; }
.hproof__top { grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); }
.hproof__sheetwrap { padding-top: 1.5rem; }
.hsheet { transform: rotate(1.4deg); }
.hproof__sheetwrap:hover .hsheet { transform: rotate(0deg) translateY(-4px); }
.hproof__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hproof__founder { grid-column: auto; grid-template-columns: 1fr; }
}
.hres { background: var(--c-paper); padding-block: var(--section-y); }
.hres__head { display: grid; gap: var(--s-5); margin-bottom: clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.hres__head .eyebrow { margin-bottom: var(--s-4); }
.hres__head .display-2 { max-width: 14ch; }
.hres__intro { display: grid; gap: var(--s-4); justify-items: start; }
.hres__list { display: grid; gap: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem); }
.hres__card { display: grid; gap: var(--s-4); text-decoration: none; color: inherit; }
.hres__media { position: relative; overflow: hidden; border-radius: var(--r-sm); background: var(--tone); aspect-ratio: 4 / 3; }
.hres__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--ease-out); }
.hres__media::after { content: ''; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgb(21 25 27 / .06); border-radius: inherit; }
.hres__card:hover .hres__media img { transform: scale(1.05); }
.hres__idx { position: absolute; left: 12px; top: 12px; padding: 5px 10px; border-radius: 6px; background: rgb(255 255 255 / .9); font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c-graphite); }
.hres__body { display: grid; gap: 10px; align-content: start; }
.hres__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: .78rem; font-weight: 600; color: var(--fg-muted); }
.hres__meta > span { display: inline-flex; align-items: center; gap: 5px; }
.hres__cat { font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c-copper-ink); }
.hres__dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .6; }
.hres__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.5rem, 1.25rem + .8vw, 1.9rem); line-height: 1.1; letter-spacing: -.01em; text-wrap: balance; }
.hres__title { background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% 1px; transition: background-size var(--t-expr) var(--ease-out); display: inline; }
.hres__card:hover .hres__title, .hres__card:focus-visible .hres__title { background-size: 100% 1px; }
.hres__desc { color: var(--fg-muted); font-size: .95rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.hres__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--c-line); font-size: .8rem; color: var(--fg-muted); }
.hres__go { width: 40px; height: 40px; flex: none; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--c-line); color: var(--c-graphite); transition: background var(--t-std), color var(--t-std), border-color var(--t-std), transform var(--t-std) var(--ease-out); }
.hres__card:hover .hres__go { background: var(--c-forest); border-color: var(--c-forest); color: #fff; transform: rotate(45deg); }
@media (max-width: 699px) {
.hres__item--side .hres__card { grid-template-columns: 104px minmax(0, 1fr); gap: 16px; align-items: start; }
.hres__item--side .hres__media { aspect-ratio: 1; }
.hres__item--side .hres__idx { display: none; }
.hres__item--side .hres__title { font-size: 1.3rem; }
.hres__item--side .hres__desc { display: none; }
.hres__item--side .hres__go { width: 34px; height: 34px; }
}
@media (min-width: 700px) {
.hres__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hres__item--lead { grid-column: 1 / -1; }
.hres__item--lead .hres__card { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: end; }
}
@media (min-width: 1000px) {
.hres__head { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); column-gap: clamp(2rem, 5vw, 6rem); align-items: end; }
.hres__intro { padding-bottom: .5rem; }
.hres__list { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-rows: auto auto; column-gap: clamp(2rem, 4vw, 4.5rem); row-gap: clamp(1.5rem, 2.5vw, 2.5rem); }
.hres__item--lead { grid-column: 1; grid-row: 1 / span 2; }
.hres__item--lead .hres__card { grid-template-columns: 1fr; align-items: start; }
.hres__item--lead .hres__media { aspect-ratio: 16 / 11; }
.hres__item--lead .hres__title { font-size: clamp(1.9rem, 1.4rem + 1.2vw, 2.6rem); }
.hres__item--side .hres__card { grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: clamp(1.25rem, 2vw, 2rem); align-items: start; }
.hres__item--side .hres__media { aspect-ratio: 4 / 5; }
.hres__item--side + .hres__item--side { padding-top: clamp(1.5rem, 2.5vw, 2.5rem); border-top: 1px solid var(--c-line); }
}
.hfaq { background: var(--c-paper-2); padding-block: var(--section-y); border-top: 1px solid var(--c-line); }
.hfaq__grid { display: grid; gap: clamp(2rem, 1.5rem + 3vw, 4rem); }
.hfaq__sticky { display: grid; gap: var(--s-5); justify-items: start; }
.hfaq__sticky .eyebrow { margin-bottom: 0; }
.hfaq__sticky .display-2 { max-width: 12ch; }
.hfaq__sticky .link-arrow { min-height: 44px; }
.hproc .link-arrow, .hres .link-arrow { min-height: 44px; }
.hfaq .btn--sm { min-height: 44px; }
.hfaq__nudge { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s-4); margin-top: var(--s-4); padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-paper); max-width: 30rem; }
.hfaq__nudge-icon { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--c-forest); color: #fff; }
.hfaq__nudge-t { font-weight: 700; letter-spacing: -.005em; }
.hfaq__nudge-p { margin: 4px 0 14px; font-size: .92rem; color: var(--fg-muted); }
.hfaq__list .faq__item summary { padding: 24px 0; }
.hfaq__list .faq__item summary span:first-child { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.3rem, 1.15rem + .6vw, 1.7rem); line-height: 1.2; letter-spacing: -.005em; }
.hfaq__list .faq__a { font-size: 1rem; }
.hfaq__empty { color: var(--fg-muted); }
@media (min-width: 1000px) {
.hfaq__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(3rem, 6vw, 7rem); align-items: start; }
.hfaq__head { height: 100%; }
.hfaq__sticky { position: sticky; top: calc(var(--header-h) + 3rem); }
}
.hcta { position: relative; background: var(--c-paper); overflow: hidden; }
.hcta__stage { position: relative; isolation: isolate; display: flex; align-items: center; min-height: clamp(40rem, 92vh, 56rem); padding-block: clamp(5rem, 3rem + 8vw, 10rem); }
.hcta__slab {
--p: 1;
position: absolute; inset: 0; z-index: -1; background: var(--tone); overflow: hidden;
clip-path: inset(calc((1 - var(--p)) * 14%) calc((1 - var(--p)) * 32%) round calc((1 - var(--p)) * 28px));
}
.hcta__half { position: absolute; top: 0; bottom: 0; width: 50%; transform: scale(calc(1.14 - var(--p) * .14)); }
.hcta__half::before { content: ''; position: absolute; inset: 0; background: var(--tex) 100% 50% / cover no-repeat; }
.hcta__half--l { left: 0; transform-origin: 100% 50%; }
.hcta__half--r { right: 0; transform-origin: 0% 50%; }
.hcta__half--r::before { transform: scaleX(-1); } 
.hcta__joint { position: absolute; top: 0; bottom: 0; left: calc(50% - 1px); width: 2px; background: rgb(255 255 255 / .55); box-shadow: -1px 0 0 rgb(31 36 39 / .07), 1px 0 0 rgb(31 36 39 / .07); }
.hcta__wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgb(255 255 255 / .9) 0%, rgb(255 255 255 / .82) 55%, rgb(255 255 255 / .55) 100%); }
.hcta__inner { display: grid; gap: var(--s-5); justify-items: start; }
.hcta__inner .eyebrow { margin-bottom: 0; }
.hcta__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(2.6rem, 1.3rem + 5.2vw, 6.4rem); line-height: 1.05; letter-spacing: -.025em; max-width: 15ch; text-wrap: balance; color: var(--c-ink); }
.hcta__title em { color: var(--c-forest); }
.hcta__lead { font-size: var(--fs-lead); line-height: 1.55; color: var(--c-slate-2); max-width: 52ch; }
.hcta__btns { padding-top: var(--s-2); }
.hcta__btns .btn--ghost { background: rgb(255 255 255 / .6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.hcta__helpful { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding-top: var(--s-4); border-top: 1px solid rgb(31 36 39 / .12); max-width: 46rem; }
.hcta__helpful-k { font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--c-copper-ink); }
.hcta__helpful-l { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.hcta__helpful li { display: inline-flex; align-items: center; gap: 5px; font-size: .86rem; font-weight: 600; color: var(--c-graphite); }
.hcta__helpful .icon { color: var(--c-forest); }
.hcta__credit { position: absolute; right: var(--gutter); bottom: 18px; max-width: calc(100% - var(--gutter) * 2); padding: 4px 8px; border-radius: 4px; background: rgb(255 255 255 / .72); font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgb(31 36 39 / .7); }
.hcta.is-armed .hcta__slab { will-change: clip-path; }
@media (prefers-reduced-motion: reduce) { .hcta__slab { --p: 1 !important; clip-path: none; } }
@media (max-width: 899px) {
.hcta__stage { align-items: flex-start; padding-bottom: calc(clamp(5rem, 3rem + 8vw, 10rem) + 30vw); }
.hcta__wash { background: linear-gradient(180deg, rgb(255 255 255 / .94) 0%, rgb(255 255 255 / .9) 66%, rgb(255 255 255 / .2) 90%, rgb(255 255 255 / 0) 100%); }
.hcta__credit { left: var(--gutter); right: auto; }
}
@media (min-width: 900px) {
.hcta__wash { background: linear-gradient(90deg, rgb(255 255 255 / .94) 0%, rgb(255 255 255 / .86) 38%, rgb(255 255 255 / .35) 66%, rgb(255 255 255 / 0) 88%); }
}
.factory { position: relative; isolation: isolate; overflow-x: clip; }
.factory__glow {
position: absolute; inset: 0 0 auto 0; height: min(1100px, 120vh); z-index: -1; pointer-events: none;
background:
radial-gradient(55% 60% at 78% 0%, rgb(183 133 91 / .16), transparent 70%),
radial-gradient(40% 40% at 10% 30%, rgb(36 74 66 / .18), transparent 70%);
}
.factory__head {
display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(1.5rem, 1rem + 3vw, 5rem);
align-items: end; margin-bottom: clamp(3rem, 2rem + 4vw, 6rem);
}
.factory__head .eyebrow { margin-bottom: var(--s-4); }
.factory__title { max-width: 11ch; }
.factory__head-side { display: grid; gap: var(--s-5); padding-bottom: .4rem; }
@media (max-width: 899px) {
.factory__head { grid-template-columns: 1fr; align-items: start; }
}
.factory__num {
display: flex; align-items: baseline; gap: 8px; margin-bottom: var(--s-4);
font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); color: var(--c-copper-soft);
}
.factory__num-of { color: var(--c-on-dark-2); opacity: .75; }
.factory__step-title { margin-bottom: var(--s-4); }
.factory__step-title:focus { outline: none; }
.factory__step-title:focus-visible { outline: 2px solid var(--c-copper-soft); outline-offset: 6px; }
.factory__text { font-size: 1.04rem; line-height: 1.62; color: var(--c-on-dark); max-width: 46ch; }
.factory__text .review-note { margin-left: 2px; }
.factory__why { margin-top: var(--s-5); color: var(--c-on-dark-2); max-width: 46ch; font-size: .97rem; }
.factory__label {
display: block; margin-bottom: 6px; font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps);
text-transform: uppercase; color: var(--c-copper-soft);
}
.factory__ask {
display: flex; gap: 12px; align-items: flex-start; margin-top: var(--s-5); max-width: 46ch;
padding: 14px 18px; border-radius: var(--r-md); font-size: .95rem; line-height: 1.5; color: var(--c-on-dark);
background: linear-gradient(135deg, rgb(183 133 91 / .14), rgb(255 255 255 / .03));
border: 1px solid rgb(231 211 191 / .16);
}
.factory__ask .icon { flex: none; color: var(--c-copper-soft); margin-top: 1px; }
.factory__ask strong { color: var(--c-copper-soft); font-weight: 700; }
.factory__stage { display: none; }
.factory__steps { display: grid; gap: clamp(3.5rem, 2rem + 6vw, 8rem); }
.factory__step {
display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 1rem + 4vw, 6rem); align-items: center;
}
.factory__step:nth-child(odd) .factory__art { order: 2; }
.factory__art {
position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-xl); overflow: hidden;
background:
radial-gradient(90% 70% at 55% 72%, rgb(183 133 91 / .10), transparent 70%),
linear-gradient(180deg, #1c2124, #15191b 75%);
border: 1px solid rgb(255 255 255 / .07);
box-shadow: 0 40px 80px -40px rgb(0 0 0 / .6), inset 0 1px 0 rgb(255 255 255 / .05);
}
.factory__art::after { 
content: ''; position: absolute; inset: auto 0 0 0; height: 38%; pointer-events: none;
background: linear-gradient(180deg, transparent, rgb(0 0 0 / .18));
}
.factory__svg { width: 100%; height: 100%; }
@media (max-width: 899px) {
.factory__step { grid-template-columns: 1fr; gap: var(--s-5); }
.factory__step:nth-child(odd) .factory__art { order: 0; }
}
.factory__outro { margin-top: clamp(4rem, 3rem + 5vw, 8rem); }
.factory__outro-card {
max-width: 40rem; padding: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); border-radius: var(--r-xl);
background: linear-gradient(160deg, rgb(255 255 255 / .07), rgb(255 255 255 / .02) 60%), rgb(21 25 27 / .55);
border: 1px solid rgb(255 255 255 / .1);
-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
box-shadow: 0 40px 90px -40px rgb(0 0 0 / .7);
}
.factory__outro-card .eyebrow { margin-bottom: var(--s-4); }
.factory__outro-card .display-3 { max-width: 18ch; margin-bottom: var(--s-5); }
.factory__checks { display: grid; margin-bottom: var(--s-5); border-top: 1px solid var(--c-line); }
.factory__checks li { display: flex; gap: 12px; align-items: flex-start; padding: 11px 0; border-bottom: 1px solid var(--c-line); font-size: .97rem; }
.factory__checks .icon { flex: none; color: var(--c-copper-soft); margin-top: 3px; }
.factory__note { font-size: var(--fs-sm); color: var(--c-on-dark-2); margin-bottom: var(--s-5); max-width: 52ch; }
.factory__outro .btn-row { gap: 14px 24px; }
.factory--3d { padding-bottom: clamp(3rem, 2rem + 4vw, 6rem); }
.factory--3d .factory__track { max-width: none; padding-inline: 0; position: relative; }
.factory--3d .factory__art { display: none; }
.factory--3d .factory__stage {
display: block; position: sticky; top: 0; height: 100vh; z-index: 0; overflow: hidden;
background: var(--c-ink);
}
.factory__canvas { position: absolute; inset: 0; opacity: 0; transition: opacity 900ms var(--ease-out); }
.factory--ready .factory__canvas { opacity: 1; }
.factory__canvas canvas { width: 100% !important; height: 100% !important; touch-action: pan-y; }
.factory__scrim {
position: absolute; inset: 0; pointer-events: none;
background:
linear-gradient(180deg, var(--c-ink) 0%, rgb(21 25 27 / 0) 16%, rgb(21 25 27 / 0) 84%, var(--c-ink) 100%),
linear-gradient(90deg, rgb(21 25 27 / .94) 0%, rgb(21 25 27 / .78) 26%, rgb(21 25 27 / .2) 46%, rgb(21 25 27 / 0) 58%),
radial-gradient(50% 45% at 72% 38%, rgb(231 190 150 / .07), transparent 70%);
}
.factory--3d .factory__steps {
position: relative; z-index: 1; display: block; margin-top: -100vh; pointer-events: none;
width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter);
}
.factory--3d .factory__step { display: flex; align-items: center; min-height: 80vh; padding-block: 8vh; }
.factory--3d .factory__step:first-child { min-height: 100vh; }
.factory--3d .factory__copy {
pointer-events: auto; max-width: min(31rem, 40vw);
transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out);
}
.factory--3d .factory__step:not(.is-active) .factory__copy { opacity: .22; transform: translate3d(0, 10px, 0); }
.factory--3d .factory__outro {
position: relative; z-index: 1; margin-top: 0; min-height: 100vh; display: flex; align-items: center; pointer-events: none;
max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter);
}
.factory--3d .factory__outro-card { pointer-events: auto; max-width: min(34rem, 44vw); }
.factory__hud {
position: absolute; right: calc(var(--gutter) + 64px); bottom: clamp(20px, 4vh, 40px); display: flex; align-items: center; gap: 12px;
font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-on-dark-2);
}
.factory__hud-num { color: var(--c-copper-soft); }
.factory__hud-sep { width: 28px; height: 1px; background: currentColor; opacity: .6; }
.factory__tags { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.factory__tag {
position: absolute; left: 0; top: 0; display: flex; align-items: center; gap: 8px; white-space: nowrap;
padding: 6px 12px 6px 8px; border-radius: 999px; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
color: var(--c-on-dark); background: rgb(21 25 27 / .62); border: 1px solid rgb(255 255 255 / .14);
-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
opacity: 0; transition: opacity 420ms var(--ease-out);
will-change: transform;
}
.factory__tag::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--c-copper); box-shadow: 0 0 0 4px rgb(183 133 91 / .22); }
.factory__tag.is-on { opacity: 1; }
.factory__tag--check::before { display: none; }
.factory__tag-check {
width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; flex: none;
border: 1px solid rgb(231 211 191 / .5); color: var(--c-ink); background: transparent;
transition: background 300ms var(--ease-out), border-color 300ms;
}
.factory__tag-check svg { width: 12px; height: 12px; stroke-dasharray: 20; stroke-dashoffset: 20; transition: stroke-dashoffset 420ms var(--ease-out) 80ms; }
.factory__tag.is-ticked .factory__tag-check { background: var(--c-copper-soft); border-color: var(--c-copper-soft); }
.factory__tag.is-ticked .factory__tag-check svg { stroke-dashoffset: 0; }
.factory__rail { position: absolute; right: var(--gutter); top: 50%; transform: translateY(-50%); z-index: 2; }
.factory__rail ol { display: grid; gap: 2px; position: relative; list-style: none; margin: 0; padding: 0; }
.factory__rail::before {
content: ''; position: absolute; inset: -14px -12px -14px -18px; z-index: -1; border-radius: 28px;
background: rgb(21 25 27 / .5); border: 1px solid rgb(255 255 255 / .06);
-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.factory__rail-line { position: absolute; right: 21px; top: 22px; bottom: 22px; width: 1px; background: rgb(255 255 255 / .14); }
.factory__rail-fill { position: absolute; inset: 0; background: var(--c-copper-soft); transform-origin: top; transform: scaleY(var(--p, 0)); }
.factory__rail-btn {
position: relative; display: flex; align-items: center; justify-content: flex-end; gap: 12px; min-width: 44px; min-height: 44px; padding: 0;
background: none; border: 0; color: var(--c-on-dark-2); font-size: .72rem; font-weight: 700; letter-spacing: .14em;
transition: color var(--t-fast);
}
.factory__rail-btn:hover { color: var(--c-on-dark); }
.factory__rail-dot {
order: 2; width: 9px; height: 9px; margin-right: 17px; border-radius: 50%; background: var(--c-ink); border: 1px solid rgb(255 255 255 / .4);
transition: transform var(--t-std) var(--ease-out), background var(--t-std), border-color var(--t-std);
}
.factory__rail-btn[aria-current="step"] { color: var(--c-copper-soft); }
.factory__rail-btn[aria-current="step"] .factory__rail-dot { background: var(--c-copper-soft); border-color: var(--c-copper-soft); transform: scale(1.35); box-shadow: 0 0 0 5px rgb(231 211 191 / .14); }
.factory__rail-btn.is-done .factory__rail-dot { background: var(--c-copper); border-color: var(--c-copper); }
@media (max-width: 899px) {
.factory--3d .factory__stage { height: 50vh; height: 50svh; z-index: 2; }
.factory__scrim {
background:
linear-gradient(180deg, var(--c-ink) 0%, rgb(21 25 27 / 0) 12%, rgb(21 25 27 / 0) 80%, var(--c-ink) 100%),
radial-gradient(60% 50% at 50% 40%, rgb(231 190 150 / .06), transparent 70%);
}
.factory--3d .factory__steps { margin-top: 0; }
.factory--3d .factory__step,
.factory--3d .factory__step:first-child { min-height: 54vh; min-height: 54svh; align-items: flex-start; padding-block: 1.75rem 2.5rem; }
.factory--3d .factory__copy { max-width: 36rem; }
.factory--3d .factory__step:not(.is-active) .factory__copy { opacity: .35; }
.factory--3d .factory__outro {
position: relative; z-index: 3; min-height: 0; padding-block: 3.5rem 2rem; pointer-events: auto;
background: linear-gradient(180deg, rgb(21 25 27 / 0), var(--c-ink) 3rem);
}
.factory--3d .factory__outro-card { max-width: 36rem; }
.factory__hud { display: none; }
.factory__rail { top: auto; bottom: 6px; right: auto; left: 50%; transform: translateX(-50%); }
.factory__rail::before { display: none; }
.factory__rail ol { grid-auto-flow: column; gap: 4px; }
.factory__rail-line { left: 22px; right: 22px; top: auto; bottom: 21px; width: auto; height: 1px; }
.factory__rail-fill { transform-origin: left; transform: scaleX(var(--p, 0)); }
.factory__rail-btn { flex-direction: column-reverse; justify-content: center; gap: 0; min-width: 44px; min-height: 44px; font-size: .62rem; }
.factory__rail-num { display: none; }
.factory__rail-dot { margin: 0; }
.factory__tag { font-size: .62rem; padding: 4px 10px 4px 7px; gap: 6px; }
.factory__tag-check { width: 15px; height: 15px; }
}
@media (min-width: 900px) and (max-width: 1100px) {
.factory--3d .factory__copy { max-width: 25rem; }
}
.fit {
--fit-bg: #efebe4;
--fit-card: #fbfaf8;
background:
radial-gradient(120% 60% at 85% 0%, rgb(255 255 255 / .55), transparent 60%),
var(--fit-bg);
color: var(--c-graphite);
}
.fit__head { max-width: 760px; }
.fit__head .lead { max-width: 52ch; }
.fit__steps {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: clamp(1rem, .6rem + 1.2vw, 1.75rem);
}
.fit__step {
display: flex; flex-direction: column;
background: var(--fit-card);
border: 1px solid rgb(31 36 39 / .09);
border-radius: var(--r-lg);
overflow: hidden;
box-shadow: 0 1px 0 rgb(255 255 255 / .8) inset, 0 18px 40px -30px rgb(31 36 39 / .35);
outline-offset: 4px;
}
.fit__fig {
position: relative;
aspect-ratio: 360 / 220;
background:
linear-gradient(180deg, #fbfaf7 0%, #f3f0ea 100%);
border-bottom: 1px solid rgb(31 36 39 / .07);
}
.fit__fig::after { 
content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
background-image:
linear-gradient(rgb(31 36 39 / .035) 1px, transparent 1px),
linear-gradient(90deg, rgb(31 36 39 / .035) 1px, transparent 1px);
background-size: 18px 18px;
mask-image: radial-gradient(90% 90% at 50% 50%, #000 40%, transparent 100%);
}
.fit-d { position: relative; z-index: 1; width: 100%; height: 100%; }
.fit__copy { display: grid; align-content: start; gap: .8rem; padding: clamp(1.25rem, 1rem + .8vw, 1.75rem); }
.fit__num {
display: flex; align-items: baseline; gap: .7rem;
font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase;
color: var(--c-copper-ink);
}
.fit__num span { font-family: var(--f-display); font-size: 1.35rem; font-weight: 400; letter-spacing: 0; color: var(--c-graphite); line-height: 1; }
.fit__title { font-family: var(--f-display); font-size: clamp(1.55rem, 1.25rem + .9vw, 2.05rem); line-height: 1.08; letter-spacing: -0.01em; }
.fit__site, .fit__source { font-size: .975rem; line-height: 1.6; }
.fit__site { color: var(--c-slate-2); }
.fit__source { padding-top: .8rem; border-top: 1px solid rgb(31 36 39 / .1); color: var(--c-graphite); }
.fit__k {
display: block; margin-bottom: .2rem;
font-size: .7rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; color: var(--c-slate-2);
}
.fit__source .fit__k { color: var(--c-forest); }
.fit__step--final { background: #fff; }
.fit__end { display: grid; gap: 1rem; margin-top: .4rem; padding-top: 1rem; border-top: 1px solid rgb(31 36 39 / .1); }
.fit__endlead { font-weight: 600; line-height: 1.5; }
.fit__end .btn-row { gap: 14px 22px; }
.fit__link { display: block; padding-block: 10px; font-size: .95rem; line-height: 1.45; }
.fit__link span { display: inline; }
.fit__link .icon { display: inline-block; vertical-align: -4px; margin-left: 6px; }
@media (max-width: 1100px) {
.fit__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
.fit__steps { grid-template-columns: 1fr; }
}
.fit-d polygon, .fit-d path, .fit-d line { stroke: #1f2427; stroke-width: .7; stroke-linejoin: round; stroke-linecap: round; }
.fit-d .s-hatch { stroke: none; }
.fit-d__hatch { stroke: #a79e8f; stroke-width: .7; }
.m-conc.s-f { fill: #d9d2c5; } .m-conc.s-t { fill: #e4ded2; } .m-conc.s-r { fill: #cbc3b4; }
.m-screed.s-f { fill: #e2dccf; } .m-screed.s-t { fill: #ece7dd; } .m-screed.s-r { fill: #d3ccbe; }
.m-adh.s-f { fill: #c9c5bc; } .m-adh.s-t { fill: #dcd9d2; } .m-adh.s-r { fill: #b9b4aa; }
.m-tile.s-f { fill: #ece8e1; } .m-tile.s-t { fill: #fdfcfa; } .m-tile.s-r { fill: #e0dbd2; }
.m-grout.s-f { fill: #a8a197; } .m-grout.s-t { fill: #bab4aa; } .m-grout.s-r { fill: #9b958b; }
.m-clip.s-f { fill: #c7623e; } .m-clip.s-t { fill: #dd7a52; } .m-clip.s-r { fill: #b0532f; }
.m-dev.s-f { fill: #2b3134; } .m-dev.s-t { fill: #4a5155; } .m-dev.s-r { fill: #22272a; }
.m-rubber.s-f { fill: #3a4043; } .m-rubber.s-t { fill: #4c5356; }
.m-floor.s-t { fill: #ffffff; } .m-floor.s-f { fill: #e6e1d8; } .m-floor.s-r { fill: #dad4ca; }
.m-bench.s-t { fill: #e9dfcf; } .m-bench.s-f { fill: #ddd1bf; } .m-bench.s-r { fill: #cfc2ae; }
.fit-d .m-steel { fill: #c9ced1; fill-opacity: .92; }
.fit-d .m-handle line { stroke: var(--c-forest); stroke-width: 6; }
.fit-d .m-bracket { stroke: #8d9396; stroke-width: 1.6; }
.fit-d .m-wall { fill: #f1ede6; stroke-opacity: .5; }
.fit-d .m-window { fill: #fffaf0; }
.fit-d .m-frame { fill: none; stroke: #2a2f32; stroke-width: 1.6; }
.fit-d .m-mullion { stroke: #2a2f32; stroke-width: 1.2; }
.fit-d .m-sun { stroke: none; }
.fit-d .m-shadow { fill: #1f2427; fill-opacity: .08; stroke: none; }
.fit-d .fit-d__joint { stroke: #b8b1a6; stroke-width: .6; }
.fit-d .fit-d__vein { fill: none; stroke: #b7b0a4; stroke-width: .6; stroke-opacity: .8; }
.fit-d .fit-d__fan { fill: #2fbf71; fill-opacity: .1; stroke: none; }
.fit-d .fit-d__lens { fill: #47e08f; stroke: #fff; stroke-width: .6; }
.fit-d__laser .glow { stroke: #2fbf71; stroke-width: 4.5; stroke-opacity: .22; }
.fit-d__laser .core { stroke: #1fae5f; stroke-width: 1.3; }
.fit-d__arrow path { fill: none; stroke: var(--c-copper-ink); stroke-width: 1.2; }
.fit-d__dim path { fill: none; stroke: var(--c-copper-ink); stroke-width: .9; }
.fit-d .fit-d__ghost { fill: none; stroke: #c7623e; stroke-width: .9; stroke-dasharray: 3 2.5; }
.fit-d__label circle { fill: var(--c-copper-ink); stroke: none; }
.fit-d__label path { fill: none; stroke: var(--c-copper-ink); stroke-width: .6; stroke-opacity: .8; }
.fit-d__label text, .fit-d__note {
font-family: var(--f-sans); font-size: 9.5px; font-weight: 650; letter-spacing: .02em; fill: #3a4044;
}
.fit-d__note { fill: var(--c-copper-ink); font-size: 8.5px; }
.fit__stage[hidden] { display: none !important; }
.fit--3d .fit__fig { display: none; }
.fit--3d .fit__steps { display: block; }
.fit--3d .fit__step {
background: none; border: 0; border-radius: 0; box-shadow: none; overflow: visible;
display: flex; flex-direction: column; justify-content: center;
}
.fit--3d .fit__step:focus { outline: none; }
.fit--3d .fit__step:focus-visible .fit__copy { outline: 2px solid var(--focus); outline-offset: 8px; border-radius: 6px; }
.fit--3d .fit__copy { padding: 0; max-width: 30rem; transition: opacity var(--t-expr) var(--ease-out), transform var(--t-expr) var(--ease-out); }
.fit--3d .fit__step:not(.is-active) .fit__copy { opacity: .3; transform: translateY(8px); }
.fit--3d .fit__title { font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.9rem); }
.fit--3d .fit__site { font-size: 1.04rem; }
.fit--3d .fit__source {
border-top: 0; padding: .95rem 1.1rem; border-radius: var(--r-md);
background: rgb(255 255 255 / .62); border: 1px solid rgb(31 36 39 / .07);
}
.fit--3d .fit__step--final .fit__end { border-top: 0; padding-top: .3rem; }
.fit__frame {
position: relative; overflow: hidden; isolation: isolate;
border-radius: var(--r-xl);
background:
radial-gradient(90% 70% at 70% 30%, #f6f6f5 0%, #e6e1d8 70%, #ddd7cc 100%);
box-shadow: 0 1px 0 rgb(255 255 255 / .9) inset, 0 40px 80px -48px rgb(31 36 39 / .5), 0 0 0 1px rgb(31 36 39 / .06);
}
.fit__canvas { position: absolute; inset: 0; opacity: 0; transition: opacity 900ms var(--ease-out); }
.fit__canvas canvas { width: 100% !important; height: 100% !important; display: block; }
.fit.is-3d-ready .fit__canvas { opacity: 1; }
.fit__tag {
position: absolute; left: 20px; top: 18px; z-index: 3;
display: inline-flex; align-items: baseline; gap: .35rem;
padding: 7px 14px 7px 12px; border-radius: 999px;
background: rgb(255 255 255 / .74); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
font-size: .78rem; font-weight: 650; color: var(--c-slate-2);
box-shadow: 0 0 0 1px rgb(31 36 39 / .06);
}
.fit__count { font-family: var(--f-display); font-size: 1.15rem; font-weight: 400; color: var(--c-graphite); line-height: 1; }
.fit__sep { opacity: .5; }
.fit__tagkey { margin-left: .5rem; padding-left: .7rem; border-left: 1px solid rgb(31 36 39 / .15); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-copper-ink); font-weight: 700; }
.fit__nav { position: absolute; left: 12px; right: 12px; bottom: 10px; z-index: 3; }
.fit__nav ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.fit__nav a {
display: grid; gap: 7px; align-content: end; min-height: 48px; padding: 8px 6px 6px;
text-decoration: none; color: var(--c-slate-2); border-radius: 10px;
transition: color var(--t-fast), background var(--t-fast);
}
.fit__nav a:hover { color: var(--c-graphite); background: rgb(255 255 255 / .35); }
.fit__nav a[aria-current="step"] { color: var(--c-graphite); }
.fit__bar { position: relative; display: block; height: 3px; border-radius: 3px; background: rgb(31 36 39 / .14); overflow: hidden; }
.fit__bar i { position: absolute; inset: 0; transform-origin: 0 50%; transform: scaleX(var(--p, 0)); background: var(--c-forest); border-radius: inherit; }
.fit__navlabel { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fit__hud { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.fit__pin {
position: absolute; left: 0; top: 0; opacity: 0; will-change: transform, opacity;
transition: opacity 260ms var(--ease-out);
}
.fit__pin::before { 
content: ''; position: absolute; left: -4px; top: -4px; width: 8px; height: 8px; border-radius: 50%;
background: #fff; box-shadow: 0 0 0 2px var(--c-copper), 0 0 0 7px rgb(183 133 91 / .2);
}
.fit__pin span {
position: absolute; left: 0; bottom: 10px; transform: translateX(-12px);
padding-bottom: 26px; border-left: 1px solid rgb(138 90 52 / .7);
}
.fit__pin b {
display: block; white-space: nowrap; transform: translate(-1px, 0);
padding: 6px 11px; border-radius: 8px; margin-left: -1px;
background: rgb(21 25 27 / .86); color: #f3efe8;
font-size: .72rem; font-weight: 650; letter-spacing: .02em;
}
.fit__pin.is-left span { transform: translateX(12px); border-left: 0; border-right: 1px solid rgb(138 90 52 / .7); right: 0; left: auto; }
@media (min-width: 900px) {
.fit--3d .fit__track {
display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
gap: clamp(2rem, 1rem + 3vw, 5rem); align-items: start;
}
.fit--3d .fit__steps { grid-column: 1; grid-row: 1; }
.fit--3d .fit__step { min-height: 92vh; min-height: 92svh; }
.fit--3d .fit__step:last-child { min-height: 100vh; min-height: 100svh; }
.fit--3d .fit__stage {
grid-column: 2; grid-row: 1; align-self: start;
position: sticky; top: 0; height: 100vh; height: 100svh;
display: flex; align-items: center;
padding-top: calc(var(--header-h) * .55);
}
.fit--3d .fit__frame { width: 100%; height: calc(100svh - var(--header-h) * .55 - 2 * clamp(28px, 5vh, 64px)); min-height: 420px; max-height: 900px; }
.fit--3d .fit__head { margin-bottom: 0; }
}
@media (min-width: 900px) and (max-width: 1499px) {
.fit__nav { right: 64px; }
}
@media (min-width: 900px) and (max-width: 1279px) {
.fit__nav a { padding-inline: 3px; }
.fit__navlabel { font-size: .62rem; letter-spacing: .05em; }
}
@media (max-width: 899px) {
.fit--3d .fit__head { margin-bottom: clamp(1.5rem, 1rem + 2vw, 2.5rem); }
.fit--3d .fit__stage {
position: sticky; top: 0; z-index: 4;
height: 54vh; height: 54svh;
margin-inline: calc(var(--gutter) * -1);
padding: 10px var(--gutter) 14px;
background: linear-gradient(180deg, var(--fit-bg) 0%, var(--fit-bg) 88%, rgb(239 235 228 / 0) 100%);
}
.fit--3d .fit__frame { height: 100%; border-radius: var(--r-lg); }
.fit--3d .fit__step { min-height: 62vh; min-height: 62svh; padding-block: 1rem; }
.fit--3d .fit__copy {
max-width: none; width: 100%;
padding: 1.25rem 1.25rem 1.35rem; border-radius: var(--r-lg);
background: var(--fit-card); box-shadow: 0 0 0 1px rgb(31 36 39 / .07), 0 18px 40px -30px rgb(31 36 39 / .4);
}
.fit--3d .fit__step:not(.is-active) .fit__copy { opacity: .45; }
.fit--3d .fit__title { font-size: clamp(1.6rem, 1.3rem + 1.5vw, 2rem); }
.fit--3d .fit__site, .fit--3d .fit__source { font-size: .95rem; }
.fit--3d .fit__source { padding: .75rem .9rem; }
.fit--3d .fit__step:last-child { min-height: 88vh; min-height: 88svh; }
.fit__nav { left: 8px; right: 8px; bottom: 4px; }
.fit__nav ol { gap: 4px; }
.fit__nav a { min-height: 44px; padding: 0 3px; align-content: center; }
.fit__navlabel { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fit__tag { left: 12px; top: 12px; padding: 5px 11px 5px 10px; }
.fit__pin b { font-size: .66rem; padding: 5px 9px; }
.fit__pin span { padding-bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) {
.fit--3d .fit__copy, .fit__canvas, .fit__pin { transition: none; }
}
.viz { background: var(--c-paper); overflow: clip; }
.viz__head .section-head { margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.viz__app {
display: grid;
grid-template-columns: minmax(0, 1fr) clamp(300px, 24vw, 352px);
grid-template-areas: "stage panel" "foot foot";
gap: clamp(1.25rem, .8rem + 1.2vw, 2rem) clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
align-items: start;
}
.viz__stage {
grid-area: stage;
position: sticky; top: calc(var(--header-h) + 20px);
aspect-ratio: 16 / 11;
border-radius: var(--r-xl);
overflow: hidden;
isolation: isolate;
background: #e4dfd6;
box-shadow: var(--shadow-2), inset 0 0 0 1px rgb(31 36 39 / .06);
container-type: size;
contain: layout paint;
touch-action: pan-y;
}
.viz__canvas {
position: absolute; inset: 0; width: 100%; height: 100%; display: block;
opacity: 0; transition: opacity 600ms var(--ease-out);
}
.viz.is-3d .viz__canvas { opacity: 1; }
.viz.is-3d .viz-room { opacity: 0; visibility: hidden; transition: opacity 600ms var(--ease-out), visibility 0s linear 600ms; }
.viz__veil {
position: absolute; inset: 0; z-index: 2; pointer-events: none;
background: var(--c-paper); opacity: 0; transition: opacity 180ms var(--ease-out);
}
.viz__stage.is-veiled .viz__veil { opacity: .92; }
.viz__badge, .viz__readout, .viz__note {
position: absolute; z-index: 3; margin: 0;
font-size: .78rem; font-weight: 650; letter-spacing: .01em; line-height: 1.3;
color: var(--c-graphite);
background: rgb(255 255 255 / .82);
-webkit-backdrop-filter: blur(10px) saturate(1.3); backdrop-filter: blur(10px) saturate(1.3);
border: 1px solid rgb(255 255 255 / .6);
box-shadow: 0 6px 20px -10px rgb(21 25 27 / .35);
border-radius: 999px;
}
.viz__badge { top: 16px; left: 16px; padding: 7px 13px 7px 11px; display: inline-flex; align-items: center; gap: 8px; }
.viz__badge-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--c-copper); box-shadow: 0 0 0 3px rgb(183 133 91 / .22); }
.viz__readout {
left: 16px; bottom: 16px; max-width: calc(100% - 32px);
padding: 9px 15px; font-weight: 600; font-size: .82rem;
transition: opacity var(--t-std) var(--ease-out);
}
.viz__note {
left: 16px; bottom: 58px; max-width: min(440px, calc(100% - 32px));
padding: 8px 14px; border-radius: 14px; font-weight: 600;
background: rgb(21 25 27 / .82); color: var(--c-on-dark); border-color: rgb(255 255 255 / .1);
animation: vizNote 360ms var(--ease-out) both;
}
@keyframes vizNote { from { opacity: 0; transform: translateY(6px); } }
.viz__loading .viz__readout { opacity: .65; }
.viz__panel { grid-area: panel; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 14px; }
.viz-group { border: 0; margin: 0; padding: 0; min-width: 0; grid-column: 1 / -1; }
.viz-group--half { grid-column: auto; }
.viz-group--finish { grid-column: span 3; }
.viz-group__legend {
float: left; width: 100%; padding: 0; margin: 0 0 10px;
font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase;
color: var(--c-slate-2);
}
.viz-group__legend + * { clear: both; }
.viz-group__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.viz-group--material .viz-group__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.viz-group--format .viz-group__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.viz-group--space .viz-group__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.viz-group--finish .viz-group__opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.viz-group--grout .viz-group__opts, .viz-group--pattern .viz-group__opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.viz-group--grout, .viz-group--pattern { grid-column: 1 / -1; }
.viz-chip { position: relative; display: block; min-width: 0; }
.viz-chip__input {
position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1;
}
.viz-chip__face {
display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 12px;
border: 1px solid var(--c-line); border-radius: 12px; background: var(--c-white);
font-size: .86rem; font-weight: 600; line-height: 1.2; color: var(--c-graphite);
transition: border-color var(--t-fast), background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast) var(--ease-out);
}
.viz-chip__face > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.viz-chip:hover .viz-chip__face { border-color: rgb(31 36 39 / .45); }
.viz-chip__input:active + .viz-chip__face { transform: scale(.98); }
.viz-chip__input:checked + .viz-chip__face {
background: var(--c-graphite); border-color: var(--c-graphite); color: var(--c-paper);
box-shadow: 0 8px 20px -12px rgb(21 25 27 / .6);
}
.viz-chip__input:focus-visible + .viz-chip__face { outline: 2px solid var(--focus); outline-offset: 2px; }
.viz-chip__swatch {
flex: none; width: 26px; height: 26px; border-radius: 50%;
background: var(--sw, none) center / 220% no-repeat, var(--swc);
box-shadow: inset 0 0 0 1px rgb(31 36 39 / .14), 0 1px 2px rgb(31 36 39 / .12);
margin-left: -4px;
}
.viz-chip__input:checked + .viz-chip__face .viz-chip__swatch { box-shadow: inset 0 0 0 1px rgb(255 255 255 / .25), 0 0 0 2px rgb(255 255 255 / .9); }
.viz-chip__dot { flex: none; width: 16px; height: 16px; border-radius: 4px; background: var(--swc); box-shadow: inset 0 0 0 1px rgb(31 36 39 / .18); }
.viz-chip__glyph { flex: none; fill: none; stroke: currentColor; stroke-width: 1.4; opacity: .85; }
.viz-chip__input:checked + .viz-chip__face .viz-chip__glyph { fill: rgb(255 255 255 / .16); }
.viz__foot {
grid-area: foot; display: flex; align-items: center; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap;
padding-top: 4px;
}
.viz__caption { display: flex; gap: 10px; align-items: flex-start; max-width: 62ch; font-size: .9rem; color: var(--c-slate-2); line-height: 1.5; }
.viz__caption .icon { flex: none; margin-top: 2px; color: var(--c-copper-ink); }
@media (max-width: 1100px) {
.viz__app { grid-template-columns: minmax(0, 1fr); grid-template-areas: "stage" "panel" "foot"; }
.viz__stage { position: relative; top: auto; aspect-ratio: 16 / 10; }
.viz__panel { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 22px 20px; }
.viz-group--space, .viz-group--format, .viz-group--material { grid-column: 1 / -1; }
.viz-group--space .viz-group__opts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.viz-group--material .viz-group__opts { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.viz-group--format .viz-group__opts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.viz-group--finish, .viz-group--grout, .viz-group--pattern { grid-column: span 2; }
.viz-group--grout .viz-group__opts, .viz-group--pattern .viz-group__opts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.viz-group--pattern .viz-group__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
.viz__stage { aspect-ratio: 4 / 5; max-height: 60svh; width: 100%; border-radius: var(--r-lg); margin-inline: auto; }
.viz__panel { display: block; margin-inline: calc(var(--gutter) * -1); }
.viz-group { padding: 12px 0 2px; border-top: 1px solid var(--c-line); }
.viz-group:first-child { border-top: 0; padding-top: 0; }
.viz-group__legend { padding-inline: var(--gutter); margin-bottom: 8px; }
.viz-group__opts, .viz-group--material .viz-group__opts, .viz-group--format .viz-group__opts, .viz-group--space .viz-group__opts,
.viz-group--finish .viz-group__opts, .viz-group--grout .viz-group__opts, .viz-group--pattern .viz-group__opts {
display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; overscroll-behavior-x: contain;
scroll-snap-type: x proximity; scroll-padding-inline: var(--gutter); padding: 2px var(--gutter) 12px;
scrollbar-width: none;
}
.viz-group__opts::-webkit-scrollbar { display: none; }
.viz-chip { flex: none; scroll-snap-align: start; }
.viz-chip__face { border-radius: 999px; padding: 0 16px; }
.viz-chip__swatch { margin-left: -8px; }
.viz__badge { top: 12px; left: 12px; font-size: .72rem; }
.viz__readout { left: 12px; right: 12px; bottom: 12px; max-width: none; border-radius: 14px; font-size: .78rem; }
.viz__note { left: 12px; right: 12px; bottom: 62px; max-width: none; font-size: .76rem; }
.viz__foot { flex-direction: column; align-items: stretch; }
.viz__foot .btn { width: 100%; }
}
.viz-room {
--W: 4.2;   
--Wf: 4.2;  
--H: 2.7;   
--Dp: 4.4;  
--L: 4.5;   
--eye: 1.55;
--xc: .35;  
--f: 54cqw; 
--vpx: 52cqw;
--vpy: 30cqh;
--m: calc(var(--f) / var(--L));
--gw: max(1.5px, calc(var(--m) * .004));
--wall: #e6e1d8;
position: absolute; inset: 0; z-index: 0;
perspective: var(--f);
perspective-origin: var(--vpx) var(--vpy);
background: linear-gradient(180deg, #ece8e1, #ddd7cd);
transition: opacity 600ms var(--ease-out);
}
.viz-room__plane { position: absolute; backface-visibility: visible; overflow: hidden; }
.viz-room__back {
width: calc(var(--W) * var(--m)); height: calc(var(--H) * var(--m));
left: calc(var(--vpx) - (var(--W) / 2 + var(--xc)) * var(--m));
top: calc(var(--vpy) - (var(--H) - var(--eye)) * var(--m));
background:
radial-gradient(120% 90% at 0% 60%, rgb(255 250 240 / .55), transparent 60%),
linear-gradient(180deg, #e9e4dc, #e1dbd1 70%, #d6cfc4);
}
.viz-room__floor {
width: calc(var(--Wf) * var(--m)); height: calc(var(--Dp) * var(--m));
left: calc(var(--vpx) - (var(--Wf) / 2 + var(--xc)) * var(--m));
top: calc(var(--vpy) + var(--eye) * var(--m));
transform-origin: 50% 0; transform: rotateX(90deg);
background: #cfc8bc;
}
.viz-room__left {
width: calc(var(--Dp) * var(--m)); height: calc(var(--H) * var(--m));
left: calc(var(--vpx) - (var(--W) / 2 + var(--xc) + var(--Dp)) * var(--m));
top: calc(var(--vpy) - (var(--H) - var(--eye)) * var(--m));
transform-origin: 100% 50%; transform: rotateY(90deg);
background: linear-gradient(90deg, #cfc8bd, #d9d2c7);
}
.viz-room__right {
width: calc(var(--Dp) * var(--m)); height: calc(var(--H) * var(--m));
left: calc(var(--vpx) + (var(--W) / 2 - var(--xc)) * var(--m));
top: calc(var(--vpy) - (var(--H) - var(--eye)) * var(--m));
transform-origin: 0 50%; transform: rotateY(-90deg);
background: linear-gradient(90deg, #ebe6de, #f1ede6);
}
.viz-room__ceil {
width: calc(var(--W) * var(--m)); height: calc(var(--Dp) * var(--m));
left: calc(var(--vpx) - (var(--W) / 2 + var(--xc)) * var(--m));
top: calc(var(--vpy) - (var(--H) - var(--eye) + var(--Dp)) * var(--m));
transform-origin: 50% 100%; transform: rotateX(-90deg);
background: linear-gradient(0deg, #e8e3db, #f3f0eb);
}
.viz-room__window {
position: absolute; right: calc(.7 * var(--m)); width: calc(2.4 * var(--m));
top: calc(.25 * var(--m)); height: calc(2.1 * var(--m));
background: linear-gradient(180deg, #fbfaf6, #fffdf8 60%, #f4efe4);
box-shadow: inset 0 0 0 calc(.032 * var(--m)) #575b5d, 0 0 calc(.8 * var(--m)) rgb(255 251 240 / .9);
}
.viz-room__window i { position: absolute; top: 0; bottom: 0; width: calc(.026 * var(--m)); background: #575b5d; }
.viz-room__window i:nth-child(1) { left: 33.3%; }
.viz-room__window i:nth-child(2) { left: 66.6%; }
.viz-room__window i:nth-child(3) { left: 0; right: 0; width: auto; top: 19%; bottom: auto; height: calc(.026 * var(--m)); }
.viz-room__sun {
position: absolute; pointer-events: none;
left: calc(.1 * var(--m)); width: calc(2.8 * var(--m));
top: calc(1.1 * var(--m)); height: calc(2.6 * var(--m));
background:
repeating-linear-gradient(0deg, transparent 0 calc(33.3% - .05 * var(--m)), rgb(0 0 0 / 1) calc(33.3% - .05 * var(--m)) 33.3%),
linear-gradient(90deg, rgb(255 236 200 / 0), rgb(255 236 200 / .62) 18%, rgb(255 240 214 / .5) 70%, rgb(255 236 200 / 0));
clip-path: polygon(0 0, 58% 0, 100% 100%, 42% 100%);
mix-blend-mode: screen;
filter: blur(calc(.03 * var(--m)));
opacity: .55;
}
.viz-room__floor::before {
content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
background: linear-gradient(90deg, rgb(40 34 28 / 0) 30%, rgb(40 34 28 / .1));
}
.viz-room__sheen {
position: absolute; pointer-events: none; left: 0; width: calc(1.6 * var(--m));
top: calc(.6 * var(--m)); height: calc(2.6 * var(--m));
background: linear-gradient(90deg, rgb(255 253 248 / .75), rgb(255 253 248 / 0));
filter: blur(calc(.08 * var(--m)));
mix-blend-mode: screen; opacity: 0; transition: opacity 320ms var(--ease-out);
}
.viz-room[data-finish="polished"] .viz-room__sheen { opacity: .55; }
.viz-room[data-finish="matt"] .viz-room__sheen { opacity: .14; }
.viz-room__floor::after { 
content: ''; position: absolute; inset: 0; pointer-events: none;
background:
linear-gradient(180deg, rgb(40 34 28 / .32), transparent calc(.5 * var(--m))),
linear-gradient(90deg, rgb(40 34 28 / .2), transparent calc(.6 * var(--m)), transparent calc(100% - .6 * var(--m)), rgb(40 34 28 / .14));
}
.viz-room__tiles {
--u: var(--m);
position: absolute; inset: 0; opacity: 0;
background-color: var(--tone);
background-image:
var(--gx, linear-gradient(90deg, var(--grout) 0 var(--gw), transparent var(--gw))),
var(--gy, linear-gradient(180deg, var(--grout) 0 var(--gw), transparent var(--gw))),
var(--tex);
background-size:
var(--gxs, calc(var(--tw) / 1000 * var(--u)) calc(var(--th) / 1000 * var(--u))),
var(--gys, calc(var(--tw) / 1000 * var(--u)) calc(var(--th) / 1000 * var(--u))),
calc(var(--texm) * var(--u)) calc(var(--texm) * var(--u));
background-position: var(--gxp, 0 0), var(--gyp, 0 0), 0 0;
transition: opacity 320ms var(--ease-out);
}
.viz-room__tiles.is-on { opacity: 1; }
.viz-room[data-finish="textured"] .viz-room__tiles { filter: contrast(1.06) saturate(.92); }
.viz-room__back .viz-room__tiles { display: none; }
.viz-room__sky, .viz-room__parapet, .viz-room__prop { position: absolute; display: none; }
.viz-room[data-space="living"] .viz-room__prop {
display: block; left: 39.3%; width: calc(2 * var(--m)); bottom: 0; height: calc(.42 * var(--m));
background: linear-gradient(180deg, #d6cec1, #c3baab); box-shadow: 0 calc(.04 * var(--m)) calc(.12 * var(--m)) rgb(40 34 28 / .3);
}
.viz-room[data-space="living"] .viz-room__prop::before {
content: ''; position: absolute; left: calc(.44 * var(--m)); bottom: calc(.92 * var(--m));
width: calc(.86 * var(--m)); height: calc(1.1 * var(--m));
background:
radial-gradient(circle calc(.26 * var(--m)) at 62% 38%, #b7855b 97%, transparent 100%),
linear-gradient(180deg, #ddd3c3 0 62%, #244a42 0);
box-shadow: 0 0 0 calc(.03 * var(--m)) #2b2e30, calc(.03 * var(--m)) calc(.05 * var(--m)) calc(.1 * var(--m)) rgb(40 34 28 / .25);
}
.viz-room[data-space="kitchen"] .viz-room__prop {
display: block; left: 34%; width: calc(2.6 * var(--m)); bottom: 0; height: calc(.92 * var(--m));
background:
linear-gradient(180deg, #f2efe9 0 calc(.04 * var(--m)), transparent 0),
repeating-linear-gradient(90deg, #3a3f42 0 calc(.6 * var(--m) - 1px), #2a2e31 0 calc(.6 * var(--m)));
}
.viz-room[data-space="bathroom"] .viz-room__back .viz-room__tiles { display: block; }
.viz-room[data-space="bathroom"] .viz-room__floor .viz-room__tiles { display: none; }
.viz-room[data-space="bathroom"] .viz-room__floor { background: linear-gradient(180deg, #c9c2b6, #d8d1c6); }
.viz-room[data-space="bathroom"] .viz-room__sun, .viz-room[data-space="bathroom"] .viz-room__sheen { display: none; }
.viz-room[data-space="bathroom"] .viz-room__prop {
display: block; left: 52%; width: calc(1.3 * var(--m)); bottom: calc(.72 * var(--m)); height: calc(.16 * var(--m));
background: #b48d64; box-shadow: 0 calc(.08 * var(--m)) calc(.14 * var(--m)) rgb(30 26 22 / .35);
}
.viz-room[data-space="bathroom"] .viz-room__prop::before {
content: ''; position: absolute; left: calc(.32 * var(--m)); bottom: calc(.5 * var(--m)); width: calc(.66 * var(--m)); aspect-ratio: 1;
border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fbfaf7, #c9ccd0 70%); box-shadow: 0 0 0 calc(.02 * var(--m)) #2a2d2f;
}
.viz-room[data-space="terrace"] { --Wf: 9; --H: 1; --vpy: 16cqh; background: linear-gradient(180deg, #b9cbd6 0%, #dfe6e6 30%, #efe9df 50%); }
.viz-room[data-space="terrace"] .viz-room__floor::before {
background: repeating-linear-gradient(90deg, rgb(32 30 28 / .24) 0 calc(.27 * var(--m)), transparent 0 calc(.42 * var(--m)));
filter: blur(calc(.012 * var(--m)));
}
.viz-room[data-space="terrace"] .viz-room__prop {
display: block; left: 20%; bottom: 0; width: var(--m); height: calc(.5 * var(--m));
background: linear-gradient(90deg, #474b4b, #393d3d);
box-shadow: calc(5 * var(--m)) 0 0 #3d4141;
}
.viz-room[data-space="terrace"] .viz-room__prop::before {
content: ''; position: absolute; left: -8%; bottom: 92%; width: 116%; height: calc(.62 * var(--m));
border-radius: 50% 50% 42% 42%;
background: radial-gradient(circle at 40% 32%, #7d9471, #536b4d 58%, #405539);
box-shadow: calc(5 * var(--m)) 0 0 #4d6447;
}
.viz-room[data-space="terrace"] .viz-room__left,
.viz-room[data-space="terrace"] .viz-room__right,
.viz-room[data-space="terrace"] .viz-room__ceil,
.viz-room[data-space="terrace"] .viz-room__sheen { display: none; }
.viz-room[data-space="terrace"] .viz-room__back {
--W: 9; overflow: visible; background: linear-gradient(180deg, #ddd5c7, #cbc2b3);
box-shadow: 0 calc(-.04 * var(--m)) 0 #e9e3d8;
}
.viz-room[data-space="terrace"] .viz-room__sun {
left: 0; width: 100%; top: 0; height: 100%; clip-path: none;
background: linear-gradient(160deg, rgb(255 244 222 / .35), rgb(255 244 222 / 0) 70%);
}
.why-net__grid {
display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start;
}
.why-net__hint {
display: flex; align-items: center; gap: 8px; margin: 0 0 var(--s-4);
font-size: var(--fs-xs); letter-spacing: .04em; color: var(--fg-muted);
}
.why-net__hint .icon { color: var(--c-copper-ink); flex: none; }
.why-net__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; counter-reset: why; }
.why-net__item {
position: relative; padding: 14px 18px 16px 18px; border-radius: var(--r-md);
border: 1px solid transparent; background: transparent;
transition: background-color 260ms var(--ease-out), border-color 260ms var(--ease-out), box-shadow 260ms var(--ease-out);
}
.why-net__item + .why-net__item::before {
content: ''; position: absolute; left: 18px; right: 18px; top: -4px; height: 1px; background: var(--c-line);
transition: opacity 200ms;
}
.why-net__item.is-active, .why-net__item:has(.why-net__trigger[aria-pressed="true"]) {
background: var(--c-white); border-color: var(--c-line); box-shadow: var(--shadow-1);
}
.why-net__item.is-active::before, .why-net__item.is-active + .why-net__item::before,
.why-net__item:has([aria-pressed="true"])::before, .why-net__item:has([aria-pressed="true"]) + .why-net__item::before { opacity: 0; }
.why-net__title { margin: 0; font: inherit; }
.why-net__trigger {
display: flex; align-items: center; gap: 14px; width: 100%; min-height: 44px; padding: 0; margin: 0;
border: 0; background: none; color: var(--fg); font: 600 1.06rem/1.3 var(--f-sans); text-align: left; cursor: pointer;
border-radius: var(--r-sm);
}
.why-net__trigger:focus-visible { outline: 2px solid var(--focus); outline-offset: 6px; }
.why-net__icon {
flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
background: var(--c-white); border: 1px solid var(--c-line); color: var(--c-forest);
transition: background-color 260ms var(--ease-out), color 260ms var(--ease-out), border-color 260ms var(--ease-out);
}
.why-net__item.is-active .why-net__icon, .why-net__trigger[aria-pressed="true"] .why-net__icon {
background: var(--c-forest); border-color: var(--c-forest); color: var(--c-white);
}
.why-net__trigger[aria-pressed="true"] .why-net__label::after {
content: ''; display: inline-block; width: 7px; height: 7px; margin-left: 10px; vertical-align: middle;
border-radius: 50%; background: var(--c-copper);
}
.why-net__text { margin: 6px 0 0 58px; color: var(--fg-muted); font-size: var(--fs-sm); line-height: 1.6; max-width: 46ch; }
.why-net__figure { margin: 0; position: sticky; top: calc(var(--header-h) + 24px); container: net / inline-size; }
.net {
--s-brief: r l;
--s-f: r l;
--s-back: l r;
--hot: var(--c-copper);
position: relative;
display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr) minmax(0, 1fr); grid-template-rows: auto 1fr auto;
grid-template-areas: "brief th fac" ". th fac" "short th fac";
column-gap: clamp(32px, 5.5vw, 64px); row-gap: 18px;
padding: clamp(22px, 3.2vw, 40px);
border: 1px solid var(--c-line); border-radius: var(--r-lg, 22px);
background:
radial-gradient(circle at 1px 1px, rgb(31 36 39 / .09) 1px, transparent 1.4px) 0 0 / 22px 22px,
linear-gradient(180deg, #ffffff, #f6f6f5);
box-shadow: var(--shadow-1);
min-height: 420px;
}
.net__svg, .net__dots { position: absolute; inset: 0; pointer-events: none; overflow: visible; }
.net__svg { z-index: 0; }
.net__dots { z-index: 2; }
.net > .net-node, .net__factories { position: relative; z-index: 1; }
.net-node {
display: flex; align-items: center; gap: 10px; min-width: 0;
padding: 11px 12px; border-radius: 12px;
background: var(--c-white); border: 1px solid var(--c-line); box-shadow: 0 1px 2px rgb(31 36 39 / .05);
font-size: .82rem; line-height: 1.3;
transition: border-color 260ms var(--ease-out), box-shadow 260ms var(--ease-out), opacity 260ms var(--ease-out), transform 260ms var(--ease-out);
}
.net-node__body { display: grid; min-width: 0; }
.net-node__body strong { font-weight: 650; color: var(--fg); }
.net-node__body small { font-size: .74rem; color: var(--fg-muted); }
.net-node__icon {
flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px;
background: var(--c-paper-2); color: var(--c-forest);
}
.net-node--brief { grid-area: brief; align-self: start; }
.net-node--short { grid-area: short; align-self: end; }
.net-node--th {
grid-area: th; align-self: center; flex-direction: column; text-align: center; gap: 10px;
padding: 20px 14px; background: var(--c-forest); border-color: var(--c-forest); color: var(--c-white);
box-shadow: 0 0 0 6px rgb(36 74 66 / .08), 0 18px 40px -16px rgb(36 74 66 / .55);
}
.net-node--th .net-node__body strong { color: var(--c-white); font-size: .95rem; }
.net-node--th .net-node__body small { color: rgb(255 255 255 / .74); }
.net-node__mark { display: grid; grid-template-columns: repeat(2, 11px); gap: 3px; }
.net-node__mark i { width: 11px; height: 11px; border-radius: 2px; background: rgb(255 255 255 / .92); }
.net-node__mark i:nth-child(4) { background: var(--c-copper); }
.net__factories { grid-area: fac; list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; align-content: space-between; }
.net-node--factory .net-node__body small { font-size: .78rem; color: var(--fg); white-space: nowrap; }
[data-term] { transition: color 200ms, background-color 200ms; border-radius: 4px; }
[data-term].is-hot { color: var(--c-copper-ink); background: rgb(183 133 91 / .14); box-shadow: 0 0 0 2px rgb(183 133 91 / .14); }
.net-link__base { fill: none; stroke: rgb(31 36 39 / .1); stroke-width: 1; stroke-dasharray: 3 5; }
.net-link__line {
fill: none; stroke: var(--c-forest); stroke-width: 1.5; stroke-linecap: round;
stroke-dasharray: var(--len) var(--len); stroke-dashoffset: var(--len);
transition: stroke 260ms var(--ease-out), stroke-width 260ms var(--ease-out), opacity 260ms var(--ease-out);
}
.net-link--back .net-link__line { stroke: var(--c-copper); }
.net-link__port { fill: var(--c-paper); stroke: var(--c-forest); stroke-width: 1.5; opacity: 0; transition: opacity 400ms var(--ease-out); }
.net-link--back .net-link__port { stroke: var(--c-copper); }
.net.is-drawn .net-link__line {
stroke-dashoffset: 0;
transition: stroke-dashoffset 900ms var(--ease-in-out) calc(var(--i) * 180ms + 150ms), stroke 260ms, stroke-width 260ms, opacity 260ms;
}
.net.is-drawn .net-link__port { opacity: 1; transition-delay: calc(var(--i) * 180ms + 600ms); }
.net.is-static .net-link__line, .net.is-static .net-link__port { transition: none; }
.net-dot {
position: absolute; left: 0; top: 0; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%;
background: var(--c-copper); box-shadow: 0 0 0 3px rgb(183 133 91 / .2), 0 0 12px 2px rgb(183 133 91 / .55);
offset-rotate: 0deg; offset-anchor: 50% 50%;
opacity: 0; transition: opacity 500ms var(--ease-out);
animation: net-travel 4s linear infinite; animation-play-state: paused;
}
.net-dot--return {
animation-direction: reverse; background: var(--c-forest-2);
box-shadow: 0 0 0 3px rgb(47 95 85 / .18), 0 0 12px 2px rgb(47 95 85 / .45);
}
.net.is-live .net-dot { opacity: .95; }
.net.is-live.is-visible .net-dot { animation-play-state: running; }
.net.is-static .net-dot, .net.no-offset-path .net-dot { display: none; }
@keyframes net-travel {
0% { offset-distance: 0%; opacity: 0; }
8% { opacity: 1; }
92% { opacity: 1; }
100% { offset-distance: 100%; opacity: 0; }
}
.net.has-hot .net-link:not(.is-hot) .net-link__line { opacity: .18; }
.net.has-hot .net-link:not(.is-hot) .net-link__port { opacity: .25; }
.net.has-hot .net-link.is-hot .net-link__line { stroke: var(--hot); stroke-width: 2.5; }
.net.has-hot .net-dot:not(.is-hot) { opacity: .15; }
.net.has-hot .net-node:not(.is-hot):not(.net-node--th) { opacity: .55; }
.net-node.is-hot:not(.net-node--th) { border-color: var(--c-copper); box-shadow: 0 0 0 3px rgb(183 133 91 / .16), 0 8px 22px -12px rgb(31 36 39 / .3); }
.net-node--th.is-hot { box-shadow: 0 0 0 7px rgb(183 133 91 / .3), 0 18px 40px -16px rgb(36 74 66 / .55); }
@media (max-width: 1000px) {
.why-net__grid { grid-template-columns: minmax(0, 1fr); }
.why-net__figure { position: relative; top: auto; order: -1; }
}
@container net (max-width: 640px) {
.net { padding: 22px 18px; column-gap: 34px; min-height: 400px; }
.net-node { padding: 10px 11px; }
.net-node--brief .net-node__icon, .net-node--short .net-node__icon, .net-node--factory .net-node__icon { display: none; }
.net-node--th { padding: 16px 10px; }
}
@container net (max-width: 480px) {
.net {
--s-brief: b t;
--s-f: b l bus;
--s-back: t b;
min-height: 0;
grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto auto;
grid-template-areas: "brief short" "th th" "fac fac";
row-gap: 40px; column-gap: 12px; padding: 18px 16px 20px;
}
.net-node--brief, .net-node--short { align-self: stretch; flex-direction: column; align-items: flex-start; gap: 8px; }
.net-node--brief .net-node__icon, .net-node--short .net-node__icon { display: grid; }
.net-node--th { flex-direction: row; text-align: left; padding: 14px 16px; }
.net .net__factories { padding-left: 46px; gap: 10px; }
.net-node--factory .net-node__icon { display: grid; }
.net-node { font-size: .8rem; }
}
@media (max-width: 1000px) {
.why-net__grid { grid-template-columns: minmax(0, 1fr); }
.why-net__figure { position: relative; top: auto; order: -1; }
}
@media (max-width: 640px) {
.why-net__item { padding: 12px 12px 14px; }
}
.gglobal { overflow: hidden; }
.gglobal__grid {
display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
gap: clamp(2.5rem, 1rem + 4vw, 5rem); align-items: center;
}
.gglobal .section-head { margin-bottom: clamp(1.75rem, 1.2rem + 1.5vw, 2.5rem); }
.gglobal__subhead {
margin: 0 0 var(--s-4); font: 600 var(--fs-xs)/1.4 var(--f-sans); letter-spacing: .12em; text-transform: uppercase;
color: var(--c-copper-soft);
}
.gglobal__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; max-width: 40rem; }
.gglobal__list li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; color: var(--c-on-dark); line-height: 1.55; }
.gglobal__list .icon { color: var(--c-copper-soft); margin-top: 3px; }
.gglobal__cta { margin-top: clamp(1.75rem, 1.2rem + 1.5vw, 2.5rem); }
.gglobal__figure { margin: 0; min-width: 0; }
.gglobe {
position: relative; width: 100%; max-width: 620px; aspect-ratio: 1 / 1; margin-inline: auto;
border-radius: var(--r-lg); touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none;
}
.gglobe.is-dragging { cursor: grabbing; }
.gglobe:focus-visible { outline: 2px solid var(--c-copper-soft); outline-offset: 4px; }
.gglobe__canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 320ms var(--ease-out); }
.gglobe.is-live .gglobe__canvas { opacity: 1; }
.gglobe__fallback { position: absolute; inset: 0; transition: opacity 320ms var(--ease-out); }
.gglobe.is-live .gglobe__fallback { opacity: 0; }
.gglobe__sphere {
position: absolute; left: 11%; top: 11%; width: 78%; aspect-ratio: 1 / 1; border-radius: 50%;
background: radial-gradient(circle at 32% 30%, rgb(255 255 255 / .08), rgb(255 255 255 / .02) 70%);
box-shadow: 0 0 0 1px rgb(231 211 191 / .22), 0 0 70px 6px rgb(183 133 91 / .14);
}
.gglobe__sphere::before {
content: ''; position: absolute; inset: 0; border-radius: 50%;
background: radial-gradient(circle, rgb(243 239 232 / .32) 1px, transparent 1.6px) 0 0 / 9px 9px;
-webkit-mask-image: radial-gradient(circle at 46% 46%, #000 30%, transparent 72%);
mask-image: radial-gradient(circle at 46% 46%, #000 30%, transparent 72%);
}
.gglobe__orbit {
position: absolute; left: -0.7%; top: 38.3%; width: 101.4%; height: 23.4%; border-radius: 50%;
border: 1px dashed rgb(231 211 191 / .26); transform: rotate(-14deg);
}
.gglobe__pin {
position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%;
background: #d9a77c; box-shadow: 0 0 0 5px rgb(217 167 124 / .22);
}
.gglobe__pin--india { left: 47.85%; top: 47.9%; }
.gglobe .gglobe__labels { position: absolute; inset: 0; list-style: none; margin: 0; padding: 0; pointer-events: none; }
.gglobe__label {
position: absolute; max-width: min(12.5rem, 46%); padding: 7px 11px;
border-radius: 10px; border: 1px solid rgb(255 255 255 / .16); background: rgb(21 25 27 / .8);
-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
color: var(--c-on-dark-2); font-size: .8rem; line-height: 1.35; text-wrap: balance;
transition: opacity 280ms var(--ease-out);
}
.gglobe__label strong { color: var(--c-on-dark); font-weight: 650; }
.gglobe__label.is-hidden { opacity: 0; }
.gglobe__label--india { left: calc(47.85% + 34px); top: calc(47.9% - 78px); }
.gglobe.is-live .gglobe__label { left: 0; top: 0; right: auto; }
.gglobe__label--region { padding: 4px 10px; border-radius: 999px; font-size: .74rem; letter-spacing: .02em; white-space: nowrap; }
@media (max-width: 520px) {
.gglobe__label { padding: 5px 9px; font-size: .72rem; max-width: 10.5rem; }
.gglobe__label--region { padding: 3px 8px; font-size: .68rem; }
}
.gglobe:not(.is-live) .gglobe__label--region {
width: 1px; height: 1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%);
}
.gglobal__caption {
display: grid; gap: 6px; margin: var(--s-4) auto 0; max-width: 620px;
color: var(--c-on-dark-2); font-size: var(--fs-xs); line-height: 1.5;
}
.gglobal__hint { display: inline-flex; align-items: center; gap: 8px; color: var(--c-on-dark); }
.gglobal__hint .icon { color: var(--c-copper-soft); flex: none; }
@media (max-width: 1000px) {
.gglobal__grid { grid-template-columns: minmax(0, 1fr); }
.gglobe { max-width: 560px; }
}
@media (prefers-reduced-motion: reduce) {
.gglobe__canvas, .gglobe__fallback, .gglobe__label { transition: none; }
}
.pe-tier {
display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px;
font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1.25; white-space: nowrap;
}
.pe-tier--signature { background: var(--c-ink); color: var(--c-copper-soft); }
.pe-tier--signature::before { content: ''; width: 5px; height: 5px; background: currentColor; transform: rotate(45deg); flex: none; }
.pe-tier--essential { background: rgb(255 255 255 / .94); color: var(--c-graphite); box-shadow: inset 0 0 0 1px rgb(31 36 39 / .16); }
.pe-fmt { display: inline-block; flex: none; width: var(--fw); height: var(--fh); border: 1.5px solid currentColor; border-radius: 1.5px; opacity: .75; }
.pe-tbc, .cat-tbc { display: inline-flex; align-items: center; gap: 7px; color: var(--fg-muted); font-style: italic; font-weight: 500; }
.pe-tbc::before, .cat-tbc::before { content: ''; flex: none; width: 9px; height: 9px; border-radius: 50%; border: 1.5px dashed currentColor; }
.pe-tbc .pe-tbc::before { display: none; }
.pe { position: relative; --pe-gap: clamp(12px, .6rem + .8vw, 22px); }
.pe__data { display: none; }
.pe__layout { display: grid; gap: clamp(1.5rem, 1rem + 2vw, 3rem); }
.pe--full .pe__layout { grid-template-columns: 296px minmax(0, 1fr); align-items: start; }
.pe__main { min-width: 0; container-type: inline-size; }
.pe__filters {
position: sticky; top: calc(var(--header-h) + 16px); max-height: calc(100vh - var(--header-h) - 32px);
overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--c-stone) transparent;
padding: 4px 8px 12px 4px; margin: -4px -8px 0 -4px;
}
.pe__filters-body { display: grid; gap: 18px; }
.pe__sheet-head, .pe__sheet-foot { display: none; }
.pe__legend {
display: block; padding: 0; margin-bottom: 10px; font-size: var(--fs-xs); font-weight: 700;
letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink);
}
.pe__unit { letter-spacing: .04em; text-transform: none; color: var(--fg-muted); font-weight: 600; }
.pe__group { min-width: 0; margin: 0; padding: 16px 0 0; border: 0; border-top: 1px solid var(--c-line); }
.pe__group > .pe__legend { float: left; width: 100%; } 
.pe__group > .pe__legend + * { clear: both; }
.pe__chips { display: flex; flex-wrap: wrap; gap: 8px; }
@media (min-width: 961px) {
.pe__layout > .pe__filters .pe__chips { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; }
.pe__layout > .pe__filters .pe__chip {
width: 100%; min-height: 44px; padding: 0 8px; border-color: transparent; background: transparent; border-radius: 10px; justify-content: flex-start;
}
.pe__layout > .pe__filters .pe__chip:hover { background: rgb(255 255 255 / .8); border-color: var(--c-line); }
.pe__layout > .pe__filters .pe__chip[aria-pressed="true"] { background: var(--c-graphite); border-color: var(--c-graphite); }
.pe__layout > .pe__filters .pe__chip[aria-disabled="true"]:hover { background: transparent; border-color: transparent; }
.pe__layout > .pe__filters .pe__chip:not(:has(.pe__swatch, .pe__gloss, .pe-fmt)) { padding-left: 12px; }
.pe__layout > .pe__filters .pe__chip-label { overflow: hidden; text-overflow: ellipsis; }
.pe__layout > .pe__filters .pe__count { margin-left: auto; background: transparent; }
.pe__layout > .pe__filters .pe__chip[aria-pressed="true"] .pe__count { background: rgb(255 255 255 / .16); }
.pe__layout > .pe__filters :is([data-group="look"], [data-group="size"], [data-group="finish"]) .pe__chips { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 4px; }
.pe__layout > .pe__filters :is([data-group="size"]) .pe__chip { padding-inline: 8px 6px; gap: 6px; font-size: .8rem; }
.pe__layout > .pe__filters :is([data-group="size"]) .pe__count { min-width: 20px; padding: 0 4px; }
.pe__layout > .pe__filters :is([data-group="look"], [data-group="finish"]) .pe__chip { padding-inline: 6px 4px; gap: 7px; font-size: .86rem; }
.pe__layout > .pe__filters :is([data-group="look"], [data-group="finish"]) .pe__swatch,
.pe__layout > .pe__filters :is([data-group="look"], [data-group="finish"]) .pe__gloss { width: 24px; height: 24px; }
.pe__layout > .pe__filters :is([data-group="look"], [data-group="finish"]) .pe__count { min-width: 20px; padding: 0 4px; }
}
.pe__chip { min-height: 44px; padding: 0 10px 0 14px; gap: 8px; font-size: .86rem; cursor: pointer; transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast), opacity var(--t-fast), transform var(--t-fast) var(--ease-out); }
.pe__chip:active { transform: scale(.97); }
.pe__chip:has(.pe__swatch), .pe__chip:has(.pe__gloss), .pe__chip:has(.pe-fmt) { padding-left: 8px; }
.pe__chip .pe-fmt { margin-inline: 4px 2px; }
.pe__chip-label { white-space: nowrap; }
.pe__swatch { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--sw) center / 180% auto, var(--tone); box-shadow: inset 0 0 0 1px rgb(0 0 0 / .1), 0 1px 2px rgb(0 0 0 / .12); }
.pe__gloss {
flex: none; width: 26px; height: 26px; border-radius: 50%;
background:
radial-gradient(circle at 34% 30%, rgb(255 255 255 / calc(var(--gloss) * .95)) 0, rgb(255 255 255 / 0) calc(16% + var(--gloss) * 26%)),
linear-gradient(150deg, #d9d2c6, #9d9488);
box-shadow: inset 0 0 0 1px rgb(0 0 0 / .1), inset 0 -3px 6px rgb(0 0 0 / calc(.05 + var(--gloss) * .12));
}
.pe__count {
display: inline-grid; place-items: center; min-width: 24px; height: 22px; padding: 0 6px; border-radius: 999px;
background: var(--c-paper-2); color: var(--fg-muted); font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.pe__chip[aria-pressed="true"] .pe__count { background: rgb(255 255 255 / .16); color: var(--c-paper); }
.pe__chip[aria-pressed="true"] .pe__swatch, .pe__chip[aria-pressed="true"] .pe__gloss { box-shadow: 0 0 0 2px var(--c-paper); }
.pe__chip[aria-disabled="true"] { opacity: .4; cursor: not-allowed; }
.pe__chip[aria-disabled="true"]:hover { border-color: var(--c-line); }
.pe__chip[aria-disabled="true"]:active { transform: none; }
.pe__search { display: grid; }
.pe__search-field { position: relative; }
.pe__search-field > .icon { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: var(--fg-muted); pointer-events: none; }
.pe__q { padding-left: 44px; font-size: 1rem; border-radius: 999px; }
.pe__q::-webkit-search-cancel-button { cursor: pointer; }
.pe__bar {
display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px;
padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--c-line);
}
.pe__status { font-size: .95rem; color: var(--fg-muted); }
.pe__status strong { color: var(--fg); font-weight: 700; font-variant-numeric: tabular-nums; }
.pe__bar-tools { display: flex; align-items: center; gap: 8px 18px; flex-wrap: wrap; }
.pe__clear { min-height: 44px; font-size: .9rem; text-decoration: underline; text-underline-offset: 4px; }
.pe__clear[hidden] { display: none; }
.pe__sort { position: relative; display: inline-flex; align-items: center; gap: 10px; font-size: .9rem; font-weight: 600; }
.pe__sort > span { color: var(--fg-muted); }
.pe__sort-select {
appearance: none; -webkit-appearance: none; min-height: 44px; padding: 0 40px 0 16px; border-radius: 999px;
border: 1px solid var(--c-line); background: var(--c-white); color: var(--fg); font: inherit; font-weight: 600; cursor: pointer;
}
.pe__sort-select:hover { border-color: var(--c-graphite); }
.pe__sort > .icon { position: absolute; right: 14px; pointer-events: none; }
.pe__all { min-height: 44px; }
.pe__active { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -4px 0 18px; }
.pe__active[hidden] { display: none; }
.pe__active-label { margin-right: 4px; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-muted); }
.pe__pill {
position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 10px 0 14px; border: 0; border-radius: 999px;
background: var(--c-graphite); color: var(--c-paper); font-size: .84rem; font-weight: 600; cursor: pointer; transition: background var(--t-fast);
}
.pe__pill::after { content: ''; position: absolute; inset: -4px -2px; }
.pe__pill:hover { background: var(--c-ink); }
.pe__pill svg { opacity: .75; }
.pe__stage { position: relative; }
.pe__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pe-gap); }
@container (min-width: 560px) { .pe__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (min-width: 1060px) { .pe__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pe__ghosts { position: absolute; inset: 0; pointer-events: none; }
.pe-card--ghost { position: absolute; margin: 0; }
.pe-card[hidden] { display: none !important; }
.pe-card { position: relative; min-width: 0; --edge-1: #e3dccf; --edge-2: #d6cdbe; --edge-3: #c8beac; }
.pe-card__inner {
position: relative; display: flex; flex-direction: column; height: 100%;
background: var(--c-white); border: 1px solid rgb(31 36 39 / .07); border-radius: var(--r-md);
box-shadow: var(--shadow-1); transition: box-shadow var(--t-std) var(--ease-out), border-color var(--t-std);
}
.pe-card__media {
position: relative; aspect-ratio: 1; margin: 8px 8px 0; overflow: hidden; border-radius: 5px; background: var(--tone, var(--c-limestone));
box-shadow: 0 0 0 0 var(--edge-1), 0 0 0 0 var(--edge-2), 0 0 0 0 var(--edge-3);
transition: transform var(--t-std) var(--ease-out), box-shadow var(--t-std) var(--ease-out);
}
.pe-card__media img {
display: block; width: 100%; height: 100%; object-fit: cover;
--pe-z: var(--zoom, 1);
transform: translate(calc(var(--ox, 50%) - 50%), calc(var(--oy, 50%) - 50%)) scale(var(--pe-z)) translate(calc(50% - var(--ox, 50%)), calc(50% - var(--oy, 50%))) rotate(var(--rot, 0deg));
transition: transform 1100ms var(--ease-out);
}
.pe-card__media::after { 
content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
box-shadow: inset 1px 1px 0 rgb(255 255 255 / .38), inset -1px -1px 0 rgb(0 0 0 / .1);
}
.pe-card__media.is-missing img { visibility: hidden; }
.pe-card__sheen {
position: absolute; inset: -20%; pointer-events: none; opacity: 0;
background: linear-gradient(115deg, transparent 38%, rgb(255 255 255 / calc(.08 + var(--gloss, .2) * .42)) 50%, transparent 62%);
transform: translateX(-45%); transition: transform 1000ms var(--ease-out), opacity 500ms var(--ease-out);
}
.pe-card__flags { position: absolute; z-index: 1; top: 10px; left: 10px; right: 10px; display: flex; flex-wrap: wrap; gap: 6px; pointer-events: none; }
.pe-card__flags .badge--demo { padding: 3px 9px; font-size: .64rem; }
.pe-card__size {
position: absolute; z-index: 1; left: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 7px; padding: 4px 10px 4px 8px;
border-radius: 999px; background: rgb(255 255 255 / .86); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
color: var(--c-graphite); font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums; pointer-events: none;
}
.pe-card__body { display: flex; flex-direction: column; flex: 1; gap: 6px; padding: 14px 16px 12px; }
.pe-card__name { font-family: var(--f-display); font-weight: 400; font-size: 1.36rem; line-height: 1.12; letter-spacing: -.01em; }
.pe-card__open { padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-align: left; cursor: pointer; }
.pe-card__open::after { content: ''; position: absolute; inset: 0; z-index: 1; border-radius: var(--r-md); }
.pe-card__open:focus-visible { outline: none; }
.pe-card__open:focus-visible::after { outline: 2px solid var(--focus); outline-offset: 3px; }
.pe-card__meta { font-size: .82rem; line-height: 1.5; color: var(--fg-muted); }
.pe-card__meta > span { white-space: nowrap; }
.pe-card__dim { display: block; }
.pe-card__finish::after { content: '\00a0\00a0·'; color: var(--c-stone); }
.pe-card__cat { font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); }
.pe-card__note {
display: flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--c-line);
font-size: .74rem; color: var(--fg-muted);
}
.pe-card__note::before { content: ''; flex: none; width: 7px; height: 7px; border-radius: 50%; border: 1.5px dashed currentColor; }
.pe-card__cta {
position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px;
margin: 0 -8px; padding: 4px 8px; border-radius: 10px; color: var(--c-forest); font-weight: 650; font-size: .88rem; line-height: 1.25; text-decoration: none;
transition: background var(--t-fast), color var(--t-fast);
}
.pe-card__cta .icon { flex: none; transition: transform var(--t-fast) var(--ease-out); }
.pe-card__cta:hover { background: rgb(36 74 66 / .08); color: var(--c-forest-2); }
.pe-card__cta:hover .icon { transform: translateX(3px); }
@media (hover: hover) {
.pe-card:hover .pe-card__inner { box-shadow: var(--shadow-2); border-color: rgb(31 36 39 / .12); }
.pe-card:hover .pe-card__media, .pe-card:focus-within .pe-card__media {
transform: translate(-3px, -4px);
box-shadow: 1px 1px 0 0 var(--edge-1), 2px 2px 0 0 var(--edge-2), 3px 3px 0 0 var(--edge-3), 4px 4px 0 0 var(--edge-3), 10px 14px 22px -8px rgb(21 25 27 / .42);
}
.pe-card:hover .pe-card__media img { --pe-z: calc(var(--zoom, 1) * 1.045); }
.pe-card:hover .pe-card__sheen { opacity: 1; transform: translateX(40%); }
}
@container (max-width: 559px) {
.pe-card__media { margin: 6px 6px 0; }
.pe-card__body { padding: 11px 11px 8px; gap: 5px; }
.pe-card__name { font-size: 1.12rem; }
.pe-card__meta { font-size: .76rem; line-height: 1.45; }
.pe-card__meta > span { display: block; }
.pe-card__meta > .pe-card__dim { display: none; }
.pe-card__finish::after { content: none; }
.pe-card__flags { top: 7px; left: 7px; right: 7px; gap: 4px; }
.pe-card__flags .pe-tier { padding: 3px 7px; font-size: .58rem; letter-spacing: .08em; }
.pe-card__flags .badge--demo { padding: 2px 7px; font-size: .56rem; letter-spacing: .06em; }
.pe-card__size { left: 7px; bottom: 7px; padding: 3px 8px 3px 6px; font-size: .66rem; gap: 5px; }
.pe-card__cat { font-size: .6rem; letter-spacing: .1em; }
.pe-card__note { font-size: .68rem; padding-top: 8px; }
.pe-card__cta { font-size: .8rem; margin: 0 -6px; padding: 4px 6px; }
}
.pe__empty {
display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: center;
padding: clamp(24px, 4vw, 48px); border: 1px dashed var(--c-stone); border-radius: var(--r-lg); background: rgb(255 255 255 / .55);
}
.pe__empty[hidden] { display: none; }
.pe__empty-art { position: relative; aspect-ratio: 1; }
.pe__empty-art i { position: absolute; width: 62%; aspect-ratio: 1; border-radius: 4px; border: 1.5px dashed var(--c-stone); background: var(--c-paper); }
.pe__empty-art i:nth-child(1) { left: 0; top: 0; transform: rotate(-8deg); }
.pe__empty-art i:nth-child(2) { left: 19%; top: 19%; transform: rotate(4deg); background: var(--c-limestone); }
.pe__empty-art i:nth-child(3) { right: 0; bottom: 0; border-style: solid; border-color: var(--c-copper-soft); background: linear-gradient(135deg, var(--c-paper-2), var(--c-copper-soft)); }
.pe__empty-copy { display: grid; gap: 12px; justify-items: start; }
.pe__empty-copy .display-3 { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); max-width: 24ch; }
.pe__empty-copy .muted { max-width: 60ch; }
.pe__suggest:empty { display: none; }
.pe__suggest { margin: 6px 0 4px; }
.pe__suggest-title { margin-bottom: 8px; font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); }
.pe__suggest-row { display: flex; flex-wrap: wrap; gap: 8px; }
.pe__suggest-chip { min-height: 44px; cursor: pointer; }
.pe__suggest-chip .pe__count { margin-left: 2px; }
.pe-void {
display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center;
padding: clamp(28px, 5vw, 64px); border: 1px dashed var(--c-stone); border-radius: var(--r-xl); background: var(--c-paper-2);
}
.pe-void__art { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; aspect-ratio: 1; }
.pe-void__art i { border-radius: 4px; border: 1.5px dashed var(--c-stone); }
.pe-void__art i:nth-child(2) { background: var(--c-limestone); border-style: solid; border-color: transparent; }
.pe-void__art i:nth-child(3) { background: linear-gradient(135deg, var(--c-paper), var(--c-copper-soft)); border-style: solid; border-color: transparent; }
.pe-void__copy { display: grid; gap: 14px; }
.pe-void__copy .display-3 { max-width: 22ch; }
@media (max-width: 640px) { .pe-void { grid-template-columns: 1fr; } .pe-void__art { width: 120px; } }
.pe__quick {
display: flex; gap: 8px; margin: 0 0 18px; padding: 2px 2px 8px; overflow-x: auto; scrollbar-width: none;
scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
}
.pe__quick::-webkit-scrollbar { display: none; }
.pe__quick .pe__chip { flex: none; scroll-snap-align: start; }
.pe__chip--all { padding-inline: 18px; }
@media (max-width: 760px) {
.pe__quick { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
}
.pe__fab-wrap { display: none; }
.pe__fab {
pointer-events: auto; display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 22px; border: 0; border-radius: 999px;
background: var(--c-ink); color: var(--c-on-dark); font: inherit; font-weight: 650; font-size: .95rem; cursor: pointer;
box-shadow: 0 16px 34px -12px rgb(21 25 27 / .6), 0 0 0 1px rgb(255 255 255 / .08) inset;
}
.pe__fab:focus-visible { outline-color: var(--c-copper); }
.pe__fab-n { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 7px; border-radius: 999px; background: var(--c-copper-soft); color: var(--c-ink); font-size: .78rem; font-weight: 800; }
.pe__fab-n[hidden] { display: none; }
@media (max-width: 960px) {
.pe--full .pe__layout { grid-template-columns: minmax(0, 1fr); }
.js .pe__layout > .pe__filters { display: none; }
.js .pe--full .pe__fab-wrap {
position: sticky; z-index: 40; bottom: max(18px, env(safe-area-inset-bottom)); display: flex; justify-content: center;
margin-top: 20px; pointer-events: none;
}
.pe__bar { position: relative; }
}
.pe-sheet {
position: fixed; inset: auto 0 0 0; width: 100%; max-width: 100%; height: auto; max-height: min(88vh, 88dvh); margin: 0; padding: 0;
border: 0; border-radius: 22px 22px 0 0; background: var(--c-paper); color: var(--fg); box-shadow: var(--shadow-3); overflow: hidden;
}
.pe-sheet[open] { display: flex; flex-direction: column; }
.pe-sheet::backdrop { background: rgb(21 25 27 / .5); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.pe-sheet .pe__filters { position: static; display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; max-height: none; margin: 0; padding: 0; overflow: hidden; }
.pe-sheet .pe__sheet-head { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 10px 10px 20px; border-bottom: 1px solid var(--c-line); }
.pe-sheet .pe__sheet-head::before { content: ''; position: absolute; top: 7px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 2px; background: var(--c-stone); }
.pe__sheet-title { font-family: var(--f-display); font-size: 1.6rem; line-height: 1.1; }
.pe__sheet-close { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--fg); cursor: pointer; }
.pe__sheet-close:hover { background: var(--c-paper-2); }
.pe-sheet .pe__filters-body { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 18px 20px 28px; }
.pe-sheet .pe__sheet-foot { display: flex; gap: 10px; padding: 12px 20px max(14px, env(safe-area-inset-bottom)); border-top: 1px solid var(--c-line); background: var(--c-paper); }
.pe-sheet .pe__sheet-foot .btn { flex: 1; min-height: 50px; }
.pe-sheet .pe__sheet-foot .btn[hidden] { display: inline-flex; }
.pe-dialog {
width: min(1140px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0;
border: 0; border-radius: var(--r-xl); background: var(--c-paper); color: var(--fg); box-shadow: var(--shadow-3); overflow: hidden;
}
.pe-dialog::backdrop { background: rgb(21 25 27 / .64); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.pe-dialog__panel {
display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); max-height: calc(100dvh - 32px);
overflow: auto; overscroll-behavior: contain; scrollbar-width: thin;
}
.pe-dialog__close {
position: absolute; z-index: 5; top: 14px; right: 14px; display: grid; place-items: center; width: 44px; height: 44px;
border: 1px solid var(--c-line); border-radius: 50%; background: rgb(255 255 255 / .88); color: var(--fg); cursor: pointer;
backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); transition: background var(--t-fast), transform var(--t-fast) var(--ease-out);
}
.pe-dialog__close:hover { background: var(--c-white); transform: rotate(90deg); }
.pe-dialog__media {
position: sticky; top: 0; align-self: start; display: flex; flex-direction: column; gap: 16px;
padding: clamp(18px, 2.4vw, 32px); background: linear-gradient(160deg, var(--c-limestone), var(--c-paper-2));
min-height: 100%;
}
.pe-dialog__views { align-self: flex-start; display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: rgb(255 255 255 / .65); border: 1px solid var(--c-line); }
.pe-dialog__view {
min-height: 44px; padding: 0 16px; border: 0; border-radius: 999px; background: transparent; color: var(--fg-muted);
font: inherit; font-size: .86rem; font-weight: 650; cursor: pointer; transition: background var(--t-fast), color var(--t-fast);
}
.pe-dialog__view:hover { color: var(--fg); }
.pe-dialog__view[aria-pressed="true"] { background: var(--c-graphite); color: var(--c-paper); }
.pe-dialog__stage { position: relative; }
.pe-dialog__tile {
--sx: 32%; --sy: 26%;
position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 6px; background: var(--tone, var(--c-limestone));
box-shadow: 1px 1px 0 #e3dccf, 2px 2px 0 #d6cdbe, 3px 3px 0 #c8beac, 4px 4px 0 #c8beac, 5px 5px 0 #beb3a0, 22px 30px 44px -20px rgb(21 25 27 / .6);
}
.pe-dialog__tile img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pe-dialog__tile.is-missing img { visibility: hidden; }
.pe-dialog__tile::after { content: ''; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 1px 1px 0 rgb(255 255 255 / .4), inset -1px -1px 0 rgb(0 0 0 / .1); }
.pe-dialog__sheen {
position: absolute; inset: 0; pointer-events: none; opacity: .5; transition: opacity 500ms var(--ease-out);
background: radial-gradient(circle at var(--sx) var(--sy), rgb(255 255 255 / calc(.06 + var(--gloss, .2) * .44)) 0, rgb(255 255 255 / calc(var(--gloss, .2) * .14)) 22%, transparent 52%);
}
.pe-dialog__tile.is-lit .pe-dialog__sheen { opacity: 1; }
.pe-dialog__fmt {
position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 10px; border-radius: 999px;
background: rgb(255 255 255 / .88); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); color: var(--c-graphite);
font-size: .8rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.pe-dialog__fmt i { display: inline-block; width: var(--fw); height: var(--fh); border: 1.5px solid currentColor; border-radius: 1.5px; opacity: .75; }
.pe-ctx { margin: 0; }
.pe-ctx[hidden] { display: none; }
.pe-ctx__room {
position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 6px; isolation: isolate;
perspective: 560px; perspective-origin: 50% 22%;
background: linear-gradient(180deg, #f2eee7 0%, #e7e1d6 100%);
box-shadow: 0 22px 44px -22px rgb(21 25 27 / .55);
}
.pe-ctx__room::after { 
content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 3;
background: linear-gradient(180deg, rgb(236 231 222 / .0) 0%, rgb(236 231 222 / .85) 23%, rgb(236 231 222 / 0) 46%), radial-gradient(120% 90% at 50% 40%, transparent 55%, rgb(21 25 27 / .18) 100%);
}
.pe-ctx__wall { position: absolute; inset: 0 0 auto 0; height: 34%; z-index: 0; background: linear-gradient(180deg, #f4f1eb, #e9e3d9); }
.pe-ctx__wall::after { 
content: ''; position: absolute; left: 14%; top: 18%; width: 30%; height: 70%;
background: linear-gradient(90deg, rgb(255 255 255 / .55), rgb(255 255 255 / .15)); filter: blur(10px); opacity: .7;
}
.pe-ctx__plane {
position: absolute; z-index: 1; left: 50%; bottom: 0; width: 280%; height: 210%; margin-left: -140%;
transform-origin: 50% 100%; transform: rotateX(70deg);
background: var(--grout) 0 0 / var(--gw) var(--gh2), var(--tex) 0 0 / var(--tw) var(--tw), var(--tone, #e9e5dd);
}
.pe-ctx__light {
position: absolute; inset: 0; pointer-events: none;
background:
radial-gradient(30% 22% at 38% 62%, rgb(255 255 255 / calc(.1 + var(--gloss, .2) * .5)), transparent 70%),
linear-gradient(180deg, rgb(255 255 255 / 0) 55%, rgb(21 25 27 / .14) 100%);
}
.pe-ctx__object { 
position: absolute; z-index: 2; right: 14%; bottom: 17%; width: 34%; height: 11%; border-radius: 3px;
background: linear-gradient(180deg, #d9d2c6, #c2baac); border-radius: 0 0 3px 3px;
box-shadow: 0 26px 26px -14px rgb(21 25 27 / .45);
}
.pe-ctx__object::before { 
content: ''; position: absolute; left: 0; right: 0; bottom: 100%; height: 70%;
background: linear-gradient(180deg, #f1ede6, #e5dfd5); clip-path: polygon(6% 0, 94% 0, 100% 100%, 0 100%);
}
.pe-ctx--wall .pe-ctx__object::before { display: none; }
.pe-ctx__object::after { content: ''; position: absolute; left: -8%; right: -8%; bottom: -16%; height: 26%; border-radius: 50%; background: rgb(21 25 27 / .18); filter: blur(8px); z-index: -1; }
.pe-ctx--wall .pe-ctx__room { perspective: 900px; perspective-origin: 30% 50%; }
.pe-ctx--wall .pe-ctx__wall { inset: auto 0 0 0; height: 22%; z-index: 2; background: linear-gradient(180deg, #d9d1c4, #c3b9a9); box-shadow: 0 -10px 24px -10px rgb(21 25 27 / .35); }
.pe-ctx--wall .pe-ctx__wall::after { display: none; }
.pe-ctx--wall .pe-ctx__plane { left: -6%; bottom: auto; top: -10%; width: 150%; height: 120%; margin-left: 0; transform-origin: 0 50%; transform: rotateY(28deg); }
.pe-ctx--wall .pe-ctx__light { background: radial-gradient(40% 50% at 30% 35%, rgb(255 255 255 / calc(.08 + var(--gloss, .2) * .45)), transparent 70%), linear-gradient(90deg, rgb(255 255 255 / 0) 40%, rgb(21 25 27 / .16) 100%); }
.pe-ctx--wall .pe-ctx__object { 
right: auto; left: 24%; bottom: auto; top: 18%; width: 30%; height: auto; aspect-ratio: 1; border-radius: 50%;
background: radial-gradient(circle at 35% 30%, #fbfaf7, #d9d6d0 70%); border: 5px solid #b39270; box-shadow: 12px 20px 30px -12px rgb(21 25 27 / .45);
}
.pe-ctx--wall .pe-ctx__object::after { display: none; }
.pe-ctx--wall .pe-ctx__room::after { background: radial-gradient(120% 90% at 40% 40%, transparent 55%, rgb(21 25 27 / .2) 100%); }
.pe-ctx--dark .pe-ctx__room { background: linear-gradient(180deg, #2a2f31, #1d2123); }
.pe-ctx--dark .pe-ctx__room::after { background: linear-gradient(180deg, rgb(42 47 49 / 0) 0%, rgb(42 47 49 / .85) 23%, rgb(42 47 49 / 0) 46%), radial-gradient(120% 90% at 50% 40%, transparent 55%, rgb(0 0 0 / .3) 100%); }
.pe-ctx--dark .pe-ctx__wall { background: linear-gradient(180deg, #33393b, #2a2f31); }
.pe-ctx--dark.pe-ctx--wall .pe-ctx__room::after { background: radial-gradient(120% 90% at 40% 40%, transparent 55%, rgb(0 0 0 / .3) 100%); }
.pe-ctx--dark.pe-ctx--wall .pe-ctx__wall { background: linear-gradient(180deg, #8f857a, #776d62); }
.pe-ctx__cap { margin-top: 10px; font-size: .78rem; color: var(--fg-muted); }
.pe-dialog__info { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding: clamp(24px, 3vw, 44px); padding-top: clamp(28px, 3vw, 56px); }
.pe-dialog__flags { display: flex; flex-wrap: wrap; gap: 6px; padding-right: 48px; }
.pe-dialog__avail, .cat-status {
display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; border: 1px dashed #c99a2e;
background: #fff4d6; color: #6b4b00; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.25; white-space: nowrap;
}
.pe-dialog__kicker { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); }
.pe-dialog__kicker a { color: inherit; text-decoration: underline; text-decoration-color: rgb(138 90 52 / .35); text-underline-offset: 3px; }
.pe-dialog__kicker a:hover { text-decoration-color: currentColor; }
.pe-dialog__title { font-size: clamp(2rem, 1.4rem + 1.8vw, 3rem); line-height: 1.02; }
.pe-dialog__lede { color: var(--fg-muted); font-size: 1.02rem; }
.pe-dialog__confirm {
align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px;
background: rgb(36 74 66 / .08); color: var(--c-forest); font-size: .86rem; font-weight: 650;
}
.pe-dialog__confirm svg { flex: none; }
.pe-dialog__table { margin-top: 8px; }
.pe-dialog__caption { padding-bottom: 10px; text-align: left; font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); }
.pe-dialog__specs { width: 100%; border-collapse: collapse; font-size: .9rem; }
.pe-dialog__specs th, .pe-dialog__specs td { padding: 9px 0; border-top: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.pe-dialog__specs tr:last-child th, .pe-dialog__specs tr:last-child td { border-bottom: 1px solid var(--c-line); }
.pe-dialog__specs th { width: 44%; padding-right: 16px; font-weight: 600; color: var(--fg-muted); }
.pe-dialog__specs td { font-weight: 600; }
.pe-dialog__specs .pe-tbc { font-weight: 500; font-size: .86rem; }
.pe-dialog__notes { padding-left: 14px; border-left: 2px solid var(--c-copper); color: var(--fg-muted); font-size: .92rem; }
.pe-dialog__ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 4px; }
.pe-dialog__sample { min-height: 44px; }
.pe-dialog__nav { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--c-line); }
.pe-dialog__nav[hidden] { display: none; }
.pe-dialog__step {
display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--c-line); border-radius: 999px;
background: var(--c-white); color: var(--fg); font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer; transition: border-color var(--t-fast), background var(--t-fast);
}
.pe-dialog__step:hover { border-color: var(--c-graphite); }
.pe-dialog__pos { font-size: .85rem; color: var(--fg-muted); font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
.pe-dialog { width: 100%; max-height: calc(100dvh - 20px); margin: auto 0 0; border-radius: 22px 22px 0 0; }
.pe-dialog__panel { grid-template-columns: minmax(0, 1fr); max-height: calc(100dvh - 20px); }
.pe-dialog__media { position: relative; min-height: 0; padding: 16px 16px 6px; gap: 12px; }
.pe-dialog__close { top: 10px; right: 10px; }
.pe-dialog__views { align-self: flex-start; }
.pe-dialog__info { padding: 20px 20px max(24px, env(safe-area-inset-bottom)); gap: 12px; }
.pe-dialog__flags { padding-right: 0; }
.pe-dialog__step-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pe-dialog__step { width: 48px; justify-content: center; padding: 0; }
}
.pe-home__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 20px 48px; margin-bottom: clamp(24px, 3vw, 40px); }
.pe-home__head .section-head { margin-bottom: 0; }
.pe-home__aside {
display: flex; align-items: flex-start; gap: 10px; max-width: 32ch; padding: 14px 16px; border: 1px solid var(--c-line); border-radius: var(--r-md);
background: rgb(255 255 255 / .6); color: var(--fg-muted); font-size: .88rem; line-height: 1.45;
}
.pe-home__aside .icon { flex: none; margin-top: 1px; color: var(--c-copper-ink); }
.pe-home__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: clamp(28px, 3vw, 44px); color: var(--c-stone); }
.pe-home__foot .btn { margin-right: 10px; }
.pe-home__cat { display: inline-flex; align-items: center; min-height: 44px; color: var(--fg-muted); font-size: .9rem; font-weight: 600; text-decoration: none; }
.pe-home__cat:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 860px) {
.pe-home__head { grid-template-columns: minmax(0, 1fr); }
.pe-home__aside { max-width: none; }
}
@media (max-width: 600px) {
.pe-home__foot { flex-direction: column; align-items: flex-start; gap: 0; }
.pe-home__foot > span { display: none; }
.pe-home__foot .btn { margin: 0 0 10px; width: 100%; }
}
.page-collection .page-hero--dark .display-1 em,
.page-collection .cta-band .display-2 em,
.page-collections .cta-band .display-2 em { color: var(--c-copper-soft); }
.page-collection .page-hero .display-1, .page-collections .page-hero .display-1 { font-size: clamp(2.5rem, 1.3rem + 3.9vw, 5rem); max-width: 16ch; }
.page-collection .page-hero__grid, .page-collections .page-hero__grid { align-items: center; }
.cat-hero-aside { display: grid; gap: 14px; }
.cat-hero-aside .factbox dl > div { grid-template-columns: 8.5rem 1fr; }
.cat-hero-status { display: grid; gap: 10px; padding: 16px 18px; border: 1px dashed rgb(201 154 46 / .7); border-radius: var(--r-md); background: rgb(255 244 214 / .1); font-size: .92rem; }
.cat-status--lg { justify-self: start; padding: 6px 12px; font-size: .74rem; }
.page-hero--dark .cat-hero-aside .factbox { background: rgb(21 25 27 / .6); border-color: rgb(255 255 255 / .14); --c-line: rgb(255 255 255 / .12); color: var(--c-on-dark); }
.page-hero--dark .cat-hero-aside .factbox__title { color: var(--c-copper-soft); }
.page-hero--dark .cat-hero-aside .factbox dt { color: var(--c-on-dark-2); }
.page-hero--dark .cat-hero-status { color: var(--c-on-dark); background: rgb(21 25 27 / .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.cat-status .icon { flex: none; }
.cat-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--s-5); }
.cat-grid > .cat-card--lg { grid-column: span 3; }
.cat-grid > .cat-card--md { grid-column: span 2; }
.cat-card { display: block; color: inherit; text-decoration: none; perspective: 1100px; border-radius: var(--r-lg); }
.cat-card:focus-visible { outline-offset: 4px; border-radius: var(--r-lg); }
.cat-card__tilt {
position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: var(--r-lg);
background: var(--c-white); border: 1px solid rgb(31 36 39 / .07); box-shadow: var(--shadow-1);
transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transform-style: preserve-3d; will-change: transform;
transition: box-shadow var(--t-std) var(--ease-out);
}
.cat-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--tone); }
.cat-card--lg .cat-card__media { aspect-ratio: 16 / 9; }
.cat-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1400ms var(--ease-out); }
.cat-card__media::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgb(21 25 27 / .16), transparent 32%); }
.cat-card__glare {
position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: var(--go, 0);
background: radial-gradient(circle at var(--gx, 50%) var(--gy, 20%), rgb(255 255 255 / .42), rgb(255 255 255 / 0) 48%);
mix-blend-mode: soft-light;
}
.cat-card__flags { position: absolute; z-index: 2; top: 14px; left: 14px; display: flex; gap: 6px; }
.cat-card__body { display: flex; flex-direction: column; flex: 1; gap: 8px; padding: clamp(18px, 1.6vw, 26px); }
.cat-card__count { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); }
.cat-card__name { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.6rem, 1.2rem + 1vw, 2.2rem); line-height: 1.05; letter-spacing: -.015em; }
.cat-card--lg .cat-card__name { font-size: clamp(1.9rem, 1.3rem + 1.6vw, 2.8rem); }
.cat-card__tag { font-weight: 650; font-size: .95rem; line-height: 1.4; }
.cat-card__sum { color: var(--fg-muted); font-size: .93rem; line-height: 1.55; max-width: 52ch; }
.cat-card__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 10px; color: var(--accent); font-weight: 650; font-size: .92rem; }
.cat-card__go .icon { transition: transform var(--t-fast) var(--ease-out); }
.cat-card:hover .cat-card__tilt { box-shadow: var(--shadow-2); }
.cat-card:hover .cat-card__media img { transform: scale(1.09); }
.cat-card:hover .cat-card__go .icon { transform: translateX(4px); }
.cat-card--sm .cat-card__media { aspect-ratio: 3 / 2; }
.cat-card--sm .cat-card__body { gap: 6px; padding: 16px 18px 18px; }
.cat-card--sm .cat-card__name { font-size: 1.45rem; }
.cat-card--sm .cat-card__tag { font-size: .86rem; font-weight: 500; color: var(--fg-muted); }
.cat-card--sm .cat-card__flags { top: 10px; left: 10px; }
.cat-card--sm .cat-status { font-size: .6rem; padding: 3px 8px; }
@media (max-width: 1000px) {
.cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cat-grid > .cat-card--lg, .cat-grid > .cat-card--md { grid-column: span 1; }
.cat-grid > .cat-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.cat-grid > .cat-card:last-child:nth-child(odd) .cat-card__media { aspect-ratio: 21 / 9; }
.cat-card--lg .cat-card__media { aspect-ratio: 4 / 3; }
}
@media (max-width: 600px) {
.cat-grid { grid-template-columns: minmax(0, 1fr); gap: var(--s-4); }
.cat-grid > .cat-card .cat-card__media, .cat-grid > .cat-card:last-child:nth-child(odd) .cat-card__media { aspect-ratio: 16 / 9; }
.cat-card__sum { display: none; }
}
.cat-tiers__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-5); }
.cat-tier { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-lg); background: var(--c-white); border: 1px solid rgb(31 36 39 / .07); box-shadow: var(--shadow-1); }
.cat-tier__tex { aspect-ratio: 16 / 9; background: var(--tex) center / cover, var(--tone); }
.cat-tier__body { display: grid; gap: 12px; align-content: start; padding: clamp(20px, 2vw, 30px); }
.cat-tier__body .pe-tier { justify-self: start; }
.cat-tier__list { display: grid; gap: 8px; margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--c-line); font-size: .93rem; }
.cat-tier__list li { display: flex; gap: 10px; align-items: baseline; }
.cat-tier__list li::before { content: ''; flex: none; width: 6px; height: 6px; transform: rotate(45deg) translateY(-2px); background: var(--c-copper); }
.cat-tier--signature { background: var(--c-ink); color: var(--c-on-dark); border-color: transparent; --fg-muted: var(--c-on-dark-2); --c-line: rgb(255 255 255 / .12); }
.cat-tier--signature .pe-tier--signature { background: rgb(231 211 191 / .14); }
.cat-tier--signature .cat-tier__list li::before { background: var(--c-copper-soft); }
@media (max-width: 600px) { .cat-tiers__grid { grid-template-columns: minmax(0, 1fr); } }
.cat-tiles__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px 48px; margin-bottom: clamp(28px, 3vw, 48px); }
.cat-tiles__head .section-head { margin-bottom: 0; }
.cat-tiles__count { display: grid; justify-items: end; flex: none; font-family: var(--f-display); font-size: clamp(3rem, 2rem + 3vw, 5.5rem); line-height: .9; color: var(--c-copper); font-variant-numeric: lining-nums tabular-nums; }
.cat-tiles__count span { margin-top: 8px; font-family: var(--f-sans); font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-muted); }
@media (max-width: 760px) { .cat-tiles__count { display: none; } }
.cat-read__grid { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: clamp(2rem, 1rem + 5vw, 6rem); align-items: center; }
.cat-read__card { margin: 0; padding: 10px; border-radius: var(--r-lg); background: var(--c-white); box-shadow: var(--shadow-2); }
.cat-read__media { position: relative; aspect-ratio: 1; border-radius: 6px; background: var(--tex) center / cover, var(--tone); }
.cat-read__flags { position: absolute; top: 14px; left: 14px; right: 14px; display: flex; flex-wrap: wrap; gap: 26px; }
.cat-read__tag { position: relative; display: inline-flex; }
.cat-read__tag > .cat-read__pin { position: absolute; top: -12px; right: -20px; }
.cat-read__size { position: absolute; left: 14px; bottom: 14px; padding: 4px 10px; border-radius: 999px; background: rgb(255 255 255 / .88); font-size: .74rem; font-weight: 700; }
.cat-read__body { display: grid; gap: 6px; padding: 16px 10px 8px; }
.cat-read__name { font-family: var(--f-display); font-size: 1.5rem; line-height: 1.1; }
.cat-read__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: .85rem; color: var(--fg-muted); }
.cat-read__note { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px dashed var(--c-line); font-size: .8rem; color: var(--fg-muted); }
.cat-read__pin, .cat-read__n {
display: inline-grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%;
background: var(--c-copper-ink); color: #fff; font-size: .75rem; font-weight: 800; font-style: normal; letter-spacing: 0; box-shadow: 0 0 0 3px var(--c-white);
}
.cat-read__cap { padding: 10px 10px 4px; font-size: .8rem; color: var(--fg-muted); }
.cat-read__list { display: grid; }
.cat-read__row { display: grid; grid-template-columns: minmax(150px, 210px) minmax(0, 1fr); gap: 8px 24px; padding: 16px 0; border-top: 1px solid rgb(31 36 39 / .14); }
.cat-read__row:last-child { border-bottom: 1px solid rgb(31 36 39 / .14); }
.cat-read__row dt { display: flex; align-items: center; gap: 12px; font-weight: 700; }
.cat-read__n { box-shadow: none; }
.cat-read__row dd { display: grid; gap: 8px; justify-items: start; color: var(--fg-muted); }
.cat-read__sample { display: inline-flex; }
.cat-spec-sample { display: inline-flex; padding: 3px 10px; border-radius: 6px; border: 1px solid var(--c-stone); background: var(--c-white); color: var(--fg); font-size: .82rem; font-weight: 650; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
.cat-read__grid { grid-template-columns: minmax(0, 1fr); }
.cat-read__card { max-width: 360px; }
}
@media (max-width: 560px) { .cat-read__row { grid-template-columns: minmax(0, 1fr); } }
.cat-table { background: var(--c-white); }
.cat-table table { font-size: .93rem; }
.cat-table th[scope="row"] { width: 24%; background: transparent; font-weight: 650; }
.cat-table th[scope="row"] a { color: var(--fg); text-decoration-color: var(--c-stone); text-underline-offset: 4px; }
.cat-table th[scope="row"] a:hover { color: var(--accent); }
.cat-table thead th { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-muted); }
.cat-table tbody tr:last-child > * { border-bottom: 0; }
.cat-table td:last-child { white-space: nowrap; }
.cat-specs .cat-table td:last-child { white-space: normal; min-width: 14rem; }
.cat-matrix { margin-top: var(--s-5); grid-template-rows: auto; }
@media (min-width: 761px) { .cat-matrix .cat-table th[scope="row"] { width: 20%; } }
.cat-matrix .cat-table td:last-child { white-space: normal; }
.cat-core { display: inline-flex; padding: 4px 10px; border-radius: 999px; background: rgb(36 74 66 / .1); color: var(--c-forest); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
@media (max-width: 760px) {
.cat-table { overflow: visible; }
.cat-table table, .cat-table tbody, .cat-table tr, .cat-table th, .cat-table td { display: block; width: auto; }
.cat-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cat-table tr { padding: 16px 18px; border-bottom: 1px solid var(--c-line); }
.cat-table tbody tr:last-child { border-bottom: 0; }
.cat-table th, .cat-table td, .cat-table tbody tr:last-child > * { padding: 0; border: 0; }
.cat-table th[scope="row"] { width: auto; margin-bottom: 8px; font-size: 1.02rem; }
.cat-table td { margin-top: 6px; color: var(--fg-muted); }
.cat-table td:last-child, .cat-specs .cat-table td:last-child { min-width: 0; white-space: normal; color: var(--fg); }
.cat-table td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-copper-ink); }
}
.cat-what__intro .section-head { margin-bottom: var(--s-6); }
.cat-answer { padding-left: 20px; border-left: 2px solid var(--c-copper); font-size: 1.12rem; line-height: 1.6; color: var(--fg); }
.cat-what__detail { display: grid; gap: var(--s-7); }
.cat-what__detail .prose { font-size: 1.04rem; }
.cat-uses { padding: clamp(20px, 2vw, 30px); border: 1px solid var(--c-line); border-radius: var(--r-lg); background: rgb(255 255 255 / .6); }
.cat-uses .h-card { margin-bottom: 14px; }
.cat-xsec { margin: var(--s-7) 0 0; }
.cat-xsec__stack { display: grid; --xs-w: 48%; }
.cat-xsec__stack::before { 
content: ''; display: block; width: var(--xs-w); height: 84px; margin-bottom: -1px;
background: linear-gradient(180deg, rgb(255 255 255 / .0), rgb(255 255 255 / .25)), var(--tex) center / cover, var(--tone);
transform-origin: 50% 100%; transform: perspective(420px) rotateX(58deg);
box-shadow: inset 0 0 0 1px rgb(255 255 255 / .25);
}
.cat-xsec__row { display: grid; grid-template-columns: var(--xs-w) minmax(0, 1fr); align-items: center; gap: 22px; min-height: calc(var(--h) * 1.5); }
.cat-xsec__layer { align-self: stretch; min-height: calc(var(--h) * 1.5); background: #d4cec4; }
.cat-xsec__row:last-child .cat-xsec__layer { border-radius: 0 0 4px 4px; box-shadow: 0 14px 22px -14px rgb(21 25 27 / .5); }
.cat-xsec__layer--polish { background: linear-gradient(180deg, rgb(255 255 255 / .85), rgb(255 255 255 / .2) 70%), var(--tex) center / cover, var(--tone); }
.cat-xsec__layer--glaze { background: var(--tex) center / 260% auto, var(--tone); box-shadow: inset 0 -1px 0 rgb(0 0 0 / .1); }
.cat-xsec__layer--charge { background: linear-gradient(180deg, rgb(255 255 255 / .2), rgb(0 0 0 / .05)), var(--tex) center / 400% auto, var(--tone); }
.cat-xsec__layer--dense { background: radial-gradient(circle, rgb(0 0 0 / .07) 1px, transparent 1.6px) 0 0 / 6px 6px, linear-gradient(180deg, #d6d0c6, #c3bcb0); }
.cat-xsec__layer--porous { background: radial-gradient(circle, rgb(90 50 20 / .16) 1.6px, transparent 2.4px) 0 0 / 9px 8px, radial-gradient(circle, rgb(90 50 20 / .1) 1px, transparent 1.6px) 4px 4px / 7px 7px, linear-gradient(180deg, #e8cfb2, #d9b893); }
.cat-xsec__layer--texture { background: repeating-linear-gradient(90deg, rgb(0 0 0 / .14) 0 2px, transparent 2px 7px), var(--tex) center / cover, var(--tone); }
.cat-xsec__label { position: relative; padding-left: 30px; font-size: .86rem; line-height: 1.35; color: var(--fg-muted); }
.cat-xsec__label::before { content: ''; position: absolute; left: 0; top: 50%; width: 22px; height: 1px; background: var(--c-copper); }
.cat-range__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--s-5); }
.cat-range__panel { display: grid; grid-template-rows: auto 1fr auto; gap: 22px; padding: clamp(22px, 2.4vw, 36px); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid rgb(31 36 39 / .07); box-shadow: var(--shadow-1); }
.cat-range__h { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); }
.cat-range__h .muted { margin-left: 6px; letter-spacing: .04em; text-transform: none; font-weight: 600; }
.cat-formats { display: flex; flex-wrap: wrap; align-items: flex-end; align-content: flex-end; gap: 24px 30px; min-height: 196px; padding: 8px 0 4px; }
.cat-format { display: grid; justify-items: start; gap: 10px; }
.cat-format__tile {
width: var(--w); height: var(--h); border-radius: 2px; background: var(--tex) center / cover, var(--tone);
box-shadow: 1px 1px 0 #e3dccf, 2px 2px 0 #d6cdbe, 3px 3px 0 #c8beac, 8px 12px 18px -8px rgb(21 25 27 / .35);
transition: transform var(--t-std) var(--ease-out);
}
.cat-format:hover .cat-format__tile { transform: translateY(-4px); }
.cat-format__label { font-size: .86rem; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cat-format__label small { margin-left: 4px; font-size: .74rem; font-weight: 600; color: var(--fg-muted); }
.cat-finishes { display: grid; }
.cat-finish { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; align-items: center; padding: 12px 0; border-top: 1px solid var(--c-line); }
.cat-finish:first-child { border-top: 0; padding-top: 0; }
.cat-finish > span:last-child { display: grid; gap: 2px; font-size: .9rem; }
.cat-finish__swatch { position: relative; width: 56px; aspect-ratio: 1; overflow: hidden; border-radius: 4px; background: var(--tex) center / 220% auto, var(--tone); box-shadow: 1px 1px 0 #d6cdbe, 2px 2px 0 #c8beac; }
.cat-finish__swatch::after {
content: ''; position: absolute; inset: 0;
background:
linear-gradient(118deg, transparent 34%, rgb(255 255 255 / calc(var(--gloss) * .9)) 47%, transparent calc(52% + var(--gloss) * 8%)),
linear-gradient(135deg, rgb(255 255 255 / calc(var(--gloss) * .6)) 0%, rgb(255 255 255 / 0) calc(18% + var(--gloss) * 30%)),
rgb(240 236 228 / calc((1 - var(--gloss)) * .28));
}
.cat-steps { display: grid; counter-reset: none; }
.cat-steps li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 18px 0; border-top: 1px solid rgb(31 36 39 / .14); font-size: 1.02rem; color: var(--fg-muted); }
.cat-steps li:last-child { border-bottom: 1px solid rgb(31 36 39 / .14); }
.cat-steps li strong { color: var(--fg); }
.cat-steps__n { font-family: var(--f-display); font-size: 1.7rem; line-height: 1; color: var(--c-copper-ink); font-variant-numeric: lining-nums tabular-nums; }
.cat-rfq .btn-row { margin-top: calc(var(--s-6) * -1); gap: 14px 24px; }
.cat-related__grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: start; }
.cat-related__cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); }
.cat-related__guides .h-card { margin-bottom: 12px; }
.cat-guides { display: grid; }
.cat-guide { display: grid; grid-template-columns: 64px minmax(0, 1fr) 20px; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--c-line); color: inherit; text-decoration: none; }
.cat-guides li:last-child .cat-guide { border-bottom: 1px solid var(--c-line); }
.cat-guide__tex { width: 64px; aspect-ratio: 1; border-radius: 4px; background: var(--tex) center / cover, var(--tone); box-shadow: 1px 1px 0 #d6cdbe, 2px 2px 0 #c8beac; transition: transform var(--t-std) var(--ease-out); }
.cat-guide__body { display: grid; gap: 3px; font-size: .9rem; line-height: 1.4; }
.cat-guide__body strong { font-size: 1rem; font-weight: 650; line-height: 1.3; }
.cat-guide__kicker { font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); }
.cat-guide__arrow { color: var(--accent); transition: transform var(--t-fast) var(--ease-out); }
.cat-guide:hover strong { color: var(--accent); }
.cat-guide:hover .cat-guide__arrow { transform: translate(2px, -2px); }
.cat-guide:hover .cat-guide__tex { transform: rotate(-4deg) scale(1.04); }
@media (max-width: 1000px) { .cat-related__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
.cat-range__grid { grid-template-columns: minmax(0, 1fr); }
.cat-xsec__stack { --xs-w: 44%; }
.cat-xsec__row { gap: 14px; }
}
@media (max-width: 640px) {
.cat-related__cats { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.cat-related__cats .cat-card__tilt { flex-direction: row; }
.cat-related__cats .cat-card__media { flex: none; width: 112px; aspect-ratio: auto; }
.cat-related__cats .cat-card__flags { display: none; }
.cat-related__cats .cat-card__body { padding: 14px 16px; }
.cat-related__cats .cat-card__name { font-size: 1.3rem; }
.cat-steps li { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; font-size: .98rem; }
.cat-formats { gap: 18px 22px; }
.cat-hero-aside .factbox dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
.no-js .pe__filters, .no-js .pe__bar-tools, .no-js .pe__quick, .no-js .pe__fab-wrap, .no-js .pe__active,
.pe.module-failed .pe__filters, .pe.module-failed .pe__bar-tools, .pe.module-failed .pe__quick, .pe.module-failed .pe__fab-wrap { display: none !important; }
.no-js .pe--full .pe__layout, .pe--full.module-failed .pe__layout { grid-template-columns: minmax(0, 1fr); }
@media (prefers-reduced-motion: reduce) {
.pe-card__media, .pe-card__media img, .pe-card__sheen, .pe__chip, .cat-card__media img, .cat-card__tilt,
.cat-format__tile, .cat-guide__tex, .pe-dialog__close, .pe-dialog__sheen { transition: none !important; }
.pe-card:hover .pe-card__media img { --pe-z: var(--zoom, 1); }
.pe-card:hover .pe-card__sheen { opacity: 0; }
.cat-card:hover .cat-card__media img { transform: scale(1.02); }
.pe-dialog__close:hover { transform: none; }
.cat-card__tilt { transform: none; }
}
@media print {
.pe__filters, .pe__bar-tools, .pe__quick, .pe__fab-wrap, .pe__active, .pe-card__cta { display: none !important; }
.pe--full .pe__layout { grid-template-columns: minmax(0, 1fr); }
}
.pe-card--dark .pe-tier--signature { box-shadow: inset 0 0 0 1px rgb(231 211 191 / .35); }
.page-collection--large-format-tiles .page-hero .display-1 em { white-space: nowrap; }
.pg-dodont__col ul, .pg-model__node ul, .pg-faqnav ul, .pg-cast ul, .pg-toc ol, .pg-ctr__legend ol, .pg-solnav ul { list-style: none; margin: 0; padding: 0; }
.pg-kicker { display: inline-flex; align-items: center; gap: 12px; }
.pg-kicker__n {
display: inline-grid; place-items: center; min-width: 34px; height: 24px; padding: 0 8px; border-radius: 999px;
border: 1px solid currentColor; font-size: .72rem; letter-spacing: .08em; font-variant-numeric: tabular-nums;
}
.pg-head .lead { max-width: 62ch; }
.pg-role {
display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: 999px;
font-size: .74rem; font-weight: 700; letter-spacing: .02em; white-space: nowrap;
background: var(--c-paper-2); color: var(--c-slate-2); border: 1px solid var(--c-line);
}
.pg-role::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.pg-role--you { background: #eef3f1; color: var(--c-forest); border-color: rgb(36 74 66 / .22); }
.pg-role--thorson { background: #f6ede4; color: var(--c-copper-ink); border-color: rgb(138 90 52 / .25); }
.pg-role--partner { background: #eceef0; color: #3c4449; border-color: #d3d7da; }
.pg-role--inspection { background: var(--c-white); color: var(--c-slate-2); border-style: dashed; }
.pg-pains { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-5); }
.pg-pain { position: relative; padding: var(--s-6) var(--s-5) var(--s-5); border-top: 2px solid var(--c-graphite); }
.pg-pain__icon { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--c-paper-2); color: var(--c-copper-ink); margin-bottom: var(--s-5); }
.pg-pain h3 { margin-bottom: var(--s-3); }
.pg-pain p { color: var(--fg-muted); font-size: .97rem; }
@media (max-width: 1024px) { .pg-pains { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .pg-pains { grid-template-columns: minmax(0, 1fr); gap: 0; } .pg-pain { padding: var(--s-5) 0; display: grid; grid-template-columns: 44px 1fr; column-gap: var(--s-4); } .pg-pain__icon { grid-row: span 2; margin: 0; } }
.pg-caps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--c-line); border: 1px solid var(--c-line); border-radius: var(--r-lg); overflow: hidden; }
.pg-caps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pg-cap { background: var(--bg); padding: clamp(1.5rem, 1rem + 1.4vw, 2.4rem); transition: background var(--t-std); }
.section--paper2 .pg-cap { background: var(--c-paper-2); }
.pg-cap:hover { background: var(--c-white); }
.pg-cap h3 { margin-bottom: var(--s-2); }
.pg-cap .card__icon { margin-bottom: var(--s-5); }
@media (max-width: 1024px) { .pg-caps, .pg-caps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
.pg-caps, .pg-caps--4 { grid-template-columns: minmax(0, 1fr); }
.pg-cap { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--s-4); padding: var(--s-5); }
.pg-cap .card__icon { grid-row: span 2; margin-bottom: 0; }
}
.pg-sendsplit { align-items: center; }
.pg-sendsplit .section-head { margin-bottom: var(--s-6); }
.pg-sendsplit__more { margin-top: var(--s-4); }
.pg-sendsplit__more a, .pg-include__more a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.pg-rfq {
position: relative; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg);
box-shadow: var(--shadow-2); padding: clamp(1.4rem, 1rem + 1.5vw, 2.4rem);
background-image: repeating-linear-gradient(0deg, transparent 0 47px, rgb(31 36 39 / .035) 47px 48px);
}
.pg-rfq::before { content: ''; position: absolute; inset: 10px -10px -10px 10px; z-index: -1; border-radius: var(--r-lg); background: var(--c-stone); opacity: .5; }
.pg-rfq__head { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); padding-bottom: var(--s-4); margin-bottom: var(--s-3); border-bottom: 2px solid var(--c-graphite); }
.pg-rfq__tag { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 800; letter-spacing: .14em; color: var(--c-copper-ink); }
.pg-rfq__title { font-family: var(--f-display); font-size: 1.5rem; line-height: 1.1; text-align: right; }
.pg-rfq__rows li { display: grid; grid-template-columns: 30px minmax(8rem, 11rem) 1fr; gap: var(--s-3); padding: 12px 0; border-bottom: 1px dashed var(--c-line); font-size: .95rem; align-items: baseline; }
.pg-rfq__n { font-size: .72rem; font-weight: 700; color: var(--c-slate); font-variant-numeric: tabular-nums; }
.pg-rfq__k { font-weight: 700; }
.pg-rfq__v { color: var(--fg-muted); }
.pg-rfq__note { margin-top: var(--s-4); font-size: .88rem; color: var(--fg-muted); font-style: italic; }
@media (max-width: 560px) { .pg-rfq__rows li { grid-template-columns: 26px 1fr; row-gap: 2px; } .pg-rfq__v { grid-column: 2; } .pg-rfq__title { font-size: 1.2rem; } }
.pg-reassure { display: flex; gap: 10px; align-items: flex-start; margin-top: var(--s-5); font-size: .95rem; color: var(--fg-muted); }
.pg-reassure .icon { flex: none; margin-top: 3px; color: var(--accent); }
.on-dark .pg-reassure .icon { color: var(--c-copper-soft); }
.pg-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-5); counter-reset: s; }
.pg-steps__item { position: relative; padding-top: var(--s-6); }
.pg-steps__item::before { content: ''; position: absolute; top: 15px; left: 44px; right: calc(var(--s-5) * -1); height: 1px; background: var(--c-graphite); opacity: .25; }
.pg-steps__item:last-child::before { display: none; }
.pg-steps__n { position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c-graphite); color: var(--c-paper); font-size: .74rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.pg-steps__item h3 { margin: var(--s-4) 0 var(--s-2); }
@media (max-width: 1100px) { .pg-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pg-steps__item:nth-child(3)::before { display: none; } }
@media (max-width: 680px) {
.pg-steps { grid-template-columns: minmax(0, 1fr); gap: 0; }
.pg-steps__item { padding: 0 0 var(--s-5) 52px; }
.pg-steps__item::before { display: block !important; top: 36px; bottom: 4px; left: 15px; right: auto; width: 1px; height: auto; }
.pg-steps__item:last-child::before { display: none !important; }
.pg-steps__item h3 { margin-top: 4px; }
}
.pg-confirm { border: 1px solid var(--c-line); border-left: 4px solid var(--c-copper); border-radius: var(--r-lg); background: var(--c-white); padding: clamp(1.5rem, 1rem + 2vw, 2.75rem); }
.pg-confirm__head { display: grid; grid-template-columns: 48px 1fr; gap: var(--s-4); align-items: start; margin-bottom: var(--s-5); }
.pg-confirm__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: #f6ede4; color: var(--c-copper-ink); }
.pg-confirm__head .display-3 { margin-bottom: var(--s-2); }
.pg-confirm__list { display: grid; gap: 2px; }
.pg-confirm__list li { display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--c-line); }
.pg-confirm__list .icon { color: var(--c-copper-ink); margin-top: 3px; }
@media (max-width: 520px) { .pg-confirm__head { grid-template-columns: minmax(0, 1fr); } }
.pg-faqsplit { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 1rem + 4vw, 6rem); align-items: start; }
.pg-faqsplit__aside { display: grid; gap: var(--s-5); position: sticky; top: calc(var(--header-h) + 24px); }
.pg-faqsplit__aside .display-2 { max-width: 12ch; }
@media (max-width: 900px) { .pg-faqsplit { grid-template-columns: minmax(0, 1fr); } .pg-faqsplit__aside { position: static; } }
.pg-expect__list { display: grid; gap: var(--s-4); }
.pg-expect__list li { display: grid; grid-template-columns: 40px 1fr; gap: var(--s-4); align-items: start; padding: var(--s-5); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-md); }
.pg-expect__n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--c-graphite); font-family: var(--f-display); font-size: 1.25rem; }
.pg-expect__list h3 { margin-bottom: 4px; }
.pg-expect__note { display: flex; gap: 10px; align-items: flex-start; margin-top: var(--s-5); font-size: .92rem; color: var(--fg-muted); }
.pg-expect__note .icon { flex: none; margin-top: 2px; color: var(--c-copper-ink); }
.pg-expect--compact .pg-expect__list { gap: 0; }
.pg-expect--compact .pg-expect__list li { padding: 12px 0; background: none; border: 0; border-top: 1px solid var(--c-line); grid-template-columns: 30px 1fr; gap: 12px; }
.pg-expect--compact .pg-expect__n { width: 30px; height: 30px; font-size: 1rem; }
.pg-expect--compact h3 { font-size: .98rem; }
.pg-expect--compact p { font-size: .88rem; }
.pg-expect-sec { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 1rem + 4vw, 6rem); align-items: start; }
.pg-expect-sec .section-head { margin-bottom: var(--s-6); }
@media (max-width: 900px) { .pg-expect-sec { grid-template-columns: minmax(0, 1fr); } }
.pg-solnav { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--s-6); align-items: center; }
.pg-solnav__title { font-family: var(--f-display); font-size: var(--fs-d3); line-height: 1.1; }
.pg-solnav ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); }
.pg-solnav a {
display: grid; grid-template-columns: 20px 1fr 18px; gap: 12px; align-items: center; height: 100%;
padding: var(--s-5); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-white); text-decoration: none; color: inherit;
transition: border-color var(--t-fast), transform var(--t-std) var(--ease-out), box-shadow var(--t-std) var(--ease-out);
}
.pg-solnav a:hover { border-color: var(--c-graphite); transform: translateY(-2px); box-shadow: var(--shadow-1); }
.pg-solnav a > .icon:first-child { color: var(--accent); }
.pg-solnav strong { display: block; font-size: .98rem; }
.pg-solnav small { display: block; color: var(--fg-muted); font-size: .84rem; }
.pg-solnav__arrow { transition: transform var(--t-fast); }
.pg-solnav a:hover .pg-solnav__arrow { transform: translateX(3px); }
@media (max-width: 1024px) { .pg-solnav { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) { .pg-solnav ul { grid-template-columns: minmax(0, 1fr); } }
.pg-pending { display: flex; gap: 12px; align-items: flex-start; padding: var(--s-4) var(--s-5); margin-bottom: var(--s-6); border: 1px dashed #c99a2e; border-radius: var(--r-md); background: #fffaf0; color: #5b4300; font-size: .95rem; }
.pg-pending .icon { flex: none; margin-top: 3px; }
.pg-pending a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.page-hero--dark .factbox { background: rgb(21 25 27 / .55); border-color: rgb(255 255 255 / .14); }
.page-hero--dark .factbox__title { color: var(--c-copper-soft); }
.page-hero--dark .factbox dl > div { border-top-color: rgb(255 255 255 / .12); }
.page-hero--dark .factbox dt { color: var(--c-on-dark-2); }
.page-hero--dark .breadcrumbs a, .page-hero--dark .breadcrumbs span { color: var(--c-on-dark-2); }
.page-hero--dark .breadcrumbs [aria-current] { color: var(--c-on-dark); }
.pg-ctr__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
.pg-ctr__figure { margin: 0; }
.pg-ctr__svg { display: block; width: 100%; height: auto; color: var(--c-on-dark); overflow: visible; }
.pg-ctr__shell { fill: rgb(255 255 255 / .03); stroke: rgb(255 255 255 / .5); stroke-width: 1.5; }
.pg-ctr__void { stroke: rgb(231 211 191 / .35); stroke-dasharray: 4 5; stroke-width: 1; }
.pg-ctr__voidline { stroke: var(--c-copper-soft); stroke-width: 1; stroke-dasharray: 2 4; opacity: .7; }
.pg-ctr__floor { stroke: rgb(255 255 255 / .55); stroke-width: 2; }
.pg-ctr__door path { stroke: rgb(255 255 255 / .5); stroke-width: 1.5; fill: none; }
.pg-ctr__dim path { stroke: rgb(255 255 255 / .35); fill: none; }
.pg-ctr__load { stroke: rgb(21 25 27 / .5); stroke-width: 1; }
.pg-ctr__pallet--a .pg-ctr__load { fill: #c9b49c; }
.pg-ctr__pallet--b .pg-ctr__load { fill: #9fb1a9; }
.pg-ctr__pallet--c .pg-ctr__load { fill: #d9d3c8; }
.pg-ctr__tiers path { stroke: rgb(21 25 27 / .28); stroke-width: 1; fill: none; }
.pg-ctr__corner { stroke: var(--c-ink); stroke-width: 2; fill: none; opacity: .55; }
.pg-ctr__base { fill: #8a6a4c; }
.pg-ctr__feet { fill: #6e5440; }
.pg-ctr__mk circle { fill: var(--c-copper); stroke: var(--c-ink); stroke-width: 3; }
.pg-ctr__mk text { fill: var(--c-ink); font: 700 13px var(--f-sans); text-anchor: middle; }
.js .pg-ctr__figure:not(.is-in) .pg-ctr__pallet { opacity: 0; transform: translateY(-14px); }
.js .pg-ctr__figure.is-in .pg-ctr__pallet { transition: opacity 420ms var(--ease-out), transform 520ms var(--ease-out); transition-delay: calc(var(--i) * 70ms + 200ms); }
.pg-ctr__legend { margin-top: var(--s-5); }
.pg-ctr__legend ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4) var(--s-6); }
.pg-ctr__legend li { display: grid; grid-template-columns: 26px 1fr; gap: 10px; font-size: .93rem; color: var(--c-on-dark-2); }
.pg-ctr__legend strong { color: var(--c-on-dark); }
.pg-ctr__ln { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--c-copper); color: var(--c-ink); font-size: .74rem; font-weight: 800; }
.pg-ctr__note { display: flex; gap: 8px; align-items: flex-start; margin-top: var(--s-5); font-size: .84rem; color: var(--c-on-dark-2); }
.pg-ctr__note .icon { flex: none; margin-top: 2px; }
.pg-ctr__check { position: sticky; top: calc(var(--header-h) + 24px); padding: clamp(1.4rem, 1rem + 1.5vw, 2.2rem); border-radius: var(--r-lg); background: var(--c-paper); color: var(--c-graphite); box-shadow: var(--shadow-3); }
.pg-ctr__check .display-3 { color: var(--c-graphite); margin: var(--s-2) 0 var(--s-5); }
.pg-ctr__checktag { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c-copper-ink); }
.pg-ctr__list { display: grid; margin-bottom: var(--s-5); }
.pg-ctr__list li { display: grid; grid-template-columns: 24px 1fr; gap: 12px; padding: 11px 0; border-top: 1px solid var(--c-line); font-size: .94rem; }
.pg-ctr__box { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid var(--c-forest); color: var(--c-forest); margin-top: 1px; }
.pg-ctr__check .link-arrow { color: var(--accent); }
@media (max-width: 1024px) { .pg-ctr__grid { grid-template-columns: minmax(0, 1fr); } .pg-ctr__check { position: static; } }
@media (max-width: 600px) { .pg-ctr__legend ol { grid-template-columns: minmax(0, 1fr); } }
.pg-matrix-sec__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
.pg-matrix-sec__grid > .section-head { position: sticky; top: calc(var(--header-h) + 24px); margin-bottom: 0; }
.pg-matrix-sec__keys { display: grid; gap: 10px; font-size: .94rem; color: var(--fg-muted); }
.pg-matrix-sec__keys li { display: grid; grid-template-columns: 14px 1fr; gap: 10px; align-items: start; }
.pg-matrix-sec__keys strong { color: var(--fg); }
.pg-matrix-sec__dot { width: 12px; height: 12px; border-radius: 3px; margin-top: 6px; }
.pg-matrix-sec__dot--essential { background: var(--c-forest); }
.pg-matrix-sec__dot--signature { background: var(--c-copper); }
@media (max-width: 1024px) { .pg-matrix-sec__grid { grid-template-columns: minmax(0, 1fr); } .pg-matrix-sec__grid > .section-head { position: static; } }
.pg-matrix { background: var(--c-white); border-radius: var(--r-lg); box-shadow: var(--shadow-2); padding: clamp(1rem, .6rem + 1.4vw, 1.8rem); }
.pg-matrix__toggle { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--c-paper-2); border: 1px solid var(--c-line); margin-bottom: var(--s-5); }
.pg-matrix__toggle label { position: relative; cursor: pointer; }
.pg-matrix__toggle input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.pg-matrix__toggle span { display: inline-flex; align-items: center; min-height: 38px; padding: 0 16px; border-radius: 999px; font-size: .86rem; font-weight: 700; color: var(--fg-muted); transition: background var(--t-fast), color var(--t-fast); }
.pg-matrix__toggle input:checked + span { background: var(--c-graphite); color: var(--c-paper); }
.pg-matrix__toggle input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 2px; }
.pg-matrix__wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pg-matrix__table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 560px; }
.pg-matrix__table th, .pg-matrix__table td { text-align: left; vertical-align: middle; padding: 12px; border-bottom: 1px solid var(--c-line); }
.pg-matrix__table thead th { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-muted); vertical-align: bottom; }
.pg-matrix__th { border-top: 4px solid; }
.pg-matrix__th--essential { border-top-color: var(--c-forest) !important; }
.pg-matrix__th--signature { border-top-color: var(--c-copper) !important; }
.pg-matrix__tier { display: block; font-family: var(--f-display); font-size: 1.5rem; text-transform: none; letter-spacing: 0; color: var(--fg); font-weight: 400; }
.pg-matrix__sub { display: block; text-transform: none; letter-spacing: 0; font-weight: 500; font-size: .82rem; }
.pg-matrix__table tbody th { width: 30%; }
.pg-matrix__table tbody th strong { display: block; font-size: .95rem; }
.pg-matrix__table tbody th span { display: block; font-size: .82rem; color: var(--fg-muted); font-weight: 500; }
.pg-matrix__cell { transition: opacity var(--t-std), background var(--t-std); }
.pg-matrix__cell > * { vertical-align: middle; }
.pg-matrix__swatch { display: inline-block; width: 52px; height: 52px; border-radius: 8px; margin-right: 12px; background: var(--c-limestone) var(--tex) center/cover; box-shadow: inset 0 0 0 1px rgb(0 0 0 / .08); float: left; }
.pg-matrix__cell--essential .pg-matrix__swatch { filter: saturate(.85); }
.pg-matrix__txt { display: block; overflow: hidden; }
.pg-matrix__txt strong { display: block; font-size: .93rem; }
.pg-matrix__txt span { display: block; font-size: .82rem; color: var(--fg-muted); }
.pg-matrix:has(input[value="essential"]:checked) .pg-matrix__cell--signature,
.pg-matrix:has(input[value="essential"]:checked) .pg-matrix__th--signature,
.pg-matrix:has(input[value="signature"]:checked) .pg-matrix__cell--essential,
.pg-matrix:has(input[value="signature"]:checked) .pg-matrix__th--essential { opacity: .28; }
.pg-matrix:has(input[value="essential"]:checked) .pg-matrix__cell--essential { background: rgb(36 74 66 / .05); }
.pg-matrix:has(input[value="signature"]:checked) .pg-matrix__cell--signature { background: rgb(183 133 91 / .08); }
@media (max-width: 600px) {
.pg-matrix__table { min-width: 0; }
.pg-matrix__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pg-matrix__table tbody { display: block; }
.pg-matrix__table tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--c-line); }
.pg-matrix__table tbody tr:last-child { border-bottom: 0; }
.pg-matrix__table tbody th { grid-column: 1 / -1; width: auto; padding: 0; border: 0; }
.pg-matrix__table tbody th strong, .pg-matrix__table tbody th span { display: inline; }
.pg-matrix__table tbody th span::before { content: ' · '; }
.pg-matrix__table td { display: block; padding: 10px; border: 0; border-radius: 10px; background: var(--c-paper); border-top: 3px solid var(--c-forest); }
.pg-matrix__table td.pg-matrix__cell--signature { border-top-color: var(--c-copper); }
.pg-matrix__cell::before { content: 'Essential'; display: block; margin-bottom: 8px; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-forest); }
.pg-matrix__cell--signature::before { content: 'Signature'; color: var(--c-copper-ink); }
.pg-matrix__swatch { float: none; display: block; width: 100%; height: 48px; margin: 0 0 8px; }
.pg-matrix__toggle { display: flex; width: 100%; }
.pg-matrix__toggle label { flex: 1; }
.pg-matrix__toggle span { justify-content: center; width: 100%; padding: 0 8px; }
}
.pg-pl { overflow: hidden; }
.pg-pl__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 1rem + 4vw, 6rem); align-items: center; }
.pg-pl__visual { display: grid; justify-items: center; gap: var(--s-5); }
.pg-pl__steps { display: grid; counter-reset: pl; }
.pg-pl__steps li { display: grid; grid-template-columns: 44px 1fr; gap: var(--s-4); padding: var(--s-4) 0; border-top: 1px solid rgb(255 255 255 / .12); }
.pg-pl__steps li:last-child { border-bottom: 1px solid rgb(255 255 255 / .12); }
.pg-pl__n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--c-copper-soft); color: var(--c-copper-soft); font-family: var(--f-display); font-size: 1.3rem; }
.pg-pl__steps h3 { color: var(--c-on-dark); margin-bottom: 2px; }
.pg-pl__steps p { color: var(--c-on-dark-2); font-size: .95rem; }
@media (max-width: 960px) { .pg-pl__grid { grid-template-columns: minmax(0, 1fr); } .pg-pl__visual { order: 2; } }
.pg-carton { --w: 300px; --h: 200px; --d: 120px; width: min(100%, 420px); aspect-ratio: 1.25; display: grid; place-items: center; perspective: 1100px; }
.pg-carton__scene { position: relative; width: var(--w); height: var(--h); transform-style: preserve-3d; }
.pg-carton__box { position: absolute; inset: 0; transform-style: preserve-3d; transform: rotateX(-14deg) rotateY(-32deg); transition: transform 900ms var(--ease-out); }
.pg-pl__visual:hover .pg-carton__box { transform: rotateX(-12deg) rotateY(-22deg); }
.pg-carton__face { position: absolute; display: grid; backface-visibility: hidden; background: #c9a77f; background-image: linear-gradient(90deg, rgb(0 0 0 / .03) 50%, transparent 50%), linear-gradient(160deg, #d4b28b, #bf9a70); background-size: 6px 100%, 100% 100%; box-shadow: inset 0 0 0 1px rgb(60 40 20 / .25); color: #3a2a1a; }
.pg-carton__face--front { width: var(--w); height: var(--h); transform: translateZ(calc(var(--d) / 2)); align-content: center; justify-items: center; gap: 10px; padding: 18px; }
.pg-carton__face--side { width: var(--d); height: var(--h); left: calc(50% - var(--d) / 2); transform: rotateY(90deg) translateZ(calc(var(--w) / 2)); padding: 12px 10px; align-content: space-between; filter: brightness(.9); }
.pg-carton__face--top { width: var(--w); height: var(--d); top: calc(50% - var(--d) / 2); transform: rotateX(90deg) translateZ(calc(var(--h) / 2)); filter: brightness(1.08); place-items: center; }
.pg-carton__tape { width: 100%; height: 22%; background: rgb(240 230 210 / .55); box-shadow: 0 0 0 1px rgb(60 40 20 / .12); }
.pg-carton__brand {
display: grid; place-items: center; width: 78%; min-height: 64px; border: 2px dashed rgb(58 42 26 / .55); border-radius: 6px;
font-family: var(--f-display); font-size: 1.7rem; font-style: italic; letter-spacing: .01em; color: #2b1f12;
}
.pg-carton__line { font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .8; }
.pg-carton__tiles { display: flex; gap: 4px; }
.pg-carton__tiles i { width: 16px; height: 16px; border: 1.5px solid rgb(58 42 26 / .6); border-radius: 2px; }
.pg-carton__tiles i:nth-child(3) { transform: translateY(-4px); background: rgb(58 42 26 / .15); }
.pg-carton__marks { display: grid; gap: 4px; }
.pg-carton__marks div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; }
.pg-carton__marks dt { font-size: .48rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pg-carton__marks dd { height: 9px; border: 1px solid rgb(58 42 26 / .45); background: rgb(255 255 255 / .25); border-radius: 2px; }
.pg-carton__origin { font-size: .5rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pg-carton__shadow { position: absolute; left: 6%; right: -6%; bottom: -34px; height: 30px; border-radius: 50%; background: radial-gradient(closest-side, rgb(0 0 0 / .55), transparent); transform: translateZ(-80px); filter: blur(4px); }
@media (max-width: 520px) { .pg-carton { --w: 220px; --h: 150px; --d: 90px; } .pg-carton__brand { font-size: 1.3rem; min-height: 48px; } .pg-carton__marks dt { font-size: .4rem; } .pg-carton__marks dd { height: 6px; } }
@media (prefers-reduced-motion: reduce) { .pg-carton__box { transition: none; } .pg-pl__visual:hover .pg-carton__box { transform: rotateX(-14deg) rotateY(-32deg); } }
.pg-cast { border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--s-6); background: rgb(255 255 255 / .75); backdrop-filter: blur(8px); }
.pg-cast ul { display: grid; }
.pg-cast li { display: grid; gap: 6px; padding: 12px 0; border-top: 1px solid var(--c-line); font-size: .9rem; color: var(--fg-muted); }
.pg-cast .pg-role { justify-self: start; }
.pg-flow { position: relative; max-width: 980px; margin-inline: auto; }
.pg-flow__rail { position: absolute; left: 27px; top: var(--rail-top, 28px); height: var(--rail-h, calc(100% - 56px)); width: 2px; background: var(--c-line); border-radius: 2px; overflow: hidden; }
.pg-flow__rail > i { position: absolute; inset: 0; background: linear-gradient(var(--c-forest), var(--c-copper)); transform-origin: top; transform: scaleY(1); }
.pg-flow.is-armed .pg-flow__rail > i { transform: scaleY(0); }
.pg-flow__list { display: grid; gap: var(--s-5); }
.pg-flow__step { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: clamp(1rem, .5rem + 2vw, 2.5rem); align-items: start; }
.pg-flow__node {
position: relative; z-index: 1; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%;
background: var(--bg); border: 2px solid var(--c-line); font-family: var(--f-display); font-size: 1.35rem; color: var(--fg-muted);
transition: background var(--t-std), border-color var(--t-std), color var(--t-std), transform var(--t-std) var(--ease-out);
}
.pg-flow:not(.is-armed) .pg-flow__node, .pg-flow__step.is-done .pg-flow__node { border-color: var(--c-forest); color: var(--c-forest); }
.pg-flow__step.is-active .pg-flow__node { background: var(--c-graphite); border-color: var(--c-graphite); color: var(--c-paper); transform: scale(1.06); }
.pg-flow__card { background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: clamp(1.3rem, 1rem + 1.2vw, 2.2rem); transition: box-shadow var(--t-std), border-color var(--t-std); }
.pg-flow__step.is-active .pg-flow__card { box-shadow: var(--shadow-2); border-color: transparent; }
.pg-flow__head { display: grid; gap: var(--s-2); margin-bottom: var(--s-4); }
.pg-flow__n { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-copper-ink); }
.pg-flow__roles { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.pg-flow__text { color: var(--fg-muted); max-width: 66ch; }
.pg-flow__meta { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-4); margin-top: var(--s-5); }
.pg-flow__meta > div { padding: var(--s-4); border-radius: var(--r-md); background: var(--c-paper-2); font-size: .92rem; }
.pg-flow__meta .pg-flow__chk { background: #faf4ee; }
.pg-flow__meta dt { display: flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; color: var(--c-forest); }
.pg-flow__meta .pg-flow__chk dt { color: var(--c-copper-ink); }
@media (max-width: 680px) {
.pg-flow__step { grid-template-columns: 40px 1fr; gap: 12px; }
.pg-flow__node { width: 40px; height: 40px; font-size: 1.05rem; }
.pg-flow__rail { left: 19px; }
.pg-flow__meta { grid-template-columns: minmax(0, 1fr); }
}
.pg-pricing { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
.pg-factors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-5) var(--s-6); }
.pg-factors li { display: grid; grid-template-columns: 40px 1fr; gap: var(--s-4); align-items: start; padding-top: var(--s-4); border-top: 1px solid var(--c-line); }
.pg-factors__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--c-white); color: var(--accent); border: 1px solid var(--c-line); }
.pg-factors h3 { margin-bottom: 4px; }
.pg-factors p { font-size: .93rem; }
.pg-pricing__doc { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: var(--s-4); }
.pg-qdoc { margin: 0; }
.pg-qdoc__sheet { position: relative; background: var(--c-white); border-radius: 6px; padding: var(--s-6) var(--s-5); box-shadow: var(--shadow-2); border-top: 6px solid var(--c-graphite); }
.pg-qdoc__sheet::after { content: ''; position: absolute; left: 0; right: 0; bottom: -10px; height: 10px; background: linear-gradient(-45deg, transparent 6px, var(--c-white) 0) 0 0 / 12px 10px, linear-gradient(45deg, transparent 6px, var(--c-white) 0) 0 0 / 12px 10px; filter: drop-shadow(0 3px 2px rgb(0 0 0 / .06)); }
.pg-qdoc__top { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-4); padding-bottom: var(--s-4); border-bottom: 1px solid var(--c-line); }
.pg-qdoc__label { font-family: var(--f-display); font-size: 1.6rem; }
.pg-qdoc__ref { font-size: .74rem; color: var(--fg-muted); font-variant-numeric: tabular-nums; }
.pg-qdoc__rows > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: var(--s-3); padding: 9px 0; border-bottom: 1px dashed var(--c-line); font-size: .88rem; }
.pg-qdoc__rows dt { font-weight: 700; }
.pg-qdoc__rows dd { color: var(--fg-muted); }
.pg-qdoc__cap { margin-top: var(--s-5); font-size: .82rem; color: var(--fg-muted); }
@media (max-width: 1024px) { .pg-pricing { grid-template-columns: minmax(0, 1fr); } .pg-pricing__doc { position: static; max-width: 560px; } }
@media (max-width: 600px) { .pg-factors { grid-template-columns: minmax(0, 1fr); } .pg-qdoc__rows > div { grid-template-columns: minmax(0, 1fr); gap: 2px; } }
.pg-inco { margin: 0 0 var(--s-7); }
.pg-inco__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
.pg-inco__grid { display: grid; grid-template-columns: 10rem repeat(5, minmax(0, 1fr)); min-width: 720px; row-gap: 10px; }
.pg-inco__corner { grid-column: 1; }
.pg-inco__stage { font-size: .78rem; font-weight: 700; color: var(--fg-muted); padding: 0 8px 10px; border-left: 1px dashed var(--c-line); display: flex; gap: 8px; align-items: flex-end; line-height: 1.25; }
.pg-inco__stage span { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--c-paper-2); border: 1px solid var(--c-line); font-size: .7rem; color: var(--fg); }
.pg-inco__code { display: grid; align-content: center; padding-right: var(--s-4); }
.pg-inco__code strong { font-size: 1.05rem; letter-spacing: .04em; }
.pg-inco__code small { font-size: .78rem; color: var(--fg-muted); }
.pg-inco__track {
position: relative; grid-column: 2 / -1; height: 44px; border-radius: 10px; background: repeating-linear-gradient(-45deg, var(--c-paper-2) 0 8px, var(--c-white) 8px 16px);
border: 1px solid var(--c-line); overflow: visible;
}
.pg-inco__bar { position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--cost) / 5 * 100%); border-radius: 9px 0 0 9px; background: linear-gradient(90deg, var(--c-forest), var(--c-forest-2)); transform-origin: left; }
.pg-inco__track[style*="--cost:5"] .pg-inco__bar { border-radius: 9px; }
.js .pg-inco:not(.is-in) .pg-inco__bar { transform: scaleX(0); }
.js .pg-inco.is-in .pg-inco__bar { transition: transform 900ms var(--ease-out) 200ms; }
.pg-inco__risk { position: absolute; top: 50%; left: calc(var(--risk) / 5 * 100%); width: 16px; height: 16px; margin: -8px 0 0 -8px; background: var(--c-copper); border: 2px solid var(--c-white); transform: rotate(45deg); box-shadow: 0 2px 6px rgb(0 0 0 / .2); }
.pg-inco__track[style*="--risk:0"] .pg-inco__risk { margin-left: 2px; }
.pg-inco__track[style*="--risk:5"] .pg-inco__risk { margin-left: -18px; }
.pg-inco__legend { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6); margin-top: var(--s-5); font-size: .86rem; color: var(--fg-muted); }
.pg-inco__legend span { display: inline-flex; align-items: center; gap: 8px; }
.pg-inco__k { display: inline-block; width: 22px; height: 12px; border-radius: 3px; }
.pg-inco__k--seller { background: var(--c-forest); }
.pg-inco__k--buyer { background: repeating-linear-gradient(-45deg, var(--c-paper-2) 0 4px, var(--c-white) 4px 8px); border: 1px solid var(--c-line); }
.pg-inco__k--risk { width: 12px; height: 12px; background: var(--c-copper); transform: rotate(45deg); border-radius: 1px; }
.pg-inco-table { margin-bottom: var(--s-6); }
.pg-inco__key { display: none; }
@media (max-width: 640px) {
.pg-inco__grid { grid-template-columns: 3.4rem repeat(5, minmax(0, 1fr)); min-width: 0; row-gap: 8px; }
.pg-inco__stage { font-size: 0; justify-content: center; padding: 0 0 8px; }
.pg-inco__stage span { font-size: .7rem; }
.pg-inco__code { padding-right: 8px; }
.pg-inco__code strong { font-size: .95rem; }
.pg-inco__code small { display: none; }
.pg-inco__track { height: 34px; }
.pg-inco__risk { width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; }
.pg-inco__track[style*="--risk:5"] .pg-inco__risk { margin-left: -15px; }
.pg-inco__key { display: grid; gap: 6px; flex-basis: 100%; margin: var(--s-2) 0 0; padding: var(--s-4) 0 0; border-top: 1px dashed var(--c-line); list-style: none; }
.pg-inco__key li { display: flex; align-items: center; gap: 10px; }
.pg-inco__key span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--c-paper-2); border: 1px solid var(--c-line); font-size: .7rem; font-weight: 700; color: var(--fg); }
}
@media (max-width: 640px) {
.pg-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pg-stack table, .pg-stack tbody { display: block; }
.pg-stack tr { display: grid; gap: 10px; padding: 16px; border-bottom: 1px solid var(--c-line); }
.pg-stack tr:last-child { border-bottom: 0; }
.pg-stack th, .pg-stack td { display: block; padding: 0; border: 0; background: none; white-space: normal !important; }
.pg-stack th[scope="row"] { font-size: 1rem; }
.pg-stack td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); }
}
.pg-inco-table th[scope="row"] { white-space: nowrap; }
.pg-inco-notes { display: grid; gap: var(--s-4); max-width: 860px; }
.pg-inco-notes p { display: flex; gap: 10px; align-items: flex-start; font-size: .95rem; color: var(--fg-muted); }
.pg-inco-notes p > .icon { flex: none; margin-top: 3px; color: var(--accent); }
.pg-inco-notes strong { color: var(--fg); }
.pg-inco-notes__review { flex-wrap: wrap; }
.pg-toc { border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: var(--s-6); background: rgb(255 255 255 / .75); backdrop-filter: blur(8px); }
.pg-toc ol { display: grid; counter-reset: toc; }
.pg-toc li { counter-increment: toc; border-top: 1px solid var(--c-line); }
.pg-toc a { display: flex; gap: 12px; align-items: center; padding: 11px 0; text-decoration: none; color: inherit; font-weight: 600; font-size: .95rem; transition: color var(--t-fast), padding var(--t-fast); }
.pg-toc a::before { content: counter(toc, decimal-leading-zero); font-size: .72rem; font-weight: 700; color: var(--c-copper-ink); font-variant-numeric: tabular-nums; }
.pg-toc a:hover { color: var(--accent); padding-left: 4px; }
.pg-checks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-5); }
.pg-check { display: flex; flex-direction: column; gap: var(--s-3); padding: var(--s-5); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.pg-check .card__icon { margin-bottom: var(--s-2); }
.pg-check p { font-size: .93rem; color: var(--fg-muted); }
.pg-check__ask { margin-top: auto; padding-top: var(--s-3); border-top: 1px dashed var(--c-line); color: var(--fg) !important; }
.pg-check__ask span { display: block; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); margin-bottom: 2px; }
@media (max-width: 1100px) { .pg-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .pg-checks { grid-template-columns: minmax(0, 1fr); } }
.pg-tech { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-5); }
.pg-tech__col { display: grid; gap: var(--s-4); align-content: start; padding: clamp(1.4rem, 1rem + 1.4vw, 2.4rem); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.pg-absorb { display: grid; gap: 4px; margin-top: var(--s-2); }
.pg-absorb__row { display: grid; grid-template-columns: 3.4rem 1fr 7.5rem; grid-template-areas: 'g bar v' '. d d'; gap: 4px 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--c-line); }
.pg-absorb__g { grid-area: g; font-weight: 800; font-size: .95rem; }
.pg-absorb__bar { grid-area: bar; height: 10px; border-radius: 999px; background: var(--c-paper-2); overflow: hidden; }
.pg-absorb__bar i { display: block; height: 100%; width: var(--w); border-radius: inherit; background: linear-gradient(90deg, var(--c-forest), var(--c-copper)); }
.pg-absorb__v { grid-area: v; font-size: .86rem; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.pg-absorb__d { grid-area: d; font-size: .86rem; color: var(--fg-muted); }
.pg-tech__foot { margin-top: -4px; }
.pg-slip { display: grid; }
.pg-slip > div { display: grid; grid-template-columns: 8.5rem 1fr; gap: var(--s-3); padding: 12px 0; border-top: 1px solid var(--c-line); font-size: .93rem; }
.pg-slip dt { font-weight: 700; }
.pg-slip dd { color: var(--fg-muted); }
@media (max-width: 900px) { .pg-tech { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .pg-slip > div { grid-template-columns: minmax(0, 1fr); gap: 2px; } .pg-absorb__row { grid-template-columns: 3rem 1fr; grid-template-areas: 'g v' 'bar bar' 'd d'; } .pg-absorb__v { text-align: left; } }
.pg-samples { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-4); }
.pg-samples__step { position: relative; display: grid; gap: var(--s-3); align-content: start; padding: var(--s-5); border-radius: var(--r-lg); background: var(--c-paper-2); }
.pg-samples__step .pg-role { justify-self: start; }
.pg-samples__n { font-family: var(--f-display); font-size: 2.6rem; line-height: 1; color: var(--c-copper); }
.pg-samples__step:nth-child(4) { background: var(--c-graphite); color: var(--c-on-dark); }
.pg-samples__step:nth-child(4) .muted { color: var(--c-on-dark-2); }
.pg-samples__step:nth-child(4) .pg-samples__n { color: var(--c-copper-soft); }
.pg-samples__foot { display: grid; grid-template-columns: minmax(0, 2fr) auto; gap: var(--s-6); align-items: end; margin-top: var(--s-7); padding-top: var(--s-6); border-top: 1px solid var(--c-line); }
@media (max-width: 1100px) { .pg-samples { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pg-samples__step:last-child { grid-column: 1 / -1; } }
@media (max-width: 600px) { .pg-samples { grid-template-columns: minmax(0, 1fr); } .pg-samples__foot { grid-template-columns: minmax(0, 1fr); } }
.pg-inspect { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); }
.pg-inspect__card { display: grid; gap: var(--s-3); align-content: start; padding: clamp(1.4rem, 1rem + 1.4vw, 2.2rem); background: var(--c-white); border-radius: var(--r-lg); border: 1px solid var(--c-line); }
.pg-inspect__card .pg-role { justify-self: start; }
.pg-inspect__card--accent { border: 1.5px solid var(--c-forest); }
.pg-inspect__tag { margin-top: var(--s-2); font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--c-forest); }
@media (max-width: 900px) { .pg-inspect { grid-template-columns: minmax(0, 1fr); } }
.pg-pack { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
.pg-pack__table th[scope="row"] { font-weight: 700; white-space: nowrap; }
.pg-pack__when { display: inline-block; white-space: nowrap; font-size: .76rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--c-paper-2); color: var(--c-slate-2); }
.pg-pack__visuals { display: grid; gap: var(--s-5); }
.pg-pack__fig { margin: 0; padding: var(--s-5); background: var(--c-paper-2); border-radius: var(--r-lg); display: grid; gap: var(--s-4); justify-items: center; }
.pg-pack__fig figcaption { font-size: .84rem; color: var(--fg-muted); text-align: center; max-width: 40ch; }
.pg-pack__review { margin-top: var(--s-5); }
@media (max-width: 1024px) { .pg-pack { grid-template-columns: minmax(0, 1fr); } .pg-pack__visuals { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .pg-pack__visuals { grid-template-columns: minmax(0, 1fr); } .pg-pack__table th[scope="row"] { white-space: normal; } }
.pg-pallet { width: min(100%, 320px); height: auto; overflow: visible; }
.pg-pallet__box { fill: #cfae86; stroke: #8f6c47; stroke-width: 1; }
.pg-pallet__wrap { fill: rgb(255 255 255 / .12); stroke: rgb(31 36 39 / .25); stroke-dasharray: 3 3; }
.pg-pallet__corner { fill: #e9e2d6; stroke: #8f8676; }
.pg-pallet__strap { fill: #1f2427; opacity: .75; }
.pg-pallet__tag { fill: #fff; stroke: #8f6c47; }
.pg-pallet__deck { fill: #9a7653; }
.pg-pallet__block { fill: #7c5d40; }
.pg-pallet__dim { font: 600 10px var(--f-sans); fill: var(--c-slate-2); text-anchor: middle; }
.js .pg-pack__fig:not(.is-in) .pg-pallet__box { opacity: 0; transform: translateY(-10px); }
.js .pg-pack__fig.is-in .pg-pallet__box { transition: opacity 360ms var(--ease-out), transform 420ms var(--ease-out); transition-delay: calc((17 - var(--i)) * 40ms + 150ms); }
.pg-label { width: min(100%, 300px); background: #fff; border: 1.5px solid var(--c-graphite); border-radius: 4px; padding: 14px; font-size: .78rem; box-shadow: var(--shadow-1); transform: rotate(-1.5deg); }
.pg-label__head { display: flex; justify-content: space-between; gap: 8px; padding-bottom: 8px; border-bottom: 1.5px solid var(--c-graphite); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.pg-label__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.pg-label__grid > div { padding: 8px 6px 6px 0; border-bottom: 1px solid var(--c-line); }
.pg-label__grid dt { font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate-2); }
.pg-label__grid dd { font-family: ui-monospace, Menlo, monospace; font-size: .8rem; }
.pg-label__grid > div:nth-child(2), .pg-label__grid > div:nth-child(3) { background: #fff6dc; }
.pg-label__foot { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; font-weight: 800; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; }
.pg-label__bars { width: 110px; height: 26px; background: repeating-linear-gradient(90deg, var(--c-graphite) 0 2px, transparent 2px 4px, var(--c-graphite) 4px 5px, transparent 5px 8px, var(--c-graphite) 8px 11px, transparent 11px 12px); }
.pg-story { align-items: start; }
.pg-story__text .lead { color: var(--fg); }
.pg-model { margin: 0 0 var(--s-7); }
.pg-model__nodes { display: grid; grid-template-columns: minmax(0, 1fr) 120px minmax(0, 1.15fr) 120px minmax(0, 1fr); align-items: stretch; }
.pg-model__node { display: grid; align-content: start; gap: var(--s-2); padding: var(--s-6) var(--s-5); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.pg-model__node--thorson { --fg-muted: var(--c-on-dark-2); background: var(--c-graphite); color: var(--c-on-dark); border-color: var(--c-graphite); box-shadow: var(--shadow-3); }
.pg-model__node--thorson .pg-model__where { color: var(--c-copper-soft); }
.pg-model__node--thorson .pg-model__icon { background: rgb(255 255 255 / .08); color: var(--c-copper-soft); }
.pg-model__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--c-paper-2); color: var(--accent); margin-bottom: var(--s-3); }
.pg-model__where { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-copper-ink); }
.pg-model__node ul { display: grid; gap: 6px; margin-top: var(--s-3); }
.pg-model__node li { position: relative; padding-left: 16px; font-size: .92rem; color: var(--fg-muted); }
.pg-model__node li::before { content: ''; position: absolute; left: 0; top: .65em; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .5; }
.pg-model__link { position: relative; display: grid; place-items: center; }
.pg-model__link::before { content: ''; position: absolute; left: 8px; right: 8px; top: 50%; height: 2px; background: repeating-linear-gradient(90deg, var(--c-copper) 0 6px, transparent 6px 11px); }
.pg-model__link::after { content: ''; position: absolute; right: 6px; top: calc(50% - 5px); border: 5px solid transparent; border-left: 7px solid var(--c-copper); }
.pg-model__link span { position: relative; z-index: 1; max-width: 100px; padding: 6px 8px; border-radius: 8px; background: var(--c-paper-2); font-size: .7rem; font-weight: 700; text-align: center; color: var(--c-slate-2); line-height: 1.3; }
.pg-model__cap { margin-top: var(--s-5); font-size: .88rem; color: var(--fg-muted); text-align: center; }
@media (max-width: 1024px) {
.pg-model__nodes { grid-template-columns: minmax(0, 1fr); }
.pg-model__link { height: 64px; }
.pg-model__link::before { left: 50%; right: auto; top: 6px; bottom: 6px; width: 2px; height: auto; background: repeating-linear-gradient(180deg, var(--c-copper) 0 6px, transparent 6px 11px); }
.pg-model__link::after { right: auto; left: calc(50% - 5px); top: auto; bottom: 0; border: 5px solid transparent; border-top: 7px solid var(--c-copper); }
.pg-model__link span { max-width: none; }
}
.pg-dodont { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); }
.pg-dodont__col { padding: var(--s-6); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid var(--c-line); }
.pg-dodont__col h3 { display: flex; align-items: center; gap: 10px; margin-bottom: var(--s-4); }
.pg-dodont__col h3 .icon { color: var(--c-forest); }
.pg-dodont__col--not h3 .icon { color: #a5362b; }
.pg-dodont__col ul { display: grid; gap: 10px; }
.pg-dodont__col li { padding-left: 18px; position: relative; color: var(--fg-muted); }
.pg-dodont__col li::before { content: '—'; position: absolute; left: 0; color: var(--c-slate); }
.pg-partner-note { display: flex; gap: 10px; align-items: flex-start; margin-top: var(--s-6); font-size: .93rem; color: var(--fg-muted); max-width: 72ch; }
.pg-partner-note .icon { flex: none; margin-top: 3px; color: var(--accent); }
@media (max-width: 760px) { .pg-dodont { grid-template-columns: minmax(0, 1fr); } }
.pg-founder { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 1rem + 4vw, 6rem); align-items: center; }
.pg-founder__figure { display: grid; gap: var(--s-4); }
.pg-founder__photo { aspect-ratio: 4 / 5; max-height: 560px; width: 100%; object-fit: cover; object-position: 50% 20%; border-radius: var(--r-lg); box-shadow: var(--shadow-2); }
.pg-founder__cap { display: grid; gap: 2px; }
.pg-founder__cap strong { font-family: var(--f-display); font-weight: 400; font-size: 1.6rem; line-height: 1.2; }
.pg-founder__cap span { font-size: var(--fs-sm); color: var(--fg-muted); }
.pg-founder__copy { display: grid; gap: var(--s-4); }
.pg-founder__copy .section-head { margin-bottom: var(--s-3); }
.pg-founder__copy > p { max-width: 58ch; font-size: 1.05rem; }
@media (max-width: 900px) { .pg-founder { grid-template-columns: minmax(0, 1fr); } .pg-founder__figure { max-width: 420px; } }
.pg-values { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--c-graphite); }
.pg-values li { display: grid; gap: var(--s-3); align-content: start; padding: var(--s-5) var(--s-5) var(--s-5) 0; }
.pg-values li + li { padding-left: var(--s-5); border-left: 1px solid var(--c-line); }
.pg-values__n { font-size: .72rem; font-weight: 800; letter-spacing: .12em; color: var(--c-copper-ink); }
@media (min-width: 1101px) { .pg-values .display-3 { font-size: clamp(1.5rem, 0.15rem + 2.05vw, 2rem); } }
@media (max-width: 1100px) { .pg-values { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pg-values li, .pg-values li + li { padding: var(--s-5) var(--s-5) var(--s-5) 0; border-left: 0; border-bottom: 1px solid var(--c-line); } }
@media (max-width: 600px) { .pg-values { grid-template-columns: minmax(0, 1fr); } }
.pg-office { display: grid; }
.pg-office--wide { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 1rem + 4vw, 6rem); align-items: center; }
.pg-office--wide .section-head { margin-bottom: 0; }
.pg-office__card { display: grid; grid-template-columns: 52px 1fr auto; gap: var(--s-5); align-items: center; padding: clamp(1.4rem, 1rem + 1.4vw, 2.2rem); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid var(--c-line); }
.pg-office--wide .pg-office__card { grid-template-columns: 52px 1fr; }
.pg-office--wide .pg-office__card .btn-row, .pg-office__note { grid-column: 1 / -1; }
.pg-office__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--c-graphite); color: var(--c-paper); align-self: start; }
.pg-office__title { font-weight: 800; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); margin-bottom: 6px; }
.pg-office__addr { font-style: normal; font-size: 1.1rem; line-height: 1.5; margin-bottom: 6px; }
.pg-office__card--hero { grid-template-columns: 52px 1fr; background: rgb(255 255 255 / .8); backdrop-filter: blur(8px); }
.pg-office__card .btn-row { gap: var(--s-3); }
.pg-office__card button.btn--link { cursor: pointer; }
.pg-office__card button[data-copy]:not(.is-ready) { display: none; }
@media (max-width: 900px) { .pg-office__card { grid-template-columns: 52px 1fr; } .pg-office__card > .btn-row { grid-column: 1 / -1; } .pg-office--wide { grid-template-columns: minmax(0, 1fr); } }
.pg-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); }
.pg-contact--two { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.pg-contact__card { display: flex; flex-direction: column; gap: var(--s-3); padding: clamp(1.4rem, 1rem + 1.4vw, 2.4rem); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.pg-contact__card .card__icon { margin-bottom: var(--s-2); }
.pg-contact__card p { color: var(--fg-muted); }
.pg-contact__card p a { color: var(--accent); font-weight: 700; }
.pg-contact__card--primary { background: var(--c-graphite); color: var(--c-on-dark); border-color: var(--c-graphite); }
.pg-contact__card--primary p { color: var(--c-on-dark-2); }
.pg-contact__card--primary .card__icon { background: rgb(255 255 255 / .08); color: var(--c-copper-soft); }
.pg-contact__card--primary .btn--primary { --btn-bg: var(--c-paper); --btn-fg: var(--c-ink); }
.pg-contact__action { margin-top: auto; padding-top: var(--s-3); }
.pg-contact__card button[data-copy]:not(.is-ready) { display: none; }
@media (max-width: 900px) { .pg-contact, .pg-contact--two { grid-template-columns: minmax(0, 1fr); } }
.pg-include { align-items: start; }
.pg-include__list { padding: clamp(1.4rem, 1rem + 1.4vw, 2.4rem); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.pg-include__more { margin-top: var(--s-5); padding-top: var(--s-4); border-top: 1px solid var(--c-line); }
.pg-faqpage { padding-top: calc(var(--section-y) * .6); }
.pg-faqpage__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.pg-faqnav { position: sticky; top: calc(var(--header-h) + 24px); }
.pg-faqnav__title { font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c-copper-ink); margin-bottom: var(--s-4); }
.pg-faqnav ul { display: flex; flex-wrap: wrap; gap: 8px; }
.pg-faqnav .chip { text-decoration: none; gap: 8px; }
.pg-faqnav__count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--c-paper-2); font-size: .72rem; color: var(--fg-muted); }
.pg-faqnav .chip:hover .pg-faqnav__count { background: var(--c-limestone); }
.pg-faqpage__groups { display: grid; gap: clamp(2.5rem, 2rem + 2vw, 4rem); }
.pg-faqgroup { scroll-margin-top: calc(var(--header-h) + 24px); }
.pg-faqgroup__title { margin-bottom: var(--s-4); }
.pg-faqgroup .faq__a a, .pg-faqsplit .faq__a a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.pg-faqpage__end { display: grid; gap: var(--s-4); padding: clamp(1.5rem, 1rem + 2vw, 2.75rem); border-radius: var(--r-lg); background: var(--c-paper-2); }
@media (max-width: 900px) {
.pg-faqpage__grid { grid-template-columns: minmax(0, 1fr); }
.pg-faqnav { position: static; }
.pg-faqnav ul { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding: 2px var(--gutter) 8px; scrollbar-width: none; }
.pg-faqnav ul::-webkit-scrollbar { display: none; }
.pg-faqnav .chip { white-space: nowrap; }
}
.pg-legal { padding-top: calc(var(--section-y) * .6); }
.pg-legal__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.pg-legal__aside { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: var(--s-5); }
.pg-legal__draft { display: grid; gap: var(--s-2); padding: var(--s-4); border-radius: var(--r-md); background: #fffaf0; border: 1px dashed #c99a2e; }
.pg-legal__draft .review-note { justify-self: start; }
.pg-legal__toctitle { font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c-copper-ink); margin-bottom: var(--s-3); }
.pg-legal__toc ol { display: grid; gap: 2px; list-style: decimal; padding-left: 1.2em; font-size: .92rem; }
.pg-legal__toc a { display: inline-block; padding: 4px 0; color: var(--fg-muted); text-decoration: none; }
.pg-legal__toc a:hover { color: var(--accent); }
.pg-legal__body h2 { scroll-margin-top: calc(var(--header-h) + 24px); }
.pg-legal__body ul { list-style: disc; padding-left: 1.3em; }
.pg-legal__body ul > li + li { margin-top: .4em; }
.pg-legal__body a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.pg-legal__addr { font-style: normal; padding: var(--s-4) var(--s-5); border-left: 3px solid var(--c-copper); background: var(--c-paper-2); border-radius: 0 var(--r-md) var(--r-md) 0; }
@media (max-width: 900px) { .pg-legal__grid { grid-template-columns: minmax(0, 1fr); } .pg-legal__aside { position: static; } }
.pg-404 { min-height: 100svh; display: grid; align-items: center; padding: calc(var(--header-h) + 3rem) 0 4rem; background: var(--c-limestone); overflow: hidden; }
.pg-404__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 1rem + 4vw, 6rem); align-items: center; }
.pg-404__copy { display: grid; gap: var(--s-5); }
.pg-404__copy .eyebrow { margin-bottom: 0; }
.pg-404__copy .display-1 { max-width: 12ch; }
.pg-404__links { color: var(--fg-muted); }
.pg-404__links a { color: var(--accent); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.pg-404__art { position: relative; justify-self: center; width: min(100%, 440px); }
.pg-404__tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding: 6px; background: #c9c1b3; border-radius: 6px; transform: perspective(900px) rotateX(18deg) rotateZ(-6deg); box-shadow: var(--shadow-3); }
.pg-404__tile { aspect-ratio: 1; border-radius: 2px; background: #f4f1eb url('/assets/img/tex/marble-calacatta-512.webp') center/cover; background-position: calc(var(--i, 0) * 37%) calc(var(--i, 0) * 23%); box-shadow: inset 0 0 0 1px rgb(0 0 0 / .05); }
.pg-404__tile--gap { background: repeating-linear-gradient(45deg, #b6ad9c 0 6px, #aea492 6px 12px); box-shadow: inset 0 3px 8px rgb(0 0 0 / .25); }
.pg-404__loose { position: absolute; right: -6%; bottom: -10%; width: 26%; aspect-ratio: 1; border-radius: 3px; background: #f4f1eb url('/assets/img/tex/marble-calacatta-512.webp') 40% 60% / cover; box-shadow: var(--shadow-3); transform: rotate(14deg); }
@media (prefers-reduced-motion: no-preference) { .pg-404__loose { animation: pg404float 5s ease-in-out infinite alternate; } }
@keyframes pg404float { to { transform: rotate(8deg) translate(-8px, -10px); } }
@media (max-width: 860px) { .pg-404 { padding-bottom: 6.5rem; } .pg-404__grid { grid-template-columns: minmax(0, 1fr); } .pg-404__art { width: min(80%, 320px); order: -1; } }
.qw [hidden], .qw-aside [hidden] { display: none !important; }
.qw-hero { position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--header-h) + clamp(2rem, 1.5rem + 2.5vw, 4rem)) 0 clamp(2.25rem, 1.5rem + 2.5vw, 3.75rem); background: var(--c-limestone); }
.qw-hero__tex { position: absolute; inset: 0; z-index: -2; background: var(--tex) center/cover no-repeat, var(--c-limestone); opacity: .5; }
.qw-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, var(--c-paper) 0%, rgb(255 255 255 / .93) 48%, rgb(255 255 255 / .45) 100%); }
.qw-hero__inner { display: grid; gap: var(--s-4); }
.qw-hero__inner .breadcrumbs ol { margin-bottom: var(--s-2); }
.qw-hero__inner .eyebrow { margin-bottom: 0; }
.qw-hero__inner .display-1 { max-width: none; font-size: clamp(2.6rem, 1.7rem + 3.2vw, 4.75rem); line-height: 1.06; }
.qw-hero__inner .lead { max-width: 60ch; }
.qw-hero__facts { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: var(--s-2); font-size: .9rem; font-weight: 600; color: var(--c-slate-2); }
.qw-hero__facts li { display: inline-flex; align-items: center; gap: 8px; }
.qw-hero__facts .icon { color: var(--c-forest); }
.qw-sec { padding-top: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.qw-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
.qw { min-width: 0; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-xl); box-shadow: var(--shadow-2); padding: clamp(1.25rem, .8rem + 2vw, 3rem); }
@media (max-width: 1024px) { .qw-layout { grid-template-columns: minmax(0, 1fr); } }
.qw-context { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; margin-bottom: var(--s-5); padding: 8px 14px; border-radius: 999px; background: #f6ede4; color: var(--c-copper-ink); font-size: .9rem; }
.qw-context strong { color: var(--c-ink); overflow-wrap: anywhere; }
.qw-context .icon { flex: none; }
.qw-progress { position: relative; margin-bottom: clamp(1.5rem, 1rem + 2vw, 2.5rem); }
.qw-progress__bar { position: absolute; left: calc(100% / 14); right: calc(100% / 14); top: 21px; height: 2px; background: var(--c-line); border-radius: 2px; overflow: hidden; }
.qw-progress__bar i { position: absolute; inset: 0; background: var(--c-forest); transform-origin: left; transform: scaleX(0); transition: transform 420ms var(--ease-out); }
.qw-progress ol { list-style: none; margin: 0; padding: 0; position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.qw-progress__btn {
display: grid; justify-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 0 2px; border: 0; background: none; cursor: pointer;
color: var(--fg-muted); font: inherit; text-align: center;
}
.qw-progress__n {
display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--c-white); border: 1.5px solid var(--c-stone);
font-size: .85rem; font-weight: 700; font-variant-numeric: tabular-nums; transition: background var(--t-std), border-color var(--t-std), color var(--t-std), transform var(--t-std) var(--ease-out);
}
.qw-progress__t { font-size: .74rem; font-weight: 650; line-height: 1.25; }
.qw-progress__btn:disabled { cursor: default; opacity: .55; }
.qw-progress__btn.is-done .qw-progress__n { border-color: var(--c-forest); color: var(--c-forest); background: #eef3f1; }
.qw-progress__btn.is-current { color: var(--fg); }
.qw-progress__btn.is-current .qw-progress__n { background: var(--c-graphite); border-color: var(--c-graphite); color: var(--c-paper); transform: scale(1.06); }
.qw-progress__btn:not(:disabled):hover .qw-progress__n { border-color: var(--c-graphite); }
.qw-progress__btn:focus-visible { outline: none; }
.qw-progress__btn:focus-visible .qw-progress__n { outline: 2px solid var(--focus, var(--c-forest)); outline-offset: 3px; }
@media (max-width: 760px) {
.qw-progress__bar { top: 17px; }
.qw-progress__n { width: 34px; height: 34px; font-size: .78rem; }
.qw-progress__t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.qw-step + .qw-step { margin-top: var(--s-8, 4rem); padding-top: var(--s-7); border-top: 1px solid var(--c-line); }
.qw.is-enhanced .qw-step + .qw-step { margin-top: 0; padding-top: 0; border-top: 0; }
.qw-step__head { display: grid; gap: var(--s-2); margin-bottom: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); }
.qw-step__n { font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); }
.qw-step__n span { color: var(--fg); }
.qw-step__title { font-family: var(--f-display); font-weight: 400; font-size: var(--fs-d3); line-height: 1.08; letter-spacing: -.01em; }
.qw-step__title:focus { outline: none; }
.qw-step__lead { color: var(--fg-muted); max-width: 60ch; }
.qw-step__body { display: grid; gap: clamp(1.6rem, 1.2rem + 1vw, 2.25rem); }
.qw-q { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 12px; }
.qw-q__legend { padding: 0; margin-bottom: 4px; font-weight: 700; font-size: 1rem; }
.qw-q__hint { margin-top: -6px; font-size: .86rem; color: var(--fg-muted); }
.qw-q__hint a, .qw-field .hint a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.qw-field label { font-size: 1rem; font-weight: 700; }
.qw-req { color: var(--c-copper-ink); margin-left: 2px; }
.qw-opt-tag { margin-left: 6px; font-size: .76rem; font-weight: 500; color: var(--fg-muted); }
.qw-error { margin: 0; }
.qw-q.has-error .qw-choices { border-radius: var(--r-md); box-shadow: 0 0 0 2px rgb(165 54 43 / .25); padding: 6px; margin: -6px; }
.qw-q .error, .qw-field .error { color: #a5362b; font-size: .86rem; font-weight: 600; }
.qw-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-5); align-items: start; }
.qw-row.is-empty { display: none; }
.qw-row > .qw-reveal[hidden] + .qw-reveal, .qw-row > .qw-reveal:only-of-type { grid-column: 1 / -1; }
@media (max-width: 640px) { .qw-row { grid-template-columns: minmax(0, 1fr); } }
.qw-field .input[type="number"] { max-width: 260px; }
.qw-reveal { padding: var(--s-4); border-radius: var(--r-md); background: var(--c-paper-2); border-left: 3px solid var(--c-copper); }
.qw-note { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--r-md); background: var(--c-paper-2); font-size: .88rem; color: var(--fg-muted); }
.qw-note .icon { flex: none; margin-top: 2px; color: var(--c-forest); }
.qw-consents { display: grid; gap: 10px; padding-top: var(--s-5); border-top: 1px solid var(--c-line); }
.qw-check label { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; font-weight: 500; font-size: .94rem; cursor: pointer; padding: 6px 0; }
.qw-check input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--c-forest); cursor: pointer; }
.qw-check a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.qw-check.has-error input { outline: 2px solid #a5362b; outline-offset: 2px; }
.qw-check .error { margin-left: 36px; }
.qw-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.qw-chip, .qw-card, .qw-size, .qw-line { position: relative; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.qw-choices input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.qw-chip:has(input:focus-visible), .qw-card:has(input:focus-visible), .qw-size:has(input:focus-visible), .qw-line:has(input:focus-visible) { outline: 2px solid var(--c-forest); outline-offset: 3px; }
.qw-chip {
display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--c-stone); background: var(--c-white);
font-size: .93rem; font-weight: 600; transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.qw-chip:hover { border-color: var(--c-graphite); }
.qw-chip__mark { display: inline-grid; place-items: center; width: 0; height: 18px; overflow: hidden; border-radius: 50%; transition: width var(--t-fast) var(--ease-out); }
.qw-chip:has(input:checked) { background: var(--c-graphite); border-color: var(--c-graphite); color: var(--c-paper); }
.qw-chip:has(input:checked) .qw-chip__mark { width: 18px; background: var(--c-copper-soft); color: var(--c-ink); }
.qw-chip__body { display: inline-flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; padding-block: 8px; }
.qw-chip__d { font-size: .8rem; font-weight: 500; opacity: .72; }
.qw-choices--card { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.qw-card {
display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-md); border: 1px solid var(--c-stone); background: var(--c-white);
transition: border-color var(--t-fast), box-shadow var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out), background var(--t-fast);
}
.qw-card:hover { border-color: var(--c-graphite); transform: translateY(-2px); box-shadow: var(--shadow-1); }
.qw-card__tex { display: block; height: 84px; background: var(--c-limestone) var(--tex) center/cover; border-bottom: 1px solid var(--c-line); transition: transform 600ms var(--ease-out); }
.qw-card:hover .qw-card__tex { transform: scale(1.04); }
.qw-card__ico { display: grid; place-items: center; width: 44px; height: 44px; margin: 16px 16px 0; border-radius: 50%; background: var(--c-paper-2); color: var(--c-forest); }
.qw-choices--card:has(.qw-card__tex) .qw-card__ico { width: auto; height: 84px; margin: 0; border-radius: 0; background: repeating-linear-gradient(-45deg, var(--c-paper-2) 0 10px, var(--c-white) 10px 20px); border-bottom: 1px solid var(--c-line); }
.qw-card__body { display: grid; gap: 4px; padding: 14px 16px 16px; }
.qw-card__t { font-weight: 700; font-size: .98rem; padding-right: 26px; }
.qw-card__d { font-size: .85rem; color: var(--fg-muted); line-height: 1.45; }
.qw-card__mark { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: rgb(255 255 255 / .92); border: 1.5px solid var(--c-stone); color: transparent; transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t-fast) var(--ease-out); }
.qw-card:has(input:checked) { border-color: var(--c-forest); box-shadow: inset 0 0 0 1px var(--c-forest); background: #f4f8f6; }
.qw-card:has(input:checked) .qw-card__mark { background: var(--c-forest); border-color: var(--c-forest); color: #fff; transform: scale(1.06); }
.qw-card:has(input[type="radio"]) .qw-card__mark { border-radius: 50%; }
@media (max-width: 560px) {
.qw-choices--card { grid-template-columns: minmax(0, 1fr); gap: 10px; }
.qw-card { flex-direction: row; align-items: stretch; }
.qw-card__tex, .qw-choices--card:has(.qw-card__tex) .qw-card__ico { flex: 0 0 80px; width: 80px; height: auto; min-height: 80px; border-bottom: 0; border-right: 1px solid var(--c-line); }
.qw-card__ico { flex: 0 0 40px; align-self: center; width: 40px; height: 40px; margin: 0 0 0 14px; }
.qw-card__body { flex: 1; align-content: center; padding: 12px 48px 12px 14px; }
.qw-card__t { padding-right: 0; }
.qw-card__mark { top: 50%; right: 14px; margin-top: -13px; }
}
.qw-choices--size { display: grid; grid-template-columns: repeat(auto-fill, minmax(108px, 1fr)); gap: 10px; }
.qw-size {
display: grid; justify-items: center; align-content: start; gap: 8px; padding: 14px 8px 12px; border-radius: var(--r-md); border: 1px solid var(--c-stone); background: var(--c-white); text-align: center;
transition: border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);
}
.qw-size:hover { border-color: var(--c-graphite); }
.qw-shape { display: grid; place-items: center; width: 48px; height: 48px; }
.qw-shape i { display: block; width: calc(44px * var(--sw) / max(var(--sw), var(--sh))); height: calc(44px * var(--sh) / max(var(--sw), var(--sh))); border: 1.5px solid var(--c-graphite); border-radius: 2px; background: linear-gradient(135deg, var(--c-paper-2), var(--c-limestone)); transition: background var(--t-fast), border-color var(--t-fast); }
.qw-size .qw-card__ico { width: 48px; height: 48px; margin: 0; background: var(--c-paper-2); }
.qw-size__body { display: grid; }
.qw-size__t { font-size: .88rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.qw-size__mark { position: absolute; top: 6px; right: 6px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: transparent; }
.qw-size:has(input:checked) { border-color: var(--c-forest); box-shadow: inset 0 0 0 1px var(--c-forest); background: #f4f8f6; }
.qw-size:has(input:checked) .qw-shape i { background: linear-gradient(135deg, #cfe0d9, #9fbdb1); border-color: var(--c-forest); }
.qw-size:has(input:checked) .qw-size__mark { background: var(--c-forest); color: #fff; }
.qw-choices--line { display: grid; gap: 8px; }
.qw-line {
display: grid; grid-template-columns: 1fr 26px; gap: 12px; align-items: center; padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--c-stone); background: var(--c-white);
transition: border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);
}
.qw-line:hover { border-color: var(--c-graphite); }
.qw-line__body { display: grid; gap: 2px; }
.qw-line__t { font-weight: 700; font-size: .96rem; }
.qw-line__d { font-size: .86rem; color: var(--fg-muted); }
.qw-line__mark { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--c-stone); color: transparent; transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast); }
.qw-line:has(input:checked) { border-color: var(--c-forest); box-shadow: inset 0 0 0 1px var(--c-forest); background: #f4f8f6; }
.qw-line:has(input:checked) .qw-line__mark { background: var(--c-forest); border-color: var(--c-forest); color: #fff; }
.qw-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--s-4); margin-top: clamp(1.75rem, 1.2rem + 2vw, 3rem); padding-top: var(--s-5); border-top: 1px solid var(--c-line); }
.qw-nav__prev { grid-column: 1; justify-self: start; }
.qw-nav__count { grid-column: 2; font-size: .86rem; font-weight: 700; color: var(--fg-muted); font-variant-numeric: tabular-nums; }
.qw-nav__next { grid-column: 3; justify-self: end; min-width: 168px; }
.qw-flip { transform: scaleX(-1); }
.qw-nav__next .icon { transition: transform var(--t-fast) var(--ease-out); }
.qw-nav__next:hover .icon { transform: translateX(3px); }
@media (max-width: 520px) {
.qw-nav { grid-template-columns: auto 1fr; gap: 10px; }
.qw-nav__count { display: none; }
.qw-nav__prev { padding: 0 18px; }
.qw-nav__next { grid-column: 2; justify-self: stretch; min-width: 0; }
}
.qw-nojs { display: grid; gap: var(--s-4); justify-items: start; margin-top: var(--s-7); padding-top: var(--s-5); border-top: 1px solid var(--c-line); }
.qw-notice { display: flex; gap: 12px; align-items: flex-start; padding: var(--s-4) var(--s-5); border: 1px dashed #c99a2e; border-radius: var(--r-md); background: #fffaf0; color: #5b4300; font-size: .93rem; }
.qw-notice > .icon { flex: none; margin-top: 2px; }
.qw-notice div { display: grid; gap: 6px; }
.qw-notice a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.qw-review { display: grid; gap: 0; border: 1px solid var(--c-line); border-radius: var(--r-lg); overflow: hidden; }
.qw:not(.is-enhanced) .qw-review { border: 0; }
.qw-review__ctx { padding: 12px var(--s-5); background: #f6ede4; color: var(--c-copper-ink); font-size: .92rem; }
.qw-review__ctx strong { color: var(--c-ink); }
.qw-review__sec { padding: var(--s-4) var(--s-5); }
.qw-review__sec + .qw-review__sec { border-top: 1px solid var(--c-line); }
.qw-review__sec header { display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); }
.qw-review__sec h3 { font-size: 1rem; font-weight: 700; }
.qw-review__edit { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--c-line); background: var(--c-white); color: var(--accent); font: inherit; font-size: .86rem; font-weight: 700; cursor: pointer; transition: border-color var(--t-fast), background var(--t-fast); }
.qw-review__edit:hover { border-color: var(--c-graphite); background: var(--c-paper-2); }
.qw-review__sec dl { display: grid; margin-top: 6px; }
.qw-review__sec dl > div { display: grid; grid-template-columns: minmax(9rem, 13rem) 1fr; gap: var(--s-4); padding: 7px 0; font-size: .93rem; }
.qw-review__sec dt { color: var(--fg-muted); }
.qw-review__sec dd { font-weight: 600; overflow-wrap: anywhere; white-space: pre-line; }
.qw-review__empty { margin-top: 4px; font-size: .9rem; color: var(--fg-muted); }
@media (max-width: 560px) { .qw-review__sec dl > div { grid-template-columns: minmax(0, 1fr); gap: 0; } .qw-review__sec { padding: var(--s-4); } }
.qw-deliver { display: grid; gap: var(--s-4); margin-top: var(--s-6); padding: clamp(1.25rem, 1rem + 1vw, 2rem); border-radius: var(--r-lg); background: var(--c-paper-2); }
.qw:not(.is-enhanced) .qw-deliver { display: none; }
.qw-deliver__title { font-family: var(--f-display); font-weight: 400; font-size: 1.6rem; line-height: 1.15; }
.qw-deliver__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.qw-deliver__btns .btn--ghost { background: var(--c-white); }
.qw-deliver__status:empty { display: none; }
.qw-deliver__status { padding: 12px 14px; border-radius: var(--r-md); background: var(--c-white); border-left: 3px solid var(--c-slate); font-size: .92rem; font-weight: 600; }
.qw-deliver__status[data-tone="info"] { border-left-color: var(--c-forest); }
.qw-deliver__status[data-tone="ok"] { border-left-color: var(--c-forest); background: #eef3f1; color: var(--c-forest); }
.qw-deliver__status[data-tone="warn"] { border-left-color: #c99a2e; background: #fffaf0; color: #5b4300; }
.qw-deliver__notes { display: grid; gap: 8px; font-size: .86rem; color: var(--fg-muted); }
.qw-deliver__notes li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; }
.qw-deliver__notes .icon { margin-top: 2px; }
@media (max-width: 520px) {
.qw { padding: 18px; border-radius: var(--r-lg); }
.qw-deliver { padding: 14px; margin-inline: -4px; }
.qw-notice { padding: 12px 14px; gap: 10px; font-size: .9rem; }
.qw-deliver__btns .btn { flex: 1 1 100%; }
}
.qw-aside { display: grid; gap: var(--s-4); }
.qw-panel { padding: var(--s-5); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid var(--c-line); }
.qw-panel--quiet { background: transparent; }
.qw-panel--quiet a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.qw-panel__title { font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); margin-bottom: var(--s-3); }
.qw-panel__note { display: flex; gap: 8px; align-items: flex-start; margin-top: var(--s-3); font-size: .84rem; color: var(--fg-muted); }
.qw-panel__note .icon { flex: none; margin-top: 2px; }
.qw-panel .pg-expect--compact .pg-expect__list li:first-child { border-top: 0; padding-top: 0; }
.qw-panel__addr { margin-top: var(--s-3); font-style: normal; }
.qw-live { display: grid; }
.qw-live > div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 7px 0; border-top: 1px solid var(--c-line); font-size: .86rem; }
.qw-live > div:first-child { border-top: 0; padding-top: 0; }
.qw-live dt { font-size: .78rem; color: var(--fg-muted); line-height: 1.35; }
.qw-live dd { font-weight: 600; overflow-wrap: anywhere; }
.qw-live__empty { color: var(--fg-muted); font-size: .88rem; }
.qw-panel__reset { margin-top: var(--s-4); min-height: 40px; padding: 0; border: 0; background: none; color: var(--fg-muted); font: inherit; font-size: .86rem; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.qw-panel__reset:hover { color: #a5362b; }
@media (max-width: 1024px) {
.qw-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.qw-panel--summary { display: none !important; }
}
@media (max-width: 640px) { .qw-aside { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) { .page-quote .wa-float { display: none; } }
@media (prefers-reduced-motion: reduce) {
.qw-card, .qw-card__tex, .qw-progress__bar i, .qw-progress__n, .qw-chip__mark { transition: none; }
.qw-card:hover { transform: none; }
.qw-card:hover .qw-card__tex { transform: none; }
}
@media print {
.qw-progress, .qw-nav, .qw-aside, .qw-deliver { display: none !important; }
.qw { box-shadow: none; border: 0; padding: 0; }
}
.qc [hidden], .qc-block [hidden] { display: none !important; }
.qc-block { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
@media (max-width: 960px) { .qc-block { grid-template-columns: minmax(0, 1fr); } }
.qc-intro { display: grid; gap: var(--s-4); align-content: start; min-width: 0; }
.qc-intro .section-head { margin-bottom: 0; }
.qc-intro .eyebrow { margin-bottom: 0; }
.qc-intro .lead { max-width: 46ch; }
@media (min-width: 961px) { .qc-intro { position: sticky; top: calc(var(--header-h) + var(--s-6)); } }
.qc-points { list-style: none; margin: var(--s-2) 0 0; padding: 0; display: grid; gap: 14px; }
.qc-points li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: start; font-size: .95rem; color: var(--fg-muted); }
.qc-points li > span:last-child { padding-top: 7px; }
.qc-points__ico { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--c-white); border: 1px solid var(--c-line); color: var(--c-forest); }
.qc-intro__foot { margin-top: var(--s-2); padding-top: var(--s-4); border-top: 1px solid var(--c-line); font-size: .92rem; color: var(--fg-muted); }
.qc-intro__foot a { color: var(--accent); font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.qc {
--qc-pad: clamp(1.15rem, .8rem + 1.6vw, 2.25rem);
min-width: 0; container-type: inline-size;
background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-xl); box-shadow: var(--shadow-2); overflow: hidden;
transition: box-shadow var(--t-std) var(--ease-out);
}
:target > .container .qc, .qc:target { box-shadow: 0 0 0 3px var(--c-copper-soft), var(--shadow-2); }
.qc__head { display: flex; align-items: center; gap: 14px; padding: 18px var(--qc-pad); background: var(--c-paper-2); border-bottom: 1px solid var(--c-line); }
.qc__badge { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--c-forest); color: var(--c-white); }
.qc__label { font-family: var(--f-display); font-size: 1.45rem; line-height: 1.1; color: var(--c-graphite); }
.qc__to { font-size: .88rem; color: var(--fg-muted); }
.qc__to span { margin-right: 4px; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-copper-ink); }
.qc-form { display: grid; }
.qc-fields { display: grid; gap: var(--s-5); padding: var(--qc-pad); }
.qc-row { display: grid; gap: var(--s-5); grid-template-columns: minmax(0, 1fr); }
@container (min-width: 520px) { .qc-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.qc-field { min-width: 0; align-content: start; }
.qc-opt { margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--c-paper-2); font-size: .72rem; font-weight: 600; letter-spacing: .02em; color: var(--fg-muted); vertical-align: 1px; }
.qc-error { margin: 0; color: #a5362b; font-size: .85rem; font-weight: 600; }
.qc .textarea { min-height: 140px; }
.qc .input::placeholder, .qc .textarea::placeholder { color: #80878c; opacity: 1; }
.qc-reach { display: grid; gap: var(--s-3); min-width: 0; margin: 0; padding: var(--s-4) var(--s-4) var(--s-5); border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-paper); transition: border-color var(--t-fast); }
.qc-legend { float: left; width: 100%; margin: 0; padding: 0; font-weight: 650; font-size: .92rem; }
.qc-reach__hint { margin-top: -4px; font-size: .84rem; color: var(--fg-muted); }
.qc-reach .qc-row { gap: var(--s-4); }
.qc-reach .qc-field label { font-weight: 600; font-size: .86rem; }
.qc-reach.has-error { border-color: #a5362b; }
.qc-reach.has-error .input[aria-invalid="true"] { border-color: #a5362b; }
.qc-callback { display: grid; gap: var(--s-4); }
.qc-check {
display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: start; cursor: pointer;
padding: 14px 16px; border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-paper);
transition: border-color var(--t-fast), background-color var(--t-fast);
}
.qc-check:hover { border-color: var(--c-stone); }
.qc-check:has(input:checked) { border-color: var(--c-forest); background: #eef3f1; }
.qc-check:has(input:focus-visible) { outline: 3px solid var(--focus); outline-offset: 2px; }
.qc-check input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--c-forest); cursor: pointer; }
.qc-check__body { display: grid; gap: 2px; }
.qc-check__t { font-weight: 650; font-size: .95rem; }
.qc-check__d { font-size: .86rem; color: var(--fg-muted); }
.qc-calltime { margin-left: 11px; padding-left: var(--s-4); border-left: 2px solid var(--c-copper); }
.qc-callback:not(:has(input[name="callback"]:checked)) .qc-calltime { display: none; }
.qc-callback:has(input[name="callback"]:checked) .qc-calltime { animation: qc-in var(--t-std) var(--ease-out); }
@keyframes qc-in { from { opacity: 0; transform: translateY(-6px); } }
.qc-send { display: grid; gap: var(--s-4); padding: var(--qc-pad); background: var(--c-paper-2); border-top: 1px solid var(--c-line); }
.qc-send__title { font-family: var(--f-display); font-size: 1.35rem; line-height: 1.15; color: var(--c-graphite); }
.qc-send__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.qc-send .btn--ghost { background: var(--c-white); }
.qc-btn[aria-busy="true"] { opacity: .7; cursor: progress; }
@container (max-width: 460px) { .qc-send__btns .btn { flex: 1 1 100%; justify-content: center; } }
.qc-notice { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1px dashed #c99a2e; border-radius: var(--r-md); background: #fffaf0; color: #5b4300; font-size: .92rem; }
.qc-notice > .icon { flex: none; margin-top: 2px; }
.qc-notice > div { display: grid; gap: 6px; }
.qc-notice a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.qc-status:empty { display: none; }
.qc-status { padding: 12px 14px; border-radius: var(--r-md); background: var(--c-white); border-left: 3px solid var(--c-slate); font-size: .92rem; font-weight: 600; }
.qc-status[data-tone="info"] { border-left-color: var(--c-forest); }
.qc-status[data-tone="ok"] { border-left-color: var(--c-forest); background: #eef3f1; color: var(--c-forest); }
.qc-status[data-tone="warn"] { border-left-color: #c99a2e; background: #fffaf0; color: #5b4300; }
.qc-status a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.qc-send__notes { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: .84rem; color: var(--fg-muted); }
.qc-send__notes li { display: flex; gap: 8px; align-items: flex-start; }
.qc-send__notes .icon { flex: none; margin-top: 2px; color: var(--c-forest); }
.qc-send__notes a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.qc-nojs { display: grid; gap: var(--s-3); justify-items: start; padding: 0 var(--qc-pad) var(--qc-pad); }
.no-js .qc-send, .qc.module-failed .qc-send { display: none; }
.js .qc:not(.module-failed) .qc-nojs { display: none; }
.qc-alt {
display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; justify-self: start; max-width: 100%;
margin-top: var(--s-3); padding: 12px 12px 12px 16px; border: 1px solid var(--c-line); border-radius: var(--r-lg);
background: rgb(255 255 255 / .82); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: var(--shadow-1);
}
.qc-alt__ico { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #eef3f1; color: var(--c-forest); }
.qc-alt__text { flex: 1 1 220px; min-width: 0; font-size: .94rem; color: var(--fg-muted); }
.qc-alt__text strong { display: block; color: var(--c-graphite); font-weight: 700; }
@media (max-width: 560px) {
.qc-alt { padding: 14px; }
.qc-alt .btn { flex: 1 1 100%; justify-content: center; }
}
@media (max-width: 480px) {
.qc { border-radius: var(--r-lg); }
.qc__head { padding-block: 14px; }
.qc__badge { width: 40px; height: 40px; }
.qc-reach { padding: var(--s-3) var(--s-3) var(--s-4); }
.qc-notice { gap: 10px; font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
.qc-callback:has(input[name="callback"]:checked) .qc-calltime { animation: none; }
.qc, .qc-check, .qc-reach { transition: none; }
}
.why-compare {
margin-top: clamp(3rem, 2rem + 4vw, 5.5rem);
padding-top: clamp(2rem, 1.5rem + 2vw, 3rem);
border-top: 1px solid var(--c-line);
}
.why-compare__head { display: grid; gap: var(--s-3); max-width: 64ch; margin-bottom: var(--s-6); }
.why-compare__head h3 { margin: 0; }
.why-compare__lead { margin: 0; color: var(--fg-muted); line-height: 1.6; }
.why-compare__table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
font-size: var(--fs-sm);
line-height: 1.55;
}
.why-compare__table th,
.why-compare__table td {
text-align: left;
vertical-align: top;
padding: 16px 20px;
border-bottom: 1px solid var(--c-line);
}
.why-compare__table thead th {
border-bottom: 0;
padding-top: 12px;
padding-bottom: 12px;
font-size: var(--fs-xs);
font-weight: 650;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--fg-muted);
}
.why-compare__table thead th.why-compare__us {
background: var(--accent);
color: var(--c-on-dark);
border-radius: var(--r-md) var(--r-md) 0 0;
}
.why-compare__table tbody th { width: 20%; font-weight: 650; color: var(--fg); }
.why-compare__table td { width: 40%; color: var(--fg-muted); }
.why-compare__table td.why-compare__us {
background: var(--c-white);
color: var(--fg);
border-bottom-color: var(--c-paper-2);
}
.why-compare__table tbody tr:last-child th,
.why-compare__table tbody tr:last-child td { border-bottom: 0; }
.why-compare__table tbody tr:last-child td.why-compare__us { border-radius: 0 0 var(--r-md) var(--r-md); }
.why-compare__cell { display: flex; gap: 10px; align-items: flex-start; }
.why-compare__cell .icon { flex: none; margin-top: 3px; color: var(--accent); }
@media (max-width: 719px) {
.why-compare__table,
.why-compare__table tbody,
.why-compare__table tr,
.why-compare__table th,
.why-compare__table td { display: block; width: auto; }
.why-compare__table thead {
position: absolute; width: 1px; height: 1px; overflow: hidden;
clip: rect(0 0 0 0); white-space: nowrap;
}
.why-compare__table tbody { display: grid; gap: 12px; }
.why-compare__table tr {
border: 1px solid var(--c-line);
border-radius: var(--r-md);
overflow: hidden;
background: var(--c-paper);
}
.why-compare__table tbody th { width: auto; padding: 14px 16px 4px; border: 0; }
.why-compare__table td { padding: 8px 16px 14px; border: 0; }
.why-compare__table td::before {
content: attr(data-label);
display: block;
margin-bottom: 4px;
font-size: var(--fs-xs);
font-weight: 650;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--fg-muted);
}
.why-compare__table td.why-compare__us,
.why-compare__table tbody tr:last-child td.why-compare__us {
border-top: 1px solid var(--c-line);
border-radius: 0;
padding-top: 12px;
}
.why-compare__table td.why-compare__us::before { color: var(--accent); }
}
.tc-hero { padding: calc(var(--header-h) + clamp(1.5rem, 1rem + 2.5vw, 3.5rem)) 0 clamp(1.25rem, 1rem + 1.5vw, 2.25rem); background: linear-gradient(180deg, var(--c-limestone), var(--c-paper)); }
.tc-hero .breadcrumbs ol { margin-bottom: var(--s-5); }
.tc-hero__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: end; }
.tc-hero__copy { display: grid; gap: var(--s-4); }
.tc-hero__copy .eyebrow { margin-bottom: 0; }
.tc-hero h1 { max-width: 18ch; }
.tc-answer { display: grid; gap: var(--s-3); padding: var(--s-5); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); box-shadow: var(--shadow-1); }
.tc-answer__t { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); }
.tc-formula { padding: 10px 14px; font-size: .96rem; background: var(--c-paper-2); border-left: 3px solid var(--c-forest); border-radius: var(--r-sm); }
.tc-answer__eg { font-size: .92rem; color: var(--fg-muted); }
@media (max-width: 900px) { .tc-hero__grid { grid-template-columns: 1fr; } }
.tc { padding-top: var(--s-4); }
.tc__grid {
display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 410px);
grid-template-areas: "form out" "compare out"; gap: var(--s-4) clamp(1.5rem, 1rem + 2vw, 3rem); align-items: start;
}
.tc-form { grid-area: form; display: grid; gap: var(--s-4); min-width: 0; }
.tc-out { grid-area: out; position: sticky; top: calc(var(--header-h) + 16px); }
.tc-compare { grid-area: compare; min-width: 0; }
@media (max-width: 1020px) {
.tc__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "form" "out" "compare"; }
.tc-out { position: static; }
}
.tc-step { min-width: 0; margin: 0; padding: clamp(1.1rem, .8rem + 1vw, 1.6rem); display: grid; gap: var(--s-4); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.tc-step__h { float: left; width: 100%; padding: 0; display: flex; align-items: center; gap: 12px; font-size: 1.08rem; font-weight: 700; }
.tc-step__n { flex: none; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--c-forest); color: #fff; font-size: .85rem; }
.tc-step__row { display: flex; flex-wrap: wrap; gap: 10px; }
[data-tc-rooms][hidden], [data-tc-total][hidden], [data-tc-custom][hidden] { display: none; }
.tc-seg { display: inline-flex; flex-wrap: wrap; padding: 4px; background: var(--c-paper-2); border: 1px solid var(--c-line); border-radius: 999px; }
.tc-seg label { position: relative; }
.tc-seg input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.tc-seg span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; font-size: .9rem; font-weight: 600; color: var(--fg-muted); transition: background var(--t-fast), color var(--t-fast); }
.tc-seg input:checked + span { background: var(--c-graphite); color: var(--c-paper); }
.tc-seg input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 2px; }
.tc-num { position: relative; display: block; min-width: 0; }
.tc-num .input { padding-right: 2.6rem; }
.tc-num__u { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: .85rem; color: var(--fg-muted); pointer-events: none; }
.tc-num--wide { max-width: 260px; }
.tc-num--wide .input { padding-right: 3.6rem; }
.tc-rows { display: grid; gap: 10px; }
.tc-row { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) auto minmax(0, 1fr) 6.4rem 44px; gap: 8px; align-items: center; }
.tc-row .input { min-height: 46px; padding-block: 10px; padding-left: 12px; }
.tc-row .input[aria-invalid] { border-color: #a5362b; }
.tc-row__name { position: relative; min-width: 0; }
.tc-row__tag { position: absolute; top: -8px; left: 10px; z-index: 1; padding: 1px 6px; border-radius: 4px; font-size: .66rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: var(--c-copper-soft); color: var(--c-copper-ink); }
.tc-row--minus .input { background: #fbf7f2; }
.tc-row__x { color: var(--fg-muted); }
.tc-row__area { font-size: .9rem; font-weight: 600; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tc-row--minus .tc-row__area { color: var(--c-copper-ink); }
.tc-row__rm { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: none; color: var(--fg-muted); cursor: pointer; }
.tc-row__rm:hover { background: var(--c-paper-2); color: var(--fg); }
.tc-rows__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.tc-rows__actions .btn { gap: 6px; }
.tc-hint { margin-top: 10px; font-size: .84rem; color: var(--fg-muted); }
.tc-measured { padding-top: var(--s-3); border-top: 1px dashed var(--c-line); font-size: .95rem; }
@media (max-width: 560px) {
.tc-row { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto; grid-template-areas: "name name name rm" "l x w area"; row-gap: 6px; }
.tc-row > :nth-child(1) { grid-area: name; }
.tc-row > :nth-child(2) { grid-area: l; }
.tc-row > :nth-child(3) { grid-area: x; }
.tc-row > :nth-child(4) { grid-area: w; }
.tc-row > :nth-child(5) { grid-area: area; min-width: 5.2rem; }
.tc-row > :nth-child(6) { grid-area: rm; }
.tc-rows { gap: 16px; }
}
.tc-custom { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.tc-lays { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.tc-lay { position: relative; display: grid; justify-items: center; gap: 4px; padding: 12px 8px; text-align: center; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-md); cursor: pointer; transition: border-color var(--t-fast), background var(--t-fast); }
.tc-lay:hover { border-color: var(--c-graphite); }
.tc-lay input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.tc-lay:has(input:checked) { border-color: var(--c-forest); box-shadow: inset 0 0 0 1px var(--c-forest); background: rgb(36 74 66 / .05); }
.tc-lay:has(input:focus-visible) { outline: 2px solid var(--focus); outline-offset: 2px; }
.tc-lay__ico svg { display: block; fill: var(--c-stone); stroke: var(--c-white); stroke-width: 1; }
.tc-lay:has(input:checked) .tc-lay__ico svg { fill: var(--c-forest-2); }
.tc-lay__ico .tc-lay__frame { fill: none; stroke: var(--c-line); }
.tc-lay__t { font-size: .85rem; font-weight: 650; line-height: 1.2; }
.tc-lay__w { font-size: .78rem; color: var(--fg-muted); }
@media (max-width: 560px) { .tc-lays { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tc-extra { display: flex; flex-wrap: wrap; align-items: end; gap: var(--s-4); }
.tc-extra__waste { width: 230px; max-width: 100%; }
.tc-check { flex: 1 1 240px; display: flex; align-items: center; gap: 10px; min-height: 52px; font-size: .92rem; cursor: pointer; }
.tc-check input { flex: none; width: 20px; height: 20px; accent-color: var(--c-forest); }
.tc-preview { margin: 0; display: grid; gap: 8px; }
.tc-preview__svg { height: clamp(150px, 20vw, 230px); padding: 12px; background: var(--c-paper-2); border-radius: var(--r-md); }
.tc-preview__svg svg { display: block; width: 100%; height: 100%; }
.tc-preview__svg pattern rect { fill: #efe8dc; stroke: #a99c88; }
.tc-preview__edge { fill: none; stroke: var(--c-graphite); }
.tc-preview__cap { font-size: .85rem; color: var(--fg-muted); }
.tc-pack { display: block; }
.tc-pack > * + * { margin-top: var(--s-4); }
.tc-pack > summary, .tc-compare > summary { list-style: none; cursor: pointer; float: none; }
.tc-pack > summary::-webkit-details-marker, .tc-compare > summary::-webkit-details-marker { display: none; }
.tc-pack summary small { display: block; font-size: .82rem; font-weight: 500; color: var(--fg-muted); }
.tc-pack__chev { margin-left: auto; flex: none; transition: transform var(--t-fast) var(--ease-out); }
details[open] > summary .tc-pack__chev { transform: rotate(180deg); }
.tc-pack__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.tc-pack__reset { font-size: .9rem; }
@media (max-width: 420px) { .tc-pack__grid, .tc-custom { grid-template-columns: 1fr; } }
.tc-out { display: grid; gap: var(--s-4); padding: clamp(1.3rem, 1rem + 1vw, 1.8rem); background: var(--c-ink); color: var(--c-on-dark); border-radius: var(--r-lg); box-shadow: var(--shadow-2); }
.tc-out__kicker { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-soft); }
.tc-big { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tc-big > div { display: grid; gap: 2px; padding: 14px 16px; background: rgb(255 255 255 / .06); border-radius: var(--r-md); }
.tc-big__n { font-size: clamp(2.1rem, 1.6rem + 1.6vw, 2.8rem); font-weight: 700; line-height: 1.05; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: #fff; }
.tc-big__l { font-size: .88rem; color: var(--c-on-dark-2); }
.is-empty .tc-big__n { opacity: .5; }
.tc-order { font-size: 1rem; }
.tc-order strong { font-size: 1.25rem; color: #fff; }
.tc-order span { color: var(--c-on-dark-2); }
.tc-dl { font-size: .9rem; border-top: 1px solid rgb(255 255 255 / .1); }
.tc-dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgb(255 255 255 / .08); }
.tc-dl dt { color: var(--c-on-dark-2); }
.tc-dl dd { text-align: right; font-variant-numeric: tabular-nums; }
.tc-ship { display: grid; gap: 8px; padding: 14px; background: rgb(255 255 255 / .05); border-radius: var(--r-md); }
.tc-ship__t { display: flex; align-items: center; gap: 8px; font-size: .9rem; }
.tc-ship__t strong { margin-left: auto; font-size: 1.05rem; color: #fff; }
.tc-bar { height: 10px; overflow: hidden; background: rgb(255 255 255 / .12); border-radius: 999px; }
.tc-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--c-copper), var(--c-copper-soft)); border-radius: inherit; transition: width var(--t-std) var(--ease-out); }
.tc-ship__msg, .tc-ship__fit { font-size: .86rem; color: var(--c-on-dark-2); }
.tc-ship__fit strong { color: var(--c-on-dark); }
.tc-ship__fit:empty { display: none; }
.tc-actions { display: grid; gap: 10px; }
.tc-actions .btn { width: 100%; }
.tc-out .btn--primary { --btn-bg: var(--c-paper); --btn-fg: var(--c-ink); }
.tc-out .btn--primary:hover { --btn-bg: #fff; }
.tc-out .btn--ghost { --btn-fg: var(--c-on-dark); --btn-bd: rgb(255 255 255 / .3); }
.tc-out .btn--ghost:hover { --btn-bd: rgb(255 255 255 / .7); }
.tc-actions__mini { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; }
.tc-actions__mini button { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 999px; background: none; color: var(--c-on-dark-2); font-size: .85rem; font-weight: 600; cursor: pointer; }
.tc-actions__mini button:hover { color: #fff; background: rgb(255 255 255 / .06); }
.tc-out :focus-visible { outline-color: var(--c-copper-soft); }
.tc-out__note { font-size: .8rem; line-height: 1.5; color: var(--c-on-dark-2); }
.tc-compare { padding: 0 clamp(1.1rem, .8rem + 1vw, 1.6rem); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.tc-compare > summary { display: flex; align-items: center; gap: 10px; min-height: 60px; font-weight: 700; }
.tc-compare[open] { padding-bottom: 1.2rem; }
.tc-compare > .hint { margin-bottom: 12px; font-size: .84rem; color: var(--fg-muted); }
.tc-compare__t th, .tc-compare__t td { padding: 10px 12px; white-space: nowrap; font-variant-numeric: tabular-nums; vertical-align: middle; }
.tc-compare__t tr.is-current { background: rgb(36 74 66 / .06); }
.tc-compare__t .chip { min-height: 36px; padding: 0 14px; cursor: pointer; }
.tc-compare__cur { font-size: .8rem; font-weight: 700; color: var(--c-forest); }
.tc-noscript { margin-top: var(--s-4); padding: 14px 18px; background: #fff4d6; border: 1px dashed #c99a2e; border-radius: var(--r-md); }
.tc-dock {
position: fixed; left: 12px; right: 86px; bottom: max(18px, env(safe-area-inset-bottom)); z-index: 140;
display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 56px; padding: 0 18px;
border: 0; border-radius: 999px; background: var(--c-ink); color: var(--c-on-dark); box-shadow: var(--shadow-3);
font-size: .92rem; font-weight: 600; text-align: left; cursor: pointer;
transform: translateY(calc(100% + 28px)); transition: transform var(--t-std) var(--ease-out);
}
.tc-dock.is-on { transform: none; }
.tc-dock strong { color: #fff; }
.tc-dock span:last-child { flex: none; color: var(--c-copper-soft); font-size: .85rem; }
@media (min-width: 1021px) { .tc-dock { display: none; } }
.tc-sec-head { display: grid; gap: var(--s-3); max-width: 820px; margin-bottom: var(--s-6); }
.tc-sec-head .eyebrow { margin-bottom: 0; }
.tc-prose-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
.tc-prose-grid .prose > h2:first-child { margin-top: 0; }
.tc-side { position: sticky; top: calc(var(--header-h) + 24px); }
.tc-ref th, .tc-ref td { white-space: nowrap; font-variant-numeric: tabular-nums; }
.tc-ref th a { color: var(--accent); font-weight: 650; }
.tc-ref__note { margin-top: var(--s-3); font-size: .84rem; color: var(--fg-muted); }
.tc-plan h3 { margin-bottom: 8px; font-size: 1.15rem; font-weight: 700; }
.tc-plan p { font-size: .95rem; color: var(--fg-muted); }
.tc-plan a { color: var(--accent); }
.tc-faq { max-width: 900px; }
.tc-faq__more { margin-top: var(--s-6); }
@media (max-width: 900px) {
.tc-prose-grid { grid-template-columns: 1fr; }
.tc-side { position: static; }
}
@media print {
.page-tile-calculator .site-footer, .page-tile-calculator .cta-band, .tc-hero .breadcrumbs, .tc-hero .lead, .tc-answer,
#how-to-calculate, #tiles-per-box, #how-much-extra, #import-orders, #faq,
.tc-actions, .tc-rows__actions, .tc-row__rm, .tc-pack__reset, .tc-dock, .tc-compare .chip, .tc-hint, .tc-noscript { display: none !important; }
.tc-hero { padding: 0 0 12px; background: none; }
.tc__grid { display: block; }
.tc-step, .tc-compare, .tc-out { break-inside: avoid; margin-bottom: 12px; box-shadow: none; }
.tc-out { position: static; background: #fff; color: #000; border: 1px solid #999; }
.tc-out *, .tc-big__n, .tc-order strong, .tc-ship__t strong { color: #000 !important; }
.tc-big > div, .tc-ship { background: #f3f3f3; }
}
.page-guide, .page-resources {
--rs-rail: 248px;
--rs-measure: 720px;
--rs-sticky-top: calc(var(--header-h) + 24px);
--rs-label: 700 var(--fs-xs) / 1.2 var(--f-sans);
}
.rs-answer__label, .rs-takeaway__label, .rs-questions__label, .rs-toc__title,
.rs-card__cat, .rs-path__kicker, .rs-featured__stamp {
font: var(--rs-label); letter-spacing: var(--tracking-caps); text-transform: uppercase;
}
.rs-progress { position: fixed; inset: 0 0 auto 0; z-index: 120; height: 3px; pointer-events: none; }
.rs-progress > span {
display: block; height: 100%; transform-origin: 0 50%; transform: scaleX(var(--p, 0));
background: linear-gradient(90deg, var(--c-copper), var(--c-forest));
}
@supports (animation-timeline: scroll()) {
.rs-progress > span { animation: rsProgress linear both; animation-timeline: scroll(root); }
.rs-progress.is-js > span { animation: none; }
}
@keyframes rsProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.page-guide .page-hero__grid { grid-template-columns: minmax(0, 1fr); }
.page-guide .page-hero__copy { max-width: 1000px; }
.page-guide .page-hero__copy .display-1 {
max-width: 22ch; font-size: clamp(2.2rem, 1.2rem + 3.2vw, 4.4rem); line-height: 1.04; text-wrap: balance;
}
.page-guide .page-hero__copy .lead { max-width: 62ch; }
.page-guide .page-hero .btn-row { display: block; }
.rs-meta {
display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px;
margin-top: var(--s-2); padding-top: var(--s-5); border-top: 1px solid rgb(31 36 39 / .14);
font-size: .9rem; color: var(--fg-muted);
}
.rs-meta__item { display: inline-flex; align-items: center; gap: 8px; }
.rs-meta__item > .icon { color: var(--c-copper-ink); flex: none; }
.rs-meta strong { color: var(--fg); font-weight: 650; }
.rs-review {
display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px 5px 10px; border-radius: 999px;
background: #fff6de; color: #6b4b00; border: 1px dashed #c99a2e; font-size: .78rem; font-weight: 650; letter-spacing: .01em;
}
.rs-article { padding-top: clamp(2.5rem, 1.5rem + 3vw, 5rem); }
.rs-article__grid {
display: grid; grid-template-columns: var(--rs-rail) minmax(0, var(--rs-measure));
justify-content: center; align-items: start; gap: clamp(3rem, 1rem + 5vw, 7rem);
}
.rs-rail { position: sticky; top: var(--rs-sticky-top); max-height: calc(100vh - var(--rs-sticky-top) - 24px); overflow-y: auto; scrollbar-width: thin; padding-bottom: var(--s-4); }
.rs-body { min-width: 0; }
.rs-toc__title { color: var(--c-copper-ink); margin-bottom: var(--s-4); }
.rs-toc__list { display: grid; border-left: 1px solid var(--c-line); }
.rs-toc__list a {
display: grid; grid-template-columns: 1.9rem 1fr; gap: 4px; margin-left: -1px; padding: 9px 0 9px 16px;
border-left: 2px solid transparent; font-size: .9rem; line-height: 1.35; color: var(--fg-muted); text-decoration: none;
transition: color var(--t-fast), border-color var(--t-std) var(--ease-out), background var(--t-std);
}
.rs-toc__list a:hover { color: var(--fg); }
.rs-toc__list a.is-active { color: var(--fg); font-weight: 650; border-left-color: var(--c-copper); background: linear-gradient(90deg, rgb(183 133 91 / .08), transparent 70%); }
.rs-toc__n { font-size: .74rem; font-weight: 600; padding-top: .14em; color: var(--c-copper-ink); font-variant-numeric: tabular-nums; }
.rs-toc__quote {
display: flex; align-items: center; gap: 10px; min-height: 48px; margin-top: var(--s-6); padding: 12px 16px;
border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-paper-2);
font-size: .88rem; font-weight: 650; text-decoration: none; transition: border-color var(--t-std), background var(--t-std);
}
.rs-toc__quote .icon { color: var(--c-forest); flex: none; }
.rs-toc__quote:hover { border-color: var(--c-graphite); background: var(--c-white); }
.rs-toc--inline { display: none; margin-bottom: var(--s-6); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-paper-2); }
.rs-toc--inline summary {
display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 0 18px; cursor: pointer; list-style: none; font-weight: 650;
}
.rs-toc--inline summary::-webkit-details-marker { display: none; }
.rs-toc--inline summary .icon { flex: none; transition: transform var(--t-std) var(--ease-out); }
.rs-toc--inline[open] summary .icon { transform: rotate(180deg); }
.rs-toc__count { margin-left: auto; font-size: .8rem; font-weight: 500; color: var(--fg-muted); }
.rs-toc--inline nav { padding: 0 18px 14px; }
.rs-toc--inline .rs-toc__list a { min-height: 44px; align-items: center; }
@media (max-width: 1023px) {
.rs-article__grid { grid-template-columns: minmax(0, var(--rs-measure)); }
.rs-rail { display: none; }
.rs-toc--inline { display: block; }
}
.rs-prose { max-width: none; font-size: 1.075rem; line-height: 1.75; counter-reset: rs-sec; }
.rs-prose > * + * { margin-top: 0; }
.rs-section { margin-top: clamp(3.25rem, 2.5rem + 2vw, 4.75rem); }
.rs-section > * + * { margin-top: 1.15em; }
.rs-prose .rs-section > h2 {
margin-top: 0; max-width: 24ch; font-size: clamp(1.85rem, 1.35rem + 1.6vw, 2.6rem); line-height: 1.08; letter-spacing: -0.015em; text-wrap: balance;
}
.rs-prose .rs-section > h2::before {
counter-increment: rs-sec; content: counter(rs-sec, decimal-leading-zero);
display: flex; align-items: center; gap: 12px; margin-bottom: 1rem;
font: 650 .78rem/1 var(--f-sans); letter-spacing: .16em; color: var(--c-copper-ink);
}
.rs-prose .rs-section > h2 + * { margin-top: 1.1rem; }
.rs-prose h3 { margin-top: 2em; font-size: 1.18rem; line-height: 1.3; }
.rs-prose a:not(.btn) { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.rs-prose a:not(.btn):hover { text-decoration-thickness: 2px; }
.rs-prose strong { font-weight: 700; }
.rs-prose ul:not([class]) li::marker { color: var(--c-copper); }
.rs-prose ol:not([class]) li::marker { color: var(--c-copper-ink); font-weight: 650; }
.rs-prose .review-note { margin-inline: 2px; line-height: 1.4; white-space: normal; }
.rs-prose .checklist { padding-left: 0; }
.rs-prose .checklist li { margin-top: 0; }
.rs-check { gap: 14px; }
.rs-answer {
position: relative; overflow: hidden; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-radius: var(--r-lg);
background: linear-gradient(140deg, var(--c-paper-2), var(--c-limestone)); border: 1px solid var(--c-line);
}
.rs-answer::after { 
content: ''; position: absolute; right: -78px; top: -78px; width: 160px; height: 160px; border-radius: 6px;
border: 1px solid rgb(183 133 91 / .3); transform: rotate(8deg); pointer-events: none;
}
.rs-answer__label { display: flex; align-items: center; gap: 12px; color: var(--c-copper-ink); }
.rs-answer__label::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.rs-answer > p:not(.rs-answer__label) {
position: relative; z-index: 1; margin-top: .9rem; font-family: var(--f-display); font-size: clamp(1.22rem, 1.08rem + .55vw, 1.5rem); line-height: 1.42; color: var(--c-graphite);
}
.rs-takeaway { padding: clamp(1.4rem, 1rem + 1.4vw, 2rem); border-radius: var(--r-lg); background: var(--c-forest); color: var(--c-on-dark); }
.rs-takeaway__label { display: flex; align-items: center; gap: 8px; color: var(--c-copper-soft); }
.rs-takeaway__body { margin-top: .7rem; font-size: 1.08rem; line-height: 1.6; }
.rs-takeaway__body > * + * { margin-top: .7em; }
.rs-takeaway a { color: var(--c-copper-soft); }
.rs-pull { margin-block: 2.75rem !important; padding-block: 1.75rem; border-block: 1px solid var(--c-line); }
.rs-prose .rs-pull blockquote { border: 0; padding: 0; font-family: var(--f-display); font-size: clamp(1.65rem, 1.2rem + 1.5vw, 2.35rem); line-height: 1.18; letter-spacing: -0.01em; text-wrap: balance; }
.rs-pull blockquote::before { content: '“'; display: block; height: .55em; font-size: 2.6em; line-height: 1; color: var(--c-copper); }
.rs-questions { padding: clamp(1.25rem, 1rem + 1.4vw, 2rem); border: 1px solid var(--c-line); border-radius: var(--r-lg); background: rgb(255 255 255 / .65); }
.rs-questions__label { display: flex; align-items: center; gap: 8px; color: var(--c-forest); }
.rs-prose .rs-questions ol { margin-top: .9rem; padding: 0; list-style: none; counter-reset: rs-q; }
.rs-prose .rs-questions li {
display: grid; grid-template-columns: 2.5rem 1fr; gap: 6px; margin: 0; padding: .8rem 0; border-top: 1px solid var(--c-line);
counter-increment: rs-q; font-size: 1rem; line-height: 1.6;
}
.rs-questions li::before { content: 'Q' counter(rs-q); padding-top: .2em; font-size: .76rem; font-weight: 700; letter-spacing: .06em; color: var(--c-copper-ink); }
.rs-prose .rs-steps { padding: 0; margin-top: 1.5rem; border-bottom: 1px solid var(--c-line); }
.rs-prose .rs-steps__item { display: grid; grid-template-columns: 3.4rem 1fr; gap: 1rem; margin: 0; padding: 1.35rem 0; border-top: 1px solid var(--c-line); }
.rs-steps__n { font-family: var(--f-display); font-size: 2.2rem; line-height: .9; color: var(--c-copper); }
.rs-prose .rs-steps h3 { margin-top: 0; font-size: 1.12rem; }
.rs-steps__item p { margin-top: .4rem; color: var(--c-slate-2); }
.rs-table { margin-block: 2rem !important; }
.rs-table .table-wrap { background: rgb(255 255 255 / .7); border-radius: var(--r-md); }
.rs-table .table-wrap:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.rs-table caption {
caption-side: top; text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--c-line);
font-size: .84rem; font-weight: 650; line-height: 1.45; color: var(--fg-muted); background: var(--c-paper);
}
.rs-prose .rs-table th, .rs-prose .rs-table td { padding: 13px 16px; font-size: .92rem; line-height: 1.55; }
.rs-prose .rs-table thead th { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-copper-ink); background: var(--c-paper-2); white-space: nowrap; }
.rs-prose .rs-table tbody th { background: transparent; min-width: 8.5rem; }
.rs-table tbody tr:last-child > * { border-bottom: 0; }
.rs-table tbody tr:hover > * { background: rgb(183 133 91 / .05); }
.rs-table__note { margin-top: .75rem; font-size: .85rem; line-height: 1.55; color: var(--fg-muted); }
@media (max-width: 640px) {
.rs-table .table-wrap { overflow: visible; background: transparent; border: 0; }
.rs-table table, .rs-table tbody, .rs-table tr, .rs-table caption { display: block; }
.rs-table caption { padding: 0 0 12px; border: 0; background: transparent; }
.rs-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rs-table tr { margin-top: 12px; border: 1px solid var(--c-line); border-radius: var(--r-md); background: rgb(255 255 255 / .7); overflow: hidden; }
.rs-prose .rs-table tbody th, .rs-prose .rs-table td { display: block; border-bottom: 0; }
.rs-prose .rs-table tbody th { padding: 12px 16px; background: var(--c-paper-2); font-size: .98rem; }
.rs-prose .rs-table td { padding: 10px 16px 0; }
.rs-prose .rs-table td:last-child { padding-bottom: 14px; }
.rs-table td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-copper-ink); }
.rs-table tbody tr:hover > * { background: inherit; }
.rs-prose .rs-table tbody tr:hover th { background: var(--c-paper-2); }
}
.rs-template { margin-block: 2rem !important; overflow: hidden; border-radius: var(--r-lg); background: var(--c-ink); color: var(--c-on-dark); box-shadow: var(--shadow-2); }
.rs-template__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 1rem; padding: 12px 14px 12px 20px; border-bottom: 1px solid rgb(255 255 255 / .1); }
.rs-template__title { flex: 1 1 13rem; display: flex; align-items: center; gap: 10px; font-size: .95rem; font-weight: 650; line-height: 1.35; }
.rs-template__title .icon { color: var(--c-copper-soft); flex: none; }
.rs-template__copy { --btn-fg: var(--c-on-dark); --btn-bd: rgb(255 255 255 / .3); flex: none; }
.rs-template__copy:hover { --btn-bd: rgb(255 255 255 / .7); }
.rs-template__copy[hidden] { display: none; }
.rs-template__intro { margin: 0; padding: 14px 20px 0; font-size: .92rem; color: var(--c-on-dark-2); }
.rs-template__body {
margin: 0; padding: 18px 20px 22px; overflow: auto; tab-size: 2;
font: 400 .84rem/1.7 ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Consolas, monospace;
white-space: pre-wrap; overflow-wrap: anywhere; color: var(--c-on-dark); scrollbar-width: thin;
}
.rs-template__body:focus-visible { outline: 2px solid var(--c-copper-soft); outline-offset: -4px; }
.rs-prose .rs-section.rs-help {
position: relative; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-radius: var(--r-lg);
background: var(--c-paper-2); border: 1px solid var(--c-line); border-top: 3px solid var(--c-forest);
}
.rs-help .rs-help__ctas { margin-top: 1.5rem; }
.rs-prose .btn { color: var(--btn-fg); text-decoration: none; }
.rs-sources__list { border-top: 1px solid var(--c-line); }
.rs-prose .rs-sources__list li { margin: 0; padding: .8rem 0; border-bottom: 1px solid var(--c-line); font-size: .95rem; line-height: 1.5; }
.rs-sources__list a { font-weight: 600; overflow-wrap: anywhere; }
.rs-sources__list a .icon { display: inline-block; vertical-align: -2px; margin-left: 4px; }
.rs-sources__list li > span { color: var(--fg-muted); }
.rs-sources__fine { font-size: .86rem; line-height: 1.6; color: var(--fg-muted); }
.rs-about { margin-top: clamp(2.5rem, 2rem + 1vw, 3.5rem); padding: 1.1rem 1.4rem; border-radius: var(--r-md); border: 1px dashed var(--c-stone); font-size: .88rem; line-height: 1.6; color: var(--fg-muted); }
.rs-related__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: clamp(1.75rem, 1.25rem + 2vw, 3rem); }
.rs-grid { display: grid; gap: clamp(1rem, .5rem + 1.4vw, 1.75rem); }
.rs-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rs-grid--hub { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1199px) { .rs-grid--hub { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 960px) { .rs-grid--3, .rs-grid--hub { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rs-grid--3, .rs-grid--hub { grid-template-columns: minmax(0, 1fr); } }
.rs-card[hidden] { display: none; }
.rs-card__link {
position: relative; isolation: isolate; display: flex; flex-direction: column; height: 100%; overflow: hidden;
border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-white); color: inherit; text-decoration: none;
transition: transform 600ms var(--ease-out), box-shadow 600ms var(--ease-out), border-color var(--t-std);
}
.rs-card__link:hover { transform: translateY(-5px); box-shadow: var(--shadow-2); border-color: transparent; }
.rs-card__link:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.rs-card__media, .rs-featured__media {
position: relative; overflow: hidden;
background: var(--tex) center / cover no-repeat, linear-gradient(135deg, var(--c-limestone), var(--c-stone));
}
.rs-card__media { aspect-ratio: 4 / 3; }
.rs-card__media img, .rs-featured__media img {
position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; color: transparent;
transition: transform 1400ms var(--ease-out);
}
.rs-card__link:hover .rs-card__media img { transform: scale(1.07); }
.rs-card__media::after, .rs-featured__media::after {
content: ''; position: absolute; inset: 0; pointer-events: none;
background:
linear-gradient(90deg, transparent calc(50% - 1px), rgb(255 255 255 / .75) calc(50% - 1px), rgb(255 255 255 / .75) calc(50% + 1px), transparent calc(50% + 1px)),
linear-gradient(0deg, transparent calc(50% - 1px), rgb(255 255 255 / .75) calc(50% - 1px), rgb(255 255 255 / .75) calc(50% + 1px), transparent calc(50% + 1px)),
linear-gradient(180deg, transparent 55%, rgb(21 25 27 / .18));
}
.rs-card__no {
position: absolute; left: 14px; top: 14px; z-index: 1; padding: 6px 11px; border-radius: 999px;
background: rgb(255 255 255 / .9); backdrop-filter: blur(6px);
font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-graphite);
}
.rs-card__go {
position: absolute; right: 14px; top: 14px; z-index: 1; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
background: var(--c-paper); color: var(--c-graphite); box-shadow: var(--shadow-1);
opacity: 0; transform: scale(.8) rotate(-12deg); transition: opacity var(--t-std), transform 500ms var(--ease-out), background var(--t-std), color var(--t-std);
}
.rs-card__link:hover .rs-card__go, .rs-card__link:focus-visible .rs-card__go { opacity: 1; transform: none; background: var(--c-forest); color: var(--c-white); }
@media (hover: none) { .rs-card__go { opacity: 1; transform: none; } }
.rs-card__body { display: flex; flex: 1; flex-direction: column; gap: .65rem; padding: 1.25rem 1.35rem 1.35rem; }
.rs-card__cat { color: var(--c-copper-ink); }
.rs-card__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.35rem, 1.2rem + .45vw, 1.6rem); line-height: 1.12; letter-spacing: -0.01em; text-wrap: balance; }
.rs-card__link:hover .rs-card__title { color: var(--c-forest); }
.rs-card__excerpt { font-size: .92rem; line-height: 1.55; color: var(--fg-muted); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.rs-card__meta {
display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: auto; padding-top: .95rem;
border-top: 1px solid var(--c-line); font-size: .8rem; color: var(--fg-muted);
}
.rs-card__meta .icon { color: var(--c-copper-ink); flex: none; }
.rs-featured-wrap { padding-bottom: 0; }
.rs-featured {
display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); min-height: 540px; overflow: hidden;
border-radius: var(--r-xl); background: var(--c-ink); color: var(--c-on-dark); box-shadow: var(--shadow-3);
}
.rs-featured__media { display: block; min-height: 340px; }
.rs-featured__media:hover img { transform: scale(1.04); }
.rs-featured__stamp {
position: absolute; left: 24px; bottom: 24px; z-index: 1; padding: 8px 14px; border-radius: 999px;
background: var(--c-copper-soft); color: var(--c-ink);
}
.rs-featured__copy { display: grid; align-content: center; gap: 1.25rem; padding: clamp(2rem, 1.25rem + 3.5vw, 4.5rem); }
.rs-featured .eyebrow { color: var(--c-copper-soft); margin: 0; }
.rs-featured h2 { max-width: 20ch; text-wrap: balance; }
.rs-featured h2 a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size 600ms var(--ease-out); }
.rs-featured h2 a:hover { background-size: 100% 1px; }
.rs-featured .lead { color: var(--c-on-dark-2); font-size: 1.05rem; }
.rs-featured .rs-card__meta { margin-top: 0; border-top-color: rgb(255 255 255 / .12); color: var(--c-on-dark-2); }
.rs-featured .rs-card__meta .icon { color: var(--c-copper-soft); }
.rs-featured .link-arrow { color: var(--c-copper-soft); min-height: 44px; }
@media (max-width: 900px) {
.rs-featured { grid-template-columns: minmax(0, 1fr); min-height: 0; border-radius: var(--r-lg); }
.rs-featured__media { min-height: 0; aspect-ratio: 16 / 10; }
}
.rs-all__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem 3rem; margin-bottom: clamp(1.75rem, 1.25rem + 2vw, 3rem); }
.rs-all__head .eyebrow { margin-bottom: var(--s-3); }
.rs-filter__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-filter__chips .chip { min-height: 44px; cursor: pointer; white-space: nowrap; }
.rs-filter__chips .chip:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.rs-filter__n { min-width: 1.4em; font-size: .74rem; font-weight: 700; opacity: .55; font-variant-numeric: tabular-nums; }
.no-js .rs-filter__chips { display: none; }
.rs-filter__empty { padding: 2rem; border: 1px dashed var(--c-stone); border-radius: var(--r-lg); color: var(--fg-muted); text-align: center; }
@media (max-width: 640px) {
.rs-all__head { display: grid; gap: 1.25rem; }
.rs-filter__chips {
flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding: 2px var(--gutter);
scrollbar-width: none; scroll-snap-type: x proximity; scroll-padding-inline: var(--gutter);
}
.rs-filter__chips::-webkit-scrollbar { display: none; }
.rs-filter__chips .chip { scroll-snap-align: start; flex: none; }
}
.rs-path__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 1rem + 2.5vw, 3.5rem); }
.rs-path__col { padding-top: 1.4rem; border-top: 2px solid var(--c-graphite); }
.rs-path__kicker { color: var(--c-copper-ink); }
.rs-path__title { margin-top: .6rem; font-family: var(--f-display); font-weight: 400; font-size: clamp(1.6rem, 1.3rem + .9vw, 2.1rem); line-height: 1.1; }
.rs-path__list { margin-top: 1.25rem; border-top: 1px solid var(--c-line); }
.rs-path__list a {
display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; padding: 12px 0;
border-bottom: 1px solid var(--c-line); font-size: .95rem; font-weight: 600; line-height: 1.4; text-decoration: none;
transition: color var(--t-fast);
}
.rs-path__list a .icon { flex: none; color: var(--c-copper-ink); transition: transform var(--t-fast) var(--ease-out); }
.rs-path__list a:hover { color: var(--c-forest); }
.rs-path__list a:hover .icon { transform: translateX(4px); }
@media (max-width: 900px) { .rs-path__grid { grid-template-columns: minmax(0, 1fr); } }
.rs-gloss__layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr); align-items: start; gap: clamp(2rem, 1rem + 5vw, 6.5rem); }
.rs-gloss__head { position: sticky; top: var(--rs-sticky-top); display: grid; gap: 1.25rem; }
.rs-gloss__head .eyebrow { margin: 0; }
.rs-gloss__index { display: flex; flex-wrap: wrap; gap: 6px; margin-top: .25rem; }
.rs-gloss__index a {
display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--c-line); border-radius: 999px;
background: var(--c-white); font-size: .82rem; font-weight: 600; text-decoration: none; transition: border-color var(--t-fast), background var(--t-fast);
}
.rs-gloss__index a:hover { border-color: var(--c-graphite); }
.rs-gloss__list { border-top: 1px solid var(--c-line); }
.rs-gloss__item {
display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr; gap: .5rem 2rem; padding: 1.5rem 0; border-bottom: 1px solid var(--c-line);
scroll-margin-top: var(--rs-sticky-top); transition: background 800ms var(--ease-out);
}
.rs-gloss__item:target { background: linear-gradient(90deg, rgb(183 133 91 / .12), transparent 80%); }
.rs-gloss__item dt { font-family: var(--f-display); font-size: 1.55rem; line-height: 1.15; }
.rs-gloss__item dd { color: var(--fg-muted); line-height: 1.7; max-width: 60ch; }
@media (max-width: 1000px) {
.rs-gloss__layout { grid-template-columns: minmax(0, 1fr); }
.rs-gloss__head { position: static; }
}
@media (max-width: 600px) { .rs-gloss__item { grid-template-columns: minmax(0, 1fr); padding: 1.2rem 0; } }
.page-guide .cta-band .display-2 em, .page-resources .cta-band .display-2 em { color: var(--c-copper-soft); }
@media (prefers-reduced-motion: reduce) {
.rs-card__link, .rs-card__media img, .rs-featured__media img, .rs-card__go, .rs-toc__list a { transition: none; }
.rs-card__link:hover { transform: none; }
.rs-card__link:hover .rs-card__media img, .rs-featured__media:hover img { transform: none; }
.rs-progress > span { animation: none !important; }
}
@media print {
.rs-progress, .rs-rail, .rs-toc--inline, .rs-related, .page-guide .cta-band, .rs-template__copy { display: none !important; }
.rs-article__grid { display: block; }
.rs-template { background: none; color: inherit; box-shadow: none; border: 1px solid #999; }
.rs-template__body { max-height: none; color: inherit; }
}
.xc-preview {
--pv-sky-top: #7eaedb; --pv-sky-hz: #dfe9ef; --pv-ground-top: #9dac86; --pv-ground-bottom: #73845d; --pv-frost: #eef0ee;
--pv-lamps: 0; --pv-glow: 0; --s: 100; --hz: 40%;
--pv-plaster: #eeeae3; --pv-ceiling: #f3f0ea; --pv-render: #e9e4dc;
position: relative; width: 100%; height: 100%; min-height: 0; overflow: hidden; isolation: isolate;
background: var(--pv-ground-bottom); color: #fff; user-select: none; -webkit-user-select: none;
contain: layout paint; border-radius: inherit;
}
.xc-preview__view {
position: absolute; inset: 0;
background: linear-gradient(180deg, var(--pv-sky-top) 0, var(--pv-sky-hz) var(--hz), var(--pv-ground-top) var(--hz), var(--pv-ground-bottom) 100%);
}
.xc-preview__stage { position: absolute; left: 50%; top: 40%; width: 0; height: 0; transform-style: preserve-3d; }
.xc-preview__plane {
position: absolute; left: 0; top: 0; transform-origin: 0 0; overflow: hidden;
background-repeat: repeat; background-color: var(--pv-plaster);
}
.xc-preview__plane.is-interactive { cursor: pointer; }
.xc-preview__plane.is-interactive::after {
content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0;
background: rgb(255 255 255 / .16); box-shadow: inset 0 0 0 calc(var(--s) * .035px) rgb(255 255 255 / .95);
transition: opacity var(--t-fast);
}
.xc-preview__plane.is-interactive.is-hot::after { opacity: 1; }
.xc-preview__fx { position: absolute; inset: 0; pointer-events: none; }
.xc-preview__fxpoly { position: absolute; inset: 0; pointer-events: none; filter: blur(calc(var(--blur, .05) * var(--s) * 1px)); }
.xc-preview__fxpoly > span { position: absolute; inset: 0; }
.xc-preview__fxpoly--sun { mix-blend-mode: soft-light; }
.xc-preview__fxpoly--sun > span { filter: brightness(1.15); }
.xc-preview__fxpoly--pool, .xc-preview__fxpoly--refl { mix-blend-mode: screen; filter: blur(calc(var(--blur, .05) * var(--s) * 1px)); }
.xc-preview__fxpoly--pool { filter: none; }
.xc-preview__plane--plaster::before, .xc-preview__plane--render::before {
content: ''; position: absolute; inset: 0; pointer-events: none; background: rgb(40 30 20 / var(--sh, 0));
}
.xc-preview__plane--render { background-color: var(--pv-render); }
.xc-preview__plane--ceiling {
background-color: var(--pv-ceiling);
background-image: radial-gradient(120% 90% at 50% 100%, rgb(255 255 255 / .35), rgb(60 45 30 / .07));
}
.xc-preview__plane--reveal { background-color: #e4dfd6; }
.xc-preview__plane--reveal-ext, .xc-preview__plane--reveal.xc-preview__plane--reveal--ext { background-color: #d9d3c9; }
.xc-preview__plane--sill { background-color: #ece8e1; }
.xc-preview__plane--glass {
background-color: rgb(200 220 232 / .14);
background-image: linear-gradient(115deg, rgb(255 255 255 / .2) 0 18%, rgb(255 255 255 / 0) 34% 62%, rgb(255 255 255 / .12) 70% 76%, rgb(255 255 255 / 0) 84%);
box-shadow: inset 0 0 0 calc(var(--s) * .045px) #2b2d2f;
}
.xc-preview__plane--glass--glazing, .xc-preview__plane--glass--slider {
background-image:
linear-gradient(90deg, transparent calc(50% - var(--s) * .02px), #2b2d2f calc(50% - var(--s) * .02px) calc(50% + var(--s) * .02px), transparent calc(50% + var(--s) * .02px)),
linear-gradient(115deg, rgb(255 255 255 / .2) 0 18%, rgb(255 255 255 / 0) 34% 62%, rgb(255 255 255 / .12) 70% 76%, rgb(255 255 255 / 0) 84%);
}
.xc-preview__plane--glass--outside {
background-color: #6f7f8c;
background-image:
linear-gradient(180deg, rgb(225 236 244 / .75) 0, rgb(150 170 186 / .5) 46%, rgb(48 56 62 / .85) 100%),
linear-gradient(115deg, rgb(255 255 255 / .35) 0 16%, rgb(255 255 255 / 0) 30%);
}
.xc-preview[data-lighting="evening"] .xc-preview__plane--glass--outside,
.xc-preview[data-lighting="night"] .xc-preview__plane--glass--outside {
background-color: #b48a55; background-image: linear-gradient(180deg, rgb(255 214 150 / .9), rgb(170 112 60 / .9));
}
.xc-preview__plane--frost { background-color: var(--pv-frost); box-shadow: inset 0 0 0 calc(var(--s) * .045px) #e7e3dc; }
.xc-preview__plane--door {
background-color: #b89a7a;
background-image:
linear-gradient(90deg, transparent 84%, rgb(40 30 20 / .55) 84% 87%, transparent 87%),
linear-gradient(180deg, rgb(255 255 255 / .1), rgb(40 30 20 / .1));
}
.xc-preview__plane--door--front { background-color: #3b3530; }
.xc-preview__plane--curtain {
background-color: #efe8dc;
background-image: repeating-linear-gradient(90deg, rgb(255 255 255 / .25) 0, rgb(80 60 40 / .12) calc(var(--s) * .09px), rgb(255 255 255 / .25) calc(var(--s) * .18px));
}
.xc-preview__plane--balustrade {
background-color: rgb(210 228 236 / .18);
box-shadow: inset 0 0 0 calc(var(--s) * .02px) rgb(255 255 255 / .55);
background-image: linear-gradient(115deg, rgb(255 255 255 / .22) 0 12%, transparent 28%);
}
.xc-preview__plane--lawn {
background-color: #7f9561;
background-image:
radial-gradient(60% 40% at 30% 30%, rgb(255 255 255 / .06), transparent),
repeating-linear-gradient(90deg, rgb(0 0 0 / .03) 0 calc(var(--s) * .6px), transparent calc(var(--s) * .6px) calc(var(--s) * 1.2px));
}
.xc-preview__plane--paving { background-color: #b7b2aa; }
.xc-preview__plane--street {
background-color: #55585b;
background-image: linear-gradient(180deg, transparent 48%, rgb(240 236 228 / .7) 48% 50%, transparent 50%);
background-size: calc(var(--s) * 3px) 100%;
}
.xc-preview__plane--kerb { background-color: #c9c4bb; }
.xc-preview__plane--box { background-image: linear-gradient(180deg, rgb(255 255 255 / .06), rgb(0 0 0 / .05)); }
.xc-preview__plane--box--fabric { background-image: radial-gradient(140% 120% at 30% 20%, rgb(255 255 255 / .1), rgb(0 0 0 / .06)); }
.xc-preview__plane--box--cabinet {
background-image: repeating-linear-gradient(90deg, transparent 0 calc(var(--s) * .595px), rgb(0 0 0 / .28) calc(var(--s) * .595px) calc(var(--s) * .6px));
}
.xc-preview__plane--box--mirror {
background-image: linear-gradient(160deg, rgb(255 255 255 / .55), rgb(255 255 255 / .05) 45%, rgb(255 255 255 / .25) 70%, rgb(0 0 0 / .1));
}
.xc-preview__plane--box--glass { background-color: rgb(215 232 238 / .2) !important; background-image: linear-gradient(115deg, rgb(255 255 255 / .3) 0 10%, transparent 30%); }
.xc-preview__plane--box--leaf {
background-image: radial-gradient(circle at 30% 40%, rgb(255 255 255 / .12) 0 8%, transparent 9%), radial-gradient(circle at 70% 60%, rgb(0 0 0 / .14) 0 10%, transparent 11%);
background-size: calc(var(--s) * .22px) calc(var(--s) * .2px);
}
.xc-preview__plane--box--slats {
background-image: repeating-linear-gradient(90deg, rgb(70 45 25 / .3) 0 calc(var(--s) * .02px), transparent calc(var(--s) * .02px) calc(var(--s) * .12px));
}
.xc-preview[data-lighting="evening"] .xc-preview__plane--box--shade,
.xc-preview[data-lighting="night"] .xc-preview__plane--box--shade { background-color: #ffe2ad !important; }
.xc-preview__tint { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: multiply; transition: background-color var(--t-std); }
.xc-preview__glow { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; }
.xc-preview__glow::before {
content: ''; position: absolute; inset: 0; opacity: var(--pv-glow);
background: radial-gradient(90% 70% at 0% 40%, rgb(255 170 90 / .55), transparent 70%);
}
.xc-preview__lamp {
position: absolute; transform: translate(-50%, -50%); border-radius: 50%; opacity: var(--pv-lamps);
background: radial-gradient(closest-side, rgb(255 236 200 / .95), rgb(255 190 120 / .45) 30%, rgb(255 170 90 / 0));
transition: opacity var(--t-std);
}
.xc-preview__vignette {
position: absolute; inset: 0; pointer-events: none;
background: radial-gradient(130% 110% at 50% 45%, transparent 55%, rgb(20 16 12 / .28));
}
.xc-preview__pins { position: absolute; inset: 0; pointer-events: none; }
.xc-preview__pin {
position: absolute; pointer-events: auto; display: inline-grid; grid-template-columns: 32px auto; grid-template-rows: auto auto;
column-gap: 9px; row-gap: 1px; align-items: center; align-content: center;
min-height: 44px; padding: 5px 14px 5px 6px; transform: translate(-22px, -50%);
border: 0; border-radius: 999px; background: rgb(21 25 27 / .72); color: #fff; cursor: pointer;
font: 600 .82rem/1.15 var(--f-sans); text-align: left; max-width: min(64%, 260px);
backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
box-shadow: 0 6px 20px -6px rgb(0 0 0 / .45);
transition: background var(--t-fast);
}
.xc-preview__pin:hover, .xc-preview__pin.is-hot { background: rgb(21 25 27 / .9); }
.xc-preview__pin[aria-pressed="true"] { background: var(--c-forest); }
.xc-preview__pin:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.xc-preview__pin-dot {
grid-row: 1 / 3; width: 32px; height: 32px; border-radius: 50%; position: relative;
background: rgb(255 255 255 / .16); box-shadow: inset 0 0 0 2px rgb(255 255 255 / .85);
}
.xc-preview__pin-dot::after { content: ''; position: absolute; inset: 11px; border-radius: 50%; background: #fff; }
.xc-preview__pin-k { display: block; font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; opacity: .78; font-weight: 700; }
.xc-preview__pin-v { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xc-preview__pin.is-flip { grid-template-columns: auto 32px; padding: 5px 6px 5px 14px; transform: translate(calc(-100% + 22px), -50%); text-align: right; }
.xc-preview__pin.is-flip .xc-preview__pin-dot { grid-column: 2; grid-row: 1 / 3; }
.xc-preview__pin.is-flip .xc-preview__pin-k, .xc-preview__pin.is-flip .xc-preview__pin-v { grid-column: 1; }
.xc-preview__pin.is-flip .xc-preview__pin-k { grid-row: 1; }
.xc-preview__pin.is-flip .xc-preview__pin-v { grid-row: 2; }
.xc-preview__badge {
position: absolute; left: 12px; bottom: 12px; padding: 5px 10px; border-radius: 999px; pointer-events: none;
background: rgb(21 25 27 / .6); color: rgb(255 255 255 / .92); font: 650 .68rem/1 var(--f-sans);
letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
@media (max-width: 560px) {
.xc-preview__pin { font-size: .76rem; max-width: 58%; }
.xc-preview__pin-k { display: none; }
.xc-preview__pin, .xc-preview__pin.is-flip { grid-template-rows: auto; }
.xc-preview__pin .xc-preview__pin-dot, .xc-preview__pin.is-flip .xc-preview__pin-dot,
.xc-preview__pin.is-flip .xc-preview__pin-v { grid-row: 1; }
}
@media (prefers-reduced-motion: reduce) {
.xc-preview *, .xc-preview *::after, .xc-preview *::before { transition: none !important; }
}
.page-xc, .xcp-room-hero, .xcp-l-hero, .xcp-env-hero { --xc-hero-pad: calc(var(--header-h) + clamp(1.5rem, 1rem + 3vw, 4rem)); }
.xcp-kicker { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.xcp-status {
display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px;
font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.xcp-status::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.xcp-status--live { background: rgb(36 74 66 / .12); color: var(--c-forest); }
.xcp-status--dev { background: #fff4d6; color: #7a5600; }
.on-dark .xcp-status--live { background: rgb(231 211 191 / .14); color: var(--c-copper-soft); }
.xcp-disclaimer {
display: flex; gap: 10px; align-items: flex-start; font-size: var(--fs-sm); color: var(--fg-muted); max-width: 72ch;
}
.xcp-disclaimer .icon { flex: none; margin-top: 2px; color: var(--c-copper-ink); }
.on-dark .xcp-disclaimer .icon { color: var(--c-copper-soft); }
.xcp-rp { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-5); align-items: start; }
.xcp-rp > * { min-width: 0; }
.xcp-rp__stage { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-4); min-width: 0; }
.xcp-rp__stage > * { min-width: 0; }
.xcp-rp__mount {
position: relative; aspect-ratio: 4 / 3.3; min-height: 220px; border-radius: var(--r-lg); overflow: hidden;
background: var(--c-limestone); box-shadow: var(--shadow-2);
}
.xcp-rp__mount > .xc-preview { position: absolute; inset: 0; min-height: 0; }
.xcp-rp__static { position: absolute; inset: 0; display: grid; align-content: end; padding: var(--s-5); background: var(--tex) center/cover, var(--c-limestone); }
.xcp-rp__static p { justify-self: start; max-width: 36ch; padding: 10px 14px; border-radius: var(--r-md); background: rgb(255 255 255 / .92); font-size: var(--fs-sm); }
.xcp-rp__bar { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-4); align-items: center; justify-content: space-between; }
.xcp-rp__lights { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); max-width: calc(100% + var(--gutter) * 2); }
.xcp-rp__lights::-webkit-scrollbar { display: none; }
.xcp-rp__lights .chip { flex: none; min-height: 44px; }
.xcp-rp__lights-label { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-muted); }
.no-js .xcp-rp__bar, .xcp-rp.module-failed .xcp-rp__bar { display: none; }
.xcp-rp__panel {
display: grid; gap: var(--s-5); min-width: 0; padding: clamp(1.1rem, .8rem + 1vw, 1.75rem);
background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-lg);
}
.xcp-rp__title { font-family: var(--f-display); font-size: var(--fs-d3); line-height: 1.1; }
.xcp-rp__hint { font-size: var(--fs-sm); color: var(--fg-muted); margin-top: 4px; }
.xcp-rp__tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.xcp-rp__tabs .chip { min-height: 44px; }
.no-js .xcp-rp__tabs, .xcp-rp.module-failed .xcp-rp__tabs { display: none; }
.xcp-rp__group { display: grid; gap: var(--s-3); }
.xcp-rp [hidden] { display: none !important; }
.js .xcp-rp:not(.is-live):not(.module-failed) .xcp-rp__group--rest { display: none; }
.xcp-rp__group-title { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); }
.js .xcp-rp:not(.module-failed) .xcp-rp__group-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.xcp-rp__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 10px; }
.xcp-rp__sw {
display: grid; gap: 6px; align-content: start; padding: 0; border: 0; background: none; text-align: left;
color: var(--fg); cursor: pointer; font: inherit; min-width: 0;
}
.no-js .xcp-rp__sw, .xcp-rp.module-failed .xcp-rp__sw { cursor: default; }
.xcp-rp__sw-img {
position: relative; display: block; aspect-ratio: 1; border-radius: 12px; background: var(--tex) center/180% auto, var(--tone, #ddd);
box-shadow: inset 0 0 0 1px rgb(31 36 39 / .1); transition: box-shadow var(--t-fast), transform var(--t-fast) var(--ease-out);
}
.xcp-rp__sw:hover .xcp-rp__sw-img { transform: translateY(-2px); }
.xcp-rp__sw[aria-pressed="true"] .xcp-rp__sw-img { box-shadow: 0 0 0 2px var(--c-white), 0 0 0 4px var(--c-forest); }
.xcp-rp__sw:focus-visible { outline: none; }
.xcp-rp__sw:focus-visible .xcp-rp__sw-img { box-shadow: 0 0 0 2px var(--c-white), 0 0 0 4px var(--focus), 0 0 0 7px rgb(47 111 98 / .25); }
.xcp-rp__sw-name { font-size: .8rem; font-weight: 650; line-height: 1.25; overflow-wrap: anywhere; }
.xcp-rp__sw-meta { display: block; font-size: .72rem; font-weight: 500; color: var(--fg-muted); }
.xcp-rp__sw-flag {
position: absolute; top: 6px; right: 6px; padding: 2px 6px; border-radius: 999px;
background: rgb(255 244 214 / .95); color: #7a5600; font-size: .62rem; font-weight: 750; letter-spacing: .04em;
}
.xcp-rp__detail { display: grid; gap: var(--s-3); padding-top: var(--s-4); border-top: 1px solid var(--c-line); }
.xcp-rp__detail-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.xcp-rp__detail-name { font-weight: 700; font-size: 1.05rem; }
.xcp-rp__specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; font-size: var(--fs-sm); }
.xcp-rp__specs dt { color: var(--fg-muted); font-size: .74rem; font-weight: 650; }
.xcp-rp__specs dd { font-weight: 600; }
.xcp-rp__specs code { font-size: .82rem; background: var(--c-paper-2); padding: 1px 6px; border-radius: 6px; }
.xcp-rp__verify {
padding: 10px 12px; border-radius: var(--r-sm); background: #fff8e6; border: 1px solid #f0dca8; color: #5f4500; font-size: var(--fs-sm); line-height: 1.5;
}
.xcp-rp__actions { display: grid; gap: 10px; }
.xcp-rp__actions .btn { width: 100%; }
@media (min-width: 1024px) {
.xcp-rp { grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr); gap: var(--s-6); }
.xcp-rp__stage { position: sticky; top: calc(var(--header-h) + 16px); }
.xcp-rp__mount { aspect-ratio: 16 / 11; }
}
.xcp-room-hero { padding: var(--xc-hero-pad) 0 clamp(2.5rem, 2rem + 2vw, 4rem); background: var(--c-paper); }
.xcp-room-hero__head { display: grid; gap: var(--s-4); margin-bottom: clamp(1.5rem, 1rem + 2vw, 2.75rem); }
.xcp-room-hero__head .display-1 { max-width: 18ch; }
.xcp-room-hero__head .lead { max-width: 64ch; }
@media (min-width: 1024px) {
.xcp-room-hero__head { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; column-gap: var(--s-8); }
.xcp-room-hero__head .xcp-room-hero__copy { display: grid; gap: var(--s-4); }
.xcp-room-hero__aside { justify-self: end; }
}
.xcp-room-hero__copy { display: grid; gap: var(--s-4); }
.xcp-room-hero__copy .eyebrow { margin: 0; }
.xcp-consider { display: grid; gap: var(--s-6); }
@media (min-width: 900px) { .xcp-consider { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: var(--s-8); align-items: start; } }
.xcp-consider__list { display: grid; gap: var(--s-4); counter-reset: xcc; }
.xcp-consider__item { display: grid; grid-template-columns: 40px 1fr; gap: var(--s-4); padding: var(--s-5) 0; border-top: 1px solid var(--c-line); }
.xcp-consider__item::before {
counter-increment: xcc; content: counter(xcc, decimal-leading-zero);
font-family: var(--f-display); font-size: 1.5rem; line-height: 1; color: var(--c-copper-ink);
}
.xcp-consider__item h3 { font-size: 1.08rem; font-weight: 700; margin-bottom: 6px; }
.xcp-consider__item p { color: var(--fg-muted); }
.xcp-consider__tag {
display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; vertical-align: 2px;
background: #fff4d6; color: #7a5600; font-size: .66rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase;
}
.xcp-tiles > li { display: flex; }
.xcp-tiles > li > .xcp-tile { flex: 1; }
.xcp-tiles { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.xcp-tile {
display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center; padding: 10px; border-radius: var(--r-md);
background: var(--c-white); border: 1px solid var(--c-line); text-decoration: none; color: inherit;
transition: border-color var(--t-fast), box-shadow var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out);
}
.xcp-tile:hover { border-color: transparent; box-shadow: var(--shadow-2); transform: translateY(-2px); }
.xcp-tile__img { width: 64px; height: 64px; border-radius: 10px; background: var(--tex) center/180% auto, var(--tone, #ddd); }
.xcp-tile > span:last-child { display: grid; gap: 2px; justify-items: start; min-width: 0; }
.xcp-tile__name { display: block; font-weight: 700; }
.xcp-tile__meta { display: block; font-size: .8rem; color: var(--fg-muted); }
.xcp-tile .badge { margin-top: 4px; font-size: .6rem; padding: 2px 8px; }
.xcp-cats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--s-5); }
.xcp-cats a { text-decoration: none; }
.xcp-others { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
.xcp-other {
position: relative; display: grid; align-content: end; min-height: 150px; padding: var(--s-4); border-radius: var(--r-md);
color: #fff; text-decoration: none; overflow: hidden; isolation: isolate; background: var(--c-ink);
}
.xcp-other::before { content: ''; position: absolute; inset: 0; z-index: -2; background: var(--tex) center/cover; opacity: .9; transition: transform var(--t-expr) var(--ease-out); }
.xcp-other::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(21 25 27 / 0) 30%, rgb(21 25 27 / .78)); }
.xcp-other:hover::before { transform: scale(1.06); }
.xcp-other strong { font-size: 1.05rem; }
.xcp-other span { font-size: .8rem; opacity: .85; }
.xcp-l-hero { position: relative; padding: var(--xc-hero-pad) 0 clamp(3rem, 2rem + 4vw, 6rem); overflow: hidden; isolation: isolate; }
.xcp-l-hero::before {
content: ''; position: absolute; inset: 0; z-index: -1;
background: radial-gradient(70% 60% at 85% 20%, rgb(183 133 91 / .18), transparent 70%), radial-gradient(60% 50% at 0% 100%, rgb(36 74 66 / .35), transparent 70%);
}
.xcp-l-hero__grid { display: grid; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: center; }
.xcp-l-hero__copy { display: grid; gap: var(--s-5); }
.xcp-l-hero__copy .eyebrow { margin: 0; }
.xcp-l-hero__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(2.9rem, 1.4rem + 5.4vw, 6.4rem); line-height: 1.05; letter-spacing: -.02em; }
.xcp-l-hero__title em { display: block; color: var(--c-copper-soft); }
.xcp-l-hero__visual { display: grid; gap: var(--s-3); min-width: 0; }
.xcp-l-hero__frame {
position: relative; aspect-ratio: 4 / 3.4; min-height: 220px; border-radius: var(--r-xl); overflow: hidden; background: var(--c-ink-2);
box-shadow: 0 40px 90px -30px rgb(0 0 0 / .7), 0 0 0 1px rgb(255 255 255 / .08);
}
.xcp-l-hero__frame > .xc-preview { position: absolute; inset: 0; min-height: 0; }
.xcp-l-hero__frame > img { width: 100%; height: 100%; object-fit: cover; }
.xcp-l-hero__rooms { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.xcp-l-hero__rooms::-webkit-scrollbar { display: none; }
.xcp-l-hero__rooms .chip { flex: none; min-height: 44px; background: rgb(255 255 255 / .06); color: var(--c-on-dark); border-color: rgb(255 255 255 / .16); }
.xcp-l-hero__rooms .chip:hover { border-color: rgb(255 255 255 / .5); }
.xcp-l-hero__rooms .chip[aria-pressed="true"] { background: var(--c-paper); color: var(--c-ink); border-color: var(--c-paper); }
.no-js .xcp-l-hero__rooms, .xcp-l-hero__visual.module-failed .xcp-l-hero__rooms { display: none; }
.xcp-l-hero__cap { font-size: var(--fs-xs); color: var(--c-on-dark-2); }
.xcp-l-hero__cap a { color: var(--c-copper-soft); }
.xcp-l-hero__facts { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: var(--fs-sm); color: var(--c-on-dark-2); }
.xcp-l-hero__facts li { display: flex; gap: 8px; align-items: center; }
.xcp-l-hero__facts .icon { color: var(--c-copper-soft); }
@media (min-width: 1024px) {
.xcp-l-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
.xcp-l-hero__frame { aspect-ratio: 16 / 12; }
}
.xcp-steps { display: grid; gap: var(--s-4); counter-reset: xcs; }
@media (min-width: 760px) { .xcp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .xcp-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.xcp-step { position: relative; display: grid; gap: var(--s-3); align-content: start; padding: var(--s-5); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid var(--c-line); }
.xcp-step__n { font-family: var(--f-display); font-size: 2.4rem; line-height: 1; color: var(--c-copper); }
.xcp-step h3 { font-size: 1.08rem; font-weight: 700; }
.xcp-step p { color: var(--fg-muted); font-size: .95rem; }
.xcp-rooms-grid { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.xcp-roomcard {
position: relative; display: grid; grid-template-rows: auto 1fr; border-radius: var(--r-lg); overflow: hidden;
background: var(--c-white); border: 1px solid var(--c-line); transition: box-shadow var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out);
}
.xcp-roomcard:hover { box-shadow: var(--shadow-2); transform: translateY(-3px); }
.xcp-roomcard__img { position: relative; aspect-ratio: 16 / 9; background: var(--tex) center/cover, var(--tone, #ddd); overflow: hidden; }
.xcp-roomcard__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.xcp-roomcard__img span {
position: absolute; left: 12px; bottom: 12px; padding: 4px 10px; border-radius: 999px; background: rgb(21 25 27 / .65); color: #fff;
font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; backdrop-filter: blur(6px);
}
.xcp-roomcard__body { display: grid; gap: 8px; align-content: start; padding: var(--s-5); }
.xcp-roomcard__body h3 { font-size: 1.2rem; font-weight: 700; }
.xcp-roomcard__body h3 a { color: inherit; text-decoration: none; }
.xcp-roomcard__body h3 a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.xcp-roomcard__body p { color: var(--fg-muted); font-size: .95rem; }
.xcp-roomcard__links { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 6px; font-size: .9rem; }
.xcp-roomcard__links a { position: relative; z-index: 2; }
.xcp-roomcard h3 a:focus-visible { outline: none; }
.xcp-roomcard:has(h3 a:focus-visible) { outline: 3px solid var(--focus); outline-offset: 3px; }
.xcp-tools { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.xcp-tool { display: grid; gap: var(--s-3); align-content: start; padding: var(--s-5); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid var(--c-line); }
.xcp-tool .card__icon { margin-bottom: 0; }
.xcp-tool h3 { font-size: 1.08rem; font-weight: 700; }
.xcp-tool p { color: var(--fg-muted); font-size: .95rem; }
.xcp-tool__note { font-size: .82rem !important; }
.xcp-envs { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); }
.xcp-env {
position: relative; display: grid; gap: var(--s-3); align-content: start; padding: var(--s-5); border-radius: var(--r-lg);
background: var(--c-white); border: 1px solid var(--c-line); overflow: hidden; isolation: isolate;
}
.xcp-env::before { content: ''; position: absolute; inset: 0 0 auto; height: 6px; background: var(--tex) center/cover, var(--tone, #ddd); }
.xcp-env h3 { font-size: 1.12rem; font-weight: 700; }
.xcp-env p { color: var(--fg-muted); font-size: .93rem; }
.xcp-env--live { background: var(--c-ink); color: var(--c-on-dark); border-color: transparent; --fg-muted: var(--c-on-dark-2); }
.xcp-env--live .link-arrow { color: var(--c-copper-soft); }
.xcp-env__phase { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-muted); }
.xcp-faq-wrap { display: grid; gap: var(--s-6); }
@media (min-width: 900px) { .xcp-faq-wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: var(--s-8); } }
.xcp-env-hero { padding: var(--xc-hero-pad) 0 clamp(3rem, 2rem + 3vw, 5rem); position: relative; isolation: isolate; overflow: hidden; }
.xcp-env-hero__tex { position: absolute; inset: 0; z-index: -2; background: var(--tex) center/cover; opacity: .28; }
.xcp-env-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, var(--c-ink) 10%, rgb(21 25 27 / .82) 55%, rgb(21 25 27 / .55)); }
.xcp-env-hero__copy { display: grid; gap: var(--s-5); max-width: 760px; }
.xcp-env-hero__copy .eyebrow { margin: 0; }
.xcp-spaces { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }
.xcp-spaces li {
display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--r-md);
background: var(--c-white); border: 1px dashed var(--c-stone); font-weight: 600;
}
.xcp-spaces li span { margin-left: auto; font-size: .66rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; color: #7a5600; }
.xcp-now { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.xcp-now .card { display: grid; gap: var(--s-3); align-content: start; }
.xcp-now .card__icon { margin-bottom: 0; }
.xcp-now .card__title { font-size: 1.12rem; font-weight: 700; }
.xcp-now .card p { color: var(--fg-muted); }
.xcp-l-hero .breadcrumbs a, .xcp-l-hero .breadcrumbs span, .xcp-env-hero .breadcrumbs a, .xcp-env-hero .breadcrumbs span { color: var(--c-on-dark-2); }
.xcp-l-hero .breadcrumbs [aria-current], .xcp-env-hero .breadcrumbs [aria-current] { color: var(--c-on-dark); }
.xcp-room-hero .breadcrumbs ol, .xcp-l-hero .breadcrumbs ol, .xcp-env-hero .breadcrumbs ol { padding-left: 0; list-style: none; }
@media (min-width: 1024px) {
.xcp-rooms-grid, .xcp-tools { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
body.page-xc-app { background: var(--c-paper); }
body.page-xc-app .wa-float,
body.page-xc-app .site-header__cta { display: none; }
body.page-xc-app .site-header,
body.page-xc-app .site-header.is-scrolled {
background: var(--c-paper); box-shadow: 0 1px 0 var(--c-line);
backdrop-filter: none; -webkit-backdrop-filter: none;
}
body.page-xc-app .toast { bottom: calc(var(--xc-dock-h, 68px) + 20px); }
@media (max-width: 1023.98px) {
body.page-xc-app .toast { bottom: calc(64px + 84px + 16px + env(safe-area-inset-bottom)); max-width: calc(100vw - 32px); text-align: center; white-space: normal; }
}
.xc-app {
--xc-dock-h: 68px;
--xc-panel-w: 392px;
--xc-rail-w: 64px;
--xc-peek: 84px;
--xc-glass: rgb(255 255 255 / .9);
--xc-glass-bd: rgb(255 255 255 / .7);
--xc-ink-glass: rgb(21 25 27 / .84);
--xc-forest-tint: rgb(36 74 66 / .08);
--xc-forest-line: rgb(36 74 66 / .28);
--xc-pop-max: calc(100svh - var(--header-h) - var(--xc-dock-h) - 92px);
position: relative; display: flex; flex-direction: column;
height: calc(100vh - var(--header-h)); height: calc(100svh - var(--header-h)); min-height: 520px;
margin-top: var(--header-h);
background: var(--c-ink); color: var(--fg);
isolation: isolate;
}
.xc-app :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.xc-app .xc-i { flex: none; display: block; }
:where(.xc-app) button:where(:not(.btn)) { font: inherit; color: inherit; }
.xc-app [hidden] { display: none !important; }
.no-js .xc-app [data-js-only] { display: none !important; }
.xc-app[data-view="2d"] [data-xc-use2d], .xc-app[data-view="2d"] .xc-poster__alt { display: none; }
.xc-app .xc-vh, .xc-app .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.xc-app__main { position: relative; flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); }
.xc-app .xc-link {
display: inline; padding: 0; border: 0; background: none; cursor: pointer;
color: var(--c-forest); font-weight: 650; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px;
}
.xc-app .xc-link:hover { text-decoration-thickness: 2px; }
.xc-app .xc-mono { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: .82em; letter-spacing: 0; padding: 1px 6px; border-radius: 5px; background: var(--c-paper-2); color: var(--c-graphite); }
.xc-app .xc-stage {
position: relative; min-width: 0; min-height: 0; overflow: hidden;
background: radial-gradient(120% 90% at 50% 30%, #2a3134 0%, #171b1d 70%);
}
.xc-app .xc-view { position: absolute; inset: 0; }
.xc-app .xc-view > canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; outline: none; }
.xc-app .xc-view > canvas:active { cursor: grabbing; }
.xc-app .xc-view.is-pointer > canvas { cursor: pointer; }
.xc-app .xc-view > canvas:focus-visible { outline: 3px solid var(--c-copper-soft); outline-offset: -3px; }
.xc-app .xc-view > .xc-preview { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; }
.xc-app .xc-bar {
position: absolute; z-index: 6; top: 16px; left: 16px; right: 16px;
display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; pointer-events: none;
}
.xc-app .xc-bar__start, .xc-app .xc-bar__end { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.xc-app .xc-bar__start > *, .xc-app .xc-bar__end > * { pointer-events: auto; }
.xc-app .xc-bar { transition: opacity var(--t-std) var(--ease-out), visibility 0s linear var(--t-std); }
.xc-app:not(.is-started) .xc-bar { opacity: 0; visibility: hidden; }
.xc-app.is-started .xc-bar { transition-delay: 0s; }
.xc-app .xc-pill {
position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; max-width: 100%; padding: 0 14px 0 12px;
border: 1px solid var(--xc-glass-bd); border-radius: 999px; background: var(--xc-glass); color: var(--c-graphite);
-webkit-backdrop-filter: saturate(1.3) blur(14px); backdrop-filter: saturate(1.3) blur(14px);
box-shadow: 0 6px 20px -8px rgb(21 25 27 / .45), 0 1px 2px rgb(21 25 27 / .12);
font-size: .9rem; font-weight: 650; letter-spacing: -0.005em; white-space: nowrap; cursor: pointer;
transition: background var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast) var(--ease-out);
}
.xc-app .xc-pill:hover { background: #fff; }
.xc-app .xc-pill[aria-expanded="true"] { background: #fff; box-shadow: 0 0 0 2px var(--xc-forest-line), 0 8px 24px -10px rgb(21 25 27 / .5); }
.xc-app .xc-pill__text { display: inline-flex; align-items: baseline; gap: 6px; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.xc-app .xc-pill__text > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.xc-app .xc-pill__k { font-size: .7rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-slate-2); }
.xc-app .xc-pill__chev { margin-left: -2px; color: var(--c-slate-2); transition: transform var(--t-fast) var(--ease-out); }
.xc-app .xc-pill[aria-expanded="true"] .xc-pill__chev { transform: rotate(180deg); }
.xc-app .xc-pill--icon { width: 44px; padding: 0; justify-content: center; }
.xc-app .xc-dot { position: absolute; top: 8px; left: 26px; width: 8px; height: 8px; border-radius: 50%; border: 2px solid var(--c-paper); background: transparent; }
.xc-app .xc-dot[data-state="saved"] { background: var(--c-forest); }
.xc-app .xc-dot[data-state="fail"] { background: var(--c-copper); }
.xc-app .xc-dot[data-state="ready"] { display: none; }
.xc-app .xc-seg {
display: inline-flex; padding: 3px; gap: 2px; border: 1px solid var(--xc-glass-bd); border-radius: 999px; background: var(--xc-glass);
-webkit-backdrop-filter: saturate(1.3) blur(14px); backdrop-filter: saturate(1.3) blur(14px);
box-shadow: 0 6px 20px -8px rgb(21 25 27 / .45), 0 1px 2px rgb(21 25 27 / .12);
}
.xc-app .xc-seg__btn {
display: inline-flex; align-items: center; gap: 7px; min-height: 38px; min-width: 44px; padding: 0 14px 0 11px; border: 0; border-radius: 999px;
background: transparent; color: var(--c-slate-2); font-size: .86rem; font-weight: 650; cursor: pointer; white-space: nowrap;
transition: background var(--t-fast), color var(--t-fast);
}
.xc-app .xc-seg__btn:hover { color: var(--c-graphite); }
.xc-app .xc-seg__btn[aria-pressed="true"] { background: var(--c-graphite); color: var(--c-paper); }
.xc-app .xc-seg__btn { position: relative; }
.xc-app .xc-seg__btn::before { content: ''; position: absolute; inset: -3px -1px; } 
.xc-app .xc-pop { position: relative; }
.xc-app .xc-pop__panel {
position: absolute; z-index: 2; top: calc(100% + 8px); left: 0; width: 320px; max-width: calc(100vw - 32px);
max-height: var(--xc-pop-max); overflow: auto; overscroll-behavior: contain;
padding: 18px; border-radius: var(--r-md); background: var(--c-paper); color: var(--c-graphite);
border: 1px solid rgb(31 36 39 / .06);
box-shadow: 0 24px 60px -20px rgb(21 25 27 / .55), 0 2px 6px rgb(21 25 27 / .1);
transform-origin: top left;
}
.xc-app .xc-pop.is-open > .xc-pop__panel { animation: xc-pop-in var(--t-fast) var(--ease-out); }
.xc-app .xc-pop__panel--end { left: auto; right: 0; transform-origin: top right; }
.xc-app .xc-pop__panel--wide { width: 560px; }
@keyframes xc-pop-in { from { opacity: 0; transform: translateY(-6px) scale(.985); } to { opacity: 1; transform: none; } }
.xc-app .xc-pop__title { margin: 0 0 12px; font-family: var(--f-display); font-size: 1.45rem; font-weight: 400; line-height: 1.1; letter-spacing: -0.01em; color: var(--c-graphite); }
.xc-app .xc-pop__sub { margin-left: 6px; font-family: var(--f-sans); font-size: .8rem; font-weight: 500; color: var(--c-slate); letter-spacing: 0; }
.xc-app .xc-pop__foot { margin: 14px 0 0; font-size: var(--fs-xs); line-height: 1.45; color: var(--c-slate-2); }
.xc-app .xc-rooms { display: grid; grid-template-columns: 216px minmax(0, 1fr); gap: 18px; align-items: start; }
.xc-app .xc-rooms__map { position: sticky; top: 0; padding: 12px; border-radius: var(--r-sm); background: var(--c-paper-2); }
.xc-app .xc-rooms__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.xc-app .xc-room {
position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr); grid-template-areas: "n name" "n meta"; column-gap: 8px; align-items: center;
width: 100%; min-height: 48px; padding: 6px 10px; border: 0; border-radius: var(--r-sm); background: transparent; text-align: left; cursor: pointer;
transition: background var(--t-fast);
}
.xc-app .xc-room:hover, .xc-app .xc-room.is-hover { background: var(--c-paper-2); }
.xc-app .xc-room[aria-current="true"] { background: var(--xc-forest-tint); }
.xc-app .xc-room[aria-current="true"]::before { content: ''; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; border-radius: 2px; background: var(--c-forest); }
.xc-app .xc-room__n { grid-area: n; font-size: .72rem; font-weight: 700; color: var(--c-slate); font-variant-numeric: tabular-nums; }
.xc-app .xc-room__name { grid-area: name; font-size: .92rem; font-weight: 650; line-height: 1.25; }
.xc-app .xc-room__meta { grid-area: meta; font-size: .76rem; color: var(--c-slate-2); }
.xc-app .xc-room[aria-current="true"] .xc-room__name { color: var(--c-forest); }
.xc-app .xc-map { display: block; width: 100%; height: auto; max-height: 300px; overflow: visible; }
.xc-app .xc-map__room rect { fill: var(--c-paper); stroke: var(--c-stone); stroke-width: 1.25; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill var(--t-fast), stroke var(--t-fast); }
.xc-app .xc-map__room.is-out rect { fill: rgb(255 255 255 / .35); stroke-dasharray: 3 3; }
.xc-app .xc-map__room:hover rect, .xc-app .xc-map__room.is-hover rect { fill: #fff; stroke: var(--c-slate); }
.xc-app .xc-map__room text { fill: var(--c-slate-2); font-family: var(--f-sans); font-weight: 700; text-anchor: middle; dominant-baseline: central; pointer-events: none; font-variant-numeric: tabular-nums; }
.xc-app .xc-map__room.is-current text { fill: var(--c-forest); }
.xc-app .xc-map__room.is-current rect { fill: rgb(36 74 66 / .14); stroke: var(--c-forest); stroke-width: 2; }
.xc-app .xc-map__doors line { stroke: var(--c-paper-2); stroke-width: 3; vector-effect: non-scaling-stroke; stroke-linecap: round; }
.xc-app .xc-map__you { fill: var(--c-copper); pointer-events: none; }
.xc-app .xc-map__cone { fill: rgb(183 133 91 / .3); }
.xc-app .xc-lights { display: grid; gap: 2px; }
.xc-app .xc-light {
display: grid; grid-template-columns: 36px minmax(0, 1fr) 18px; gap: 12px; align-items: center; width: 100%; min-height: 52px; padding: 6px 10px 6px 6px;
border: 0; border-radius: var(--r-sm); background: transparent; text-align: left; cursor: pointer; transition: background var(--t-fast);
}
.xc-app .xc-light:hover { background: var(--c-paper-2); }
.xc-app .xc-light[aria-pressed="true"] { background: var(--xc-forest-tint); }
.xc-app .xc-light__sw { width: 36px; height: 36px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgb(31 36 39 / .12); }
.xc-app .xc-light__sw[data-l="morning"] { background: radial-gradient(circle at 32% 30%, #fffaf0 0 18%, #f6e7c8 40%, #c9dbe6 100%); }
.xc-app .xc-light__sw[data-l="afternoon"] { background: radial-gradient(circle at 32% 30%, #fff 0 16%, #fbefcf 42%, #e9cf98 100%); }
.xc-app .xc-light__sw[data-l="golden"] { background: radial-gradient(circle at 32% 30%, #fff1cf 0 14%, #f3b768 45%, #c9703f 100%); }
.xc-app .xc-light__sw[data-l="evening"] { background: radial-gradient(circle at 70% 72%, #f6c58a 0 12%, #a86f74 44%, #3f3d5c 100%); }
.xc-app .xc-light__sw[data-l="night"] { background: radial-gradient(circle at 66% 68%, #ffd58f 0 10%, #6b5a52 26%, #1e2533 70%); }
.xc-app .xc-light__text { display: grid; gap: 1px; min-width: 0; }
.xc-app .xc-light__name { font-size: .92rem; font-weight: 650; }
.xc-app .xc-light__note { font-size: .78rem; line-height: 1.35; color: var(--c-slate-2); }
.xc-app .xc-light__on { color: var(--c-forest); opacity: 0; }
.xc-app .xc-light[aria-pressed="true"] .xc-light__on { opacity: 1; }
.xc-app .xc-set { padding: 14px 0; border-top: 1px solid var(--c-line); }
.xc-app .xc-pop__title + .xc-set { padding-top: 0; border-top: 0; }
.xc-app .xc-set--row { display: grid; gap: 2px; }
.xc-app .xc-set__label { margin: 0 0 8px; font-size: .7rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-slate-2); }
.xc-app .xc-set__note { margin: 6px 0 0; font-size: .8rem; line-height: 1.45; color: var(--c-slate-2); }
.xc-app .xc-set__btn {
display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 0 10px; border: 0; border-radius: var(--r-sm);
background: transparent; text-align: left; font-size: .9rem; font-weight: 600; cursor: pointer; transition: background var(--t-fast);
}
.xc-app .xc-set__btn:hover { background: var(--c-paper-2); }
.xc-app .xc-set__btn .xc-i { color: var(--c-forest); }
.xc-app .xc-qual { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.xc-app .xc-qual__opt {
position: relative; display: grid; align-content: start; gap: 2px; min-height: 64px; padding: 10px 28px 10px 12px;
border: 1px solid var(--c-line); border-radius: var(--r-sm); background: #fff; text-align: left; cursor: pointer;
transition: border-color var(--t-fast), background var(--t-fast);
}
.xc-app .xc-qual__opt:hover:not(:disabled) { border-color: var(--c-slate); }
.xc-app .xc-qual__opt[aria-pressed="true"] { border-color: var(--c-forest); background: var(--xc-forest-tint); box-shadow: inset 0 0 0 1px var(--c-forest); }
.xc-app .xc-qual__opt:disabled { opacity: .55; cursor: not-allowed; }
.xc-app .xc-qual__name { font-size: .9rem; font-weight: 700; }
.xc-app .xc-qual__note { font-size: .74rem; line-height: 1.35; color: var(--c-slate-2); }
.xc-app .xc-qual__on { position: absolute; top: 10px; right: 8px; color: var(--c-forest); opacity: 0; }
.xc-app .xc-qual__opt[aria-pressed="true"] .xc-qual__on { opacity: 1; }
.xc-app .xc-save__state { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-size: .9rem; font-weight: 650; color: var(--c-forest); }
.xc-app .xc-save__state[data-state="fail"] { color: var(--c-copper-ink); }
.xc-app .xc-save__fine { margin: 0 0 14px; font-size: .8rem; line-height: 1.45; color: var(--c-slate-2); }
.xc-app .xc-save__form { padding-top: 14px; border-top: 1px solid var(--c-line); }
.xc-app .xc-save__row { display: flex; gap: 8px; }
.xc-app .xc-save__row .btn { min-height: 44px; flex: none; }
.xc-app .xc-input {
flex: 1; min-width: 0; width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid var(--c-stone); border-radius: var(--r-sm);
background: #fff; color: var(--c-graphite); font: inherit; font-size: .92rem;
}
.xc-app .xc-input::placeholder { color: var(--c-slate); }
.xc-app .xc-input:focus-visible { outline: 2px solid var(--focus); outline-offset: 0; border-color: var(--focus); }
.xc-app .xc-input:disabled { background: var(--c-paper-2); }
.xc-app .xc-snaps { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 2px; }
.xc-app .xc-snap { display: flex; align-items: stretch; gap: 2px; }
.xc-app .xc-snap__load {
flex: 1; min-width: 0; display: grid; gap: 1px; min-height: 48px; padding: 6px 10px; border: 0; border-radius: var(--r-sm);
background: var(--c-paper-2); text-align: left; cursor: pointer; transition: background var(--t-fast);
}
.xc-app .xc-snap__load:hover { background: var(--c-limestone); }
.xc-app .xc-snap__name { font-size: .9rem; font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xc-app .xc-snap__date { font-size: .74rem; color: var(--c-slate-2); }
.xc-app .xc-snap__del { flex: none; display: grid; place-items: center; width: 44px; border: 0; border-radius: var(--r-sm); background: transparent; color: var(--c-slate-2); cursor: pointer; }
.xc-app .xc-snap__del:hover { background: var(--c-paper-2); color: var(--c-copper-ink); }
.xc-app .xc-snaps__empty { margin: 10px 0 0; font-size: .8rem; color: var(--c-slate); }
.xc-app .xc-save__actions { display: grid; gap: 2px; margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--c-line); }
.xc-app .xc-save__copy { margin-top: 12px; }
.xc-app .xc-notices {
position: absolute; z-index: 35; top: 72px; left: 50%; transform: translateX(-50%); width: min(580px, calc(100% - 32px));
display: grid; gap: 8px; pointer-events: none;
}
.xc-app .xc-notice {
display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 6px 6px 14px; border-radius: var(--r-md);
background: var(--c-paper); color: var(--c-graphite); border: 1px solid rgb(31 36 39 / .06);
box-shadow: 0 14px 40px -16px rgb(21 25 27 / .55), 0 1px 3px rgb(21 25 27 / .1);
pointer-events: auto; opacity: 0; transform: translateY(-6px);
transition: opacity var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out);
}
.xc-app .xc-notice.is-on { opacity: 1; transform: none; }
.xc-app .xc-notice__i { color: var(--c-forest); }
.xc-app .xc-notice--warn .xc-notice__i { color: var(--c-copper-ink); }
.xc-app .xc-notice--warn { box-shadow: inset 3px 0 0 var(--c-copper), 0 14px 40px -16px rgb(21 25 27 / .55); }
.xc-app .xc-notice__text { flex: 1; margin: 0; padding: 6px 0; font-size: .88rem; line-height: 1.4; }
.xc-app .xc-notice__act {
flex: none; min-height: 36px; padding: 0 14px; border: 1px solid var(--xc-forest-line); border-radius: 999px; background: transparent;
color: var(--c-forest); font-size: .84rem; font-weight: 700; cursor: pointer; white-space: nowrap; position: relative;
}
.xc-app .xc-notice__act::before { content: ''; position: absolute; inset: -4px; }
.xc-app .xc-notice__act:hover { background: var(--xc-forest-tint); }
.xc-app .xc-notice__x { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--c-slate-2); cursor: pointer; }
.xc-app .xc-notice__x:hover { background: var(--c-paper-2); color: var(--c-graphite); }
.xc-app .xc-busy { position: absolute; z-index: 7; top: 0; left: 0; right: 0; height: 2px; overflow: hidden; opacity: 0; transition: opacity var(--t-std); pointer-events: none; }
.xc-app .xc-busy.is-on { opacity: 1; }
.xc-app .xc-busy::before {
content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 40%;
background: linear-gradient(90deg, transparent, var(--c-copper-soft), transparent);
animation: xc-busy 1.2s var(--ease-in-out) infinite;
}
@keyframes xc-busy { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
.xc-app .xc-hotspots { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.xc-app .xc-hs {
position: absolute; left: 0; top: 0; width: 44px; height: 44px; margin: -22px 0 0 -22px; padding: 0; border: 0; border-radius: 50%;
background: transparent; cursor: pointer; pointer-events: auto; will-change: transform;
}
.xc-app .xc-hs__dot {
position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%;
background: rgb(255 255 255 / .92); box-shadow: 0 0 0 1px rgb(21 25 27 / .18), 0 4px 14px -2px rgb(21 25 27 / .55);
transition: transform var(--t-fast) var(--ease-spring), background var(--t-fast);
}
.xc-app .xc-hs__dot::after { content: ''; position: absolute; inset: 7px; border-radius: 50%; background: var(--c-forest); transition: inset var(--t-fast) var(--ease-out); }
.xc-app .xc-hs__dot::before {
content: ''; position: absolute; inset: -6px; border-radius: 50%; border: 1.5px solid rgb(255 255 255 / .7);
animation: xc-hs-pulse 2.8s var(--ease-out) infinite;
}
@keyframes xc-hs-pulse { 0% { transform: scale(.7); opacity: 0; } 30% { opacity: .9; } 100% { transform: scale(1.35); opacity: 0; } }
.xc-app .xc-hs__label {
position: absolute; left: 38px; top: 50%; transform: translate(-4px, -50%); padding: 5px 10px; border-radius: 999px;
background: var(--xc-ink-glass); color: #fff; font-size: .78rem; font-weight: 650; white-space: nowrap;
opacity: 0; pointer-events: none; transition: opacity var(--t-fast), transform var(--t-fast) var(--ease-out);
}
.xc-app .xc-hs:hover .xc-hs__dot, .xc-app .xc-hs:focus-visible .xc-hs__dot { transform: scale(1.15); }
.xc-app .xc-hs:hover .xc-hs__label, .xc-app .xc-hs:focus-visible .xc-hs__label, .xc-app .xc-hs.is-active .xc-hs__label { opacity: 1; transform: translate(0, -50%); }
.xc-app .xc-hs.is-active .xc-hs__dot::after { inset: 5px; background: var(--c-copper); }
.xc-app .xc-hs.is-active .xc-hs__dot::before { animation: none; opacity: 0; }
.xc-app .xc-hs:focus-visible { outline: 2px solid var(--c-copper-soft); outline-offset: 0; }
.xc-app.is-touring .xc-hs__dot::before { animation: none; opacity: 0; }
.xc-app .xc-tour {
position: absolute; z-index: 4; left: 50%; bottom: 20px; transform: translateX(-50%); width: min(760px, calc(100% - 32px));
display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 20px; padding: 14px 14px 16px 22px;
border-radius: var(--r-lg); background: var(--xc-ink-glass); color: var(--c-on-dark);
-webkit-backdrop-filter: blur(16px) saturate(1.2); backdrop-filter: blur(16px) saturate(1.2);
box-shadow: 0 20px 50px -20px rgb(0 0 0 / .6); overflow: hidden;
animation: xc-rise var(--t-std) var(--ease-out);
}
@keyframes xc-rise { from { opacity: 0; transform: translate(-50%, 10px); } to { opacity: 1; transform: translate(-50%, 0); } }
.xc-app .xc-tour__text { min-width: 0; }
.xc-app .xc-tour__step { margin: 0 0 4px; font-size: .7rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-soft); }
.xc-app .xc-tour__caption { margin: 0; font-size: .98rem; line-height: 1.45; color: #fff; text-wrap: pretty; }
.xc-app .xc-tour__ctrl { display: flex; align-items: center; gap: 6px; }
.xc-app .xc-ibtn {
display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgb(243 239 232 / .22); border-radius: 50%;
background: transparent; color: var(--c-on-dark); cursor: pointer; transition: background var(--t-fast), border-color var(--t-fast), opacity var(--t-fast);
}
.xc-app .xc-ibtn:hover:not(:disabled) { background: rgb(255 255 255 / .1); border-color: rgb(243 239 232 / .5); }
.xc-app .xc-ibtn:disabled { opacity: .35; cursor: default; }
.xc-app .xc-ibtn--solid { background: var(--c-paper); border-color: var(--c-paper); color: var(--c-ink); }
.xc-app .xc-ibtn--solid:hover:not(:disabled) { background: #fff; border-color: #fff; }
.xc-app .xc-tour__exit {
min-height: 44px; margin-left: 4px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--c-on-dark-2);
font-size: .86rem; font-weight: 650; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgb(185 180 171 / .5);
}
.xc-app .xc-tour__exit:hover { color: #fff; }
.xc-app .xc-tour :focus-visible { outline-color: var(--c-copper-soft); }
.xc-app .xc-tour__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgb(255 255 255 / .08); }
.xc-app .xc-tour__bar span { display: block; height: 100%; width: var(--p, 0%); background: var(--c-copper-soft); transition: width var(--t-expr) var(--ease-out); }
.xc-app .xc-tour.is-paused .xc-tour__step::after { content: ' · Paused'; color: var(--c-on-dark-2); }
.xc-app .xc-hint {
position: absolute; z-index: 5; left: 16px; bottom: 16px; width: min(340px, calc(100% - 32px)); padding: 18px 18px 16px 20px;
border-radius: var(--r-lg); background: var(--xc-glass); color: var(--c-graphite); border: 1px solid var(--xc-glass-bd);
-webkit-backdrop-filter: saturate(1.3) blur(16px); backdrop-filter: saturate(1.3) blur(16px);
box-shadow: 0 20px 50px -20px rgb(21 25 27 / .6);
opacity: 0; transform: translateY(8px); transition: opacity var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out);
}
.xc-app .xc-hint.is-on { opacity: 1; transform: none; }
.xc-app .xc-hint__title { margin: 0 0 10px; font-family: var(--f-display); font-size: 1.4rem; line-height: 1.1; }
.xc-app .xc-hint__list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.xc-app .xc-hint__list li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: center; font-size: .88rem; line-height: 1.35; }
.xc-app .xc-hint__list .xc-i { color: var(--c-forest); }
.xc-app .xc-hint__ok { min-height: 44px; }
.xc-app .xc-poster {
position: absolute; inset: 0; z-index: 30; display: flex; align-items: flex-end; padding: clamp(16px, 3.4vw, 56px);
background:
radial-gradient(80% 70% at 78% 40%, rgb(255 255 255 / .55), transparent 70%),
linear-gradient(160deg, var(--c-paper) 0%, var(--c-limestone) 100%);
transition: background var(--t-expr) var(--ease-out), opacity var(--t-std) var(--ease-out);
}
.xc-app .xc-poster::before {
content: ''; position: absolute; inset: 0; opacity: 0; pointer-events: none;
background: linear-gradient(90deg, rgb(21 25 27 / .62) 0%, rgb(21 25 27 / .28) 48%, rgb(21 25 27 / .05) 100%);
transition: opacity var(--t-expr) var(--ease-out);
}
.xc-app .xc-poster.is-ready { background: transparent; }
.xc-app .xc-poster.is-ready::before { opacity: 1; }
.xc-app .xc-poster.is-out { opacity: 0; pointer-events: none; }
.xc-app .xc-poster__plan {
position: absolute; top: 50%; right: clamp(24px, 6vw, 110px); width: min(48%, 640px); transform: translateY(-50%);
transition: opacity var(--t-expr) var(--ease-out);
}
.xc-app .xc-poster.is-ready .xc-poster__plan { opacity: 0; }
.xc-app .xc-plan { display: block; width: 100%; height: auto; max-height: 64vh; overflow: visible; }
.xc-app .xc-plan__room rect {
fill: rgb(255 255 255 / .5); stroke: var(--c-graphite); stroke-opacity: .55; stroke-width: 1.2; vector-effect: non-scaling-stroke;
stroke-dasharray: 600; stroke-dashoffset: 600; animation: xc-draw 1.8s var(--ease-out) forwards;
}
.xc-app .xc-plan__room.is-out rect { fill: rgb(255 255 255 / .18); stroke-opacity: .35; }
.xc-app .xc-plan__room:nth-child(2) rect { animation-delay: .08s; }
.xc-app .xc-plan__room:nth-child(3) rect { animation-delay: .16s; }
.xc-app .xc-plan__room:nth-child(4) rect { animation-delay: .24s; }
.xc-app .xc-plan__room:nth-child(5) rect { animation-delay: .32s; }
.xc-app .xc-plan__room:nth-child(6) rect { animation-delay: .4s; }
.xc-app .xc-plan__room:nth-child(n+7) rect { animation-delay: .48s; }
.xc-app .xc-plan__room text {
fill: var(--c-slate-2); font-family: var(--f-sans); font-weight: 650; letter-spacing: .02em; text-anchor: middle; dominant-baseline: middle;
opacity: 0; animation: xc-fade .8s var(--ease-out) .9s forwards;
}
.xc-app .xc-plan__doors line { stroke: var(--c-limestone); stroke-width: 3; vector-effect: non-scaling-stroke; }
@keyframes xc-draw { to { stroke-dashoffset: 0; } }
@keyframes xc-fade { to { opacity: 1; } }
.xc-app .xc-poster__card {
position: relative; width: min(520px, 100%); padding: clamp(24px, 2.6vw, 40px); border-radius: var(--r-xl);
background: var(--c-paper); color: var(--c-graphite); box-shadow: 0 30px 80px -30px rgb(21 25 27 / .45), 0 1px 2px rgb(21 25 27 / .06);
animation: xc-card-in var(--t-expr) var(--ease-out) both;
}
@keyframes xc-card-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.xc-app .xc-poster__eyebrow { margin: 0 0 14px; font-size: .72rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); }
.xc-app .xc-poster__title { margin: 0 0 14px; font-family: var(--f-display); font-weight: 400; font-size: clamp(2.3rem, 1.5rem + 2.2vw, 3.6rem); line-height: 1.06; letter-spacing: -0.015em; text-wrap: balance; }
.xc-app .xc-poster__title em { color: var(--c-forest); }
.xc-app .xc-poster__lead { margin: 0 0 22px; max-width: 42ch; font-size: 1rem; line-height: 1.55; color: var(--c-slate-2); }
.xc-app .xc-poster__load { margin: 0 0 18px; }
.xc-app .xc-progress { position: relative; height: 3px; border-radius: 3px; background: var(--c-line); overflow: hidden; }
.xc-app .xc-progress > span { position: absolute; inset: 0 auto 0 0; width: var(--p, 0%); border-radius: inherit; background: var(--c-forest); transition: width var(--t-std) var(--ease-out); }
.xc-app .xc-poster.is-ready .xc-progress > span { background: var(--c-copper); }
.xc-app .xc-poster__status { margin: 8px 0 0; font-size: .8rem; font-weight: 600; color: var(--c-slate-2); font-variant-numeric: tabular-nums; }
.xc-app .xc-poster__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.xc-app .xc-poster__actions .btn { min-height: 50px; }
.xc-app .xc-poster__actions .btn:disabled { opacity: .45; cursor: progress; transform: none; box-shadow: none; }
.xc-app .xc-poster__fine { margin: 18px 0 0; font-size: .8rem; color: var(--c-slate-2); }
.xc-app .xc-poster__noscript p { margin: 0 0 10px; font-size: .92rem; line-height: 1.5; }
.xc-app .xc-poster__noscript ul { margin: 0 0 12px; padding-left: 18px; columns: 2; font-size: .92rem; line-height: 1.8; }
.xc-app .xc-poster__noscript a { color: var(--c-forest); font-weight: 650; }
.xc-app .xc-panel { position: relative; z-index: 20; display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--c-paper); color: var(--c-graphite); }
.xc-app .xc-panel__scroll { display: contents; }
.xc-app .xc-panel__head { flex: none; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "back toggle" "title toggle"; align-items: start; gap: 2px 8px; padding: 16px 16px 14px 24px; }
.xc-app .xc-panel__back {
grid-area: back; justify-self: start; display: inline-flex; align-items: center; gap: 4px; min-height: 32px; margin-left: -6px; padding: 0 8px 0 4px;
border-radius: 999px; color: var(--c-slate-2); font-size: .78rem; font-weight: 650; text-decoration: none; position: relative;
}
.xc-app .xc-panel__back::before { content: ''; position: absolute; inset: -6px 0; }
.xc-app .xc-panel__back:hover { color: var(--c-graphite); background: var(--c-paper-2); }
.xc-app .xc-panel__title { grid-area: title; margin: 0; font-family: var(--f-display); font-weight: 400; font-size: 2rem; line-height: 1.05; letter-spacing: -0.01em; }
.xc-app .xc-panel__title em { color: var(--c-forest); }
.xc-app .xc-panel__toggle {
grid-area: toggle; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--c-line); border-radius: 50%;
background: transparent; color: var(--c-slate-2); cursor: pointer; transition: background var(--t-fast), color var(--t-fast);
}
.xc-app .xc-panel__toggle:hover { background: var(--c-paper-2); color: var(--c-graphite); }
.xc-app .xc-panel__rail-label { display: none; }
.xc-app .xc-panel__body { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 0 24px 24px; outline: none; scrollbar-width: thin; scrollbar-color: var(--c-stone) transparent; }
.xc-app .xc-panel__wait { margin: 12px 0; font-size: .9rem; color: var(--c-slate-2); }
.xc-app .xc-panel__foot { flex: none; padding: 12px 24px 14px; border-top: 1px solid var(--c-line); background: var(--c-paper); }
.xc-app .xc-fineprint { margin: 0; font-size: .74rem; line-height: 1.45; color: var(--c-slate-2); }
.xc-app .xc-panel__grab { display: none; }
.xc-app .xc-pk { display: grid; gap: 20px; }
.xc-app .xc-pk__label { margin: 0 0 10px; font-size: .7rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-slate-2); }
.xc-app .xc-pk__surf { display: flex; flex-wrap: wrap; gap: 6px; }
.xc-app .xc-surf {
display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 4px 14px 4px 5px; border: 1px solid var(--c-line); border-radius: 999px;
background: #fff; font-size: .84rem; font-weight: 650; cursor: pointer; transition: border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);
}
.xc-app .xc-surf:hover { border-color: var(--c-slate); }
.xc-app .xc-surf[aria-pressed="true"] { border-color: var(--c-forest); background: var(--xc-forest-tint); box-shadow: inset 0 0 0 1px var(--c-forest); color: var(--c-forest); }
.xc-app .xc-surf__sw { width: 32px; height: 32px; border-radius: 50%; overflow: hidden; background: var(--c-paper-2); box-shadow: inset 0 0 0 1px rgb(31 36 39 / .1); flex: none; }
.xc-app .xc-surf__sw img, .xc-app .xc-sum__sw img, .xc-app .xc-peek__sw img, .xc-app .xc-card__sw img { display: block; width: 100%; height: 100%; object-fit: cover; }
.xc-app .xc-pk__h { margin: 0 0 14px; font-family: var(--f-display); font-weight: 400; font-size: 1.7rem; line-height: 1.08; letter-spacing: -0.01em; outline: none; }
.xc-app .xc-pk__h:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; border-radius: 4px; }
.xc-app .xc-card { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 16px; align-items: start; }
.xc-app .xc-card__sw { width: 88px; height: 88px; border-radius: var(--r-sm); overflow: hidden; background: var(--c-paper-2); box-shadow: 0 0 0 1px rgb(31 36 39 / .08), 0 8px 20px -12px rgb(21 25 27 / .5); }
.xc-app .xc-card__body { min-width: 0; }
.xc-app .xc-card__name { margin: 0; font-size: 1.05rem; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
.xc-app .xc-card__badges { margin: 6px 0; }
.xc-app .xc-card__meta { margin: 0 0 4px; font-size: .84rem; line-height: 1.4; color: var(--c-slate-2); }
.xc-app .xc-card__id { margin: 0; font-size: .76rem; color: var(--c-slate-2); }
.xc-app .xc-fit { margin-top: 14px; padding: 10px 12px; border-radius: var(--r-sm); border: 1px solid; }
.xc-app .xc-fit--listed { background: var(--xc-forest-tint); border-color: rgb(36 74 66 / .2); }
.xc-app .xc-fit--verify { background: #fbf3e2; border-color: rgb(183 133 91 / .45); }
.xc-app .xc-fit__head { display: flex; align-items: center; gap: 8px; margin: 0; font-size: .86rem; font-weight: 700; }
.xc-app .xc-fit--listed .xc-fit__head { color: var(--c-forest); }
.xc-app .xc-fit--verify .xc-fit__head { color: var(--c-copper-ink); }
.xc-app .xc-fit__sub { margin: 4px 0 0 24px; font-size: .78rem; line-height: 1.45; color: var(--c-slate-2); }
.xc-app .xc-fit__notes { margin: 6px 0 0; padding-left: 40px; font-size: .8rem; line-height: 1.45; color: var(--c-graphite); }
.xc-app .xc-card__area { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 0; font-size: .8rem; line-height: 1.45; color: var(--c-slate-2); }
.xc-app .xc-card__area .xc-i { margin-top: 1px; color: var(--c-slate); }
.xc-app .xc-card__area strong { color: var(--c-graphite); font-weight: 700; }
.xc-app .xc-more { margin-top: 12px; border-top: 1px solid var(--c-line); }
.xc-app .xc-more > summary {
display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; list-style: none; cursor: pointer;
font-size: .88rem; font-weight: 650; border-radius: 4px;
}
.xc-app .xc-more > summary::-webkit-details-marker { display: none; }
.xc-app .xc-more > summary:hover { color: var(--c-forest); }
.xc-app .xc-more__chev { transition: transform var(--t-fast) var(--ease-out); }
.xc-app .xc-more[open] .xc-more__chev { transform: rotate(180deg); }
.xc-app .xc-dl { margin: 0 0 8px; display: grid; }
.xc-app .xc-dl > div { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 12px; padding: 7px 0; border-bottom: 1px dashed var(--c-line); }
.xc-app .xc-dl dt { font-size: .76rem; font-weight: 600; color: var(--c-slate-2); }
.xc-app .xc-dl dd { margin: 0; font-size: .84rem; overflow-wrap: anywhere; }
.xc-app .xc-tbc { font-style: italic; color: var(--c-slate); }
.xc-app .xc-more__notes { margin: 8px 0; font-size: .8rem; line-height: 1.5; color: var(--c-slate-2); }
.xc-app .xc-more__link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--c-forest); font-size: .88rem; font-weight: 700; text-underline-offset: 3px; }
.xc-app .xc-tabs { position: sticky; top: 0; z-index: 2; display: flex; gap: 2px; margin: 0 -24px; padding: 0 24px; background: var(--c-paper); border-bottom: 1px solid var(--c-line); }
.xc-app .xc-tabs__tab {
position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 46px; padding: 0 10px; border: 0; background: transparent;
color: var(--c-slate-2); font-size: .86rem; font-weight: 650; cursor: pointer; white-space: nowrap;
}
.xc-app .xc-tabs__tab::after { content: ''; position: absolute; left: 8px; right: 8px; bottom: -1px; height: 2px; border-radius: 2px; background: transparent; transition: background var(--t-fast); }
.xc-app .xc-tabs__tab:hover { color: var(--c-graphite); }
.xc-app .xc-tabs__tab[aria-selected="true"] { color: var(--c-graphite); }
.xc-app .xc-tabs__tab[aria-selected="true"]::after { background: var(--c-forest); }
.xc-app .xc-tabs__tab:focus-visible { outline-offset: -4px; border-radius: 8px; }
.xc-app .xc-tabs__n { min-width: 20px; padding: 1px 6px; border-radius: 999px; background: var(--c-paper-2); font-size: .72rem; font-weight: 700; text-align: center; color: var(--c-slate-2); }
.xc-app .xc-tp { padding-top: 16px; }
.xc-app .xc-pk__note { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 12px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--c-paper-2); font-size: .8rem; line-height: 1.45; color: var(--c-slate-2); }
.xc-app .xc-pk__note .xc-i { margin-top: 1px; color: var(--c-copper-ink); }
.xc-app .xc-pk__note strong { color: var(--c-graphite); }
.xc-app .xc-pk__note--plain { padding: 0; background: none; }
.xc-app .xc-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 16px 12px; }
.xc-app .xc-ptile { display: grid; gap: 3px; width: 100%; padding: 0; border: 0; background: none; text-align: left; cursor: pointer; border-radius: var(--r-sm); }
.xc-app .xc-ptile:focus-visible { outline-offset: 3px; }
.xc-app .xc-ptile__sw {
position: relative; display: block; aspect-ratio: 1; margin-bottom: 5px; border-radius: var(--r-sm); overflow: hidden; background: var(--c-paper-2);
box-shadow: 0 0 0 1px rgb(31 36 39 / .1); transition: box-shadow var(--t-fast), transform var(--t-fast) var(--ease-out);
}
.xc-app .xc-ptile__sw img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-std) var(--ease-out); }
.xc-app .xc-ptile:hover .xc-ptile__sw img { transform: scale(1.04); }
.xc-app .xc-ptile[aria-pressed="true"] .xc-ptile__sw { box-shadow: 0 0 0 2px var(--c-paper), 0 0 0 4px var(--c-forest); }
.xc-app .xc-ptile__fmt { position: absolute; left: 7px; bottom: 7px; width: 20px; height: calc(20px * var(--ar, 1)); min-height: 4px; border: 1.5px solid #fff; border-radius: 2px; box-shadow: 0 0 0 1px rgb(21 25 27 / .25), 0 2px 6px rgb(21 25 27 / .3); }
.xc-app .xc-ptile__on { position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; padding: 4px; border-radius: 50%; background: var(--c-forest); color: #fff; opacity: 0; transform: scale(.6); transition: opacity var(--t-fast), transform var(--t-fast) var(--ease-spring); }
.xc-app .xc-ptile[aria-pressed="true"] .xc-ptile__on { opacity: 1; transform: none; }
.xc-app .xc-ptile__name { font-size: .82rem; font-weight: 650; line-height: 1.3; }
.xc-app .xc-ptile__meta { font-size: .72rem; color: var(--c-slate-2); }
.xc-app .xc-ptile__flag { justify-self: start; margin-top: 2px; padding: 1px 7px; border-radius: 999px; background: #fbf3e2; border: 1px solid rgb(183 133 91 / .45); color: var(--c-copper-ink); font-size: .68rem; font-weight: 700; }
.xc-app .xc-opt + .xc-opt { margin-top: 18px; }
.xc-app .xc-opt__label { margin: 0 0 8px; font-size: .7rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-slate-2); }
.xc-app .xc-opt__val { margin-left: 6px; font-size: .84rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--c-graphite); }
.xc-app .xc-opt__hint { margin: 8px 0 0; font-size: .76rem; color: var(--c-slate); }
.xc-app .xc-opts { display: flex; flex-wrap: wrap; gap: 6px; }
.xc-app .xc-chip {
display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 11px; border: 1px solid var(--c-line); border-radius: 999px;
background: #fff; font-size: .84rem; font-weight: 650; cursor: pointer; transition: border-color var(--t-fast), background var(--t-fast), color var(--t-fast);
}
.xc-app .xc-chip:hover { border-color: var(--c-slate); }
.xc-app .xc-chip[aria-pressed="true"] { background: var(--c-graphite); border-color: var(--c-graphite); color: var(--c-paper); }
.xc-app .xc-chip:disabled { opacity: .45; cursor: not-allowed; }
.xc-app .xc-grouts { display: flex; flex-wrap: wrap; gap: 6px; }
.xc-app .xc-grout { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.xc-app .xc-grout span { width: 30px; height: 30px; border-radius: 50%; background: var(--g); box-shadow: inset 0 0 0 1px rgb(31 36 39 / .18), 0 2px 6px -2px rgb(21 25 27 / .35); transition: box-shadow var(--t-fast); }
.xc-app .xc-grout:hover span { box-shadow: inset 0 0 0 1px rgb(31 36 39 / .3), 0 0 0 3px var(--c-paper-2); }
.xc-app .xc-grout[aria-pressed="true"] span { box-shadow: inset 0 0 0 1px rgb(31 36 39 / .2), 0 0 0 2px var(--c-paper), 0 0 0 4px var(--c-forest); }
.xc-app .xc-stepper { display: inline-flex; align-items: center; border: 1px solid var(--c-line); border-radius: 999px; background: #fff; }
.xc-app .xc-stepper__btn { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.xc-app .xc-stepper__btn:hover:not(:disabled) { background: var(--c-paper-2); }
.xc-app .xc-stepper__btn:disabled { opacity: .35; cursor: not-allowed; }
.xc-app .xc-stepper__val { min-width: 64px; text-align: center; font-size: .9rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.xc-app .xc-pk__fine { margin: 18px 0 0; font-size: .76rem; line-height: 1.45; color: var(--c-slate); }
.xc-app .xc-sum { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.xc-app .xc-sum__r { margin: 0 0 4px; font-size: .7rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-slate-2); }
.xc-app .xc-sum__room ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.xc-app .xc-sum__item {
display: grid; grid-template-columns: 36px minmax(0, 1fr); grid-template-areas: "sw s" "sw p"; column-gap: 12px; align-items: center;
width: 100%; min-height: 50px; padding: 6px 8px; border: 0; border-radius: var(--r-sm); background: transparent; text-align: left; cursor: pointer;
transition: background var(--t-fast);
}
.xc-app .xc-sum__item:hover { background: var(--c-paper-2); }
.xc-app .xc-sum__item[aria-current="true"] { background: var(--xc-forest-tint); }
.xc-app .xc-sum__sw { grid-area: sw; width: 36px; height: 36px; border-radius: 6px; overflow: hidden; background: var(--c-paper-2); box-shadow: inset 0 0 0 1px rgb(31 36 39 / .1); }
.xc-app .xc-sum__s { grid-area: s; font-size: .84rem; font-weight: 650; }
.xc-app .xc-sum__p { grid-area: p; font-size: .76rem; color: var(--c-slate-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xc-app .xc-peek {
display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 0 16px; border: 0; background: transparent; text-align: left; cursor: pointer;
}
.xc-app .xc-peek__sw { flex: none; width: 40px; height: 40px; border-radius: 8px; overflow: hidden; background: var(--c-paper-2); box-shadow: 0 0 0 1px rgb(31 36 39 / .1); }
.xc-app .xc-peek__text { flex: 1; min-width: 0; display: grid; gap: 1px; }
.xc-app .xc-peek__s { font-size: .68rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-slate-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xc-app .xc-peek__p { font-size: .95rem; font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xc-app .xc-peek__go { flex: none; display: inline-flex; align-items: center; gap: 4px; min-height: 36px; padding: 0 12px 0 14px; border-radius: 999px; background: var(--c-forest); color: #fff; font-size: .82rem; font-weight: 700; }
.xc-app .xc-dock {
position: relative; z-index: 40; flex: none; display: flex; align-items: center; gap: 16px; height: var(--xc-dock-h);
padding: 0 16px 0 12px; padding-bottom: env(safe-area-inset-bottom); box-sizing: content-box;
background: var(--c-paper); border-top: 1px solid var(--c-line);
}
.xc-app .xc-dock__tools { position: relative; flex: 1 1 auto; min-width: 0; display: flex; align-items: center; }
.xc-app .xc-dock__more {
display: none; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px 0 12px; border: 1px solid var(--c-line); border-radius: 999px;
background: #fff; font-size: .88rem; font-weight: 650; cursor: pointer;
}
.xc-app .xc-dock__more[aria-expanded="true"] { background: var(--c-graphite); border-color: var(--c-graphite); color: var(--c-paper); }
.xc-app .xc-dtools { display: flex; align-items: center; gap: 2px; min-width: 0; }
.xc-app .xc-dtools__label { margin-right: 6px; padding-left: 4px; font-size: .7rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-slate); }
.xc-app .xc-dtool {
display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 44px; min-height: 44px; padding: 0 12px 0 10px;
border: 0; border-radius: 999px; background: transparent; color: var(--c-graphite); font-size: .86rem; font-weight: 650; white-space: nowrap; cursor: pointer;
transition: background var(--t-fast), color var(--t-fast);
}
.xc-app .xc-dtool .xc-i { color: var(--c-forest); }
.xc-app .xc-dtool:hover { background: var(--c-paper-2); }
.xc-app .xc-dtool[aria-pressed="true"], .xc-app .xc-dtool[aria-expanded="true"], .xc-app .xc-dtool.is-active { background: var(--xc-forest-tint); color: var(--c-forest); }
.xc-app .xc-dtool:disabled { opacity: .45; cursor: not-allowed; }
.xc-app .xc-dock__status { flex: none; display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: .78rem; font-weight: 600; color: var(--c-slate-2); white-space: nowrap; }
.xc-app .xc-dock__status .xc-i { color: var(--c-forest); }
.xc-app .xc-dock__status[data-state="fail"], .xc-app .xc-dock__status[data-state="fail"] .xc-i { color: var(--c-copper-ink); }
.xc-app .xc-cta {
flex: none; display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px 0 22px; border-radius: 999px;
background: var(--c-forest); color: #fff; text-decoration: none; font-size: .95rem; font-weight: 700; letter-spacing: -0.005em; white-space: nowrap;
box-shadow: 0 10px 24px -12px rgb(36 74 66 / .8);
transition: background var(--t-fast), transform var(--t-fast) var(--ease-out), box-shadow var(--t-std);
}
.xc-app .xc-cta:hover { background: var(--c-forest-2); transform: translateY(-1px); box-shadow: 0 14px 30px -12px rgb(36 74 66 / .9); }
.xc-app .xc-cta__more { font-weight: 500; opacity: .86; }
.xc-app .xc-cta__icon { transition: transform var(--t-fast) var(--ease-out); }
.xc-app .xc-cta:hover .xc-cta__icon { transform: translateX(3px); }
.xc-app .xc-cta:focus-visible { outline-offset: 3px; }
.xc-app .xc-dialog {
width: min(480px, calc(100% - 32px)); max-height: min(calc(100dvh - 48px), 760px); padding: 0; border: 0; border-radius: var(--r-lg);
background: var(--c-paper); color: var(--c-graphite); box-shadow: var(--shadow-3); overflow: auto;
}
.xc-app .xc-dialog::backdrop { background: rgb(21 25 27 / .5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.xc-app .xc-dialog[open] { animation: xc-dlg-in var(--t-std) var(--ease-out); }
@keyframes xc-dlg-in { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } }
.xc-app .xc-dialog__inner { display: grid; gap: 0; }
.xc-app .xc-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 14px 6px 24px; }
.xc-app .xc-dialog__head h2, .xc-app .xc-dialog__title { margin: 0; font-family: var(--f-display); font-size: 1.6rem; font-weight: 400; line-height: 1.1; }
.xc-app .xc-dialog__head .xc-ibtn { border-color: var(--c-line); color: var(--c-slate-2); }
.xc-app .xc-dialog__head .xc-ibtn:hover { background: var(--c-paper-2); color: var(--c-graphite); border-color: var(--c-line); }
.xc-app .xc-dialog__body { padding: 6px 24px 8px; font-size: .92rem; line-height: 1.55; color: var(--c-slate-2); }
.xc-app .xc-dialog__body p { margin: 0 0 10px; }
.xc-app .xc-dialog__body ul { margin: 0 0 10px; padding-left: 18px; }
.xc-app .xc-dialog__body strong { color: var(--c-graphite); }
.xc-app .xc-dialog__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding: 12px 24px 22px; }
.xc-app .xc-dialog__actions .btn { min-height: 44px; }
.xc-app[data-view="2d"] .xc-stage { background: var(--c-limestone); }
@media (min-width: 1024px) {
.xc-app__main { grid-template-columns: minmax(0, 1fr) var(--xc-panel-w); }
.xc-app[data-panel="collapsed"] .xc-app__main { grid-template-columns: minmax(0, 1fr) var(--xc-rail-w); }
.xc-app .xc-panel { border-left: 1px solid var(--c-line); }
.xc-app .xc-panel[data-sheet="collapsed"] .xc-panel__head { grid-template-columns: 1fr; grid-template-areas: "toggle"; justify-items: center; padding: 12px 0; }
.xc-app .xc-panel[data-sheet="collapsed"] .xc-panel__back { display: none; }
.xc-app .xc-panel[data-sheet="collapsed"] .xc-panel__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.xc-app .xc-panel[data-sheet="collapsed"] .xc-panel__body,
.xc-app .xc-panel[data-sheet="collapsed"] .xc-panel__foot { display: none; }
.xc-app .xc-panel[data-sheet="collapsed"] .xc-panel__toggle {
width: 44px; height: auto; min-height: 132px; padding: 12px 0; border-radius: 999px; gap: 12px; align-content: start;
background: var(--c-forest); border-color: var(--c-forest); color: #fff;
}
.xc-app .xc-panel[data-sheet="collapsed"] .xc-panel__toggle:hover { background: var(--c-forest-2); }
.xc-app .xc-panel[data-sheet="collapsed"] .xc-panel__rail-label { display: block; writing-mode: vertical-rl; transform: rotate(180deg); font-size: .78rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; }
.xc-app .xc-panel__body { animation: xc-fade-in var(--t-std) var(--ease-out); }
@keyframes xc-fade-in { from { opacity: 0; } to { opacity: 1; } }
}
@media (min-width: 1440px) { .xc-app { --xc-panel-w: 420px; } }
@media (max-width: 1599.98px) { .xc-app .xc-cta__more { display: none; } }
@media (max-width: 1439.98px) and (min-width: 720px) {
.xc-app .xc-dtools__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 1319.98px) and (min-width: 720px) {
.xc-app .xc-dtool { padding: 0; width: 44px; }
.xc-app .xc-dtool__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (min-width: 640px) and (max-width: 879.98px), (min-width: 1024px) and (max-width: 1259.98px) {
.xc-app .xc-pill__k { display: none; }
.xc-app .xc-pill--compact { width: 44px; padding: 0; justify-content: center; }
.xc-app .xc-pill--compact .xc-pill__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.xc-app .xc-pill--compact .xc-pill__chev { display: none; }
}
@media (min-width: 1024px) and (max-height: 1000px) {
.xc-app .xc-panel__head { padding-top: 12px; padding-bottom: 8px; }
.xc-app .xc-panel__title { font-size: 1.65rem; }
.xc-app .xc-pk { gap: 14px; }
.xc-app .xc-pk__label { margin-bottom: 8px; }
.xc-app .xc-pk__h { font-size: 1.3rem; margin-bottom: 10px; }
.xc-app .xc-card { grid-template-columns: 64px minmax(0, 1fr); gap: 14px; }
.xc-app .xc-card__sw { width: 64px; height: 64px; }
.xc-app .xc-card__name { font-size: 1rem; }
.xc-app .xc-card__badges { margin: 3px 0 4px; }
.xc-app .xc-card__meta { margin-bottom: 2px; }
.xc-app .xc-fit { margin-top: 10px; padding: 8px 12px; }
.xc-app .xc-card__area { margin-top: 8px; }
.xc-app .xc-more { margin-top: 6px; }
.xc-app .xc-panel__foot { padding-top: 10px; padding-bottom: 10px; }
.xc-app .xc-fineprint { font-size: .72rem; line-height: 1.4; }
}
@media (min-width: 1024px) and (max-height: 820px) {
.xc-app .xc-panel__back { min-height: 28px; }
.xc-app .xc-panel__title { font-size: 1.45rem; }
.xc-app .xc-pk__h { font-size: 1.15rem; margin-bottom: 8px; }
.xc-app .xc-card { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; }
.xc-app .xc-card__sw { width: 52px; height: 52px; }
.xc-app .xc-card__badges { display: inline; margin: 0 0 0 4px; }
.xc-app .xc-card__name { display: inline; }
}
@media (max-width: 1023.98px) {
.xc-app { --xc-dock-h: 64px; --xc-pop-max: calc(100svh - var(--header-h) - var(--xc-dock-h) - var(--xc-peek) - 130px); }
.xc-app__main { padding-bottom: var(--xc-peek); }
.xc-app .xc-panel {
position: absolute; left: 0; right: 0; top: 12px; bottom: 0; container-type: size;
border-radius: 20px 20px 0 0; box-shadow: 0 -10px 40px -12px rgb(21 25 27 / .45), 0 -1px 0 rgb(31 36 39 / .06);
transform: translate3d(0, calc(100% - var(--xc-peek)), 0); transition: transform var(--t-std) var(--ease-out);
will-change: transform;
}
.xc-app .xc-panel[data-sheet="half"] { transform: translate3d(0, calc(45% - 7px), 0); }
.xc-app .xc-panel[data-sheet="full"] { transform: none; }
.xc-app .xc-panel.is-dragging { transition: none; }
.xc-app .xc-panel__grab { display: flex; flex-direction: column; flex: none; height: var(--xc-peek); position: relative; z-index: 3; background: var(--c-paper); border-radius: 20px 20px 0 0; touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none; }
.xc-app .xc-panel:not([data-sheet="peek"]) .xc-panel__grab { height: 28px; }
.xc-app .xc-panel:not([data-sheet="peek"]) .xc-peek { display: none; }
.xc-app .xc-panel__handle { flex: none; display: grid; place-items: center; width: 100%; height: 28px; padding: 0; border: 0; background: transparent; cursor: grab; border-radius: 20px 20px 0 0; }
.xc-app .xc-panel__handle:focus-visible { outline-offset: -4px; }
.xc-app .xc-panel__grip { width: 40px; height: 4px; border-radius: 2px; background: var(--c-stone); }
.xc-app .xc-panel__scroll {
display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain;
scrollbar-width: thin; scrollbar-color: var(--c-stone) transparent;
}
.xc-app .xc-panel[data-sheet="half"] .xc-panel__scroll { padding-bottom: calc(45svh - 72px); padding-bottom: calc(45cqh - 7px); }
.xc-app .xc-panel__head { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "title back"; align-items: center; padding: 4px 16px 10px 20px; }
.xc-app .xc-panel__title { font-size: 1.5rem; }
.xc-app .xc-panel__back { min-height: 44px; margin: 0; padding: 0 10px; }
.xc-app .xc-panel__toggle { display: none; }
.xc-app .xc-panel__body { flex: none; overflow: visible; padding: 0 20px 20px; }
.xc-app .xc-panel__foot { padding: 12px 20px calc(16px + env(safe-area-inset-bottom)); }
.xc-app .xc-tabs { margin: 0 -20px; padding: 0 20px; }
.xc-app .xc-grid { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
.xc-app .xc-tour { bottom: 12px; width: calc(100% - 24px); }
.xc-app .xc-hint { left: 12px; bottom: 12px; }
.xc-app .xc-poster { padding: 16px; }
}
@media (min-width: 640px) and (max-width: 1023.98px) {
.xc-app .xc-panel { left: max(16px, calc(50% - 360px)); right: max(16px, calc(50% - 360px)); }
}
@media (max-width: 639.98px) {
.xc-app .xc-bar { top: 12px; left: 12px; right: 12px; flex-wrap: wrap; justify-content: flex-start; gap: 6px; }
.xc-app .xc-bar__start, .xc-app .xc-bar__end { display: contents; }
.xc-app .xc-bar .xc-pop { position: static; pointer-events: auto; }
.xc-app .xc-bar .xc-pop:first-child { order: 1; flex: 1 1 auto; min-width: 0; }
.xc-app .xc-bar .xc-pop:first-child .xc-pill { width: 100%; }
.xc-app .xc-bar__start .xc-pop:nth-child(2) { order: 2; }
.xc-app .xc-bar__end .xc-pop { order: 3; }
.xc-app .xc-bar .xc-seg { order: 4; pointer-events: auto; }
.xc-app .xc-pill__k { display: none; }
.xc-app .xc-pill--compact { width: 44px; padding: 0; justify-content: center; }
.xc-app .xc-pill--compact .xc-pill__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.xc-app .xc-pill--compact .xc-pill__chev { display: none; }
.xc-app .xc-pill:not(.xc-pill--compact):not(.xc-pill--icon) .xc-pill__chev { margin-left: auto; }
.xc-app .xc-pop__panel, .xc-app .xc-pop__panel--end, .xc-app .xc-pop__panel--wide { left: 0; right: 0; width: auto; max-width: none; transform-origin: top center; }
.xc-app .xc-rooms { grid-template-columns: 1fr; gap: 12px; }
.xc-app .xc-rooms__map { position: static; }
.xc-app .xc-map { max-height: 150px; }
.xc-app .xc-notices { top: 112px; width: calc(100% - 24px); }
.xc-app .xc-qual { grid-template-columns: 1fr; }
.xc-app .xc-qual__opt { min-height: 52px; }
.xc-app .xc-tour { grid-template-columns: 1fr; padding: 14px 14px 16px 16px; gap: 10px; }
.xc-app .xc-tour__ctrl { justify-content: space-between; }
.xc-app .xc-tour__caption { font-size: .92rem; }
.xc-app .xc-poster { align-items: flex-end; }
.xc-app .xc-poster__plan { top: 16px; right: 16px; left: 16px; width: auto; transform: none; opacity: .8; }
.xc-app .xc-plan { max-height: 34svh; margin: 0 auto; }
.xc-app .xc-poster__card { padding: 22px 20px 20px; border-radius: var(--r-lg); }
.xc-app .xc-poster__title { font-size: 2.1rem; }
.xc-app .xc-poster__lead { font-size: .92rem; margin-bottom: 16px; }
.xc-app .xc-poster__actions .btn { flex: 1 1 auto; min-height: 48px; padding: 0 18px; }
.xc-app .xc-poster__fine { margin-top: 14px; }
.xc-app .xc-poster__noscript ul { columns: 1; }
}
@media (max-width: 719.98px) {
.xc-app .xc-dock { gap: 10px; padding: 0 12px; }
.xc-app .xc-dock__more { display: inline-flex; }
.xc-app .xc-dock__status { display: none; }
.xc-app .xc-dock__tools { flex: none; }
.xc-app .xc-dtools {
position: absolute; left: 0; bottom: calc(100% + 12px); width: min(320px, calc(100vw - 24px));
display: none; grid-template-columns: 1fr 1fr; gap: 4px; padding: 12px; border-radius: var(--r-md);
background: var(--c-paper); border: 1px solid rgb(31 36 39 / .06); box-shadow: 0 24px 60px -20px rgb(21 25 27 / .55);
}
.xc-app.is-tools-open .xc-dtools { display: grid; animation: xc-pop-in var(--t-fast) var(--ease-out); }
.xc-app .xc-dtools__label { grid-column: 1 / -1; margin: 0 0 4px; padding: 0 4px; }
.xc-app .xc-dtool { justify-content: flex-start; width: 100%; padding: 0 10px; border-radius: var(--r-sm); background: var(--c-paper-2); }
.xc-app .xc-dtool:hover { background: var(--c-limestone); }
.xc-app .xc-cta { flex: 1 1 auto; justify-content: center; min-width: 0; padding: 0 16px; }
.xc-app .xc-cta__text { overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 359.98px) {
.xc-app .xc-dock__more span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.xc-app .xc-dock__more { width: 44px; padding: 0; justify-content: center; }
}
@media (max-height: 560px) and (max-width: 1023.98px) {
.xc-app { min-height: 480px; }
}
.page-xc-app .xc-about { padding: clamp(3.5rem, 2.5rem + 4vw, 6.5rem) 0; background: var(--c-paper); }
.page-xc-app .xc-about__grid { display: grid; gap: clamp(2rem, 1rem + 3vw, 4.5rem); grid-template-columns: minmax(0, 1fr); }
.page-xc-app .xc-about__intro .display-3 { margin: 10px 0 16px; }
.page-xc-app .xc-about__intro .display-3 em { color: var(--c-forest); }
.page-xc-app .xc-about__lead { margin: 0; max-width: 52ch; color: var(--c-slate-2); font-size: 1.02rem; line-height: 1.65; }
.page-xc-app .xc-about__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: xcs; }
.page-xc-app .xc-about__steps li {
position: relative; padding: 18px 0 18px 56px; border-top: 1px solid var(--c-line); color: var(--c-slate-2); line-height: 1.6; counter-increment: xcs;
}
.page-xc-app .xc-about__steps li:last-child { border-bottom: 1px solid var(--c-line); }
.page-xc-app .xc-about__steps li::before {
content: counter(xcs, decimal-leading-zero); position: absolute; left: 0; top: 16px;
font-family: var(--f-display); font-size: 1.6rem; line-height: 1; color: var(--c-copper);
}
.page-xc-app .xc-about__steps strong { display: block; color: var(--c-graphite); font-weight: 700; margin-bottom: 2px; }
.page-xc-app .xc-about__rooms { margin-top: clamp(2rem, 1rem + 2vw, 3.5rem); }
.page-xc-app .xc-about__label { margin: 0 0 12px; font-size: .72rem; font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-slate-2); }
.page-xc-app .xc-about__rooms ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.page-xc-app .xc-about__rooms a {
display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--c-line); border-radius: 999px;
color: var(--c-graphite); background: #fff; text-decoration: none; font-size: .9rem; font-weight: 650;
transition: border-color var(--t-fast), background var(--t-fast);
}
.page-xc-app .xc-about__rooms a:hover { border-color: var(--c-forest); color: var(--c-forest); }
.page-xc-app .xc-about__fine { margin: 28px 0 0; max-width: 80ch; font-size: .8rem; line-height: 1.55; color: var(--c-slate); }
@media (min-width: 960px) { .page-xc-app .xc-about__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; } }
@media (prefers-reduced-motion: reduce) {
.xc-app .xc-hs__dot::before { animation: none; opacity: 0; }
.xc-app .xc-busy::before { animation: none; left: 0; width: 100%; background: var(--c-copper-soft); opacity: .7; }
.xc-app .xc-plan__room rect { animation: none; stroke-dashoffset: 0; }
.xc-app .xc-plan__room text { animation: none; opacity: 1; }
.xc-app .xc-poster__card, .xc-app .xc-tour, .xc-app .xc-dialog[open], .xc-app .xc-pop.is-open > .xc-pop__panel,
.xc-app.is-tools-open .xc-dtools, .xc-app .xc-panel__body { animation: none; }
.xc-app .xc-ptile:hover .xc-ptile__sw img { transform: none; }
.xc-app .xc-cta:hover, .xc-app .xc-cta:hover .xc-cta__icon { transform: none; }
}
.xct-ico { flex: none; display: inline-block; vertical-align: middle; }
.xct-dlg {
--xct-w: 680px;
width: min(calc(100% - 32px), var(--xct-w)); max-width: none; max-height: min(calc(100dvh - 32px), 1000px);
padding: 0; border: 0; border-radius: var(--r-lg); background: var(--c-paper); color: var(--fg);
box-shadow: var(--shadow-3); overflow: hidden; overscroll-behavior: contain;
}
.xct-dlg[open] { display: flex; flex-direction: column; animation: xct-in var(--t-std) var(--ease-out); }
.xct-dlg.is-closing { opacity: 0; transform: translateY(8px) scale(.985); transition: opacity var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out); }
.xct-dlg::backdrop { background: rgb(21 25 27 / .52); backdrop-filter: blur(4px); }
.xct-dlg--sm { --xct-w: 520px; }
.xct-dlg--md { --xct-w: 680px; }
.xct-dlg--lg { --xct-w: 960px; }
.xct-dlg--xl { --xct-w: 1200px; }
@keyframes xct-in { from { opacity: 0; transform: translateY(14px) scale(.98); } }
.xct-dlg__head { display: flex; align-items: flex-start; gap: 16px; padding: 20px 20px 14px 26px; border-bottom: 1px solid var(--c-line); background: var(--c-paper); }
.xct-dlg__titles { flex: 1; min-width: 0; }
.xct-dlg__eyebrow { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-ink); margin: 4px 0 4px; }
.xct-dlg__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); line-height: 1.1; letter-spacing: -0.01em; margin: 0; }
.xct-dlg__lead { margin: 6px 0 0; font-size: .95rem; color: var(--fg-muted); max-width: 72ch; }
.xct-dlg__body { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 20px 26px 24px; overscroll-behavior: contain; }
.xct-dlg__foot { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 10px; padding: 14px 26px; border-top: 1px solid var(--c-line); background: var(--c-paper-2); }
.xct-dlg__foot[hidden] { display: none; }
.xct-dlg .btn--sm, .xct-snack .btn--sm { min-height: 44px; }
.xct-dlg .btn .xct-ico { margin: 0 -2px; }
@media (max-width: 640px) {
.xct-dlg { width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; }
.xct-dlg__head { padding: 14px 12px 12px 18px; }
.xct-dlg__body { padding: 16px 18px 20px; }
.xct-dlg__foot { padding: 12px 18px max(12px, env(safe-area-inset-bottom)); }
.xct-dlg__foot > .btn { flex: 1 1 auto; }
}
:is(.xct-dlg, .xct-present, .xct-snack) button.btn { color: var(--btn-fg); font-weight: 650; font-size: .975rem; }
:is(.xct-dlg, .xct-present, .xct-snack) button.btn--sm { font-size: .9rem; }
.xct-icon-btn {
flex: none; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 999px;
border: 1px solid transparent; background: transparent; color: inherit; cursor: pointer;
transition: background var(--t-fast), border-color var(--t-fast);
}
.xct-icon-btn:hover { background: rgb(31 36 39 / .07); }
button.xct-icon-btn--dark, .xct-icon-btn--dark { color: var(--c-on-dark); }
.xct-icon-btn--dark:hover { background: rgb(255 255 255 / .12); }
.xct-icon-btn--dark:focus-visible { outline-color: var(--c-copper-soft); }
.xct-seg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; border-radius: 999px; background: var(--c-paper-2); border: 1px solid var(--c-line); }
button.xct-seg__btn, .xct-seg__btn {
display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px;
background: transparent; color: var(--c-slate-2); font-weight: 650; font-size: .9rem; cursor: pointer;
transition: background var(--t-fast), color var(--t-fast);
}
.xct-seg__btn:hover { color: var(--c-graphite); background: rgb(31 36 39 / .05); }
.xct-seg__btn[aria-pressed="true"] { background: var(--c-graphite); color: var(--c-paper); }
.xct-seg__btn:disabled { opacity: .45; cursor: not-allowed; }
.xct-seg--dark { background: rgb(255 255 255 / .08); border-color: rgb(255 255 255 / .14); }
.xct-seg--dark .xct-seg__btn { color: var(--c-on-dark-2); }
.xct-seg--dark .xct-seg__btn:hover { color: var(--c-on-dark); background: rgb(255 255 255 / .08); }
.xct-seg--dark .xct-seg__btn[aria-pressed="true"] { background: var(--c-paper); color: var(--c-ink); }
.xct-kbd { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 5px; font-size: .7rem; font-weight: 700; background: rgb(31 36 39 / .08); color: inherit; }
.xct-seg__btn[aria-pressed="true"] .xct-kbd { background: rgb(255 255 255 / .18); }
.xct-field { display: grid; gap: 6px; min-width: 0; }
.xct-field__label { font-size: .8rem; font-weight: 700; color: var(--c-slate-2); letter-spacing: .01em; }
.xct-field .select { min-height: 48px; padding-block: 10px; }
.xct-fineprint { margin-top: 20px; font-size: .78rem; line-height: 1.5; color: var(--c-slate); max-width: 100ch; }
.xct-hint { margin-top: 8px; font-size: .82rem; color: var(--c-slate); }
.xct-status { min-height: 1.5em; margin: 8px 0 0; font-size: .9rem; font-weight: 600; color: var(--c-forest); }
.xct-status--muted { font-weight: 500; color: var(--c-slate-2); margin: 0 0 4px; }
.xct-empty { padding: 28px 20px; text-align: center; color: var(--c-slate-2); border: 1px dashed var(--c-stone); border-radius: var(--r-md); }
.xct-empty a { color: var(--accent); font-weight: 650; }
.xct-inuse { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--c-forest); font-weight: 650; font-size: .9rem; }
.xct-demo { font-size: .64rem; padding: 3px 8px; letter-spacing: .06em; }
.xct-verify, .xct-note {
display: block; margin: 10px 0 0; padding: 9px 12px; border-radius: var(--r-sm); font-size: .85rem; line-height: 1.5;
background: #fff6de; color: #5c4100; border: 1px dashed #c99a2e;
}
.xct-verify p, .xct-note p { margin: 0; }
.xct-note + .xct-note { margin-top: 8px; }
.xct-swatch { flex: none; width: 64px; aspect-ratio: 1; border-radius: 10px; background: var(--c-limestone) center / cover no-repeat; box-shadow: inset 0 0 0 1px rgb(0 0 0 / .08); }
.xct-swatch--lg { width: 100%; aspect-ratio: 16 / 9; border-radius: var(--r-sm); }
.xct-dlg code, .xct-sched code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .86em; padding: 1px 6px; border-radius: 5px; background: var(--c-paper-2); border: 1px solid var(--c-line); color: var(--c-graphite); word-break: break-all; }
.xct-cmp__controls { display: grid; grid-template-columns: minmax(220px, 1fr) 3fr; gap: 14px; align-items: end; }
.xct-cmp__slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.xct-cmp__modebar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 18px 0 12px; }
.xct-cmp__modebar[hidden] { display: none; }
.xct-cmp__cam { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 12px; }
.xct-cmp__viewnote { margin: 0; font-size: .82rem; color: var(--c-slate); }
.xct-seg--sm .xct-seg__btn { padding: 0 14px; font-size: .84rem; }
.xct-cmp__ab { display: flex; width: fit-content; margin: 0 auto 10px; }
.xct-cmp__stage-wrap .xct-hint { text-align: center; }
.xct-cmp__stage {
position: relative; aspect-ratio: 16 / 10; --xct-cmp-chrome: 385px; width: min(100%, calc((100dvh - var(--xct-cmp-chrome)) * 1.6)); min-width: min(100%, 560px); margin-inline: auto;
border-radius: var(--r-md); overflow: hidden; background: var(--c-ink);
user-select: none; -webkit-user-select: none; touch-action: pan-y; box-shadow: var(--shadow-1);
}
.xct-cmp__stage--slider { cursor: ew-resize; }
.xct-cmp__ab + .xct-cmp__stage { --xct-cmp-chrome: 445px; }
.xct-cmp__layer { position: absolute; inset: 0; margin: 0; }
.xct-cmp__layer[hidden] { display: none; }
.xct-cmp__ph, .xct-cmp__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.xct-cmp__ph { filter: saturate(.9); }
.xct-cmp__img[hidden] { display: none; }
.xct-cmp__layer.is-loading .xct-cmp__ph { animation: xct-pulse 1.4s ease-in-out infinite alternate; }
@keyframes xct-pulse { to { opacity: .7; } }
.xct-cmp__status {
position: absolute; top: 12px; left: 12px; margin: 0; display: none; padding: 6px 12px; border-radius: 999px;
background: rgb(21 25 27 / .72); color: var(--c-on-dark); font-size: .8rem; font-weight: 600;
}
.xct-cmp__layer.is-loading .xct-cmp__status, .xct-cmp__layer.is-failed .xct-cmp__status { display: block; }
.xct-cmp__stage--split .xct-cmp__layer:nth-child(2) .xct-cmp__status { left: auto; right: 12px; }
.xct-cmp__tag {
position: absolute; left: 10px; bottom: 10px; z-index: 1; display: flex; align-items: center; gap: 8px; max-width: calc(100% - 20px);
padding: 6px 10px 6px 6px; border-radius: 12px; background: rgb(21 25 27 / .8); color: var(--c-on-dark);
backdrop-filter: blur(6px); font-size: .82rem; line-height: 1.25; overflow: hidden;
}
.xct-cmp__tag-letter { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--c-paper); color: var(--c-ink); font-weight: 800; }
.xct-cmp__tag-text { min-width: 0; display: grid; }
.xct-cmp__tag-text strong { font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xct-cmp__tag-id { color: var(--c-on-dark-2); font-size: .74rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xct-cmp__tag-demo { flex: none; font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 7px; border-radius: 999px; background: #fff4d6; color: #7a5600; }
.xct-cmp__divider {
position: absolute; top: 0; bottom: 0; z-index: 2; width: 44px; margin-left: -22px; display: grid; place-items: center;
cursor: ew-resize; touch-action: none; outline: none;
}
.xct-cmp__divider::before { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; margin-left: -1px; background: #fff; box-shadow: 0 0 0 1px rgb(0 0 0 / .18), 0 0 14px rgb(0 0 0 / .35); }
.xct-cmp__grip { position: relative; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px; background: var(--c-paper); color: var(--c-ink); box-shadow: var(--shadow-2); transition: transform var(--t-fast) var(--ease-out); }
.xct-cmp__grip .xct-ico { margin: 0 -3px; }
.xct-cmp__divider:hover .xct-cmp__grip { transform: scale(1.06); }
.xct-cmp__divider:focus-visible .xct-cmp__grip { outline: 3px solid var(--c-copper-soft); outline-offset: 2px; }
.xct-cmp__cards { margin-top: 18px; }
.xct-cmp__cardlist { --n: 2; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.xct-card { display: flex; flex-direction: column; gap: 8px; padding: 16px; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-md); min-width: 0; }
.xct-card .badge { align-self: flex-start; }
.xct-card__kicker { display: flex; align-items: center; gap: 8px; margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate-2); }
.xct-letter { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; background: var(--c-graphite); color: var(--c-paper); font-size: .72rem; letter-spacing: 0; }
.xct-card__title { margin: 0; font-family: var(--f-sans); font-size: 1.1rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.25; }
.xct-card__id { margin: 0; font-size: .82rem; color: var(--c-slate-2); }
.xct-card__note { margin: 0; font-size: .84rem; color: var(--c-slate-2); }
.xct-card__actions { margin-top: auto; padding-top: 6px; }
.xct-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; margin: 4px 0 0; }
.xct-specs dt { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate); }
.xct-specs dd { margin: 0; font-size: .9rem; font-weight: 600; }
@media (max-width: 900px) {
.xct-cmp__controls { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
.xct-cmp__slots { grid-template-columns: 1fr; }
.xct-cmp__cardlist { grid-template-columns: 1fr; }
.xct-cmp__tag { font-size: .74rem; padding: 4px 8px 4px 4px; }
.xct-cmp__tag-letter { width: 22px; height: 22px; }
.xct-cmp__tag-id, .xct-cmp__tag-demo { display: none; }
}
.xct-presets { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.xct-preset { display: flex; flex-direction: column; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden; }
.xct-preset.is-current { border-color: var(--c-forest); box-shadow: 0 0 0 1px var(--c-forest); }
.xct-preset__thumb { position: relative; aspect-ratio: 16 / 10; background: var(--c-limestone); overflow: hidden; }
.xct-preset__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: xct-fade var(--t-std) var(--ease-out); }
.xct-preset__thumb img[hidden] { display: none; }
@keyframes xct-fade { from { opacity: 0; } }
.xct-preset__thumb.is-loading .xct-mosaic { animation: xct-pulse 1.4s ease-in-out infinite alternate; }
.xct-mosaic { position: absolute; inset: 0; display: flex; }
.xct-mosaic span { flex: 1; background: center / cover no-repeat; box-shadow: inset -1px 0 0 rgb(255 255 255 / .5); }
.xct-preset__illus { position: absolute; right: 8px; bottom: 8px; padding: 2px 8px; border-radius: 999px; background: rgb(21 25 27 / .62); color: var(--c-on-dark); font-size: .66rem; font-weight: 600; letter-spacing: .04em; }
.xct-preset__body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 14px 16px 16px; }
.xct-preset__title { margin: 0; font-family: var(--f-display); font-weight: 400; font-size: 1.5rem; line-height: 1.1; }
.xct-preset__note { margin: 0; font-size: .88rem; color: var(--c-slate-2); }
.xct-preset__tiles summary { display: flex; align-items: center; min-height: 44px; font-size: .85rem; font-weight: 650; color: var(--c-forest); cursor: pointer; }
.xct-preset__tiles ul { display: grid; gap: 0; margin: 0 0 6px; padding: 0; list-style: none; }
.xct-preset__tiles li { display: grid; gap: 1px; padding: 6px 0; border-top: 1px dashed var(--c-line); font-size: .8rem; }
.xct-preset__tiles li > span:first-child { color: var(--c-slate); }
.xct-preset__tiles code { font-size: .74rem; }
.xct-mini-demo, .xct-mini-verify { display: inline-block; padding: 0 6px; border-radius: 999px; font-size: .62rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; vertical-align: 1px; }
.xct-mini-demo { background: #fff4d6; color: #7a5600; }
.xct-mini-verify { background: #fde8e0; color: #8a2f14; }
.xct-preset__actions { margin-top: auto; padding-top: 6px; }
.xct-review { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.xct-review__item, .xct-sl__item { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 16px; padding: 14px; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-md); }
.xct-review__item .xct-swatch, .xct-sl__item .xct-swatch { width: 72px; }
.xct-review__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.xct-review__name { margin: 0; font-family: var(--f-sans); font-size: 1.05rem; font-weight: 700; letter-spacing: -0.01em; }
.xct-review__meta { margin: 4px 0 0; font-size: .85rem; color: var(--c-slate-2); }
.xct-review__surfaces { margin: 8px 0 0; padding: 0; list-style: none; }
.xct-review__surfaces li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-top: 1px dashed var(--c-line); font-size: .88rem; }
.xct-review__area { flex: none; color: var(--c-slate-2); font-variant-numeric: tabular-nums; }
.xct-review__totals { display: flex; flex-wrap: wrap; gap: 10px 32px; margin: 18px 0 12px; }
.xct-review__totals dt { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate); }
.xct-review__totals dd { margin: 0; font-family: var(--f-display); font-size: 1.8rem; line-height: 1.1; }
.xct-notes { display: grid; gap: 6px; padding: 14px 16px; border-radius: var(--r-md); background: var(--c-paper-2); }
.xct-notes p { display: flex; gap: 8px; margin: 0; font-size: .86rem; color: var(--c-slate-2); }
.xct-notes .xct-ico { margin-top: 2px; color: var(--c-forest); }
.xct-sl__item { grid-template-columns: 72px minmax(0, 1fr) 44px; align-items: start; }
.xct-sl__seen { margin: 4px 0 0; font-size: .84rem; color: var(--c-slate-2); }
.xct-sl__add { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 18px; }
.xct-sl__add .btn { white-space: normal; text-align: left; line-height: 1.25; padding-block: 8px; }
.xct-sl__from { font-weight: 500; color: var(--c-slate-2); }
.xct-sl__count { margin: 0 0 10px; font-family: var(--f-sans); font-size: .95rem; font-weight: 700; }
@media (max-width: 480px) {
.xct-review__item, .xct-sl__item { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; }
.xct-review__item .xct-swatch, .xct-sl__item .xct-swatch { width: 52px; }
.xct-sl__item .xct-icon-btn { grid-column: 2; justify-self: start; margin-left: -10px; }
}
.xct-copyrow { display: flex; gap: 8px; }
.xct-copyrow .input { flex: 1; min-width: 0; min-height: 48px; font-size: .88rem; color: var(--c-slate-2); }
.xct-share__more { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.xct-share__preview { margin-top: 14px; }
.xct-share__preview summary { display: flex; align-items: center; min-height: 44px; font-size: .88rem; font-weight: 650; color: var(--c-forest); cursor: pointer; }
.xct-share__preview pre { margin: 0; max-height: 260px; overflow: auto; padding: 12px 14px; border-radius: var(--r-sm); background: var(--c-paper-2); font-family: var(--f-sans); font-size: .8rem; line-height: 1.55; white-space: pre-wrap; }
@media (max-width: 480px) { .xct-copyrow { flex-direction: column; } }
.xct-snack {
position: fixed; left: 50%; bottom: max(24px, env(safe-area-inset-bottom)); z-index: 1200; display: flex; align-items: center; gap: 4px;
max-width: calc(100vw - 32px); padding: 6px 6px 6px 18px; border-radius: 999px; background: var(--c-ink); color: var(--c-on-dark);
box-shadow: var(--shadow-3); opacity: 0; transform: translate(-50%, 16px);
transition: opacity var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out);
}
.xct-snack.is-on { opacity: 1; transform: translate(-50%, 0); }
.xct-snack__msg { margin: 0 6px 0 0; font-size: .92rem; }
button.xct-snack__btn, .xct-snack__btn { min-height: 44px; padding: 0 16px; border: 0; border-radius: 999px; background: transparent; color: var(--c-copper-soft); font-weight: 750; font-size: .92rem; cursor: pointer; }
.xct-snack__btn:hover { background: rgb(255 255 255 / .1); }
.xct-snack :focus-visible { outline-color: var(--c-copper-soft); }
.xct-snack .xct-icon-btn { color: var(--c-on-dark-2); }
.xct-snack .xct-icon-btn:hover { background: rgb(255 255 255 / .1); }
.page-xc-app .xct-snack { bottom: max(96px, calc(env(safe-area-inset-bottom) + 84px)); }
@media (max-width: 480px) { .xct-snack { left: 16px; right: 16px; transform: translateY(16px); border-radius: var(--r-md); } .xct-snack.is-on { transform: none; } .xct-snack__msg { flex: 1; } }
.xct-presenting { position: relative; background: var(--c-ink); }
.xct-presenting > [data-xc-view] { position: absolute !important; inset: 0 !important; width: auto !important; height: auto !important; max-height: none !important; }
.xct-presenting > [data-xc-view] canvas { display: block; width: 100% !important; height: 100% !important; }
.xct-present-fixed { position: fixed !important; inset: 0 !important; z-index: 1100 !important; width: 100vw !important; height: 100dvh !important; max-width: none !important; max-height: none !important; margin: 0 !important; border-radius: 0 !important; }
html.xct-noscroll, html.xct-noscroll body { overflow: hidden; }
.xct-cursor-off, .xct-cursor-off * { cursor: none !important; }
.xct-present {
position: absolute; inset: 0; z-index: 60; display: flex; flex-direction: column; justify-content: flex-end;
color: var(--c-on-dark); pointer-events: none; outline: none;
}
.xct-present::before { content: ''; position: absolute; inset: auto 0 0 0; height: 62%; background: linear-gradient(to top, rgb(21 25 27 / .86) 0%, rgb(21 25 27 / .5) 45%, transparent 100%); pointer-events: none; }
.xct-present__swatches { position: absolute; inset: 0; z-index: -1; display: flex; }
.xct-present__swatches::after { content: ''; position: absolute; inset: 0; background: rgb(21 25 27 / .3); }
.xct-present__swatches span { flex: 1; background: center / cover no-repeat; }
.xct-present__caption { position: relative; max-width: 1500px; padding: 0 clamp(24px, 4.2vw, 88px) clamp(28px, 5.5vh, 72px); }
.xct-present__kicker { margin: 0; font-size: clamp(.78rem, .7vw, 1rem); font-weight: 700; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--c-copper-soft); }
.xct-present__title { margin: .12em 0 .18em; font-family: var(--f-display); font-weight: 400; font-size: clamp(2.6rem, 4.6vw, 6.25rem); line-height: 1.06; letter-spacing: -0.015em; color: #fff; text-wrap: balance; }
.xct-present__sub { margin: 0; max-width: 62ch; font-size: clamp(1rem, 1.1vw, 1.45rem); color: var(--c-on-dark); opacity: .9; }
.xct-present__list { display: flex; flex-wrap: wrap; gap: 14px clamp(24px, 2.6vw, 56px); margin: clamp(20px, 3.2vh, 40px) 0 0 !important; padding: 0; list-style: none; }
.xct-present__list li { display: grid; gap: 3px; min-width: 0; padding-left: 14px; border-left: 2px solid rgb(231 211 191 / .55); }
.xct-present__surf { font-size: clamp(.72rem, .68vw, .95rem); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-on-dark-2); }
.xct-present__prod { font-size: clamp(1.15rem, 1.45vw, 2rem); font-weight: 650; letter-spacing: -0.01em; color: #fff; }
.xct-present__meta { font-size: clamp(.78rem, .78vw, 1.05rem); color: var(--c-on-dark-2); }
.xct-present__demo { width: fit-content; margin-top: 3px; padding: 2px 9px; border-radius: 999px; background: #fff4d6; color: #7a5600; font-size: clamp(.62rem, .6vw, .82rem); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.xct-present__illus { margin: clamp(12px, 1.8vh, 22px) 0 0; font-size: clamp(.72rem, .66vw, .9rem); color: var(--c-on-dark-2); }
.xct-present__bar {
position: absolute; top: max(14px, env(safe-area-inset-top)); left: 16px; right: 16px; display: flex; align-items: center; gap: 10px 14px;
padding: 6px 6px 6px 18px; border-radius: 999px; background: rgb(21 25 27 / .62); border: 1px solid rgb(255 255 255 / .12);
backdrop-filter: blur(10px); pointer-events: auto; transition: opacity var(--t-std) var(--ease-out), transform var(--t-std) var(--ease-out);
}
.xct-present__brand { font-family: var(--f-brand); font-size: 1.15rem; white-space: nowrap; }
.xct-present__brand span { font-family: var(--f-sans); font-size: .78rem; color: var(--c-on-dark-2); margin-left: 6px; }
.xct-present__step { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.xct-present__count { min-width: 5ch; text-align: center; font-size: .95rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.xct-present__keys { margin: 0; font-size: .78rem; color: var(--c-on-dark-2); white-space: nowrap; }
.xct-present__keys kbd { display: inline-grid; place-items: center; min-width: 22px; height: 22px; margin: 0 2px; padding: 0 5px; border-radius: 5px; border: 1px solid rgb(255 255 255 / .25); font: inherit; font-size: .72rem; font-weight: 700; color: var(--c-on-dark); }
.xct-present.is-idle .xct-present__bar:not(:focus-within) { opacity: 0; transform: translateY(-8px); pointer-events: none; }
@media (max-width: 900px) { .xct-present__keys, .xct-present__brand span { display: none; } }
@media (max-width: 560px) { .xct-present__brand { display: none; } .xct-present__bar { padding-left: 6px; } }
.xct-sched { padding: calc(var(--header-h) + 28px) 0 var(--s-8); }
.xct-sched__crumbs .breadcrumbs ol { margin-bottom: var(--s-5); }
.xct-sched__brand { display: none; }
.xct-sched__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 20px 32px; padding-bottom: 22px; border-bottom: 1px solid var(--c-line); }
.xct-sched__head .eyebrow { margin-bottom: var(--s-3); }
.xct-sched__head h1 { margin: 0; }
.xct-sched__lead { margin: 10px 0 0; max-width: 64ch; color: var(--fg-muted); }
.xct-sched__meta { margin: 8px 0 0; font-size: .9rem; color: var(--c-slate); }
.xct-sched__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.xct-sched__actions .btn--sm { min-height: 44px; }
.no-js .xct-sched__actions [data-sched-csv], .no-js .xct-sched__actions [data-sched-print] { display: none; }
.xct-sched__notice:empty, .xct-sched__notice[hidden] { display: none; }
.xct-sched__notice { margin-top: 18px; }
.xct-sched__wait { padding: 32px 0; color: var(--c-slate); }
.xct-sched__h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin: 32px 0 12px; font-family: var(--f-display); font-weight: 400; font-size: clamp(1.5rem, 1.3rem + .6vw, 1.9rem); line-height: 1.15; }
.xct-sched__count { font-family: var(--f-sans); font-size: .85rem; color: var(--c-slate); }
.xct-sched__wrap { background: var(--c-white); }
table.xct-sched__table { font-size: .875rem; }
.xct-sched__table th, .xct-sched__table td { padding: 10px 12px; }
.xct-sched__table thead th { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-slate-2); white-space: nowrap; }
.xct-sched__table tbody th { background: var(--c-paper); font-weight: 700; }
.xct-sched__table tr.is-room-start > * { border-top: 2px solid var(--c-stone); }
.xct-sched__table tbody tr:first-child > * { border-top: 0; }
.xct-sched__room { min-width: 110px; }
.xct-sched__rep { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.xct-sched__tile { min-width: 250px; }
.xct-sched__tile > span:last-child { display: flow-root; }
.xct-sched__sw { float: left; width: 34px; height: 34px; margin: 0 10px 0 0; border-radius: 6px; background: var(--c-limestone) center / cover no-repeat; box-shadow: inset 0 0 0 1px rgb(0 0 0 / .08); }
.xct-sched__demo { display: block; width: fit-content; margin-top: 3px; padding: 1px 7px; border-radius: 999px; border: 1px dashed #c99a2e; background: #fff4d6; color: #7a5600; font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.xct-sched__pid { display: block; margin-top: 2px; font-size: .8rem; color: var(--c-slate); }
.xct-sched__pid code { word-break: normal; white-space: nowrap; }
.xct-sched__sub { display: block; margin-top: 2px; font-size: .8rem; color: var(--c-slate); white-space: nowrap; }
.xct-sched__fit { min-width: 260px; color: var(--c-slate-2); }
.xct-sched__table tr.is-verify .xct-sched__fit { color: #5c4100; background: #fffaf0; }
.xct-sched__verify { color: #7a4a00; }
.xct-sched__assume { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: 999px; background: #fff4d6; color: #7a5600; font-size: .62rem; letter-spacing: .05em; vertical-align: 1px; }
.xct-sched__totals tbody th { background: var(--c-white); font-weight: 500; }
.xct-sched__totals tbody th strong { font-weight: 700; }
.xct-sched__totals tfoot > tr > * { background: var(--c-paper-2); font-weight: 700; border-bottom: 0; }
.xct-num { text-align: right !important; font-variant-numeric: tabular-nums; }
.xct-nowrap { white-space: nowrap; }
.xct-sched__foot { margin: 10px 0 0; font-size: .82rem; color: var(--c-slate); }
.xct-sched__disclaimer { margin-top: 36px; padding: 20px 24px; border-radius: var(--r-md); background: var(--c-paper-2); border: 1px solid var(--c-line); }
.xct-sched__disclaimer .xct-sched__h2 { margin-top: 0; font-size: 1.35rem; }
.xct-sched__disclaimer ul { margin: 0; padding-left: 1.2em; list-style: disc; }
.xct-sched__disclaimer li { margin: 4px 0; font-size: .88rem; color: var(--c-slate-2); }
@media screen and (max-width: 860px) {
.xct-sched__head { grid-template-columns: 1fr; }
.xct-sched__actions { justify-content: flex-start; }
}
@media screen and (max-width: 760px) {
.xct-sched__wrap { border: 0; background: none; overflow: visible; }
.xct-sched__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.xct-sched__table, .xct-sched__table tbody, .xct-sched__table tfoot { display: block; }
.xct-sched__table tr { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 12px; border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden; background: var(--c-white); }
.xct-sched__table tr.is-room-start > * { border-top: 0; }
.xct-sched__table th, .xct-sched__table td { display: block; border-bottom: 1px solid var(--c-line); min-width: 0; }
.xct-sched__table tbody th, .xct-sched__table tfoot th, .xct-sched__tile, .xct-sched__fit, .xct-sched__wide { grid-column: 1 / -1; }
.xct-sched__rep { position: static; width: auto; height: auto; clip: auto; overflow: visible; white-space: normal; }
.xct-sched__table tr > :last-child { border-bottom: 0; }
.xct-sched__table td[data-label]::before { content: attr(data-label); display: block; white-space: normal; margin-bottom: 2px; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-slate); }
.xct-num { text-align: left !important; }
.xct-sched__table tfoot td:not([data-label]) { display: none; }
}
@page xct-sched { size: A4 landscape; margin: 10mm 10mm 12mm; }
@media print {
.page-xc-schedule main, .xct-sched { page: xct-sched; }
.page-xc-schedule .site-footer, .page-xc-schedule .skip-link, .xct-sched__crumbs, .xct-sched__actions, .xct-sched .eyebrow, .xct-snack { display: none !important; }
.xct-sched { padding: 0; }
.xct-sched .container { max-width: none; padding: 0; }
.xct-sched__brand { display: block; margin: 0 0 4pt; font-family: var(--f-brand); font-size: 13pt; }
.xct-sched__brand span { font-family: var(--f-sans); font-size: 8pt; color: #555; margin-left: 4pt; }
.xct-sched__head { display: block; padding-bottom: 6pt; border-bottom: 1px solid #999; }
.xct-sched__head h1 { font-size: 22pt; }
.xct-sched__lead { font-size: 9pt; margin-top: 2pt; }
.xct-sched__meta { font-size: 9pt; color: #333; }
.xct-sched__h2 { font-size: 13pt; margin: 12pt 0 5pt; break-after: avoid; }
.xct-sched__wrap { overflow: visible; border: 1px solid #bbb; border-radius: 0; }
table.xct-sched__table { font-size: 7.6pt; }
.xct-sched__pid, .xct-sched__sub { font-size: 6.6pt; margin-top: 1pt; }
.xct-sched__demo, .xct-sched__assume { margin-top: 1.5pt; padding: 0 4pt; font-size: 5.4pt; }
.xct-sched__tile { min-width: 0; width: 34mm; }
.xct-sched__room { min-width: 0; }
.xct-sched__table th, .xct-sched__table td { padding: 3pt 4pt; border-bottom: 1px solid #ccc; }
.xct-sched__table thead th { font-size: 6.6pt; color: #333; background: #eee; }
.xct-sched__table thead { display: table-header-group; }
.xct-sched__table tr { break-inside: avoid; }
.xct-sched__fit { min-width: 0; max-width: 62mm; }
.xct-sched__sw { width: 14pt; height: 14pt; margin-right: 4pt; }
.xct-sched__sw, .xct-sched__demo, .xct-sched__assume, .xct-sched__table tr.is-verify .xct-sched__fit, .xct-sched__table thead th, .xct-sched__totals tfoot > tr > * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.xct-sched__foot { font-size: 7.5pt; }
.xct-sched__disclaimer { break-inside: avoid; margin-top: 10pt; padding: 6pt 8pt; background: none; border: 1px solid #bbb; }
.xct-sched__disclaimer .xct-sched__h2 { font-size: 10pt; margin-bottom: 3pt; }
.xct-sched__disclaimer li { font-size: 7.5pt; margin: 1pt 0; color: #333; }
.xct-sched__notice .xct-note { font-size: 8pt; }
.xct-dlg code, .xct-sched code { border: 0; padding: 0; background: none; font-size: 7pt; }
}
@media (prefers-reduced-motion: reduce) {
.xct-dlg[open], .xct-preset__thumb img { animation: none; }
.xct-cmp__layer.is-loading .xct-cmp__ph, .xct-preset__thumb.is-loading .xct-mosaic { animation: none; }
.xct-snack, .xct-present__bar, .xct-cmp__grip { transition: none; }
}
