:root {
  --ink: #102a2a;
  --ink-2: #173838;
  --paper: #f3efe5;
  --paper-2: #e9e2d3;
  --white: #fffdf8;
  --accent: #d96f4b;
  --accent-2: #e7a05d;
  --mint: #b9d9c5;
  --line: rgba(16, 42, 42, 0.18);
  --line-light: rgba(255,255,255,.18);
  --font-sans: Inter, "Segoe UI", Arial, sans-serif;
  --font-serif: Georgia, "Times New Roman", serif;
  --container: min(1280px, calc(100vw - 64px));
  --ease: cubic-bezier(.2,.75,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open, body.modal-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
img, svg { display: block; max-width: 100%; }
::selection { background: var(--accent); color: var(--white); }

.skip-link {
  position: fixed; top: -100px; left: 16px; z-index: 9999;
  background: var(--white); color: var(--ink); padding: 12px 16px;
}
.skip-link:focus { top: 16px; }
.page-noise {
  position: fixed; inset: 0; pointer-events: none; z-index: 200;
  opacity: .035; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}
.cursor-glow {
  position: fixed; width: 420px; height: 420px; border-radius: 50%; z-index: 0;
  pointer-events: none; transform: translate(-50%,-50%); opacity: 0;
  background: radial-gradient(circle, rgba(231,160,93,.1), transparent 65%);
  transition: opacity .3s ease;
}
body:hover .cursor-glow { opacity: 1; }
.container { width: var(--container); margin-inline: auto; position: relative; z-index: 2; }
.section { padding: 140px 0; position: relative; }
.section-dark { background: var(--ink); color: var(--white); }
.section-light { background: var(--paper); }
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px; text-transform: uppercase;
  letter-spacing: .16em; font-size: 11px; font-weight: 600;
}
.eyebrow::before { content: ""; width: 22px; height: 1px; background: currentColor; }
.section-intro { margin-bottom: 64px; }
.split-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 10%; align-items: end; }
.split-heading h2, .about-copy h2 {
  font-family: var(--font-serif); font-weight: 500; font-size: clamp(44px, 6vw, 82px);
  line-height: .98; letter-spacing: -.045em; margin: 22px 0 0;
}
.split-heading h2 em, .about-copy h2 em { color: var(--accent); font-weight: 500; }
.split-heading p { margin: 0; font-size: 17px; line-height: 1.75; max-width: 530px; }

.site-header {
  height: 86px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 0 32px; position: fixed; inset: 0 0 auto; z-index: 1000;
  color: var(--white); border-bottom: 1px solid transparent; transition: .35s ease;
}
.site-header.scrolled {
  height: 72px; background: rgba(243,239,229,.92); color: var(--ink);
  border-bottom-color: var(--line); backdrop-filter: blur(18px);
}
.brand { display: inline-flex; align-items: center; gap: 12px; justify-self: start; }
.brand-mark { width: 38px; height: 38px; border: 1px solid currentColor; display: grid; place-items: center; }
.brand-mark svg { width: 27px; fill: currentColor; }
.brand-copy { display: flex; flex-direction: column; }
.brand-copy strong { font-family: var(--font-serif); font-weight: 500; font-size: 20px; line-height: 1; }
.brand-copy strong i { color: var(--accent); font-style: italic; }
.brand-copy small { font-size: 8px; letter-spacing: .16em; text-transform: uppercase; margin-top: 5px; }
.desktop-nav { display: flex; gap: 32px; font-size: 13px; }
.desktop-nav a { position: relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:currentColor; transition:.3s var(--ease); }
.desktop-nav a:hover::after { right:0; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.text-button { border: 0; background: transparent; font-size: 12px; cursor: pointer; padding: 8px 0; }
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 16px;
  padding: 16px 22px; min-height: 54px; border: 1px solid transparent;
  background: var(--accent); color: var(--white); font-weight: 600; font-size: 13px;
  cursor: pointer; transition: transform .25s var(--ease), background .25s ease, color .25s ease, border-color .25s ease;
}
.button:hover { transform: translateY(-2px); }
.button-small { padding: 12px 16px; min-height: 42px; background: var(--accent); }
.button-light { background: var(--white); color: var(--ink); }
.button-light:hover { background: var(--accent-2); }
.button-dark { background: var(--ink); color: var(--white); }
.button-dark:hover { background: var(--accent); }
.button-ghost { background: transparent; border-color: rgba(255,255,255,.35); }
.button-ghost:hover { border-color: var(--white); }
.button-outline { background: transparent; color: var(--ink); border-color: var(--ink); }
.button-outline:hover { background: var(--ink); color: var(--white); }
.menu-button { display: none; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; padding: 12px; }
.menu-button span { display:block; height:1px; background:currentColor; margin:7px 0; transition:.3s; }
.mobile-panel { display: none; }

