:root{--paper:#fafaf6;--ink:#183b35;--body:#4e605a;--green:#256c5b;--line:#d9e1d9;--soft:#eff3eb;--white:#fff;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--green)}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #b07325;outline-offset:5px}::selection{background:#d6e7cf}.wrap{max-width:1200px;margin:auto;padding-left:48px;padding-right:48px}.skip{position:absolute;left:16px;top:-70px;padding:8px 16px;background:var(--ink);color:white;z-index:10}.skip:focus{top:12px}.header{display:flex;align-items:center;justify-content:space-between;min-height:100px;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;text-decoration:none;font-size:23px;font-weight:700;letter-spacing:-1px}.brand img{margin-right:10px}.brand span{color:var(--green)}nav{display:flex;gap:30px;align-items:center;font-size:14px}nav a{text-decoration:none}.nav-code{border-left:1px solid var(--line);padding-left:28px}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:52px;align-items:center;padding-top:72px;padding-bottom:66px}.release{display:inline-flex;gap:10px;align-items:center;text-decoration:none;font-size:11px;letter-spacing:1.1px;font-weight:700}.dot{width:7px;height:7px;background:#388169;border-radius:50%}h1,h2,h3,p,figure{margin:0}h1{font:normal clamp(40px,4.5vw,59px)/1.12 var(--serif);letter-spacing:-2px;margin:24px 0}h1 em{font-weight:normal;color:var(--green)}.subtitle{font-size:18px;line-height:1.6;max-width:540px}.intro{font-size:15px;color:var(--body);margin-top:20px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 23px}.button{display:inline-flex;align-items:center;gap:18px;padding:12px 20px;text-decoration:none;border-radius:5px;font-size:14px;font-weight:700;border:1px solid var(--ink)}.primary{background:var(--ink);color:white}.primary:hover{background:var(--green);color:white}.secondary{border-color:var(--line)}.secondary:hover{background:var(--soft)}.authors{font-size:12px;color:var(--body)}.method-figure{background:var(--soft);border:1px solid var(--line);border-radius:12px;overflow:hidden}.method-figure svg{width:100%;display:block}.method-figure figcaption{padding:16px 18px;text-align:center;border-top:1px solid var(--line);font-size:12px;color:var(--body)}.svg-kicker{font:10px var(--sans);letter-spacing:1.6px;fill:#5d736a}.svg-light{fill:#fafcf7;stroke:#c9d7cb}.svg-dark{fill:var(--ink)}.svg-title{font:15px var(--sans);fill:var(--ink)}.svg-small{font:11px var(--sans);fill:var(--body)}.svg-white{font:15px var(--sans);fill:white}.svg-pale{font:11px var(--sans);fill:#c5d9ce}.svg-footnote{font:9px var(--sans);fill:#657a6e;letter-spacing:1.2px}.connector{fill:none;stroke:#64867e;stroke-width:1.5;marker-end:url(#arrow)}.feedback{stroke-dasharray:4 4}.principles{display:flex;justify-content:space-between;gap:20px;padding-top:22px;padding-bottom:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--body)}.principles span:before{content:'+';color:var(--green);margin-right:10px}.section{padding-top:78px;padding-bottom:78px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--green);margin-bottom:16px}h2{font:normal 37px/1.2 var(--serif);letter-spacing:-.8px}.section-heading>p:last-child{margin-top:16px;color:var(--body);font-size:15px}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:45px}.features article+article{border-left:1px solid var(--line);padding-left:32px}.number{font-size:10px;letter-spacing:1.5px;color:var(--green)}h3{font-size:19px;line-height:1.35;letter-spacing:-.25px}.features h3{margin:16px 0 12px}.features p,.tutorial p{color:var(--body);font-size:14px}.requirements{display:flex;gap:25px;background:var(--soft);padding:22px 26px;margin-top:40px;border-radius:5px;font-size:13px}.requirements strong{white-space:nowrap}.requirements p{color:var(--body)}.requirements a{white-space:nowrap}.tutorial-section{background:#eef2ea;border-block:1px solid var(--line)}.tutorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}.tutorial{display:flex;flex-direction:column;background:var(--paper);padding:28px;border:1px solid #d3ddd0;border-radius:7px;text-decoration:none;transition:background .15s,border-color .15s}.tutorial:hover{background:#fff;border-color:var(--green)}.tag{font-size:9px;letter-spacing:1.3px;color:var(--green);font-weight:700}.tutorial h3{margin:24px 0 13px;display:flex;justify-content:space-between;gap:8px}.tutorial .text-link{margin-top:auto;padding-top:28px}.text-link{font-size:13px;font-weight:700;text-underline-offset:5px}.resource-note{font-size:12px;color:var(--body);margin-top:22px}.records{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.records p:not(.eyebrow){color:var(--body);font-size:14px;margin:20px 0}.resource-list a{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:14px}.resource-list a:first-child{border-top:1px solid var(--line)}.citation{display:grid;grid-template-columns:1fr 1.65fr;gap:50px;border-top:1px solid var(--line);padding-top:48px;padding-bottom:52px}.citation h2{font-size:30px}.citation p:not(.eyebrow){font-size:14px;color:var(--body);margin:12px 0}.citation-text{padding:20px 25px;background:var(--soft);border-radius:6px;overflow-wrap:anywhere}.citation-text p{font-size:13px!important}.citation-text button{cursor:pointer;border:1px solid #b9cab9;padding:6px 12px;background:transparent;color:var(--ink);border-radius:4px;font-size:12px}.citation-text button:hover{background:white}#copy-status{font-size:12px;margin-left:12px}.footer{display:flex;gap:25px;border-top:1px solid var(--line);padding-top:25px;padding-bottom:25px;font-size:11px}.footer>span{margin-right:auto}.footer a{text-decoration:none}.footer-muted{color:var(--body);margin-left:8px}
@media(min-width:1440px){.hero{padding-top:88px;padding-bottom:82px}}
@media(max-width:950px){.wrap{padding-left:28px;padding-right:28px}.hero{gap:24px}h1{font-size:43px}.subtitle{font-size:16px}.records{gap:45px}.tutorial{padding:20px}.tutorial h3{font-size:17px}.features{gap:22px}.features article+article{padding-left:22px}}
@media(max-width:700px){.wrap{padding-left:22px;padding-right:22px}.header{min-height:84px;flex-wrap:wrap;gap:12px;padding-top:18px;padding-bottom:18px}.brand{font-size:21px}nav{gap:18px;font-size:12px}.nav-code{border:0;padding:0}.hero{grid-template-columns:1fr;padding-top:42px;padding-bottom:36px;gap:32px}h1{font-size:46px}.subtitle{font-size:17px}.intro{font-size:14px}.method-figure{max-width:480px;width:100%;justify-self:center}.principles{flex-direction:column;gap:8px;font-size:12px}.section{padding-top:48px;padding-bottom:48px}h2{font-size:32px}.features,.tutorial-grid,.records,.citation{grid-template-columns:1fr}.features{margin-top:30px;gap:24px}.features article+article{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:24px}.requirements{flex-direction:column;gap:8px;padding:20px}.requirements a{white-space:normal}.tutorial{padding:24px}.tutorial h3{font-size:20px;margin-top:15px}.tutorial .text-link{padding-top:20px}.records{gap:30px}.citation{gap:25px;padding-top:38px;padding-bottom:38px}.footer{flex-wrap:wrap;gap:12px 24px}.footer>span{width:100%}.footer-muted{margin-left:0}.citation-text{padding:18px}#copy-status{display:block;margin:8px 0 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tutorial{transition:none}}

.paper-announcement{font-size:14px;margin:20px 0 0}.paper-announcement a{font-weight:700}.paper-announcement span{display:block;color:var(--body);font-size:12px;margin-top:4px}.paper-section{border-top:1px solid var(--line)}.paper-figure{margin:36px 0 0;padding:16px;background:white;border:1px solid var(--line);border-radius:8px}.paper-figure img{display:block;width:100%;height:auto}.paper-figure-tall{max-width:850px;margin-left:auto;margin-right:auto}.paper-figure figcaption{font-size:14px;line-height:1.65;color:var(--body);padding:16px 8px 4px}.paper-figure figcaption strong{color:var(--ink)}.paper-figure figcaption a{white-space:nowrap}@media(max-width:700px){.paper-figure{padding:6px}.paper-figure figcaption{font-size:13px;padding:12px 6px}.header nav{flex-wrap:wrap}}
/* Limit paper figure widths while keeping them responsive. */
.paper-figure {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.paper-figure-tall {
  max-width: 600px;
}

/* Academic homepage. Scoped to preserve existing tutorial URLs and layout. */
.academic { background: #fff; color: #263238; font-family: Arial, Helvetica, sans-serif; }
.academic a { color: #246e79; text-underline-offset: 4px; }
.academic-nav { max-width: 1120px; margin: auto; padding: 22px 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #e8ecee; }
.academic-brand { font-size: 20px; font-weight: 700; text-decoration: none; }
.academic-nav nav { gap: 24px; font-size: 13px; }
.paper-hero { max-width: 1000px; margin: auto; padding: 72px 28px 44px; text-align: center; }
.paper-label { color: #64777c; font-size: 11px; font-weight: 700; letter-spacing: 2px; }
.academic h1 { font: 600 clamp(26px, 3.2vw, 39px)/1.24 Arial, Helvetica, sans-serif; letter-spacing: -1px; margin: 20px auto 26px; max-width: 940px; }
.academic h1 > span { display: block; color: #246e79; font-size: clamp(40px, 5vw, 58px); letter-spacing: -2px; margin-bottom: 15px; }
.paper-authors { font-size: 19px; display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.paper-authors a { text-decoration: none; }
.paper-authors > span { color: #a2adb0; }
.paper-venue { color: #69777c; font-size: 15px; margin-top: 12px; }
.paper-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 28px 0; }
.paper-actions a { display: inline-flex; align-items: center; gap: 9px; color: #fff; background: #303c40; border-radius: 26px; padding: 10px 23px; text-decoration: none; font-size: 15px; font-weight: 600; }
.paper-actions svg { width: 20px; height: 20px; flex: none; }
.paper-actions .guide-action { background: #246e79; }
.paper-actions a:hover { background: #164f58; }
.paper-actions span { margin-left: 8px; }
.paper-tagline { font-size: 19px; color: #56666c; margin-top: 34px; }
.paper-content { max-width: 960px; margin: auto; padding: 44px 30px; }
.academic h2 { font: 600 29px/1.3 Arial, Helvetica, sans-serif; letter-spacing: -.6px; margin-bottom: 20px; text-align: center; color: #263238; }
.paper-lead { max-width: 820px; margin: auto; font-size: 17px; line-height: 1.8; text-align: center; }
.research-figure { max-width: 790px; margin: 30px auto; }
.research-figure img { display: block; width: 100%; height: auto; }
.research-figure figcaption { color: #58686e; font-size: 14px; line-height: 1.7; margin-top: 18px; }
.method-notes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 38px; padding-top: 28px; border-top: 1px solid #e1e8ea; }
.academic .method-notes h3 { font-size: 17px; margin-bottom: 10px; }
.method-notes p { color: #58686e; font-size: 14px; line-height: 1.7; }
.results-section { border-top: 1px solid #e1e8ea; }
.result-figure { max-width: 610px; }
.scope-note { font-size: 14px; color: #58686e; background: #f3f7f8; padding: 20px 24px; border-left: 3px solid #8cb7bf; line-height: 1.7; }
.getting-started { border-top: 1px solid #e1e8ea; text-align: center; }
.getting-started > p { max-width: 740px; margin: auto; color: #58686e; }
.guide-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 28px; text-align: left; }
.guide-links a { border: 1px solid #dbe5e7; border-radius: 8px; padding: 22px 18px; text-decoration: none; font-size: 15px; }
.guide-links a:hover { background: #f3f7f8; }
.guide-links span { display: block; color: #899ca1; font-size: 12px; margin-bottom: 12px; }
.paper-citation { padding-bottom: 64px; }
.paper-citation h2 { text-align: left; }
.paper-citation pre { background: #f4f6f7; padding: 24px; border-radius: 8px; overflow-x: auto; font: 13px/1.7 Consolas, monospace; margin: 20px 0 12px; }
.paper-citation button { border: 1px solid #cbd8db; border-radius: 5px; padding: 8px 14px; background: white; cursor: pointer; }
.academic-footer { border-top: 1px solid #e1e8ea; padding: 28px; text-align: center; font-size: 12px; color: #69777c; line-height: 1.8; }
.academic-footer p + p { margin-top: 8px; }
@media (max-width: 640px) {
  .academic-nav { padding: 18px 20px; flex-direction: column; gap: 12px; }
  .academic-nav nav { gap: 18px; flex-wrap: wrap; justify-content: center; }
  .paper-hero { padding: 42px 20px 24px; }
  .paper-authors { font-size: 16px; gap: 8px; }
  .paper-content { padding: 32px 20px; }
  .academic h2 { font-size: 25px; }
  .paper-lead { font-size: 16px; text-align: left; }
  .method-notes, .guide-links { grid-template-columns: 1fr; gap: 18px; }
  .guide-links a { padding: 16px 20px; }
  .guide-links span { display: inline; margin-right: 14px; }
  .paper-citation pre { padding: 16px; }
}
