:root {
  --paper: #f5efe5;
  --paper-2: #fbf7ef;
  --ink: #17191a;
  --charcoal: #1b1e1f;
  --charcoal-2: #25292a;
  --muted: #62615d;
  --line: rgba(23,25,26,.18);
  --line-strong: rgba(23,25,26,.35);
  --vermilion: #f14a17;
  --vermilion-deep: #cc3c12;
  --salmon: #f2b29d;
  --teal: #0f5d60;
  --teal-dark: #083f42;
  --teal-soft: #dbe8e5;
  --green: #1f6f4a;
  --gold: #ad791a;
  --blue: #1f5270;
  --danger: #9f2f22;
  --display: "Bodoni 72", Didot, "Bodoni MT", "Times New Roman", serif;
  --sans: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --max: 1640px;
  --shadow: 0 18px 48px rgba(23,25,26,.08);
  --radius: 2px;
}

* { box-sizing: border-box; }
html { color: var(--ink); background: var(--paper); }
body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--sans);
  line-height: 1.48;
  color: var(--ink);
  background:
    radial-gradient(circle at 20% 20%, rgba(75,63,48,.045) 0 1px, transparent 1.4px) 0 0/13px 13px,
    radial-gradient(circle at 70% 60%, rgba(255,255,255,.55) 0 1px, transparent 1.5px) 2px 3px/17px 17px,
    linear-gradient(180deg, var(--paper-2), var(--paper));
}
a { color: var(--ink); text-underline-offset: .2em; }
a:hover { color: var(--vermilion); }
button, input, select, textarea { font: inherit; }
button, .button { cursor: pointer; }
img { max-width: 100%; }
:focus-visible { outline: 3px solid rgba(241,74,23,.4); outline-offset: 3px; }
.skip-link { position: fixed; left: 12px; top: -100px; z-index: 9999; background: var(--paper-2); color: var(--ink); padding: 10px 14px; border: 2px solid var(--ink); }
.skip-link:focus { top: 12px; }