.hero { min-height: 850px; height: 100svh; overflow: hidden; display: flex; align-items: center; }
.hero-grid {
  position: absolute; inset: 0; opacity: .32;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 8.33vw 8.33vw;
  mask-image: linear-gradient(to bottom, black, transparent 90%);
}
.hero::after { content:""; position:absolute; inset:auto 0 0; height:22%; background:linear-gradient(transparent,rgba(0,0,0,.15)); }
.orb { position:absolute; border-radius:50%; filter:blur(4px); }
.orb-one { width: 520px; height: 520px; right: -120px; top: 18%; border: 1px solid rgba(185,217,197,.25); animation: orbitFloat 10s ease-in-out infinite; }
.orb-one::before, .orb-one::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.1); }
.orb-one::before { inset:70px; } .orb-one::after { inset:145px; background:radial-gradient(circle, rgba(217,111,75,.25), transparent 70%); }
.orb-two { width:220px; height:220px; right:24%; bottom:-70px; background:rgba(217,111,75,.18); filter:blur(50px); }
@keyframes orbitFloat { 50% { transform:translate(-28px, 18px) rotate(7deg); } }
.hero-content { padding-top: 70px; }
.hero-kicker { display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:.19em; text-transform:uppercase; color:rgba(255,255,255,.68); }
.eyebrow-line { width:34px; height:1px; background:var(--accent-2); }
.hero-title { font-family:var(--font-serif); font-size:clamp(76px, 10.4vw, 164px); line-height:.82; letter-spacing:-.06em; font-weight:500; margin:45px 0 32px; max-width:1100px; }
.word-rotator { display:inline-grid; color:var(--accent-2); font-style:italic; min-width:5.2em; }
.word-rotator span { grid-area:1/1; transition:opacity .45s, transform .45s; }
.word-rotator span.out { opacity:0; transform:translateY(-25px); }
.word-rotator span.in { animation:wordIn .5s var(--ease); }
@keyframes wordIn { from { opacity:0; transform:translateY(25px); } }
.hero-lead { max-width:690px; margin:0 0 34px; color:rgba(255,255,255,.72); font-size:18px; line-height:1.65; }
.hero-actions { display:flex; gap:12px; }
.hero-bottom { display:flex; align-items:end; justify-content:space-between; margin-top:70px; border-top:1px solid var(--line-light); padding-top:24px; }
.hero-note { font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6); display:flex; align-items:center; gap:10px; }
.pulse-dot { width:7px; height:7px; border-radius:50%; background:var(--mint); box-shadow:0 0 0 0 rgba(185,217,197,.6); animation:pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow:0 0 0 10px rgba(185,217,197,0); } }
.scroll-cue { display:flex; align-items:center; gap:16px; font-size:11px; text-transform:uppercase; letter-spacing:.16em; }
.scroll-cue i { width:44px; height:44px; border:1px solid var(--line-light); border-radius:50%; position:relative; }
.scroll-cue i::after { content:"↓"; position:absolute; inset:0; display:grid; place-items:center; animation:bob 1.7s ease infinite; }
@keyframes bob { 50% { transform:translateY(3px); } }
.hero-side-label { position:absolute; right:18px; top:50%; writing-mode:vertical-rl; transform:translateY(-50%); font-size:8px; letter-spacing:.24em; color:rgba(255,255,255,.35); }

