:root {
  --ink: #121211;
  --ink-soft: #51514e;
  --paper: #f8f8f5;
  --paper-warm: #f1efe9;
  --paper-blue: #dbe7ff;
  --paper-red: #ffd9d2;
  --paper-yellow: #f7ee9f;
  --red: #ef4c35;
  --blue: #2b59ff;
  --line: rgba(18, 18, 17, 0.18);
  --line-strong: rgba(18, 18, 17, 0.46);
  --display: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --body: "Helvetica Neue", Helvetica, Arial, sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.45; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { display: block; max-width: 100%; }
::selection { color: var(--paper); background: var(--blue); }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 10px 14px; background: var(--paper); border: 1px solid var(--ink); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); background: rgba(248, 248, 245, 0.9); backdrop-filter: blur(16px); }
.nav, .hero-inner, .section-inner, .footer-inner { width: min(100% - 48px, 1440px); margin: 0 auto; }
.nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 9px; font-family: var(--display); font-size: 21px; font-weight: 800; letter-spacing: 0.06em; line-height: 1; }
.brand img { width: 31px; height: 31px; object-fit: contain; }
.brand b { color: var(--blue); font-weight: 500; }
.nav-links { display: flex; align-items: center; gap: 26px; font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.nav-links > a:not(.button) { position: relative; padding: 7px 0; }
.nav-links > a:not(.button)::after { position: absolute; right: 0; bottom: 1px; left: 0; height: 1px; background: var(--ink); content: ""; transform: scaleX(0); transform-origin: right; transition: transform 180ms ease; }
.nav-links > a:not(.button):hover::after { transform: scaleX(1); transform-origin: left; }
.nav-services { position: relative; }
.nav-services summary { cursor: pointer; list-style: none; padding: 7px 0; }
.nav-services summary::-webkit-details-marker { display: none; }
.nav-services summary::after { margin-left: 7px; content: "+"; }
.nav-services[open] summary::after { content: "-"; }
.service-menu { position: absolute; z-index: 30; top: calc(100% + 14px); left: -18px; display: grid; width: 288px; gap: 0; border: 1px solid var(--ink); background: var(--paper); box-shadow: 8px 10px 0 rgba(18,18,17,.12); }
.service-menu a { padding: 13px 15px; border-bottom: 1px solid var(--line); font-size: 12px; letter-spacing: .035em; text-transform: none; }
.service-menu a:last-child { border-bottom: 0; }
.service-menu a:hover { background: var(--paper-yellow); }
.nav-toggle { display: none; width: 40px; height: 40px; padding: 0; border: 0; background: transparent; }
.nav-toggle span { display: block; width: 26px; height: 1.5px; margin: 6px auto; background: var(--ink); transition: transform 180ms ease; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 17px; min-height: 51px; padding: 14px 20px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.button:hover { color: var(--ink); background: var(--paper-yellow); transform: translateY(-3px); }
.button-small { min-height: 39px; padding: 9px 14px; }
.button-outline { color: var(--ink); background: transparent; }
.button-outline:hover { background: var(--paper); }
.text-link { display: inline-flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--ink); padding-bottom: 5px; font-size: 13px; font-weight: 700; letter-spacing: 0.065em; text-transform: uppercase; transition: color 180ms ease, border-color 180ms ease; }
.text-link:hover { color: var(--blue); border-color: var(--blue); }
.eyebrow { margin: 0; color: var(--ink-soft); font-size: 11px; font-weight: 700; letter-spacing: 0.145em; text-transform: uppercase; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: var(--display); font-weight: 500; letter-spacing: -0.045em; line-height: 0.94; }
h1 { max-width: 830px; margin-top: 22px; font-size: 102px; }
h1 em { color: var(--red); font-style: normal; }
h2 { font-size: 69px; }
h3 { font-size: 31px; }
.lede { max-width: 620px; margin-top: 28px; color: var(--ink-soft); font-size: 22px; line-height: 1.35; }

.hero { position: relative; border-bottom: 1px solid var(--line); overflow: hidden; }
.hero-inner { min-height: 750px; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(410px, 0.92fr); align-items: center; gap: 54px; padding-top: 88px; padding-bottom: 84px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 35px; }
.hero-note { max-width: 500px; margin-top: 27px; color: var(--ink-soft); font-size: 13px; }
.hero-art { position: relative; min-height: 540px; overflow: hidden; border: 1px solid var(--ink); background: var(--paper-blue); isolation: isolate; }
.hero-art::before { position: absolute; inset: 0; background-image: linear-gradient(rgba(18,18,17,.15) 1px, transparent 1px), linear-gradient(90deg, rgba(18,18,17,.15) 1px, transparent 1px); background-size: 38px 38px; content: ""; opacity: .56; }
.hero-logo { position: absolute; z-index: 6; top: 36px; right: 34px; width: 116px; height: 116px; object-fit: contain; animation: logo-drift 7s ease-in-out infinite; }
.art-sheet, .art-tab, .art-orbit, .art-stamp { position: absolute; border: 1px solid var(--ink); }
.art-sheet { width: min(78%, 420px); min-height: 334px; padding: 25px; background: var(--paper); box-shadow: 16px 18px 0 rgba(18,18,17,.12); }
.art-sheet-back { top: 70px; right: 30px; display: grid; align-content: end; gap: 8px; background: var(--paper-yellow); color: var(--ink); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transform: rotate(8deg); animation: art-back 8s ease-in-out infinite; }
.art-sheet-front { z-index: 2; top: 148px; left: 32px; display: flex; flex-direction: column; justify-content: space-between; transform: rotate(-5deg); animation: art-front 8s ease-in-out infinite; }
.art-kicker { font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.art-sheet-front strong { max-width: 250px; font-size: 55px; font-weight: 500; letter-spacing: -.07em; line-height: .88; }
.art-lines { display: grid; gap: 9px; }
.art-lines i { display: block; height: 1px; background: var(--ink); }
.art-lines i:nth-child(2) { width: 78%; }
.art-lines i:nth-child(3) { width: 91%; }
.art-lines i:nth-child(4) { width: 52%; }
.art-footer { display: flex; justify-content: space-between; gap: 8px; font-size: 9px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.art-tab { z-index: 4; padding: 9px 13px; background: var(--red); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.art-tab-one { top: 43px; left: 37px; transform: rotate(-10deg); animation: tab-one 7s ease-in-out infinite; }
.art-tab-two { right: 36px; bottom: 55px; background: var(--blue); color: var(--paper); transform: rotate(12deg); animation: tab-two 7s ease-in-out infinite; }
.art-orbit { width: 130px; height: 130px; border-radius: 50%; border-width: 2px; }
.art-orbit-a { right: -35px; top: 168px; background: var(--paper-red); animation: orbit-one 10s linear infinite; }
.art-orbit-b { left: -48px; bottom: -42px; width: 170px; height: 170px; background: var(--paper-yellow); animation: orbit-two 12s linear infinite; }
.art-stamp { z-index: 5; right: 58px; bottom: 105px; display: grid; width: 102px; height: 102px; place-items: center; background: var(--paper); color: var(--red); font-size: 13px; font-weight: 800; letter-spacing: .05em; line-height: .95; text-align: center; transform: rotate(-12deg); animation: stamp 7s ease-in-out infinite; }
.ticker { display: flex; overflow: hidden; height: 44px; align-items: center; border-top: 1px solid var(--line); white-space: nowrap; }
.ticker span { display: inline-block; min-width: max-content; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; animation: ticker 25s linear infinite; }
.ticker b { padding: 0 16px; color: var(--red); font-size: 16px; }

.section-inner { padding-top: 132px; padding-bottom: 132px; }
.section-intro { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .5fr); gap: 40px; align-items: end; }
.section-intro .eyebrow { grid-column: 1 / -1; }
.section-intro h2 { max-width: 730px; }
.section-intro > p:last-child { max-width: 340px; color: var(--ink-soft); font-size: 17px; line-height: 1.45; }
.service-list { margin-top: 76px; border-top: 1px solid var(--ink); }
.service-line { display: grid; grid-template-columns: 66px minmax(0, 1fr) 40px; gap: 22px; align-items: center; min-height: 122px; padding: 23px 0; border-bottom: 1px solid var(--line); transition: padding 180ms ease, background 180ms ease; }
.service-line:hover { padding-right: 18px; padding-left: 18px; background: var(--paper-warm); }
.service-line-feature { background: var(--paper-yellow); }
.service-number { align-self: start; padding-top: 5px; color: var(--ink-soft); font-size: 12px; letter-spacing: .08em; }
.service-line strong { display: block; font-family: var(--display); font-size: 31px; font-weight: 500; letter-spacing: -.04em; line-height: 1; }
.service-line small { display: block; max-width: 660px; margin-top: 10px; color: var(--ink-soft); font-size: 15px; line-height: 1.35; }
.service-arrow { justify-self: end; font-size: 28px; transition: transform 180ms ease; }
.service-line:hover .service-arrow { transform: translate(5px, -5px); }

.method-section { border-top: 1px solid var(--line); background: var(--paper-warm); }
.method-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 88px; }
.method-copy h2 { max-width: 560px; margin-top: 20px; }
.method-copy > p:not(.eyebrow) { max-width: 450px; margin-top: 26px; color: var(--ink-soft); font-size: 18px; }
.method-copy .text-link { margin-top: 34px; }
.method-list { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }
.method-list li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; padding: 23px 0 27px; border-bottom: 1px solid var(--line); }
.method-list li > span { color: var(--ink-soft); font-size: 12px; letter-spacing: .08em; }
.method-list strong { font-size: 23px; font-weight: 500; letter-spacing: -.03em; }
.method-list p { max-width: 510px; margin-top: 7px; color: var(--ink-soft); font-size: 15px; }

.signal-section { border-top: 1px solid var(--line); background: var(--paper-blue); }
.signal-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, .55fr); gap: 88px; }
.signal-quote h2 { max-width: 520px; margin-top: 18px; }
.signal-copy { padding-top: 6px; }
.signal-copy p { color: var(--ink-soft); font-size: 19px; line-height: 1.42; }
.signal-copy p + p { margin-top: 20px; }
.signal-copy .button { margin-top: 32px; }