.site-header {
  position: sticky; top: 0; z-index: 100;
  min-height: 98px;
  display: grid; grid-template-columns: minmax(390px, 1fr) auto auto; align-items: center; gap: 30px;
  padding: 0 clamp(24px,4.4vw,82px);
  border-bottom: 1px solid rgba(23,25,26,.13);
  background: rgba(248,243,234,.94);
  backdrop-filter: blur(16px);
}
.brand-block { display: flex; align-items: center; gap: 28px; min-width: 0; }
.brand-logo { display: block; width: clamp(280px, 31vw, 520px); height: auto; mix-blend-mode: multiply; }
.brand-mark { display: none; width: 56px; height: 56px; object-fit: cover; mix-blend-mode: multiply; }
.brand-divider { width: 1px; height: 42px; background: var(--line-strong); }
.system-label { display: grid; gap: 3px; min-width: 210px; }
.system-label strong { font-size: .69rem; font-weight: 800; letter-spacing: .2em; }
.system-label span { font-size: .58rem; letter-spacing: .2em; color: var(--muted); }
.site-nav { display: flex; align-items: stretch; gap: clamp(16px,2vw,38px); min-height: 98px; }
.site-nav a { position: relative; display: inline-flex; align-items: center; text-decoration: none; font-size: .88rem; font-weight: 700; color: var(--ink); }
.site-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:24px; height:2px; background:var(--vermilion); transition:right .2s ease; }
.site-nav a:hover::after, .site-nav a.is-active::after { right:0; }
.site-nav a.is-active { color: var(--ink); }
.user-actions { display:flex; align-items:center; gap:12px; }
.user-name { display:none; }
.icon-link { min-width: 108px; height: 48px; padding: 0 18px; display:inline-flex; align-items:center; justify-content:center; background:var(--charcoal); color:#fff; text-decoration:none; font-weight:700; border-radius:0; }
.icon-link:hover { background:var(--vermilion); color:#fff; }
.nav-toggle { display:none; }

.page-shell { max-width: var(--max); margin: 0 auto; padding: clamp(34px,4vw,70px) clamp(24px,4.4vw,82px) 70px; }
.site-footer { max-width:var(--max); margin:0 auto; padding:28px clamp(24px,4.4vw,82px) 42px; display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); color:var(--muted); font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; }

.eyebrow { display:flex; align-items:center; gap:18px; color:var(--ink); font-size:.76rem; font-weight:800; letter-spacing:.29em; text-transform:uppercase; }
.eyebrow::before { content:""; width:72px; height:2px; flex:0 0 auto; background:var(--vermilion); }
.display-title { max-width:920px; margin:24px 0 20px; font-family:var(--display); font-size:clamp(3.7rem,6.3vw,7.7rem); font-weight:400; line-height:.86; letter-spacing:-.055em; }
.page-title { max-width:1150px; margin:8px 0 18px; font-family:var(--display); font-size:clamp(3.1rem,5.2vw,6.2rem); font-weight:400; line-height:.9; letter-spacing:-.052em; }
.section-title { margin:0; font-family:var(--display); font-size:clamp(2rem,2.8vw,3.5rem); font-weight:400; line-height:.95; letter-spacing:-.035em; }
.subhead { max-width:900px; margin:0; color:#333330; font-size:clamp(1rem,1.2vw,1.25rem); }
.mini-label { font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.22em; color:var(--muted); }

.hero {
  position:relative;
  min-height:590px;
  display:grid; grid-template-columns:minmax(0,.95fr) minmax(520px,1.05fr);
  overflow:hidden;
  border:0;
  background:transparent;
  box-shadow:none;
}
.hero::before { content:""; position:absolute; z-index:2; width:520px; height:520px; border-radius:50%; background:rgba(241,74,23,.92); right:25%; top:20px; mix-blend-mode:multiply; pointer-events:none; }
.hero-copy { position:relative; z-index:5; display:flex; flex-direction:column; justify-content:center; padding:46px 30px 72px 0; }
.hero-copy::after { content:""; position:absolute; z-index:-1; left:17%; bottom:137px; width:62%; height:76px; background:rgba(242,178,157,.52); }
.hero-copy .subhead { max-width:720px; font-size:clamp(1.05rem,1.45vw,1.42rem); }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.hero-art { position:relative; z-index:3; min-height:590px; overflow:hidden; background:url('../editorial-hero-reference.jpg') center/cover no-repeat; clip-path:polygon(18% 0,100% 0,100% 100%,0 100%,13% 68%,7% 36%); }
.hero-art::before { content:""; position:absolute; inset:auto -6% 0 20%; height:30%; background:rgba(8,63,66,.9); clip-path:polygon(17% 32%,100% 0,100% 100%,0 100%); }
.hero-art::after { content:""; position:absolute; right:-8%; top:-10%; width:35%; height:44%; background:rgba(241,74,23,.7); transform:skewX(-26deg); mix-blend-mode:multiply; }
.hero-quote { position:absolute; z-index:6; top:38px; right:38px; max-width:350px; color:#fff; font-family:var(--display); font-size:2rem; font-style:italic; line-height:1.03; text-align:right; text-shadow:0 2px 18px rgba(0,0,0,.32); }
.next-run { position:absolute; z-index:7; right:34px; bottom:34px; width:min(370px,calc(100% - 68px)); padding:20px 22px; background:rgba(248,243,234,.94); border:1px solid rgba(23,25,26,.2); box-shadow:var(--shadow); }
.next-run strong { display:block; font-size:1rem; margin:3px 0; }

.button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:0 22px; border:1px solid var(--charcoal); border-radius:0; background:var(--charcoal); color:#fff; text-decoration:none; font-weight:700; }
.button::after { content:"→"; color:var(--vermilion); font-size:1.25em; }
button.button::after { content:""; }
.button:hover { color:#fff; background:var(--vermilion); border-color:var(--vermilion); }
.button:hover::after { color:#fff; }
.button--ghost { background:transparent; color:var(--ink); }
.button--ghost::after { color:var(--teal); }
.button--danger { background:var(--danger); border-color:var(--danger); }
.button--small { min-height:36px; padding:0 13px; font-size:.8rem; }
.button-fit { justify-self:start; }

.metric-strip { margin:0 -0px 0; display:grid; grid-template-columns:repeat(5,1fr); background:var(--charcoal); color:#fff; position:relative; overflow:hidden; }
.metric-strip::after { content:""; position:absolute; right:-40px; bottom:-30px; width:250px; height:130px; background:var(--teal); transform:skewX(-28deg); }
.metric { min-height:142px; position:relative; z-index:2; display:flex; align-items:center; gap:18px; padding:28px 26px; border-right:1px solid rgba(255,255,255,.28); }
.metric:last-child { border-right:0; }
.metric-icon { width:58px; height:58px; display:grid; place-items:center; border:0; border-radius:0; color:#fff; font-family:var(--display); font-size:2.6rem; }
.metric strong { display:block; font-family:var(--display); font-weight:400; font-size:2.35rem; line-height:1; }
.metric span { display:block; margin-top:5px; color:rgba(255,255,255,.75); font-size:.7rem; line-height:1.35; text-transform:uppercase; letter-spacing:.13em; }

.layout-2 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:52px; margin-top:54px; }
.layout-main-aside { display:grid; grid-template-columns:minmax(0,1fr) 420px; gap:48px; align-items:start; }
.layout-main-top { margin-top:56px; }
.layout-2-topless { margin-top:0; }
.stack { display:grid; gap:22px; }
.card { background:rgba(251,247,239,.78); border:1px solid var(--line); border-radius:0; box-shadow:none; }
.card-pad { padding:28px; }
.card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:26px 28px 0; }
.card-body { padding:24px 28px 28px; }
.card-title { margin:0; font-family:var(--display); font-size:2rem; font-weight:400; line-height:1; }
.card-title-space { margin-top:8px; }

.finding-list { display:grid; gap:0; margin-top:24px; border-top:1px solid var(--line-strong); }
.finding { min-height:94px; display:grid; grid-template-columns:56px 1fr auto; gap:18px; align-items:center; padding:18px 0; border:0; border-bottom:1px solid var(--line); background:transparent; text-decoration:none; color:inherit; }
.finding:hover { box-shadow:none; transform:translateX(4px); }
.finding-mark { width:54px; height:54px; display:grid; place-items:center; border-radius:50%; background:var(--teal-soft); color:var(--teal-dark); font-family:var(--display); font-size:1.8rem; }
.finding strong { font-size:1.04rem; }
.finding p { margin:4px 0 0; color:var(--muted); font-size:.82rem; }
.finding-arrow { color:var(--vermilion); font-size:1.8rem; }

.table-wrap { overflow-x:auto; border:0; border-radius:0; background:transparent; }
table { width:100%; border-collapse:collapse; }
th { padding:12px 10px; border-bottom:2px solid var(--ink); color:var(--ink); font-size:.64rem; text-transform:uppercase; letter-spacing:.16em; text-align:left; white-space:nowrap; }
td { padding:15px 10px; border-bottom:1px solid var(--line); vertical-align:top; font-size:.85rem; }
tbody tr:hover { background:rgba(241,74,23,.045); }
td a { text-decoration:none; }
.score { display:inline-flex; min-width:48px; justify-content:center; padding:5px 9px; border-bottom:2px solid var(--green); color:var(--green); font-weight:900; background:transparent; border-radius:0; }
.status { display:inline-flex; align-items:center; justify-content:center; padding:4px 9px; border-radius:0; font-size:.64rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; border:1px solid currentColor; background:transparent; }
.status--investigate, .status--validate { color:var(--blue); }
.status--build, .status--validated { color:var(--green); }
.status--watch { color:var(--gold); }
.status--hold { color:#5d6265; }
.status--rejected { color:var(--danger); }
.badge { display:inline-flex; padding:4px 8px; border-radius:0; border:1px solid var(--teal); color:var(--teal-dark); background:transparent; font-size:.61rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.badge--urgent { border-color:var(--vermilion); color:var(--vermilion-deep); }
.badge--durable { border-color:var(--green); color:var(--green); }
.badge--cyclical { border-color:#6650a4; color:#6650a4; }

.research-banner { margin-bottom:36px; display:grid; grid-template-columns:1fr auto; gap:28px; align-items:end; padding-bottom:26px; border-bottom:1px solid var(--line-strong); }
.summary-box { background:transparent; border:0; border-left:8px solid var(--vermilion); padding:12px 0 12px 22px; }
.summary-box p { margin:0; font-family:var(--display); font-size:1.6rem; line-height:1.12; }

.filter-bar { display:grid; grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(140px,.7fr)) auto; gap:10px; margin:24px 0 30px; padding:16px; background:var(--charcoal); }
.input, .select, .textarea { width:100%; min-height:46px; border:1px solid rgba(23,25,26,.32); border-radius:0; background:#fffdf8; color:var(--ink); padding:10px 12px; }
.textarea { min-height:180px; resize:vertical; }
.textarea-short { min-height:110px; }
.criteria-textarea { min-height:420px; line-height:1.6; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.form-field { display:grid; gap:7px; }
.form-field label { font-size:.69rem; font-weight:900; color:var(--ink); text-transform:uppercase; letter-spacing:.12em; }
.help { color:var(--muted); font-size:.76rem; }
.alert { padding:15px 17px; border:1px solid var(--line-strong); background:rgba(255,255,255,.45); margin-bottom:18px; }
.alert--error { border-left:6px solid var(--danger); color:#71231b; }
.alert--success { border-left:6px solid var(--green); color:#155b3a; }
.alert--warn { border-left:6px solid var(--gold); color:#705319; }
.check-row { display:flex; align-items:flex-start; gap:10px; }
.file-input { padding:8px; }
.code-block { overflow:auto; padding:18px; background:var(--charcoal); color:#f5efe5; font:12px/1.6 var(--mono); white-space:pre-wrap; }

.need-bars { display:grid; gap:17px; }
.need-row { display:grid; grid-template-columns:160px 1fr 54px; gap:14px; align-items:center; }
.need-name { font-size:.75rem; font-weight:800; }
.bar-track { height:8px; background:rgba(23,25,26,.12); overflow:hidden; }
.bar-fill { height:100%; background:linear-gradient(90deg,var(--vermilion),var(--teal)); }
.need-value { text-align:right; font-weight:900; font-size:.78rem; }

.process-strip { margin-top:54px; min-height:180px; padding:30px 42px; display:grid; grid-template-columns:1.15fr 2fr; gap:42px; align-items:center; position:relative; overflow:hidden; color:#fff; background:var(--charcoal) url('../editorial-band-reference.jpg') center/cover no-repeat; background-blend-mode:multiply; }
.process-strip::before { content:""; position:absolute; inset:0; background:rgba(20,23,24,.86); }
.process-strip::after { content:""; position:absolute; right:-6%; bottom:-60%; width:38%; height:160%; background:rgba(15,93,96,.9); transform:skewX(-27deg); }
.process-strip > * { position:relative; z-index:2; }
.process-title { font-family:var(--display); font-size:clamp(2.2rem,3.2vw,4.2rem); font-weight:400; line-height:.9; }
.process-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.process-step { min-height:86px; padding:16px 18px; border-left:1px solid rgba(255,255,255,.32); }
.process-step strong { display:block; font-size:.83rem; text-transform:uppercase; letter-spacing:.09em; }
.process-step span { display:block; margin-top:4px; color:rgba(255,255,255,.68); font-size:.68rem; }
.mini-label-inverse { color:rgba(255,255,255,.74); }

.detail-hero { display:grid; grid-template-columns:1fr auto; gap:30px; align-items:start; margin-bottom:34px; padding-bottom:30px; border-bottom:1px solid var(--line-strong); }
.detail-meta { display:flex; gap:18px; flex-wrap:wrap; color:var(--muted); font-size:.76rem; margin-top:14px; }
.score-large { min-width:132px; padding:22px 18px; border:2px solid var(--green); background:transparent; text-align:center; }
.score-large strong { display:block; font-family:var(--display); font-size:2.6rem; font-weight:400; color:var(--green); line-height:1; }
.detail-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr); gap:44px; }
.definition-list { display:grid; }
.definition-row { display:grid; grid-template-columns:190px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid var(--line); }
.definition-row dt { font-size:.68rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.definition-row dd { margin:0; }
.timeline { border-left:1px solid var(--ink); margin-left:8px; padding-left:26px; display:grid; gap:12px; }
.timeline-item { position:relative; padding:15px 18px; border:1px solid var(--line); background:rgba(255,255,255,.33); }
.timeline-item::before { content:""; position:absolute; width:10px; height:10px; border-radius:50%; background:var(--vermilion); left:-31px; top:19px; }

.login-shell { min-height:100vh; display:grid; grid-template-columns:1.18fr .82fr; background:var(--paper); }
.login-brand { position:relative; overflow:hidden; min-height:100vh; padding:clamp(42px,6vw,100px); display:flex; flex-direction:column; justify-content:space-between; color:var(--ink); background:var(--paper-2); }
.login-brand::before { content:""; position:absolute; z-index:0; width:620px; height:620px; border-radius:50%; right:-120px; top:70px; background:var(--vermilion); opacity:.92; }
.login-brand::after { content:""; position:absolute; z-index:0; right:-18%; bottom:-12%; width:76%; height:48%; background:var(--teal); clip-path:polygon(30% 0,100% 34%,100% 100%,0 100%); opacity:.96; }
.login-brand > * { position:relative; z-index:2; }
.login-brand h1 { max-width:860px; margin:34px 0 22px; font-family:var(--display); font-size:clamp(4rem,7vw,8.5rem); font-weight:400; line-height:.84; letter-spacing:-.055em; }
.login-brand p { max-width:680px; font-size:1.05rem; }
.login-logo { width:min(560px,75%); mix-blend-mode:multiply; }
.login-panel { display:grid; place-items:center; padding:42px; background:var(--charcoal); color:#fff; }
.login-card { width:min(470px,100%); background:var(--paper-2); color:var(--ink); border:0; box-shadow:var(--shadow); }
.login-eyebrow { color:var(--ink); }
.section-title-login { margin-top:10px; }

.admin-grid { display:grid; grid-template-columns:240px minmax(0,1fr); gap:40px; }
.admin-nav { position:sticky; top:126px; align-self:start; display:grid; border-top:2px solid var(--ink); }
.admin-nav a { padding:13px 2px; border-bottom:1px solid var(--line); border-radius:0; text-decoration:none; color:var(--ink); font-weight:800; font-size:.78rem; }
.admin-nav a:hover, .admin-nav a.is-active { color:var(--vermilion); background:transparent; }
.flow { display:grid; grid-template-columns:repeat(4,1fr); gap:0; align-items:stretch; border:1px solid var(--line); }
.flow-step { padding:20px 16px; border:0; border-right:1px solid var(--line); background:transparent; text-align:center; }
.flow-step:last-child { border-right:0; }
.flow-step strong { display:block; }
.flow-step span { color:var(--muted); font-size:.7rem; }
.flow-2 { grid-template-columns:1fr 1fr; }

.empty { padding:46px; text-align:center; border:1px solid var(--line); color:var(--muted); background:rgba(255,255,255,.28); }
.empty-top { margin-top:40px; }
.kicker-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--line); }
.stat-card { padding:22px; border-right:1px solid var(--line); background:transparent; }
.stat-card:last-child { border-right:0; }
.stat-card strong { display:block; font-family:var(--display); font-size:2.2rem; font-weight:400; }
.stat-card span { font-size:.68rem; color:var(--muted); text-transform:uppercase; letter-spacing:.11em; }
.source-list { display:grid; gap:12px; }
.source-item { margin:0; padding-bottom:13px; border-bottom:1px solid var(--line); }
.source-item:last-child { border-bottom:0; }
.archive-table { margin-top:20px; }
.section-gap-top { margin-top:34px; }
.section-gap-small { margin-top:18px; }
.no-margin-bottom { margin-bottom:0; }
.detail-eyebrow { margin-top:24px; }

@media (max-width: 1250px) {
  .site-header { grid-template-columns:1fr auto; min-height:84px; }
  .site-nav { grid-column:1 / -1; min-height:0; justify-content:center; padding-bottom:16px; }
  .brand-logo { width:390px; }
  .user-actions { grid-column:2; grid-row:1; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { min-height:500px; padding-right:0; }
  .hero-art { min-height:460px; clip-path:polygon(0 8%,100% 0,100% 100%,0 100%); }
  .hero::before { right:5%; top:44%; }
  .metric-strip { grid-template-columns:repeat(3,1fr); }
  .metric:nth-child(3) { border-right:0; }
  .metric:nth-child(n+4) { border-top:1px solid rgba(255,255,255,.25); }
  .layout-main-aside, .detail-grid { grid-template-columns:1fr; }
}

@media (max-width: 860px) {
  .page-shell { padding:26px 18px 44px; }
  .site-header { min-height:76px; padding:0 18px; gap:12px; }
  .brand-logo, .brand-divider, .system-label { display:none; }
  .brand-mark { display:block; }
  .nav-toggle { display:inline-flex; border:1px solid var(--ink); background:transparent; padding:8px 12px; font-weight:800; }
  .site-nav { display:none; grid-column:1 / -1; flex-direction:column; align-items:stretch; gap:0; padding:0 0 16px; }
  .site-nav.is-open { display:flex; }
  .site-nav a { min-height:44px; border-bottom:1px solid var(--line); }
  .site-nav a::after { display:none; }
  .user-actions { display:none; }
  .hero-copy { min-height:auto; padding:40px 0 60px; }
  .display-title { font-size:clamp(3.3rem,15vw,5.9rem); }
  .hero-art { min-height:360px; }
  .hero-quote { font-size:1.55rem; }
  .metric-strip { grid-template-columns:1fr 1fr; }
  .metric { min-height:118px; border-top:1px solid rgba(255,255,255,.25); }
  .metric:nth-child(1), .metric:nth-child(2) { border-top:0; }
  .metric:nth-child(even) { border-right:0; }
  .layout-2, .filter-bar, .form-grid { grid-template-columns:1fr; }
  .process-strip { grid-template-columns:1fr; padding:28px; }
  .process-steps { grid-template-columns:1fr 1fr; }
  .detail-hero { grid-template-columns:1fr; }
  .definition-row { grid-template-columns:1fr; gap:6px; }
  .admin-grid { grid-template-columns:1fr; }
  .admin-nav { position:static; grid-template-columns:repeat(2,1fr); }
  .flow { grid-template-columns:1fr 1fr; }
  .login-shell { grid-template-columns:1fr; }
  .login-brand { min-height:520px; }
  .login-panel { min-height:520px; }
  .need-row { grid-template-columns:120px 1fr 44px; }
  .site-footer { flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}

.honeypot { position:absolute !important; left:-9999px !important; top:auto !important; width:1px !important; height:1px !important; overflow:hidden !important; }
