:root {
  --bg:#fff; --panel:#fff; --ink:#121a2d; --muted:#566078;
  --accent:#6353e8; --soft:#f4f2ff; --rule:#e5e5f1;
  font-family:Inter,"Segoe UI",Arial,sans-serif; color:var(--ink); background:var(--bg);
  font-synthesis:none;
}
html[data-site="robotics"] {
  --bg:#0f171d; --panel:#18232c; --ink:#f0f4f6; --muted:#b3bec8;
  --accent:#ff8a4c; --soft:#202e38; --rule:#32404b;
}
* {box-sizing:border-box}
body {margin:0}
a {color:inherit;text-decoration:none}
a:hover {color:var(--accent)}
a:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible {outline:2px solid var(--accent);outline-offset:4px}
svg {width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}
button,input,select {font:inherit}
button {cursor:pointer}
.page {max-width:1536px;margin:auto;padding:0 7.25%}
.masthead {min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand {display:inline-flex;gap:14px;align-items:center;flex-shrink:0;font-weight:750}
.wordmark {font-size:26px;letter-spacing:-1px;white-space:nowrap}
.brand-mark {width:30px;height:34px;color:var(--accent);stroke:none;fill:currentColor}
html[data-site="robotics"] .brand-mark {fill:none;stroke:var(--accent);stroke-width:3}
.publications {display:flex;align-items:center;gap:30px;font-size:14px;white-space:nowrap}
.publications a {padding:14px 2px;border-bottom:2px solid transparent}
.publications [aria-current] {color:var(--accent);border-color:var(--accent);font-weight:600}
.intro {display:flex;justify-content:space-between;align-items:center;gap:25px;padding:24px 0 20px}
.intro h1 {margin:0 0 10px;font-size:54px;font-weight:760;letter-spacing:-2.2px;line-height:1.12}
.intro p {color:var(--muted);font-size:19px;line-height:1.5;margin:0}
.intro .refresh-note {flex-shrink:0;font-size:13px;text-align:right;padding-top:8px}
.controls {display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 22px}
.topics {display:flex;gap:8px;align-items:center;white-space:nowrap}
.topics a {background:var(--soft);padding:12px 20px;border-radius:16px;font-size:14px;line-height:1}
.topics [aria-current] {background:var(--accent);color:#fff;font-weight:600}
.filters {display:flex;align-items:center;gap:14px;min-width:0}
.search-field {display:flex;align-items:center;background:#fafaff;border:1px solid var(--rule);border-radius:12px;height:44px;width:280px}
.search-field button {display:flex;align-items:center;justify-content:center;width:42px;align-self:stretch;flex-shrink:0;border:0;background:transparent;color:var(--muted);padding:0}
.search-field input {border:0;background:transparent;outline:none;min-width:0;width:100%;padding:10px 10px 10px 0;font-size:14px;color:var(--ink)}
.search-field:focus-within {outline:2px solid var(--accent);outline-offset:2px}
input::placeholder {color:var(--muted);opacity:1}
select {width:165px;height:44px;padding:0 12px;border:1px solid var(--rule);border-radius:12px;color:var(--ink);background:var(--panel);font-size:14px}
.filter-summary {display:flex;justify-content:space-between;gap:20px;font-size:14px;padding:0 0 20px;color:var(--muted)}
.filter-summary a {color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.lead-layout {display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);border:1px solid var(--rule);border-radius:20px;padding:8px;overflow:hidden;min-height:350px}
.visual {position:relative;margin:0;min-width:0;overflow:hidden;background:var(--soft)}
.visual-link {display:block;height:100%;width:100%}
.visual img {display:block;width:100%;height:100%;object-fit:cover}
.lead-layout>.visual {border-radius:12px 0 0 12px;min-height:350px}
.lead-layout>.visual img {position:absolute;inset:0;object-position:center 20%}
.image-backup {position:absolute;top:12px;left:12px;padding:7px 10px;border-radius:4px;background:#fff;color:#121a2d;font-size:12px;text-decoration:underline;z-index:1}
.image-credit {position:absolute;bottom:12px;left:12px;max-width:calc(100% - 24px);padding:5px 8px;border-radius:5px;color:#fff;background:rgba(0,0,0,.72);font-size:11px;line-height:1.5;pointer-events:none}
.image-placeholder {display:none;align-items:center;justify-content:center;flex-direction:column;gap:10px;height:100%;min-height:120px;padding:20px;text-align:center;color:var(--muted)}
.image-placeholder span {font-size:24px;font-weight:650}
.image-placeholder small {font-size:13px}
.visual.no-image img,.visual.no-image .visual-link,.visual.no-image .image-credit {display:none}
.visual.no-image .image-placeholder {display:flex}
.lead {display:flex;flex-direction:column;justify-content:center;padding:25px 30px}
.byline {margin-bottom:14px}
.publisher {font-size:15px;line-height:1.5;font-weight:700}
.published {font-size:14px;line-height:1.6;color:var(--muted);font-variant-numeric:tabular-nums}
.published-label {font-weight:650}
.lead>.published {margin:0 0 13px}
.lead h2 {margin:0 0 14px;font-size:31px;font-weight:750;line-height:1.2;letter-spacing:-.8px}
.story-title svg,.row-title svg {display:none}
.lead p {font-size:16px;color:var(--muted);line-height:1.6;margin:0 0 22px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.read-original {display:inline-flex;align-items:center;gap:9px;color:var(--accent);font-weight:650;font-size:15px;align-self:flex-start}
.latest {padding-top:25px}
.section-heading {display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:15px}
.section-heading h2 {margin:0;font-size:29px;letter-spacing:-.8px;font-weight:750;line-height:1.25}
.section-heading>span {font-size:13px;color:var(--muted)}
.story-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 22px}
.story-row {display:flex;flex-direction:column;min-width:0}
.story-row>.visual {width:100%;aspect-ratio:16/8.5;border-radius:10px;margin-bottom:16px}
.story-copy {display:flex;flex-direction:column;flex:1;min-width:0}
.story-copy>.published {margin:5px 0 9px;font-size:13px}
.story-copy h3 {font-size:21px;line-height:1.28;font-weight:720;letter-spacing:-.4px;margin:7px 0 9px}
.story-copy p {font-size:15px;line-height:1.55;color:var(--muted);margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card-link {color:var(--accent);font-size:13px;font-weight:650;margin-top:auto;display:inline-flex;align-items:center;gap:6px;align-self:flex-start}
.card-link svg {width:18px;height:18px}
.story-row .image-credit {font-size:10px;bottom:9px;left:9px;padding:3px 7px}
.pagination {display:flex;justify-content:space-between;align-items:center;margin-top:32px;padding:20px 0;border-top:1px solid var(--rule);color:var(--accent);font-size:14px}
.pagination a {display:flex;gap:8px;align-items:center;font-weight:650}
.pagination>span {color:var(--muted);font-size:13px}
.source-strip {margin-top:24px;padding:25px 0;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:32px;align-items:center}
.source-strip h2 {font-size:14px;margin:0 0 12px;font-weight:700}
.source-links {display:flex;gap:25px;flex-wrap:wrap}
.source-links a {display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.source-links svg {width:16px;height:16px}
.feed-status {font-size:12px;text-align:right;color:var(--muted);line-height:1.6;max-width:430px}
.feed-status small {font-size:11px;display:block;margin-top:4px}
.source-note {margin:7px 0;color:var(--accent)}
footer {border-top:1px solid var(--rule);padding:24px 0 32px;display:flex;gap:25px;align-items:center;justify-content:space-between}
footer .brand {font-size:16px;gap:9px}
footer .brand-mark {width:22px;height:24px}
footer p {font-size:12px;color:var(--muted);margin:0}
footer>div {display:flex;gap:20px;font-size:12px;color:var(--muted)}
.empty-state {border:1px solid var(--rule);border-radius:18px;background:var(--soft);padding:55px;min-height:250px}
.empty-state a {color:var(--accent);font-size:15px;font-weight:650;align-self:flex-start}
.about-copy {max-width:850px;padding:10px 0 40px}
.about-copy h2 {font-size:27px;letter-spacing:-.6px;margin:24px 0 12px}
.about-copy p {font-size:17px;line-height:1.8;color:var(--muted)}
.about-copy>a {color:var(--accent);font-size:16px;font-weight:650}
.about-sources {list-style:none;padding:0;margin:25px 0}
.about-sources li {padding:18px 0;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;gap:20px;align-items:center}
.about-sources a {font-size:18px;color:var(--accent);display:flex;gap:15px}
.about-sources span {font-size:13px;color:var(--muted)}
.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}
.skip {position:fixed;top:-100px;left:12px;background:var(--accent);color:#fff;padding:12px;z-index:10}
.skip:focus {top:12px}

/* Robotics keeps its graphite/orange identity with photographic story tiles. */
html[data-site="robotics"] .page {padding:0 3.6%}
html[data-site="robotics"] .masthead {gap:28px;min-height:78px}
html[data-site="robotics"] .wordmark {font-size:24px;letter-spacing:-.5px}
html[data-site="robotics"] .publications {margin-right:auto;font-size:13px;gap:25px}
html[data-site="robotics"] .publications a {padding:18px 2px}
html[data-site="robotics"] .masthead>.filters {margin-left:auto}
html[data-site="robotics"] .search-field {width:255px;border-radius:5px;background:var(--panel)}
html[data-site="robotics"] select {border-radius:5px;width:165px}
html[data-site="robotics"] .intro {padding:10px 0 15px}
html[data-site="robotics"] .intro h1 {font-size:60px;letter-spacing:-2.4px;font-weight:750;margin-bottom:5px}
html[data-site="robotics"] .intro p {font-size:18px;letter-spacing:.1px}
html[data-site="robotics"] .intro .refresh-note {display:none}
html[data-site="robotics"] .controls {padding-bottom:10px}
html[data-site="robotics"] .topics {gap:25px}
html[data-site="robotics"] .topics a {background:transparent;border-radius:0;padding:12px 10px 9px;font-size:16px;border-bottom:3px solid transparent}
html[data-site="robotics"] .topics [aria-current] {color:var(--accent);border-color:var(--accent);font-weight:700}
html[data-site="robotics"] .lead-layout {grid-template-columns:minmax(0,1.66fr) minmax(0,1fr);padding:0;min-height:375px;border-radius:5px;background:var(--panel)}
html[data-site="robotics"] .lead-layout>.visual {border-radius:0;min-height:375px}
html[data-site="robotics"] .lead {padding:30px 35px}
html[data-site="robotics"] .byline {margin-bottom:12px}
html[data-site="robotics"] .lead .publisher {font-size:20px;letter-spacing:-.5px}
html[data-site="robotics"] .lead>.published {color:var(--accent);font-size:13px;font-family:"Cascadia Code",Consolas,monospace;margin-bottom:19px}
html[data-site="robotics"] .lead h2 {font-size:34px;line-height:1.16;letter-spacing:-.8px;margin-bottom:16px}
html[data-site="robotics"] .lead p {font-size:16px;line-height:1.6}
html[data-site="robotics"] .image-credit {border-radius:2px}
html[data-site="robotics"] .latest {padding-top:22px}
html[data-site="robotics"] .section-heading h2 {font-size:30px;letter-spacing:-.6px}
html[data-site="robotics"] .story-row {background:var(--panel);border:1px solid var(--rule);border-radius:8px;overflow:hidden}
html[data-site="robotics"] .story-row>.visual {width:100%;aspect-ratio:16/9;border-radius:0;margin:0}
html[data-site="robotics"] .story-copy {padding:18px 20px 21px}
html[data-site="robotics"] .story-copy .publisher {font-size:13px;color:var(--muted)}
html[data-site="robotics"] .story-copy>.published {font:12px/1.7 "Cascadia Code",Consolas,monospace;color:#c9d2da;margin:7px 0 8px}
html[data-site="robotics"] .story-copy>.published .published-label {color:var(--accent)}
html[data-site="robotics"] .story-copy h3 {font-size:22px;font-weight:650;letter-spacing:-.3px;margin:4px 0 12px;line-height:1.3}
html[data-site="robotics"] .story-copy p {font-size:14px;line-height:1.6;margin:0 0 18px;-webkit-line-clamp:3}
html[data-site="robotics"] .story-row .image-credit {font-size:11px}

@media(max-width:1350px) {
  .controls {flex-wrap:wrap}.filters {margin-left:auto}.intro .refresh-note {display:none}
  html[data-site="robotics"] .masthead {flex-wrap:wrap;padding:18px 0;gap:12px 25px}
  html[data-site="robotics"] .masthead>.filters {flex-basis:100%;justify-content:flex-end}
}
@media(max-width:1000px) {
  .page {padding:0 5%}.intro h1 {font-size:46px}.intro p {font-size:17px}
  .lead-layout {grid-template-columns:1.2fr 1fr}.lead {padding:22px}.lead h2 {font-size:27px}
  .lead p {font-size:15px}.lead-layout>.visual {min-height:330px}.story-list {grid-template-columns:repeat(2,minmax(0,1fr))}
  html[data-site="robotics"] .intro h1 {font-size:48px}
  html[data-site="robotics"] .lead-layout {grid-template-columns:1.2fr 1fr}
  html[data-site="robotics"] .lead {padding:25px}.lead-layout>.visual {min-height:350px}
  html[data-site="robotics"] .lead h2 {font-size:29px}
}
@media(max-width:760px) {
  .page,html[data-site="robotics"] .page {padding:0 5%}
  .masthead {flex-wrap:wrap;min-height:100px;padding:18px 0;gap:10px}
  .wordmark {font-size:25px}.brand-mark {width:25px;height:29px}
  .publications {width:100%;gap:25px;font-size:13px}.publications a {padding:9px 0}
  .intro {padding:23px 0 19px}.intro h1 {font-size:39px;letter-spacing:-1.5px}.intro p {font-size:16px}
  .controls {gap:17px;padding-bottom:19px}.topics {width:100%;overflow-x:auto;scrollbar-width:thin;gap:7px;padding:3px 0 5px}
  .topics a {font-size:13px;padding:12px 16px;border-radius:12px}
  .filters {width:100%;gap:10px}.search-field {flex:1;min-width:0;width:auto}select {width:145px}
  .lead-layout,html[data-site="robotics"] .lead-layout {grid-template-columns:minmax(0,1fr);border-radius:16px}
  .lead-layout>.visual,html[data-site="robotics"] .lead-layout>.visual {aspect-ratio:16/10;min-height:0;width:100%;border-radius:10px 10px 0 0}
  .lead {padding:23px 18px}.lead h2 {font-size:28px;letter-spacing:-.6px}.lead p {font-size:15px}
  .published {font-size:13px}.byline {margin-bottom:8px}.lead>.published {margin-bottom:12px}
  .latest {padding-top:25px}.section-heading h2 {font-size:25px}.section-heading>span {font-size:12px}
  .story-list {gap:26px 16px}.story-copy h3 {font-size:20px}.story-copy p {font-size:14px}
  .source-strip {align-items:flex-start;flex-direction:column;gap:20px}.feed-status {text-align:left}
  footer {flex-wrap:wrap;gap:20px}footer p {flex-basis:100%;order:3}footer>div {gap:14px}
  .about-copy p {font-size:16px}.about-sources li {align-items:flex-start;flex-direction:column;gap:8px}
  .empty-state {padding:30px 20px}
  html[data-site="robotics"] .masthead {padding:18px 0;gap:10px}
  html[data-site="robotics"] .publications {gap:24px;font-size:13px}
  html[data-site="robotics"] .publications a {padding:9px 0}
  html[data-site="robotics"] .masthead>.filters {margin-top:10px;justify-content:flex-start}
  html[data-site="robotics"] .search-field {width:auto;flex:1}
  html[data-site="robotics"] select {width:145px}
  html[data-site="robotics"] .intro {padding:22px 0 11px}
  html[data-site="robotics"] .intro h1 {font-size:42px;letter-spacing:-1.5px}
  html[data-site="robotics"] .intro p {font-size:16px}
  html[data-site="robotics"] .topics {gap:15px}
  html[data-site="robotics"] .topics a {font-size:14px;padding:12px 2px 9px}
  html[data-site="robotics"] .lead-layout {border-radius:5px}
  html[data-site="robotics"] .lead-layout>.visual {border-radius:0}
  html[data-site="robotics"] .lead {padding:23px}
  html[data-site="robotics"] .lead h2 {font-size:29px}
  html[data-site="robotics"] .story-copy {padding:18px}
  html[data-site="robotics"] .story-copy h3 {font-size:20px}
}
@media(max-width:480px) {
  .story-list {grid-template-columns:1fr}.story-row>.visual {aspect-ratio:16/9}
  .intro h1 {font-size:37px}.lead h2 {font-size:27px}.filters {flex-wrap:wrap}
  .search-field {flex-basis:100%;height:46px}select {width:100%}
  html[data-site="robotics"] .wordmark {font-size:23px;letter-spacing:-.6px}
  html[data-site="robotics"] .search-field {flex-basis:100%}
  html[data-site="robotics"] select {width:100%}
  html[data-site="robotics"] .intro h1 {font-size:38px}
  html[data-site="robotics"] .lead h2 {font-size:27px}
  .image-placeholder span {font-size:18px}.image-placeholder small {font-size:11px}
}
@media(prefers-reduced-motion:no-preference) {
  a {transition:color .15s}.visual-link img {transition:transform .25s}.visual-link:hover img {transform:scale(1.025)}
}
