/* =========================================================================
   CirclStdio · NEO TOKYO //OS shared system
   Palette · type · overlays · chrome · components
   ========================================================================= */
/* dark thin scrollbar */
html{scrollbar-width:thin;scrollbar-color:#33322e #0b0b0b}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#0b0b0b}
::-webkit-scrollbar-thumb{background:#33322e;border:2px solid #0b0b0b}
::-webkit-scrollbar-thumb:hover{background:#4a4842}
::-webkit-scrollbar-corner{background:#0b0b0b}
:root{
  --ink:#0a0a0a;--ink-2:#141414;--ink-3:#1e1e1e;
  --bone:#ece7dd;--bone-2:#d9d3c6;--bone-3:#b8b1a2;
  --red:#e4002b;--red-deep:#a60020;--red-blood:#7a0018;
  --alert:#ffea00;
  --hairline:rgba(10,10,10,.18);
  --hairline-on-ink:rgba(236,231,221,.18);
  --f-display:"Archivo Black","Archivo",Impact,sans-serif;
  --f-body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --f-jp:"Noto Sans JP","Archivo",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bone);color:var(--ink);font-family:var(--f-body);font-weight:500;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* ---- overlays ---- */
.grit{position:fixed;inset:0;pointer-events:none;z-index:9999;mix-blend-mode:multiply;opacity:.3;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.7' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");}
.scan{position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.08;mix-blend-mode:multiply;
  background-image:repeating-linear-gradient(to bottom, transparent 0 2px, rgba(0,0,0,.9) 2px 3px);}

/* ---- utilities ---- */
.wrap{max-width:1440px;margin:0 auto;padding:0 24px}
.label{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.mono{font-family:var(--f-mono)}
.jp{font-family:var(--f-jp)}
.red{color:var(--red)}
.blink{display:inline-block;width:8px;height:8px;background:var(--red);animation:blink 1.2s steps(2,end) infinite;flex:0 0 auto}
@keyframes blink{50%{opacity:0}}

/* ---- partner page themes ---- */
body.partner-theme{
  --red:var(--partner-accent,#e4002b);
  --red-deep:var(--partner-accent-deep,#a60020);
  --red-blood:var(--partner-accent-dark,#7a0018);
  --alert:var(--partner-alert,#ffea00);
}
body.partner-theme .announce,
body.partner-theme .badge.red,
body.partner-theme .tb-actions .cta,
body.partner-theme .btn.red,
body.partner-theme .btn.red .a,
body.partner-theme .hero h1 .u,
body.partner-theme .pcard.red,
body.partner-theme .pcard.red .n,
body.partner-theme .pcard.red .wedge,
body.partner-theme .pcard.red ul,
body.partner-theme .svc.red,
body.partner-theme .svc.red .n,
body.partner-theme .svc.red .go .a,
body.partner-theme .rung.hot .body h4,
body.partner-theme .rung.hot .body p,
body.partner-theme .rung.hot .body .tk,
body.partner-theme .rung.hot .price .amt,
body.partner-theme .rung.hot .price .amt .red,
body.partner-theme .rung.hot .price .u,
body.partner-theme .compare .mid,
body.partner-theme section.cta,
body.partner-theme .band.red,
body.partner-theme .phase.hot .wk,
body.partner-theme .arch .col.mid,
body.partner-theme .eng-item .t .tag,
body.partner-theme .eng-hero-meta .price,
body.partner-theme .eng-detail .col.red,
body.partner-theme .partner-submit{
  color:var(--partner-accent-ink,var(--bone));
}
body.partner-theme section.cta h2,
body.partner-theme section.cta .right p{
  color:var(--partner-accent-ink,var(--bone));
}
body.partner-theme .partner-form-logo,
body.partner-theme .partner-form-logo.logo-paper{
  background:var(--partner-accent,#e4002b);
  border-color:var(--partner-accent,#e4002b);
}
body.partner-theme .partner-form-logo .wordmark{
  color:var(--partner-accent-ink,var(--bone));
}
body.partner-theme .partner-form-logo .wordmark small{
  color:var(--partner-accent-ink-weak,var(--bone-2));
}
body.partner-theme .pcard.red:hover{background:var(--partner-accent-deep,#a60020)}
body.partner-theme .pcard.red ul li::before,
body.partner-theme .pcard.red .go .a{color:var(--partner-accent-ink-weak,var(--ink))}
body.partner-customerio{--partner-accent-readable:#52bd95}
body.partner-customerio .tb nav a.on,
body.partner-customerio .tb nav a:hover,
body.partner-customerio .crumb .tag,
body.partner-customerio .hero h1 .red,
body.partner-customerio .hero-sub .lead b,
body.partner-customerio .hero-intake-copy .lead b,
body.partner-customerio .hero .btn:not(.red) .a,
body.partner-customerio .metrics .n .red,
body.partner-customerio .compare .side.to .lb,
body.partner-customerio .compare .side.to ul li::before,
body.partner-customerio .ckgroup .h .t,
body.partner-customerio .phase:not(.hot) .wk .lb,
body.partner-customerio .rung.cap .body .tk,
body.partner-customerio .partner-lead .partner-form-head span,
body.partner-customerio .partner-lead .partner-form-success .cf-eyebrow,
body.partner-customerio .band:not(.red) .l .n,
body.partner-customerio footer .ft .big .red,
body.partner-customerio footer .ft .lg a:hover,
body.partner-customerio .cw-root .cw-dhead b,
body.partner-customerio .cw-root .cw-prompt,
body.partner-customerio .cw-root .cw-send{color:var(--partner-accent-readable)}
body.partner-customerio .band.red .l .n,
body.partner-customerio .phase.hot .wk .lb,
body.partner-customerio .arch .col.mid .h{color:var(--partner-accent-ink,var(--bone))}
body.partner-customerio .band.red p,
body.partner-customerio .svc.red ul li::before,
body.partner-customerio .eng-detail .col.red .who li::before{color:var(--partner-accent-ink-weak,var(--bone-2))}
body.partner-customerio .band.red .glyph{color:rgba(236,231,221,.16)}
body.partner-customerio .band.red .btn.ink .a{color:var(--bone)}
body.partner-customerio section.cta .glyph{color:rgba(236,231,221,.16)}
body.partner-customerio section.cta .btn.ink .a{color:var(--bone)}
body.partner-customerio .arch .col.mid .h{border-bottom-color:rgba(236,231,221,.28)}
body.partner-twilio-segment .partner-form-logo{
  background:var(--ink);
  border-color:var(--ink);
}
body.partner-twilio-segment .partner-form-logo .logo-plus{color:var(--partner-accent-2,#52bd95)}

/* ---- badges / chips ---- */
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:5px 9px;border:1px solid currentColor}
.badge.red{background:var(--red);color:var(--bone);border-color:var(--red)}
.badge.ink{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.badge.bone{background:var(--bone);color:var(--ink)}
.badge.alert{background:var(--alert);color:var(--ink);border-color:var(--alert)}
.badge .dot{width:6px;height:6px;background:currentColor;border-radius:50%}

/* ---- announce ---- */
.announce{background:var(--red);color:var(--bone);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:9px 24px;display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap;border-bottom:2px solid var(--ink)}
.announce b{background:var(--ink);color:var(--bone);padding:3px 8px;letter-spacing:.2em}
.announce a{text-decoration:none;border-bottom:0;padding-bottom:0;color:inherit}

/* ---- topbar ---- */
.topbar{position:sticky;top:0;z-index:50;background:var(--ink);color:var(--bone);border-bottom:1px solid var(--hairline-on-ink)}
.tb{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 24px;height:64px;box-sizing:border-box;line-height:1;flex-wrap:nowrap}
.brand{flex:0 0 auto;display:flex;align-items:center;gap:4px;font-family:var(--f-display);font-size:16px;letter-spacing:.02em;text-transform:none;white-space:nowrap;text-decoration:none;color:var(--bone)}
.brand i{width:10px;height:10px;background:var(--red);border-radius:50%;box-shadow:0 0 0 2px rgba(228,0,43,.3);flex:0 0 10px}
.brand img{height:26px;width:auto;display:block}
.brand .mark{width:24px;height:24px;flex:0 0 24px;object-fit:contain;filter:none;transform-origin:50% 50%;animation:none;will-change:transform}
.brand .wordmark{height:24px;width:auto;max-width:136px;display:block;pointer-events:none;filter:none}
.brand:hover .mark,.brand:focus-visible .mark{animation:brand-mark-spin 4s linear infinite}
@keyframes brand-mark-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.brand:hover .mark,.brand:focus-visible .mark{animation:none}}
.tb nav{flex:1 1 auto;display:flex;gap:22px;justify-content:center;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;overflow:hidden}
.tb nav a{text-decoration:none;opacity:.8;color:var(--bone-2)}
.tb nav a:hover,.tb nav a.on{color:var(--red);opacity:1}
.tb-actions{flex:0 0 auto;display:flex;gap:8px;align-items:center;white-space:nowrap;height:100%}
.tb-actions button,.tb-actions a.ghost,.tb-actions a.cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;height:38px;padding:0 16px;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;white-space:nowrap;box-sizing:border-box;cursor:pointer;text-decoration:none;border:2px solid transparent;transition:transform .12s, box-shadow .15s, background .15s, color .15s}
.tb-actions .ghost{background:transparent;color:var(--bone);border-color:rgba(236,231,221,.25)}
.tb-actions .ghost:hover{border-color:var(--bone);color:var(--bone)}
.tb-actions .cta{background:var(--red);color:var(--bone);border-color:var(--red);position:relative;overflow:hidden}
.tb-actions .cta:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--bone)}
.tb-actions .cta .a{font-family:var(--f-display);font-size:13px;display:inline-block;transform:translateY(-1px)}
.tb-actions .cta > span{position:relative;z-index:1}
.tb-actions .cta::after{content:"◈";position:absolute;right:-3px;bottom:-11px;font-family:var(--f-jp);font-weight:900;font-size:34px;line-height:.8;color:rgba(10,10,10,.22);pointer-events:none}
@media (max-width:640px){ .tb-actions .ghost{display:none} }
@media (max-width:1100px){ .tb nav{display:none} }

/* ---- breadcrumb sub-nav ---- */
.crumb{background:var(--ink);color:var(--bone-3);border-bottom:1px solid var(--hairline-on-ink);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.crumb .row{max-width:1440px;margin:0 auto;padding:11px 24px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.crumb a{text-decoration:none;color:var(--bone-3)}
.crumb a:hover{color:var(--red)}
.crumb .sep{opacity:.4}
.crumb .cur{color:var(--bone)}
.crumb .spacer{flex:1 1 auto}
.crumb .tag{color:var(--red)}

/* ---- hz stripe divider ---- */
.hz{background:var(--ink);color:var(--bone);font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;padding:10px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--hairline-on-ink);border-bottom:1px solid var(--hairline-on-ink);white-space:nowrap;overflow:hidden}
.hz .d{display:flex;gap:18px;align-items:center;color:var(--bone-3)}
.hz .d b{color:var(--red);font-weight:700}
.hz .sep{opacity:.3}
.hazard{height:22px;background:repeating-linear-gradient(-45deg, var(--ink) 0 10px, var(--alert) 10px 20px)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:15px 22px;border:2px solid var(--bone);background:transparent;color:var(--bone);transition:transform .12s, box-shadow .15s;text-decoration:none;cursor:pointer}
.btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--red)}
.btn.red{background:var(--red);border-color:var(--red)}
.btn.red:hover{box-shadow:4px 4px 0 var(--bone)}
.btn.ink{background:var(--ink);border-color:var(--ink);color:var(--bone)}
.btn.bone{background:var(--bone);border-color:var(--bone);color:var(--ink)}
.btn.bone:hover{box-shadow:4px 4px 0 var(--red)}
.btn.ink-out{border-color:var(--ink);color:var(--ink)}
.btn.ink-out:hover{box-shadow:4px 4px 0 var(--red)}
.btn .a{font-family:var(--f-display);font-size:15px;color:var(--red)}
.btn.red .a{color:var(--bone)}

/* ---- hero ---- */
.hero{background:var(--ink);color:var(--bone);position:relative;overflow:hidden;border-bottom:3px solid var(--red)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;background-image:radial-gradient(circle at 2px 2px, var(--bone) 1px, transparent 1.4px);background-size:10px 10px}
.hero .glyph{position:absolute;right:-20px;bottom:-40px;font-family:var(--f-jp);font-weight:900;font-size:min(20vw,240px);color:rgba(236,231,221,.04);line-height:.8;pointer-events:none;z-index:0}
.hero .wrap{position:relative;z-index:1;padding-top:20px;padding-bottom:64px}
.hero-top{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-3);padding-bottom:28px;border-bottom:1px solid var(--hairline-on-ink)}
.hero-top .c{text-align:center;color:var(--bone)}
.hero-top .r{text-align:right}
.hero h1{margin:72px 0 0;font-family:var(--f-display);text-transform:uppercase;font-size:clamp(56px,8.4vw,128px);line-height:.85;letter-spacing:-.025em;color:var(--bone)}
.hero h1 .red{color:var(--red)}
.hero h1 .u{background:var(--red);color:var(--bone);padding:0 .08em;display:inline-block;box-shadow:0 -.095em 0 var(--red),0 .105em 0 var(--red);transform:rotate(-1.15deg);transform-origin:center 60%}
.hero h1 .ink{background:var(--bone);color:var(--ink);padding:0 .08em;display:inline-block;box-shadow:0 -.095em 0 var(--bone),0 .105em 0 var(--bone);transform:rotate(-1.15deg);transform-origin:center 60%}
.hero-sub{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end;margin-top:40px;padding-top:30px;border-top:1px solid var(--hairline-on-ink)}
.hero-sub .lead{font-size:clamp(16px,1.5vw,21px);line-height:1.5;max-width:56ch;color:var(--bone);font-weight:500}
.hero-sub .lead b{color:var(--red);font-weight:900}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.hero-intake-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,500px);gap:44px;align-items:end;margin-top:36px}
.hero-intake-copy{min-width:0}
.hero-intake .hero-intake-copy h1{margin-top:0}
.hero-intake-divider{height:1px;background:var(--hairline-on-ink);margin:32px 0 24px}
.hero-intake-copy .lead{font-size:clamp(16px,1.35vw,20px);line-height:1.5;max-width:58ch;color:var(--bone);font-weight:500}
.hero-intake-copy .lead b{color:var(--red);font-weight:900}
.hero-intake-panel{min-width:0;justify-self:start;width:min(100%,440px)}
.hero-intake-panel .partner-form-card{border:2px solid var(--bone);background:var(--bone);color:var(--ink);box-shadow:8px 8px 0 var(--red);padding:22px;gap:16px}
.hero-intake-panel .partner-form-head{grid-template-columns:minmax(118px,156px) 1fr;border-bottom:2px solid var(--ink);padding-bottom:14px;gap:16px}
.hero-intake-panel .partner-form-head.cio-form-head{grid-template-columns:minmax(172px,202px) 1fr}
.hero-intake-panel .partner-form-logo{min-height:50px;border:2px solid var(--ink);background:var(--ink);padding:10px}
.hero-intake-panel .partner-form-logo img{max-height:32px}
.partner-form-logo.logo-paper{background:var(--bone);border-color:var(--ink)}
.partner-form-logo.cio-form-logo{background:var(--partner-accent,#0b363b);border-color:var(--partner-accent,#0b363b)}
.partner-form-logo.cio-form-logo img{width:182px;max-width:100%;max-height:26px}
.hero-intake-panel .partner-form-logo.logo-paper img{filter:none}
.hero-intake-panel .partner-form-logo.hubspot-form-logo img{width:142px;max-width:100%;max-height:40px}
.hero-intake-panel .partner-form-logo.klaviyo-form-logo img{width:158px;max-width:100%;max-height:44px}
.hero-intake-panel .partner-form-logo.braze-form-logo img{width:102px;max-width:100%;max-height:48px}
.partner-form-logo.logo-pair{gap:9px}
.partner-form-logo.logo-pair img{max-width:calc(50% - 14px);max-height:30px}
.hero-intake-panel .partner-form-head.logo-wide{grid-template-columns:minmax(220px,1fr) max-content}
.hero-intake-panel .partner-form-head.logo-wide .partner-form-logo{min-height:58px}
.hero-intake-panel .partner-form-head.logo-wide .logo-pair img{flex-shrink:0;max-height:34px}
.hero-intake-panel .partner-form-head.logo-wide .logo-pair img.segment-mark{max-width:calc(56% - 8px);max-height:36px}
.partner-form-logo .logo-plus{font-family:var(--f-mono);font-size:13px;font-weight:900;line-height:1;color:var(--red)}
.hero-intake-panel .partner-form-logo .wordmark{font-size:clamp(17px,1.45vw,22px);letter-spacing:0;max-width:100%}
.hero-intake-panel .partner-form-logo .wordmark small{font-size:8px;letter-spacing:.12em}
.hero-intake-panel .partner-form-head span{color:var(--red)}
.hero-intake-panel .partner-form-head b{color:var(--ink);font-size:30px}
.partner-form-head .partner-form-label{display:block;min-width:0;white-space:nowrap}
.partner-form-head .partner-form-label span{display:block;border:0;padding:0;font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;line-height:1;text-transform:uppercase;color:var(--red);font-weight:700}
.partner-form-head .partner-form-label b{display:block;min-width:0;margin-top:4px;white-space:nowrap}
.hero-intake-panel .partner-form-label b{font-size:24px;line-height:.9;white-space:nowrap}
.hero-intake-panel .partner-cf{gap:11px}
.hero-intake-panel .partner-cf-field{gap:5px}
.hero-intake-panel .partner-cf-label{color:var(--ink);opacity:.68}
.hero-intake-panel .partner-cf input,.hero-intake-panel .partner-cf textarea,.hero-intake-panel .partner-cf select{border-color:var(--ink);background:var(--bone);color:var(--ink);padding:10px 11px}
.hero-intake-panel .partner-cf input:focus,.hero-intake-panel .partner-cf textarea:focus,.hero-intake-panel .partner-cf select:focus{border-color:var(--red);box-shadow:3px 3px 0 var(--ink)}
.hero-intake-panel .partner-cf textarea{min-height:70px}
.hero-intake-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}
.hero-intake-actions .partner-submit{width:100%;min-height:50px;padding-left:12px;padding-right:12px;font-size:10px;letter-spacing:.12em;white-space:nowrap}
.hero-intake-actions .partner-submit:hover{box-shadow:4px 4px 0 var(--ink)}
.hero-intake-actions .btn{justify-content:center;white-space:nowrap;padding-left:16px;padding-right:16px;border-color:var(--ink);color:var(--ink)}
.hero-intake-actions .btn:hover{box-shadow:4px 4px 0 var(--red)}
.hero-intake-panel .partner-fine{color:rgba(10,10,10,.62)}
.hero-intake-panel .partner-fine a{color:var(--ink)}
.hero-intake-panel .partner-form-success{border:2px solid var(--ink);background:rgba(10,10,10,.04);color:var(--ink)}
.hero-intake-panel .partner-form-success h3{color:var(--ink)}
.hero-intake-panel .partner-form-success p{color:rgba(10,10,10,.72)}
.hero-intake .metrics{margin-top:44px}

/* thin variant hero for spoke pages: compact vertical padding, title matches base size */
.hero.thin .wrap{padding-top:40px;padding-bottom:48px}
.hero.thin h1{margin-top:34px}

/* ---- metrics ---- */
.metrics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hairline-on-ink);border-bottom:1px solid var(--hairline-on-ink);margin-top:52px}
.metrics.four{grid-template-columns:repeat(4,1fr)}
.metrics .m{padding:20px 24px;border-right:1px solid var(--hairline-on-ink);display:flex;flex-direction:column;gap:4px}
.metrics .m:last-child{border-right:none}
.metrics .k{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-3)}
.metrics .n{font-family:var(--f-display);font-size:clamp(38px,4.8vw,64px);line-height:.9;letter-spacing:-.02em;color:var(--bone)}
.metrics .n .red{color:var(--red)}
.metrics .n small{font-size:.42em;font-family:var(--f-mono);letter-spacing:.14em;vertical-align:middle}
.metrics .d{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--bone-2)}

/* ---- section head ---- */
section{position:relative}
.sec-head{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:end;padding:84px 0 18px;border-bottom:3px solid var(--ink)}
.sec-head.tight{padding-top:56px}
.sec-head .idx{font-family:var(--f-mono);font-size:13px;letter-spacing:.18em;text-transform:uppercase}
.sec-head .idx b{color:var(--red)}
.sec-head h2{margin:0;font-family:var(--f-display);font-size:clamp(34px,5.6vw,80px);line-height:.9;letter-spacing:-.02em;text-transform:uppercase;text-align:center}
.sec-head .jp{font-family:var(--f-jp);font-weight:700;font-size:14px;letter-spacing:.12em;opacity:.65;text-align:right}
.sec-body{padding:36px 0 20px}
.sec-lead{max-width:64ch;margin:0 0 34px;font-size:clamp(15px,1.4vw,18px);line-height:1.6}
.sec-lead b{font-weight:900}

/* ---- about split ---- */
.about{display:grid;grid-template-columns:1fr 1.2fr;border:2px solid var(--ink)}
.about .l{background:var(--red);color:var(--bone);padding:36px 32px 32px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:16px;justify-content:space-between;min-height:360px}
.about .l::after{content:"◆";position:absolute;right:-12px;bottom:-50px;font-family:var(--f-jp);font-weight:900;font-size:220px;color:rgba(10,10,10,.18);line-height:.8}
.about .l .mark{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(236,231,221,.8)}
.about .l h3{margin:0;font-family:var(--f-display);font-size:clamp(32px,3.6vw,50px);line-height:.9;text-transform:uppercase;letter-spacing:-.015em;position:relative;z-index:2}
.about .l .meta{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:2}
.about .l .meta span{border:1px solid var(--bone);padding:4px 9px}
.about .r{background:var(--bone);padding:36px 32px;display:flex;flex-direction:column;gap:18px;border-left:2px solid var(--ink)}
.about .r p{margin:0;font-size:15px;line-height:1.6;max-width:60ch}
.about .r p b{font-weight:900}
.about .r .sig{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;border-top:1px solid var(--hairline);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.75}
.about.ink .l{background:var(--ink)}
.about.ink .l::after{color:rgba(236,231,221,.05)}

/* ---- platform grid ---- */
.platforms{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink)}
.pcard{padding:30px 26px 26px;border-right:2px solid var(--ink);display:flex;flex-direction:column;gap:16px;position:relative;min-height:400px;overflow:hidden;text-decoration:none;color:var(--ink);background:var(--bone);transition:background .15s}
.pcard:last-child{border-right:none}
.pcard:hover{background:#f4efe6}
.pcard .n{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.pcard h3{margin:0;font-family:var(--f-display);font-size:32px;line-height:.92;letter-spacing:-.015em;text-transform:uppercase}
.pcard .wedge{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink);opacity:.88;max-width:32ch}
.pcard ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-family:var(--f-mono);font-size:11px;letter-spacing:.04em;color:var(--ink);opacity:.82}
.pcard ul li{display:grid;grid-template-columns:14px 1fr;gap:8px}
.pcard ul li::before{content:"◉";color:var(--red);font-size:9px;align-self:center}
.pcard .k{position:absolute;right:-8px;bottom:-26px;font-family:var(--f-jp);font-weight:900;font-size:150px;color:rgba(10,10,10,.05);line-height:.8;pointer-events:none}
.pcard .go{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--hairline);font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.pcard .go .a{font-family:var(--f-display);font-size:14px;color:var(--red)}
.pcard.red{background:var(--red);color:var(--bone)}
.pcard.red:hover{background:#cf0027}
.pcard.red .n,.pcard.red .wedge,.pcard.red ul{color:var(--bone);opacity:.95}
.pcard.red ul li::before{color:var(--ink)}
.pcard.red .go{border-top-color:rgba(236,231,221,.25)}
.pcard.red .go .a{color:var(--ink)}
.pcard.red .k{color:rgba(10,10,10,.16)}
.pcard.ink{background:var(--ink);color:var(--bone)}
.pcard.ink:hover{background:var(--ink-3)}
.pcard.ink .wedge,.pcard.ink ul{color:var(--bone-2)}
.pcard.ink .go{border-top-color:var(--hairline-on-ink)}
.pcard.ink .k{color:rgba(236,231,221,.06)}
.pcard.soon{opacity:.72}
.pcard.soon .go .a{color:var(--ink);opacity:.5}

/* ---- offer ladder ---- */
.ladder{border:2px solid var(--ink)}
.rung{display:grid;grid-template-columns:76px 1fr auto;gap:0;border-bottom:2px solid var(--ink);align-items:stretch}
.rung:last-child{border-bottom:none}
.rung .num{background:var(--ink);color:var(--bone);font-family:var(--f-display);font-size:26px;display:flex;align-items:center;justify-content:center;letter-spacing:-.01em;border-right:2px solid var(--ink)}
.rung .body{padding:22px 26px;display:flex;flex-direction:column;gap:7px;border-left:0}
.rung .body .step{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.rung .body h4{margin:0;font-family:var(--f-display);font-size:23px;text-transform:uppercase;letter-spacing:-.01em;line-height:.98}
.rung .body .tk{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.rung .body p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink);opacity:.86;max-width:70ch}
.rung .price{padding:22px 26px;display:flex;flex-direction:column;gap:4px;align-items:flex-end;justify-content:center;text-align:right;border-left:1px solid var(--hairline);min-width:180px}
.rung .price .amt{font-family:var(--f-display);font-size:22px;letter-spacing:-.01em;color:var(--ink);line-height:1}
.rung .price .amt .red{color:var(--red)}
.rung .price .u{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.6}
.rung.hot{background:var(--red)}
.rung.hot .num{background:var(--ink)}
.rung.hot .body h4,.rung.hot .price .amt{color:var(--bone)}
.rung.hot .body .tk{color:var(--ink)}
.rung.hot .body p{color:var(--bone);opacity:.95}
.rung.hot .price{border-left-color:rgba(236,231,221,.3)}
.rung.hot .price .u,.rung.hot .price .amt .red{color:var(--bone)}
.rung.cap{background:var(--ink)}
.rung.cap .num{background:var(--red)}
.rung.cap .body h4,.rung.cap .price .amt{color:var(--bone)}
.rung.cap .body p{color:var(--bone-2)}
.rung.cap .body .tk{color:var(--red)}
.rung.cap .price{border-left-color:var(--hairline-on-ink)}
.rung.cap .price .u{color:var(--bone-3)}

/* ---- process steps (horizontal) ---- */
.process{display:grid;grid-template-columns:repeat(5,1fr);border:2px solid var(--ink)}
.process.four{grid-template-columns:repeat(4,1fr)}
.pstep{padding:24px 20px 22px;border-right:2px solid var(--ink);display:flex;flex-direction:column;gap:12px;position:relative;min-height:230px}
.pstep:last-child{border-right:none}
.pstep .n{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);display:flex;justify-content:space-between;align-items:center}
.pstep .n .ar{color:var(--red);font-family:var(--f-display);font-size:15px}
.pstep h4{margin:0;font-family:var(--f-display);font-size:22px;text-transform:uppercase;letter-spacing:-.01em;line-height:.95}
.pstep p{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink);opacity:.85}
.pstep .out{margin-top:auto;padding-top:12px;border-top:1px solid var(--hairline);font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);opacity:.7}
.pstep .out b{color:var(--red);font-weight:700}

/* ---- proof grid ---- */
.proof{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink)}
.proof .cell{padding:26px 24px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);display:flex;flex-direction:column;gap:10px;min-height:200px;position:relative;overflow:hidden}
.proof .cell:nth-child(3n){border-right:none}
.proof .cell:nth-last-child(-n+3){border-bottom:none}
.proof .cell .n{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.proof .cell h4{margin:0;font-family:var(--f-display);font-size:21px;text-transform:uppercase;letter-spacing:-.01em;line-height:.98;max-width:18ch}
.proof .cell p{margin:0;font-size:13px;line-height:1.5;color:var(--ink);opacity:.86}
.proof .cell .tail{margin-top:auto;padding-top:12px;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.55}

/* ---- checklist ---- */
.checklist{display:grid;grid-template-columns:repeat(2,1fr);border:2px solid var(--ink)}
.ckgroup{border-right:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.checklist .ckgroup:nth-child(2n){border-right:none}
.checklist .ckgroup:nth-last-child(-n+1){border-bottom:none}
.ckgroup .h{background:var(--ink);color:var(--bone);padding:13px 20px;display:flex;justify-content:space-between;align-items:center;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.ckgroup .h .t{color:var(--red)}
.ckgroup ul{margin:0;padding:16px 20px;list-style:none;display:flex;flex-direction:column;gap:10px}
.ckgroup li{position:relative;padding-left:24px;font-size:13.5px;line-height:1.45}
.ckgroup li::before{content:"✓";position:absolute;left:0;top:0;color:var(--red);font-family:var(--f-mono);font-weight:700;font-size:13px;line-height:1.5}
.ckgroup li b{font-weight:900}

/* ---- data table ---- */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;border:2px solid var(--ink)}
.tbl thead th{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;text-align:left;padding:12px 16px;border-bottom:2px solid var(--ink);background:var(--ink);color:var(--bone)}
.tbl tbody td{padding:14px 16px;border-bottom:1px solid var(--hairline);vertical-align:top}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr:hover{background:rgba(228,0,43,.04)}
.tbl td .mono{font-family:var(--f-mono);font-size:12px}
.tbl td b{font-weight:900}
.tbl .from{color:var(--ink);opacity:.7}
.tbl .arrow{color:var(--red);font-family:var(--f-display)}

/* ---- compare (from → to) ---- */
.compare{display:grid;grid-template-columns:1fr 96px 1fr;border:2px solid var(--ink);align-items:stretch}
.compare .side{padding:30px 28px;display:flex;flex-direction:column;gap:14px;min-height:300px}
.compare .side.from{background:var(--bone-2)}
.compare .side.to{background:var(--ink);color:var(--bone)}
.compare .side .lb{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.compare .side h3{margin:0;font-family:var(--f-display);font-size:26px;text-transform:uppercase;letter-spacing:-.01em;line-height:.95}
.compare .side ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;font-size:13px;line-height:1.45}
.compare .side ul li{display:grid;grid-template-columns:16px 1fr;gap:9px}
.compare .side.from ul li::before{content:"–";color:var(--ink);opacity:.5;font-family:var(--f-mono)}
.compare .side.to ul li::before{content:"◉";color:var(--red);font-size:9px;align-self:center}
.compare .mid{background:var(--red);color:var(--bone);display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:40px;border-left:2px solid var(--ink);border-right:2px solid var(--ink)}

/* ---- manifesto ---- */
.manifesto{background:var(--bone);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:60px 0}
.manifesto .row{display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:end}
.manifesto .line{font-family:var(--f-display);text-transform:uppercase;font-size:clamp(30px,4.4vw,62px);line-height:.98;letter-spacing:-.02em;max-width:22ch}
.manifesto .line em{font-style:normal;color:var(--red)}
.manifesto .who{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.7;max-width:22ch;text-align:right}

/* ---- faq ---- */
.faq{border:2px solid var(--ink);display:flex;flex-direction:column}
.q{border-bottom:1px solid var(--ink);padding:20px 24px;display:grid;grid-template-columns:48px 1fr 28px;gap:22px;align-items:center;cursor:pointer}
.q:last-child{border-bottom:none}
.q .n{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;color:var(--red);font-weight:700}
.q .txt{font-family:var(--f-body);font-size:17px;font-weight:700;letter-spacing:-.005em;line-height:1.3}
.q .plus{font-family:var(--f-display);font-size:24px;color:var(--ink);justify-self:end}
.q .a{grid-column:2/3;font-size:14px;line-height:1.6;color:var(--ink);opacity:.85;margin-top:10px;max-width:74ch;display:none}
.q.open .a{display:block}
.q.open{background:rgba(228,0,43,.04)}
.q.open .plus{color:var(--red)}

/* ---- cta banner ---- */
section.cta{background:var(--red);color:var(--bone);position:relative;overflow:hidden;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);margin-top:72px}
section.cta::before{content:"";position:absolute;inset:0;opacity:.16;mix-blend-mode:multiply;pointer-events:none;background-image:radial-gradient(circle at 2px 2px, #000 1.2px, transparent 1.6px);background-size:6px 6px}
section.cta .glyph{position:absolute;right:-24px;bottom:-60px;font-family:var(--f-jp);font-weight:900;font-size:min(34vw,360px);color:rgba(10,10,10,.14);line-height:.8;pointer-events:none}
section.cta .row{position:relative;padding:66px 0;display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center}
section.cta h2{margin:0;font-family:var(--f-display);font-size:clamp(40px,6.2vw,96px);line-height:.88;letter-spacing:-.02em;text-transform:uppercase;color:var(--bone)}
section.cta h2 .u{background:var(--ink);color:var(--bone);padding:0 .12em}
section.cta .right{display:flex;flex-direction:column;gap:18px;align-items:flex-end;text-align:right}
section.cta .right p{margin:0;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:rgba(236,231,221,.92);max-width:40ch;line-height:1.55}

/* ---- footer ---- */
footer{background:var(--ink);color:var(--bone);padding:68px 0 26px;position:relative;overflow:hidden}
footer .glyph{position:absolute;right:-20px;top:-40px;font-family:var(--f-jp);font-weight:900;font-size:280px;color:rgba(236,231,221,.04);line-height:.8;pointer-events:none}
/* Harbor plate: the quay the "actually ships" line comes from, sunk into the ink
   so it reads as the footer's own texture and not a photograph dropped on top.
   Built on the same idea as the ship clips in ship-campaign.css — art bled off
   the edges of an overflow:hidden band and dissolved back into the ink by a mask,
   so no edge of the plate is ever a visible rectangle.

   The painting is landscape, so it takes the whole band rather than sitting in
   the footer's right half. inset:0 and a cover fit: at 1440x436 the footer is
   3.3 wide for every 1 tall against the art's 1.83, so the fit is width-driven
   and roughly 45% of the art's height is cropped. That makes background-position
   the only real composition control — 100% lands on the cobblestones, 0% on open
   sky. 35% is where both carved sterns clear the top of the frame with their
   rigging intact and the whole crowd on the quay is still in it; the crop is
   spent on sky above the masts and paving below the figures, which is the part
   of the painting that carries nothing.

   Only the top edge is faded. Without it the band's upper strip shows open sky
   in a hard rectangle and reads as a photograph in a box; with it the harbor
   rises out of the ink. No left fade: clearing the left third is exactly what
   made an earlier pass read as an object beside the display type rather than as
   the band's own surface, and at this alpha the type holds contrast over it.

   z-index:-1 inside a footer promoted to a stacking context puts the plate above
   the ink fill and below every child, so not one content rule has to move.
   isolation:isolate is what stops -1 sinking behind the fill entirely.

   A pseudo-element rather than markup: this footer is duplicated across the
   static pages and the Astro layout, so an <img> would be the same edit three
   dozen times with nothing to keep the copies honest. Bare `footer` and not
   `body>footer` because cloth.js moves the footer inside div.cui-cloth at
   attach time — a child-of-body selector silently stops matching there. Static
   pages carry exactly one footer, so the bare selector is already narrow.

   The asset is baked at saturation 1.4 rather than filtered at runtime: a
   filter on a plate this large forces its own compositing pass on every cloth
   frame, and html-in-canvas gives no guarantee it honours `filter` the way the
   CSS path does. Baking also means the chroma is free — measured over the three
   type bands, going from saturation .55 to 1.4 moved the background luminance
   under the copy by less than 0.2 of 255, because it rotates chroma and leaves
   luma alone. .36 is the alpha, and alpha is the lever that does cost: .3 to .36
   lifts the mean behind the small mono blurb from 57.5 to 62.7 and is where the
   painting stops reading as a tint; .42 lifts it to 68 and the blurb starts
   losing the fight. */
footer{isolation:isolate}
footer::after{
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:url("/ships/harbor-quay.webp") 50% 35%/cover no-repeat;
  opacity:.36;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 30%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 30%);
}
.ft-logo{height:38px;width:auto;display:block;margin:0 0 22px}
.ft{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:36px;position:relative}
.ft h5{margin:0 0 14px;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
.ft .big{font-family:var(--f-display);font-size:clamp(36px,5vw,76px);line-height:1;text-transform:uppercase;letter-spacing:-.02em;color:var(--bone)}
.ft .big .red{color:var(--red)}
.ft .lg{display:flex;flex-direction:column;gap:8px;font-family:var(--f-mono);font-size:12px;color:var(--bone-2)}
.ft .lg a{text-decoration:none}
.ft .lg a:hover{color:var(--red)}
.ft-bot{display:flex;justify-content:space-between;align-items:center;margin-top:44px;padding-top:18px;border-top:1px solid var(--hairline-on-ink);font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3);gap:20px;flex-wrap:wrap}
.ft-bot .links{display:flex;gap:18px}
.ft-bot a{text-decoration:none}

/* ---- mid-page band ---- */
.band{background:var(--ink);color:var(--bone);border:2px solid var(--ink);display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;padding:30px 34px;position:relative;overflow:hidden}
.band.red{background:var(--red);border-color:var(--red)}
.band .glyph{position:absolute;right:-16px;bottom:-46px;font-family:var(--f-jp);font-weight:900;font-size:170px;color:rgba(236,231,221,.05);line-height:.8;pointer-events:none}
.band.red .glyph{color:rgba(10,10,10,.14)}
.band .l{display:flex;flex-direction:column;gap:8px;position:relative;z-index:1}
.band .l .n{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.band.red .l .n{color:var(--ink)}
.band h3{margin:0;font-family:var(--f-display);font-size:clamp(22px,2.8vw,38px);line-height:.98;text-transform:uppercase;letter-spacing:-.01em;max-width:26ch}
.band p{margin:0;font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;line-height:1.5;color:var(--bone-2);max-width:52ch}
.band.red p{color:rgba(10,10,10,.75)}
.band .act{position:relative;z-index:1}

/* ---- partner intake form ---- */
.partner-lead{padding-top:72px}
.partner-lead-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);border:2px solid var(--ink);background:var(--bone);align-items:stretch}
.partner-lead-copy{padding:34px 34px 30px;display:flex;flex-direction:column;gap:16px;border-right:2px solid var(--ink);min-width:0}
.partner-lead-copy .n{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-weight:700}
.partner-lead-copy h2{margin:0;font-family:var(--f-display);font-size:clamp(34px,5vw,72px);line-height:.86;text-transform:uppercase;letter-spacing:-.02em;max-width:10ch}
.partner-lead-copy p{margin:0;font-size:15px;line-height:1.55;max-width:58ch;opacity:.86}
.partner-lead-proof{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:18px}
.partner-lead-proof span{border:1px solid var(--hairline);padding:7px 9px;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.partner-form-card{background:var(--ink);color:var(--bone);padding:24px;display:flex;flex-direction:column;gap:18px;min-width:0}
.partner-form-head{display:grid;grid-template-columns:minmax(112px,170px) 1fr;gap:16px;align-items:center;border-bottom:1px solid var(--hairline-on-ink);padding-bottom:16px}
.partner-form-logo{min-height:58px;border:1px solid var(--hairline-on-ink);display:flex;align-items:center;justify-content:center;background:rgba(236,231,221,.06);padding:12px;box-sizing:border-box;overflow:hidden}
.partner-form-logo img{display:block;max-width:100%;max-height:42px;object-fit:contain;filter:none}
.partner-form-logo .wordmark{font-family:var(--f-display);font-size:clamp(20px,2.4vw,34px);line-height:.86;text-transform:uppercase;letter-spacing:-.015em;color:var(--bone);text-align:center}
.partner-form-logo .wordmark small{display:block;margin-top:5px;font-family:var(--f-mono);font-size:9px;line-height:1;letter-spacing:.16em;color:var(--red)}
.partner-form-head span{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-weight:700}
.partner-form-head b{display:block;margin-top:4px;font-family:var(--f-display);font-size:25px;line-height:.9;text-transform:uppercase;letter-spacing:-.01em;color:var(--bone)}
.partner-cf{display:flex;flex-direction:column;gap:13px}
.partner-cf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.partner-cf-field{display:flex;flex-direction:column;gap:6px}
.partner-cf-label{font-family:var(--f-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-3)}
.partner-cf input,.partner-cf textarea,.partner-cf select{width:100%;padding:11px 12px;border:2px solid var(--bone-3);background:var(--ink);color:var(--bone);font-family:var(--f-body);font-size:14px;line-height:1.4;outline:none;border-radius:0;box-sizing:border-box}
.partner-cf textarea{min-height:92px;resize:vertical}
.partner-cf select{appearance:none}
.partner-cf input:focus,.partner-cf textarea:focus,.partner-cf select:focus{border-color:var(--red)}
.partner-submit{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--red);color:var(--bone);border:2px solid var(--red);padding:14px 18px;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:transform .12s,box-shadow .15s}
.partner-submit:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--bone)}
.partner-submit .a{font-family:var(--f-display);font-size:15px}
.partner-fine{margin:0;font-family:var(--f-mono);font-size:9px;letter-spacing:.08em;line-height:1.5;text-transform:uppercase;color:var(--bone-3)}
.partner-fine a{color:var(--bone);text-decoration:none;border-bottom:none}
.partner-form-success{display:none;border:1px solid var(--hairline-on-ink);padding:22px;background:rgba(236,231,221,.05)}
.partner-form-success .cf-eyebrow{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.partner-form-success h3{margin:0 0 10px;font-family:var(--f-display);font-size:34px;line-height:.92;text-transform:uppercase;letter-spacing:-.01em;color:var(--bone)}
.partner-form-success p{margin:0;font-size:14px;line-height:1.55;color:var(--bone-2)}

/* ---- wedge chips ---- */
.wedges{display:flex;flex-wrap:wrap;gap:0;border:2px solid var(--ink);border-top:none}
.wedges .w{flex:1 1 200px;padding:16px 20px;border-right:1px solid var(--hairline);border-top:1px solid var(--hairline);display:flex;gap:10px;align-items:baseline;font-size:13.5px;line-height:1.4}
.wedges .w::before{content:"◉";color:var(--red);font-size:9px}
.wedges .w b{font-weight:900}

/* ---- timeline / phases ---- */
.timeline{border:2px solid var(--ink)}
.phase{display:grid;grid-template-columns:170px 1fr;border-bottom:2px solid var(--ink)}
.phase:last-child{border-bottom:none}
.phase .wk{background:var(--ink);color:var(--bone);padding:22px 22px;display:flex;flex-direction:column;gap:4px;justify-content:center;border-right:2px solid var(--ink);position:relative;overflow:hidden}
.phase .wk .d{font-family:var(--f-display);font-size:30px;line-height:.9;letter-spacing:-.01em}
.phase .wk .lb{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.phase .c{padding:20px 26px;display:flex;flex-direction:column;gap:10px}
.phase .c h4{margin:0;font-family:var(--f-display);font-size:21px;text-transform:uppercase;letter-spacing:-.01em;line-height:.98}
.phase .c p{margin:0;font-size:13.5px;line-height:1.5;opacity:.86;max-width:72ch}
.phase .c .row{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.phase .c .row span{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--hairline);padding:5px 9px}
.phase.hot .wk{background:var(--red)}
.phase.hot .wk .lb{color:var(--ink)}

/* ---- architecture map ---- */
.arch{display:grid;grid-template-columns:1fr 88px 1fr 88px 1fr;border:2px solid var(--ink);align-items:stretch}
.arch .col{padding:22px 20px;display:flex;flex-direction:column;gap:12px}
.arch .col .h{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);padding-bottom:10px;border-bottom:1px solid var(--hairline)}
.arch .col.mid{background:var(--red);color:var(--bone)}
.arch .col.mid .h{color:var(--ink);border-bottom-color:rgba(10,10,10,.25)}
.arch .node{border:1px solid var(--hairline);padding:11px 13px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.02em;display:flex;justify-content:space-between;align-items:center;gap:8px;background:rgba(10,10,10,.02)}
.arch .col.mid .node{border-color:rgba(236,231,221,.35);background:rgba(10,10,10,.12)}
.arch .node b{font-family:var(--f-body);font-weight:900;font-size:13px}
.arch .node .t{opacity:.6}
.arch .conn{display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:26px;color:var(--red);border-left:1px solid var(--hairline);border-right:1px solid var(--hairline)}

/* ---- related strip ---- */
.related{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink)}
.related.four{grid-template-columns:repeat(4,1fr)}
.related a{padding:22px 22px;border-right:2px solid var(--ink);text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:8px;min-height:132px;background:var(--bone);transition:background .15s}
.related a:last-child{border-right:none}
.related a:hover{background:#f4efe6}
.related a .n{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.related a h4{margin:0;font-family:var(--f-display);font-size:20px;text-transform:uppercase;letter-spacing:-.01em;line-height:.98}
.related a p{margin:0;font-size:12.5px;line-height:1.45;opacity:.82}
.related a .go{margin-top:auto;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}

/* ---- Attentive contrast guardrails ---- */
body.partner-attentive{
  --attentive-readable:#645600;
}
body.partner-attentive .announce,
body.partner-attentive .badge.red,
body.partner-attentive .tb-actions .cta,
body.partner-attentive .btn.red,
body.partner-attentive .btn.red .a,
body.partner-attentive .hero h1 .u,
body.partner-attentive .pcard.red,
body.partner-attentive .pcard.red .n,
body.partner-attentive .pcard.red .wedge,
body.partner-attentive .pcard.red ul,
body.partner-attentive .svc.red,
body.partner-attentive .svc.red .n,
body.partner-attentive .svc.red p,
body.partner-attentive .svc.red ul,
body.partner-attentive .svc.red .go .a,
body.partner-attentive .rung.hot,
body.partner-attentive .rung.hot .body h4,
body.partner-attentive .rung.hot .body p,
body.partner-attentive .rung.hot .body .tk,
body.partner-attentive .rung.hot .price .amt,
body.partner-attentive .rung.hot .price .amt .red,
body.partner-attentive .rung.hot .price .u,
body.partner-attentive .rung.cap .num,
body.partner-attentive .compare .mid,
body.partner-attentive section.cta,
body.partner-attentive section.cta h2,
body.partner-attentive section.cta .right p,
body.partner-attentive .band.red,
body.partner-attentive .band.red .l .n,
body.partner-attentive .band.red p,
body.partner-attentive .phase.hot .wk,
body.partner-attentive .phase.hot .wk .lb,
body.partner-attentive .arch .col.mid,
body.partner-attentive .eng-item .t .tag,
body.partner-attentive .eng-hero-meta .price,
body.partner-attentive .eng-detail .col.red,
body.partner-attentive .partner-submit,
body.partner-attentive .partner-submit .a{
  color:var(--ink);
}
body.partner-attentive .red,
body.partner-attentive .sec-head .idx b,
body.partner-attentive .pcard .n,
body.partner-attentive .pcard .go .a,
body.partner-attentive .rung .body .tk,
body.partner-attentive .rung .price .amt .red,
body.partner-attentive .pstep .n,
body.partner-attentive .pstep .n .ar,
body.partner-attentive .pstep .out b,
body.partner-attentive .proof .cell .n,
body.partner-attentive .ckgroup .h .t,
body.partner-attentive .ckgroup li::before,
body.partner-attentive .tbl .arrow,
body.partner-attentive .compare .side .lb,
body.partner-attentive .compare .side.to ul li::before,
body.partner-attentive .manifesto .line em,
body.partner-attentive .q .n,
body.partner-attentive .q.open .plus,
body.partner-attentive .partner-lead-copy .n,
body.partner-attentive .partner-form-head span,
body.partner-attentive .partner-form-success .cf-eyebrow,
body.partner-attentive .wedges .w::before,
body.partner-attentive .phase .wk .lb,
body.partner-attentive .arch .col .h,
body.partner-attentive .arch .conn,
body.partner-attentive .related a .n,
body.partner-attentive .related a .go{
  color:var(--attentive-readable);
}
body.partner-attentive .hero .red,
body.partner-attentive .hero-sub .lead b,
body.partner-attentive .hero-intake-copy .lead b,
body.partner-attentive .metrics .n .red,
body.partner-attentive .partner-lead .partner-form-head span{
  color:var(--partner-accent);
}
body.partner-attentive .announce b,
body.partner-attentive .btn.ink,
body.partner-attentive .band.red .btn.ink,
body.partner-attentive section.cta .btn.ink,
body.partner-attentive .rung.hot .num,
body.partner-attentive .rung.cap,
body.partner-attentive .rung.cap .body h4,
body.partner-attentive .rung.cap .body p,
body.partner-attentive .rung.cap .body .tk,
body.partner-attentive .rung.cap .price .amt,
body.partner-attentive .rung.cap .price .u,
body.partner-attentive .compare .side.to,
body.partner-attentive .compare .side.to .lb{
  color:var(--bone);
}
body.partner-attentive footer .ft .big .red,
body.partner-attentive footer .ft .lg a:hover{
  color:var(--partner-accent);
}
body.partner-attentive .partner-form-logo.logo-paper{
  background:var(--partner-accent);
  border-color:var(--ink);
}
body.partner-attentive .cw-root .cw-btn.red,
body.partner-attentive .cw-root .cw-btn.red .cw-a,
body.partner-attentive .cw-root .cw-send:hover{
  color:var(--ink);
}
body.partner-attentive .cw-root .cw-msg .p,
body.partner-attentive .cw-root .cw-msg a,
body.partner-attentive .cw-root .cw-cprefs:hover{
  color:var(--attentive-readable)!important;
}
body.partner-attentive .cw-root .cw-toggle[aria-checked="true"]::after{
  background:var(--ink);
}
body.partner-attentive .partner-cf input:focus,
body.partner-attentive .partner-cf textarea:focus,
body.partner-attentive .partner-cf select:focus{
  border-color:var(--attentive-readable);
}

/* ---- responsive ---- */
@media (max-width:1100px){
  .hero-sub{grid-template-columns:1fr}
  .hero-ctas{justify-content:flex-start}
  .metrics,.metrics.four{grid-template-columns:1fr 1fr}
  .about{grid-template-columns:1fr}
  .about .r{border-left:none;border-top:2px solid var(--ink)}
  .platforms{grid-template-columns:1fr}
  .pcard{border-right:none;border-bottom:2px solid var(--ink)}
  .pcard:last-child{border-bottom:none}
  .process,.process.four{grid-template-columns:1fr 1fr}
  .pstep{border-right:none;border-bottom:2px solid var(--ink)}
  .proof{grid-template-columns:1fr 1fr}
  .proof .cell{border-right:2px solid var(--ink) !important;border-bottom:2px solid var(--ink) !important}
  .proof .cell:nth-child(2n){border-right:none !important}
  section.cta .row{grid-template-columns:1fr}
  section.cta .right{align-items:flex-start;text-align:left}
  .ft{grid-template-columns:1fr 1fr}
  .band{grid-template-columns:1fr;gap:20px}
  .arch{grid-template-columns:1fr}
  .arch .conn{border:none;padding:6px 0;transform:rotate(90deg)}
  .arch .col{border-bottom:1px solid var(--hairline)}
  .related{grid-template-columns:1fr}
  .related a{border-right:none;border-bottom:2px solid var(--ink)}
  .related a:last-child{border-bottom:none}
}
@media (max-width:720px){
  .hero-top{grid-template-columns:1fr;gap:8px;text-align:left}
  .hero-top .c,.hero-top .r{text-align:left}
  .metrics,.metrics.four{grid-template-columns:1fr}
  .metrics .m{border-right:none;border-bottom:1px solid var(--hairline-on-ink)}
  .process,.process.four{grid-template-columns:1fr}
  .pstep{border-right:none}
  .proof{grid-template-columns:1fr}
  .proof .cell{border-right:none !important}
  .checklist{grid-template-columns:1fr}
  .ckgroup{border-right:none !important}
  .compare{grid-template-columns:1fr}
  .compare .mid{border-left:none;border-right:none;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);height:56px;min-height:56px;transform:none;font-size:0}
  .compare .mid::before{content:"↓";font-family:var(--f-display);font-size:36px;line-height:1;color:var(--bone)}
  .rung{grid-template-columns:56px 1fr}
  .rung .price{grid-column:1/3;border-left:none;border-top:1px solid var(--hairline);display:grid;grid-template-columns:minmax(0,max-content) minmax(72px,1fr);column-gap:10px;align-items:center;justify-content:stretch;text-align:left}
  .rung .price .amt{min-width:0;white-space:nowrap}
  .rung .price > .u{justify-self:end;text-align:right;white-space:nowrap;position:relative;top:4px}
  .manifesto .row{grid-template-columns:1fr;gap:18px}
  .manifesto .who{text-align:left}
  .sec-head{grid-template-columns:1fr;gap:8px}
  .sec-head h2{text-align:left}
  .sec-head .jp{text-align:left}
  .ft{grid-template-columns:1fr}
  .phase{grid-template-columns:1fr}
  .phase .wk{border-right:none;border-bottom:2px solid var(--ink);flex-direction:row;gap:12px;align-items:baseline}
}


/* ---- boot splash (logo animation) ---- */
body.splash-lock{overflow:hidden}
#splash{position:fixed;inset:0;z-index:100000;background:var(--ink);color:var(--bone);display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .6s ease}
#splash.is-out{opacity:0;pointer-events:none}
#splash .splash-scan{position:absolute;inset:0;pointer-events:none;opacity:.1;mix-blend-mode:screen;background-image:repeating-linear-gradient(to bottom, transparent 0 2px, rgba(255,255,255,.5) 2px 3px)}
#splash .splash-grit{position:absolute;inset:0;pointer-events:none;opacity:.45;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.7' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.splash-frame{position:relative;width:min(90vw,640px);border:2px solid var(--hairline-on-ink);padding:26px 30px;display:flex;flex-direction:column;gap:24px}
.splash-corner{position:absolute;font-family:var(--f-jp);font-weight:900;font-size:15px;color:var(--red);line-height:1}
.splash-corner.tl{top:9px;left:11px}.splash-corner.tr{top:9px;right:11px}.splash-corner.bl{bottom:9px;left:11px}.splash-corner.br{bottom:9px;right:11px}
.splash-top,.splash-bot{display:flex;justify-content:space-between;align-items:center;gap:14px}
.splash-tag{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3);white-space:nowrap}
.splash-tag.c{color:var(--bone)}.splash-tag.r{text-align:right}
.splash-stage{display:flex;align-items:center;justify-content:center;padding:6px 0;min-height:180px}
/* No filter here: the animation ships in the paper build, which bakes in the
   invert(1) this rule used to carry and tints the art to the header mark's
   rgb(213,207,194). The cloth capture rasterizes the SVG without CSS filters,
   so the tint has to live in the JSON or the fabric and the plain-DOM splash
   would disagree. Width is unchanged from the original rule. */
