html[data-mode="dark"]{
  --bg:#111115;--surface:#17171c;--surface-2:#1d1d23;--line:#2c2b33;--line-strong:#403e47;
  --text:#e9e7ed;--muted:#9d98a4;--heading:#fff;--accent:#b18cff;--accent-soft:rgba(177,140,255,.09);
  --nav:rgba(17,17,21,.9);--quote:#c7c2ce;
}
html[data-mode="light"]{
  --bg:#fbfafb;--surface:#fff;--surface-2:#f3f1f4;--line:#e4e0e7;--line-strong:#cbc4cf;
  --text:#302b34;--muted:#6f6874;--heading:#1b1720;--accent:#6d3fc4;--accent-soft:rgba(109,63,196,.06);
  --nav:rgba(251,250,251,.92);--quote:#4f4855;
}
html[data-accent="rosa"]{--accent:#d44d91;--accent-soft:rgba(212,77,145,.07)}
:root{
  --display:'Space Grotesk',system-ui,sans-serif;
  --body:'Sora',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.75;font-weight:300;transition:background .25s,color .25s}
a{color:inherit}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.pub-nav{position:sticky;top:0;z-index:20;height:64px;border-bottom:1px solid var(--line);background:var(--nav);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;padding:0 32px}
.pub-brand{font-family:var(--display);font-weight:700;font-size:18px;text-decoration:none;color:var(--heading)}
.pub-brand i{font-style:normal;color:var(--accent)}
.nav-actions{display:flex;align-items:center;gap:8px}
.nav-link,.theme-btn{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-decoration:none;border:1px solid var(--line);background:var(--surface);height:38px;padding:0 14px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.theme-btn{width:38px;padding:0;font-size:14px}
.nav-link:hover,.theme-btn:hover{color:var(--heading);border-color:var(--line-strong)}
.catalog{max-width:1180px;margin:0 auto;padding:94px 44px 110px}
.catalog-kicker,.article-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.catalog h1{font-family:var(--display);font-size:clamp(42px,6.5vw,76px);line-height:1.03;letter-spacing:-.025em;color:var(--heading);max-width:900px}
.catalog-intro{font-size:16px;color:var(--muted);max-width:680px;margin-top:24px}
.catalog-meta{display:flex;gap:18px;flex-wrap:wrap;margin:54px 0 18px;padding-bottom:16px;border-bottom:1px solid var(--line-strong);font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.catalog-meta strong{color:var(--text);font-weight:600}
.publication-row{display:grid;grid-template-columns:54px minmax(0,1fr) 130px;gap:28px;padding:34px 4px;border-bottom:1px solid var(--line);text-decoration:none;transition:background .2s,padding .2s}
.publication-row:hover{background:var(--surface);padding-left:18px;padding-right:18px}
.row-number{font-family:var(--mono);font-size:10px;color:var(--muted);padding-top:5px}
.row-type{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.publication-row h2{font-family:var(--display);font-size:clamp(22px,2.7vw,32px);line-height:1.2;color:var(--heading);font-weight:600;letter-spacing:-.012em;max-width:760px}
.publication-row p{color:var(--muted);font-size:13.5px;line-height:1.65;max-width:760px;margin-top:12px}
.row-date{text-align:right;font-family:var(--mono);font-size:9.5px;line-height:1.8;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.row-date span{display:block;color:var(--text)}
.catalog-note{margin-top:34px;padding:20px 22px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;color:var(--muted);max-width:760px}
.article-shell{max-width:1180px;margin:0 auto;padding:80px 44px 120px;display:grid;grid-template-columns:minmax(0,760px) 240px;gap:100px;align-items:start}
.article-head{padding-bottom:42px;border-bottom:1px solid var(--line-strong);margin-bottom:42px}
.article-head h1{font-family:var(--display);font-size:clamp(38px,5.8vw,66px);line-height:1.06;letter-spacing:-.025em;color:var(--heading);font-weight:700;max-width:820px}
.article-subtitle{font-size:17px;line-height:1.65;color:var(--muted);margin-top:22px;max-width:720px}
.article-meta{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line);font-family:var(--mono);font-size:9.5px;line-height:1.6;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.article-meta strong{color:var(--text);font-weight:600}
.abstract{padding:28px 30px;background:var(--surface);border:1px solid var(--line);margin-bottom:48px}
.abstract h2{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text);margin-bottom:12px}
.abstract p{font-size:14px;color:var(--quote);line-height:1.78}
.keywords{font-family:var(--mono);font-size:9.5px;line-height:1.7;color:var(--muted);margin-top:15px}
.keywords strong{color:var(--text)}
.article-body h2{font-family:var(--display);font-size:30px;line-height:1.2;color:var(--heading);margin:56px 0 18px;letter-spacing:-.015em}
.article-body h3{font-family:var(--display);font-size:21px;line-height:1.3;color:var(--heading);margin:34px 0 12px}
.article-body p{margin-bottom:20px;color:var(--text)}
.article-body strong{font-weight:600;color:var(--heading)}
.article-body code{font-family:var(--mono);font-size:.88em;color:var(--heading);background:var(--surface-2);border:1px solid var(--line);padding:2px 5px;border-radius:3px}
.article-body blockquote{border-left:2px solid var(--line-strong);margin:32px 0;padding:4px 0 4px 24px;color:var(--quote);font-size:17px}
.article-body figure{margin:42px 0;padding:24px;background:var(--surface);border:1px solid var(--line);text-align:center}
.article-body figure.figure-narrow{max-width:590px;margin-left:auto;margin-right:auto}
.article-body figure img{display:block;width:100%;height:auto;margin:0 auto;filter:saturate(.75)}
.article-body figcaption{font-family:var(--mono);font-size:10px;line-height:1.6;color:var(--text);margin-top:16px;text-align:left}
.article-body figcaption small{display:block;color:var(--muted);margin-top:5px}
.article-body table{width:100%;border-collapse:collapse;margin:30px 0 12px;font-size:12.5px;line-height:1.5;background:var(--surface)}
.article-body th,.article-body td{border:1px solid var(--line-strong);padding:11px 12px;text-align:left;vertical-align:top}
.article-body th{font-family:var(--display);font-weight:600;color:var(--heading);background:var(--surface-2)}
.article-body td{color:var(--text)}
.article-body table+figcaption,.article-body table+p{font-size:12px;color:var(--muted)}
.article-body #referencias~p{font-size:12.5px;color:var(--muted);line-height:1.65;margin-bottom:14px;padding-left:20px;text-indent:-20px}
.process{margin:30px 0;border-top:1px solid var(--line-strong)}
.process li{list-style:none;display:grid;grid-template-columns:34px 1fr;gap:12px;padding:18px 0;border-bottom:1px solid var(--line);font-size:14px}
.process b{font-family:var(--mono);font-size:10px;color:var(--muted);padding-top:3px}
.references{margin-top:64px;padding-top:34px;border-top:1px solid var(--line-strong)}
.references h2{margin-top:0}
.references ol{padding-left:20px}
.references li{padding-left:8px;margin-bottom:14px;font-size:12.5px;color:var(--muted);line-height:1.65}
.revision{margin-top:42px;padding:20px 22px;background:var(--surface);border:1px solid var(--line);font-family:var(--mono);font-size:9.5px;line-height:1.8;color:var(--muted)}
.article-aside{position:sticky;top:96px}
.aside-label{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--line)}
.toc{list-style:none;margin-top:10px}
.toc a{display:block;padding:8px 0;font-size:11px;line-height:1.5;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line)}
.toc a:hover{color:var(--text)}
.aside-back{display:inline-block;margin-top:28px;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text);text-decoration:none}
.pub-footer{border-top:1px solid var(--line);padding:28px 32px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:9.5px;color:var(--muted);letter-spacing:.06em}
@media (max-width:900px){
  .article-shell{grid-template-columns:1fr;gap:48px}
  .article-aside{position:static;order:-1;border-bottom:1px solid var(--line);padding-bottom:18px}
  .toc{display:none}.aside-label{display:none}.aside-back{margin-top:0}
}
@media (max-width:680px){
  .pub-nav{padding:0 16px}.nav-link span{display:none}.nav-link{width:38px;padding:0}
  .catalog,.article-shell{padding:64px 20px 84px}
  .publication-row{grid-template-columns:30px minmax(0,1fr);gap:12px;padding:26px 0}
  .publication-row:hover{padding-left:8px;padding-right:8px}.row-date{grid-column:2;text-align:left;display:flex;gap:12px}.row-date span{display:inline}
  .article-head h1{font-size:39px}.article-subtitle{font-size:15px}.abstract{padding:22px 20px}
  .article-body h2{font-size:26px}.article-body{font-size:15px}.pub-footer{padding:24px 20px}
  .article-body figure{margin:30px -4px;padding:14px}.article-body table{display:block;overflow-x:auto;white-space:normal}
}
@media print{
  .pub-nav,.article-aside,.pub-footer{display:none}.article-shell{display:block;max-width:760px;padding:20px 0}.article-body{font-size:11pt;color:#111}body{background:#fff;color:#111}
}
