:root{
  --ink:#1d2733;
  --ink-soft:#46566b;
  --paper:#f4f1ea;
  --steel:#31576e;
  --steel-deep:#1e3a4d;
  --accent:#c2622d;
  --line:#d8d2c4;
  --fs-sm:.8125rem; --fs-base:1rem; --fs-md:1.1875rem; --fs-lg:1.625rem; --fs-xl:2.5rem; --fs-hero:clamp(2rem,5vw,3.5rem);
  --sp1:4px; --sp2:8px; --sp3:12px; --sp4:16px; --sp5:24px; --sp6:32px; --sp7:48px; --sp8:64px;
  --mono:"Courier New",ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--mono),"Noto Sans SC",sans-serif;color:var(--ink);background:var(--paper);font-size:var(--fs-base);line-height:1.75}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--sp5)}
a{color:var(--steel);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--accent)}
a:focus-visible,summary:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* header */
.site-header{border-bottom:3px solid var(--steel-deep);background:var(--paper)}
.header-in{display:flex;align-items:center;justify-content:space-between;gap:var(--sp5);padding-top:var(--sp4);padding-bottom:var(--sp4);flex-wrap:wrap}
.header-in nav ul{display:flex;gap:var(--sp4);list-style:none;flex-wrap:wrap}
.header-in nav a{font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--ink-soft);padding:var(--sp1) var(--sp2)}
.header-in nav a:hover{color:var(--accent)}
.header-in nav a[aria-current]{color:var(--accent);border-bottom:2px solid var(--accent)}
/* breadcrumb */
.breadcrumb{font-size:var(--fs-sm);letter-spacing:.08em;color:var(--ink-soft);padding-top:var(--sp4);display:flex;gap:var(--sp2)}
.breadcrumb a{color:var(--ink-soft)}
/* hero */
.hero-split{padding:var(--sp8) 0;border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp7);align-items:center}
.kicker{font-size:var(--fs-sm);letter-spacing:.3em;color:var(--accent);margin-bottom:var(--sp3)}
h1{font-size:var(--fs-hero);line-height:1.25;letter-spacing:.02em;margin-bottom:var(--sp5)}
.lead{max-width:62ch;font-size:var(--fs-md);color:var(--ink-soft)}
.hero-fig img{width:100%;height:auto;display:block;border:1px solid var(--line)}
.cta-row{margin-top:var(--sp5);display:flex;gap:var(--sp4);flex-wrap:wrap}
.btn{display:inline-block;background:var(--steel-deep);color:#fff;padding:var(--sp3) var(--sp5);text-decoration:none;font-size:var(--fs-base);letter-spacing:.1em;border:2px solid var(--steel-deep)}
.btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-ghost{background:transparent;color:var(--steel-deep)}
.btn-ghost:hover{background:var(--steel-deep);color:#fff}
/* sections */
section{scroll-margin-top:var(--sp6)}
h2{font-size:var(--fs-lg);letter-spacing:.06em;margin-bottom:var(--sp5);border-left:6px solid var(--accent);padding-left:var(--sp3)}
main section{padding-top:var(--sp7);padding-bottom:var(--sp7)}
/* caps */
.cap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp6)}
.cap{border-top:3px solid var(--steel-deep);padding-top:var(--sp4)}
.cap h3{font-size:var(--fs-md);margin-bottom:var(--sp3);color:var(--steel-deep)}
.cap p{font-size:var(--fs-base);color:var(--ink-soft)}
/* band / items */
.band{background:#eceae2;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band-note{max-width:70ch;margin-bottom:var(--sp5);color:var(--ink-soft)}
.items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.item{background:var(--paper);border:1px solid var(--line);padding-bottom:var(--sp4)}
.item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;border-bottom:1px solid var(--line)}
.item h2,.item h3{font-size:var(--fs-md);margin:var(--sp3) var(--sp4) var(--sp2);border:none;padding:0}
.item p{font-size:var(--fs-sm);color:var(--ink-soft);margin:0 var(--sp4) var(--sp2)}
.item ul{margin:0 var(--sp4);padding-left:var(--sp4);font-size:var(--fs-sm);color:var(--ink-soft)}
/* process */
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp5)}
.steps li{counter-increment:s;border-top:3px solid var(--accent);padding-top:var(--sp3)}
.steps li::before{content:"0" counter(s);display:block;font-size:var(--fs-lg);color:var(--accent);font-weight:700}
.steps strong{display:block;margin-bottom:var(--sp2)}
.steps span,.steps-v p{color:var(--ink-soft);font-size:var(--fs-sm)}
.steps-v{list-style:none;max-width:72ch}
.steps-v li{border-left:6px solid var(--steel);padding:var(--sp3) 0 var(--sp3) var(--sp4);margin-bottom:var(--sp5)}
.steps-v h3{margin-bottom:var(--sp2)}
/* faq */
.qa-list{max-width:74ch}
.qa-list details{border-bottom:1px solid var(--line);padding:var(--sp3) 0}
.qa-list summary{cursor:pointer;font-weight:700;padding:var(--sp2) 0;list-style-position:outside}
.qa-list p{color:var(--ink-soft);padding-top:var(--sp2)}
/* cta */
.cta-band{background:var(--steel-deep);color:#fff}
.cta-band h2{color:#fff;border-color:var(--accent)}
.cta-band p{margin-bottom:var(--sp5);color:#cfd9e2}
.cta-band .btn{background:var(--accent);border-color:var(--accent)}
.cta-band .btn:hover{background:#fff;border-color:#fff;color:var(--steel-deep)}
/* tables */
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);background:var(--paper)}
th,td{border:1px solid var(--line);padding:var(--sp3) var(--sp4);text-align:left}
th{background:var(--steel-deep);color:#fff;letter-spacing:.06em}
tbody tr:nth-child(even){background:#eceae2}
caption{text-align:left;font-size:var(--fs-sm);color:var(--ink-soft);padding-bottom:var(--sp2)}
/* about / guide */
.about-cols{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--sp7)}
.about-fig img{width:100%;height:auto;border:1px solid var(--line)}
.about-text h2,.guide h2{margin-top:var(--sp6)}
.about-text p,.guide p{max-width:70ch;color:var(--ink-soft);margin-bottom:var(--sp3)}
.guide{max-width:100%}
.end-note{color:var(--ink-soft)}
/* footer */
.site-footer{background:var(--ink);color:#cfd9e2;padding:var(--sp6) 0}
.footer-in{display:flex;justify-content:space-between;gap:var(--sp5);flex-wrap:wrap;font-size:var(--fs-sm)}
.footer-in nav a{color:#cfd9e2;text-decoration:none}
.footer-in nav a:hover{color:var(--accent)}
@media(max-width:900px){
  .hero-grid,.about-cols{grid-template-columns:1fr}
  .cap-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .header-in{flex-direction:column;align-items:flex-start}
}
@media(max-width:760px){
  .items{grid-template-columns:minmax(0,1fr)}
  .steps{grid-template-columns:1fr}
}