:root{
  --white:#ffffff;
  --ink:#14191d;
  --ink-soft:#374047;
  --muted:#68737b;
  --line:#dce1e4;
  --line-strong:#aeb8be;
  --accent:#8b2e3f;
  --accent-dark:#64202d;
  --accent-soft:#f5e9ec;
  --blue:#1d5572;
  --blue-soft:#edf4f7;
  --code:#f5f7f8;
  --max:1050px;
  --reading:0%;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--white)}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font:18px/1.72 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-rendering:optimizeLegibility;
}
a{
  color:var(--accent);
  text-decoration-thickness:.075em;
  text-underline-offset:.18em;
}
a:hover{color:var(--accent-dark);text-decoration-thickness:.13em}
img{display:block;max-width:100%;height:auto}

.reading-progress{
  position:fixed;
  inset:0 0 auto;
  height:3px;
  background:transparent;
  z-index:100;
}
.reading-progress span{
  display:block;
  width:var(--reading);
  height:100%;
  background:var(--accent);
  transition:width 80ms linear;
}

.lossfunk-mark{
  position:fixed;
  left:18px;
  bottom:18px;
  width:70px;
  height:auto;
  opacity:.78;
  pointer-events:none;
  z-index:40;
}

.site-header,main,.site-footer{
  max-width:var(--max);
  margin:0 auto;
  padding-left:30px;
  padding-right:30px;
}
.site-header{
  padding-top:62px;
  padding-bottom:42px;
  border-bottom:1px solid var(--line);
}
.eyebrow,.section-kicker,.theorem-label,.box-label,.download-card>span,.witness-banner>span{
  font:700 12px/1.25 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.eyebrow{
  display:inline-block;
  margin-bottom:18px;
  color:var(--accent);
  text-decoration:none;
}
h1,h2,h3{
  font-family:Georgia,"Times New Roman",serif;
  color:var(--ink);
  font-weight:500;
  line-height:1.16;
}
h1{
  max-width:980px;
  margin:0 0 18px;
  font-size:clamp(2.8rem,7.2vw,5.65rem);
  letter-spacing:-.047em;
}
h2{
  margin:0 0 20px;
  font-size:clamp(2rem,4.5vw,3.2rem);
  letter-spacing:-.03em;
}
h3{
  margin:34px 0 12px;
  font-size:1.42rem;
}
p{max-width:800px;margin:0 0 19px}
.lead{font-size:1.14rem;line-height:1.65;color:var(--ink-soft);max-width:850px}
.byline{
  display:grid;
  grid-template-columns:max-content 1fr;
  gap:1px 12px;
  margin:0 0 24px;
  font-family:Georgia,"Times New Roman",serif;
  color:var(--ink-soft);
}
.byline span{font-size:1.1rem}
.byline small{align-self:center;color:var(--muted);font:13px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}

.hero-theorem{
  position:relative;
  margin:30px 0 20px;
  padding:24px 72px 24px 26px;
  border:2px solid var(--ink);
}
.theorem-label,.box-label{color:var(--accent);margin-bottom:9px}
.copy-button{
  position:absolute;
  top:16px;
  right:16px;
  border:1px solid var(--line-strong);
  background:var(--white);
  color:var(--muted);
  border-radius:3px;
  padding:7px 9px;
  font:650 11px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  cursor:pointer;
}
.copy-button:hover,.copy-button.copied{border-color:var(--accent);color:var(--accent)}
.display-math,.derivation,.equation-stack,.math-list{
  font-family:Georgia,"Times New Roman",serif;
  font-variant-numeric:lining-nums tabular-nums;
}
.display-math{
  margin:20px 0 24px;
  padding:17px 20px;
  overflow-x:auto;
  border-left:3px solid var(--accent);
  background:var(--code);
  font-size:1.19rem;
  line-height:1.55;
}
.hero-theorem .display-math{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  font-size:clamp(1.2rem,3vw,1.72rem);
}
.compact-math{font-size:1.08rem;padding:12px 16px}
.math{font-family:Georgia,"Times New Roman",serif;white-space:normal}
.derivation,.equation-stack{
  margin:18px 0 22px;
  padding:14px 18px;
  border-left:3px solid var(--blue);
  background:var(--code);
  font-size:1.08rem;
  overflow-x:auto;
}
.derivation>div+div,.equation-stack>div+div{margin-top:5px}
.math-list{
  display:grid;
  gap:4px;
  margin:14px 0 18px;
  padding:13px 15px;
  background:var(--code);
  border-left:2px solid var(--line-strong);
}

.quick-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  margin:20px 0 32px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.quick-facts>div{padding:15px 16px;border-right:1px solid var(--line)}
.quick-facts>div:first-child{padding-left:0}
.quick-facts>div:last-child{border-right:0}
.quick-facts strong{
  display:block;
  color:var(--accent);
  font:500 1.42rem/1.2 Georgia,"Times New Roman",serif;
  white-space:nowrap;
}
.quick-facts span{display:block;margin-top:4px;color:var(--muted);font-size:.78rem;line-height:1.35}

.article-nav{
  display:flex;
  flex-wrap:wrap;
  gap:9px 17px;
  margin:0 0 34px;
}
.article-nav a{
  padding:3px 0;
  border-bottom:1px solid transparent;
  color:var(--muted);
  font-size:.84rem;
  text-decoration:none;
}
.article-nav a:hover,.article-nav a.active{color:var(--accent);border-color:var(--accent)}
.article-nav .nav-download{color:var(--accent);font-weight:700}

.hero-figure,.wide-figure,.overflow-figure{margin:30px 0}
.figure-frame{border:1px solid var(--line);background:var(--white);padding:13px}
.hero-figure .figure-frame{padding:18px}
figcaption{max-width:860px;margin-top:10px;color:var(--muted);font-size:.87rem;line-height:1.55}

main section{
  padding:65px 0 12px;
  scroll-margin-top:18px;
}
main section+section{border-top:1px solid var(--line);margin-top:48px}
.section-kicker{margin:0 0 10px;color:var(--accent)}
.definition,.proposition,.lemma,.certificate-note,.audit-summary{
  margin:24px 0;
  padding:19px 21px;
  border:1px solid var(--line-strong);
  background:var(--white);
}
.definition p:last-child,.proposition p:last-child,.lemma p:last-child,
.certificate-note p:last-child,.audit-summary p:last-child{margin-bottom:0}
.proposition{border-left:4px solid var(--accent)}
.lemma{border-left:4px solid var(--blue)}
.proposition .display-math{background:transparent;margin:0 0 8px;padding:0;border:0;font-size:1.45rem}

.two-column{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin:28px 0;
}
.construction-card{
  position:relative;
  padding:22px;
  border:1px solid var(--line);
}
.construction-card h3{margin-top:0;padding-right:48px}
.construction-card p{font-size:.95rem}
.card-number{
  position:absolute;
  top:18px;
  right:18px;
  color:var(--accent);
  font:500 1.35rem/1 Georgia,"Times New Roman",serif;
}
.mask-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:22px 0;
}
.mask-grid>div{border:1px solid var(--line);padding:16px}
.mask-grid strong{display:block;margin-bottom:10px;color:var(--accent);font-size:.85rem}
.mask-grid code{display:block;background:transparent;font-size:1rem;letter-spacing:.22em;line-height:1.35}

