/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5
 * genre: editorial · macrostructure: Seasonal Record · theme: contract direction · enrichment: photography
 * nav: wordmark + one link · footer: vent-grid close · contrast/mobile/tokens: pass
 */
@import url("tokens.css");
@font-face{font-family:"Hanken Grotesk";src:url("assets/fonts/HankenGrotesk-Regular.ttf") format("truetype");font-display:swap;font-weight:400}
@font-face{font-family:"Roboto Slab";src:url("assets/fonts/RobotoSlab-SemiBold.ttf") format("truetype");font-display:swap;font-weight:600}
*,*::before,*::after{box-sizing:border-box}html,body{margin:0;overflow-x:clip}html{scroll-behavior:smooth}body{background-color:var(--color-paper);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 95px,var(--color-rule) 96px,transparent 97px);color:var(--color-ink);font:400 18px/1.58 var(--font-body)}body[data-cvx-style="paper"]{--cvx-radius:3px;--cvx-shadow:none;--cvx-surface:#f1e9d6;--cvx-live:var(--color-sage);--cvx-border-width:1px}img{display:block;width:100%;height:auto}a{color:inherit}button,input{font:inherit}.shell{width:min(1100px,calc(100% - 40px));margin-inline:auto}.skip-link{position:fixed;z-index:999;left:1rem;top:1rem;transform:translateY(-170%);background:var(--color-paper);padding:.7rem 1rem}.skip-link:focus{transform:none}.site-header{background:var(--color-paper);border-bottom:2px solid var(--color-rule)}.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.wordmark{font:600 clamp(1.35rem,2.4vw,1.85rem)/1 var(--font-display);text-decoration:none;white-space:nowrap}.header-link{color:var(--color-blue);font-weight:700;text-underline-offset:.3em;white-space:nowrap}
h1,h2{margin:0;font:600 var(--text-display)/1.08 var(--font-display);font-style:normal;letter-spacing:-.02em;overflow-wrap:anywhere;min-width:0}h3{margin:0;font:600 1.25rem/1.25 var(--font-display)}p{margin:0}.eyebrow{font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-blue)}.lede{max-width:64ch;font-size:1.05rem}.hero{min-height:650px;background:url("assets/roofline-hero.png") center/cover no-repeat;display:flex;align-items:center;padding-block:62px 92px}.hero-panel{width:min(510px,48%);background:var(--color-paper);padding:clamp(2rem,5vw,4rem);display:grid;gap:1.35rem;border-radius:var(--radius-card)}.hero-panel h1 em{display:block;color:var(--color-blue);font-style:italic}.button{min-height:48px;width:fit-content;display:inline-flex;align-items:center;justify-content:center;background:var(--color-sage);color:var(--color-sage-ink);border:2px solid var(--color-sage);border-radius:var(--radius-card);padding:.78rem 1.15rem;font-weight:700;text-decoration:none;white-space:nowrap;transition:transform var(--dur-short) var(--ease-out),background var(--dur-short) var(--ease-out)}.button:hover,.button:focus-visible{background:var(--color-ink);transform:translateY(-2px)}.button:active{transform:translateY(1px)}.button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.section{padding-block:clamp(56px,6vw,88px)}.section-head{display:flex;flex-direction:column;gap:1rem;max-width:760px;margin-bottom:var(--space-2xl)}
h1,h2{margin:0;font:600 var(--text-display)/1.08 var(--font-display);font-style:normal;letter-spacing:-.02em;overflow-wrap:anywhere;min-width:0}h3{margin:0;font:600 1.25rem/1.25 var(--font-display)}p{margin:0}.eyebrow{font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-blue)}.lede{max-width:64ch;font-size:1.05rem}.hero{min-height:650px;background:url("assets/roofline-hero.png") center/cover no-repeat;display:flex;align-items:center;padding-block:62px 92px}.hero-panel{width:min(510px,48%);background:var(--color-paper);padding:clamp(2rem,5vw,4rem);display:grid;gap:1.35rem;border-radius:var(--radius-card)}.hero-panel h1 strong{display:block;color:var(--color-blue);font:inherit}.button{min-height:48px;width:fit-content;display:inline-flex;align-items:center;justify-content:center;background:var(--color-sage);color:var(--color-sage-ink);border:2px solid var(--color-sage);border-radius:var(--radius-card);padding:.78rem 1.15rem;font-weight:700;text-decoration:none;white-space:nowrap;transition:transform var(--dur-short) var(--ease-out),background var(--dur-short) var(--ease-out)}.button:hover,.button:focus-visible{background:var(--color-ink);transform:translateY(-2px)}.button:active{transform:translateY(1px)}.button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.section{padding-block:clamp(56px,6vw,88px)}.section-head{display:flex;flex-direction:column;gap:1rem;max-width:760px;margin-bottom:var(--space-2xl)}
.author-band{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:center}.author-photo{aspect-ratio:4/3;object-fit:cover}.author-copy{display:grid;gap:1rem;max-width:650px}.signature{color:var(--color-blue);font:italic 1.4rem/1 var(--font-display)}
.season-wrap{overflow:visible}.season-cards{position:relative;min-height:390px;max-width:920px;margin-inline:auto}.season-card{position:absolute;left:50%;top:50%;width:min(260px,28vw);min-height:270px;padding:1.2rem 1.2rem 1.4rem;background:var(--color-paper);border:1px solid var(--color-rule);box-shadow:0 8px 18px oklch(28% .03 50/.15);transform:translate(-50%,-50%);transition:transform var(--dur-deal) var(--ease-spring);z-index:var(--z)}.season-card:nth-child(1){--x:-270px;--y:20px;--rot:-5.6deg;--z:3}.season-card:nth-child(2){--x:-92px;--y:-16px;--rot:-2.4deg;--z:4}.season-card:nth-child(3){--x:92px;--y:-30px;--rot:.8deg;--z:5}.season-card:nth-child(4){--x:270px;--y:20px;--rot:6deg;--z:3}.season-cards.is-open .season-card,.season-cards:focus-within .season-card{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--rot))}.season-date{font-size:.75rem;font-weight:700;letter-spacing:.08em;border-bottom:2px solid var(--color-rust);padding-bottom:.35rem}.season-name{font:italic 1.65rem/1 var(--font-display);margin:.9rem 0}.season-card ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}.season-card li{display:flex;gap:.5rem;align-items:flex-start;font-size:.92rem;line-height:1.4}.tick{flex:none;width:18px;height:18px}.tick path{fill:none;stroke:var(--color-rust);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset var(--dur-short) var(--ease-out);transition-delay:var(--delay,0ms)}.season-cards.is-open .tick path,.season-card:focus-within .tick path{stroke-dashoffset:0}
.comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xl)}.comparison article{padding-top:1rem;border-top:2px solid var(--color-blue)}.comparison ul{padding-left:1.2rem}.product-band{background:var(--color-paper-deep);border-block:2px solid var(--color-rule)}.product-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(270px,.7fr);gap:var(--space-2xl);align-items:center}.product-photo{aspect-ratio:4/3;object-fit:cover}.offer{display:grid;gap:1rem}.price{font:600 clamp(4.2rem,8vw,5.6rem)/.9 var(--font-display);color:var(--color-sage)}.price sup{font-size:.3em;vertical-align:top}.format-line{font-style:italic}.closing-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.6fr) minmax(0,1fr);gap:1.5rem;align-items:center}.closing-half{aspect-ratio:1.15/1;background-image:url("assets/closing-diptych.png");background-size:200% 100%;background-position:left}.closing-half.right{background-position:right}.closing-copy{text-align:center;display:grid;gap:.55rem}.faq{max-width:840px}.faq details{border-top:2px solid var(--color-blue);padding:1.35rem 0}.faq summary{font-family:var(--font-display);font-size:1.2rem;cursor:pointer}.faq details p{margin-top:1rem;max-width:68ch}.site-footer{background:var(--color-ink);color:var(--color-paper);padding-block:2.2rem}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}.vent-grid{width:72px;height:36px;background-image:radial-gradient(var(--color-blue) 2px,transparent 2px),radial-gradient(var(--color-rust) 2px,transparent 2px);background-size:14px 14px;background-position:0 0,56px 28px}.footer-links{display:flex;flex-wrap:wrap;gap:1rem}.footer-links a{white-space:nowrap}
.bar-sweep{display:none;gap:3px;height:24px;align-items:center}.bar-sweep span{width:7px;height:20px;background:var(--color-blue);animation:bar-sweep 1.1s ease-in-out infinite;animation-delay:calc(var(--i)*.08s);transform-origin:left center}[data-state="loading"] .bar-sweep{display:flex}@keyframes bar-sweep{50%{transform:scaleX(.2);opacity:.45}}
@media(max-width:820px){.shell{width:min(100% - 32px,1100px)}.header-inner{gap:.75rem}.header-link{white-space:normal;text-align:right}.hero{min-height:0;padding:280px 0 0;background-position:65% center}.hero-panel{width:calc(100% - 24px);margin:-58px auto 0;transform:none;padding:2rem}.section{padding-block:50px}.author-band,.product-grid{grid-template-columns:minmax(0,1fr)}.season-cards{min-height:650px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.season-card{position:relative;inset:auto;width:auto;min-height:0;transform:rotate(var(--rot))!important}.closing-grid{grid-template-columns:minmax(0,1fr)}.closing-half{max-height:220px}.footer-inner{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.wordmark{font-size:1rem}.header-link{font-size:.78rem}.header-inner{min-height:66px}.button{font-size:.91rem;max-width:100%}.hero{padding-top:208px}.hero-panel{padding:1.5rem}.section{padding-block:32px}.season-cards{grid-template-columns:minmax(0,1fr);min-height:0}.season-card{width:100%}.comparison{grid-template-columns:minmax(0,1fr)}.site-footer{padding-block:1.7rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.tick path{stroke-dashoffset:0}.season-card{transition:none}}

/* Owner redesign pass · 2026-08-13 · grounded seasonal record */
body { background: var(--color-paper); background-image: none; color: var(--color-ink); }
.site-header { position: relative; background: rgba(243,238,226,.96); border-bottom: 1px solid var(--color-rule); }
.site-header::after { position: absolute; right: 5%; bottom: -2px; width: 5.5rem; height: 2px; background: linear-gradient(165deg, transparent 47%, var(--color-rust) 48% 52%, transparent 53%); content: ""; }
.header-inner { min-height: 5rem; }
.header-link { color: var(--color-rust); }
.hero { min-height: 0; padding-block: clamp(2.5rem, 5vw, 4.5rem); background: var(--color-ink); }
.hero-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(26rem, 1.05fr); align-items: stretch; gap: 0; }
.hero-panel { width: auto; padding: clamp(2rem, 4vw, 3rem); border-radius: 0; background: var(--color-paper); }
.hero-panel h1 { font-size: clamp(2.7rem, 3.6vw, 3.25rem); }
.hero-panel h1 strong { color: var(--color-rust); }
.hero-photo {
  min-height: 34rem;
  background-image: url("assets/ray-home-record-v3.png");
  background-position: center;
  background-size: cover;
  clip-path: polygon(0 3%, 50% 0, 100% 3%, 100% 100%, 0 100%);
}
.section { padding-block: clamp(3rem, 5vw, 4.75rem); }
.author-band { grid-template-columns: minmax(20rem, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 5vw, 4rem); }
.author-photo { aspect-ratio: 4 / 3; object-position: center 35%; }
.season-wrap { background: #e7e7d8; border-block: 1px solid var(--color-rule); }
.season-cards, .season-cards.is-open {
  position: static;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  min-height: 0;
  max-width: none;
}
.season-card, .season-cards.is-open .season-card, .season-cards:focus-within .season-card {
  position: relative;
  inset: auto;
  width: auto;
  min-height: 14rem;
  padding: 1.2rem;
  transform: none;
  box-shadow: none;
  border: 1px solid var(--color-rule);
  border-top: .35rem solid var(--color-sage);
}
.season-card:nth-child(2) { border-top-color: #d6a02d; }
.season-card:nth-child(3) { border-top-color: var(--color-rust); }
.season-card:nth-child(4) { border-top-color: #638096; }
.tick path { stroke-dashoffset: 0; }
.comparison { gap: 1rem; }
.comparison article { padding: 1.5rem; border: 1px solid var(--color-rule); border-top: .3rem solid var(--color-blue); background: #fffaf0; }
.comparison article + article { border-top-color: var(--color-sage); }
.product-band { background: var(--color-paper-deep); }
.product-grid { grid-template-columns: minmax(0, 1.05fr) minmax(18rem, .95fr); gap: clamp(2rem, 5vw, 4rem); }
.product-photo { aspect-ratio: 4 / 3; }
.price { color: var(--color-rust); }
.closing-grid { grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr); grid-template-rows: auto auto; gap: 1rem 2rem; }
.closing-half { grid-row: 1 / 3; aspect-ratio: 4 / 3; }
.closing-copy { align-self: end; text-align: left; }
.closing-half.right { grid-column: 2; grid-row: 2; aspect-ratio: 16 / 8; }
.site-footer { background: var(--color-ink); }
@media(max-width:820px){
  .hero { padding: 0; background: var(--color-ink); }
  .hero-grid { grid-template-columns: minmax(0,1fr); width: 100%; }
  .hero-panel { margin: 0; width: auto; order: 2; }
  .hero-photo { min-height: 25rem; order: 1; clip-path: none; }
  .author-band,.product-grid,.closing-grid{grid-template-columns:minmax(0,1fr)}
  .season-cards,.season-cards.is-open{grid-template-columns:repeat(2,minmax(0,1fr));min-height:0}
  .season-card,.season-cards.is-open .season-card{width:auto;min-height:13rem;transform:none!important}
  .closing-half,.closing-copy,.closing-half.right{grid-column:auto;grid-row:auto}
}
@media(max-width:520px){
  .hero-photo{min-height:20rem}
  .hero-panel{padding:1.5rem}
  .season-cards,.season-cards.is-open{grid-template-columns:minmax(0,1fr)}
  .season-card,.season-cards.is-open .season-card{min-height:0}
  .product-grid,.closing-grid{gap:1.5rem}
}

.roof-option .roof-option-cta{order:99}

/* SD9 product display: grounded season-card pair with both controls inert. */
.roofline-options{background:#e7e7d8;border-bottom:1px solid var(--color-rule)}.roof-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.25rem,4vw,3rem);align-items:stretch;padding-top:1.25rem}.roof-option.season-card{position:relative;inset:auto;display:flex;width:auto;min-width:0;min-height:0;flex-direction:column;gap:1rem;padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--color-rule);border-top:.35rem solid var(--color-sage);background:var(--color-paper);transform:none!important}.roof-option>*{margin:0}.roof-option--bundle.season-card{padding-top:clamp(2.8rem,5vw,3.6rem);border-top-color:var(--color-rust);overflow:visible}.roof-option-cover{width:min(100%,15rem);aspect-ratio:3/4;margin-inline:auto;border:1px solid var(--color-rule);object-fit:contain;box-shadow:0 8px 18px oklch(28% .03 50/.15)}.roof-option h3{font:600 clamp(1.7rem,3vw,2.35rem)/1.1 var(--font-display)}.roof-option-price{color:var(--color-rust);font:600 clamp(3.8rem,7vw,5rem)/.9 var(--font-display);font-variant-numeric:tabular-nums;text-align:center}.roof-option ul{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}.roof-option li{display:flex;gap:.55rem;align-items:flex-start}.roof-option .tick path{stroke-dashoffset:0}.roof-option .roof-option-cta{width:100%;margin-top:auto}.roof-best-value{position:absolute;z-index:5;top:-1rem;left:50%;padding:.45rem .85rem;border:1px solid var(--color-rust);background:var(--color-paper);color:var(--color-rust);font-weight:800;letter-spacing:.1em;text-transform:uppercase;transform:translateX(-50%) rotate(-1deg);white-space:nowrap}.roof-bundle-price{display:flex;min-height:5rem;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;font-family:var(--font-display);font-variant-numeric:tabular-nums}.roof-bundle-price s{color:var(--color-blue);font-size:clamp(2rem,4vw,2.7rem);font-weight:600;text-decoration-color:var(--color-rust);text-decoration-thickness:.12em}.roof-bundle-price strong{color:var(--color-rust);font-size:clamp(3.8rem,7vw,5rem);line-height:.9}.roof-bundle-price span{width:100%;color:var(--color-rust);font-family:var(--font-body);font-weight:800;text-align:center}.roof-held{padding:.85rem;border-left:.3rem solid var(--color-rust);background:var(--color-paper-deep);font-weight:700}.roof-option-cta--disabled[aria-disabled="true"]{border-color:var(--color-rule);background:transparent;color:var(--color-ink);cursor:not-allowed;pointer-events:none}@media(max-width:820px){.roof-option-grid{grid-template-columns:minmax(0,1fr);gap:2.5rem}.roof-option-cover{width:min(72%,15rem)}}
