:root{
  --bg:#f7f5f2; --bg-elev:#ffffff; --fg:#1c2430; --muted:#5b6675;
  --line:#e6e1d8; --brand:#e2603b; --brand-2:#f0a35e; --ring:#e2603b55;
  --card:#fffdfa; --shadow:0 10px 30px rgba(28,36,48,.08);
  --maxw:1080px; --radius:16px;
}
:root[data-theme="dark"]{
  --bg:#0b0f14; --bg-elev:#0f1620; --fg:#e6edf3; --muted:#9aa7b5;
  --line:#1e2a37; --brand:#f0793f; --brand-2:#f5b072; --ring:#f0793f55;
  --card:#0f1721; --shadow:0 14px 40px rgba(0,0,0,.45);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0b0f14; --bg-elev:#0f1620; --fg:#e6edf3; --muted:#9aa7b5;
    --line:#1e2a37; --brand:#f0793f; --brand-2:#f5b072; --ring:#f0793f55;
    --card:#0f1721; --shadow:0 14px 40px rgba(0,0,0,.45);
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Inter,"Helvetica Neue",Arial,sans-serif;
  line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
a{color:var(--brand); text-decoration:none}
a:hover{text-decoration:underline}
.skip{position:absolute;left:-999px;top:0;background:var(--brand);color:#fff;padding:.6rem 1rem;border-radius:0 0 8px 0;z-index:10}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--ring); outline-offset:2px; border-radius:8px}

.nav{
  display:flex; align-items:center; gap:1rem;
  max-width:var(--maxw); margin:0 auto; padding:1.1rem 1.25rem;
}
.brand{display:flex; align-items:center; gap:.55rem; font-weight:700; color:var(--fg); font-size:1.1rem; letter-spacing:.2px}
.brand img{display:block}
.nav-links{margin-left:auto; display:flex; gap:1.25rem}
.nav-links a{color:var(--muted); font-weight:500}
.nav-links a:hover{color:var(--fg); text-decoration:none}
@media (max-width:640px){.nav-links{display:none}}
.theme-toggle{
  width:40px;height:40px;border-radius:10px;border:1px solid var(--line);
  background:var(--bg-elev); color:var(--fg); cursor:pointer; display:grid; place-items:center;
}
.theme-toggle__icon{width:18px;height:18px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%, var(--brand-2), var(--brand));
  box-shadow:0 0 0 3px var(--ring)}

.hero{max-width:var(--maxw); margin:0 auto; padding:3.5rem 1.25rem 2rem; text-align:center}
.hero__kicker{font-family:"Hiragino Sans","Noto Sans JP",system-ui,sans-serif;
  letter-spacing:.35em; color:var(--brand); font-weight:700; margin:0 0 .8rem; text-transform:none}
.hero h1{font-size:clamp(2.1rem,6vw,3.6rem); line-height:1.12; margin:.2rem 0 1rem; letter-spacing:-.02em}
.hero__lead{max-width:60ch; margin:0 auto 1.6rem; color:var(--muted); font-size:1.12rem}
.hero__lead strong{color:var(--fg)}
.hero__actions{display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap}
.hero__status{margin-top:1.6rem; color:var(--muted); font-size:.92rem}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#39d353;margin-right:.4rem;
  box-shadow:0 0 0 3px #39d35333; vertical-align:middle}

.btn{display:inline-block; padding:.72rem 1.25rem; border-radius:12px; font-weight:600; border:1px solid transparent; transition:transform .06s ease, box-shadow .2s ease}
.btn:hover{text-decoration:none; transform:translateY(-1px)}
.btn--primary{background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff; box-shadow:var(--shadow)}
.btn--ghost{background:var(--bg-elev); color:var(--fg); border-color:var(--line)}

.section{max-width:var(--maxw); margin:0 auto; padding:2.6rem 1.25rem}
.section h2{font-size:clamp(1.5rem,3.5vw,2rem); margin:0 0 1.4rem; letter-spacing:-.01em}
.section--split{display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:center}
@media (max-width:820px){.section--split{grid-template-columns:1fr}}

.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem}
@media (max-width:820px){.cards{grid-template-columns:1fr}}
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem; box-shadow:var(--shadow)}
.card h3{margin:.2rem 0 .5rem; font-size:1.15rem}
.card p{margin:0; color:var(--muted)}
.card__mark{font-family:"Hiragino Mincho ProN","Noto Serif JP",serif; font-size:1.8rem; color:var(--brand); margin-bottom:.3rem}

.ticks{list-style:none; padding:0; margin:1rem 0 0}
.ticks li{position:relative; padding-left:1.7rem; margin:.5rem 0; color:var(--muted)}
.ticks li::before{content:"✓"; position:absolute; left:0; color:var(--brand); font-weight:700}

.panel{background:var(--bg-elev); border:1px solid var(--line); border-radius:var(--radius); padding:1rem; box-shadow:var(--shadow); overflow:auto}
.panel__code{margin:0; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.9rem; color:var(--fg); white-space:pre-wrap}

.footer{max-width:var(--maxw); margin:2rem auto 3rem; padding:1.6rem 1.25rem; border-top:1px solid var(--line); text-align:center; color:var(--fg)}
.footer__muted{color:var(--muted); font-size:.9rem; margin:.3rem 0 0}

.center{min-height:100dvh; display:grid; place-items:center; text-align:center}
.notfound{padding:2rem 1.25rem; max-width:60ch}
.notfound h1{font-size:clamp(3rem,12vw,6rem); margin:.2rem 0}