details{
  margin:18px 0;
  border:1px solid var(--line);
  background:var(--white);
}
summary{
  padding:16px 44px 16px 18px;
  color:var(--ink);
  font:500 1.2rem/1.3 Georgia,"Times New Roman",serif;
  cursor:pointer;
  list-style:none;
  position:relative;
}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:18px;top:13px;color:var(--accent);font:400 1.4rem/1 system-ui}
details[open] summary::after{content:"−"}
details[open] summary{border-bottom:1px solid var(--line)}
.proof-body{padding:20px 22px 4px}
.conclusion-theorem{
  margin:30px 0;
  padding:24px;
  border:2px solid var(--ink);
}

.witness-banner{
  display:grid;
  grid-template-columns:max-content 1fr max-content;
  gap:14px;
  align-items:center;
  margin:24px 0 16px;
  padding:14px 16px;
  border:1px solid var(--accent);
}
.witness-banner>span{color:var(--accent)}
.witness-banner strong{font-size:.9rem}
.witness-banner a{font-size:.85rem;font-weight:700}
.figure-scroll{overflow-x:auto}
.figure-scroll img{min-width:940px;width:100%;max-width:none}
.tall-detail img{min-width:1120px}
.button-row{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 24px}
.button{
  display:inline-block;
  padding:10px 13px;
  background:var(--accent);
  border:1px solid var(--accent);
  color:var(--white);
  text-decoration:none;
  font-size:.86rem;
  font-weight:700;
}
.button:hover{background:var(--accent-dark);color:var(--white)}
.button.secondary{background:var(--white);color:var(--accent)}
.button.secondary:hover{background:var(--accent-soft)}

