:root{
  --bg:#ffffff; --paper:#f6f5f1; --ink:#101418; --ink-2:#39424c; --muted:#66717c; --line:#e3e1db; --line-2:#cfccc4;
  --navy:#0d1b2a; --navy-2:#16283b; --accent:#0e7c74; --accent-ink:#0b6159; --teal:#0f766e;
  --link:#0d1b2a; --focus:#2563eb;
  --sans: "Helvetica Neue", Helvetica, Arial, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --serif: Georgia, "Times New Roman", "Iowan Old Style", serif;
}
@media (prefers-color-scheme: dark){
  :root{--bg:#0f1419; --paper:#151c23; --ink:#eef1f4; --ink-2:#c5ccd3; --muted:#94a0ab; --line:#26303a; --line-2:#34404c;
    --navy:#0a141f; --navy-2:#122233; --accent:#2dd4bf; --accent-ink:#5eead4; --teal:#2dd4bf; --link:#eef1f4}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans);text-rendering:optimizeLegibility}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:8px 12px;z-index:9}
.skip:focus{left:8px}

/* ---------- header ---------- */
.top{background:var(--navy);color:#fff}
.util{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;color:#aeb9c4;padding-top:10px;padding-bottom:4px}
.live{display:inline-flex;align-items:center;gap:7px}
.dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
@media (prefers-reduced-motion:reduce){.dot{animation:none}}
.mast{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:10px;padding-bottom:14px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:#fff;font-weight:800;font-size:30px;letter-spacing:-.03em}
.brand .mark{width:36px;height:36px}
.mark-bg{fill:#0e7c74} .mark-l{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round} .mark-l.thin{stroke-width:2} .mark-d{fill:#fff}
.search{display:flex;align-items:center;background:#fff;border-radius:999px;padding:3px 3px 3px 16px;width:min(360px,100%)}
.search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:#101418;padding:7px 0}
.search input::-webkit-search-cancel-button{display:none}
.search button{border:0;background:var(--navy);color:#fff;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.search button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.sections{background:var(--navy-2);border-top:1px solid rgba(255,255,255,.08)}
.sections .wrap{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sections .wrap::-webkit-scrollbar{display:none}
.sections a{flex:none;color:#dbe3ea;text-decoration:none;font-size:14.5px;font-weight:600;padding:12px 12px 10px;border-bottom:3px solid transparent;transition:color .15s,border-color .15s}
.sections a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.35)}
.sections a[aria-current]{color:#fff;border-bottom-color:var(--accent)}

/* ---------- stories ---------- */
.story{padding:14px 0;border-top:1px solid var(--line)}
.story:first-child{border-top:0}
.hl{margin:0 0 6px;font-family:var(--serif);font-weight:700;line-height:1.22;letter-spacing:-.005em;font-size:19px}
.hl a{text-decoration:none;color:var(--link)}
.hl a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.snip{margin:0 0 8px;color:var(--ink-2);font-size:15px;line-height:1.5}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 7px;font-size:12.5px;color:var(--muted)}
.meta .src{font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px}
.meta .kick{font-weight:700;color:var(--accent-ink);text-decoration:none;text-transform:uppercase;letter-spacing:.05em;font-size:11.5px}
.meta .kick:hover{text-decoration:underline}
.meta .tag{border:1px solid var(--line-2);border-radius:3px;padding:0 5px;font-size:11px}
.meta .sep{color:var(--line-2)}
.also{margin:8px 0 0;font-size:13px;color:var(--muted)}
.also a{color:var(--ink-2);font-weight:600}
.story.lead .hl{font-size:clamp(26px,3.4vw,38px);line-height:1.12;margin-bottom:12px}
.story.lead .snip{font-size:17px}
.story.big .hl{font-size:22px}
.story.compact{padding:10px 0}
.story.compact .hl{font-size:16px;margin-bottom:4px}

/* ---------- home ---------- */
.home-top{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1.3fr) minmax(0,1fr);gap:0 28px;padding:24px 0 8px;border-bottom:2px solid var(--ink)}
.home-top .col{min-width:0}
.home-top .col+.col{border-left:1px solid var(--line);padding-left:28px}
.lead-box{padding-bottom:10px}
.rail h2,.block-h{font:800 13px/1 var(--sans);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;display:flex;align-items:center;gap:8px}
.rail h2::before{content:"";width:8px;height:8px;background:var(--accent);border-radius:50%}
.rail ol{list-style:none;margin:0;padding:0;counter-reset:n}
.rail li{padding:10px 0;border-top:1px solid var(--line)}
.rail li:first-child{border-top:0}
.rail li a{text-decoration:none;font-family:var(--serif);font-weight:700;font-size:15.5px;line-height:1.3;display:block;margin-bottom:3px}
.rail li a:hover{text-decoration:underline}
.rail .meta{font-size:12px}
.section-block{padding:26px 0 6px;border-bottom:1px solid var(--line)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:3px solid var(--ink);padding-top:10px;margin-bottom:6px}
.section-head h2{margin:0;font:800 22px/1.2 var(--sans);letter-spacing:-.01em}
.section-head h2 a{text-decoration:none}
.section-head h2 a:hover{text-decoration:underline}
.more{font-size:13.5px;font-weight:700;color:var(--accent-ink);text-decoration:none;white-space:nowrap}
.more:hover{text-decoration:underline}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px}
.grid4 .story{border-top:0;padding-top:8px}
.grid4 .story+.story{border-left:1px solid var(--line);padding-left:24px}
.grid4 .story:first-child .hl{font-size:20px}

/* ---------- section & search pages ---------- */
.page-head{padding:28px 0 14px;border-bottom:2px solid var(--ink);margin-bottom:6px}
.page-head h1{margin:0 0 4px;font:800 clamp(30px,4vw,42px)/1.1 var(--sans);letter-spacing:-.025em}
.page-head p{margin:0;color:var(--muted)}
.list-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;padding-bottom:30px}
.timeline .story{display:grid;grid-template-columns:92px minmax(0,1fr);gap:18px}
.timeline .when{font-size:12.5px;color:var(--muted);padding-top:4px;font-variant-numeric:tabular-nums}
.timeline .when b{display:block;color:var(--ink);font-size:14px}
.pager{display:flex;justify-content:space-between;gap:12px;padding:18px 0;border-top:1px solid var(--line)}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);border-radius:999px;padding:9px 16px;text-decoration:none;font-weight:700;font-size:14px;background:var(--bg)}
.btn:hover{border-color:var(--ink)}
.aside-box{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:18px;position:sticky;top:16px}
.aside-box h2{font:800 13px/1 var(--sans);text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px}
.aside-box ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.aside-box li a{display:flex;justify-content:space-between;text-decoration:none;padding:7px 0;border-bottom:1px solid var(--line);font-weight:600;font-size:14.5px}
.aside-box li a:hover{color:var(--accent-ink)}
.aside-box p{font-size:13.5px;color:var(--muted);margin:14px 0 0}
.search-big{display:flex;gap:8px;margin:16px 0 4px;max-width:640px}
.search-big input{flex:1;min-width:0;font:inherit;font-size:17px;padding:12px 16px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg);color:var(--ink)}
.search-big button{font:inherit;font-weight:700;border:0;background:var(--navy);color:#fff;border-radius:10px;padding:0 20px;cursor:pointer}
@media (prefers-color-scheme: dark){.search-big button{background:var(--accent);color:#111}}
mark{background:rgba(234,179,8,.28);color:inherit;padding:0 1px}
.empty{padding:40px 0;color:var(--muted)}

/* ---------- text pages ---------- */
.prose{max-width:720px;padding:8px 0 40px}
.prose h2{font:800 21px/1.25 var(--sans);margin:30px 0 8px}
.prose p,.prose li{color:var(--ink-2);font-size:16.5px;line-height:1.65}
.prose a{color:var(--accent-ink)}
.updated{color:var(--muted);font-size:14px}
table.src{width:100%;border-collapse:collapse;font-size:14px;margin:10px 0 24px}
table.src th,table.src td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
table.src th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
table.src td a{color:var(--accent-ink)}
.ok{color:#15803d;font-weight:700} .bad{color:#b91c1c;font-weight:700} .wait{color:var(--muted)}
@media (prefers-color-scheme: dark){.ok{color:#4ade80}.bad{color:#f87171}}
.table-wrap{overflow-x:auto}

/* ---------- footer ---------- */
.foot{background:var(--navy);color:#c3ccd5;margin-top:30px;padding:34px 0 30px;font-size:14px}
.foot a{color:#e6ebf0;text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot-top{display:flex;gap:28px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-top p{max-width:560px;margin:0;color:#aeb9c4}
.brand.small{font-size:22px}
.brand.small .mark{width:28px;height:28px}
.foot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:22px 0}
.foot-grid h2{font:800 12px/1 var(--sans);text-transform:uppercase;letter-spacing:.09em;color:#fff;margin:0 0 12px}
.foot-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.foot-legal{border-top:1px dashed rgba(255,255,255,.14);padding-top:16px;font-size:12.5px;color:#93a1ae;line-height:1.65}
.foot-legal p{margin:0 0 4px}
.foot-legal a{text-decoration:underline;text-underline-offset:2px;color:#c3ccd5}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .home-top{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
  .home-top .col.c3{grid-column:1 / -1;border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:14px}
  .grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid4 .story:nth-child(3){border-left:0;padding-left:0}
  .list-layout{grid-template-columns:1fr}
  .aside-box{position:static}
}
@media (max-width:680px){
  .wrap{padding:0 16px}
  .util{font-size:12px}
  .mast{flex-wrap:wrap;gap:10px;padding-bottom:12px}
  .brand{font-size:26px}
  .search{width:100%}
  .home-top{grid-template-columns:1fr;padding-top:16px}
  .home-top .col+.col{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px}
  .grid4{grid-template-columns:1fr}
  .grid4 .story+.story{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px}
  .timeline .story{grid-template-columns:1fr;gap:4px}
  .timeline .when{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}
  .story.lead .snip{font-size:16px}
}

/* ---------- plans & log in ---------- */
.preview-note{background:var(--paper);border:1px dashed var(--line-2);border-radius:10px;padding:12px 14px;margin:18px 0;font-size:14.5px;color:var(--ink-2)}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0 10px}
.plan{position:relative;border:1px solid var(--line);border-radius:14px;padding:24px;background:var(--bg);display:flex;flex-direction:column}
.plan.featured{border:2px solid var(--accent);box-shadow:0 10px 30px -18px rgba(14,124,116,.6)}
.plan h2{margin:0 0 4px;font:800 21px/1.2 var(--sans)}
.plan-blurb{margin:0 0 14px;color:var(--muted);font-size:14.5px}
.price{margin:0 0 16px;color:var(--muted)} .price b{font:800 36px/1 var(--sans);color:var(--ink);letter-spacing:-.02em;margin-right:2px}
.plan .btn{justify-content:center;margin-bottom:18px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
@media (prefers-color-scheme: dark){.btn.primary{color:#062b28}}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.plan ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:14.5px}
.plan li{display:flex;gap:9px;align-items:flex-start}
.plan li svg{flex:none;width:18px;height:18px;margin-top:1px;fill:none;stroke:var(--accent);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.badge{position:absolute;top:-12px;left:24px;background:var(--accent);color:#fff;font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px}
@media (prefers-color-scheme: dark){.badge{color:#062b28}}
.auth{display:grid;place-items:center;padding:40px 0 20px}
.auth-card{width:min(440px,100%);border:1px solid var(--line);border-radius:16px;padding:28px;background:var(--bg)}
.auth-card h1{margin:0 0 8px;font:800 26px/1.2 var(--sans);letter-spacing:-.02em}
.auth-card p{color:var(--ink-2);margin:0 0 12px}
.auth-form{display:grid;gap:8px;margin:14px 0}
.auth-form label{font-weight:700;font-size:14px}
.auth-form input{font:inherit;padding:12px 14px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg);color:var(--ink)}
.auth-form .btn{justify-content:center;padding:12px}
.small{font-size:13px;color:var(--muted)} .small a{color:var(--accent-ink)}
@media (max-width:900px){.plans{grid-template-columns:1fr}}
.acct{display:flex;gap:10px;align-items:center;flex:none}.acct a{color:#fff;text-decoration:none;font-weight:700;font-size:14px}.acct .try{background:var(--accent);padding:8px 14px;border-radius:999px}

/* ---------- banner, admin ---------- */
.banner{background:var(--accent);color:#fff;font-size:14.5px;font-weight:600;padding:9px 0;text-align:center}
.banner a{color:#fff;text-decoration:underline;margin-left:6px}
@media (prefers-color-scheme: dark){.banner,.banner a{color:#062b28}}
.flash{border-radius:10px;padding:10px 14px;font-size:14.5px;margin:12px 0}
.flash.ok{background:rgba(22,163,74,.12);color:#166534} .flash.bad{background:rgba(220,38,38,.1);color:#991b1b}
@media (prefers-color-scheme: dark){.flash.ok{color:#86efac}.flash.bad{color:#fca5a5}}
.check{display:flex;gap:9px;align-items:flex-start;font-weight:400 !important;font-size:14px}
.check input{margin-top:3px}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:18px 0 30px}
.panel{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--bg);min-width:0}
.panel.wide{grid-column:1 / -1}
.panel h2{margin:0 0 12px;font:800 19px/1.2 var(--sans)}
.panel h3{margin:22px 0 10px;font:800 16px/1.2 var(--sans)}
.kv{list-style:none;margin:0 0 14px;padding:0}
.kv li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.kv span{color:var(--muted)}
.tog{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}
.tog input{position:absolute;opacity:0;width:1px;height:1px}
.tog .sw{flex:none;width:42px;height:24px;border-radius:999px;background:var(--line-2);position:relative;transition:background .15s;margin-top:2px}
.tog .sw::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.tog input:checked+.sw{background:var(--accent)}
.tog input:checked+.sw::after{transform:translateX(18px)}
.tog input:focus-visible+.sw{outline:2px solid var(--focus);outline-offset:2px}
.tog b{display:block;font-size:15px} .tog small{display:block;color:var(--muted);font-size:13.5px;margin-top:2px}
.tog.off{cursor:not-allowed;opacity:.6}
.field,.plan-edit label{display:grid;gap:5px;font-weight:700;font-size:13.5px;margin-top:12px}
.field input,.plan-edit input,.plan-edit textarea{font:inherit;font-weight:400;font-size:15px;padding:9px 12px;border:1px solid var(--line-2);border-radius:9px;background:var(--bg);color:var(--ink);width:100%}
.plans-edit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.plan-edit{border:1px solid var(--line);border-radius:12px;padding:6px 14px 14px;margin:0;min-width:0}
.plan-edit legend{font-weight:800;padding:0 6px}
.plan-edit .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.save-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
button.btn{cursor:pointer;font:inherit;font-weight:700}
@media (max-width:900px){.admin-grid,.plans-edit{grid-template-columns:1fr}}
.meta a.tag.lic{text-decoration:none;color:var(--muted)} .meta a.tag.lic:hover{color:var(--ink);border-color:var(--ink)}
.section-note{margin:14px 0 4px;padding:10px 14px;border-left:3px solid var(--accent);background:var(--paper);font-size:14.5px;color:var(--ink-2);border-radius:0 8px 8px 0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.takedown .btn{margin-top:14px}@media (max-width:700px){.row2{grid-template-columns:1fr}}
