:root { color-scheme: light; --ink:#162e39; --paper:#f6f3e9; --line:#bdc7c5; --accent:#b5ddd4; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:6rem; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Yu Gothic UI","Meiryo",sans-serif; line-height:1.8; }
a { color:inherit; text-underline-offset:.3em; }
a:focus-visible,button:focus-visible { outline:3px solid #17645f; outline-offset:5px; }
.skip { position:absolute; left:1rem; top:-5rem; z-index:5; padding:.5rem 1rem; background:white; }
.skip:focus { top:1rem; }
.header { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:1.2rem clamp(1.2rem,5vw,5rem); border-bottom:1px solid var(--line); }
.brand { font-size:1.1rem; font-weight:700; text-decoration:none; line-height:1.4; }
.brand span { display:block; font-size:.57rem; letter-spacing:.18em; margin-top:.4rem; }
nav { display:flex; gap:2rem; font-size:.9rem; }
.menu { display:none; padding:.6rem 1rem; border:1px solid var(--ink); border-radius:2rem; background:transparent; color:var(--ink); font:inherit; }
.wrap { width:min(1100px,calc(100% - 2.4rem)); margin-inline:auto; }
.hero { position:relative; min-height:820px; padding-top:6rem; padding-bottom:3rem; }
.eyebrow { font-size:.7rem; font-weight:700; letter-spacing:.2em; margin:0 0 2rem; }
h1 { position:relative; z-index:1; font-size:clamp(2rem,4.6vw,4.3rem); line-height:1.5; letter-spacing:.02em; margin:0 0 2rem; font-weight:700; }
.lead { position:relative; z-index:1; font-size:1rem; }
.demo-link { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:space-between; gap:3rem; margin-top:1.8rem; padding:1rem 1.4rem; min-height:48px; border:1px solid var(--ink); border-radius:3rem; text-decoration:none; font-weight:700; transition:transform .2s,background-color .2s; }
.demo-link:hover { transform:translateY(-3px); background:var(--accent); }
.demo-link:focus-visible { background:var(--accent); }
.art { position:absolute; width:380px; height:380px; right:0; top:9rem; border:1px solid var(--line); border-radius:50%; overflow:hidden; }
.shape { position:absolute; display:block; width:220px; height:260px; border-radius:48% 48% 8% 8%; transform:rotate(25deg); }
.one { left:20px; top:40px; background:#aecdc3; }
.two { left:150px; top:100px; background:#dec696; transform:rotate(-25deg); mix-blend-mode:multiply; }
.art-label { position:absolute; bottom:1.5rem; left:0; width:100%; text-align:center; font-size:.65rem; letter-spacing:.2em; }
.disclosure { margin-top:5rem; max-width:600px; font-size:.75rem; color:#3f5b64; }
.section { border-top:1px solid var(--line); padding-block:5rem; }
h2 { font-size:clamp(1.5rem,2.5vw,2.4rem); line-height:1.5; margin:0 0 3rem; }
.cards { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
article { border:1px solid var(--line); border-radius:1rem; padding:2rem; background:#ffffff4d; }
.number { font-size:.75rem; letter-spacing:.15em; }
h3 { font-size:1.3rem; }
.detail-copy { max-width:650px; }
.footer { border-top:1px solid var(--line); padding-block:2.5rem; font-size:.75rem; }
.reveal-enabled .reveal:not(.is-visible):not(:focus-within) { opacity:0; transform:translateY(20px); }
.reveal-enabled .reveal.is-visible { transition:opacity .6s ease,transform .6s ease; }
@media(max-width:760px) {
  .header { gap:1rem; flex-wrap:wrap; padding:1rem 1.2rem; }
  nav { width:100%; gap:1.5rem; }
  .js-ready .menu { display:block; }
  .js-ready nav:not(.is-open) { display:none; }
  .hero { min-height:0; padding-top:3.5rem; }
  h1 { font-size:clamp(1.9rem,7.9vw,3.4rem); }
  .art { position:relative; width:270px; height:270px; top:auto; right:auto; margin:3rem auto 0; }
  .shape { width:170px; height:200px; }
  .one { left:5px; top:10px; }.two { left:100px; top:55px; }
  .disclosure { margin-top:2rem; }
  .section { padding-block:3rem; }.cards { grid-template-columns:1fr; gap:1rem; }
  article { padding:1.5rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }
  .reveal-enabled .reveal:not(.is-visible):not(:focus-within) { opacity:1; transform:none; }
  .demo-link:hover { transform:none; }
}