.trust-strip { background:var(--accent); color:var(--white); padding:15px 0; overflow:hidden; }
.marquee-track { display:flex; width:max-content; align-items:center; gap:28px; animation:marquee 32s linear infinite; }
.marquee span { font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.marquee i { font-style:normal; font-size:7px; opacity:.7; }
@keyframes marquee { to { transform:translateX(-50%); } }

.service-filter { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:30px; }
.service-filter button { border:1px solid var(--line); background:transparent; padding:10px 15px; cursor:pointer; font-size:12px; transition:.25s; }
.service-filter button.active, .service-filter button:hover { background:var(--ink); color:var(--white); }
.flip-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; perspective:1600px; }
.flip-card { min-height:450px; perspective:1200px; transition:opacity .3s, transform .3s; }
.flip-card.hidden { display:none; }
.flip-card-inner { position:relative; width:100%; height:100%; min-height:450px; transition:transform .75s var(--ease); transform-style:preserve-3d; }
.flip-card:hover .flip-card-inner, .flip-card.is-flipped .flip-card-inner { transform:rotateY(180deg); }
.flip-card-face { position:absolute; inset:0; backface-visibility:hidden; border:1px solid var(--line); padding:30px; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.flip-card-front { background:var(--white); }
.flip-card-front::after { content:""; position:absolute; width:220px; height:220px; border-radius:50%; border:1px solid var(--line); right:-100px; top:-100px; transition:.6s var(--ease); }
.flip-card:hover .flip-card-front::after { transform:scale(1.2); border-color:rgba(217,111,75,.45); }
.flip-card-back { background:var(--ink); color:var(--white); transform:rotateY(180deg); }
.feature-card { background:var(--ink); color:var(--white); }
.feature-card::after { border-color:rgba(255,255,255,.15); }
.feature-card-back { background:var(--accent); }
.service-number { align-self:flex-end; font-family:var(--font-serif); font-size:14px; color:var(--accent); }
.feature-card .service-number { color:var(--accent-2); }
.service-icon { width:76px; height:76px; border:1px solid currentColor; display:grid; place-items:center; margin:auto 0; opacity:.88; }
.service-icon svg { width:45px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.service-tag { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.15em; margin-bottom:12px; opacity:.65; }
.flip-card h3 { font-family:var(--font-serif); font-weight:500; font-size:30px; line-height:1.1; margin:0; letter-spacing:-.02em; }
.flip-hint { border-top:1px solid currentColor; padding-top:16px; margin-top:24px; display:flex; justify-content:space-between; font-size:10px; text-transform:uppercase; letter-spacing:.1em; opacity:.65; }
.flip-card-back { justify-content:flex-start; }
.flip-card-back h3 { font-size:27px; margin-bottom:25px; }
.flip-card-back ul { list-style:none; padding:0; margin:0; }
.flip-card-back li { padding:11px 0 11px 18px; border-bottom:1px solid rgba(255,255,255,.14); position:relative; font-size:13px; line-height:1.4; }
.flip-card-back li::before { content:"—"; position:absolute; left:0; color:var(--accent-2); }
.feature-card-back li::before { color:var(--white); }
.flip-card-back a { margin-top:auto; display:flex; justify-content:space-between; border-top:1px solid rgba(255,255,255,.3); padding-top:16px; font-weight:600; font-size:12px; }

.statement-section { padding:150px 0; overflow:hidden; position:relative; }
.statement-lines { position:absolute; inset:0; opacity:.12; background:repeating-linear-gradient(120deg,transparent 0 80px,rgba(255,255,255,.1) 81px,transparent 82px 160px); transform:scale(1.2); }
.statement-grid { display:grid; grid-template-columns:.35fr 1.65fr; gap:70px; }
.statement-grid blockquote { grid-column:2; font-family:var(--font-serif); font-size:clamp(42px,5.5vw,78px); line-height:1.06; letter-spacing:-.04em; margin:0; }
.statement-grid blockquote em { color:var(--accent-2); }
.statement-aside { grid-column:2; display:grid; grid-template-columns:1fr auto; align-items:end; gap:50px; border-top:1px solid var(--line-light); padding-top:28px; margin-top:20px; }
.statement-aside p { color:rgba(255,255,255,.65); line-height:1.7; max-width:650px; margin:0; }
.line-link { display:inline-flex; align-items:center; gap:30px; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:13px; font-weight:600; white-space:nowrap; }
.line-link.light { color:var(--white); }

.approach-section { background:var(--white); }
.approach-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:8%; align-items:center; }
.approach-visual { min-height:570px; display:grid; place-items:center; background:var(--ink); color:var(--white); overflow:hidden; position:relative; }
.radar-shell { width:420px; height:420px; border-radius:50%; position:relative; border:1px solid rgba(255,255,255,.22); display:grid; place-items:center; }
.radar-ring { position:absolute; border:1px solid rgba(255,255,255,.14); border-radius:50%; }
.ring-1 { inset:18%; } .ring-2 { inset:34%; } .ring-3 { inset:44%; }
.radar-shell::before, .radar-shell::after { content:""; position:absolute; background:rgba(255,255,255,.12); }
.radar-shell::before { width:1px; height:120%; } .radar-shell::after { height:1px; width:120%; }
.radar-sweep { position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 0deg, transparent 0 300deg, rgba(231,160,93,.28)); animation:sweep 6s linear infinite; }
@keyframes sweep { to { transform:rotate(360deg); } }
.radar-center { width:72px; height:72px; border-radius:50%; background:var(--accent); display:grid; place-items:center; z-index:2; font-family:var(--font-serif); }
.radar-label { position:absolute; font-size:10px; letter-spacing:.12em; text-transform:uppercase; background:var(--ink); padding:4px 8px; z-index:2; }
.label-1 { top:9%; left:48%; } .label-2 { top:46%; right:-4%; } .label-3 { bottom:9%; left:42%; } .label-4 { top:46%; left:-2%; }
.approach-steps { border-top:1px solid var(--line); }
.approach-step { display:grid; grid-template-columns:50px 1fr 40px; gap:20px; align-items:start; border-bottom:1px solid var(--line); padding:28px 0; cursor:pointer; transition:.3s; }
.approach-step > span { font-family:var(--font-serif); color:var(--accent); }
.approach-step h3 { margin:0; font-family:var(--font-serif); font-size:32px; font-weight:500; }
.approach-step p { max-height:0; opacity:0; overflow:hidden; margin:0; line-height:1.6; transition:.4s var(--ease); }
.approach-step button { width:32px; height:32px; border:1px solid var(--line); background:transparent; border-radius:50%; cursor:pointer; font-size:18px; transition:.3s; }
.approach-step.active { padding:38px 0; }
.approach-step.active p { max-height:100px; opacity:.75; margin-top:12px; }
.approach-step.active button { transform:rotate(45deg); background:var(--ink); color:var(--white); }

