:root {
  --ink: #231811;
  --paper: #eee8dc;
  --paper-bright: #f7f2e8;
  --orange: #ff5725;
  --blue: #1255e8;
  --lime: #c9fa4b;
  --line: rgba(35, 24, 17, .22);
  --ease-out: cubic-bezier(.23, 1, .32, 1);
  --ease-smooth: cubic-bezier(.77, 0, .175, 1);
  --max: 1440px;
}

* { box-sizing: border-box; }
html { background: var(--paper); max-width: 100%; overflow-x: clip; scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Manrope, sans-serif; font-size: 16px; line-height: 1.5; max-width: 100%; overflow-x: clip; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
::selection { background: var(--orange); color: var(--paper-bright); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 100; background: var(--orange); color: white; padding: 12px 16px; transition: top 160ms var(--ease-out); }
.skip-link:focus { top: 16px; }
.page-noise { position: fixed; inset: 0; z-index: 20; pointer-events: none; opacity: .075; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E"); }

.site-header { align-items: center; display: grid; grid-template-columns: 1fr auto 1fr; left: 0; max-width: var(--max); margin: 0 auto; padding: 24px 32px; position: absolute; right: 0; top: 0; z-index: 10; }
.wordmark { font-size: 22px; font-weight: 800; letter-spacing: -.09em; line-height: 1; width: max-content; }
.wordmark span { color: var(--orange); font-size: 9px; margin-left: 4px; vertical-align: top; }
.nav-links { display: flex; gap: 28px; font-size: 12px; font-weight: 700; letter-spacing: -.02em; }
.nav-links a, .header-cta, .footer-links a { transition: color 180ms var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .nav-links a:hover, .header-cta:hover, .footer-links a:hover { color: var(--orange); } }
.header-cta { font-size: 12px; font-weight: 800; justify-self: end; }
.header-cta span { color: var(--orange); font-size: 17px; margin-left: 4px; }
.menu-button, .mobile-menu { display: none; }

.hero { display: grid; grid-template-columns: minmax(0, 1.14fr) minmax(420px, .86fr); min-height: min(800px, 100svh); max-width: var(--max); margin: 0 auto; padding: 128px 32px 28px; position: relative; }
.hero-copy { align-self: stretch; display: flex; flex-direction: column; justify-content: flex-start; padding: 38px 0 18px; z-index: 1; }
.eyebrow, .section-index { font-size: 11px; font-weight: 800; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.eyebrow::before { background: var(--orange); content: ''; display: inline-block; height: 8px; margin-right: 10px; width: 8px; }
h1, h2, h3, p { text-wrap: pretty; }
h1 { font-size: clamp(68px, 9vw, 148px); font-weight: 800; letter-spacing: -.105em; line-height: .77; margin: 74px 0 34px -8px; max-width: 920px; text-wrap: balance; }
h1 span { color: var(--orange); }
.hero-bottom { align-items: end; display: flex; gap: 28px; margin-top: auto; max-width: 580px; }
.hero-bottom p { font-size: 15px; line-height: 1.45; margin: 0; max-width: 250px; }
.button { align-items: center; border: 0; cursor: pointer; display: inline-flex; font-size: 14px; font-weight: 800; gap: 14px; justify-content: center; min-height: 44px; padding: 10px 15px; transition: background-color 180ms var(--ease-out), color 180ms var(--ease-out), transform 150ms var(--ease-out); }
.button:active { transform: scale(.97); }
.button:focus-visible, input:focus-visible, textarea:focus-visible, .menu-button:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.button-dark { background: var(--ink); color: var(--paper-bright); }
.button-dark span { color: var(--lime); font-size: 18px; }
.button-orange { background: var(--orange); color: var(--ink); }
.button-orange span { font-size: 18px; }
@media (hover: hover) and (pointer: fine) { .button-dark:hover { background: var(--blue); } .button-orange:hover { background: var(--lime); } }
.hero-showcase { align-self: end; height: min(610px, 64vh); position: relative; }
.hero-scene-stack { height: 100%; overflow: hidden; position: relative; }
.hero-scene { inset: 0; margin: 0; opacity: 0; pointer-events: none; position: absolute; transform: translateX(8%) scale(1.025); transition: clip-path 680ms var(--ease-smooth), opacity 360ms var(--ease-out), transform 680ms var(--ease-smooth); clip-path: inset(0 0 0 100%); }
.hero-scene.is-active { clip-path: inset(0); opacity: 1; pointer-events: auto; transform: translateX(0) scale(1); z-index: 1; }
.hero-scene.is-leaving { clip-path: inset(0 100% 0 0); opacity: 0; transform: translateX(-8%) scale(.975); z-index: 2; }
.hero-scene::after { border: 1px solid rgba(255,255,255,.4); content: ''; inset: 12px; pointer-events: none; position: absolute; z-index: 2; }
.hero-scene img { height: 100%; object-fit: cover; object-position: center; width: 100%; }
.hero-scene figcaption { align-items: center; background: var(--paper-bright); bottom: 0; display: flex; font-size: 10px; font-weight: 800; gap: 12px; left: 0; letter-spacing: .02em; padding: 11px 14px; position: absolute; text-transform: uppercase; z-index: 3; }
.hero-scene figcaption span { color: var(--orange); }
.hero-scene-nav { bottom: 18px; display: flex; flex-direction: column; gap: 7px; position: absolute; right: 18px; z-index: 4; }
.hero-scene-nav button { align-items: center; background: transparent; border: 0; color: var(--paper-bright); cursor: pointer; display: flex; gap: 10px; padding: 5px 0; text-align: right; text-transform: uppercase; }
.hero-scene-nav button::before { background: currentColor; content: ''; height: 1px; opacity: .45; transition: opacity 180ms var(--ease-out), transform 180ms var(--ease-out); width: 18px; }
.hero-scene-nav button span { font-size: 9px; font-weight: 800; }.hero-scene-nav button b { font-size: 9px; font-weight: 800; letter-spacing: .08em; opacity: 0; transform: translateX(4px); transition: opacity 180ms var(--ease-out), transform 180ms var(--ease-out); }
.hero-scene-nav button.is-active::before { background: var(--lime); opacity: 1; transform: scaleX(1.55); transform-origin: right; }.hero-scene-nav button.is-active b, .hero-scene-nav button:focus-visible b { opacity: 1; transform: translateX(0); }
.hero-scene-nav button:focus-visible { outline: 2px solid var(--lime); outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) { .hero-scene-nav button:hover b { opacity: 1; transform: translateX(0); } }
.hero-stamp { align-items: center; bottom: 35px; display: flex; height: 136px; justify-content: center; left: 43%; position: absolute; transform: rotate(-12deg); width: 136px; z-index: 2; }
.hero-stamp svg { animation: slow-turn 26s linear infinite; fill: var(--ink); height: 100%; position: absolute; width: 100%; }
.hero-stamp text { font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.hero-stamp b { background: var(--orange); border-radius: 50%; display: grid; font-size: 52px; height: 54px; line-height: 1; place-items: center; width: 54px; }
@keyframes slow-turn { to { transform: rotate(360deg); } }

.ticker { background: var(--ink); color: var(--paper); contain: paint; overflow: hidden; padding: 12px 0; }
.ticker-track { animation: ticker 28s linear infinite; display: flex; width: max-content; }
.ticker-group { align-items: center; display: flex; flex: 0 0 auto; gap: 24px; padding-right: 24px; }
.ticker-group span { font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.ticker-group i { background: var(--orange); display: block; height: 9px; transform: rotate(45deg); width: 9px; }
@keyframes ticker { to { transform: translateX(-25%); } }

.section-pad { margin: 0 auto; max-width: var(--max); padding: 130px 32px; }
.manifesto { background: var(--paper-bright); max-width: none; padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px)); padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px)); }
.manifesto-grid { display: grid; gap: 15vw; grid-template-columns: minmax(0, 1.25fr) minmax(220px, .55fr); margin-top: 70px; }
h2 { font-size: clamp(46px, 6vw, 88px); font-weight: 800; letter-spacing: -.087em; line-height: .91; margin: 0; text-wrap: balance; }
h2 em { color: var(--orange); font-style: normal; }
.manifesto-side { align-self: end; }
.manifesto-side p, .section-intro { font-size: 16px; line-height: 1.55; margin: 0 0 28px; }
.text-link { border-bottom: 1px solid var(--ink); display: inline-flex; font-size: 13px; font-weight: 800; gap: 20px; padding-bottom: 5px; }
.text-link span { color: var(--orange); font-size: 18px; line-height: .7; transition: transform 180ms var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .text-link:hover span { transform: translateX(5px); } }
.word-reveal { color: rgba(35,24,17,.28); font-size: clamp(42px, 5vw, 80px); font-weight: 800; letter-spacing: -.08em; line-height: .94; margin: 180px 0 0 auto; max-width: 820px; }
.word-reveal span { transition: color 500ms var(--ease-out); }
.word-reveal span.is-active { color: var(--ink); }

.section-heading { align-items: end; display: grid; gap: 40px; grid-template-columns: 1fr 280px; margin-bottom: 76px; }
.section-heading h2 { margin-top: 24px; }
.route-list { border-top: 1px solid var(--line); }
.route { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 22px; grid-template-columns: 42px minmax(190px, .75fr) minmax(210px, 1fr) 145px; padding: 30px 0; position: relative; transition: background-color 240ms var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .route:hover { background: rgba(255, 87, 37, .08); } }
.route-number { color: var(--orange); font-size: 12px; font-weight: 800; }
.route-name p { font-size: 10px; font-weight: 800; letter-spacing: .1em; margin: 0 0 7px; }
.route-name h3 { font-size: clamp(32px, 3vw, 47px); font-weight: 800; letter-spacing: -.09em; line-height: .83; margin: 0; }
.route-description { font-size: 14px; line-height: 1.5; margin: 0; max-width: 360px; }
.route-meta { display: grid; font-size: 11px; font-weight: 700; gap: 8px; text-align: right; }

.split-feature { align-items: stretch; background: var(--blue); color: var(--paper-bright); display: grid; gap: clamp(48px, 9vw, 150px); grid-template-columns: 1.1fr .9fr; max-width: none; padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px)); padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px)); }
.feature-image { min-height: 630px; overflow: hidden; }
.feature-image img { height: 100%; object-fit: cover; width: 100%; }
.feature-copy { align-self: center; max-width: 470px; }
.feature-copy h2 { margin: 22px 0 34px; }
.feature-copy > p { font-size: 16px; line-height: 1.55; }
.check-list { border-top: 1px solid rgba(255,255,255,.38); list-style: none; margin: 40px 0; padding: 0; }
.check-list li { border-bottom: 1px solid rgba(255,255,255,.38); display: flex; font-size: 13px; font-weight: 700; gap: 12px; padding: 14px 0; }
.check-list span { color: var(--lime); }

