
  :root{
    --bg:#F4F8FA;--bg2:#E9F1F5;--surface:#fff;--ink:#141414;--muted:#2E353B;--line:#B7C4CE;
    --clay:#2A72A0;--clay2:#1E5580;--coral:#D06A44;--coral2:#B8542F;--teal:#279582;--moss:#279582;--gold:#279582;--maxw:1120px;
    --shadow:0 1px 2px rgba(22,36,46,.05),0 14px 40px rgba(22,36,46,.08);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Noto Sans JP",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.85;-webkit-font-smoothing:antialiased;font-size:16px}
  h1,h2,h3,.serif{font-family:"Noto Serif JP",serif;font-weight:700;line-height:1.4;letter-spacing:.02em}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .accent{color:var(--coral)}
  .eyebrow{font-size:13px;font-weight:700;letter-spacing:.18em;color:var(--coral);text-transform:uppercase;margin-bottom:14px}
  .btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;padding:13px 26px;border-radius:999px;border:none;cursor:pointer;transition:.2s}
  .btn-primary{background:var(--coral);color:#fff;box-shadow:0 6px 18px rgba(217,119,87,.30)}
  .btn-primary:hover{background:var(--coral2);transform:translateY(-1px)}
  .btn-primary:disabled,.btn-primary[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
  .btn-ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
  .btn-ghost:hover{border-color:var(--clay);color:var(--clay)}
  .btn-white{background:#fff;color:var(--coral2)}
  .btn-line{background:#06C755;color:#fff;box-shadow:0 6px 18px rgba(6,199,85,.28)}
  .btn-line:hover{background:#05a648;transform:translateY(-1px)}
  section[id]{scroll-margin-top:84px}

  header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(244,248,250,.7);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:.3s}
  header.scrolled{background:rgba(244,248,250,.92);border-color:var(--line)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:66px}
  .brand{display:flex;align-items:center;gap:10px;font-family:"Noto Serif JP",serif;font-weight:700;font-size:18px}
  .brand .mk{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--clay),var(--gold));display:grid;place-items:center;color:#fff;font-size:14px}
  .menu{display:flex;gap:24px;align-items:center}.menu a{font-size:14px;color:var(--muted);font-weight:500}.menu a:hover{color:var(--ink)}
  .nav-cta{padding:10px 20px}
  #hdcta{display:none}
  .burger{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;align-items:center;justify-content:center;font-size:18px}
  @media(max-width:1060px){
    .menu{position:fixed;top:66px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:rgba(244,248,250,.98);border-bottom:1px solidvar(--line);padding:8px 24px 18px;transform:translateY(-130%);transition:.3s;backdrop-filter:blur(10px)}
    .menu.open{transform:none}.menu a{padding:13px 0;width:100%;border-bottom:1px solid var(--line)}.menu .nav-cta{margin-top:12px}
    .burger,#hdcta{display:inline-flex}
  }

  /* HERO（土木3D ＋ 山並み背景） */
  .hero{position:relative;height:100vh;min-height:640px;overflow:hidden;
    background:linear-gradient(180deg,#F7FBFD 0%,#EAF2F7 46%,#DCE9F1 100%)}
  .hero-mtn{position:absolute;left:0;right:0;bottom:0;width:100%;height:54%;z-index:0;display:block}
  #scene{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1}
  .hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:130px;background:linear-gradient(180deg,transparent,var(--bg));z-index:2;pointer-events:none}
  .hero-inner{position:absolute;inset:0;z-index:3;display:flex;align-items:center;pointer-events:none}
  .hero-inner .wrap{width:100%}
  .hero-tag{display:inline-block;font-size:13px;font-weight:700;color:var(--teal);background:rgba(47,168,144,.14);padding:7px 16px;border-radius:999px;margin-bottom:24px;backdrop-filter:blur(4px)}
  .hero h1{font-size:clamp(36px,6.2vw,72px);line-height:1.22;letter-spacing:.02em}
  .hero p.lead{font-size:clamp(15px,2vw,18px);color:var(--muted);margin-top:24px;max-width:560px;line-height:2}
  .hero .cta{margin-top:34px;display:flex;gap:13px;flex-wrap:wrap;pointer-events:auto}
  .hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;font-size:12px;color:var(--muted);letter-spacing:.1em;opacity:.8}
  .hint::before{content:"⟲ ";color:var(--clay)}
  .blueprint-note{position:absolute;right:24px;bottom:24px;z-index:3;font-size:11px;color:var(--muted);letter-spacing:.08em;opacity:.6}

  section{padding:100px 0}
  .section-head{max-width:730px;margin-bottom:50px}
  .section-head h2{font-size:clamp(26px,3.7vw,38px);line-height:1.45}
  .section-head p{color:var(--muted);margin-top:16px;font-size:16.5px}
  .bg-sand{background:var(--bg2)}.bg-ink{background:#101418;color:#EAF1F5}
  .bg-ink .section-head p{color:#A9BCC7}.bg-ink .eyebrow{color:#E79A7B}

  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
  .stat .num{font-family:"Noto Serif JP",serif;font-size:clamp(34px,5vw,54px);color:var(--clay);line-height:1}
  .stat .suf{font-size:.5em;color:var(--clay)}.stat .lab{font-size:14px;color:var(--muted);margin-top:8px}

  .grid{display:grid;gap:22px}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}
  .card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:var(--shadow);transition:.25s}
  .card:hover{transform:translateY(-3px);box-shadow:0 18px 50px rgba(22,36,46,.12)}
  .card .ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(47,127,176,.14),rgba(47,168,144,.14));color:var(--clay);font-family:"Noto Serif JP",serif;font-weight:700;margin-bottom:16px}
  .card h3{font-size:19px;margin-bottom:9px}.card p{color:var(--muted);font-size:15px}
  .mlink{display:inline-block;margin-top:14px;font-size:14px;font-weight:700;color:var(--coral)}
  .mlink:hover{color:var(--coral2)}

  .flow{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;margin-top:10px}
  .flow .step{flex:1;min-width:150px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 16px}
  .flow .step .k{font-family:"Noto Serif JP",serif;color:var(--clay);font-size:13px}
  .flow .step h4{font-size:15px;margin:4px 0 4px}.flow .step p{font-size:12.5px;color:var(--muted);line-height:1.7}
  .flow .arr{display:flex;align-items:center;color:var(--clay);font-weight:700;font-size:18px}
  @media(max-width:920px){.flow .arr{display:none}}

  .ba{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/8;background:var(--surface);user-select:none}
  .ba .pane{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;font-size:15px}
  .ba .before{background:repeating-linear-gradient(45deg,#e8eef2,#e8eef2 12px,#dae4ea 12px,#dae4ea 24px);color:#4A5560}
  .ba .after{background:linear-gradient(135deg,#123a44,#1c4d5a);color:#E4F0F4;clip-path:inset(0 0 0 50%)}
  .ba .after .serif{font-size:20px;color:#fff}
  .ba .handle{position:absolute;top:0;bottom:0;left:50%;width:3px;background:var(--coral);z-index:3}
  .ba .handle::after{content:"⇄";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--coral);color:#fff;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:15px}
  .ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:4;margin:0}
  .demo-tbl{width:100%;border-collapse:collapse;font-size:11px;background:#fff;color:#141414;border-radius:7px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.28)}
  .demo-tbl th{background:var(--clay);color:#fff;padding:5px 6px;font-weight:700;font-size:10.5px}
  .demo-tbl td{padding:5px 6px;border-bottom:1px solid #eee;text-align:right}
  .demo-tbl td:first-child{text-align:left}.demo-tbl td.c{text-align:center}.demo-tbl td.j{text-align:center;color:#2f7d32;font-weight:700}
  .demo-tbl tr:last-child td{border-bottom:none}
  .demo-note{background:rgba(255,255,255,.82);border:1px dashed #A9B8C2;border-radius:8px;padding:12px 14px;font-family:ui-monospace,monospace;font-size:11px;color:#5B6B75;line-height:1.7}
  @media(max-width:600px){.demo-tbl{font-size:9.5px}.demo-tbl th{font-size:9px}}

  .proof{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .proof .p{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px}
  .proof .p .yr{font-family:"Noto Serif JP",serif;color:var(--clay);font-size:14px}.proof .p h4{font-size:16px;margin:6px 0 8px}.proof .p p{font-size:14px;color:var(--muted)}
  .placeholder{outline:1px dashed var(--gold);outline-offset:-1px}

  .values{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
  .value{display:flex;gap:15px;padding:22px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10)}
  .value .n{font-family:"Noto Serif JP",serif;color:#E79A7B;font-size:21px}
  .value h4{font-size:16px;margin-bottom:5px;font-family:"Noto Serif JP",serif}.value p{font-size:13.5px;color:#A9BCC7}

  .product{display:grid;grid-template-columns:1.1fr .9fr;gap:0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
  .product .l{background:linear-gradient(160deg,#2A72A0,#1E5580);color:#fff;padding:48px}
  .product .r{background:var(--surface);padding:48px;border:1px solid var(--line);border-left:none}
  .product h3{font-size:24px;margin-bottom:14px}.product .l p{opacity:.94;font-size:15px}
  .product .r ul{list-style:none}.product .r li{padding:9px 0 9px 28px;position:relative;color:var(--muted);font-size:15px}
  .product .r li::before{content:"→";position:absolute;left:0;color:var(--clay);font-weight:700}

  .cta-band{background:linear-gradient(135deg,#2A72A0,#1E5580);color:#fff;border-radius:24px;padding:64px;text-align:center}
  .cta-band h2{color:#fff;font-size:clamp(24px,3.4vw,34px);margin-bottom:14px}
  .cta-band p{color:#CFE3EE;max-width:560px;margin:0 auto 28px}

  footer{background:#0D1013;color:#93A6B1;padding:50px 0 28px;font-size:14px}
  footer .cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:28px;margin-bottom:26px}
  footer .brand{color:#EAF1F5}footer a{color:#93A6B1}footer a:hover{color:#fff}
  footer .copy{border-top:1px solid #24333D;padding-top:20px;font-size:12.5px;opacity:.7}

  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.reveal.in{opacity:1;transform:none}
  @media(max-width:920px){.stats{grid-template-columns:repeat(2,1fr);gap:32px 24px}.g3,.g2,.proof{grid-template-columns:1fr}.values{grid-template-columns:1fr}.product{grid-template-columns:1fr}section{padding:66px 0}.cta-band,.product .l,.product .r{padding:32px}}
  @media(max-width:480px){.hero .cta{flex-direction:column;align-items:stretch}.hero .cta a{justify-content:center;min-height:48px}}
  @media(prefers-reduced-motion:reduce){.reveal{transition:none;opacity:1;transform:none}}



        .ev{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);font-size:12.5px;line-height:1.7;color:var(--muted)}
        .ev .d{display:inline-block;background:#F1F5F7;border:1px solid var(--line);border-radius:5px;padding:1px 7px;font-size:11.5px;color:#4a6572;margin-right:6px;white-space:nowrap}
        .ev .n{color:var(--ink);font-weight:700}
        .ev a{color:var(--clay);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.12)}
        .ev a:hover{border-bottom-color:var(--clay)}
      


        .hist{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px;margin:6px 0 22px}
        .hist div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 12px;text-align:center;box-shadow:var(--shadow)}
        .hist b{display:block;font-family:"Noto Serif JP",serif;font-size:27px;line-height:1.2;color:var(--clay)}
        .hist span{font-size:12px;color:var(--muted)}
      


        .dt{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px;margin:6px 0 22px}
        .dt div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 12px;text-align:center;box-shadow:var(--shadow)}
        .dt b{display:block;font-family:"Noto Serif JP",serif;font-size:27px;line-height:1.2;color:var(--clay)}
        .dt span{font-size:12px;color:var(--muted)}
      