.diagnostic-banner { padding:55px 0; background:var(--accent-2); }
.diagnostic-inner { display:flex; align-items:center; justify-content:space-between; gap:50px; }
.diagnostic-inner h2 { font-family:var(--font-serif); font-size:42px; line-height:1.05; font-weight:500; margin:18px 0 12px; max-width:720px; }
.diagnostic-inner p { max-width:750px; line-height:1.6; margin:0; }

.industries-section { background:var(--paper); }
.industry-list { border-top:1px solid var(--line); }
.industry-row { display:grid; grid-template-columns:70px .75fr 1fr 40px; align-items:center; gap:30px; padding:30px 0; border-bottom:1px solid var(--line); transition:.3s var(--ease); position:relative; }
.industry-row::before { content:""; position:absolute; inset:0; background:var(--ink); transform:scaleY(0); transform-origin:bottom; transition:.35s var(--ease); z-index:-1; }
.industry-row:hover { color:var(--white); padding-inline:25px; }
.industry-row:hover::before { transform:scaleY(1); }
.industry-index { color:var(--accent); font-family:var(--font-serif); }
.industry-row h3 { font-family:var(--font-serif); font-size:30px; font-weight:500; margin:0; }
.industry-row p { margin:0; opacity:.72; line-height:1.5; }
.industry-arrow { font-size:22px; transition:.3s; }
.industry-row:hover .industry-arrow { transform:rotate(45deg); }

.insights-section { background:var(--ink-2); }
.insight-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.insight-card { border-top:1px solid var(--line-light); padding-top:18px; }
.insight-art { height:260px; position:relative; overflow:hidden; display:grid; place-items:center; margin-bottom:22px; }
.insight-art span { position:absolute; left:20px; top:18px; font-family:var(--font-serif); z-index:2; }
.insight-art i { display:block; width:150px; height:150px; border:1px solid currentColor; position:relative; transition:.6s var(--ease); }
.insight-art i::before, .insight-art i::after { content:""; position:absolute; border:1px solid currentColor; }
.insight-art i::before { inset:20px; transform:rotate(20deg); } .insight-art i::after { inset:40px; border-radius:50%; }
.insight-card:hover .insight-art i { transform:rotate(30deg) scale(1.08); }
.art-one { background:var(--accent); } .art-two { background:var(--mint); color:var(--ink); } .art-three { background:var(--accent-2); color:var(--ink); }
.insight-meta { display:flex; justify-content:space-between; font-size:9px; letter-spacing:.13em; text-transform:uppercase; opacity:.55; }
.insight-card h3 { font-family:var(--font-serif); font-size:29px; line-height:1.18; font-weight:500; margin:20px 0 28px; }
.insight-card > a { display:flex; justify-content:space-between; padding-top:15px; border-top:1px solid var(--line-light); font-size:12px; }

.about-section { background:var(--white); }
.about-grid { display:grid; grid-template-columns:1fr .9fr; gap:9%; align-items:center; }
.about-copy h2 { margin-bottom:38px; }
.about-copy .large-copy { font-family:var(--font-serif); font-size:27px; line-height:1.4; }
.about-copy p:not(.large-copy) { line-height:1.75; opacity:.75; margin-bottom:32px; }
.architecture-card { aspect-ratio:1; background:var(--ink); color:var(--white); position:relative; padding:24px; overflow:hidden; }
.architecture-top { display:flex; justify-content:space-between; font-size:9px; letter-spacing:.14em; }
.architecture-axis { position:absolute; background:rgba(255,255,255,.14); }
.axis-x { left:10%; right:10%; height:1px; top:50%; } .axis-y { top:10%; bottom:10%; width:1px; left:50%; }
.architecture-node { position:absolute; width:120px; height:82px; border:1px solid rgba(255,255,255,.25); display:flex; flex-direction:column; justify-content:space-between; padding:13px; animation:nodeFloat 5s ease-in-out infinite; }
.architecture-node span { font-size:9px; color:var(--accent-2); }
.architecture-node strong { font-family:var(--font-serif); font-weight:500; }
.node-a { left:7%; top:20%; } .node-b { right:7%; top:20%; animation-delay:-1.2s; } .node-c { left:7%; bottom:14%; animation-delay:-2.4s; } .node-d { right:7%; bottom:14%; animation-delay:-3.6s; }
@keyframes nodeFloat { 50% { transform:translateY(-8px); } }
.architecture-core { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:90px; height:90px; border-radius:50%; background:var(--accent); display:grid; place-items:center; font-family:var(--font-serif); z-index:2; box-shadow:0 0 0 15px rgba(217,111,75,.12),0 0 0 30px rgba(217,111,75,.05); }