.programs { background: var(--paper); }
.programs-head { display: flex; gap: 16px; justify-content: space-between; margin-bottom: 64px; }
.programs-head h2 { max-width: 810px; }
.programs-head h2 span { color: var(--orange); }
.program-grid { display: grid; gap: 12px; grid-template-columns: 1.15fr .85fr .85fr; }
.program-card { background: var(--paper-bright); display: flex; flex-direction: column; min-height: 480px; padding: 25px; position: relative; }
.program-card::after { background: var(--orange); bottom: 0; content: ''; height: 100%; left: 0; position: absolute; transform: scaleY(.02); transform-origin: bottom; transition: transform 280ms var(--ease-out); width: 100%; }
@media (hover: hover) and (pointer: fine) { .program-card:hover::after { transform: scaleY(1); } .program-card:hover > * { position: relative; z-index: 1; } .program-card:hover a b { transform: translate(4px, -4px); } .program-card-dark:hover { color: var(--ink); } .program-card-dark:hover a, .program-card-blue:hover a { border-color: rgba(35,24,17,.45); } .program-card-blue:hover { color: var(--ink); } }
.program-card > p { font-size: 11px; font-weight: 800; margin: 0; }
.program-card h3 { font-size: clamp(38px, 4.2vw, 68px); font-weight: 800; letter-spacing: -.09em; line-height: .86; margin: auto 0 18px; }
.program-card > span { font-size: 13px; max-width: 280px; }
.program-card a { align-items: center; border-top: 1px solid var(--line); display: flex; font-size: 12px; font-weight: 800; justify-content: space-between; margin-top: 32px; padding-top: 13px; }
.program-card a b { font-size: 23px; font-weight: 500; transition: transform 180ms var(--ease-out); }
.program-card-dark { background: var(--ink); color: var(--paper-bright); }
.program-card-dark::after { background: var(--lime); }
.program-card-dark a { border-color: rgba(255,255,255,.32); }
.program-card-blue { background: var(--blue); color: var(--paper-bright); }
.program-card-blue::after { background: var(--paper-bright); }
.program-card-blue a { border-color: rgba(255,255,255,.32); }

