:root{
  --ink:#1b2a2f; --paper:#f4f1ea; --accent:#b4551e; --line:#3c4b50; --muted:#5c6b6f;
  --fs1:1rem; --fs2:1.25rem; --fs3:1.75rem; --fs4:2.5rem; --fs5:3.5rem; --fs6:4.75rem;
  --sp1:4px; --sp2:8px; --sp3:12px; --sp4:16px; --sp5:24px; --sp6:32px; --sp7:48px; --sp8:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Source Han Serif SC","Noto Serif SC",Georgia,"Songti SC",serif;background:var(--paper);color:var(--ink);line-height:1.75;font-size:var(--fs1)}
h1,h2,h3{font-family:"Source Han Sans SC","Noto Sans SC","PingFang SC",sans-serif;line-height:1.25;letter-spacing:.02em}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--sp5)}
.narrow{max-width:840px}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.btn{display:inline-block;padding:var(--sp3) var(--sp5);border:2px solid var(--ink);color:var(--ink);text-decoration:none;font-family:"Source Han Sans SC","Noto Sans SC",sans-serif;font-weight:600;letter-spacing:.06em}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.ghost{border-color:var(--muted);color:var(--muted)}
.btn.ghost:hover{background:var(--muted);color:var(--paper)}
.textlink{font-family:"Source Han Sans SC","Noto Sans SC",sans-serif}
/* header */
.site-header{border-bottom:3px solid var(--ink);background:var(--paper);position:sticky;top:0;z-index:10}
.header-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp4);padding-top:var(--sp4);padding-bottom:var(--sp4)}
.site-header nav a{font-family:"Source Han Sans SC","Noto Sans SC",sans-serif;color:var(--ink);text-decoration:none;margin-left:var(--sp4);letter-spacing:.08em;font-weight:500}
.site-header nav a:hover{color:var(--accent)}
.site-header nav a[aria-current="page"]{border-bottom:3px solid var(--accent);padding-bottom:2px}
/* breadcrumb */
.breadcrumb{font-size:12px;letter-spacing:.12em;color:var(--muted);max-width:1280px;margin:0 auto;padding:var(--sp4) var(--sp5) 0;font-family:"Source Han Sans SC","Noto Sans SC",sans-serif}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb span{margin:0 var(--sp2)}
/* hero variants */
.hero-split .hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp8);align-items:center;padding-top:var(--sp8);padding-bottom:var(--sp8)}
.hero-split h1,.hero-stack h1,.hero-side h1,.hero-contact .contact-card h1{font-size:var(--fs6);font-weight:900;line-height:1.08}
.kicker{font-family:"Source Han Sans SC","Noto Sans SC",sans-serif;letter-spacing:.3em;color:var(--accent);font-size:var(--fs2);font-weight:700;margin-bottom:var(--sp4)}
.lead{margin-top:var(--sp5);font-size:var(--fs2);line-height:1.8}
.hero-actions{margin-top:var(--sp6)}
.hero-fig img{width:100%;height:auto;border:2px solid var(--ink)}
.hero-stack{padding-top:var(--sp7);padding-bottom:var(--sp7)}
.hero-stack figure{margin-top:var(--sp6)}
.hero-stack img{width:100%;height:auto;border:2px solid var(--ink)}
.hero-side{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp8);align-items:center;padding-top:var(--sp7);padding-bottom:var(--sp7)}
.hero-side img{width:100%;height:auto;border:2px solid var(--ink)}
.hero-contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--sp7);align-items:center;padding-top:var(--sp7);padding-bottom:var(--sp7)}
.hero-contact img{width:100%;height:auto;border:2px solid var(--ink)}
.contact-card{border-left:6px solid var(--accent);padding-left:var(--sp5)}
.mail{font-family:"Source Han Sans SC","Noto Sans SC",sans-serif;font-weight:700}
/* metrics band */
.band{background:var(--ink);color:var(--paper)}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp5);padding-top:var(--sp6);padding-bottom:var(--sp6)}
.metrics strong{font-size:var(--fs3);display:block;font-family:"Source Han Sans SC","Noto Sans SC",sans-serif;font-weight:900}
.metrics span{color:#c9c3b6;font-size:.9375rem}
/* sections */
.section{padding-top:var(--sp8);padding-bottom:var(--sp8)}
.section.alt{background:#eae5da;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.section h2{font-size:var(--fs4);font-weight:900;margin-bottom:var(--sp5)}
.section-sub{color:var(--muted);margin-bottom:var(--sp6)}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp6)}
.col{border-top:3px solid var(--ink);padding-top:var(--sp4)}
.col h3{font-size:var(--fs3);margin-bottom:var(--sp3)}
.col p{font-size:.9375rem;color:#2e3d42}
/* items grid */
.items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.item{border-top:2px solid var(--ink);padding-top:var(--sp4)}
.item h2,.item h3{font-size:var(--fs2);margin:var(--sp3) 0 var(--sp2)}
.item p{font-size:.9375rem;color:#2e3d42}
.item ul{margin:var(--sp3) 0 0 var(--sp5);font-size:.875rem;color:var(--muted)}
@media(max-width:760px){.items{grid-template-columns:minmax(0,1fr)}}
/* steps */
.steps{list-style:none;counter-reset:none;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp6)}
.steps li{border-top:3px solid var(--accent);padding-top:var(--sp4)}
.steps span{font-family:"Source Han Sans SC","Noto Sans SC",sans-serif;font-size:var(--fs4);font-weight:900;color:var(--accent);display:block;line-height:1}
.steps h3{font-size:var(--fs2);margin:var(--sp3) 0}
.steps p{font-size:.9375rem}
/* faq */
.faq-list details{border-bottom:1px solid var(--line);padding:var(--sp4) 0}
.faq-list summary{cursor:pointer;font-family:"Source Han Sans SC","Noto Sans SC",sans-serif;font-weight:700}
.faq-list summary:hover{color:var(--accent)}
.faq-list p{margin-top:var(--sp3);font-size:.9375rem}
.faq-list-lg h2{font-size:var(--fs3);margin:var(--sp7) 0 var(--sp4);color:var(--accent)}
.faq-list-lg h3{font-size:var(--fs2);margin:var(--sp5) 0 var(--sp2)}
.faq-list-lg p{margin-bottom:var(--sp3);max-width:65ch}
/* prose */
.prose{max-width:840px}
.prose h2{font-size:var(--fs3);margin:var(--sp7) 0 var(--sp4);border-bottom:2px solid var(--ink);padding-bottom:var(--sp2)}
.prose p{margin-bottom:var(--sp4);max-width:65ch}
.prose table{width:100%;border-collapse:collapse;margin:var(--sp5) 0;font-size:.875rem}
.prose th,.prose td{border:1px solid var(--line);padding:var(--sp2) var(--sp3);text-align:left}
.prose th{background:var(--ink);color:var(--paper);font-family:"Source Han Sans SC","Noto Sans SC",sans-serif}
/* cta */
.cta{text-align:left;border-top:3px solid var(--ink)}
.cta p{max-width:60ch;margin-bottom:var(--sp4)}
/* footer */
.site-footer{background:var(--ink);color:var(--paper);margin-top:var(--sp8)}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--sp6);padding-top:var(--sp7);padding-bottom:var(--sp7)}
.footer-inner nav a{display:block;color:#c9c3b6;text-decoration:none;margin-bottom:var(--sp2);font-family:"Source Han Sans SC","Noto Sans SC",sans-serif}
.footer-inner nav a:hover{color:var(--paper)}
.fine{color:#8a9498;font-size:.875rem;align-self:end}
@media(max-width:900px){
  .hero-split .hero-grid,.hero-side,.hero-contact,.cols3,.metrics,.steps,.footer-inner{grid-template-columns:1fr}
  .hero-split h1,.hero-stack h1,.hero-side h1,.hero-contact .contact-card h1{font-size:var(--fs5)}
  .header-inner nav a{margin-left:0;margin-right:var(--sp4)}
}