.contact-section { background:var(--accent); color:var(--white); padding:130px 0; }
.contact-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:9%; }
.contact-copy h2 { font-family:var(--font-serif); font-size:clamp(46px,5vw,70px); line-height:1; font-weight:500; letter-spacing:-.04em; margin:24px 0 28px; }
.contact-copy p { line-height:1.65; max-width:500px; }
.contact-details { margin-top:55px; display:flex; flex-direction:column; gap:10px; font-size:13px; }
.contact-details a { font-size:18px; font-weight:600; display:flex; justify-content:space-between; max-width:360px; border-bottom:1px solid rgba(255,255,255,.45); padding-bottom:10px; }
.contact-form { background:var(--ink); padding:38px; display:flex; flex-direction:column; gap:24px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-form label { display:flex; flex-direction:column; gap:9px; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.65); }
.contact-form input, .contact-form select, .contact-form textarea { width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.3); border-radius:0; background:transparent; color:var(--white); padding:12px 0; outline:none; text-transform:none; letter-spacing:0; font-size:15px; resize:vertical; }
.contact-form select option { color:var(--ink); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color:var(--accent-2); }
.form-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.consent { flex-direction:row!important; align-items:flex-start; text-transform:none!important; letter-spacing:0!important; font-size:11px!important; max-width:360px; line-height:1.5; }
.consent input { width:auto; margin-top:2px; }
.form-status { margin:0; font-size:12px; min-height:18px; color:var(--mint); }

.site-footer { background:#091c1c; color:var(--white); padding:70px 0 22px; }
.footer-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:55px; border-bottom:1px solid var(--line-light); }
.footer-cta { display:flex; align-items:center; gap:40px; }
.footer-cta > span { font-size:12px; opacity:.55; }
.footer-cta a { font-family:var(--font-serif); font-size:28px; border-bottom:1px solid; padding-bottom:8px; }
.footer-cta b { color:var(--accent-2); margin-left:25px; }
.footer-links { display:grid; grid-template-columns:repeat(4,1fr); gap:40px; padding:55px 0; }
.footer-links div { display:flex; flex-direction:column; gap:12px; font-size:12px; }
.footer-links strong { font-size:10px; letter-spacing:.15em; text-transform:uppercase; color:var(--accent-2); margin-bottom:8px; }
.footer-links a, .footer-links span, .footer-links button { opacity:.68; }
.footer-links a:hover { opacity:1; }
.footer-links button { background:transparent; border:0; padding:0; text-align:left; color:inherit; cursor:pointer; }

.corporate-note { margin:0 0 32px; padding:19px 22px; border-left:3px solid var(--accent); background:rgba(16,42,42,.045); max-width:640px; }
.corporate-note span { display:block; font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin-bottom:7px; }
.corporate-note strong { display:block; font-size:15px; letter-spacing:.01em; }
.corporate-note p { margin:7px 0 0!important; font-size:12px; line-height:1.55!important; opacity:.68!important; }
.contact-address { margin-top:12px; font-style:normal; font-size:12px; line-height:1.65; opacity:.72; max-width:430px; }
.legal-disclosure { border-top:1px solid var(--line-light); padding:23px 0 0; display:flex; flex-wrap:wrap; gap:10px 28px; font-size:9px; letter-spacing:.045em; opacity:.62; }
.legal-disclosure strong { color:var(--accent-2); font-weight:600; }

.footer-bottom { border-top:1px solid var(--line-light); padding-top:22px; display:flex; justify-content:space-between; gap:30px; font-size:9px; letter-spacing:.06em; opacity:.5; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s var(--ease), transform .75s var(--ease); transition-delay:var(--delay,0ms); }
.reveal.visible { opacity:1; transform:none; }

.diagnostic-modal { width:min(880px,calc(100vw - 32px)); max-height:calc(100vh - 32px); padding:0; border:0; background:transparent; color:var(--ink); }
.diagnostic-modal::backdrop { background:rgba(4,18,18,.78); backdrop-filter:blur(8px); }
.diagnostic-shell { min-height:570px; background:var(--paper); padding:60px; position:relative; overflow:auto; }
.modal-close { position:absolute; right:18px; top:15px; width:42px; height:42px; border:1px solid var(--line); background:transparent; font-size:25px; cursor:pointer; z-index:2; }
.diagnostic-progress { position:absolute; left:0; right:0; top:0; height:5px; background:var(--paper-2); }
.diagnostic-progress i { display:block; height:100%; width:0; background:var(--accent); transition:.4s var(--ease); }
.diagnostic-screen { display:none; min-height:450px; }
.diagnostic-screen.active { display:flex; flex-direction:column; justify-content:center; animation:screenIn .45s var(--ease); }
@keyframes screenIn { from { opacity:0; transform:translateY(15px); } }
.diagnostic-start h2, .diagnostic-result h2 { font-family:var(--font-serif); font-size:55px; line-height:1.03; font-weight:500; margin:24px 0; max-width:650px; }
.diagnostic-start p { font-size:18px; line-height:1.65; max-width:680px; }
.diagnostic-start .button { align-self:flex-start; margin:25px 0; }
.diagnostic-start small { opacity:.55; }
.question-count { text-transform:uppercase; letter-spacing:.13em; font-size:10px; color:var(--accent); }
.diagnostic-question h3 { font-family:var(--font-serif); font-size:42px; line-height:1.15; font-weight:500; margin:30px 0; }
.answer-options { display:grid; gap:10px; }
.answer-options button { text-align:left; padding:17px 20px; background:var(--white); border:1px solid var(--line); cursor:pointer; display:flex; justify-content:space-between; transition:.25s; }
.answer-options button:hover { background:var(--ink); color:var(--white); transform:translateX(5px); }
.result-score { width:110px; height:110px; border-radius:50%; border:1px solid var(--ink); display:flex; align-items:baseline; justify-content:center; padding-top:31px; margin-top:24px; }
.result-score strong { font-family:var(--font-serif); font-size:40px; }
.result-score span { font-size:11px; }
.result-description { font-size:17px; line-height:1.6; max-width:680px; }
.result-actions { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 28px; }
.result-actions span { padding:9px 12px; border:1px solid var(--line); font-size:11px; }
.result-buttons { display:flex; gap:10px; }

