/* Hallmark · macrostructure: editorial studio · tone: cinematic · anchor hue: fire orange */
/* Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4 */
@font-face { font-family: "Bebas Neue"; src: url("/assets/fonts/BebasNeue-Regular.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Lilita One"; src: url("/assets/fonts/LilitaOne-Regular.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Jost"; src: url("/assets/fonts/Jost-VariableFont_wght.ttf") format("truetype"); font-style: normal; font-weight: 100 900; font-display: swap; }

:root { --ink:#111111; --ink-alt:#1a1a18; --orange:#e85d26; --cream:#f0ece5; --muted:#aaa79f; --line:#32322e; --display:"Bebas Neue", Impact, sans-serif; --body:"Jost", Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; background:var(--ink); }
body { margin:0; overflow-x:clip; background:var(--ink); color:var(--cream); font-family:var(--body); font-size:16px; }
a { color:inherit; }
.skip-link { position:absolute; left:12px; top:-60px; z-index:99; padding:10px 14px; background:var(--cream); color:var(--ink); } .skip-link:focus { top:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { height:92px; padding:0 clamp(20px,4vw,64px); display:flex; justify-content:space-between; align-items:center; position:absolute; inset:0 0 auto; z-index:20; border-bottom:1px solid rgba(240,236,229,.19); }
.brand { display:inline-flex; align-items:center; } .brand img { display:block; width:auto; height:52px; }
.desktop-nav { display:flex; align-items:center; gap:clamp(14px,2.4vw,36px); } .desktop-nav a { font-size:12px; font-weight:650; letter-spacing:.09em; text-decoration:none; text-transform:uppercase; transition:color .2s ease; } .desktop-nav a:hover { color:var(--orange); }
.desktop-nav .nav-contact { padding:10px 13px; border:1px solid rgba(240,236,229,.65); }.desktop-nav .nav-contact:hover { border-color:var(--orange); }
.hero { min-height:100svh; position:relative; display:grid; align-items:end; isolation:isolate; overflow:hidden; background:var(--ink); }.hero-video,.hero-shade { position:absolute; inset:0; height:100%; width:100%; }.hero-video { z-index:-2; object-fit:cover; object-position:center; opacity:.64; filter:saturate(.65) contrast(1.15); transform:none; }.hero-shade { z-index:-1; background:linear-gradient(90deg,rgba(17,17,17,.78) 0%,rgba(17,17,17,.33) 65%,rgba(17,17,17,.52)),linear-gradient(0deg,rgba(17,17,17,.94),transparent 50%); }
.hero-content { width:min(100% - 40px,1500px); margin:0 auto; padding:180px 0 78px; }.eyebrow { margin:0; font-size:11px; letter-spacing:.15em; font-weight:700; color:var(--orange); }.eyebrow span { color:var(--cream); padding:0 7px; }.hero h1,.section-heading h2,.statement h2,.value-content h2,.contact-cta h2 { min-width:0; overflow-wrap:anywhere; margin:18px 0 0; font-family:var(--display); font-weight:400; text-transform:uppercase; letter-spacing:-.03em; line-height:.84; }.hero h1 { max-width:920px; font-size:clamp(76px,12vw,205px); }.hero h1 em,.section-heading em,.statement em,.value-content em,.contact-cta em { color:var(--orange); font-style:normal; }.hero-bottom { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-top:34px; }.hero-bottom p { max-width:310px; margin:0; color:var(--cream); font-size:16px; line-height:1.4; }.button { display:inline-flex; justify-content:center; gap:16px; align-items:center; width:max-content; min-height:50px; padding:0 20px; white-space:nowrap; text-decoration:none; text-transform:uppercase; font-size:12px; font-weight:750; letter-spacing:.12em; transition:transform .25s ease,background .25s ease,color .25s ease; }.button:hover { transform:translate(-4px,-4px); }.button-primary { background:var(--orange); color:var(--ink); }.button-dark { background:var(--ink); color:var(--cream); }.button-large { padding:0 28px; min-height:64px; font-size:14px; }.scroll-cue { position:absolute; bottom:26px; right:clamp(20px,4vw,64px); font-size:10px; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; display:flex; gap:12px; align-items:center; white-space:nowrap; }.scroll-cue span { font-size:18px; color:var(--orange); animation:bob 1.6s ease-in-out infinite; }
.ticker-section { overflow:hidden; background:var(--orange); color:var(--ink); padding:16px 0 0; }.ticker-label { padding:0 clamp(20px,4vw,64px) 12px; color:var(--ink); }.ticker-label span { color:var(--ink); }.ticker { overflow:hidden; border-top:1px solid rgba(17,17,17,.22); }.ticker-track { display:flex; align-items:center; width:max-content; animation:ticker 31s linear infinite; }.ticker-track span { padding:18px clamp(18px,3vw,48px); font-family:var(--display); font-size:clamp(38px,5vw,74px); line-height:.86; text-transform:uppercase; white-space:nowrap; }.ticker-track b { font-size:16px; }
.section-pad { padding:clamp(72px,11vw,160px) clamp(20px,4vw,64px); }.statement { border-bottom:1px solid var(--line); }.statement-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:48px; margin-top:54px; align-items:end; }.statement h2,.section-heading h2,.value-content h2,.contact-cta h2 { font-size:clamp(62px,9vw,142px); }.large-copy { max-width:500px; margin:0; color:var(--cream); font-size:clamp(19px,2.1vw,28px); line-height:1.3; font-weight:420; }
.services { padding-block:clamp(112px,14vw,210px); border-bottom:1px solid var(--line); }.section-heading { max-width:990px; }.services .eyebrow,.faq .eyebrow { display:none; }.service-list { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.14fr); align-items:stretch; margin-top:80px; border-top:1px solid var(--line); }.service { min-width:0; min-height:390px; padding:24px clamp(18px,2.5vw,42px) 20px 0; border-right:1px solid var(--line); display:flex; flex-direction:column; }.service:not(:first-child) { padding-left:clamp(18px,2.5vw,42px); }.service:last-child { border-right:0; }.service-number { margin:0; color:var(--orange); font-size:12px; font-weight:700; letter-spacing:.1em; font-variant-numeric:tabular-nums; }.service h3 { min-width:0; overflow-wrap:anywhere; margin:44px 0 18px; font:400 clamp(50px,5.2vw,82px)/1 var(--display); text-transform:uppercase; letter-spacing:-.02em; }.service h3.service-title-long { font-size:clamp(42px,4.25vw,68px); line-height:1.02; }.service > p:last-child { max-width:300px; margin:auto 0 0; color:var(--muted); line-height:1.45; }
.value-section { padding-block:clamp(82px,9vw,142px); display:grid; grid-template-columns:9% 1fr; gap:8%; background:var(--ink-alt); }.value-rail { border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; font:400 clamp(28px,3vw,48px)/1 var(--display); color:var(--orange); writing-mode:vertical-rl; transform:rotate(180deg); padding-right:12px; }.value-content { max-width:1060px; }.value-content ul { max-width:680px; margin:54px 0 48px; padding:0; list-style:none; border-top:1px solid var(--line); }.value-content li { padding:18px 0 18px 23px; border-bottom:1px solid var(--line); font-size:clamp(17px,2vw,24px); line-height:1.26; position:relative; }.value-content li::before { content:"/"; color:var(--orange); position:absolute; left:0; font-weight:700; }.text-link { color:var(--cream); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; text-underline-offset:7px; }.text-link span { color:var(--orange); padding-left:8px; }

.faq { padding-block:clamp(90px,10vw,155px); display:grid; grid-template-columns:.8fr 1.2fr; gap:10%; border-bottom:1px solid var(--line); }.faq-list { border-top:1px solid var(--line); }.faq details { border-bottom:1px solid var(--line); }.faq summary { list-style:none; cursor:pointer; padding:22px 0; display:flex; justify-content:space-between; gap:20px; font-size:clamp(19px,2vw,29px); line-height:1.15; }.faq summary::-webkit-details-marker { display:none; }.faq summary span { color:var(--orange); font-size:28px; line-height:.6; transition:transform .2s ease; }.faq details[open] summary span { transform:rotate(45deg); }.faq details p { max-width:620px; margin:0; padding:0 45px 24px 0; color:var(--muted); line-height:1.5; }
.contact-cta { text-align:center; display:flex; flex-direction:column; align-items:center; background:var(--ink-alt); }.contact-cta h2 { margin-bottom:42px; }.contact-cta .eyebrow { color:var(--cream); }.site-footer { padding:32px clamp(20px,4vw,64px); display:grid; grid-template-columns:1fr 1fr 1fr; align-items:end; gap:20px; color:var(--muted); border-top:1px solid var(--line); font-size:11px; letter-spacing:.04em; }.site-footer .brand img { height:42px; }.site-footer p { margin:0; text-align:center; }.site-footer div { justify-self:end; display:flex; gap:17px; }.site-footer a { text-decoration:none; }.site-footer div a:hover { color:var(--orange); }
[data-reveal],[data-reveal].is-visible { opacity:1; transform:none; }
.mobile-menu { display:none; }
@keyframes ticker { to { transform:translateX(-50%); } } @keyframes bob { 50% { transform:translateY(5px); } }
@media (max-width:900px) { .site-header { height:76px; }.brand img { height:39px; }.desktop-nav { display:none; }.mobile-menu { display:block; }.mobile-menu summary { cursor:pointer; list-style:none; white-space:nowrap; font-size:11px; letter-spacing:.12em; text-transform:uppercase; }.mobile-menu summary::-webkit-details-marker { display:none; }.mobile-menu nav { position:absolute; top:75px; right:0; display:grid; min-width:230px; gap:14px; padding:20px; background:var(--orange); border:1px solid var(--ink); }.mobile-menu nav a { color:var(--ink); text-decoration:none; text-transform:uppercase; white-space:nowrap; font-size:11px; letter-spacing:.1em; }.hero-content { padding:140px 0 92px; }.hero h1 { font-size:clamp(70px,19vw,120px); }.hero-bottom { display:block; }.hero-bottom p { margin-bottom:25px; }.scroll-cue { display:none; }.statement-grid,.faq { grid-template-columns:minmax(0,1fr); gap:30px; }.service-list { grid-template-columns:minmax(0,1fr); margin-top:52px; }.service,.service:not(:first-child) { min-height:230px; padding:20px 0; background:transparent; border-right:0; border-bottom:1px solid var(--line); }.service:last-child { border-bottom:0; }.service h3 { margin:28px 0 14px; }.service h3.service-title-long { font-size:clamp(46px,12vw,68px); }.value-section { grid-template-columns:minmax(0,1fr); gap:28px; }.value-rail { writing-mode:horizontal-tb; transform:none; border-right:0; border-bottom:1px solid var(--line); padding:0 0 12px; flex-direction:row; }.site-footer { grid-template-columns:minmax(0,1fr); }.site-footer p { text-align:left; }.site-footer div { justify-self:start; }.ticker-track span { font-size:48px; }.faq details p { padding-right:0; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } .ticker-track { animation:none; } [data-reveal] { opacity:1; transform:none; } }

/* C-brand hero: one centred statement on a full-bleed, scroll-fading video. */
.hero { align-items:center; }
.hero-video { opacity:.76; filter:saturate(.72) contrast(1.18); will-change:opacity; }
.hero-shade {
  background:
    radial-gradient(circle at 50% 42%,rgba(17,17,17,.08) 0 24%,rgba(17,17,17,.68) 78%),
    linear-gradient(0deg,rgba(17,17,17,.88),rgba(17,17,17,.12) 54%,rgba(17,17,17,.62));
}
.hero-content {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:min(100% - 40px,1280px);
  min-height:100svh;
  padding:112px 0 48px;
  text-align:center;
}
.hero h1 {
  width:100%;
  max-width:1100px;
  margin:0;
  font-size:clamp(72px,9.6vw,148px);
  line-height:.82;
  text-wrap:balance;
}
@media(max-width:900px) {
  .hero-content { width:min(100% - 32px,720px); padding:92px 0 32px; }
  .hero h1 { font-size:clamp(62px,17vw,102px); line-height:.84; }
}

/* Three-frame homepage intro. */
.logo-intro {
  position:fixed;
  inset:0;
  z-index:1000;
  width:100vw;
  height:100vh;
  height:100dvh;
  overflow:hidden;
  background:var(--ink);
}
.logo-intro-scene {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  width:100%;
  min-height:100%;
  padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));
  opacity:0;
}
.logo-intro-ink { background:var(--ink); color:var(--cream); animation:logo-intro-scene .76s ease both; }
.logo-intro-orange { background:var(--orange); color:var(--ink); animation:logo-intro-scene .76s .76s ease both; }
.logo-intro-cream { background:var(--cream); color:var(--ink); animation:logo-intro-scene .76s 1.52s ease both; }
.logo-intro-mark {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:min(88vw,1080px);
  max-height:80dvh;
  text-align:center;
}
.logo-intro-mark strong {
  font:400 clamp(150px,24vw,390px)/.68 var(--display);
  letter-spacing:-.04em;
  white-space:nowrap;
}
.logo-intro-mark b {
  margin-top:clamp(14px,2vw,26px);
  font:750 clamp(13px,1.7vw,26px)/1 var(--body);
  letter-spacing:.38em;
  text-indent:.38em;
  white-space:nowrap;
}
.logo-intro.is-leaving { animation:logo-intro-leave .5s cubic-bezier(.16,1,.3,1) forwards; }
body.logo-intro-active { overflow:hidden; }
@keyframes logo-intro-scene {
  0% { opacity:0; transform:scale(1.025); }
  14%,78% { opacity:1; transform:scale(1); }
  100% { opacity:0; transform:scale(.99); }
}
@keyframes logo-intro-leave { to { opacity:0; visibility:hidden; } }
@media(min-width:601px) and (max-width:1024px) {
  .logo-intro-scene { padding:clamp(28px,5vw,56px); }
  .logo-intro-mark { width:min(86vw,760px); }
  .logo-intro-mark strong { font-size:min(31vw,31dvh,300px); }
  .logo-intro-mark b { font-size:min(2.25vw,2.25dvh,22px); letter-spacing:.34em; text-indent:.34em; }
}
@media(max-width:600px) {
  .logo-intro-scene { padding:max(20px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left)); }
  .logo-intro-mark { width:92vw; max-height:76dvh; }
  .logo-intro-mark strong { font-size:min(43vw,31dvh,190px); }
  .logo-intro-mark b { margin-top:14px; font-size:min(3.5vw,2.5dvh,15px); letter-spacing:.27em; text-indent:.27em; }
}
@media(prefers-reduced-motion:reduce) { .logo-intro { display:none; } }
