:root {
  --paper:#f3f0e9;
  --paper-deep:#e9e5dc;
  --ink:#1e2522;
  --muted:#59615d;
  --orange:#ed603e;
  --hairline:#c9c9be;
  --night:#202725;
  --night-hair:#46504b;
  --ui-sans:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --ui-mono:"DM Mono", ui-monospace, monospace;
  --side:clamp(22px,4.3vw,76px);
  --width:1512px;
  --ease:cubic-bezier(.2,.75,0,1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--ui-sans); font-size:16px; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible { outline:3px solid var(--orange); outline-offset:4px; }
svg { display:block; }
[hidden] { display:none!important; }
::selection { background:var(--orange); color:#fff; }
.shell { width:min(calc(100% - (var(--side)*2)),var(--width)); margin-inline:auto; }
.skip-link { position:fixed; top:12px; left:12px; z-index:100; background:#fff; padding:10px 16px; transform:translateY(-160%); }
.skip-link:focus { transform:none; }

/* THE BRAND: structural mark, strong typographic rhythm, straight rules. */
.header { position:sticky; top:0; z-index:20; background:rgba(243,240,233,.94); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid var(--hairline); }
.header-inner { height:92px; display:flex; align-items:center; gap:36px; }
.brand { display:inline-flex; flex-shrink:0; align-items:center; gap:10px; }
.brand-mark { width:38px; height:38px; color:var(--orange); }
.brand-text { font-size:27px; font-weight:800; letter-spacing:-.075em; line-height:1; white-space:nowrap; }
.brand-text span { color:var(--orange); }
.desktop-nav { display:flex; align-items:center; gap:36px; margin-left:auto; }
.desktop-nav a { position:relative; font-size:14px; color:#3b4540; font-weight:600; padding:8px 0; transition:color .2s; }
.desktop-nav a:after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--orange); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.desktop-nav a:hover,.desktop-nav a[aria-current=true] { color:var(--ink); }
.desktop-nav a:hover:after,.desktop-nav a[aria-current=true]:after { transform:scaleX(1); }
.nav-cta { margin-left:12px; background:var(--ink); color:var(--paper); padding:15px 19px; display:inline-flex; align-items:center; gap:37px; white-space:nowrap; font-size:14px; font-weight:700; transition:background-color .2s,transform .2s; }
.nav-cta:hover { background:#36433d; transform:translateY(-2px); }
.nav-cta span { font-size:19px; font-weight:400; }
.menu-button { display:none; }
.mobile-nav { display:none; }

.hero { background:var(--paper); overflow:hidden; }
.hero-meta { display:flex; align-items:center; gap:11px; padding-top:39px; color:#616963; font-family:var(--ui-mono); font-size:10px; letter-spacing:.11em; }
.meta-accent { width:8px; height:8px; background:var(--orange); flex:none; }
.hero-index { margin-left:auto; }
.hero-main { padding-top:clamp(72px,10.5vw,166px); padding-bottom:clamp(95px,10vw,156px); }
.hero h1 { margin:0; font-size:clamp(68px,8.1vw,138px); font-weight:700; line-height:.985; letter-spacing:-.077em; text-wrap:balance; }
.hero-second-line { display:block; }
.hero h1 .underlined { white-space:nowrap; }
.hero h1 .underlined { background:linear-gradient(currentColor,currentColor) no-repeat 0 92% / 100% .04em; padding-bottom:.02em; }
.hero-line { display:block; }
.hero h1 .orange-type { color:var(--orange); }
.hero-bottom { display:grid; grid-template-columns:1px minmax(0,665px) 1fr; column-gap:27px; align-items:start; margin-top:clamp(55px,7vw,100px); }
.hero-vertical-line { height:100%; min-height:135px; background:var(--ink); opacity:.5; }
.hero-intro p { max-width:600px; font-size:clamp(19px,1.7vw,25px); line-height:1.45; letter-spacing:-.02em; margin:0; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:25px; margin-top:29px; }
.btn { min-height:60px; display:inline-flex; align-items:center; justify-content:space-between; gap:36px; padding:0 22px; font-weight:700; font-size:15px; transition:transform .22s,background-color .22s; }
.btn:hover { transform:translateY(-3px); }
.btn-ink { background:var(--ink); color:var(--paper); }
.btn-ink:hover { background:#38433f; }
.btn span { font-size:19px; font-weight:400; }
.quiet-link { font-size:14px; font-weight:700; padding:13px 0; border-bottom:1px solid var(--ink); display:inline-flex; gap:30px; align-items:center; }
.quiet-link span { font-size:18px; font-weight:400; }
.hero-seal { width:clamp(92px,13vw,166px); justify-self:end; margin:2px 5% 0 0; color:#a4ada6; animation:seal-float 8s ease-in-out infinite; }
.hero-seal svg { width:100%; }
@keyframes seal-float { 0%,100%{transform:rotate(-4deg)}50%{transform:rotate(5deg)} }
.hero-rule { background:var(--orange); color:#171c19; padding-block:20px; }
.hero-rule .shell { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.hero-rule span { font-family:var(--ui-mono); font-size:11px; letter-spacing:.04em; }
.hero-rule span:nth-child(2) { text-align:center; }
.hero-rule span:nth-child(3) { text-align:right; }

/* The interactive demonstration: one composition, not scattered cards. */
.showpiece { background:var(--night); color:var(--paper); padding:clamp(85px,9vw,150px) 0 clamp(95px,10vw,155px); }
.showcase-heading { display:flex; justify-content:space-between; align-items:end; gap:45px; margin-bottom:54px; }
.eyebrow { display:inline-flex; align-items:center; gap:12px; font-family:var(--ui-mono); font-size:11px; line-height:1.4; letter-spacing:.11em; font-weight:400; }
.eyebrow-square { background:var(--orange); width:9px; height:9px; flex-shrink:0; }
.showcase-heading h2 { font-size:clamp(53px,6.5vw,104px); font-weight:600; letter-spacing:-.066em; line-height:1.02; margin:26px 0 0; }
.showcase-heading h2 span { color:var(--orange); }
.showcase-heading>p { max-width:320px; margin:0 0 6px; color:#c1c6bf; font-size:17px; line-height:1.55; }
.case-shell { border:1px solid #67706b; }
.case-topbar { display:flex; align-items:center; min-height:52px; padding:0 21px; border-bottom:1px solid #67706b; color:#bcc5bd; font-family:var(--ui-mono); font-size:10px; letter-spacing:.08em; gap:27px; }
.case-top-right { margin-left:auto; }
.case-dots { display:flex; gap:7px; }
.case-dots i { display:block; width:7px; height:7px; border:1px solid #b9c1b8; border-radius:50%; }
.case-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.case-website,.case-system { min-width:0; padding:clamp(22px,3vw,44px); }
.case-website { border-right:1px solid #67706b; }
.case-label { display:flex; align-items:center; justify-content:space-between; gap:15px; color:#c9d1c9; font-family:var(--ui-mono); font-size:10px; letter-spacing:.05em; margin-bottom:26px; }
.site-example { background:#f4f1e9; color:#273c31; overflow:hidden; }
.sample-nav { padding:14px 19px; height:58px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.sample-wordmark { font-weight:700; letter-spacing:-.055em; font-size:23px; white-space:nowrap; }
.sample-wordmark span { color:#9c512c; }
.sample-menu { font-family:var(--ui-mono); font-size:8px; white-space:nowrap; }
.sample-menu b { padding:8px 9px; background:#273c31; color:#fff; font-weight:400; }
.sample-canvas { position:relative; overflow:hidden; min-height:380px; background:#627c64; }
.sample-landscape { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sample-canvas:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(16,34,25,.59),rgba(16,34,25,0) 78%); pointer-events:none; }
.sample-caption { position:relative; z-index:1; color:#fff9eb; padding:60px 25px 34px; min-height:380px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.sample-caption>span:first-child { font-family:var(--ui-mono); font-size:10px; letter-spacing:.09em; }
.sample-caption h3 { font-size:clamp(35px,3.45vw,56px); line-height:1.02; letter-spacing:-.055em; font-weight:600; margin:16px 0 25px; }
.sample-book { font-size:12px; font-weight:700; background:#f4f1e9; color:#203729; padding:12px 15px; display:flex; gap:26px; }
.sample-footer { min-height:42px; display:flex; justify-content:space-between; align-items:center; gap:7px; padding:0 19px; font-family:var(--ui-mono); font-size:8px; letter-spacing:.04em; }
.case-system { background:#28312c; }
.system-content { display:flex; min-height:480px; flex-direction:column; }
.system-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.system-heading>div>span { font-family:var(--ui-mono); font-size:10px; letter-spacing:.08em; color:#a6b5ab; }
.system-heading h3 { font-size:clamp(29px,3vw,44px); font-weight:600; letter-spacing:-.055em; line-height:1.1; margin:12px 0 24px; }
.system-asterisk { font-size:43px; color:var(--orange); line-height:.65; }
.system-request { background:#404b44; display:flex; flex-direction:column; padding:17px 20px; gap:5px; margin-bottom:10px; }
.system-request-label { font-family:var(--ui-mono); font-size:9px; letter-spacing:.09em; color:#c3cec5; }
.system-request strong { font-size:21px; letter-spacing:-.03em; font-weight:600; }
.system-request strong span { color:#bdc8bf; }
.system-request-note { color:#c3cec5; font-size:12px; }
.process-list { border-top:1px solid #69766d; }
.process-line { padding:18px 5px; min-height:80px; border-bottom:1px solid #69766d; display:grid; grid-template-columns:34px minmax(0,1fr) 32px; align-items:center; gap:12px; transition:background-color .3s; }
.process-line.active { background:#3c4c40; }
.process-line.done .line-status { background:var(--orange); color:#1b2520; border-color:var(--orange); }
.line-count { align-self:start; padding-top:3px; font-family:var(--ui-mono); font-size:11px; color:#a5b5aa; }
.process-line strong,.process-line small { display:block; }
.process-line strong { font-weight:600; font-size:15px; }
.process-line small { color:#b2bdb3; font-size:12px; margin-top:6px; }
.line-status { display:grid; place-items:center; border:1px solid #748176; width:29px; height:29px; font-size:14px; transition:background-color .2s; }
.system-bottom { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:28px; }
.system-run-status { font-family:var(--ui-mono); font-size:10px; line-height:1.5; color:#cad4c9; max-width:230px; }
.run-button { border:0; background:var(--orange); color:#18201b; padding:14px 16px; min-height:50px; display:inline-flex; align-items:center; justify-content:space-between; gap:22px; font-size:13px; font-weight:700; cursor:pointer; white-space:nowrap; transition:background .2s,transform .2s; }
.run-button:hover:not(:disabled) { background:#ff7857; transform:translateY(-2px); }
.run-button:disabled { cursor:wait; opacity:.85; }
.run-button span { font-size:17px; }
.case-footnote { min-height:51px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #67706b; padding:12px 22px; color:#bec9c0; font-family:var(--ui-mono); font-size:9px; letter-spacing:.03em; }

/* Service roster: editorial rows instead of generic cards. */
.what { padding:clamp(90px,10vw,158px) 0; }
.section-intro { display:grid; grid-template-columns:1fr 2fr; gap:28px; margin-bottom:clamp(50px,7vw,105px); }
.section-intro>.eyebrow { align-self:start; padding-top:15px; }
.section-intro h2 { font-weight:600; font-size:clamp(55px,6.8vw,106px); line-height:1.01; letter-spacing:-.07em; margin:0; }
.section-intro h2 span { color:var(--orange); }
.services-list { border-top:1px solid var(--ink); }
.service { padding:37px 0; border-bottom:1px solid var(--hairline); display:grid; grid-template-columns:80px minmax(0,1fr) 200px 32px; align-items:start; gap:22px; }
.service-num { font-family:var(--ui-mono); color:var(--orange); font-size:12px; padding-top:10px; }
.service h3 { font-size:clamp(29px,3vw,46px); font-weight:600; letter-spacing:-.055em; line-height:1.12; margin:0 0 14px; }
.service p { max-width:640px; font-size:16px; line-height:1.65; color:var(--muted); margin:0; }
.service-meta { padding-top:13px; justify-self:end; font-family:var(--ui-mono); font-size:10px; letter-spacing:.04em; color:var(--muted); white-space:nowrap; }
.service-symbol { justify-self:end; padding-top:4px; font-size:25px; font-weight:400; transition:transform .25s; }
.service:hover .service-symbol { transform:translate(4px,-4px); color:var(--orange); }

.statement { padding:clamp(88px,10vw,154px) 0; background:var(--paper-deep); }
.statement-grid { display:grid; grid-template-columns:1fr 2fr; gap:28px; }
.statement .eyebrow { align-self:start; padding-top:12px; }
.statement h2 { font-size:clamp(45px,5.6vw,84px); font-weight:600; line-height:1.06; letter-spacing:-.066em; margin:0 0 42px; }
.statement h2 em { display:block; color:var(--orange); font-style:normal; }
.statement p { font-size:clamp(18px,1.65vw,25px); max-width:730px; line-height:1.55; margin:0; }

.approach { padding:clamp(90px,10vw,155px) 0; }
.approach-header { display:flex; gap:55px; align-items:end; justify-content:space-between; margin-bottom:65px; }
.approach h2 { font-weight:600; font-size:clamp(56px,6vw,92px); letter-spacing:-.065em; line-height:1.03; margin:27px 0 0; }
.approach-header>p { max-width:275px; font-size:17px; line-height:1.5; margin:0 0 5px; color:var(--muted); }
.approach-grid { border-top:1px solid var(--ink); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.approach-grid article { padding:29px 28px 7px 0; border-right:1px solid var(--hairline); }
.approach-grid article+article { padding-left:28px; }
.approach-grid article:last-child { border-right:0; padding-right:0; }
.approach-grid article>span { font-size:11px; font-family:var(--ui-mono); letter-spacing:.04em; color:var(--muted); }
.approach-icon { width:97px; height:97px; margin:41px 0 35px; }
.approach-icon svg { width:100%; height:100%; stroke:var(--orange); stroke-width:2.3; fill:none; stroke-linejoin:miter; }
.approach h3 { font-size:clamp(28px,2.8vw,42px); font-weight:600; letter-spacing:-.055em; margin:0 0 11px; }
.approach-grid p { font-size:16px; line-height:1.6; color:var(--muted); max-width:335px; margin:0; }

.closing { padding:clamp(90px,9vw,145px) 0 clamp(55px,7vw,105px); background:var(--orange); color:var(--ink); }
.closing .eyebrow-square { background:var(--ink); }
.closing h2 { font-size:clamp(64px,8.6vw,139px); font-weight:700; line-height:.98; letter-spacing:-.077em; margin:clamp(52px,8vw,115px) 0 clamp(51px,7vw,100px); }
.closing h2 em { font-style:normal; color:var(--paper); }
.footer { background:var(--ink); color:var(--paper); }
.footer-inner { display:grid; align-items:center; grid-template-columns:1fr 1fr auto auto auto; gap:32px; min-height:114px; }
.footer .brand-mark { width:27px; height:27px; }
.footer .brand-text { font-size:22px; }
.footer-inner p,.footer-inner>a:not(.brand),.footer-inner small { font:400 10px var(--ui-mono); letter-spacing:.035em; }
.footer-inner p { color:#acb7ae; }
.footer-inner>a:not(.brand) { color:var(--paper); white-space:nowrap; }
.footer-inner>a:not(.brand):hover { color:var(--orange); }
.footer-inner small { color:#acb7ae; white-space:nowrap; }

@media(min-width:1550px){.hero h1{font-size:clamp(115px,8.1vw,148px)}}
@media(max-width:1170px){
  .hero h1{font-size:clamp(65px,8.65vw,112px)}
  .case-website,.case-system{padding:22px}
  .sample-menu{font-size:7px}
  .sample-caption{padding-left:21px}
  .case-label{font-size:9px}
  .system-bottom{flex-direction:column;align-items:stretch}
  .run-button{width:100%}
  .service{grid-template-columns:54px minmax(0,1fr) 175px 20px;gap:15px}
  .footer-inner{gap:19px}
}
@media(max-width:850px){
  :root{--side:26px}
  .header-inner{height:75px}
  .brand-mark{width:34px;height:34px}
  .brand-text{font-size:25px}
  .desktop-nav,.nav-cta{display:none}
  .menu-button{display:flex; flex-direction:column;gap:7px;justify-content:center;align-items:center; margin-left:auto;width:44px;height:44px;cursor:pointer;border:1px solid var(--ink);background:transparent}
  .menu-button span{width:20px;height:2px;background:var(--ink);transition:transform .2s}
  .menu-button[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}
  .menu-button[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
  .mobile-nav:not([hidden]){display:flex;position:absolute;top:75px;left:0;right:0;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--ink);box-shadow:0 18px 28px rgba(0,0,0,.12);padding:4px var(--side) 20px}
  .mobile-nav a{font-size:22px;font-weight:600;letter-spacing:-.04em;padding:18px 0;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between}
  .mobile-nav a:last-child{border-bottom:0;color:var(--orange)}
  .hero-index{display:none}
  .hero-main{padding-top:105px;padding-bottom:95px}
  .hero h1{font-size:clamp(60px,9.4vw,90px)}
  .hero-seal{width:100px;justify-self:end;margin:0}
  .hero-bottom{grid-template-columns:1px minmax(0,1fr) auto;gap:21px}
  .case-columns{grid-template-columns:1fr}
  .case-website{border-right:0;border-bottom:1px solid #67706b}
  .case-website,.case-system{padding:28px}
  .sample-canvas,.sample-caption{min-height:390px}
  .sample-caption h3{font-size:62px}
  .system-content{min-height:0}
  .system-bottom{flex-direction:row;align-items:center}
  .run-button{width:auto}
  .section-intro,.statement-grid{grid-template-columns:1fr;gap:25px}
  .section-intro>.eyebrow,.statement .eyebrow{padding-top:0}
  .section-intro h2{font-size:clamp(56px,9vw,90px)}
  .statement h2{font-size:clamp(50px,8vw,78px)}
  .service{grid-template-columns:44px 1fr 24px;gap:15px}
  .service-meta{display:none}
  .approach-grid article{padding-right:16px}
  .approach-grid article+article{padding-left:16px}
  .approach-icon{margin-top:30px}
  .footer-inner{grid-template-columns:1fr 1fr;min-height:0;padding-block:30px;gap:22px}
  .footer-inner p{justify-self:end}
  .footer-inner small{justify-self:end}
}
@media(max-width:600px){
  :root{--side:20px}
  html{scroll-padding-top:75px}
  .header-inner{height:70px}
  .mobile-nav:not([hidden]){top:70px}
  .hero-meta{padding-top:27px;font-size:9px;letter-spacing:.075em}
  .hero-main{padding-top:67px;padding-bottom:68px}
  .hero h1{font-size:clamp(48px,10.9vw,65px);line-height:1.015;letter-spacing:-.068em}
  .hero h1 .underlined{white-space:normal}
  .hero-bottom{margin-top:52px;grid-template-columns:1px minmax(0,1fr);gap:17px}
  .hero-seal{display:none}
  .hero-intro p{font-size:18px;line-height:1.5}
  .hero-actions{flex-direction:column;align-items:stretch;gap:18px;margin-top:25px}
  .hero-actions .btn{min-height:57px;width:100%}
  .quiet-link{align-self:flex-start}
  .hero-vertical-line{min-height:185px}
  .hero-rule{padding:15px 0}
  .hero-rule .shell{display:flex;justify-content:space-between;gap:12px}
  .hero-rule span{font-size:8px;line-height:1.4;max-width:110px}
  .hero-rule span:nth-child(2){text-align:center}
  .showpiece{padding:77px 0 83px}
  .showcase-heading{display:block;margin-bottom:34px}
  .eyebrow{font-size:9px;letter-spacing:.075em}
  .showcase-heading h2{font-size:clamp(45px,10.4vw,64px);margin-top:24px;line-height:1.02}
  .showcase-heading>p{max-width:520px;margin:24px 0 0;font-size:15px}
  .case-topbar{min-height:42px;padding-inline:13px;gap:13px;font-size:8px}
  .case-top-right{display:none}
  .case-dots{gap:5px}
  .case-dots i{width:6px;height:6px}
  .case-website,.case-system{padding:13px}
  .case-label{font-size:8px;margin:9px 0 15px;gap:8px}
  .sample-nav{height:44px;padding:0 11px}
  .sample-wordmark{font-size:18px}
  .sample-menu{font-size:6px}
  .sample-menu b{padding:6px}
  .sample-canvas,.sample-caption{min-height:260px}
  .sample-caption{padding:36px 15px 24px}
  .sample-caption>span:first-child{font-size:8px}
  .sample-caption h3{font-size:clamp(37px,9.5vw,55px);margin:13px 0 20px}
  .sample-book{font-size:10px;padding:10px 12px}
  .sample-footer{min-height:34px;padding:0 11px;font-size:7px}
  .case-system{padding-bottom:18px}
  .system-heading h3{font-size:30px;margin:10px 0 21px}
  .system-heading>div>span{font-size:9px}
  .system-asterisk{font-size:33px}
  .system-request{padding:14px 13px}
  .system-request strong{font-size:19px}
  .process-line{grid-template-columns:23px minmax(0,1fr) 27px;gap:8px;padding:15px 1px;min-height:69px}
  .process-line strong{font-size:13px}
  .process-line small{font-size:11px}
  .line-count{font-size:9px}
  .line-status{width:25px;height:25px}
  .system-bottom{flex-direction:column;align-items:stretch;gap:12px;padding-top:23px}
  .run-button{width:100%}
  .case-footnote{padding:12px 13px;min-height:0;line-height:1.5;font-size:8px}
  .case-footnote span:last-child{display:none}
  .what,.approach{padding:80px 0}
  .section-intro{margin-bottom:43px}
  .section-intro h2{font-size:clamp(45px,10.4vw,64px)}
  .service{grid-template-columns:27px 1fr 16px;gap:8px;padding:25px 0}
  .service-num{padding-top:5px;font-size:10px}
  .service h3{font-size:clamp(25px,6.4vw,33px);margin-bottom:9px}
  .service p{font-size:14px;line-height:1.6}
  .service-symbol{font-size:20px}
  .statement{padding:80px 0}
  .statement h2{font-size:clamp(43px,9.3vw,58px);margin-bottom:26px}
  .statement p{font-size:17px}
  .approach-header{display:block;margin-bottom:42px}
  .approach h2{font-size:clamp(46px,10vw,64px)}
  .approach-header>p{font-size:15px;max-width:480px;margin-top:24px}
  .approach-grid{display:block}
  .approach-grid article,.approach-grid article+article{padding:21px 0 27px;border-right:0;border-bottom:1px solid var(--hairline)}
  .approach-grid article:last-child{border-bottom:0}
  .approach-icon{width:59px;height:59px;margin:24px 0 19px}
  .approach h3{font-size:29px;margin-bottom:8px}
  .approach-grid p{font-size:14px}
  .closing{padding:80px 0 52px}
  .closing h2{font-size:clamp(48px,10.7vw,66px);margin:69px 0 52px;line-height:1.03}
  .footer-inner{gap:20px}
  .footer-inner p{font-size:8px}
  .footer-inner>a:not(.brand),.footer-inner small{font-size:9px}
}
@media(max-width:370px){
  :root{--side:16px}
  .hero h1{font-size:clamp(42px,11.4vw,48px)}
  .hero-intro p{font-size:16px}
  .brand-text{font-size:22px}
  .brand-mark{width:31px;height:31px}
  .hero-rule span{font-size:7px}
  .sample-menu{font-size:5px}
  .sample-nav{padding-inline:9px}
  .sample-caption h3{font-size:37px}
  .case-label{font-size:7px}
  .showcase-heading h2{font-size:43px}
  .closing h2{font-size:44px}
  .footer .brand-text{font-size:20px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}
}

/* LAUNCH EDITION: contact form and considered polish */
.contact-grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1fr); gap:clamp(36px,7vw,125px); align-items:start; border-top:1px solid rgba(30,37,34,.53); padding-top:32px; }
.contact-context>p:first-child { margin:0; font-size:clamp(18px,1.8vw,25px); line-height:1.45; letter-spacing:-.025em; max-width:570px; }
.contact-aside { max-width:405px; font-size:14px; line-height:1.6; margin:24px 0 0; color:var(--ink); }
.contact-email { display:inline-flex; gap:20px; align-items:center; border-bottom:1px solid var(--ink); padding-bottom:7px; margin-top:32px; font-size:clamp(16px,1.6vw,20px); font-weight:700; overflow-wrap:anywhere; }
.contact-email span { font-weight:400; }
.enquiry-form { display:grid; gap:20px; min-width:0; }
.form-pair { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.enquiry-form label { display:grid; gap:8px; font:500 13px var(--ui-sans); color:#292a25; }
.enquiry-form input,.enquiry-form select,.enquiry-form textarea { width:100%; min-width:0; border:1px solid #795345; border-radius:0; background:rgba(255,247,237,.9); color:var(--ink); padding:15px 15px; font:500 16px var(--ui-sans); -webkit-appearance:none; appearance:none; }
.enquiry-form input::placeholder,.enquiry-form textarea::placeholder { color:#6e7770; opacity:1; }
.enquiry-form textarea { resize:vertical; min-height:128px; }
.enquiry-form select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m1 1 7 7 7-7' stroke='%231e2522' fill='none' stroke-width='2'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:42px; cursor:pointer; }
.enquiry-form :is(input,select,textarea):focus-visible { outline:3px solid var(--ink); outline-offset:2px; }
.enquiry-form .form-honeypot { position:absolute; left:-10000px; width:1px; height:1px; opacity:0; }
.form-privacy { font-size:12px; line-height:1.6; margin:-6px 0 0; max-width:520px; }
.form-privacy a { text-decoration:underline; text-underline-offset:3px; }
.contact-submit { border:0; background:var(--ink); color:var(--paper); min-height:62px; padding:0 21px; display:flex; align-items:center; justify-content:space-between; width:100%; cursor:pointer; font:700 16px var(--ui-sans); transition:background-color .2s,transform .2s; }
.contact-submit:hover { background:#354139; transform:translateY(-2px); }
.contact-submit:disabled { opacity:.65; cursor:wait; transform:none; }
.contact-submit span { font-size:23px; font-weight:400; }
.form-status { min-height:20px; margin:-9px 0 0; font-size:13px; line-height:1.5; }
.form-status.error { font-weight:700; }
@media(max-width:950px) { .contact-grid { gap:40px; grid-template-columns:1fr; } .contact-context { display:grid; gap:0; } .contact-email { justify-self:start; } }
@media(max-width:850px) { .footer-inner { grid-template-columns:1fr auto; } }
@media(max-width:600px) {
  .closing h2 { margin-bottom:45px; }
  .contact-grid { padding-top:26px; gap:37px; }
  .contact-aside { margin-top:14px; }
  .contact-email { margin-top:22px; }
  .form-pair { grid-template-columns:1fr; gap:19px; }
  .enquiry-form { gap:19px; }
  .enquiry-form label { font-size:12px; }
  .enquiry-form input,.enquiry-form select,.enquiry-form textarea { padding:14px; font-size:16px; }
  .footer-inner { grid-template-columns:1fr auto; column-gap:13px; row-gap:16px; padding-block:34px 28px; }
  .footer-inner .footer-brand,.footer-inner p { grid-column:1 / -1; justify-self:start; }
  .footer-inner p { margin:-6px 0 6px; }
  .footer-inner>a:not(.brand)[href="#top"] { justify-self:end; }
  .footer-inner small { grid-column:1 / -1; justify-self:start; padding-top:16px; border-top:1px solid var(--night-hair); width:100%; }
}
/* POLISH: typographic rhythm, clickable services, form feedback */
:is(.hero h1,.showcase-heading h2,.section-intro h2,.statement h2,.approach h2,.closing h2) { word-spacing:.07em; text-wrap:balance; }
:is(.service h3,.approach h3,.sample-caption h3,.system-heading h3) { word-spacing:.05em; }
:is(.statement p,.hero-intro p,.contact-context>p:first-child,.service p,.approach-grid p) { text-wrap:pretty; }
.service { position:relative; }
.service-link:after { content:""; position:absolute; inset:0; }
.service-link:focus-visible { outline:0; }
.service:has(.service-link:focus-visible) { outline:3px solid var(--orange); outline-offset:4px; }
.service h3 { transition:color .2s; }
.service:hover h3 { color:var(--orange); }
.enquiry-form :is(input,select,textarea):user-invalid { border-color:var(--ink); box-shadow:inset 4px 0 0 var(--ink); }
.contact-email { transition:gap .2s; }
.contact-email:hover { gap:28px; }
.quiet-link span { transition:transform .2s; }
.quiet-link:hover span { transform:translateY(3px); }
@media(max-width:850px) { .header { -webkit-backdrop-filter:none; backdrop-filter:none; background:var(--paper); } }

/* WOW LAYER: the structure underneath. Everything here is progressive —
   without JS (or with reduced motion) the page renders in its final state. */

/* Scroll progress drawn along the header's bottom rule. */
.scroll-progress { position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--orange); transform:scaleX(var(--progress,0)); transform-origin:left; pointer-events:none; }

/* Hero blueprint grid, revealed around the pointer and snapped to intersections. */
.hero { position:relative; isolation:isolate; }
.hero-grid { --mx:82%; --my:24%; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:linear-gradient(to right,rgba(30,37,34,.11) 1px,transparent 1px),linear-gradient(to bottom,rgba(30,37,34,.11) 1px,transparent 1px); background-size:64px 64px; background-position:-1px -1px; -webkit-mask-image:radial-gradient(circle at var(--mx) var(--my),#000 0,rgba(0,0,0,.35) 190px,transparent 420px); mask-image:radial-gradient(circle at var(--mx) var(--my),#000 0,rgba(0,0,0,.35) 190px,transparent 420px); }
.hero-coords { position:absolute; left:0; top:0; z-index:-1; pointer-events:none; opacity:0; transition:opacity .3s, transform .22s var(--ease); }
.hero-coords:before,.hero-coords:after { content:""; position:absolute; background:var(--orange); }
.hero-coords:before { left:-9px; top:0; width:19px; height:1px; }
.hero-coords:after { left:0; top:-9px; width:1px; height:19px; }
.hero-coords span { position:absolute; left:10px; top:8px; font:400 9px var(--ui-mono); letter-spacing:.08em; color:var(--orange); white-space:nowrap; }
.hero.is-tracking .hero-coords { opacity:1; }
.hero-clock { color:var(--orange); }
.hero-clock:not(:empty):before { content:" — "; color:#616963; }

/* Hero entrance: lines rise, the underline draws, the seal is traced. */
@keyframes rise { from { opacity:0; transform:translateY(.45em); } to { opacity:1; transform:none; } }
@keyframes rise-sm { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@keyframes draw { to { stroke-dashoffset:0; } }
@keyframes underline { from { background-size:0% .04em; } to { background-size:100% .04em; } }
@keyframes band { from { clip-path:inset(0 100% 0 0); } to { clip-path:inset(0 0 0 0); } }
.js .hero-meta { animation:rise-sm .8s var(--ease) both; }
.js .hero-line { animation:rise 1.1s var(--ease) both; animation-delay:.12s; }
.js .hero-second-line { animation-delay:.26s; }
.js .hero h1 .underlined { animation:underline 1s var(--ease) .85s both; }
.js .hero-vertical-line { transform-origin:top; animation:grow-y 1s var(--ease) .55s both; }
@keyframes grow-y { from { transform:scaleY(0); } }
.js .hero-intro { animation:rise-sm 1s var(--ease) .6s both; }
.js .hero-seal svg * { stroke-dasharray:1; stroke-dashoffset:1; animation:draw 1.8s var(--ease) .7s forwards; }
.js .hero-seal svg path:last-child { animation-delay:1.3s; }
.js .hero-rule { animation:band 1.2s var(--ease) .35s both; }

/* Scroll reveals and self-drawing rules. */
.js [data-reveal] { opacity:0; transform:translateY(34px); transition:opacity 1s var(--ease),transform 1s var(--ease); transition-delay:calc(var(--i,0) * 110ms); }
.js [data-reveal].is-in { opacity:1; transform:none; }
.js [data-rule] { position:relative; border-top-color:transparent; }
.js [data-rule]:before { content:""; position:absolute; left:0; right:0; top:-1px; height:1px; background:var(--ink); transform:scaleX(0); transform-origin:left; transition:transform 1.4s var(--ease); }
.js [data-rule].is-in:before { transform:none; }
.js .approach-icon svg * { stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 1.6s var(--ease); transition-delay:calc(var(--i,0) * 110ms + .35s); }
.js .is-in .approach-icon svg * { stroke-dashoffset:0; }

/* Services: a quiet fill sweeps the row on hover. */
.service { isolation:isolate; }
.service:before { content:""; position:absolute; inset:0 calc(var(--side) * -.5); z-index:-1; background:var(--paper-deep); transform:scaleY(0); transform-origin:bottom; transition:transform .45s var(--ease); }
.service:hover:before { transform:none; }
.service-num { transition:transform .35s var(--ease); }
.service:hover .service-num { transform:translateX(6px); }

/* Statement: words light up as it scrolls into view. */
.statement .word { transition:opacity .35s ease, color .35s ease; }
.statement .word.is-dim { opacity:.16; }

/* Showcase: depth on the concept site, a live link to the system. */
.sample-landscape .layer { will-change:transform; }
.sample-book { transition:background-color .25s,color .25s,transform .25s; }
.sample-book.is-pressed { background:var(--orange); color:#1b2520; transform:scale(.95); }
.system-request { position:relative; transition:box-shadow .4s; }
.system-request.is-new { box-shadow:inset 4px 0 0 var(--orange); animation:request-in .6s var(--ease); }
@keyframes request-in { from { opacity:.3; transform:translateX(-10px); } }
.system-request-time { position:absolute; right:20px; top:17px; font:400 9px var(--ui-mono); letter-spacing:.09em; color:var(--orange); }
.process-list { position:relative; }
.process-progress { position:absolute; left:0; right:0; top:-1px; height:2px; background:var(--orange); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.process-line.active { box-shadow:inset 3px 0 0 var(--orange); }
.process-line.done .line-status { animation:tick .45s var(--ease); }
@keyframes tick { 0% { transform:scale(.4); } 60% { transform:scale(1.15); } 100% { transform:none; } }

/* Footer signature: the wordmark at full width. */
.footer-giant { overflow:hidden; padding-top:clamp(40px,6vw,90px); border-bottom:1px solid var(--night-hair); }
.footer-giant>span { display:block; font-size:clamp(60px,17.6vw,272px); font-weight:800; letter-spacing:-.06em; line-height:.78; padding-bottom:.06em; color:var(--paper); white-space:nowrap; }
.footer-giant>span>span { color:var(--orange); }

@media(max-width:600px) { .system-request-time { right:13px; top:14px; } }
@media(prefers-reduced-motion:reduce) {
  .js [data-reveal] { transform:none; }
  .statement .word.is-dim { opacity:1; }
}