.certificate-note{border-left:4px solid var(--accent);color:var(--ink-soft)}
.filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:23px 0 10px;color:var(--muted);font-size:.85rem}
.filter-button{
  border:1px solid var(--line-strong);
  background:var(--white);
  color:var(--muted);
  padding:6px 10px;
  cursor:pointer;
  font:650 12px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.filter-button:hover,.filter-button.active{border-color:var(--accent);color:var(--accent)}
.table-wrap{overflow-x:auto;margin:10px 0 24px}
table{width:100%;border-collapse:collapse;font-size:.91rem;font-variant-numeric:tabular-nums}
th,td{padding:9px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{
  border-bottom:2px solid var(--line-strong);
  color:var(--accent);
  font:700 11px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.09em;
  text-transform:uppercase;
}
td.num,th.num{text-align:right}
tr.filtered-out{display:none}
.sequence{
  padding:15px 17px;
  border:1px solid var(--line);
  color:var(--ink-soft);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.86rem;
  overflow-x:auto;
}
.sequence span{display:block;margin-bottom:7px;color:var(--accent);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}
.check-list{max-width:850px;padding-left:1.35rem}
.check-list li{margin:7px 0}
code,pre{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
code{padding:.08em .23em;background:var(--code);font-size:.9em}
pre{
  max-width:900px;
  margin:20px 0;
  padding:18px 20px;
  overflow:auto;
  border:1px solid var(--line);
  background:var(--code);
  color:#20282d;
  font-size:.82rem;
  line-height:1.65;
}
pre code{padding:0;background:transparent;font-size:inherit}

.timeline{margin:30px 0;padding:0;list-style:none}
.timeline li{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:26px;
  position:relative;
  padding:0 0 33px;
}
.timeline li::before{
  content:"";
  position:absolute;
  left:99px;
  top:10px;
  bottom:-4px;
  width:1px;
  background:var(--line);
}
.timeline li::after{
  content:"";
  position:absolute;
  left:94px;
  top:7px;
  width:9px;
  height:9px;
  border:2px solid var(--accent);
  border-radius:50%;
  background:var(--white);
}
.timeline li:last-child::before{display:none}
.timeline-date{
  color:var(--accent);
  font:700 11px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.timeline h3{margin:0 0 8px}
.timeline p{margin-bottom:0}
.audit-summary{border-left:4px solid var(--blue)}

.download-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:26px 0 32px;
}
.download-card{
  padding:20px;
  border:1px solid var(--line);
  background:var(--white);
}
.download-card.featured{border:2px solid var(--ink)}
.download-card>span{color:var(--accent)}
.download-card h3{margin:8px 0 9px;font-size:1.25rem}
.download-card p{font-size:.88rem;color:var(--muted);margin-bottom:13px}
.download-card a{display:block;margin-top:5px;font-size:.87rem;font-weight:700}
.small{color:var(--muted);font-size:.87rem}
.references{max-width:900px;padding-left:1.45rem}
.references li{margin:12px 0}
.site-footer{
  margin-top:80px;
  padding-top:25px;
  padding-bottom:70px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.83rem;
}
.site-footer p{margin-bottom:6px}

@media(max-width:800px){
  body{font-size:16px}
  .site-header,main,.site-footer{padding-left:20px;padding-right:20px}
  .site-header{padding-top:42px}
  .lossfunk-mark{width:52px;left:11px;bottom:11px}
  .quick-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-facts>div{border-bottom:1px solid var(--line)}
  .quick-facts>div:nth-child(2){border-right:0}
  .quick-facts>div:nth-child(3){padding-left:0;border-bottom:0}
  .quick-facts>div:nth-child(4){border-bottom:0}
  .two-column,.download-grid{grid-template-columns:1fr}
  .mask-grid{grid-template-columns:1fr}
  .witness-banner{grid-template-columns:1fr;gap:5px}
  .timeline li{grid-template-columns:75px 1fr;gap:20px}
  .timeline li::before{left:69px}
  .timeline li::after{left:64px}
  main section{padding-top:48px}
  main section+section{margin-top:34px}
  .hero-theorem{padding:20px}
  .copy-button{position:static;margin-top:14px}
}

@media(max-width:500px){
  h1{font-size:2.55rem}
  .byline{grid-template-columns:1fr;gap:0}
  .byline small{margin-bottom:8px}
  .quick-facts{grid-template-columns:1fr}
  .quick-facts>div,.quick-facts>div:first-child,.quick-facts>div:nth-child(3){
    padding:12px 0;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .quick-facts>div:last-child{border-bottom:0}
  .timeline li{grid-template-columns:1fr;padding-left:24px}
  .timeline li::before{left:5px}
  .timeline li::after{left:0}
}

@media print{
  .reading-progress,.lossfunk-mark,.article-nav,.copy-button,.filter-row{display:none}
  body{font-size:11pt}
  .site-header,main,.site-footer{max-width:none;padding-left:0;padding-right:0}
  main section{break-inside:auto;padding-top:30px}
  details{break-inside:avoid}
  details:not([open])>*:not(summary){display:block}
  a{color:inherit;text-decoration:none}
}