.splash-stage lottie-player,#splash-lottie{width:min(62vw,440px);height:auto}
.splash-bar{flex:1;height:4px;background:rgba(236,231,221,.14);overflow:hidden}
.splash-bar > span{display:block;height:100%;width:0;background:var(--red);animation:splashbar 2.4s cubic-bezier(.6,.02,.2,1) forwards}
@keyframes splashbar{0%{width:0}70%{width:84%}100%{width:100%}}
@media (max-width:520px){.splash-tag.c{display:none}.splash-top,.splash-bot{flex-wrap:wrap}}


/* ---- partners / credentials ---- */
.partners .prt-grid{display:grid;grid-template-columns:repeat(4,1fr);border:2px solid var(--ink)}
.prt-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px 18px;border-right:2px solid var(--ink);text-decoration:none;color:var(--ink);background:var(--bone);min-height:176px;transition:background .15s}
.prt-cell:last-child{border-right:none}
.prt-cell:hover{background:#f4efe6}
.prt-cell img{max-height:48px;max-width:176px;width:auto;height:auto;object-fit:contain;transition:transform .2s}
.prt-cell.prt-cio img{width:min(240px,100%);max-width:240px;max-height:36px}
.prt-cell:hover img{transform:scale(1.05)}
.prt-hubspot img{width:150px;height:44px;max-width:150px}
.prt-cio img{width:min(240px,100%);height:auto;max-width:240px}
.prt-klaviyo img{width:168px;height:50px;max-width:168px}
.prt-braze img{width:138px;height:58px;max-width:138px}
.prt-anthropic img{max-height:23px;max-width:182px}
.prt-dl img{max-height:64px;max-width:74px}
.prt-label{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink);opacity:.66;text-align:center;line-height:1.45;position:relative;z-index:1}
.prt-cell.prt-waypath{background:var(--red);position:relative;overflow:hidden}
.prt-cell.prt-waypath:hover{background:#cf0027}
.prt-cell.prt-waypath img{max-height:44px;max-width:152px;position:relative;z-index:1}
.prt-cell.prt-waypath .prt-label{color:var(--bone);opacity:.95}
.prt-ascii{position:absolute;inset:0;margin:0;padding:9px 8px;font-family:var(--f-mono);font-size:11px;line-height:14px;letter-spacing:1px;color:rgba(255,255,255,.15);white-space:pre;overflow:hidden;pointer-events:none;z-index:0;user-select:none}
@media (max-width:1100px){.partners .prt-grid{grid-template-columns:repeat(2,1fr)}.prt-cell{border-bottom:2px solid var(--ink)}.prt-cell:nth-child(2n){border-right:none}}
@media (max-width:620px){.partners .prt-grid{grid-template-columns:1fr 1fr}.prt-cell:nth-child(3n){border-right:2px solid var(--ink)}.prt-cell:nth-child(2n){border-right:none}}


/* ---- services 3-up (svc cards) ---- */
.services{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink)}
.svc{padding:32px 28px 30px;border-right:2px solid var(--ink);display:flex;flex-direction:column;gap:18px;position:relative;min-height:420px;overflow:hidden;text-decoration:none;color:var(--ink);background:var(--bone);transition:background .15s}
.svc:last-child{border-right:none}
.svc:hover{background:#f4efe6}
.svc .n{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.svc h3{margin:0;font-family:var(--f-display);font-size:34px;line-height:.92;letter-spacing:-.015em;text-transform:uppercase;max-width:14ch}
.svc p{margin:0;font-size:14px;line-height:1.55;max-width:34ch;color:var(--ink);opacity:.9}
.svc ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--ink);opacity:.8}
.svc ul li{display:grid;grid-template-columns:14px 1fr;gap:8px}
.svc ul li::before{content:"◉";color:var(--red);font-size:9px;align-self:center}
.svc .k{position:absolute;right:-6px;bottom:-24px;font-family:var(--f-jp);font-weight:900;font-size:160px;color:rgba(10,10,10,.05);line-height:.8;pointer-events:none}
.svc .go{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--hairline);font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.svc .go .a{font-family:var(--f-display);font-size:15px;color:var(--red)}
.svc.red{background:var(--red);color:var(--bone)}
.svc.red:hover{background:#cf0027}
.svc.red .n{color:var(--bone);opacity:.85}
.svc.red p{color:var(--bone);opacity:.95}
.svc.red ul{color:var(--bone);opacity:.85}
.svc.red ul li::before{color:var(--ink)}
.svc.red .go{border-top-color:rgba(236,231,221,.25)}
.svc.red .go .a{color:var(--ink)}
.svc.red .k{color:rgba(10,10,10,.18)}
.svc.ink{background:var(--ink);color:var(--bone)}
.svc.ink:hover{background:var(--ink-3)}
.svc.ink p{color:var(--bone-2)}
.svc.ink ul{color:var(--bone-2)}
.svc.ink .go{border-top-color:var(--hairline-on-ink)}
.svc.ink .go .a{color:var(--bone)}
.svc.ink .k{color:rgba(236,231,221,.08)}
@media (max-width:1000px){.services{grid-template-columns:1fr}.svc{border-right:none;border-bottom:2px solid var(--ink);min-height:auto}.svc:last-child{border-bottom:none}}


/* ---- engagements ---- */
.eng-groups{display:grid;gap:0;border:2px solid var(--ink);border-top:none}
.eng-group{display:grid;grid-template-columns:240px 1fr;border-bottom:2px solid var(--ink)}
.eng-group:last-child{border-bottom:none}
.eng-group .cap{background:var(--ink);color:var(--bone);padding:22px;display:flex;flex-direction:column;gap:8px;border-right:2px solid var(--ink);position:relative;overflow:hidden}
.eng-group .cap .n{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.eng-group .cap h4{margin:0;font-family:var(--f-display);font-size:26px;letter-spacing:-.01em;text-transform:uppercase;line-height:.95}
.eng-group .cap .k{position:absolute;right:-8px;bottom:-18px;font-family:var(--f-jp);font-weight:900;font-size:84px;color:rgba(236,231,221,.06);line-height:.8}
.eng-items{display:grid;grid-template-columns:repeat(2,1fr)}
.eng-items.one{grid-template-columns:1fr}
.eng-item{padding:22px 24px;border-right:1px solid var(--hairline);display:flex;flex-direction:column;gap:10px;position:relative;text-decoration:none;color:inherit;background:var(--bone);transition:background .15s}
.eng-item:hover{background:#f4efe6}
.eng-item:last-child{border-right:none}
.eng-item .t{display:flex;justify-content:space-between;align-items:center;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase}
.eng-item .t .tag{background:var(--red);color:var(--bone);padding:3px 8px;font-weight:700;letter-spacing:.2em}
.eng-item h5{margin:0;font-family:var(--f-display);font-size:24px;text-transform:uppercase;letter-spacing:-.01em;line-height:.95}
.eng-item p{margin:0;font-size:13px;line-height:1.5;color:var(--ink);opacity:.9;max-width:44ch}
.eng-item .foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid var(--hairline);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.eng-item .foot .price{font-family:var(--f-display);font-size:20px;letter-spacing:-.01em;color:var(--red)}
.eng-item .foot .price small{font-family:var(--f-mono);font-size:10px;color:var(--ink);opacity:.6;letter-spacing:.12em}
@media (max-width:1100px){.eng-group{grid-template-columns:1fr}.eng-group .cap{border-right:none;border-bottom:2px solid var(--ink)}.eng-items{grid-template-columns:1fr}.eng-item{border-right:none;border-bottom:1px solid var(--hairline)}.eng-item:last-child{border-bottom:none}}

/* ---- engagement detail ---- */
.eng-hero-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.eng-hero-meta span{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--hairline-on-ink);padding:6px 11px;color:var(--bone-2)}
.eng-hero-meta .price{border-color:var(--red);background:var(--red);color:var(--bone);font-weight:700}
.eng-detail{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--ink)}
.eng-detail .col{padding:30px 28px;border-right:2px solid var(--ink)}
.eng-detail .col:last-child{border-right:none}
.eng-detail .col h3{margin:0 0 16px;font-family:var(--f-display);font-size:clamp(24px,2.4vw,32px);text-transform:uppercase;letter-spacing:-.01em;line-height:.98}
.eng-detail ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.eng-detail li{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:14px;line-height:1.5}
.eng-detail .get li::before{content:"◉";color:var(--red);font-size:9px;align-self:center}
.eng-detail .who li::before{content:"◉";color:var(--red);font-size:9px;align-self:center}
@media (max-width:900px){.eng-detail{grid-template-columns:1fr}.eng-detail .col{border-right:none;border-bottom:2px solid var(--ink)}.eng-detail .col:last-child{border-bottom:none}}
.eng-detail .cl{display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin:0 0 14px}
.eng-detail .col.red{background:var(--red);color:var(--bone)}
.eng-detail .col.red .cl{color:var(--ink)}
.eng-detail .col.red .who li::before{color:var(--ink)}
/* other engagements card grid */
.eng-other{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--ink)}
.eng-other a{padding:26px 28px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);text-decoration:none;color:var(--ink);background:var(--bone);display:flex;flex-direction:column;gap:12px;min-height:196px;transition:background .12s}
.eng-other a:nth-child(2n){border-right:none}
.eng-other a:nth-last-child(-n+2){border-bottom:none}
.eng-other a:hover{background:#f4efe6}
.eng-other .t{display:flex;justify-content:space-between;gap:12px;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.eng-other h4{margin:0;font-family:var(--f-display);font-size:clamp(24px,2.6vw,32px);line-height:.98;text-transform:uppercase;letter-spacing:-.01em}
.eng-other p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink);opacity:.86;max-width:46ch}
.eng-other .foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;border-top:1px solid var(--hairline);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.eng-other .foot .price{font-family:var(--f-display);font-size:20px;letter-spacing:-.01em;color:var(--red)}
.eng-other .foot .price .u{font-family:var(--f-mono);font-size:10px;color:var(--ink);opacity:.6;letter-spacing:.1em;margin-left:3px}
@media(max-width:820px){.eng-other{grid-template-columns:1fr}.eng-other a{border-right:none;border-bottom:2px solid var(--ink)}.eng-other a:last-child{border-bottom:none}}


/* ---- legal / long-form article ---- */
.legal{max-width:72ch;margin:0 auto;padding:56px 0 32px;font-size:16px;line-height:1.7}
.legal .legal-meta{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin:0 0 28px}
.legal h2{margin:36px 0 12px;font-family:var(--f-display);font-size:26px;text-transform:uppercase;letter-spacing:-.01em;border-top:1px solid var(--hairline);padding-top:22px}
.legal h2:first-of-type{border-top:none;padding-top:0}
.legal p{margin:0 0 14px}
.legal ul{margin:0 0 14px;padding:0 0 0 20px}
.legal li{margin-bottom:8px}
.legal a{color:var(--red);border-bottom:1px solid var(--red);text-decoration:none}
.legal a:hover{background:var(--red);color:var(--bone)}