@media (max-width: 1100px) {
  :root { --container:min(100% - 40px, 1000px); }
  .site-header { grid-template-columns:1fr auto; padding:0 20px; }
  .desktop-nav, .header-actions .text-button { display:none; }
  .menu-button { display:block; }
  .mobile-panel { display:flex; position:fixed; inset:0; background:var(--ink); color:var(--white); z-index:0; opacity:0; visibility:hidden; pointer-events:none; padding:120px 30px 40px; flex-direction:column; justify-content:space-between; transition:.4s var(--ease); }
  .site-header > .brand, .site-header > .header-actions { position:relative; z-index:2; }
  .site-header.menu-active .mobile-panel { opacity:1; visibility:visible; pointer-events:auto; }
  .mobile-panel nav { display:flex; flex-direction:column; }
  .mobile-panel nav a { font-family:var(--font-serif); font-size:44px; padding:10px 0; border-bottom:1px solid var(--line-light); }
  .site-header.menu-active { color:var(--white); }
  .site-header.menu-active .menu-button span:first-child { transform:translateY(4px) rotate(45deg); }
  .site-header.menu-active .menu-button span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .flip-grid { grid-template-columns:repeat(2,1fr); }
  .statement-grid { grid-template-columns:1fr; }
  .statement-grid blockquote, .statement-aside { grid-column:1; }
  .approach-layout { grid-template-columns:1fr 1fr; gap:5%; }
  .radar-shell { width:350px; height:350px; }
  .about-grid { gap:5%; }
}

