/* Security Researchers Anonymous — research-site design
   Intentionally no gradients, decorative font downloads, UI frameworks, or trackers. */
:root {
  --paper: #fcfdfb;
  --surface: #f5f7f4;
  --surface-2: #f0f3ee;
  --ink: #1c2c27;
  --ink-2: #35443e;
  --muted: #68766e;
  --line: #dbe1da;
  --line-dark: #cbd4cc;
  --accent: #386648;
  --max: 1480px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: #e9eeea; color: var(--ink); font: 16px/1.5 Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }
a:focus-visible, button:focus-visible { outline: 3px solid #528b62; outline-offset: 4px; }
button { font: inherit; }
::selection { background: #d8e8d9; color: var(--ink); }
.site-shell { width: min(100%, var(--max)); margin: 0 auto; background: var(--paper); min-height: 100vh; box-shadow: 0 0 0 1px rgba(33,56,44,.05); }
.skip-link { position: absolute; top: -80px; left: 20px; z-index: 100; padding: 12px 18px; color: white; background: var(--ink); }
.skip-link:focus { top: 12px; }
.utility-bar { height: 37px; padding: 0 4.2%; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #edf2ed; border-bottom: 1px solid var(--line); font-size: 10px; color: #56695e; text-transform: uppercase; letter-spacing: 1.13px; font-weight: 700; }
.utility-square { display: inline-block; width: 7px; height: 7px; border: 1px solid var(--accent); margin-right: 8px; }
.site-header { padding: 24px 4.2%; min-height: 106px; display: flex; align-items: center; justify-content: space-between; gap: 26px; border-bottom: 1px solid var(--line); }
.brand { display: flex; gap: 15px; align-items: center; min-width: 260px; }
.brand-mark { display: grid; grid-template-columns: repeat(2, 12px); grid-template-rows: repeat(2,12px); gap: 3px; align-items: center; justify-items: center; padding: 10px; width: 50px; height: 50px; background: var(--ink); }
.brand-mark > span { width: 12px; height: 12px; border: 1.5px solid #e7eee7; }
.brand-mark > span:nth-child(2) { border-color: #97b19c; }
.brand-mark > span:nth-child(3) { background: #e7eee7; }
.brand-type { display: flex; flex-direction: column; gap: 3px; }
.brand-name { font-size: 16px; line-height: 1.12; letter-spacing: -.3px; font-weight: 800; }
.brand-domain { color: var(--muted); font-size: 9px; letter-spacing: 1.45px; font-weight: 800; }
.primary-nav { display: flex; justify-content: flex-end; gap: clamp(20px, 3.2vw, 44px); align-items: center; margin-left: auto; }
.primary-nav a { font-size: 13px; font-weight: 700; color: #36473e; border-bottom: 1px solid transparent; padding: 8px 0; transition: border-color .18s ease; }
.primary-nav a:hover { border-color: #748879; }
.header-contact { border: 1px solid var(--line-dark); padding: 10px 14px; font-size: 13px; font-weight: 800; margin-left: 18px; display: flex; align-items: center; gap: 30px; white-space: nowrap; transition: background .18s ease; }
.header-contact:hover { background: var(--surface); }
.header-contact span { font-size: 18px; line-height: 1; font-weight: 400; }
.hero { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); border-bottom: 1px solid var(--line); }
.hero-copy { padding: clamp(65px, 6.7vw, 108px) 6.8% 45px 8.1%; display: flex; flex-direction: column; align-items: flex-start; }
.section-index, .section-overline { color: var(--accent); font-size: 11px; line-height: 1.4; letter-spacing: 1.8px; font-weight: 800; }
.section-index { display: flex; align-items: center; gap: 13px; }
.index-line { width: 28px; height: 1px; background: var(--accent); }
h1,h2,h3,p,figure { margin: 0; }
h1,h2,h3 { font-weight: 700; }
.hero h1 { font-size: clamp(41px, 4.0vw, 61px); letter-spacing: -2.9px; line-height: 1.105; margin-top: 37px; margin-bottom: 29px; }
.hero h1 span { color: #75847b; }
.hero-lead { max-width: 515px; color: var(--ink-2); font-size: 19px; line-height: 1.53; letter-spacing: -.17px; }
.hero-secondary { max-width: 505px; margin-top: 16px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.button { display: inline-flex; min-height: 49px; align-items: center; justify-content: space-between; gap: 30px; padding: 13px 17px; font-size: 12px; font-weight: 800; letter-spacing: .08px; border: 1px solid var(--ink); transition: background .18s ease,color .18s ease,border-color .18s ease; }
.button span { font-size: 18px; line-height: 1; font-weight: 400; }
.button-dark { color: #fff; background: var(--ink); }
.button-dark:hover { background: #354c3d; border-color: #354c3d; }
.button-outline { background: var(--paper); }
.button-outline:hover { background: #eaf0e9; }
.hero-notes { display: grid; grid-template-columns: 1fr; gap: 9px; margin-top: auto; padding-top: 56px; width: min(100%,420px); }
.hero-notes > div { display: flex; align-items: baseline; gap: 19px; }
.hero-notes span { color: #829288; font-size: 10px; font-weight: 800; letter-spacing: .8px; }
.hero-notes strong { color: #56695d; font-size: 11px; font-weight: 700; letter-spacing: .15px; }
.globe-figure { border-left: 1px solid var(--line); background: var(--surface); display: flex; flex-direction: column; min-width: 0; }
.figure-topline { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 23px 6% 15px; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; color: #6b7d70; }
.figure-topline span:first-child { color: var(--accent); }
.globe-stage { position: relative; width: 100%; height: 515px; overflow: hidden; }
.globe-stage canvas { width: 100%; height: 100%; display: block; }
.globe-corner { display: block; width: 14px; height: 14px; position: absolute; opacity: .72; pointer-events: none; }
.corner-tl { top: 17px; left: 29px; border-top: 1px solid #9fb0a3; border-left: 1px solid #9fb0a3; }
.corner-tr { top: 17px; right: 29px; border-top: 1px solid #9fb0a3; border-right: 1px solid #9fb0a3; }
.corner-bl { bottom: 17px; left: 29px; border-bottom: 1px solid #9fb0a3; border-left: 1px solid #9fb0a3; }
.corner-br { bottom: 17px; right: 29px; border-bottom: 1px solid #9fb0a3; border-right: 1px solid #9fb0a3; }
.globe-axis { position: absolute; font-size: 9px; font-weight: 700; letter-spacing: .7px; color: #9ba99e; pointer-events: none; writing-mode: vertical-rl; }
.globe-axis-left { top: 49%; left: 17px; transform: rotate(180deg); }
.globe-axis-right { top: 47%; right: 17px; }
.figure-caption { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px 6% 22px; border-top: 1px solid var(--line); color: #43544a; font-size: 11px; line-height: 1.6; font-weight: 700; }
.caption-muted { font-weight: 400; color: #89958d; }
.motion-control { font-size: 10px; letter-spacing: .3px; font-weight: 700; color: var(--accent); cursor: pointer; white-space: nowrap; padding: 3px 0 3px 8px; border: 0; background: transparent; }
.motion-control:hover { text-decoration: underline; text-underline-offset: 4px; }
.motion-control span { margin-left: 5px; }
.signal-strip { display: flex; min-height: 56px; align-items: center; gap: clamp(12px, 2.5vw, 30px); padding: 13px 4.2%; background: var(--ink); color: #cbd8ce; font-size: 10px; font-weight: 700; letter-spacing: 1.25px; }
.strip-divider { width: 3px; height: 3px; flex: 0 0 3px; border-radius: 50%; background: #76927d; }
.signal-right { margin-left: auto; opacity: .6; white-space: nowrap; }
.section-pad { padding: 91px 6.8% 100px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 50px; margin-bottom: 44px; }
.section-overline { margin-bottom: 18px; }
.section-heading h2, .about-content h2, .contact-section h2 { font-size: clamp(34px, 3.2vw, 46px); line-height: 1.15; letter-spacing: -1.55px; }
.title-period { color: #597d62; }
.section-heading > p { color: #6c776f; max-width: 365px; font-size: 13px; line-height: 1.7; padding-bottom: 1px; }
.research-table { border-top: 1px solid var(--line-dark); }
.research-item { display: grid; grid-template-columns: 105px minmax(0,1fr) 160px; gap: 32px; padding: 37px 5px 41px; border-bottom: 1px solid var(--line); }
.research-number { padding-top: 6px; color: #809086; font-size: 11px; letter-spacing: 1px; font-weight: 800; }
.research-category { margin-bottom: 10px; font-size: 10px; letter-spacing: 1.4px; font-weight: 800; color: #667d6b; }
.research-main h3 { font-size: 24px; line-height: 1.27; letter-spacing: -.55px; }
.research-main p { margin-top: 12px; max-width: 675px; font-size: 14px; line-height: 1.72; color: #627168; }
.research-status { display: flex; align-items: baseline; justify-content: flex-end; gap: 8px; white-space: nowrap; color: #667d6b; font-size: 11px; font-weight: 800; letter-spacing: .05px; padding-top: 4px; }
.status-dot { display: inline-block; width: 7px; height: 7px; min-width: 7px; border-radius: 50%; background: #8a9b8f; }
.status-strong { color: #2f6844; }
.status-strong .status-dot { background: #538b66; }
.method-section { background: var(--surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.method-heading { margin-bottom: 50px; }
.method-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.method-grid article { padding: 25px 25px 28px 0; min-height: 182px; }
.method-grid article + article { border-left: 1px solid var(--line); padding-left: 27px; }
.method-no { color: #7d9083; font-size: 11px; font-weight: 800; letter-spacing: 1px; }
.method-grid h3 { margin-top: 17px; font-size: 21px; letter-spacing: -.4px; }
.method-grid p { margin-top: 8px; color: #6a776e; font-size: 13px; line-height: 1.65; }
.about-section { display: grid; grid-template-columns: minmax(160px,.42fr) minmax(0,1fr); gap: 95px; }
.about-index { display: flex; flex-direction: column; justify-content: space-between; }
.about-emblem { color: #dfe5de; font-size: 78px; font-weight: 800; letter-spacing: -7px; line-height: 1; }
.about-content h2 { margin-bottom: 28px; }
.about-content p { color: #56665b; max-width: 705px; line-height: 1.75; font-size: 15px; margin-bottom: 16px; }
.contact-section { background: #e9eee8; border-top: 1px solid var(--line-dark); padding: 66px 6.8%; display: flex; justify-content: space-between; align-items: center; gap: 28px; }
.contact-section h2 { margin-bottom: 10px; }
.contact-section p:not(.section-overline) { font-size: 13px; color: #637469; }
.contact-button { font-size: 13px; gap: 42px; padding: 16px 20px; }
.site-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; padding: 23px 4.2% 30px; font-size: 11px; color: #829088; }
.site-footer a { font-weight: 700; color: #44584a; }
.site-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1180px) {
  .hero { grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); }
  .hero-copy { padding-left: 6.3%; padding-right: 5%; }
  .hero h1 { font-size: clamp(37px,4.1vw,54px); letter-spacing: -2.25px; }
  .globe-stage { height: 460px; }
  .figure-topline { letter-spacing: .7px; }
  .research-item { grid-template-columns: 75px minmax(0,1fr) 150px; gap: 20px; }
}
@media (max-width: 920px) {
  .site-header { gap: 16px; }
  .brand { min-width: auto; }
  .header-contact { margin-left: 0; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { padding: 66px 6.8% 53px; }
  .hero h1 { font-size: clamp(44px,6.25vw,62px); }
  .hero-notes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; gap: 16px; padding-top: 51px; }
  .hero-notes > div { flex-direction: column; gap: 3px; }
  .globe-figure { border-left: 0; border-top: 1px solid var(--line); }
  .globe-stage { height: 410px; }
  .globe-figure .figure-topline { padding-top: 20px; }
  .section-pad { padding: 74px 6.8% 80px; }
  .signal-right { display: none; }
  .section-heading { align-items: flex-start; gap: 28px; }
  .research-item { grid-template-columns: 65px minmax(0,1fr); }
  .research-status { grid-column: 2; justify-content: flex-start; padding-top: 0; }
  .method-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .method-grid article:nth-child(3) { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); }
  .method-grid article:nth-child(4) { border-top: 1px solid var(--line); }
  .about-section { gap: 45px; }
}
@media (max-width: 650px) {
  .utility-bar { height: 33px; padding-left: 5%; padding-right: 5%; font-size: 9px; letter-spacing: .5px; }
  .utility-right { display: none; }
  .site-header { padding: 18px 5%; flex-wrap: wrap; gap: 18px; }
  .brand-mark { width: 43px; height: 43px; grid-template-columns: repeat(2,10px); grid-template-rows: repeat(2,10px); padding: 9px; }
  .brand-mark > span { width: 10px; height: 10px; }
  .brand-name { font-size: 14px; }
  .primary-nav { order: 3; margin: 0; width: 100%; justify-content: space-between; padding-top: 10px; border-top: 1px solid var(--line); }
  .primary-nav a { padding: 1px 0; }
  .header-contact { margin-left: auto; gap: 9px; padding: 10px; font-size: 11px; }
  .hero-copy { padding: 48px 5% 38px; }
  .hero h1 { font-size: clamp(37px, 9.7vw, 56px); letter-spacing: -1.9px; margin-top: 26px; margin-bottom: 22px; }
  .hero-lead { font-size: 17px; }
  .hero-secondary { font-size: 13px; }
  .hero-actions { width: 100%; }
  .button { gap: 12px; }
  .hero-notes { padding-top: 42px; gap: 12px; }
  .hero-notes strong { font-size: 10px; }
  .figure-topline { padding-left: 5%; padding-right: 5%; font-size: 9px; }
  .figure-topline span:last-child { text-align: right; }
  .globe-stage { height: 355px; }
  .figure-caption { padding-left: 5%; padding-right: 5%; }
  .signal-strip { padding: 19px 5%; font-size: 9px; gap: 12px; flex-wrap: wrap; }
  .section-pad { padding: 63px 5% 70px; }
  .section-heading { flex-direction: column; gap: 16px; margin-bottom: 30px; }
  .section-heading h2,.about-content h2,.contact-section h2 { font-size: 35px; }
  .section-heading > p { max-width: 600px; }
  .research-item { grid-template-columns: 52px minmax(0,1fr); gap: 10px; padding: 29px 0; }
  .research-main h3 { font-size: 21px; }
  .research-main p { font-size: 13px; }
  .research-status { font-size: 10px; }
  .method-grid article, .method-grid article + article { padding-top: 20px; padding-bottom: 22px; }
  .method-grid article + article { padding-left: 15px; }
  .method-grid article { padding-right: 12px; }
  .method-grid h3 { font-size: 20px; }
  .method-grid p { font-size: 12px; }
  .about-section { display: block; }
  .about-index { margin-bottom: 30px; }
  .about-emblem { display: none; }
  .about-content p { font-size: 14px; }
  .contact-section { padding: 58px 5%; display: block; }
  .contact-section > div { margin-bottom: 27px; }
  .contact-button { width: fit-content; max-width: 100%; word-break: break-word; }
  .site-footer { padding: 24px 5% 35px; flex-direction: column; align-items: flex-start; gap: 8px; }
}
@media (max-width: 380px) {
  .brand-name { font-size: 12px; }
  .brand { gap: 9px; }
  .hero h1 { font-size: 35px; }
  .button { padding: 12px 11px; font-size: 11px; }
  .hero-notes { grid-template-columns: 1fr; gap: 7px; }
  .hero-notes > div { flex-direction: row; gap: 10px; }
  .globe-stage { height: 305px; }
  .signal-strip { gap: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Research archive, published notes, and contact form */
.primary-nav [aria-current="page"] { border-color: var(--accent); color: var(--ink); }
.header-contact[aria-current="page"] { background: var(--surface); }
.page-intro { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(240px,.55fr); border-bottom: 1px solid var(--line); }
.page-intro-main { padding: 90px 8% 98px 8.1%; }
.page-intro h1 { margin-top: 29px; font-size: clamp(48px,5.8vw,78px); letter-spacing: -3.8px; line-height: 1.08; }
.page-intro-lead { margin-top: 26px; max-width: 690px; color: #56665b; font-size: clamp(16px,1.6vw,21px); line-height: 1.63; }
.page-intro-aside { border-left: 1px solid var(--line); padding: 94px 11% 58px; display: flex; flex-direction: column; align-items: flex-start; background: var(--surface); }
.aside-rule { width: 33px; height: 2px; background: var(--accent); margin-bottom: 23px; }
.aside-key, .aside-index { font-size: 10px; font-weight: 800; letter-spacing: 1.25px; color: var(--accent); }
.page-intro-aside p { color: #5d6c62; margin-top: 16px; font-size: 14px; line-height: 1.8; }
.aside-index { margin-top: auto; padding-top: 48px; color: #95a59a; }
.signal-strip-page { min-height: 50px; }
.archive-list { border-top: 1px solid var(--line-dark); }
.archive-entry { display: grid; grid-template-columns: 112px minmax(0,1fr) 105px; gap: 25px; align-items: start; padding: 35px 5px; border-bottom: 1px solid var(--line); }
.archive-entry time { font-size: 12px; color: #839186; font-weight: 700; padding-top: 5px; }
.archive-entry .archive-category { color: #66806d; font-size: 10px; font-weight: 800; letter-spacing: 1.2px; margin-bottom: 9px; }
.archive-entry h3 { font-size: 24px; letter-spacing: -.5px; line-height: 1.25; }
.archive-entry h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.archive-entry p { margin-top: 11px; font-size: 14px; line-height: 1.7; color: #69776d; max-width: 680px; }
.archive-entry .article-link { justify-self: end; border: 1px solid var(--line-dark); padding: 10px 12px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.archive-entry .article-link:hover { background: var(--surface); }
.archive-empty { padding: 59px 38px 65px; border-bottom: 1px solid var(--line); background: var(--surface); }
.archive-empty-icon { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line-dark); color: #6f8777; font-size: 21px; margin-bottom: 24px; }
.archive-empty h3 { font-size: 23px; letter-spacing: -.5px; }
.archive-empty p { margin-top: 9px; max-width: 540px; color: #68766d; font-size: 14px; line-height: 1.7; }
.research-themes { background: var(--surface); border-top: 1px solid var(--line); }
.theme-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.theme-grid > div { padding: 25px 24px 32px 0; }
.theme-grid > div + div { border-left: 1px solid var(--line); padding-left: 24px; }
.theme-grid span { font-size: 10px; font-weight: 800; letter-spacing: 1px; color: #6d8974; }
.theme-grid h3 { margin-top: 20px; font-size: 19px; letter-spacing: -.3px; }
.theme-grid p { font-size: 13px; line-height: 1.7; color: #708077; margin-top: 10px; }
.contact-intro .page-intro-main { padding-bottom: 77px; }
.contact-main { display: grid; grid-template-columns: minmax(230px,.69fr) minmax(0,1.31fr); gap: clamp(50px,8vw,130px); }
.contact-details h2 { margin-bottom: 18px; font-size: clamp(32px,3vw,43px); line-height: 1.2; letter-spacing: -1.2px; }
.contact-details > p:not(.section-overline) { max-width: 330px; font-size: 14px; color: #63736a; line-height: 1.8; }
.contact-meta { display: flex; flex-direction: column; gap: 3px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.contact-meta:first-of-type { border-top: 1px solid var(--line); margin-top: 34px; }
.contact-meta span { font-size: 10px; font-weight: 800; letter-spacing: 1.2px; color: #8a9c8f; }
.contact-meta strong { font-size: 13px; font-weight: 700; color: #53655a; }
.inquiry-form { min-width: 0; }
.form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.form-field { display: flex; flex-direction: column; margin-bottom: 20px; }
.form-field label { color: #41564a; font-size: 12px; font-weight: 800; margin-bottom: 8px; }
.form-field label span { color: #618569; }
.form-field input, .form-field select, .form-field textarea { display: block; width: 100%; padding: 14px 15px; border: 1px solid var(--line-dark); border-radius: 0; background: #fff; color: var(--ink); font: 14px/1.4 Arial,Helvetica,sans-serif; box-shadow: none; transition: border-color .18s ease; }
.form-field input, .form-field select { height: 49px; }
.form-field textarea { resize: vertical; min-height: 180px; line-height: 1.6; }
.form-field input::placeholder, .form-field textarea::placeholder { color: #a0aaa2; opacity: 1; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--accent); outline: 2px solid #d6e6da; outline-offset: 0; }
.form-bottom { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 5px; }
.form-bottom p { max-width: 370px; color: #88958b; font-size: 11px; line-height: 1.65; }
.send-button { cursor: pointer; flex-shrink: 0; }
.send-button:disabled { opacity: .55; cursor: wait; }
.form-status { margin-top: 16px; font-size: 13px; line-height: 1.5; min-height: 1.5em; font-weight: 700; }
.form-status[data-type="error"] { color: #9f3b32; }
.form-status[data-type="success"] { color: #31754a; }
.trap-field { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.article-hero { padding: 72px 8.1% 59px; background: var(--paper); border-bottom: 1px solid var(--line); }
.article-back { display: inline-block; color: #667b6c; font-size: 12px; font-weight: 800; margin-bottom: 53px; }
.article-back:hover { text-decoration: underline; text-underline-offset: 3px; }
.article-hero h1 { font-size: clamp(42px,5.2vw,70px); line-height: 1.12; letter-spacing: -2.7px; max-width: 900px; margin-top: 16px; }
.article-deck { margin-top: 21px; max-width: 720px; font-size: clamp(16px,1.8vw,20px); color: #68776b; line-height: 1.65; }
.article-byline { margin-top: 41px; display: flex; gap: 20px; flex-wrap: wrap; font-size: 10px; font-weight: 800; letter-spacing: 1.1px; color: #758679; }
.article-layout { padding: 64px 8.1% 104px; display: grid; grid-template-columns: minmax(165px,.4fr) minmax(0,1fr); gap: 8%; }
.article-margin { font-size: 12px; border-top: 1px solid var(--line-dark); padding-top: 20px; }
.article-margin p { margin-top: 14px; max-width: 230px; color: #7a887d; line-height: 1.75; }
.article-margin a { display: inline-block; margin-top: 25px; font-weight: 800; color: #4a7054; }
.article-content { min-width: 0; max-width: 780px; color: #3d4e43; font-size: 16px; line-height: 1.85; }
.article-content h2 { margin: 48px 0 18px; font-size: 29px; letter-spacing: -.7px; line-height: 1.25; color: var(--ink); }
.article-content h3 { margin: 30px 0 13px; font-size: 22px; letter-spacing: -.4px; color: var(--ink); }
.article-content p, .article-content ul, .article-content ol, .article-content blockquote, .article-content pre { margin: 0 0 20px; }
.article-content ul, .article-content ol { padding-left: 1.4em; }
.article-content li { padding-left: .25em; margin-bottom: 7px; }
.article-content a { color: #266f40; text-decoration: underline; text-underline-offset: 3px; }
.article-content code, .article-content pre { font-family: Consolas, 'Courier New', monospace; }
.article-content code { padding: 2px 4px; background: #f0f3ee; font-size: .9em; }
.article-content pre { padding: 20px; overflow-x: auto; background: #f1f5f0; border: 1px solid var(--line); font-size: 13px; line-height: 1.6; }
.article-content pre code { padding: 0; background: none; }
.article-content blockquote { border-left: 3px solid var(--accent); padding: 3px 0 3px 20px; color: #657568; }
@media (max-width: 920px) {
  .page-intro { grid-template-columns: minmax(0,1fr) 250px; }
  .page-intro-main { padding: 69px 6.8% 75px; }
  .page-intro-aside { padding: 78px 7% 45px; }
  .page-intro h1 { letter-spacing: -2.6px; }
  .theme-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .theme-grid > div:nth-child(3) { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); }
  .theme-grid > div:nth-child(4) { border-top: 1px solid var(--line); }
  .contact-main { gap: 40px; grid-template-columns: minmax(190px,.6fr) minmax(0,1fr); }
}
@media (max-width: 650px) {
  .page-intro { grid-template-columns: 1fr; }
  .page-intro-main { padding: 58px 5% 52px; }
  .page-intro h1 { font-size: clamp(41px,10vw,62px); letter-spacing: -2.2px; }
  .page-intro-lead { font-size: 16px; margin-top: 20px; }
  .page-intro-aside { padding: 33px 5%; border-left: 0; border-top: 1px solid var(--line); }
  .page-intro-aside p { font-size: 13px; }
  .aside-index { padding-top: 18px; }
  .archive-entry { grid-template-columns: 1fr auto; gap: 15px; padding: 27px 0; }
  .archive-entry time { grid-column: 1 / -1; }
  .archive-entry .article-link { grid-column: 2; grid-row: 2; }
  .archive-entry h3 { font-size: 21px; }
  .archive-entry p { font-size: 13px; }
  .archive-empty { padding: 39px 20px 46px; }
  .theme-grid h3 { font-size: 17px; }
  .contact-main { grid-template-columns: 1fr; gap: 36px; }
  .contact-meta:first-of-type { margin-top: 23px; }
  .form-bottom { align-items: flex-start; flex-direction: column; gap: 20px; }
  .send-button { width: 100%; }
  .article-hero { padding: 52px 5% 45px; }
  .article-hero h1 { font-size: clamp(36px,10vw,52px); letter-spacing: -1.6px; }
  .article-back { margin-bottom: 38px; }
  .article-layout { grid-template-columns: 1fr; padding: 43px 5% 69px; gap: 32px; }
  .article-margin { order: 2; }
  .article-content { font-size: 15px; }
}
@media (max-width: 410px) {
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .archive-entry { grid-template-columns: 1fr; }
  .archive-entry time, .archive-entry .article-link { grid-column: 1; grid-row: auto; justify-self: start; }
}

/* Contact page, v2: clear editorial hierarchy and consistent form controls. */
.contact-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  column-gap: clamp(50px, 8vw, 145px);
  padding: 73px 6.8% 66px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.contact-hero .section-overline { margin-bottom: 19px; }
.contact-hero h1 {
  font-size: clamp(47px, 4.6vw, 66px);
  line-height: 1.08;
  letter-spacing: -2.6px;
  font-weight: 700;
}
.contact-hero-copy > p:last-child {
  max-width: 625px;
  margin-top: 22px;
  font-size: 17px;
  line-height: 1.65;
  color: #637167;
}
.contact-hero-aside { align-self: center; }
.contact-hero-rule { display: block; height: 2px; width: 32px; margin-bottom: 17px; background: var(--accent); }
.contact-hero-meta { font-size: 10px; letter-spacing: 1.35px; font-weight: 800; color: var(--accent); }
.contact-hero-aside p { margin-top: 12px; color: #69796e; font-size: 13px; line-height: 1.7; }

.contact-workspace {
  display: grid;
  grid-template-columns: minmax(215px, .7fr) minmax(0, 1.3fr);
  column-gap: clamp(42px, 7.5vw, 124px);
  align-items: start;
  padding: 72px 6.8% 104px;
  background: var(--paper);
}
.contact-guidance { min-width: 0; padding-top: 12px; }
.contact-guidance .section-overline { margin-bottom: 24px; }
.contact-guidance h2 {
  font-size: clamp(26px, 2.8vw, 36px);
  letter-spacing: -1.15px;
  line-height: 1.16;
}
.contact-guidance-lead { margin: 20px 0 32px; max-width: 320px; color: #647369; font-size: 14px; line-height: 1.75; }
.contact-guidance-block { max-width: 325px; padding: 20px 0 23px; border-top: 1px solid var(--line); }
.contact-guidance-label { margin-bottom: 8px; color: #56735d; font-size: 10px; font-weight: 800; letter-spacing: 1.15px; }
.contact-guidance-block p:last-child { font-size: 12px; color: #748178; line-height: 1.78; }

.contact-panel { min-width: 0; border: 1px solid var(--line); background: #fff; padding: 33px 38px 36px; }
.contact-panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding-bottom: 24px; margin-bottom: 25px; border-bottom: 1px solid var(--line); }
.contact-panel-kicker { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: 1.35px; }
.contact-panel-heading h2 { font-size: 23px; letter-spacing: -.7px; line-height: 1.2; margin-top: 8px; }
.contact-panel-ref { color: #96a399; font-size: 10px; font-weight: 800; letter-spacing: 1px; padding-top: 2px; white-space: nowrap; }
.contact-panel .form-row { gap: 18px; }
.contact-panel .form-field { margin-bottom: 22px; }
.contact-panel .form-field label { color: #33483b; font-weight: 700; font-size: 12px; margin-bottom: 9px; }
.contact-panel .form-field input,
.contact-panel .form-field select,
.contact-panel .form-field textarea {
  background: #fff;
  border: 1px solid #cbd6cd;
  border-radius: 2px;
  color: var(--ink);
  font: 14px/1.5 Arial, Helvetica, sans-serif;
  padding: 13px 15px;
  width: 100%;
  box-shadow: none;
}
.contact-panel .form-field input,
.contact-panel .form-field select { height: 51px; }
.contact-panel .form-field textarea { min-height: 165px; resize: vertical; }
.contact-panel .form-field select { cursor: pointer; }
.contact-panel .form-field input:focus,
.contact-panel .form-field select:focus,
.contact-panel .form-field textarea:focus { outline: 2px solid #a0bfaa; outline-offset: 1px; border-color: #477553; }
.contact-panel .form-field input::placeholder,
.contact-panel .form-field textarea::placeholder { color: #8c9a90; }
.contact-panel .form-field-message { margin-bottom: 18px; }
.contact-form-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; border-top: 1px solid var(--line); padding-top: 23px; }
.contact-form-bottom p { max-width: 350px; color: #7d8b80; font-size: 11px; line-height: 1.7; }
.contact-panel .send-button { min-width: 163px; min-height: 49px; justify-content: space-between; }
.contact-panel .form-status { min-height: 0; margin-top: 14px; }
.contact-panel .form-status:empty { display: none; }

@media (max-width: 920px) {
  .contact-hero { grid-template-columns: minmax(0, 1fr) minmax(180px, 230px); gap: 32px; }
  .contact-workspace { grid-template-columns: minmax(200px, .65fr) minmax(0, 1.35fr); gap: 38px; }
  .contact-panel { padding: 26px 25px 30px; }
  .contact-panel .form-row { grid-template-columns: 1fr; gap: 0; }
  .contact-form-bottom { flex-direction: column; align-items: stretch; gap: 18px; }
}
@media (max-width: 650px) {
  .contact-hero { grid-template-columns: 1fr; gap: 24px; padding: 53px 5% 41px; }
  .contact-hero h1 { font-size: clamp(42px, 11vw, 58px); letter-spacing: -2px; }
  .contact-hero-copy > p:last-child { font-size: 15px; margin-top: 15px; }
  .contact-hero-aside { border-top: 1px solid var(--line); padding-top: 21px; }
  .contact-hero-rule { display: none; }
  .contact-hero-aside p { margin-top: 6px; }
  .contact-workspace { grid-template-columns: 1fr; gap: 32px; padding: 48px 5% 73px; }
  .contact-guidance { padding-top: 0; }
  .contact-guidance h2 { font-size: 29px; }
  .contact-guidance-lead { max-width: 560px; margin: 12px 0 22px; }
  .contact-guidance-block { padding: 14px 0 15px; max-width: 560px; }
  .contact-panel { padding: 24px 21px 27px; }
  .contact-panel-heading { margin-bottom: 23px; }
  .contact-panel .send-button { width: 100%; }
}
@media (min-width: 651px) and (max-width: 850px) {
  .contact-hero-copy > p:last-child { font-size: 15px; }
}

/* Put the actionable form first on narrow screens. */
@media (max-width: 650px) {
  .contact-workspace { display: flex; flex-direction: column; }
  .contact-panel { width: 100%; order: 0; }
  .contact-guidance { order: 1; width: 100%; padding-top: 13px; }
  .contact-guidance .section-overline { margin-bottom: 14px; }
}


/* ── SECRA homepage / restrained research introduction, no slogan ── */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.mission-section { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); border-bottom:1px solid var(--line); min-height:490px; }
.mission-copy { padding: clamp(54px,5.7vw,88px) 8.1% 43px; display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.mission-summary { margin:35px 0 18px; font-size:clamp(18px,2vw,24px); line-height:1.56; color:var(--ink); max-width:600px; letter-spacing:-.3px; font-weight:500; }
.mission-support { max-width:565px; font-size:14px; line-height:1.85; color:#617069; }
.mission-actions { display:flex; gap:25px; align-items:center; flex-wrap:wrap; margin-top:28px; }
.mission-text-link { font-weight:700; font-size:13px; color:var(--accent); display:inline-flex; gap:12px; border-bottom:1px solid #aabbb0; padding:8px 0; }
.mission-text-link:hover { border-color:var(--accent); }
.mission-footerline { display:flex; gap:16px; flex-wrap:wrap; margin-top:auto; padding-top:48px; font-size:9px; color:#88978b; font-weight:700; letter-spacing:1.1px; }
.mission-footerline span + span { padding-left:16px; border-left:1px solid var(--line-dark); }
.mission-section .globe-figure { border-left:1px solid var(--line); }
.mission-section .globe-stage { height:435px; }
.mission-section .figure-topline { padding-bottom:0; }
.latest-publication { display:grid; grid-template-columns:150px minmax(0,1fr) 100px; gap:26px; align-items:baseline; padding:23px 4.2%; border-bottom:1px solid var(--line); background:#f4f7f3; }
.latest-kicker { color:var(--accent); font-size:10px; letter-spacing:1.2px; font-weight:800; }
.latest-details { display:flex; align-items:baseline; gap:20px; min-width:0; }
.latest-details time { color:#819084; white-space:nowrap; font-size:11px; font-weight:700; }
.latest-details a { font-size:14px; font-weight:700; line-height:1.5; }
.latest-details a:hover { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.latest-author { font-size:10px; color:#809185; font-weight:700; letter-spacing:.6px; text-align:right; white-space:nowrap; }
.archive-author { color:var(--accent) !important; font-size:12px !important; font-weight:700; margin-top:12px !important; }

/* ── Longform research: all content scoped, flat colors and system fonts ── */
.longform-breadcrumb { padding:22px 6.8%; display:flex; align-items:center; justify-content:space-between; gap:15px; font-size:11px; border-bottom:1px solid var(--line); letter-spacing:.65px; color:#69796d; }
.longform-breadcrumb a { color:var(--accent); font-weight:800; }
.longform-breadcrumb a:hover, .longform-return a:hover { text-decoration:underline; text-underline-offset:4px; }
.slp { --slp-ink:#1c2c27; --slp-muted:#68776e; --slp-line:#dce3dc; display:block; max-width:1130px; margin:0 auto 72px; padding:0 50px; font-family:Arial,Helvetica,sans-serif; color:var(--slp-ink); line-height:1.78; overflow-wrap:anywhere; }
.slp * { box-sizing:border-box; }
.slp-header { padding:67px 0 48px; margin-bottom:39px; border-bottom:1px solid var(--slp-line); }
.slp-eyebrow { margin-bottom:25px !important; font-size:11px !important; line-height:1.4; font-weight:800; letter-spacing:1.6px; color:var(--accent); }
.slp h1 { margin:0 0 12px; font-size:clamp(44px,5.0vw,68px); font-weight:700; letter-spacing:-2.7px; line-height:1.11; }
.slp .slp-subtitle { margin:0 0 25px; font-size:clamp(20px,2.3vw,27px); font-weight:400; line-height:1.42; max-width:790px; color:#5a6b60; }
.slp .slp-date { margin:0 0 14px; font-size:12px; color:#7e8c81; font-weight:700; letter-spacing:.2px; }
.slp-publication-meta { display:flex; gap:16px; flex-wrap:wrap; align-items:center; font-size:12px; font-weight:500; color:#63736a; }
.slp-publication-meta strong { color:var(--ink); }
.slp-pub-separator { color:#bac9bd; }
.slp-body { width:100%; }
.slp p { max-width:830px; font-size:16px; line-height:1.87; margin:18px 0; }
.slp .slp-lead { max-width:850px; font-size:19px; line-height:1.75; margin-top:12px; color:#34473c; }
.slp h2 { display:flex; align-items:baseline; gap:20px; padding-top:32px; margin:64px 0 23px; border-top:1px solid var(--slp-line); font-size:clamp(24px,2.75vw,32px); line-height:1.28; letter-spacing:-.6px; font-weight:700; }
.slp-num { min-width:28px; font-size:12px; letter-spacing:.5px; color:var(--accent); font-weight:800; }
.slp a { color:#2d6240; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.slp a:focus-visible, .slp summary:focus-visible { outline:3px solid #538862; outline-offset:3px; }
.slp-cites { font:700 12px/1.5 Arial,Helvetica,sans-serif; }
.slp-cites a { white-space:nowrap; text-decoration:none; margin-left:4px; }
.slp .slp-note { padding:21px 25px; margin:30px 0 39px; border-left:3px solid #6b8d70; background:#f1f5f0; max-width:850px; }
.slp-note strong { color:#335d42; font-size:13px; }
.slp .slp-note p { font-size:14px; margin:6px 0 0; }
.slp-figure { margin:35px 0 39px; width:100%; }
.slp-image-link { display:block; border:1px solid var(--slp-line); background:#fff; }
.slp-figure img { display:block; max-width:100%; width:100%; height:auto; object-fit:contain; }
.slp figcaption { font-size:12px; line-height:1.7; color:#647369; margin:12px 0 0; max-width:850px; }
.slp-audio { padding:23px 26px; margin:32px 0; border:1px solid var(--slp-line); background:#f5f7f4; }
.slp .slp-audio-title, .slp .slp-audio-pair p { margin:0 0 12px; font-weight:700; font-size:13px; line-height:1.5; }
.slp audio { width:100%; max-width:100%; display:block; height:54px; }
.slp-audio-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.slp-formula { margin:26px 0; padding:23px 25px; background:#20372c; color:#fff; font:15px/2 'Courier New',monospace; white-space:normal; overflow-wrap:anywhere; }
.slp .slp-formula p { color:#dfe7df; font-size:13px; line-height:1.6; margin:11px 0 0; font-family:Arial,Helvetica,sans-serif; }
.slp-quote { padding:23px 26px; background:#f5f7f3; border-left:3px solid #8b9c86; margin:30px 0; }
.slp .slp-quote-label { font-size:12px; line-height:1.6; font-weight:800; letter-spacing:.15px; color:#3f6547; margin:0 0 13px; }
.slp blockquote { font-size:19px; font-weight:600; line-height:1.65; margin:0; }
.slp-sources { padding-top:28px; border-top:1px solid var(--slp-line); margin-top:58px; font-size:13px; }
.slp-sources summary { cursor:pointer; font-weight:800; font-size:16px; }
.slp-sources ol { list-style:none; margin:18px 0; padding:0; }
.slp-sources li { border-bottom:1px solid var(--slp-line); padding:15px 0; scroll-margin-top:22px; }
.slp-source-id { display:inline-block; min-width:30px; font-size:12px; font-weight:800; color:var(--accent); }
.slp-sources li a { font-size:13px; font-weight:700; }
.slp .slp-sources li p { margin:6px 0 0 30px; color:#738077; font-size:12px; line-height:1.65; }
.longform-return { display:flex; justify-content:space-between; gap:15px; padding:26px 6.8% 48px; border-top:1px solid var(--line); font-size:13px; font-weight:800; color:var(--accent); }
@media(max-width:950px) {
  .mission-section { grid-template-columns:1fr; }
  .mission-copy { padding:58px 6.8% 45px; }
  .mission-summary { max-width:800px; }
  .mission-footerline { padding-top:30px; }
  .mission-section .globe-figure { border-left:0; border-top:1px solid var(--line); }
  .mission-section .globe-stage { height:380px; }
  .latest-publication { grid-template-columns:125px 1fr; }
  .latest-author { display:none; }
  .slp { padding:0 6.8%; }
}
@media(max-width:650px) {
  .mission-copy { padding:44px 5% 38px; }
  .mission-summary { margin-top:28px; font-size:18px; line-height:1.6; }
  .mission-support { font-size:13px; line-height:1.8; }
  .mission-footerline { gap:9px; padding-top:34px; font-size:9px; line-height:1.7; }
  .mission-footerline span + span { padding-left:9px; }
  .mission-section .globe-stage { height:315px; }
  .latest-publication { grid-template-columns:1fr; gap:9px; padding:23px 5%; }
  .latest-details { flex-direction:column; gap:5px; }
  .latest-details a { font-size:14px; }
  .slp { padding:0 5%; margin-bottom:40px; }
  .slp-header { padding:42px 0 31px; margin-bottom:28px; }
  .slp h1 { font-size:clamp(39px,10vw,52px); letter-spacing:-1.65px; }
  .slp .slp-subtitle { font-size:19px; line-height:1.5; }
  .slp p { font-size:15px; line-height:1.82; }
  .slp .slp-lead { font-size:17px; }
  .slp h2 { font-size:23px; gap:11px; margin-top:49px; padding-top:25px; }
  .slp-num { min-width:23px; }
  .slp .slp-note { padding:16px 18px; }
  .slp-figure { margin:28px 0; }
  .slp figcaption { font-size:12px; }
  .slp-audio { padding:16px; }
  .slp-audio-pair { grid-template-columns:1fr; gap:18px; }
  .slp-formula { padding:18px 16px; font-size:13px; }
  .slp blockquote { font-size:16px; }
  .slp-quote { padding:18px; }
  .longform-breadcrumb { padding:17px 5%; font-size:10px; }
  .longform-return { padding:24px 5% 35px; }
}
@media(max-width:380px) {
  .mission-footerline { flex-direction:column; gap:4px; }
  .mission-footerline span + span { border:0; padding:0; }
  .slp h2 { font-size:21px; }
  .slp-pub-separator { display:none; }
}
@media print {
  .mission-section .globe-figure, .latest-publication { display:none; }
  .slp { max-width:none; padding:0 5%; }
  .slp h2 { break-after:avoid; }
  .slp-figure { break-inside:avoid; }
  .slp audio { display:none; }
}