.faq-section { border-top: 1px solid var(--line); }
.faq-grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); gap: 88px; }
.faq-grid h2 { max-width: 540px; margin-top: 18px; }
.faq-list { border-top: 1px solid var(--ink); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { padding: 22px 40px 22px 0; cursor: pointer; font-size: 20px; font-weight: 500; letter-spacing: -.025em; list-style: none; position: relative; }
.faq-list summary::after { position: absolute; right: 2px; content: "+"; font-size: 26px; font-weight: 300; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 630px; padding: 0 30px 24px 0; color: var(--ink-soft); font-size: 16px; }
.faq-list details p a { border-bottom: 1px solid currentColor; }

.contact-band { border-top: 1px solid var(--ink); background: var(--paper-red); }
.contact-band-inner h2 { max-width: 980px; margin-top: 19px; font-size: 78px; }

.site-footer { border-top: 1px solid var(--ink); background: var(--paper); }
.footer-inner { padding-top: 78px; padding-bottom: 26px; }
.footer-lead { display: grid; grid-template-columns: minmax(170px, .45fr) minmax(220px, .7fr) minmax(190px, .45fr); gap: 36px; align-items: start; padding-bottom: 88px; }
.footer-lead p { max-width: 350px; color: var(--ink-soft); font-size: 16px; }
.footer-lead .text-link { justify-self: start; }
.footer-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; padding: 28px 0 72px; border-top: 1px solid var(--line); }
.footer-links div { display: grid; align-content: start; justify-items: start; gap: 10px; }
.footer-links p { margin-bottom: 6px; color: var(--ink-soft); font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.footer-links a { font-size: 15px; }
.footer-links a:hover { color: var(--blue); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 21px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 12px; }

.page-hero { border-bottom: 1px solid var(--line); background: var(--paper-blue); }
.page-hero .hero-inner { min-height: 560px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .42fr); align-items: end; gap: 70px; padding-top: 105px; padding-bottom: 78px; }
.breadcrumb { margin-bottom: 42px; color: var(--ink-soft); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.breadcrumb a { border-bottom: 1px solid transparent; }
.breadcrumb a:hover { border-color: currentColor; }
.page-hero h1 { max-width: 840px; font-size: 82px; }
.page-hero .lede { max-width: 720px; }
.page-aside { align-self: end; min-height: 236px; padding: 26px; border: 1px solid var(--ink); background: var(--paper-yellow); }
.page-aside p { color: var(--ink-soft); font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.page-aside strong { display: block; margin-top: 18px; font-size: 31px; font-weight: 500; letter-spacing: -.05em; line-height: .98; }
.page-aside ul { display: grid; gap: 7px; margin: 22px 0 0; padding: 0; color: var(--ink-soft); font-size: 14px; list-style: none; }
.page-aside li::before { margin-right: 8px; color: var(--red); content: "•"; }
.service-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, .42fr); gap: 88px; }
.process-band { border-bottom: 1px solid var(--line); background: var(--paper-warm); }
.process-band .section-inner { padding-top: 78px; padding-bottom: 78px; }
.process-intro { display: grid; grid-template-columns: minmax(0, .72fr) minmax(300px, 1.28fr); gap: 52px; align-items: end; }
.process-intro h2 { max-width: 490px; margin-top: 16px; font-size: 46px; }
.process-intro > p:not(.eyebrow) { max-width: 440px; margin-top: 20px; color: var(--ink-soft); font-size: 17px; line-height: 1.45; }
.process-flow { position: relative; margin: 0; padding: 0; }
.process-flow::before { position: absolute; z-index: 0; top: 29px; right: 13%; left: 13%; height: 1px; background: var(--ink); content: ""; }
.process-flow::after { position: absolute; z-index: 0; top: 27px; left: 13%; width: 13%; height: 5px; background: var(--blue); content: ""; animation: flow-travel 4.5s ease-in-out infinite; }
.process-flow ol { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.flow-step { min-height: 218px; padding: 20px; border: 1px solid var(--ink); background: var(--paper); animation: flow-lift 5.2s ease-in-out infinite; }
.flow-step:nth-child(2) { background: var(--paper-yellow); animation-delay: .2s; }
.flow-step:nth-child(3) { background: var(--paper-blue); animation-delay: .4s; }
.flow-step:nth-child(4) { background: var(--paper-red); animation-delay: .6s; }
.flow-step span { display: grid; width: 39px; height: 39px; place-items: center; border: 1px solid var(--ink); border-radius: 50%; background: var(--paper); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.flow-step strong { display: block; margin-top: 47px; font-family: var(--display); font-size: 27px; font-weight: 500; letter-spacing: -.04em; line-height: 1; }
.flow-step p { margin-top: 12px; color: var(--ink-soft); font-size: 14px; line-height: 1.4; }
.service-copy { display: grid; gap: 70px; }
.service-copy section { border-top: 1px solid var(--ink); padding-top: 22px; }
.service-copy h2, .answer-page h2, .legal-copy h2 { font-size: 42px; }
.service-copy p, .legal-copy p { max-width: 730px; color: var(--ink-soft); font-size: 18px; line-height: 1.45; }
.detail-list { display: grid; gap: 0; margin: 24px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.detail-list li { padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: 16px; }
.detail-list li::before { margin-right: 10px; color: var(--red); content: "↗"; }
.code-sample { overflow-x: auto; margin-top: 24px; padding: 22px; border: 1px solid var(--ink); background: var(--paper-warm); }
.code-sample pre { margin: 0; font: 13px/1.55 "SFMono-Regular", Consolas, monospace; white-space: pre-wrap; }
.service-rail { display: grid; align-content: start; gap: 18px; }
.rail-note { padding: 23px; border-top: 1px solid var(--ink); background: var(--paper-red); }
.rail-note:nth-child(2) { background: var(--paper-yellow); }
.rail-note p { color: var(--ink-soft); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.rail-note strong { display: block; margin-top: 14px; font-size: 22px; font-weight: 500; letter-spacing: -.035em; line-height: 1.1; }
.rail-note a { margin-top: 17px; }

.answer-page, .legal-copy { max-width: 960px; }
.answer-page > p, .legal-copy > p { margin-top: 18px; color: var(--ink-soft); font-size: 19px; }
.answer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: 64px; border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.answer-card { min-height: 250px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.answer-card:nth-child(3n+1) { background: var(--paper-yellow); }
.answer-card:nth-child(3n+2) { background: var(--paper-blue); }
.answer-card h2 { max-width: 360px; }
.answer-card p { margin-top: 20px; color: var(--ink-soft); font-size: 16px; }
.answer-page .code-sample { margin-top: 62px; }
.legal-copy { display: grid; gap: 52px; }
.legal-copy section { border-top: 1px solid var(--ink); padding-top: 21px; }
.legal-copy section > p + p { margin-top: 15px; }
.contact-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 62px; border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.contact-option { min-height: 280px; padding: 27px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.contact-option:nth-child(2) { background: var(--paper-yellow); }
.contact-option:nth-child(3) { background: var(--paper-red); }
.contact-option h2 { font-size: 35px; }
.contact-option p { margin-top: 17px; color: var(--ink-soft); }
.contact-option .text-link { margin-top: 27px; }

.visual-story { border-top: 1px solid var(--ink); background: var(--paper-warm); }
.visual-story .section-inner { padding-top: 82px; padding-bottom: 86px; }
.visual-story-head { display: grid; grid-template-columns: minmax(0, .7fr) minmax(300px, 1.3fr); gap: 48px; align-items: end; }
.visual-story-head h2 { max-width: 560px; margin-top: 18px; font-size: 48px; }
.visual-story-head > p:not(.eyebrow) { max-width: 520px; color: var(--ink-soft); font-size: 17px; line-height: 1.45; }
.visual-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-top: 46px; }
.service-visual { position: relative; min-height: 250px; margin: 0; overflow: hidden; border: 1px solid var(--ink); background: var(--paper); }
.service-visual:nth-child(2) { background: var(--paper-yellow); }
.service-visual:nth-child(3) { background: var(--paper-blue); }
.service-visual figcaption { position: absolute; z-index: 2; right: 18px; bottom: 17px; left: 18px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.source-board::before, .source-board::after, .decision-grid::before, .decision-grid::after, .review-loop::before, .review-loop::after { position: absolute; border: 1px solid var(--ink); content: ""; }
.source-board::before { top: 31px; left: 26px; width: 53%; height: 112px; background: var(--paper); box-shadow: 13px 14px 0 var(--paper-red); transform: rotate(-5deg); }
.source-board::after { top: 54px; right: 24px; width: 36%; height: 72px; background: var(--paper-blue); transform: rotate(8deg); }
.decision-grid::before { inset: 26px 25px 71px; background-image: linear-gradient(var(--ink) 1px, transparent 1px), linear-gradient(90deg, var(--ink) 1px, transparent 1px); background-size: 33.333% 50%; background-color: var(--paper); }
.decision-grid::after { top: 45px; left: 42px; width: 44%; height: 44%; border-radius: 50%; background: var(--paper-red); }
.review-loop::before { top: 36px; left: 30px; width: 145px; height: 145px; border-radius: 50%; background: transparent; }
.review-loop::after { top: 69px; left: 63px; width: 80px; height: 80px; border-radius: 50%; background: var(--paper); box-shadow: 108px 20px 0 -28px var(--blue), 44px 101px 0 -28px var(--red); }
.measure-graph { margin: 18px 0 0; padding: 23px 0 0; border-top: 1px solid var(--ink); }
.measure-graph figcaption { display: flex; justify-content: space-between; gap: 16px; color: var(--ink-soft); font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.measure-graph figcaption span { font-weight: 500; letter-spacing: .04em; text-transform: none; }
.measure-row { display: grid; grid-template-columns: minmax(120px, .55fr) minmax(130px, 1fr) minmax(130px, .7fr); gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.measure-row > span { font-size: 14px; font-weight: 700; }
.measure-row i { position: relative; display: block; height: 1px; background: var(--ink); }
.measure-row i::before { position: absolute; top: -4px; left: 0; width: 9px; height: 9px; border: 1px solid var(--ink); border-radius: 50%; background: var(--paper); content: ""; }
.measure-row i::after { position: absolute; top: -3px; right: 0; width: 0; height: 0; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 7px solid var(--blue); content: ""; }
.measure-row b { color: var(--ink-soft); font-size: 13px; font-weight: 500; }
.case-study-band { border-top: 1px solid var(--ink); }
.case-study-band .section-inner { padding-top: 82px; padding-bottom: 90px; }
.case-study-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 42px; border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.case-study-card { min-height: 270px; padding: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); }
.case-study-card:nth-child(2) { background: var(--paper-yellow); }
.case-study-card:nth-child(3) { background: var(--paper-blue); }
.case-study-card p { color: var(--ink-soft); font-size: 13px; }
.case-study-card h3 { margin-top: 28px; font-size: 31px; }
.case-study-card .text-link { margin-top: 27px; }
.scenario-note { margin-top: 22px; color: var(--ink-soft); font-size: 13px; }
.scenario-page { max-width: 1120px; }
.scenario-page .scenario-note { max-width: 680px; }
.scenario-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 56px; border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.scenario-detail-grid section { min-height: 220px; padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.scenario-detail-grid section:nth-child(2) { background: var(--paper-yellow); }
.scenario-detail-grid section:nth-child(3) { background: var(--paper-blue); }
.scenario-detail-grid h2 { font-size: 29px; }
.scenario-detail-grid p, .scenario-detail-grid li { margin-top: 14px; color: var(--ink-soft); font-size: 15px; line-height: 1.42; }
.scenario-detail-grid ul { margin: 14px 0 0; padding-left: 18px; }

.reveal-item { opacity: 0; transform: translateY(20px); transition: opacity 600ms ease, transform 600ms ease; }
.reveal-item.is-visible { opacity: 1; transform: translateY(0); }
@keyframes art-front { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-15px); } }
@keyframes art-back { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(5deg) translateY(14px); } }
@keyframes tab-one { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(14px); } }
@keyframes tab-two { 0%,100% { transform: rotate(12deg) translateX(0); } 50% { transform: rotate(6deg) translateX(-12px); } }
@keyframes orbit-one { from { transform: rotate(0deg) translateX(8px) rotate(0deg); } to { transform: rotate(360deg) translateX(8px) rotate(-360deg); } }
@keyframes orbit-two { from { transform: rotate(0deg) translateX(10px) rotate(0deg); } to { transform: rotate(-360deg) translateX(10px) rotate(360deg); } }
@keyframes stamp { 0%,100% { transform: rotate(-12deg) scale(1); } 50% { transform: rotate(-7deg) scale(1.05); } }
@keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes logo-drift { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-10px); } }
@keyframes flow-lift { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes flow-travel { 0%,18% { transform: translateX(0); } 52%,100% { transform: translateX(460%); } }

@media (max-width: 1100px) {
  h1 { font-size: 78px; } h2 { font-size: 56px; }
  .hero-inner { min-height: auto; grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr); gap: 36px; }
  .hero-art { min-height: 460px; } .art-sheet-front { top: 118px; left: 22px; } .art-sheet-back { top: 54px; right: 22px; }
  .section-intro, .signal-grid, .faq-grid, .method-grid, .service-main, .process-intro, .visual-story-head { gap: 54px; }
  .page-hero .hero-inner { grid-template-columns: minmax(0, 1fr) minmax(240px, .42fr); gap: 38px; }
  .page-hero h1 { font-size: 67px; } .contact-band-inner h2 { font-size: 62px; }
}
@media (max-width: 820px) {
  .nav, .hero-inner, .section-inner, .footer-inner { width: min(100% - 34px, 1440px); }
  .nav { min-height: 70px; } .nav-toggle { display: block; }
  .nav-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .nav-links { position: absolute; top: 70px; right: 0; left: 0; display: none; align-items: stretch; gap: 0; padding: 14px 17px 20px; border-bottom: 1px solid var(--ink); background: var(--paper); }
  .nav-links.is-open { display: grid; } .nav-links > a { padding: 15px 0; border-top: 1px solid var(--line); } .nav-links > .button { justify-content: space-between; margin-top: 10px; padding: 14px 18px; }
  h1 { font-size: 63px; } h2 { font-size: 49px; } .lede { font-size: 20px; }
  .hero-inner, .method-grid, .signal-grid, .faq-grid, .service-main, .process-intro, .visual-story-head { grid-template-columns: 1fr; }
  .hero-inner { gap: 46px; padding-top: 67px; } .hero-art { max-width: 610px; min-height: 500px; }
  .section-inner { padding-top: 88px; padding-bottom: 88px; }
  .section-intro { grid-template-columns: 1fr; gap: 25px; } .section-intro .eyebrow { grid-column: auto; }
  .method-grid, .signal-grid, .faq-grid, .service-main { gap: 44px; }
  .page-hero .hero-inner { min-height: auto; grid-template-columns: 1fr; gap: 36px; padding-top: 72px; padding-bottom: 58px; }
  .page-aside { max-width: 460px; } .page-hero h1 { font-size: 61px; }
  .nav-services { display: grid; }
  .service-menu { position: static; width: auto; margin-top: 10px; box-shadow: none; }
  .visual-grid, .case-study-grid, .scenario-detail-grid { grid-template-columns: 1fr; }
  .service-visual { min-height: 220px; }
  .process-flow::before { top: 0; bottom: 0; left: 20px; right: auto; width: 1px; height: auto; }
  .process-flow::after { top: 0; left: 18px; width: 5px; height: 22%; animation-name: flow-travel-mobile; }
  .process-flow ol { grid-template-columns: 1fr; gap: 11px; }
  .flow-step { display: grid; grid-template-columns: 42px 1fr; column-gap: 18px; min-height: 0; padding: 19px; }
  .flow-step strong { margin-top: 4px; font-size: 25px; }
  .flow-step p { grid-column: 2; margin-top: -12px; }
  .service-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-options { grid-template-columns: 1fr; } .contact-option { min-height: 0; }
}
@media (max-width: 560px) {
  .brand { font-size: 18px; } .brand img { width: 25px; height: 25px; }
  h1 { font-size: 51px; letter-spacing: -.055em; } h2 { font-size: 39px; } h3 { font-size: 27px; } .lede { font-size: 18px; }
  .hero-inner { padding-top: 49px; padding-bottom: 56px; } .hero-art { min-height: 385px; }
  .art-sheet { min-height: 256px; padding: 18px; } .art-sheet-front { top: 100px; left: 18px; } .art-sheet-back { top: 40px; right: 15px; } .art-sheet-front strong { font-size: 42px; } .art-stamp { right: 25px; bottom: 50px; width: 78px; height: 78px; font-size: 10px; } .art-tab { padding: 7px 9px; font-size: 8px; }
  .hero-actions { gap: 18px; } .button { min-height: 48px; padding: 13px 15px; font-size: 11px; }
  .service-list { margin-top: 48px; } .service-line { grid-template-columns: 38px minmax(0, 1fr) 22px; gap: 11px; min-height: 0; padding: 19px 0; } .service-line strong { font-size: 25px; } .service-line small { font-size: 14px; } .service-arrow { font-size: 21px; }
  .method-list li { grid-template-columns: 40px 1fr; } .method-list strong { font-size: 20px; }
  .contact-band-inner h2, .page-hero h1 { font-size: 48px; }
  .footer-lead, .footer-links { grid-template-columns: 1fr; gap: 28px; } .footer-lead { padding-bottom: 52px; } .footer-links { padding-bottom: 48px; } .footer-bottom { display: grid; }
  .answer-grid { grid-template-columns: 1fr; } .answer-card { min-height: 0; } .service-rail { grid-template-columns: 1fr; }
  .measure-row { grid-template-columns: 1fr; gap: 7px; }
  .measure-row i { margin: 4px 0; }
  .service-copy { gap: 48px; } .service-copy h2, .answer-page h2, .legal-copy h2 { font-size: 35px; }
}
@keyframes flow-travel-mobile { 0%,18% { transform: translateY(0); } 52%,100% { transform: translateY(360%); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal-item { opacity: 1; transform: none; }
}