@media (max-width: 760px) {
  :root { --container:calc(100vw - 32px); }
  .section { padding:90px 0; }
  .site-header { height:70px; padding:0 14px; }
  .site-header .button-small { display:none; }
  .brand-copy small { display:none; }
  .brand-mark { width:34px; height:34px; }
  .hero { min-height:760px; height:auto; padding:140px 0 45px; }
  .hero-title { font-size:clamp(63px,20vw,90px); margin:34px 0 28px; }
  .hero-lead { font-size:16px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-bottom { margin-top:50px; }
  .hero-note { max-width:230px; line-height:1.5; }
  .hero-side-label { display:none; }
  .orb-one { width:360px; height:360px; right:-200px; }
  .split-heading { grid-template-columns:1fr; gap:25px; }
  .split-heading h2, .about-copy h2 { font-size:50px; }
  .flip-grid { grid-template-columns:1fr; }
  .flip-card, .flip-card-inner { min-height:420px; }
  .statement-section { padding:100px 0; }
  .statement-grid { gap:35px; }
  .statement-grid blockquote { font-size:45px; }
  .statement-aside { grid-template-columns:1fr; gap:25px; }
  .approach-layout { grid-template-columns:1fr; }
  .approach-visual { min-height:420px; }
  .radar-shell { width:310px; height:310px; }
  .diagnostic-inner { flex-direction:column; align-items:flex-start; }
  .diagnostic-inner h2 { font-size:38px; }
  .industry-row { grid-template-columns:42px 1fr 25px; gap:14px; }
  .industry-row p { grid-column:2; }
  .industry-arrow { grid-column:3; grid-row:1; }
  .insight-grid { grid-template-columns:1fr; gap:55px; }
  .about-grid { grid-template-columns:1fr; gap:55px; }
  .contact-grid { grid-template-columns:1fr; }
  .contact-form { padding:25px 20px; }
  .form-row { grid-template-columns:1fr; }
  .form-footer { flex-direction:column; align-items:stretch; }
  .footer-top { align-items:flex-start; flex-direction:column; gap:40px; }
  .footer-cta { flex-direction:column; align-items:flex-start; gap:10px; }
  .footer-links { grid-template-columns:1fr 1fr; }
  .footer-bottom { flex-direction:column; }
  .diagnostic-shell { padding:55px 22px 30px; }
  .diagnostic-start h2, .diagnostic-result h2 { font-size:42px; }
  .diagnostic-question h3 { font-size:34px; }
  .result-buttons { flex-direction:column; }
}

@media (hover: none) {
  .cursor-glow { display:none; }
  .flip-hint { opacity:1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}

@media (max-width: 700px) {
  .legal-disclosure { flex-direction:column; gap:7px; }
  .corporate-note { padding:17px 18px; }
}


/* Complete briefing-room articles and resources */
.insight-grid-four { grid-template-columns:repeat(2,1fr); gap:52px 24px; }
.insight-grid-four .insight-art { height:225px; }
.art-four { background:linear-gradient(135deg,var(--paper-2),var(--accent)); color:var(--ink); }
.resources-section { background:var(--paper-2); }
.resource-card { display:grid; grid-template-columns:.42fr 1fr; min-height:430px; background:var(--white); border:1px solid var(--line); }
.resource-visual { min-height:430px; background:var(--ink); color:var(--white); position:relative; overflow:hidden; padding:32px; display:flex; flex-direction:column; justify-content:space-between; }
.resource-visual::before { content:""; position:absolute; width:340px; height:340px; border:1px solid rgba(255,255,255,.17); border-radius:50%; right:-130px; bottom:-120px; box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.02); }
.resource-visual span { font-size:10px; letter-spacing:.18em; color:var(--accent-2); z-index:1; }
.resource-visual strong { font-family:var(--font-serif); font-size:72px; line-height:.82; font-weight:500; z-index:1; }
.resource-visual i { width:54px; height:54px; border:1px solid rgba(255,255,255,.4); border-radius:50%; position:relative; z-index:1; }
.resource-visual i::after { content:"↓"; position:absolute; inset:0; display:grid; place-items:center; }
.resource-copy { padding:58px; display:flex; flex-direction:column; justify-content:center; }
.resource-meta { display:flex; justify-content:space-between; gap:20px; font-size:9px; text-transform:uppercase; letter-spacing:.14em; color:var(--accent); }
.resource-copy h3 { font-family:var(--font-serif); font-size:clamp(38px,4vw,62px); line-height:1.02; font-weight:500; letter-spacing:-.035em; margin:24px 0; }
.resource-copy p { max-width:760px; font-size:16px; line-height:1.75; opacity:.74; }
.resource-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:22px; }
.resource-note { font-size:11px; line-height:1.6; opacity:.62; margin:20px 0 0; }
.line-link { display:inline-flex; gap:12px; align-items:center; border-bottom:1px solid currentColor; padding-bottom:7px; font-size:12px; }