.detail-banner { background: var(--ink); color: var(--paper-bright); display: grid; grid-template-columns: .84fr 1.16fr; min-height: 570px; }
.detail-image { overflow: hidden; }
.detail-image img { height: 100%; object-fit: cover; width: 100%; }
.detail-copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(32px, 6vw, 100px); }
.detail-copy p { font-size: clamp(36px, 6vw, 96px); font-weight: 800; letter-spacing: -.095em; line-height: .79; margin: 0; }
.detail-copy strong { color: var(--blue); }
.detail-copy span { font-size: 13px; max-width: 280px; }

.process { display: grid; gap: clamp(44px, 10vw, 160px); grid-template-columns: .75fr 1.25fr; }
.process-heading h2 { margin-top: 24px; }
.process-list { border-top: 1px solid var(--line); list-style: none; margin: 0; padding: 0; }
.process-list li { border-bottom: 1px solid var(--line); display: grid; gap: 20px; grid-template-columns: 48px 1fr; padding: 34px 0; }
.process-list li > span { color: var(--orange); font-size: 12px; font-weight: 800; }
.process-list h3 { font-size: clamp(28px, 3vw, 42px); font-weight: 800; letter-spacing: -.075em; line-height: 1; margin: 0 0 9px; }
.process-list p { font-size: 14px; margin: 0; max-width: 420px; }

.client-proof { background: var(--paper-bright); color: var(--ink); padding: 0 max(32px, calc((100vw - var(--max)) / 2 + 32px)); }.client-proof-inner { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: 42px; grid-template-columns: .48fr 1.52fr; padding: 30px 0; }.client-proof-inner > p { font-size: 10px; font-weight: 800; letter-spacing: .1em; margin: 0; text-transform: uppercase; }.client-proof-marks { align-items: center; display: grid; gap: 28px; grid-template-columns: repeat(5, 1fr); }.client-proof-logo { align-items: center; display: flex; justify-content: center; min-height: 72px; }.client-proof-logo img { filter: grayscale(1); max-height: 64px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; opacity: .8; transition: filter .2s ease, opacity .2s ease; width: auto; }.client-proof-logo img:hover { filter: grayscale(0); opacity: 1; }

