/* ==========================================================================
   America First Prospects — site styles
   --------------------------------------------------------------------------
   1. Base reset  (the subset of Tailwind v4 "preflight" the original relied on;
                   kept in a low-priority layer so the design rules always win)
   2. Design      (the original globals.css, unchanged apart from relative
                   image paths)
   Brand colours, fonts and other tokens are in :root at the top of section 2.
   ========================================================================== */

@layer base {
  *, ::after, ::before, ::backdrop { box-sizing: border-box; border: 0 solid; margin: 0; padding: 0; }
  html {
    -webkit-text-size-adjust: 100%; tab-size: 4; line-height: 1.5;
    font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    -webkit-tap-highlight-color: transparent;
  }
  h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
  a { color: inherit; text-decoration: inherit; }
  b, strong { font-weight: bolder; }
  ol, ul, menu { list-style: none; }
  img, svg, video, canvas, audio, iframe, embed, object { vertical-align: middle; display: block; }
  img, video { max-width: 100%; height: auto; }
  button, input, select, optgroup, textarea { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: transparent; border-radius: 0; }
  [hidden]:where(:not([hidden=until-found])) { display: none !important; }
}

/* ---- 2. Design ---------------------------------------------------------- */

:root {
  --maroon:#5b0f1a;
  --maroon-dark:#2d070c;
  --onyx:#0d0d0d;
  --ivory:#f4efe7;
  --steel:#8a8a8a;
  --line:rgba(91,15,26,.24);
  --font-display:"Canela","Canela Deck","Bodoni 72",Didot,Georgia,serif;
  --font-sans:"Neue Montreal","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-mono:"ABC Diatype Mono","Diatype Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
}
* { box-sizing:border-box; }
html { width:100%; max-width:100%; overflow-x:hidden; overflow-x:clip; scroll-behavior:smooth; background:var(--ivory); }
body { width:100%; max-width:100%; margin:0; overflow-x:hidden; overflow-x:clip; background:var(--ivory); color:var(--onyx); font-family:var(--font-sans); font-synthesis:none; }
main { width:100%; max-width:100%; overflow-x:hidden; overflow-x:clip; }
a { color:inherit; text-decoration:none; }
button,a { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,[tabindex]:focus-visible { outline:2px solid currentColor; outline-offset:4px; }

.site-header { height:84px; display:flex; align-items:center; justify-content:space-between; padding:0 3vw; position:absolute; top:0; left:0; width:100%; max-width:100%; z-index:10; color:var(--onyx); background:transparent; }
.header-est { color:var(--maroon); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.22em; }
.wordmark { display:flex; align-items:center; gap:18px; }
.monogram { font-family:var(--font-display); font-size:27px; letter-spacing:.06em; }
.wordmark-name { font-size:10px; text-transform:uppercase; letter-spacing:.24em; }
nav { display:flex; align-items:center; gap:32px; font-size:11px; text-transform:uppercase; letter-spacing:.15em; }
nav a { transition:opacity .25s ease; }
nav a:hover { opacity:.6; }
.nav-cta { border:1px solid var(--maroon); background:var(--maroon); color:var(--ivory); padding:13px 16px; display:flex; gap:30px; }
.arrow-icon { width:16px; height:16px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:square; stroke-linejoin:miter; }

.hero { min-height:100svh; position:relative; overflow:hidden; background:#b5a797; }
.hero::before { content:""; position:absolute; inset:0; background-image:radial-gradient(circle at 18% 12%,rgba(244,239,231,.42),transparent 36%),linear-gradient(145deg,rgba(244,239,231,.18),transparent 60%); pointer-events:none; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(13,13,13,.025) 0%,transparent 38%); pointer-events:none; }
.hero-grid,.contact-grid { position:absolute; inset:0; pointer-events:none; opacity:.12; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:12.5vw 12.5vw; mask-image:linear-gradient(to bottom,transparent 5%,black 45%,transparent 100%); z-index:1; }
.contact-grid { opacity:.2; }
.hero-copy { padding:142px 4.2vw 54px; display:flex; flex-direction:column; justify-content:space-between; min-height:100svh; position:relative; z-index:2; }
.hero h1,.manifesto h2,.operator h2,.method h2,.contact h2 { font-family:var(--font-display); font-weight:500; margin:0; letter-spacing:-.03em; }
.hero h1 { font-size:clamp(100px,9.4vw,150px); line-height:.82; max-width:1180px; }
.hero h1 span { display:block; will-change:transform,clip-path; }
.hero-punchline { margin:24px 0 0 4px; font-size:15px; font-weight:600; text-transform:uppercase; letter-spacing:.18em; }
em { color:var(--maroon); font-family:var(--font-display); font-weight:400; font-style:italic; }
.hero-bottom { display:flex; justify-content:space-between; align-items:flex-end; max-width:650px; color:var(--onyx); }
.hero-bottom>p { max-width:370px; font-size:14px; line-height:1.55; margin:0; }
.circle-link { width:70px; height:70px; border:1px solid var(--onyx); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-transform:uppercase; letter-spacing:.15em; font-size:7px; transition:background .25s,color .25s; }
.circle-link:hover { background:var(--onyx); color:var(--ivory); }
.circle-link b { font-weight:400; animation:arrow-drop 1.5s ease-in-out infinite; }

.press { scroll-margin-top:0; background:var(--ivory); border-top:0; border-bottom:1px solid rgba(91,15,26,.25); padding:36px 0 40px; overflow:hidden; }
.press>p { margin:0 0 29px; color:var(--maroon); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.26em; }
.press>p { padding-left:3vw; }
.press-marquee { width:100%; overflow:hidden; mask-image:linear-gradient(90deg,transparent 0,black 3vw,black calc(100% - 3vw),transparent 100%); }
.press-logos { display:flex; align-items:center; width:max-content; color:#181818; animation:press-scroll 38s linear infinite; will-change:transform; }
.press-marquee:hover .press-logos,.press-marquee:focus-within .press-logos { animation-play-state:paused; }
.press-logo-set { display:flex; align-items:center; gap:clamp(54px,6vw,108px); padding-right:clamp(54px,6vw,108px); }
.press-logo-set span { display:flex; align-items:center; flex:0 0 auto; white-space:nowrap; line-height:1; opacity:.88; }
.press-fox { font-family:Arial Black,Impact,sans-serif; font-size:21px; letter-spacing:-.07em; }
.press-mail { font-family:Georgia,serif; font-size:23px; font-weight:700; font-style:italic; }
.press-cnn { font-family:Arial Black,Impact,sans-serif; font-size:25px; letter-spacing:-.1em; }
.press-times { font-family:"Times New Roman",serif; font-size:21px; font-weight:700; }
.press-maher img { display:block; width:142px; height:auto; mix-blend-mode:multiply; filter:grayscale(1) contrast(1.18); }
.press-beast { font-family:Arial Black,Impact,sans-serif; font-size:17px; letter-spacing:-.02em; }
.press-post { font-family:Georgia,serif; font-size:19px; font-weight:700; }
.press-hill { font-family:Georgia,serif; font-size:23px; font-weight:700; letter-spacing:.06em; }

.collapse-stack { position:relative; isolation:isolate; }
.proof-strip { position:sticky; top:0; z-index:1; background:var(--maroon-dark); color:var(--ivory); min-height:124px; display:grid; grid-template-columns:repeat(3,1fr); padding:0 3vw; }
.proof-item { border-left:1px solid rgba(242,238,231,.18); display:flex; align-items:baseline; gap:16px; padding:25px 3vw; }
.proof-item:last-child { border-right:1px solid rgba(242,238,231,.18); }
.proof-item strong { font-family:var(--font-display); font-weight:500; font-size:clamp(36px,4vw,62px); letter-spacing:-.03em; }
.proof-item span { font-size:9px; text-transform:uppercase; letter-spacing:.18em; max-width:110px; line-height:1.5; opacity:.65; }

.section { padding:78px 4.2vw; }
.section-label { display:flex; gap:20px; font-size:9px; text-transform:uppercase; letter-spacing:.24em; border-top:1px solid rgba(13,13,13,.25); padding-top:16px; }
.section-label span:first-child { color:var(--maroon); }
.section-label.light { border-color:rgba(242,238,231,.25); }
.section-label.light span:first-child { color:#b05a64; }
.manifesto { position:relative; z-index:2; display:grid; grid-template-columns:24% 76%; min-height:570px; background:var(--ivory); box-shadow:0 -24px 70px rgba(13,13,13,.22); transform-origin:center bottom; }
.manifesto::before { content:""; position:absolute; left:0; right:0; top:-1px; height:1px; background:rgba(91,15,26,.32); }
.manifesto-copy { padding-top:68px; }
.kicker { font-size:10px; letter-spacing:.2em; text-transform:uppercase; margin:0 0 36px; }
.manifesto h2 { font-size:clamp(52px,6.7vw,110px); line-height:.86; }
.manifesto .lead { margin:48px 0 0 44%; max-width:460px; font-size:17px; line-height:1.5; }
.inline-cta { width:max-content; display:flex; align-items:center; gap:34px; margin-top:30px; padding:12px 0 10px; border-bottom:1px solid currentColor; font-size:9px; text-transform:uppercase; letter-spacing:.18em; transition:gap .35s ease,color .25s ease; }
.inline-cta:hover { gap:44px; color:var(--maroon); }
.inline-cta .arrow-icon { width:13px; height:13px; }
.manifesto .inline-cta { margin-left:44%; }

.services { border-top:1px solid rgba(13,13,13,.22); }
.service { display:grid; grid-template-columns:10% 38% 52%; min-height:214px; border-bottom:1px solid rgba(13,13,13,.22); padding:27px 4.2vw; position:relative; overflow:hidden; transition:color .8s cubic-bezier(.24,.43,.15,.97); }
.service::before { content:""; position:absolute; inset:0; background:var(--maroon); transform:scaleY(0); transform-origin:center bottom; transition:transform .8s cubic-bezier(.24,.43,.15,.97); }
.service:nth-child(even)::before { transform-origin:center top; }
.service:hover { color:var(--ivory); }
.service:hover::before { transform:scaleY(1); }
.service>* { position:relative; z-index:1; }
.service-number { font-size:10px; letter-spacing:.2em; }
.service-title h3 { font-family:var(--font-display); font-size:clamp(32px,3.35vw,52px); font-weight:500; letter-spacing:-.03em; line-height:.98; margin:0; max-width:420px; }
.service-copy { max-width:500px; }
.service-copy p { font-size:14px; line-height:1.55; margin:0; }

.operator { background:var(--onyx); color:var(--ivory); min-height:760px; position:relative; overflow:hidden; }
.operator-orbit { position:absolute; width:80vw; height:80vw; border:1px solid rgba(242,238,231,.11); border-radius:50%; right:-30vw; top:4%; perspective:900px; transform-style:preserve-3d; }
.operator-orbit::before,.operator-orbit::after { content:""; position:absolute; border:1px solid rgba(242,238,231,.11); border-radius:50%; inset:14%; }
.operator-orbit::after { inset:30%; }
.armillary-ring { position:absolute; inset:10%; border:1px solid rgba(242,238,231,.17); border-radius:50%; transform-style:preserve-3d; will-change:transform; }
.armillary-ring.ring-outer { inset:-8%; border-color:rgba(242,238,231,.13); transform:rotateZ(8deg) rotateY(74deg); }
.armillary-ring.ring-a { transform:rotateZ(18deg) rotateY(68deg); }
.armillary-ring.ring-b { inset:18%; border-color:rgba(176,90,100,.2); transform:rotateZ(-34deg) rotateX(66deg); }
.armillary-ring.ring-c { inset:25%; transform:rotateZ(72deg) rotateY(62deg); }
.armillary-ring.ring-far { inset:2%; border-color:rgba(176,90,100,.16); transform:rotateZ(-58deg) rotateX(72deg); }
.operator-figure { --figure-opacity:.72; position:absolute; z-index:0; right:-2%; bottom:-9%; width:48%; height:100%; background:linear-gradient(90deg,rgba(13,13,13,.82) 0%,rgba(13,13,13,.12) 58%,rgba(13,13,13,.03) 100%),url('operator-preston.jpeg') 48% 27% / cover no-repeat; opacity:var(--figure-opacity); filter:grayscale(.6) sepia(.18) saturate(.75) contrast(1.08); -webkit-mask-image:linear-gradient(90deg,transparent 0%,black 28%,black 100%),linear-gradient(0deg,black 0%,black 72%,transparent 100%); -webkit-mask-composite:source-in; mask-image:linear-gradient(90deg,transparent 0%,black 28%,black 100%),linear-gradient(0deg,black 0%,black 72%,transparent 100%); mask-composite:intersect; }
.operator-figure::before,.operator-figure::after { content:""; position:absolute; z-index:1; background:rgba(176,90,100,.55); transform-origin:left center; }
.operator-figure::before { left:4%; right:4%; top:42%; height:1px; }
.operator-figure::after { top:4%; bottom:4%; left:52%; width:1px; transform-origin:center top; }
.operator-content { display:grid; grid-template-columns:22% 50% 28%; align-items:start; padding-top:80px; position:relative; z-index:1; }
.operator-name { text-transform:uppercase; letter-spacing:.22em; font-size:10px; margin:13px 0; }
.operator h2 { font-size:clamp(54px,6.1vw,98px); line-height:.87; }
.operator-details { padding:34px 0 0 24px; }
.operator-details p { max-width:310px; font-size:13px; line-height:1.65; color:rgba(242,238,231,.68); margin:0 0 22px; }
.operator-details .inline-cta:hover { color:#b05a64; }
.operator blockquote { position:absolute; bottom:58px; right:4.2vw; max-width:390px; border-left:1px solid #b05a64; padding-left:20px; margin:0; }
.operator blockquote p { font-family:var(--font-display); font-size:23px; line-height:1.2; margin:0 0 13px; }
cite { font-style:normal; text-transform:uppercase; font-size:8px; letter-spacing:.2em; }

.method { display:grid; grid-template-columns:22% 40% 38%; gap:0; min-height:610px; }
.method-heading { padding:65px 40px 0 0; }
.method h2 { font-size:clamp(46px,4.7vw,75px); line-height:.94; }
.method-steps { margin:65px 0 0; padding:0; list-style:none; border-top:1px solid rgba(13,13,13,.25); }
.method-steps li { display:grid; grid-template-columns:48px 1fr; gap:16px; padding:22px 0; border-bottom:1px solid rgba(13,13,13,.25); }
.method-steps>li>span { font-size:9px; color:var(--maroon); }
.method-steps h3 { font-family:var(--font-display); font-size:23px; font-weight:500; margin:0 0 8px; }
.method-steps p { font-size:13px; line-height:1.55; color:#555; margin:0; }

.testimonial { min-height:520px; background:var(--maroon); color:var(--ivory); display:grid; grid-template-columns:20% 80%; padding:68px 4.2vw; align-items:center; }
.quote-mark { font-family:var(--font-display); font-size:190px; line-height:.2; align-self:start; margin:100px 0 0; color:rgba(242,238,231,.22); }
.testimonial blockquote { margin:0; max-width:1050px; }
.testimonial blockquote p { font-family:var(--font-display); font-size:clamp(38px,4.8vw,74px); line-height:1; letter-spacing:-.03em; margin:0 0 36px; }

.contact { min-height:650px; background:var(--onyx); color:var(--ivory); position:relative; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.contact-grid { --line:rgba(242,238,231,.2); }
.contact-copy { padding:22px 0 42px 18%; position:relative; z-index:2; }
.dc-coordinates { margin:0 0 24px; color:#b05a64; font-size:8px; text-transform:uppercase; letter-spacing:.24em; }
.location-lockup { display:grid; grid-template-columns:minmax(340px,1.1fr) 1fr; gap:6vw; align-items:end; margin:0 4.2vw 32px 0; padding-top:18px; border-top:1px solid rgba(242,238,231,.28); }
.location-lockup>p { margin:0; font-family:var(--font-display); font-size:clamp(30px,3.6vw,58px); line-height:.93; letter-spacing:-.03em; }
.location-lockup>p em { color:#b05a64; }
.location-lockup>span { max-width:330px; color:rgba(242,238,231,.58); font-size:12px; line-height:1.55; }
.contact-action { display:grid; grid-template-columns:1fr minmax(360px,1fr); gap:6vw; align-items:end; margin-right:4.2vw; }
.contact-action>p { max-width:440px; margin:0; color:rgba(242,238,231,.68); font-size:13px; line-height:1.65; }
.contact-links { display:grid; grid-template-columns:1fr 70px; gap:12px; }
.contact-button { width:100%; display:flex; justify-content:space-between; border-top:1px solid rgba(242,238,231,.4); border-bottom:1px solid rgba(242,238,231,.4); padding:22px 0; position:relative; overflow:hidden; text-transform:uppercase; font-size:10px; letter-spacing:.18em; transition:color .8s cubic-bezier(.24,.43,.15,.97); }
.contact-button::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:#b05a64; transform:scaleX(0); transform-origin:right center; transition:transform .8s cubic-bezier(.24,.43,.15,.97); }
.contact-button:hover::after { transform:scaleX(1); transform-origin:left center; }
.contact-button:hover { color:#b05a64; }
.signal-button { width:70px; min-height:62px; display:flex; flex-direction:column; gap:8px; align-items:center; justify-content:center; border:1px solid rgba(107,182,255,.48); background:transparent; color:var(--ivory); transition:background .3s ease,border-color .3s ease; }
.signal-button:hover,.signal-button:focus-visible,.signal-button:active { background:rgba(107,182,255,.08); border-color:#6bb6ff; color:var(--ivory); }
.signal-label { color:rgba(242,238,231,.68); font-family:var(--font-mono); font-size:6px; font-weight:500; text-transform:uppercase; letter-spacing:.18em; }
.contact footer em { font-family:var(--font-display), Georgia, serif; font-style:italic; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.18em; color:var(--ivory); }
.signal-pulse { position:relative; width:17px; height:17px; border:1.5px solid #6bb6ff; border-radius:50%; }
.signal-pulse::before { content:""; position:absolute; left:-2px; bottom:-3px; width:6px; height:6px; border-left:1.5px solid #6bb6ff; transform:rotate(-28deg); }
.signal-pulse::after { content:""; position:absolute; inset:-5px; border:1px dashed rgba(107,182,255,.48); border-radius:50%; animation:signal-ring 1.8s ease-out infinite; }
.dc-geometry { position:absolute; z-index:1; right:-7vw; top:12%; width:43vw; height:43vw; border:1px solid rgba(176,90,100,.16); border-radius:50%; }
.dc-geometry::before,.dc-geometry::after { content:""; position:absolute; inset:16%; border:1px solid rgba(176,90,100,.15); border-radius:50%; }
.dc-geometry::after { inset:34%; }
.dc-geometry span { position:absolute; background:rgba(176,90,100,.16); }
.dc-geometry span:nth-child(1) { left:50%; top:-20%; bottom:-20%; width:1px; }
.dc-geometry span:nth-child(2) { top:50%; left:-20%; right:-20%; height:1px; }
.dc-geometry span:nth-child(3) { width:10px; height:10px; right:8%; top:28%; border:1px solid #b05a64; border-radius:50%; background:var(--onyx); }
footer { border-top:1px solid rgba(242,238,231,.2); padding:18px 0 16px; display:grid; grid-template-columns:auto auto 1fr; gap:24px; align-items:center; position:relative; z-index:1; text-transform:uppercase; font-size:8px; letter-spacing:.13em; color:rgba(242,238,231,.55); white-space:nowrap; }
footer>.footer-close { justify-self:end; display:flex; align-items:baseline; gap:8px; margin:0; color:var(--ivory); text-align:right; }
.contact footer .footer-close em { color:var(--ivory); }
.footer-mark { font-family:var(--font-display); font-size:24px; line-height:1; color:var(--ivory); letter-spacing:.05em; }

.header-est,.section-label,.proof-item span,.service-number,.operator-name,cite,.dc-coordinates {
  font-family:var(--font-mono);
}

nav,.nav-cta,.wordmark-name,.hero-punchline,.press>p,.kicker,.inline-cta,.contact-button,footer {
  font-family:var(--font-sans);
  font-weight:500;
}

@media (prefers-reduced-motion:no-preference) {
  .hero h1 span:first-child { animation:hero-mask .78s cubic-bezier(.24,.43,.15,.97) .04s both; }
  .hero h1 span:last-child { animation:hero-mask .78s cubic-bezier(.24,.43,.15,.97) .12s both; }
  .hero-punchline { animation:hero-fade .6s ease-out .38s both; }
  .hero-bottom { animation:hero-fade 1s ease-out .45s both; }
  .armillary-ring.ring-a { animation:armillary-a 18s linear infinite; }
  .armillary-ring.ring-b { animation:armillary-b 24s linear infinite reverse; }
  .armillary-ring.ring-c { animation:armillary-c 15s linear infinite; }
  .armillary-ring.ring-outer { animation:armillary-outer 30s linear infinite; }
  .armillary-ring.ring-far { animation:armillary-far 21s linear infinite reverse; }
  @supports (animation-timeline:view()) {
    .manifesto-copy,.operator-content,.method-heading,.testimonial blockquote,.contact-copy { animation:section-mask linear both; animation-timeline:view(); animation-range:entry 5% cover 32%; }
    .service-title h3 { animation:line-rise linear both; animation-timeline:view(); animation-range:entry 8% cover 24%; }
    .operator-orbit { animation:orbit-reveal linear both; animation-timeline:view(); animation-range:entry 0% cover 42%; }
    .operator-figure { animation:figure-reveal linear both; animation-timeline:view(); animation-range:entry 0% cover 42%; }
    .operator-figure::before { animation:line-draw-x linear both; animation-timeline:view(); animation-range:entry 12% cover 50%; }
    .operator-figure::after { animation:line-draw-y linear both; animation-timeline:view(); animation-range:entry 12% cover 50%; }
    .manifesto { animation:panel-collapse linear both; animation-timeline:view(); animation-range:entry 0% cover 24%; }
    .service { animation:service-color linear both; animation-timeline:view(block); animation-range:entry 0% exit 100%; }
    .service::before { animation:service-fill linear both; animation-timeline:view(block); animation-range:entry 0% exit 100%; }
    .method-steps li { animation:method-swipe-left linear both; animation-timeline:view(block); animation-range:entry 0% cover 38%; }
    .method-steps li:nth-child(even) { animation-name:method-swipe-right; }
  }
  @keyframes hero-mask { from { opacity:0; clip-path:inset(0 -10% 100% -10%); transform:translateY(34px); } to { opacity:1; clip-path:inset(-20% -10% -35% -10%); transform:translateY(0); } }
  @keyframes hero-fade { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
  @keyframes arrow-drop { 0%,100% { transform:translateY(-2px); } 50% { transform:translateY(4px); } }
  @keyframes signal-ring { 0% { opacity:.8; transform:scale(.65); } 100% { opacity:0; transform:scale(1.35); } }
  @keyframes armillary-a { from { transform:rotateZ(18deg) rotateY(68deg) rotateX(0deg); } to { transform:rotateZ(378deg) rotateY(68deg) rotateX(360deg); } }
  @keyframes armillary-b { from { transform:rotateZ(-34deg) rotateX(66deg) rotateY(0deg); } to { transform:rotateZ(326deg) rotateX(66deg) rotateY(360deg); } }
  @keyframes armillary-c { from { transform:rotateZ(72deg) rotateY(62deg) rotateX(0deg); } to { transform:rotateZ(432deg) rotateY(62deg) rotateX(-360deg); } }
  @keyframes armillary-outer { from { transform:rotateZ(8deg) rotateY(74deg) rotateX(0deg); } to { transform:rotateZ(368deg) rotateY(74deg) rotateX(360deg); } }
  @keyframes armillary-far { from { transform:rotateZ(-58deg) rotateX(72deg) rotateY(0deg); } to { transform:rotateZ(302deg) rotateX(72deg) rotateY(-360deg); } }
  @keyframes service-fill { 0%,16% { transform:scaleY(0); } 42%,100% { transform:scaleY(1.01); } }
  @keyframes service-color { 0%,22% { color:var(--onyx); } 42%,100% { color:var(--ivory); } }
  @keyframes method-swipe-left { from { opacity:0; transform:translateX(-64px); clip-path:inset(0 100% 0 0); } to { opacity:1; transform:translateX(0); clip-path:inset(0 0 0 0); } }
  @keyframes method-swipe-right { from { opacity:0; transform:translateX(64px); clip-path:inset(0 0 0 100%); } to { opacity:1; transform:translateX(0); clip-path:inset(0 0 0 0); } }
  @keyframes section-mask { from { opacity:.2; clip-path:inset(0 0 38% 0); transform:translateY(42px); } to { opacity:1; clip-path:inset(0 0 0 0); transform:translateY(0); } }
  @keyframes line-rise { from { opacity:.2; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
  @keyframes orbit-reveal { from { opacity:0; clip-path:circle(0% at 50% 50%); transform:rotate(-12deg) scale(.82); } to { opacity:1; clip-path:circle(51% at 50% 50%); transform:rotate(0) scale(1); } }
  @keyframes figure-reveal { from { opacity:0; clip-path:inset(100% 0 0 0); transform:scale(1.08); } to { opacity:var(--figure-opacity); clip-path:inset(0 0 0 0); transform:scale(1); } }
  @keyframes line-draw-x { from { transform:scaleX(0); } to { transform:scaleX(1); } }
  @keyframes line-draw-y { from { transform:scaleY(0); } to { transform:scaleY(1); } }
  @keyframes panel-collapse { from { clip-path:inset(12% 3% 0 3% round 18px 18px 0 0); transform:translateY(8%); } to { clip-path:inset(0 0 0 0); transform:translateY(0); } }
}

@keyframes press-scroll { to { transform:translateX(-50%); } }

@media (prefers-reduced-motion:reduce) {
  .press-marquee { overflow-x:auto; mask-image:none; scrollbar-width:none; }
  .press-marquee::-webkit-scrollbar { display:none; }
  .press-logos { animation:none; }
  .press-logo-set[aria-hidden="true"] { display:none; }
}

@media (min-width:901px) {
  .hero-bottom { width:100%; max-width:100%; gap:48px; }
  .header-est { font-size:11px; }
  .section-label { gap:24px; padding-top:18px; font-size:clamp(11px,.65vw,13px); }
  .press>p { font-size:11px; }
  .proof-item span,.service-number,.method-steps>li>span { font-size:10px; }
  .service-copy p,.method-steps p { font-size:15px; }
  .inline-cta,.contact-button { font-size:11px; }

  .operator { min-height:820px; }
  .operator-content { display:block; width:min(760px,56vw); padding-top:60px; }
  .operator-name { margin:0 0 24px; font-size:12px; }
  .operator-details { max-width:540px; padding:34px 0 0; }
  .operator-details p { max-width:520px; font-size:clamp(14px,.8vw,16px); line-height:1.7; }
  .operator blockquote { max-width:430px; }
  .operator blockquote p { font-size:27px; }
  cite { font-size:10px; }

  .dc-coordinates { font-size:10px; }
  .location-lockup>span { font-size:14px; }
  .contact-action>p { font-size:15px; }
}

@media (max-width:900px) {
  .site-header { height:74px; padding:0 20px; padding-left:max(20px,env(safe-area-inset-left)); padding-right:max(20px,env(safe-area-inset-right)); }
  .monogram { color:var(--maroon); font-size:27px; }
  .wordmark-name,nav>a:not(.nav-cta) { display:none; }
  .nav-cta { min-height:42px; padding:0 14px; gap:18px; align-items:center; font-size:9px; }
  .arrow-icon { width:14px; height:14px; }
  .hero { min-height:76svh; background:#b5a797; }
  .hero::before { inset:0; background-image:radial-gradient(circle at 18% 12%,rgba(244,239,231,.42),transparent 34%),linear-gradient(145deg,rgba(244,239,231,.2),transparent 58%); filter:none; transform:none; }
  .hero::after { background:linear-gradient(0deg,rgba(13,13,13,.025) 0%,transparent 36%); }
  .hero-grid { opacity:.1; }
  .hero-copy { min-height:76svh; padding:108px 20px 27px; padding-left:max(20px,env(safe-area-inset-left)); padding-right:max(20px,env(safe-area-inset-right)); }
  .hero h1 { font-size:clamp(54px,15.5vw,70px); line-height:.88; letter-spacing:-.055em; max-width:100%; }
  .hero-copy,.hero h1,.hero-bottom { width:100%; max-width:100%; min-width:0; }
  .hero h1 span:last-child { white-space:normal; }
  .hero h1 em { color:#6d2933; }
  .hero-punchline { margin:22px 0 0 2px; font-size:11px; line-height:1.45; letter-spacing:.14em; }
  .hero-bottom { padding-top:28px; align-items:flex-end; gap:16px; max-width:100%; }
  .hero-bottom { color:var(--onyx); }
  .hero-bottom>p { font-size:11px; max-width:235px; line-height:1.5; }
  .circle-link { width:54px; height:54px; flex:0 0 auto; color:var(--onyx); border-color:var(--onyx); background:transparent; backdrop-filter:none; }
  .circle-link:hover { background:var(--onyx); color:var(--ivory); }
  .press { width:100%; max-width:100%; padding:32px 0 35px; overflow:hidden; }
  .press>p { margin-bottom:28px; font-size:9px; }
  .press>p { padding-left:max(20px,env(safe-area-inset-left)); padding-right:max(20px,env(safe-area-inset-right)); }
  .press-marquee { mask-image:linear-gradient(90deg,transparent 0,black 20px,black calc(100% - 20px),transparent 100%); }
  .press-logos { animation-duration:30s; }
  .press-logo-set { gap:42px; padding-right:42px; }
  .press-logo-set span { font-size:17px; opacity:.9; text-align:left; }
  .press-maher img { width:126px; }
  .press-mail,.press-hill { font-size:20px!important; }
  .press-cnn { font-size:21px!important; }
  .press-times,.press-post { font-size:18px!important; }
  .proof-strip { grid-template-columns:1fr; padding:0 max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left)); }
  .proof-item,.proof-item:last-child { border-right:0; border-left:0; border-bottom:1px solid rgba(242,238,231,.18); padding:25px 0; }
  .proof-item strong { font-size:44px; }
  .section { padding:58px max(20px,env(safe-area-inset-right)) 58px max(20px,env(safe-area-inset-left)); }
  .manifesto { display:block; min-height:auto; padding-bottom:95px; }
  .manifesto-copy { padding-top:55px; }
  .manifesto h2 { font-size:clamp(52px,15vw,78px); line-height:.87; }
  .manifesto .lead { margin:36px 0 0; font-size:16px; }
  .manifesto .inline-cta { margin-left:0; }
  .service { grid-template-columns:48px 1fr; padding:35px max(20px,env(safe-area-inset-right)) 35px max(20px,env(safe-area-inset-left)); min-height:auto; }
  .service-title h3 { font-size:34px; }
  .service-copy { grid-column:2; padding-top:26px; }
  .service-copy p { font-size:13px; }
  .operator { min-height:850px; }
  .operator-orbit { width:160vw; height:160vw; right:-100vw; top:22%; }
  .operator-figure { --figure-opacity:.42; right:-31%; bottom:-2%; width:100%; height:76%; background-position:center,44% 24%; -webkit-mask-image:linear-gradient(90deg,transparent 0%,black 38%,black 100%),linear-gradient(0deg,black 0%,black 58%,transparent 100%); mask-image:linear-gradient(90deg,transparent 0%,black 38%,black 100%),linear-gradient(0deg,black 0%,black 58%,transparent 100%); }
  .operator-content { display:block; padding-top:55px; }
  .operator h2 { font-size:clamp(52px,14vw,75px); margin-top:27px; }
  .operator-details { padding:36px 0 0; }
  .operator blockquote { bottom:55px; left:max(20px,env(safe-area-inset-left)); right:max(20px,env(safe-area-inset-right)); }
  .operator blockquote p { font-size:21px; }
  .method { display:block; min-height:auto; }
  .method-heading { padding:52px 0 0; }
  .method h2 { font-size:48px; }
  .method-steps { margin-top:42px; }
  .testimonial { min-height:500px; display:block; padding:60px max(20px,env(safe-area-inset-right)) 60px max(20px,env(safe-area-inset-left)); }
  .quote-mark { font-size:145px; margin:65px 0 10px; height:42px; }
  .testimonial blockquote p { font-size:36px; line-height:1.03; }
  .contact { min-height:auto; justify-content:flex-start; padding-top:72px; padding-bottom:max(38px,env(safe-area-inset-bottom)); }
  .contact>.section-label { margin-bottom:54px; }
  .contact-copy { padding:0; }
  .dc-coordinates { font-size:7px; line-height:1.7; margin-bottom:30px; }
  .location-lockup { display:block; margin:0 0 48px; padding-top:26px; }
  .location-lockup>p { font-size:39px; line-height:.98; }
  .location-lockup>span { display:block; margin-top:28px; max-width:310px; font-size:11px; line-height:1.7; }
  .contact-action { display:block; margin:0; }
  .contact-action>p { margin-bottom:38px; font-size:12px; line-height:1.75; max-width:330px; }
  .contact-links { grid-template-columns:1fr 70px; gap:10px; }
  .contact-button { padding:25px 0; }
  .dc-geometry { width:110vw; height:110vw; right:-72vw; top:19%; }
  footer { grid-template-columns:auto auto 1fr; gap:10px; margin-top:72px; padding:20px 0 18px; font-size:7px; letter-spacing:.08em; }
  footer>.footer-close { gap:4px; }
  footer span:nth-child(2) { display:block; grid-column:auto; grid-row:auto; }
  .footer-mark { font-size:20px; }
}

@media (max-width:900px) and (orientation:portrait) {
  .site-header { height:86px; }
  .header-est { font-size:10px; letter-spacing:.24em; }
  .nav-cta { min-height:52px; padding:0 18px; gap:22px; font-size:10px; }
  .hero,.hero-copy { min-height:100svh; }
  .hero-copy {
    padding-top:clamp(175px,29svh,260px);
    padding-bottom:max(38px,env(safe-area-inset-bottom));
  }
  .hero h1 {
    font-size:clamp(62px,17vw,78px);
    line-height:.86;
    letter-spacing:-.04em;
  }
  .hero-punchline { margin-top:28px; font-size:clamp(11px,2.8vw,13px); }
  .hero-bottom { padding-top:42px; gap:22px; }
  .hero-bottom>p { max-width:70%; font-size:clamp(12px,3.2vw,14px); line-height:1.55; }
  .circle-link { width:74px; height:74px; font-size:8px; }
}

@media (max-width:900px) and (orientation:landscape) {
  footer { padding:24px 0 22px; font-size:9px; }
  .footer-mark { font-size:27px; }
}

@media (max-width:390px) {
  .hero-bottom>p { max-width:235px; }
  .service-title h3 { font-size:34px; }
  .operator h2 { font-size:56px; }
  .method h2 { font-size:51px; }
  .testimonial blockquote p { font-size:38px; }
}

/* ---- Hero photo -----------------------------------------------------------
   Full-bleed photo behind the headline. The image is cropped from the top
   (object-position) so the temple steps and figure stay in frame. A dark fade
   sits only behind the text (left edge, top bar, bottom edge); the figure on
   the right is left untouched. Tune the fade in .hero-photo::after, the crop
   in object-position.                                                         */
.hero { background:var(--onyx); }
.hero::before, .hero::after, .hero-grid { display:none; }
.hero-photo { position:absolute; z-index:0; inset:0; margin:0; overflow:hidden; }
.hero-photo img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:50% 100%; }
.hero-photo::after { content:""; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(13,13,13,.78) 0%, rgba(13,13,13,.55) 26%, rgba(13,13,13,.18) 46%, rgba(13,13,13,0) 60%),
    linear-gradient(180deg, rgba(13,13,13,.45) 0%, rgba(13,13,13,0) 16%),
    linear-gradient(0deg, rgba(13,13,13,.55) 0%, rgba(13,13,13,0) 24%); }

/* Light-on-dark type for the hero */
.hero, .hero-bottom { color:var(--ivory); }
.hero h1, .hero-punchline { text-shadow:0 2px 24px rgba(13,13,13,.45); }
.hero h1 em { color:#d48a93; }
.header-est { color:var(--ivory); }
.hero-bottom>p { color:rgba(244,239,231,.86); }
.circle-link, .circle-link:hover { border-color:var(--ivory); }
.circle-link:hover { background:var(--ivory); color:var(--onyx); }

@media (prefers-reduced-motion:no-preference) {
  .hero-photo img { animation:hero-photo-in 1.6s cubic-bezier(.24,.43,.15,.97) both; }
  @keyframes hero-photo-in { from { opacity:0; transform:scale(1.06); } to { opacity:1; transform:scale(1); } }
}

@media (max-width:900px) {
  .hero h1 em { color:#d48a93; }
  .hero-bottom, .circle-link { color:var(--ivory); border-color:var(--ivory); }
  .hero-photo img { position:absolute; left:0; bottom:0; height:118%; object-position:56% 100%; }
  .hero-photo::after { background:
    linear-gradient(180deg, rgba(13,13,13,.72) 0%, rgba(13,13,13,.62) 38%, rgba(13,13,13,.2) 52%, rgba(13,13,13,0) 60%),
    linear-gradient(0deg, rgba(13,13,13,.7) 0%, rgba(13,13,13,.25) 20%, rgba(13,13,13,0) 32%); }
}
@media (max-width:900px) and (orientation:portrait) {
  .hero-copy { padding-top:clamp(112px,15svh,150px); }
}

/* ---- Hero photo, desktop: sharp photo at natural proportions on the right,
   a blurred + darkened copy of the same photo filling the rest behind the
   headline, blended with a soft edge so it reads as one image.              */
@media (min-width:901px) {
  .hero-photo::before { content:""; position:absolute; inset:-60px; background:url('preston-parra-america-first-prospects.jpg') 50% 80% / cover no-repeat; filter:blur(38px) brightness(.48) saturate(1.1); }
  .hero-photo img { position:absolute; right:0; bottom:0; top:auto; width:auto; height:116%; object-fit:fill;
    -webkit-mask-image:linear-gradient(90deg, transparent 0%, black 26%); mask-image:linear-gradient(90deg, transparent 0%, black 26%); }
  .hero-photo::after { background:
    linear-gradient(90deg, rgba(13,13,13,.45) 0%, rgba(13,13,13,.2) 35%, rgba(13,13,13,0) 55%),
    linear-gradient(180deg, rgba(13,13,13,.35) 0%, rgba(13,13,13,0) 14%),
    linear-gradient(0deg, rgba(13,13,13,.45) 0%, rgba(13,13,13,0) 22%); }
}

/* ---- Capability strip (between "What we do" and the services list) ---- */
.capability-strip { position:relative; z-index:2; background:var(--maroon-dark); color:var(--ivory); padding:22px 4.2vw; }
.capability-strip ul { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 0; margin:0; padding:0; list-style:none; font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.24em; }
.capability-strip li { white-space:nowrap; }
.capability-strip li + li::before { content:"·"; color:#b05a64; letter-spacing:0; margin:0 clamp(14px,2.1vw,34px); }
@media (max-width:900px) {
  .capability-strip { padding:20px max(20px,env(safe-area-inset-right)) 20px max(20px,env(safe-area-inset-left)); }
  .capability-strip ul { justify-content:flex-start; gap:10px 22px; font-size:9px; letter-spacing:.2em; }
  .capability-strip li + li::before { display:none; }
}

/* ---- "How we work": subheading above the three steps ---- */
.method-steps-wrap { margin-top:65px; }
.method-steps-wrap .method-steps { margin-top:0; }
.method-subhead { margin:0 0 18px; color:var(--maroon); font-family:var(--font-mono); font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.22em; }
.method-subhead strong { display:block; margin-top:10px; color:var(--onyx); font-family:var(--font-display); font-size:clamp(26px,2.2vw,34px); font-weight:500; letter-spacing:-.02em; text-transform:none; line-height:1.05; }
@media (max-width:900px) {
  .method-steps-wrap { margin-top:46px; }
  .method-subhead { font-size:9px; }
}

/* ---- Quotes section: featured quote with photo, then three cards ---- */
.quotes { background:var(--maroon); color:var(--ivory); }
.quotes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:56px 3vw; margin-top:56px; }
.quote-card { margin:0; display:flex; flex-direction:column; }
.quote-card img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; filter:saturate(.82) contrast(1.04); }
.quote-card figcaption { padding-top:24px; }
.quote-card blockquote { margin:0; }
.quote-card blockquote p { margin:0 0 18px; font-family:var(--font-display); font-size:clamp(22px,1.9vw,30px); line-height:1.12; letter-spacing:-.02em; }
.quote-card cite { display:block; color:rgba(244,239,231,.72); }
.quote-featured { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:4vw; align-items:center; }
.quote-featured figcaption { padding-top:0; }
.quote-featured .quote-mark { margin:0 0 -40px; font-size:150px; line-height:1; height:auto; color:rgba(244,239,231,.22); }
.quote-featured blockquote p { font-size:clamp(34px,3.7vw,60px); line-height:1.02; letter-spacing:-.03em; margin-bottom:28px; }
@media (max-width:900px) {
  .quotes-grid { grid-template-columns:1fr; gap:48px; margin-top:40px; }
  .quote-featured { display:flex; gap:0; }
  .quote-featured figcaption { padding-top:24px; }
  .quote-featured .quote-mark { font-size:110px; margin-bottom:-36px; }
  .quote-featured blockquote p { font-size:34px; }
  .quote-card blockquote p { font-size:24px; }
}

/* ---- 03 Shared by the President (dark, to sit with the dark screenshots) ---- */
.reposts { background:var(--maroon-dark); color:var(--ivory); }
.reposts-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:4vw; align-items:end; margin:56px 0 52px; }
.reposts h2 { font-family:var(--font-display); font-weight:500; margin:0; font-size:clamp(46px,5.2vw,84px); line-height:.92; letter-spacing:-.03em; }
.reposts h2 em { color:#d48a93; }
.reposts-intro p { max-width:420px; margin:0; color:rgba(244,239,231,.72); font-size:15px; line-height:1.65; }
.reposts-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3vw; }
.repost { margin:0; }
.repost img { display:block; width:100%; height:auto; border:1px solid rgba(244,239,231,.14); border-radius:14px; }
.repost figcaption { margin-top:16px; font-family:var(--font-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:rgba(244,239,231,.6); line-height:1.6; }
.repost figcaption span, .repost figcaption small { display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:#b05a64; }
.repost figcaption span { margin-bottom:10px; }
.repost figcaption small { margin-top:12px; color:rgba(244,239,231,.55); }

/* ---- 04 Exploits ---- */
.exploit-list { list-style:none; margin:56px 0 0; padding:0; border-top:1px solid rgba(13,13,13,.22); }
.exploit { display:grid; grid-template-columns:10% 38% 52%; gap:0; padding:40px 0; border-bottom:1px solid rgba(13,13,13,.22); align-items:start; }
.exploit-number { font-family:var(--font-mono); font-size:10px; letter-spacing:.2em; color:var(--maroon); padding-top:10px; }
.exploit h3 { font-family:var(--font-display); font-weight:500; margin:0 0 16px; font-size:clamp(30px,3vw,46px); line-height:1; letter-spacing:-.03em; max-width:420px; }
.exploit p { margin:0; max-width:420px; font-size:15px; line-height:1.6; color:#333; }
.exploit-images { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.exploit-images img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }

@media (max-width:900px) {
  .reposts-intro { display:block; margin:40px 0 36px; }
  .reposts-intro p { margin-top:20px; font-size:13px; }
  .reposts h2 { font-size:48px; }
  .reposts-grid { grid-template-columns:1fr; gap:40px; }
  .exploit-list { margin-top:40px; }
  .exploit { grid-template-columns:48px 1fr; padding:32px 0; }
  .exploit-number { padding-top:6px; }
  .exploit-copy { grid-column:2; }
  .exploit h3 { font-size:32px; }
  .exploit p { font-size:13px; }
  .exploit-images { grid-column:1 / -1; margin-top:24px; gap:10px; }
}
.exploits-title { margin:44px 0 0; font-family:var(--font-display); font-weight:500; font-size:clamp(72px,10vw,160px); line-height:.86; letter-spacing:-.045em; }
.exploits-title em { color:var(--maroon); }
@media (max-width:900px) { .exploits-title { margin-top:36px; font-size:clamp(64px,20vw,92px); } }


/* Rounded corners on the Exploits and Quotes photos (matches the Truth Social cards) */
.exploit-images img, .quote-card img { border-radius:14px; }

/* ---- What we do: text block on the left (aligned with the section label),
   photo at natural scale on the right fading into the background, with the
   same colour treatment and crosshair-line overlay as the Operator photo ---- */
.manifesto { display:block; overflow:hidden; min-height:600px; }
.manifesto>.section-label, .manifesto-copy { position:relative; z-index:1; }
.manifesto>.section-label { max-width:42%; }
.manifesto-copy { max-width:min(600px,50%); padding-top:56px; }
.manifesto .lead { margin:40px 0 0; max-width:480px; }
.manifesto .inline-cta { margin-left:0; }
.manifesto-photo { --photo-opacity:.85; --figure-opacity:.85; position:absolute; z-index:0; top:0; right:0; bottom:0; margin:0;
  opacity:var(--photo-opacity); filter:grayscale(.6) sepia(.18) saturate(.75) contrast(1.08);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,black 35%,black 100%),linear-gradient(0deg,transparent 0%,black 22%,black 85%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0%,black 35%,black 100%),linear-gradient(0deg,transparent 0%,black 22%,black 85%,transparent 100%);
  mask-composite:intersect; }
.manifesto-photo img { display:block; height:100%; width:auto; max-width:none; }
@media (prefers-reduced-motion:no-preference) {
  @supports (animation-timeline:view()) {
    .manifesto-photo { animation:figure-reveal linear both; animation-timeline:view(); animation-range:entry 0% cover 42%; }
          }
}
@media (max-width:900px) {
  .manifesto { min-height:0; padding-bottom:0; }
  .manifesto>.section-label, .manifesto-copy { max-width:none; }
  .manifesto-copy { padding-top:55px; }
  .manifesto .lead { margin-top:32px; }
  .manifesto-photo { position:relative; display:block; margin:12px calc(-1 * max(20px,env(safe-area-inset-right))) 0 calc(-1 * max(20px,env(safe-area-inset-left)));
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,black 25%,black 80%,transparent 100%); mask-image:linear-gradient(180deg,transparent 0%,black 25%,black 80%,transparent 100%); }
  .manifesto-photo img { width:100%; height:auto; }
}

/* ---- Header "Get in touch": frosted outline pill that sits on the photo ---- */
.site-header .nav-cta { display:inline-flex; align-items:center; gap:14px; padding:12px 18px 12px 16px; border:1px solid rgba(244,239,231,.5); border-radius:999px;
  background:rgba(13,13,13,.32); -webkit-backdrop-filter:blur(12px) saturate(1.2); backdrop-filter:blur(12px) saturate(1.2);
  color:var(--ivory); font-size:11px; letter-spacing:.18em; transition:background .3s ease,color .3s ease,border-color .3s ease; }
.site-header .nav-cta:hover { opacity:1; background:var(--ivory); color:var(--onyx); border-color:var(--ivory); }
.site-header .nav-cta .arrow-icon { transition:transform .3s ease; }
.site-header .nav-cta:hover .arrow-icon { transform:translate(2px,-2px); }
.nav-dot { position:relative; width:7px; height:7px; border-radius:50%; background:#d48a93; flex:0 0 auto; }
.nav-dot::after { content:""; position:absolute; inset:-4px; border-radius:50%; border:1px solid rgba(212,138,147,.7); }
@media (prefers-reduced-motion:no-preference) { .nav-dot::after { animation:signal-ring 2s ease-out infinite; } }
@media (max-width:900px) {
  .site-header .nav-cta { min-height:44px; padding:0 16px 0 14px; gap:12px; font-size:10px; letter-spacing:.14em; }
}
.exploit-images img.is-screenshot { border:1px solid rgba(13,13,13,.14); background:#fff; }
.exploit-images--stack { grid-template-columns:1.35fr 1fr; grid-template-rows:auto auto; align-items:stretch; }
.exploit-images--stack img.is-screenshot { aspect-ratio:auto; height:auto; }
.exploit-images--stack .stack-a { grid-column:1; grid-row:1; }
.exploit-images--stack .stack-b { grid-column:1; grid-row:2; }
.exploit-images--stack .stack-photo { grid-column:2; grid-row:1 / 3; height:100%; aspect-ratio:auto; object-fit:cover; object-position:60% 45%; }

.exploit-images--stack img.is-screenshot { align-self:start; object-fit:contain; }
.exploit-images--stack .stack-photo { contain:size; align-self:stretch; min-height:100%; }
@media (max-width:900px) {
  .exploit-images--stack { grid-template-columns:1fr; }
  .exploit-images--stack .stack-a, .exploit-images--stack .stack-b { grid-column:1; }
  .exploit-images--stack .stack-photo { grid-column:1; grid-row:3; contain:none; height:auto; min-height:0; aspect-ratio:4/3; }
}

/* ---- What we do: slowly rotating rings behind the photo, the same armillary
   motif as the Operator section, drawn in maroon for the light background ---- */
.manifesto-orbit { position:absolute; z-index:0; width:54vw; height:54vw; right:calc(280px - 27vw); top:calc(50% - 27vw); border:1px solid rgba(91,15,26,.12); border-radius:50%; perspective:900px; transform-style:preserve-3d; pointer-events:none; }
.manifesto-orbit::before, .manifesto-orbit::after { content:""; position:absolute; border:1px solid rgba(91,15,26,.1); border-radius:50%; inset:14%; }
.manifesto-orbit::after { inset:30%; }
.manifesto-orbit .armillary-ring { border-color:rgba(91,15,26,.16); }
.manifesto-orbit .armillary-ring.ring-outer { border-color:rgba(91,15,26,.12); }
.manifesto-orbit .armillary-ring.ring-b, .manifesto-orbit .armillary-ring.ring-far { border-color:rgba(176,90,100,.3); }
@media (prefers-reduced-motion:no-preference) {
  @supports (animation-timeline:view()) {
    .manifesto-orbit { animation:orbit-reveal linear both; animation-timeline:view(); animation-range:entry 0% cover 42%; }
  }
}
@media (max-width:900px) {
  .manifesto-orbit { width:150vw; height:150vw; right:-75vw; top:auto; bottom:-30vw; }
}

/* ==========================================================================
   3. Premium polish
   Self-hosted typefaces (SIL Open Font License): Instrument Serif for display,
   Inter for text, IBM Plex Mono for labels. The licensed Canela / Neue Montreal /
   Diatype names stay first, so adding those font files later takes over.
   ========================================================================== */
@font-face { font-family:"Instrument Serif"; font-style:normal; font-weight:400; font-display:swap; src:url("fonts/instrument-serif-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family:"Instrument Serif"; font-style:italic; font-weight:400; font-display:swap; src:url("fonts/instrument-serif-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:100 900; font-display:swap; src:url("fonts/inter-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:italic; font-weight:100 900; font-display:swap; src:url("fonts/inter-latin-wght-italic.woff2") format("woff2"); }
@font-face { font-family:"IBM Plex Mono"; font-style:normal; font-weight:400; font-display:swap; src:url("fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family:"IBM Plex Mono"; font-style:normal; font-weight:500; font-display:swap; src:url("fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); }

:root {
  --font-display:"Canela","Instrument Serif","Bodoni 72",Didot,Georgia,serif;
  --font-sans:"Neue Montreal","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-mono:"ABC Diatype Mono","IBM Plex Mono","SFMono-Regular",Consolas,monospace;
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --shadow-soft:0 1px 2px rgba(13,13,13,.06),0 24px 48px -28px rgba(13,13,13,.45);
}

/* Type rendering and rhythm */
body { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; font-feature-settings:"cv11","ss01","ss03"; }
h1,h2,h3,blockquote p { text-wrap:balance; }
p { text-wrap:pretty; }
.hero h1,.manifesto h2,.operator h2,.method h2,.reposts h2,.exploits-title,.testimonial blockquote p,.quote-card blockquote p,.location-lockup>p { letter-spacing:-.015em; }
.hero h1 { line-height:.86; }
.manifesto h2,.operator h2 { line-height:.9; }
.proof-item strong,.service-number,.exploit-number,.method-steps>li>span { font-variant-numeric:lining-nums tabular-nums; }
.lead,.service-copy p,.exploit p,.method-steps p,.operator-details p,.contact-action>p { line-height:1.65; }
::selection { background:var(--maroon); color:var(--ivory); }

/* Fine film grain over the whole page for a printed, tactile feel */
body::after { content:""; position:fixed; inset:-50%; z-index:100; pointer-events:none; opacity:.06; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* Header: monogram + est. line on the left; slim frosted bar after scrolling */
.site-header { position:fixed; transition:height .45s var(--ease-out),background-color .45s var(--ease-out),border-color .45s var(--ease-out); border-bottom:1px solid transparent; }
.header-mark { display:flex; align-items:center; gap:16px; color:var(--ivory); }
.header-monogram { font-family:var(--font-display); font-size:26px; letter-spacing:.06em; line-height:1; }
.header-mark .header-est { padding-left:16px; border-left:1px solid rgba(244,239,231,.35); color:rgba(244,239,231,.8); }
.site-header.is-scrolled { height:64px; background:rgba(26,6,10,.9); -webkit-backdrop-filter:blur(16px) saturate(1.3); backdrop-filter:blur(16px) saturate(1.3); border-bottom-color:rgba(244,239,231,.1); }
.site-header.is-scrolled .nav-cta { padding-top:9px; padding-bottom:9px; }
@media (max-width:900px) {
  .header-monogram { font-size:22px; }
  .header-mark { gap:12px; }
  .header-mark .header-est { padding-left:12px; font-size:9px; }
  .site-header.is-scrolled { height:60px; }
  .site-header.is-scrolled .nav-cta { min-height:38px; }
}

/* Depth and motion on photos and cards */
.quote-card img,.exploit-images img,.repost img { box-shadow:var(--shadow-soft); transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out); }
.quote-card:hover img,.exploit-images img:hover,.repost:hover img { transform:translateY(-4px); box-shadow:0 2px 4px rgba(13,13,13,.08),0 34px 60px -30px rgba(13,13,13,.55); }
.quotes .quote-card img { box-shadow:0 30px 60px -34px rgba(0,0,0,.65); }

/* Hairline detail on section labels and stats */
.section-label { letter-spacing:.26em; }
.proof-item strong { letter-spacing:-.02em; }
.capability-strip ul { letter-spacing:.3em; }

/* Gentle page entrance */
@media (prefers-reduced-motion:no-preference) {
  main { animation:page-in .9s var(--ease-out) both; }
  @keyframes page-in { from { opacity:0; } to { opacity:1; } }
}

/* Refined scrollbar */
html { scrollbar-width:thin; scrollbar-color:rgba(91,15,26,.55) transparent; }
::-webkit-scrollbar { width:10px; }
::-webkit-scrollbar-thumb { background:rgba(91,15,26,.5); border-radius:10px; border:3px solid var(--ivory); }

.operator h2 em, .contact em { color:#d48a93; }

/* Exploits: keep the text column clear of the images at every width */
.exploit { grid-template-columns:10% minmax(0,38%) minmax(0,52%); }
.exploit-copy { min-width:0; padding-right:clamp(24px,3vw,48px); }
.exploit h3 { max-width:100%; overflow-wrap:break-word; }
@media (max-width:900px) { .exploit { grid-template-columns:48px minmax(0,1fr); } .exploit-copy { padding-right:0; } }

/* Header: full firm name beside the monogram */
.header-name { padding-left:16px; border-left:1px solid rgba(244,239,231,.35); font-family:var(--font-sans); font-size:11px; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--ivory); white-space:nowrap; }
.header-mark .header-est { padding-left:0; border-left:0; opacity:.7; }
.header-mark .header-est::before { content:"·"; margin-right:14px; }
@media (max-width:1100px) { .header-mark .header-est { display:none; } }
@media (max-width:900px) {
  .header-name { padding-left:12px; font-size:9px; letter-spacing:.16em; white-space:normal; line-height:1.35; max-width:118px; }
}

.site-header .nav-cta { white-space:nowrap; }
@media (max-width:420px) {
  .site-header { gap:12px; }
  .header-monogram { display:none; }
  .header-name { padding-left:0; border-left:0; max-width:120px; }
  .site-header .nav-cta { padding:0 14px 0 12px; gap:10px; letter-spacing:.12em; }
}
.quote-card .quote-second { margin-top:26px; padding-top:22px; border-top:1px solid rgba(244,239,231,.2); }