.article-page { background:var(--paper); }
.reading-progress { position:fixed; left:0; top:0; height:3px; width:0; background:var(--accent); z-index:1300; }
.article-site-header { color:var(--white); }
.article-site-header.scrolled { color:var(--ink); }
.article-back { font-size:12px; display:inline-flex; gap:9px; align-items:center; }
.article-hero { min-height:680px; padding:185px 0 105px; position:relative; overflow:hidden; }
.article-hero::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:9vw 9vw; opacity:.5; }
.article-hero::after { content:""; position:absolute; width:600px; height:600px; border:1px solid rgba(255,255,255,.12); border-radius:50%; right:-230px; top:90px; box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.012); }
.article-breadcrumb { display:flex; align-items:center; gap:9px; font-size:10px; text-transform:uppercase; letter-spacing:.13em; color:rgba(255,255,255,.62); margin-bottom:42px; }
.article-breadcrumb a:hover { color:var(--white); }
.article-hero h1 { max-width:1050px; font-family:var(--font-serif); font-weight:500; font-size:clamp(54px,7.4vw,104px); line-height:.94; letter-spacing:-.05em; margin:20px 0 30px; }
.article-hero h1 em { color:var(--accent-2); font-style:italic; font-weight:500; }
.article-dek { max-width:820px; font-size:20px; line-height:1.65; color:rgba(255,255,255,.72); }
.article-meta { display:flex; flex-wrap:wrap; gap:12px 30px; border-top:1px solid var(--line-light); margin-top:50px; padding-top:22px; font-size:10px; text-transform:uppercase; letter-spacing:.13em; color:rgba(255,255,255,.6); }
.article-shell { display:grid; grid-template-columns:250px minmax(0,780px); justify-content:center; gap:90px; padding:110px 0 125px; }
.article-toc { align-self:start; position:sticky; top:105px; border-top:1px solid var(--line); padding-top:22px; }
.article-toc strong { display:block; color:var(--accent); font-size:10px; text-transform:uppercase; letter-spacing:.15em; margin-bottom:18px; }
.article-toc a { display:block; font-size:12px; line-height:1.45; padding:8px 0; opacity:.58; transition:.25s; }
.article-toc a:hover,.article-toc a.active { opacity:1; transform:translateX(4px); }
.article-content { min-width:0; }
.article-lead { font-family:var(--font-serif); font-size:31px!important; line-height:1.45!important; color:var(--ink)!important; opacity:1!important; }
.article-content section { scroll-margin-top:100px; margin-bottom:76px; }
.article-content h2 { font-family:var(--font-serif); font-size:46px; line-height:1.08; letter-spacing:-.035em; font-weight:500; margin:0 0 25px; }
.article-content h3 { font-family:var(--font-serif); font-size:28px; line-height:1.2; font-weight:500; margin:38px 0 15px; }
.article-content p,.article-content li { font-size:17px; line-height:1.82; color:rgba(16,42,42,.78); }
.article-content ul,.article-content ol { padding-left:22px; }
.article-content li { margin:10px 0; padding-left:5px; }
.article-content strong { color:var(--ink); }
.article-callout { margin:32px 0; padding:28px 30px; background:var(--white); border-left:4px solid var(--accent); }
.article-callout.dark { background:var(--ink); color:var(--white); border-left-color:var(--accent-2); }
.article-callout.dark p,.article-callout.dark li,.article-callout.dark strong { color:var(--white); }
.article-callout .callout-label { display:block; text-transform:uppercase; letter-spacing:.15em; font-size:9px; color:var(--accent); margin-bottom:10px; }
.article-callout.dark .callout-label { color:var(--accent-2); }
.article-callout p:last-child { margin-bottom:0; }
.metric-grid,.process-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:30px 0; }
.metric-card,.process-card { background:var(--white); border:1px solid var(--line); padding:24px; }
.metric-card span,.process-card span { color:var(--accent); font-family:var(--font-serif); font-size:18px; }
.metric-card h3,.process-card h3 { font-family:var(--font-serif); font-size:24px; margin:14px 0 10px; }
.metric-card p,.process-card p { font-size:14px; line-height:1.65; margin:0; }
.article-table-wrap { overflow-x:auto; margin:30px 0; border:1px solid var(--line); }
.article-table { border-collapse:collapse; width:100%; min-width:650px; background:var(--white); }
.article-table th,.article-table td { text-align:left; vertical-align:top; padding:18px; border-bottom:1px solid var(--line); font-size:14px; line-height:1.55; }
.article-table th { background:var(--ink); color:var(--white); font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.article-checklist { list-style:none; padding:0!important; }
.article-checklist li { position:relative; padding:15px 15px 15px 45px; margin:8px 0; border:1px solid var(--line); background:rgba(255,255,255,.45); }
.article-checklist li::before { content:"✓"; position:absolute; left:17px; top:15px; color:var(--accent); font-weight:700; }
.article-download { display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; padding:32px; background:var(--paper-2); border:1px solid var(--line); margin:35px 0; }
.article-download h3 { margin:0 0 8px; }
.article-download p { margin:0; font-size:14px; }
.article-cta { background:var(--accent); color:var(--white); padding:75px 0; }
.article-cta-inner { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.article-cta h2 { font-family:var(--font-serif); font-size:48px; line-height:1.05; font-weight:500; margin:0; max-width:720px; }
.article-footer { padding-top:55px; }
.article-disclaimer { padding:22px 0; border-top:1px solid var(--line-light); font-size:10px; line-height:1.65; opacity:.6; }
.article-number { color:var(--accent); font-size:10px; letter-spacing:.15em; text-transform:uppercase; }

@media (max-width: 900px) {
  .insight-grid-four { grid-template-columns:1fr; }
  .resource-card { grid-template-columns:1fr; }
  .resource-visual { min-height:300px; }
  .resource-copy { padding:38px 28px; }
  .article-shell { grid-template-columns:1fr; gap:40px; }
  .article-toc { position:relative; top:auto; display:grid; grid-template-columns:repeat(2,1fr); gap:0 20px; }
  .article-toc strong { grid-column:1/-1; }
  .article-cta-inner { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 600px) {
  .article-hero { min-height:620px; padding:145px 0 75px; }
  .article-hero h1 { font-size:52px; }
  .article-dek { font-size:17px; }
  .article-shell { padding:75px 0 90px; }
  .article-toc { grid-template-columns:1fr; }
  .article-content h2 { font-size:37px; }
  .article-content h3 { font-size:25px; }
  .article-content p,.article-content li { font-size:16px; }
  .article-lead { font-size:25px!important; }
  .metric-grid,.process-grid { grid-template-columns:1fr; }
  .article-download { grid-template-columns:1fr; }
  .article-cta h2 { font-size:39px; }
  .resource-actions { align-items:flex-start; flex-direction:column; }
}

/* Mobile overflow hardening */
html, body { max-width:100%; overflow-x:hidden; }
.statement-section, .approach-section, .hero { overflow:hidden; }
@media (max-width:760px) {
  .word-rotator { min-width:0; display:block; width:max-content; max-width:100%; }
  .orb-one { width:300px; height:300px; right:10px; }
  .orb-two { right:8%; }
  .statement-lines { left:0; right:0; width:auto; }
  .radar-sweep { inset:0; width:auto; }
}