.brief { background: var(--orange); max-width: none; padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px)); padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px)); }
.brief-top { align-items: center; border-bottom: 1px solid rgba(35,24,17,.5); display: flex; justify-content: space-between; padding-bottom: 16px; }
.brief-top > p:last-child { font-size: 12px; font-weight: 700; margin: 0; }
.brief-grid { display: grid; gap: clamp(44px, 12vw, 200px); grid-template-columns: .85fr 1.15fr; padding-top: 76px; }
.brief-title h2 { font-size: clamp(55px, 7vw, 104px); }
.brief-title h2 span { color: var(--paper-bright); }
.brief-title p { font-size: 15px; max-width: 300px; }
.brief-form { display: grid; gap: 18px 16px; grid-template-columns: 1fr 1fr; }
.brief-form label { display: grid; font-size: 11px; font-weight: 800; gap: 8px; letter-spacing: .04em; text-transform: uppercase; }
.brief-form input, .brief-form textarea { background: transparent; border: 0; border-bottom: 1px solid rgba(35,24,17,.55); border-radius: 0; color: var(--ink); font-size: 15px; outline: none; padding: 10px 0; resize: vertical; transition: border-color 180ms var(--ease-out); }
.brief-form input::placeholder, .brief-form textarea::placeholder { color: rgba(35,24,17,.6); }.honeypot { display: none !important; }.brief-form .button:disabled { cursor: wait; opacity: .72; }
.brief-form input:focus, .brief-form textarea:focus { border-color: var(--paper-bright); }
.full { grid-column: 1 / -1; }
.form-error { font-size: 13px; font-weight: 700; grid-column: 1 / -1; margin: 0; min-height: 20px; }
.brief-form .button { justify-self: start; }

.site-footer { background: var(--ink); color: var(--paper-bright); display: grid; gap: 24px; grid-template-columns: 1fr 1fr 1fr; padding: 48px max(32px, calc((100vw - var(--max)) / 2 + 32px)) 24px; }
.site-footer > p { font-size: 13px; line-height: 1.5; margin: 0; }
.footer-links { align-items: end; display: flex; flex-direction: column; font-size: 12px; font-weight: 700; gap: 7px; }
.footer-small { border-top: 1px solid rgba(255,255,255,.22); display: flex; font-size: 10px; grid-column: 1 / -1; justify-content: flex-end; gap: 16px; padding-top: 16px; }
.footer-small span { margin-right: auto; }

/* The REVEL Edit */
.products-page { background: var(--ink); color: var(--paper-bright); }
.site-header-dark { color: var(--paper-bright); }
.products-page .nav-links a:hover, .products-page .header-cta:hover { color: var(--lime); }
.products-hero { background: var(--ink); margin: 0 auto; max-width: var(--max); min-height: 850px; padding: 165px 32px 48px; position: relative; }
.products-hero > * { position: relative; z-index: 1; }
.products-hero-top, .products-hero-bottom { align-items: start; display: flex; justify-content: space-between; }
.edit-count { border-top: 1px solid rgba(247,242,232,.38); font-size: 10px; font-weight: 800; letter-spacing: .08em; margin: 0; padding-top: 10px; text-align: right; text-transform: uppercase; }
.products-hero h1 { font-size: clamp(80px, 11.6vw, 176px); margin: clamp(90px, 13vw, 185px) 0 50px -8px; max-width: 1130px; }
.products-hero h1 span { color: var(--lime); }
.products-hero-bottom { align-items: end; margin-left: auto; max-width: 540px; }
.products-hero-bottom p { font-size: 15px; line-height: 1.5; margin: 0; max-width: 275px; }
.edit-intro { background: var(--paper-bright); color: var(--ink); display: grid; gap: 14vw; grid-template-columns: .55fr 1.45fr; max-width: none; padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px)); padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px)); }
.edit-intro > div { display: grid; gap: 42px; grid-template-columns: 1.2fr .8fr; }.edit-intro h2 span, .product-cta h2 span { color: var(--orange); }.edit-intro p:last-child { font-size: 15px; line-height: 1.6; margin: 0; }
.product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ink); }
.product-card { background: var(--paper-bright); color: var(--ink); min-height: 750px; overflow: hidden; position: relative; }.product-card-wide { grid-column: 1 / -1; display: grid; grid-template-columns: 1.15fr .85fr; min-height: 610px; }.product-card-orange { background: var(--orange); }.product-card-dark { background: var(--ink); color: var(--paper-bright); }.product-card-blue { background: var(--blue); color: var(--paper-bright); }.product-card-paper { background: var(--paper); }.product-card-detail { background: #2c2019; color: var(--paper-bright); }.product-card-lime { background: var(--lime); min-height: 500px; }
.product-image { height: 440px; overflow: hidden; position: relative; }.product-card-wide .product-image { height: 100%; }.product-image img { height: 100%; object-fit: cover; transition: transform 900ms var(--ease-smooth); width: 100%; }.product-image-crop img { object-position: center 58%; }
@media (hover: hover) and (pointer: fine) { .product-card:hover .product-image img { transform: scale(1.045); } }
.product-info { display: flex; flex-direction: column; gap: 22px; min-height: 310px; padding: 26px; }.product-card-wide .product-info { justify-content: space-between; min-height: 0; padding: clamp(32px, 5vw, 75px); }.product-info p { font-size: 13px; line-height: 1.5; margin: 0; max-width: 320px; }.product-info > div > p, .product-message > p:first-child { font-size: 10px; font-weight: 800; letter-spacing: .09em; margin: 0 0 12px; }.product-info h2, .product-message h2 { font-size: clamp(38px, 4.5vw, 70px); letter-spacing: -.085em; line-height: .87; }.product-card-wide h2 { font-size: clamp(50px, 6vw, 92px); }.product-meta { border-top: 1px solid currentColor; display: flex; font-size: 11px; font-weight: 700; justify-content: space-between; margin-top: auto; padding-top: 12px; }.product-message { display: flex; flex-direction: column; height: 100%; justify-content: space-between; padding: 36px; }.product-message > p:nth-of-type(2) { font-size: 15px; line-height: 1.5; max-width: 290px; }.product-message .button { align-self: start; }
.product-cta { background: var(--ink); color: var(--paper-bright); min-height: 650px; padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px)); padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px)); }.product-cta h2 { font-size: clamp(70px, 10vw, 155px); margin: 68px 0 34px; }.product-cta > p:nth-of-type(2) { font-size: 16px; line-height: 1.6; margin: 0 0 32px; max-width: 390px; }
.working-range { background: var(--paper-bright); color: var(--ink); max-width: none; padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px)); padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px)); }.working-range-head { display: grid; gap: 14vw; grid-template-columns: .55fr 1.45fr; margin-bottom: 70px; }.working-range-head > div { align-items: end; display: grid; gap: 42px; grid-template-columns: 1.2fr .8fr; }.working-range-head h2 span { color: var(--orange); }.working-range-head p:last-child { font-size: 15px; line-height: 1.6; margin: 0; }.range-grid { display: grid; gap: 1px; grid-template-columns: repeat(4, 1fr); }.range-card { background: var(--paper); cursor: pointer; display: flex; flex-direction: column; min-height: 300px; overflow: hidden; padding: 18px; position: relative; transition: color 220ms var(--ease-out), transform 240ms var(--ease-out); }.range-card > :not(.range-hover-image) { position: relative; z-index: 2; }.range-card > span { color: var(--orange); font-size: 11px; font-weight: 800; }.range-card > p { font-size: 10px; font-weight: 800; letter-spacing: .09em; margin: 42px 0 8px; }.range-card h3 { font-size: clamp(30px, 3.3vw, 48px); font-weight: 800; letter-spacing: -.085em; line-height: .86; margin: 0; }.range-card > div { border-top: 1px solid currentColor; display: flex; font-size: 10px; font-weight: 700; justify-content: space-between; margin-top: auto; padding-top: 10px; }.range-card b { font-weight: 700; }.range-card-blue { background: var(--blue); color: var(--paper-bright); }.range-card-dark { background: var(--ink); color: var(--paper-bright); }.range-card-orange { background: var(--orange); }.range-card-lime { background: var(--lime); }.range-card-paper { background: #d8d1c2; }.range-hover-image { inset: 0; margin: 0; opacity: 0; position: absolute; transform: scale(1.08); transition: clip-path 520ms var(--ease-out), opacity 220ms var(--ease-out), transform 700ms var(--ease-smooth); z-index: 0; clip-path: inset(0 0 100% 0); }.range-hover-image::after { background: rgba(35,24,17,.55); content: ''; inset: 0; position: absolute; }.range-hover-image img { height: 100%; object-fit: cover; width: 100%; }.range-card:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }@media (hover: hover) and (pointer: fine) { .range-card:hover, .range-card:focus { color: var(--paper-bright); transform: translateY(-8px); z-index: 1; }.range-card:hover > span, .range-card:focus > span { color: var(--lime); }.range-card:hover .range-hover-image, .range-card:focus .range-hover-image { clip-path: inset(0 0 0 0); opacity: 1; transform: scale(1); } }

.range-card.is-active { color: var(--paper-bright); transform: translateY(-8px); z-index: 1; }.range-card.is-active > span { color: var(--lime); }.range-card.is-active .range-hover-image { clip-path: inset(0 0 0 0); opacity: 1; transform: scale(1); }
.client-work { background: var(--blue); color: var(--paper-bright); max-width: none; padding-left: max(32px, calc((100vw - var(--max)) / 2 + 32px)); padding-right: max(32px, calc((100vw - var(--max)) / 2 + 32px)); }.client-work-head { display: grid; gap: 14vw; grid-template-columns: .55fr 1.45fr; margin-bottom: 70px; }.client-work-head > div { align-items: end; display: grid; gap: 42px; grid-template-columns: 1.2fr .8fr; }.client-work h2 span { color: var(--lime); }.client-work-intro { align-self: end; border-top: 1px solid rgba(247,242,232,.38); }.client-work-intro p { font-size: 15px; line-height: 1.6; margin: 0; padding-top: 14px; }.work-archive-button { align-items: center; background: transparent; border: 0; border-bottom: 1px solid var(--paper-bright); color: var(--paper-bright); cursor: pointer; display: inline-flex; font-size: 12px; font-weight: 800; gap: 18px; margin-top: 26px; padding: 0 0 7px; }.work-archive-button span { color: var(--lime); font-size: 17px; transition: transform 180ms var(--ease-out); }.case-study-grid { display: grid; gap: 12px; grid-template-columns: 1.15fr .85fr; }.case-study { min-height: 610px; overflow: hidden; position: relative; }.case-study-featured { grid-row: span 2; min-height: 1232px; }.case-study-open { background: transparent; border: 0; color: inherit; cursor: pointer; display: block; height: 100%; padding: 0; text-align: left; width: 100%; }.case-study figure { height: 100%; margin: 0; overflow: hidden; }.case-study img { height: 100%; object-fit: cover; transition: transform 900ms var(--ease-smooth); width: 100%; }.case-study-featured img { object-position: center; }.case-study-caption { background: var(--paper-bright); bottom: 0; color: var(--ink); left: 0; padding: 20px; position: absolute; width: min(86%, 370px); }.case-study-caption > p { font-size: 10px; font-weight: 800; letter-spacing: .09em; margin: 0 0 34px; }.case-study-caption > p span { color: var(--orange); margin-right: 8px; }.case-study-caption h3 { font-size: clamp(35px, 4vw, 66px); font-weight: 800; letter-spacing: -.09em; line-height: .84; margin: 0 0 34px; }.case-study-caption > div { border-top: 1px solid var(--line); display: flex; font-size: 10px; font-weight: 800; justify-content: space-between; padding-top: 10px; }.case-study-caption b { font-weight: 800; }.case-study-open:focus-visible { outline: 3px solid var(--lime); outline-offset: -6px; }@media (hover: hover) and (pointer: fine) { .case-study:hover img { transform: scale(1.035); }.work-archive-button:hover span { transform: translate(4px, -4px); } }
.work-archive { background: var(--ink); border: 0; color: var(--paper-bright); height: min(100svh, 1100px); max-height: none; max-width: min(1440px, 100vw); padding: 30px 32px 50px; width: 100%; }.work-archive::backdrop { background: rgba(35,24,17,.8); backdrop-filter: blur(8px); }.work-archive-top { align-items: start; display: flex; justify-content: space-between; }.work-archive-top h2 { margin-top: 48px; }.work-archive-top h2 span { color: var(--lime); }.work-archive-close { background: var(--orange); border: 0; color: var(--ink); cursor: pointer; font-size: 35px; height: 48px; line-height: .7; padding: 0; width: 48px; }.work-archive-intro { border-top: 1px solid rgba(247,242,232,.32); font-size: 14px; line-height: 1.55; margin: 42px 0 28px auto; max-width: 355px; padding-top: 12px; }.work-archive-grid { display: grid; gap: 8px; grid-template-columns: repeat(4, 1fr); }.work-archive-item { height: 300px; margin: 0; overflow: hidden; position: relative; }.work-archive-item-large { grid-column: span 2; grid-row: span 2; height: 608px; }.work-archive-item img { height: 100%; object-fit: cover; width: 100%; }.work-archive-item figcaption { background: var(--paper-bright); bottom: 0; color: var(--ink); font-size: 10px; font-weight: 800; left: 0; padding: 9px 11px; position: absolute; }.work-archive-item figcaption span { color: var(--orange); margin-right: 7px; }
.work-archive.is-project .work-archive-top h2 { display: none; }.work-archive.is-project .work-project { padding-top: 10px; }.work-project { padding-top: 44px; }.work-project-head { align-items: end; display: grid; gap: clamp(32px, 9vw, 150px); grid-template-columns: 1.2fr .8fr; margin-bottom: 34px; }.work-project-head h3 { font-size: clamp(56px, 8vw, 120px); font-weight: 800; letter-spacing: -.1em; line-height: .8; margin: 22px 0 0; }.work-project-head h3 span { color: var(--lime); }.work-project-head > p { border-top: 1px solid rgba(247,242,232,.32); font-size: 15px; line-height: 1.55; margin: 0; max-width: 355px; padding-top: 12px; }.work-project-gallery { margin: 0; }.work-project-gallery > p { align-items: center; border-top: 1px solid rgba(247,242,232,.32); display: flex; font-size: 10px; font-weight: 800; justify-content: space-between; letter-spacing: .09em; margin: 0 0 10px; padding-top: 11px; }.work-project-gallery > p span { color: var(--lime); }.work-project-gallery-grid { display: grid; gap: 8px; grid-template-columns: 1.38fr .62fr; grid-template-rows: repeat(3, minmax(140px, 1fr)); min-height: min(58vw, 650px); }.work-project-gallery-grid:has(> .work-project-gallery-main:only-child) { grid-template-columns: 1fr; }.work-project-gallery-frame { background: #17110d; display: block; min-height: 0; overflow: hidden; position: relative; }.work-project-gallery-main { grid-row: span 3; }.work-project-gallery-frame img { height: 100%; object-fit: cover; transition: transform 800ms var(--ease-smooth), filter 300ms var(--ease-out); width: 100%; }.work-project-gallery-frame span { background: var(--paper-bright); bottom: 0; color: var(--ink); font-size: 10px; font-weight: 800; left: 0; padding: 10px 12px; position: absolute; transform: translateY(1px); transition: transform 250ms var(--ease-out); }.work-project-gallery-object { background: var(--paper-bright); }.work-project-gallery-object img { object-fit: contain; padding: 20px; }.work-project-gallery-frame:focus-visible { outline: 3px solid var(--lime); outline-offset: -3px; z-index: 1; }@media (hover: hover) and (pointer: fine) { .work-project-gallery-frame:hover img { filter: saturate(1.06); transform: scale(1.045); }.work-project-gallery-frame:hover span { transform: translateY(0); } }.work-project-notes { border-top: 1px solid rgba(247,242,232,.32); display: grid; gap: 24px; grid-template-columns: repeat(3, 1fr); margin: 34px 0 44px; padding-top: 14px; }.work-project-notes span { color: var(--lime); font-size: 10px; font-weight: 800; letter-spacing: .09em; }.work-project-notes p { font-size: 14px; line-height: 1.5; margin: 10px 0 0; max-width: 290px; }.work-archive-back { background: transparent; border: 0; border-bottom: 1px solid var(--paper-bright); color: var(--paper-bright); cursor: pointer; font-size: 12px; font-weight: 800; padding: 0 0 7px; }
.reveal-image { clip-path: inset(0 0 0 0); transition: clip-path 900ms var(--ease-out); }
.reveal-image.is-hidden { clip-path: inset(0 0 100% 0); }

.legal-page { max-width: 820px; }
.legal-page h1 { font-size: clamp(48px, 7vw, 88px); margin: 24px 0 8px; }
.legal-page .legal-meta { font-size: 13px; margin: 0 0 56px; opacity: .6; }
.legal-page section { border-top: 1px solid var(--line); margin-top: 40px; padding-top: 40px; }
.legal-page section:first-of-type { border-top: 0; margin-top: 56px; padding-top: 0; }
.legal-page h2 { font-size: clamp(24px, 3vw, 32px); letter-spacing: -.03em; line-height: 1.15; margin: 0 0 18px; }
.legal-page h3 { font-size: 16px; font-weight: 800; margin: 30px 0 10px; }
.legal-page h3:first-child { margin-top: 0; }
.legal-page p { font-size: 15px; line-height: 1.7; margin: 0 0 14px; }
.legal-page ul, .legal-page ol { font-size: 15px; line-height: 1.7; margin: 0 0 14px; padding-left: 22px; }
.legal-page li { margin-bottom: 6px; }
.legal-page strong { font-weight: 800; }
.legal-page a:not(.wordmark) { border-bottom: 1px solid currentColor; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@media (max-width: 860px) {
  .site-header { grid-template-columns: 1fr auto; padding: 18px 20px; }
  .nav-links, .header-cta { display: none; }
  .menu-button { background: transparent; border: 1px solid var(--ink); border-radius: 50%; display: grid; height: 40px; padding: 0; place-items: center; position: relative; width: 40px; }
  .site-header-dark .menu-button { border-color: var(--paper-bright); }
  .menu-button i { background: var(--ink); display: block; height: 1px; position: absolute; transition: transform 220ms var(--ease-out); width: 15px; }
  .site-header-dark .menu-button i { background: var(--paper-bright); }
  .menu-button i:first-of-type { transform: translateY(-3px); }.menu-button i:last-of-type { transform: translateY(3px); }
  .menu-button.is-open i:first-of-type { transform: rotate(45deg); }.menu-button.is-open i:last-of-type { transform: rotate(-45deg); }
  .mobile-menu { align-items: flex-start; background: rgba(247,242,232,.96); backdrop-filter: blur(16px); display: flex; flex-direction: column; gap: 24px; inset: 0; justify-content: center; opacity: 0; padding: 20px; pointer-events: none; position: fixed; transform: translateY(-12px); transition: opacity 280ms var(--ease-out), transform 280ms var(--ease-out), visibility 0s linear 280ms; visibility: hidden; z-index: 8; }
  .mobile-menu.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); transition-delay: 0s; visibility: visible; }
  .mobile-menu a { font-size: 40px; font-weight: 800; letter-spacing: -.07em; line-height: 1; }
  .mobile-menu a:last-child { color: var(--orange); }
  .hero { grid-template-columns: 1fr; min-height: auto; padding: 105px 20px 20px; }
  .hero-copy { min-height: 475px; padding: 28px 0 32px; }.hero-bottom { align-items: start; flex-direction: column; }.hero-bottom p { max-width: 320px; }
  .hero-showcase { height: 560px; }.hero-stamp { bottom: 5px; height: 110px; left: auto; right: 8px; width: 110px; }
  .section-pad { padding: 82px 20px; }.manifesto { padding-left: 20px; padding-right: 20px; }.manifesto-grid, .section-heading, .split-feature, .process, .brief-grid { grid-template-columns: 1fr; }
  .manifesto-grid { gap: 42px; margin-top: 42px; }.word-reveal { margin-top: 100px; }.section-heading { gap: 26px; margin-bottom: 44px; }
  .route { grid-template-columns: 28px 1fr; }.route-name { grid-column: 2; }.route-description { grid-column: 2; }.route-meta { grid-column: 2; text-align: left; }
  .split-feature { gap: 48px; padding-left: 20px; padding-right: 20px; }.feature-image { min-height: 430px; }.programs-head { display: grid; gap: 25px; }.program-grid { grid-template-columns: 1fr; }.program-card { min-height: 375px; }.detail-banner { grid-template-columns: 1fr; }.detail-image { height: 420px; }.detail-copy { min-height: 370px; }.process { gap: 45px; }
  .client-proof { padding: 0 20px; }.client-proof-inner { gap: 22px; grid-template-columns: 1fr; }.client-proof-marks { gap: 12px; grid-template-columns: repeat(2, 1fr); }.client-proof-logo:last-child { grid-column: 1 / -1; }
  .brief { padding-left: 20px; padding-right: 20px; }.brief-top { align-items: start; flex-direction: column; gap: 8px; }.brief-grid { padding-top: 52px; }.brief-form { grid-template-columns: 1fr; }.brief-form label { grid-column: 1 / -1; }.site-footer { grid-template-columns: 1fr; padding: 40px 20px 22px; }.footer-links { align-items: flex-start; }.footer-small { flex-wrap: wrap; justify-content: flex-start; }.footer-small span { flex-basis: 100%; }
  .products-hero { min-height: 700px; padding: 118px 20px 32px; }.products-hero-top, .products-hero-bottom { flex-direction: column; gap: 22px; }.products-hero h1 { font-size: clamp(63px, 17vw, 90px); margin: 90px 0 45px -5px; }.products-hero-bottom { align-items: start; margin: 0; }.edit-count { text-align: left; width: max-content; }.edit-intro { gap: 38px; grid-template-columns: 1fr; padding-left: 20px; padding-right: 20px; }.edit-intro > div { gap: 26px; grid-template-columns: 1fr; }.product-grid { grid-template-columns: 1fr; }.product-card, .product-card-wide { grid-column: auto; min-height: 0; }.product-card-wide { display: block; }.product-image, .product-card-wide .product-image { height: 420px; }.product-info, .product-card-wide .product-info { min-height: 335px; padding: 24px 20px; }.product-card-wide h2 { font-size: 56px; }.product-card-lime { min-height: 420px; }.product-message { min-height: 420px; padding: 24px 20px; }.product-cta { min-height: 530px; padding-left: 20px; padding-right: 20px; }.product-cta h2 { font-size: 70px; margin-top: 50px; }
  .working-range { padding-left: 20px; padding-right: 20px; }.working-range-head { gap: 38px; grid-template-columns: 1fr; margin-bottom: 40px; }.working-range-head > div { gap: 26px; grid-template-columns: 1fr; }.range-grid { grid-template-columns: 1fr 1fr; }.range-card { min-height: 250px; padding: 14px; }.range-card > p { margin-top: 32px; }.range-card > div { flex-direction: column; gap: 3px; }
  .client-work { padding-left: 20px; padding-right: 20px; }.client-work-head { gap: 38px; grid-template-columns: 1fr; margin-bottom: 40px; }.client-work-head > div { gap: 26px; grid-template-columns: 1fr; }.case-study-grid { grid-template-columns: 1fr; gap: 8px; }.case-study, .case-study-featured { min-height: 480px; }.case-study-caption { padding: 16px; width: min(88%, 340px); }.case-study-caption > p { margin-bottom: 24px; }.case-study-caption h3 { font-size: 44px; margin-bottom: 25px; }.case-study-caption > div { flex-direction: column; gap: 3px; }.work-archive { height: 100svh; padding: 20px 20px 34px; }.work-archive-top h2 { margin-top: 38px; }.work-archive-intro { margin: 30px 0 24px; }.work-archive-grid { grid-template-columns: 1fr 1fr; }.work-archive-item, .work-archive-item-large { grid-column: auto; grid-row: auto; height: 210px; }.work-archive-item-large { grid-column: span 2; height: 320px; }.work-project { padding-top: 32px; }.work-project-head { gap: 26px; grid-template-columns: 1fr; margin-bottom: 28px; }.work-project-head h3 { font-size: 64px; }.work-project-gallery-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: 270px 150px 150px; min-height: auto; }.work-project-gallery-main { grid-column: 1 / -1; grid-row: auto; }.work-project-gallery-object { grid-column: 1 / -1; }.work-project-gallery-grid:has(> .work-project-gallery-main:only-child) { grid-template-rows: 440px; }.work-project-notes { gap: 22px; grid-template-columns: 1fr; margin: 28px 0 36px; }
}
@media (max-width: 440px) { h1 { font-size: 64px; margin-top: 52px; }.hero-copy { min-height: 430px; }.hero-showcase { height: 470px; }.hero-stamp { height: 94px; width: 94px; }.hero-stamp b { font-size: 37px; height: 45px; width: 45px; }.hero-scene figcaption { font-size: 8px; }.hero-scene-nav { bottom: 12px; right: 12px; }.hero-scene-nav button b { display: none; }.program-card h3 { font-size: 46px; } }
