:root{
    color-scheme: light;
    --bg:#ece9e2; --surface:#f6f3ed; --card:#fffdf9;
    --ink:#26241f; --ink-2:#55524c; --ink-3:#615e58; --faint:#6c675e;
    --line:#e3dfd5; --line-soft:#eeeae0;
    --accent:#566a86; --accent-soft:#eaeef4; --accent-line:#d7dde6; --on-accent:#fff;
    --moss:#728f61; --moss-soft:#e9eee2; --moss-ink:#596f4c; --gold-ink:#7e643c;
    --gold:#9b7b4a;
    --serif:"Shippori Mincho","Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
    --sans:"Zen Kaku Gothic New","Yu Gothic","YuGothic","Hiragino Sans","Meiryo",system-ui,sans-serif;
    --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
    --maxw:1060px;
  }
  @media (prefers-color-scheme: dark){
    :root{
      color-scheme: dark;
      --bg:#15140f; --surface:#1c1b15; --card:#221f18;
      --ink:#ece9e1; --ink-2:#c9c5b9; --ink-3:#928d81; --faint:#8e8779;
      --line:#302d24; --line-soft:#282619;
      --accent:#8aa0c0; --accent-soft:#242a32; --accent-line:#38414d; --on-accent:#15140f;
      --moss:#93b183; --moss-soft:#232a1f; --moss-ink:#93b183; --gold-ink:#c2a15c;
      --gold:#c2a15c;
    }
  }
  :root[data-theme="dark"]{
    color-scheme: dark;
    --bg:#15140f; --surface:#1c1b15; --card:#221f18;
    --ink:#ece9e1; --ink-2:#c9c5b9; --ink-3:#928d81; --faint:#8e8779;
    --line:#302d24; --line-soft:#282619;
    --accent:#8aa0c0; --accent-soft:#242a32; --accent-line:#38414d; --on-accent:#15140f;
    --moss:#93b183; --moss-soft:#232a1f; --moss-ink:#93b183; --gold-ink:#c2a15c; --gold:#c2a15c;
  }
  :root[data-theme="light"]{
    color-scheme: light;
    --bg:#ece9e2; --surface:#f6f3ed; --card:#fffdf9;
    --ink:#26241f; --ink-2:#55524c; --ink-3:#615e58; --faint:#6c675e;
    --line:#e3dfd5; --line-soft:#eeeae0;
    --accent:#566a86; --accent-soft:#eaeef4; --accent-line:#d7dde6; --on-accent:#fff;
    --moss:#728f61; --moss-soft:#e9eee2; --moss-ink:#596f4c; --gold-ink:#7e643c; --gold:#9b7b4a;
  }

  *{box-sizing:border-box;}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
    -webkit-font-smoothing:antialiased;line-height:1.7;
    /* 日本語の本文を文節で折り返す。指定が無いと「クラウ/ド」「費/用」のように
       カタカナ語や熟語が語の途中で割れる(見出しにだけ入っていた)。
       未対応のブラウザは無視するだけなので、従来どおりの折り返しに戻る。 */
    word-break:auto-phrase;line-break:strict;}
  p{text-wrap:pretty;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
  .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);}
  a{color:inherit;}
  h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:.02em;color:var(--ink);margin:0;text-wrap:balance;word-break:auto-phrase;line-break:strict;}

  /* ---- top bar ---- */
  .topbar{position:sticky;top:0;z-index:20;backdrop-filter:blur(8px);
    background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--line-soft);}
  .topbar .wrap{display:flex;align-items:center;gap:14px;height:60px;}
  .brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-weight:600;font-size:18px;}
  .brand .mark{width:30px;height:30px;border-radius:8px;background:url(/favicon-128.png) center/contain no-repeat;color:transparent;
    display:flex;align-items:center;justify-content:center;font-size:0;}
  .brand .rom{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--faint);align-self:flex-end;padding-bottom:3px;}
  .top-actions{margin-left:auto;display:flex;align-items:center;gap:10px;}
  .btn{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:14px;cursor:pointer;
    padding:10px 20px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);
    text-decoration:none;transition:border-color .15s,transform .15s;}
  .btn:hover{border-color:var(--accent-line);}
  .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600;}
  .btn.primary:hover{transform:translateY(-1px);}
  .theme-toggle{width:38px;height:38px;padding:0;justify-content:center;font-size:15px;}

  /* ---- hero ---- */
  .hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line-soft);}
  #sand{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none;}
  @media (prefers-color-scheme: dark){#sand{opacity:.32;}}
  .hero .wrap{position:relative;padding-top:96px;padding-bottom:104px;}
  .hero-eyebrow{margin-bottom:26px;}
  .hero h1{font-size:clamp(48px,9vw,104px);line-height:1.02;}
  .hero h1 .k{display:block;font-family:var(--mono);font-weight:500;font-size:clamp(12px,1.6vw,15px);
    letter-spacing:.42em;color:var(--accent);margin:0 0 18px 4px;}
  .lede{margin:30px 0 0;max-width:42ch;font-size:clamp(17px,2.1vw,21px);line-height:1.85;color:var(--ink-2);}
  .lede b{color:var(--ink);font-weight:600;}
  .lede-sub{margin:18px 0 0;max-width:46ch;font-size:14.5px;line-height:1.8;color:var(--ink-3);}
  .lede-sub b{color:var(--accent);font-weight:700;}
  .hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:40px;}
  .hero-note{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);letter-spacing:.02em;}
  .hero-note .dot{color:var(--moss);}

  /* seed marks row */
  .seedrow{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:56px;padding-top:26px;border-top:1px solid var(--line-soft);}
  .seed{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-3);}
  .seed i{width:7px;height:7px;border-radius:2px;background:var(--moss);font-style:normal;flex:none;}
  .seed:nth-child(2n) i{border-radius:50%;background:var(--accent);}
  .seed:nth-child(3n) i{transform:rotate(45deg);background:var(--gold);}

  /* ---- section frame ---- */
  section{padding:88px 0;}
  .sec-head{max-width:60ch;margin-bottom:44px;}
  .sec-head .eyebrow{display:block;margin-bottom:14px;}
  .sec-head h2,.sec-head h1,main.page h1{font-size:clamp(26px,4vw,38px);line-height:1.25;}
  .sec-head p{margin:16px 0 0;color:var(--ink-2);font-size:16px;}

  /* problem -> garden */
  .flow{display:grid;grid-template-columns:1fr auto 1fr;gap:26px;align-items:center;}
  .flow .card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px 28px;}
  .flow .scattered .row{display:flex;align-items:center;gap:10px;padding:9px 0;color:var(--ink-3);font-size:14.5px;border-bottom:1px dashed var(--line);}
  .flow .scattered .row:last-child{border-bottom:none;}
  .flow .scattered .row span{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--faint);}
  .flow .arrow{font-family:var(--serif);font-size:30px;color:var(--faint);text-align:center;}
  .flow .garden{background:linear-gradient(180deg,var(--card),var(--surface));border-color:var(--accent-line);
    box-shadow:0 24px 50px color-mix(in srgb,var(--accent) 12%,transparent);}
  .flow .garden .glabel{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
  .flow .garden .gtitle{font-family:var(--serif);font-size:24px;font-weight:600;margin:8px 0 14px;}
  .flow .garden .chips{display:flex;flex-wrap:wrap;gap:7px;}
  .flow .garden .chips span{font-size:12px;padding:6px 11px;border-radius:20px;background:var(--accent-soft);color:var(--accent);}

  /* ---- how / workflow ---- */
  .use-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;}
  .mock{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;
    box-shadow:0 22px 50px color-mix(in srgb,var(--ink) 9%,transparent);}
  .mock .mbar{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--line-soft);
    font-family:var(--mono);font-size:11.5px;color:var(--ink-3);background:var(--surface);}
  .mock .mbar i{width:9px;height:9px;border-radius:50%;background:var(--line);font-style:normal;}
  .mock .mbody{display:grid;grid-template-columns:1fr 154px;}
  .mock .script{padding:18px 18px 22px;font-family:var(--mono);font-size:12.5px;line-height:2.05;border-right:1px solid var(--line-soft);}
  .mock .sc{color:var(--gold);}
  .mock .cmd{color:var(--faint);}
  .mock .who{color:var(--accent);font-weight:600;}
  .mock .who.r2{color:#b3766a;}
  .mock .exp{color:var(--ink-3);}
  .mock .tag{color:var(--moss);}
  .mock .line{color:var(--ink);}
  .mock .ref{padding:16px 14px;background:var(--surface);}
  .mock .ref .rlab{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);}
  .mock .ref .rname{font-family:var(--serif);font-size:17px;font-weight:600;margin:6px 0 10px;}
  .mock .ref .rrow{font-size:11.5px;color:var(--ink-2);padding:6px 0;border-top:1px solid var(--line);}
  .mock .ref .rrow b{color:var(--ink);font-weight:600;}
  .mock .ref .warn{margin-top:10px;font-size:11px;color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent);
    border-radius:8px;padding:7px 9px;line-height:1.5;}

  .steps{display:flex;flex-direction:column;gap:24px;}
  .step{display:flex;gap:16px;}
  .step .no{font-family:var(--mono);font-size:12px;color:var(--accent);border:1px solid var(--accent-line);
    border-radius:50%;width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;margin-top:2px;}
  .step h3{font-size:16.5px;font-family:var(--sans);font-weight:700;}
  .step p{margin:5px 0 0;font-size:14px;color:var(--ink-2);line-height:1.75;}

  /* ---- real screenshots ---- */
  .shotframe{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);
    box-shadow:0 30px 66px color-mix(in srgb,var(--ink) 13%,transparent);}
  .shotframe .chrome{display:flex;align-items:center;gap:7px;padding:11px 15px;border-bottom:1px solid var(--line-soft);background:var(--surface);}
  .shotframe .chrome i{width:10px;height:10px;border-radius:50%;background:var(--line);font-style:normal;}
  .shotframe .chrome .t{margin-left:8px;font-family:var(--mono);font-size:11px;color:var(--ink-3);}
  .shotframe img{display:block;width:100%;height:auto;}
  .steps-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px;margin-top:40px;}
  .gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .gallery figure{margin:0;}
  .gallery figcaption{margin-top:12px;font-size:13.5px;color:var(--ink-2);}
  .gallery figcaption b{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:15px;display:block;margin-bottom:2px;}
  /* ---- usage flow (real screenshots) ---- */
  .flow-steps{display:flex;flex-direction:column;gap:58px;}
  .flow-label{display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:clamp(19px,2.4vw,23px);font-weight:600;color:var(--ink);}
  .flow-no{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-family:var(--mono);font-size:15px;flex:none;}
  .flow-desc{margin:13px 0 22px;max-width:62ch;color:var(--ink-2);font-size:15px;line-height:1.85;}
  .flow-desc b{color:var(--ink);font-weight:600;}
  .flow-tie{margin:52px 0 0;text-align:center;font-family:var(--serif);font-size:clamp(17px,2.2vw,20px);color:var(--ink);}
  .flow-tie b{color:var(--accent);font-weight:700;}
  .flow-future{margin:14px 0 0;text-align:center;font-size:13px;color:var(--ink-3);line-height:1.75;}

  /* ---- voices ---- */
  .voices{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:44px 40px;text-align:center;}
  .voices .q{font-family:var(--serif);font-size:clamp(20px,3vw,27px);line-height:1.6;color:var(--ink);max-width:24ch;margin:0 auto;}
  .voices .q .mk{color:var(--faint);}
  .voices p{margin:20px auto 0;max-width:40ch;font-size:14.5px;color:var(--ink-2);}
  .voices .vrow{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px;}
  .voices .vchip{font-size:12.5px;color:var(--ink-3);border:1px dashed var(--line);border-radius:20px;padding:7px 15px;}

  /* ---- features ---- */
  .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
  .feat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px 26px 28px;transition:border-color .15s,transform .15s;}
  .feat:hover{border-color:var(--accent-line);transform:translateY(-2px);}
  .feat .ic{width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent);
    display:flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:16px;}
  .feat h3{font-size:18.5px;}
  .feat p{margin:9px 0 0;font-size:14px;line-height:1.8;color:var(--ink-2);}
  .feat .tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px;}
  .feat .tags span{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);border:1px solid var(--line);border-radius:6px;padding:2px 7px;}

  /* ---- data / trust ---- */
  .data{background:var(--surface);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
  .data-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
  .data-points{display:flex;flex-direction:column;gap:22px;margin-top:26px;}
  .data-points .p{display:flex;gap:14px;}
  .data-points .p .n{font-family:var(--serif);font-size:20px;color:var(--moss);flex:none;line-height:1.3;}
  .data-points .p h3{font-size:16px;font-family:var(--sans);font-weight:700;}
  .data-points .p p{margin:4px 0 0;font-size:14px;color:var(--ink-2);}
  .codecard{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;
    box-shadow:0 18px 44px color-mix(in srgb,var(--ink) 8%,transparent);}
  .codecard .bar{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--line-soft);
    font-family:var(--mono);font-size:11.5px;color:var(--ink-3);background:var(--surface);}
  .codecard .bar i{width:9px;height:9px;border-radius:50%;background:var(--line);font-style:normal;}
  .codecard pre{margin:0;padding:20px 20px 22px;font-family:var(--mono);font-size:12.5px;line-height:1.85;
    color:var(--ink-2);overflow-x:auto;white-space:pre;}
  .codecard .k{color:var(--accent);}
  .codecard .s{color:var(--moss-ink);}
  .codecard .c{color:var(--faint);}
  .codecard .d{color:var(--gold-ink);}

  /* ---- honest / platform ---- */
  .honest{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
  .honest .h{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px;}
  .honest .h .lab{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);}
  .honest .h .big{font-family:var(--serif);font-size:21px;font-weight:600;margin:8px 0 4px;}
  .honest .h p{margin:0;font-size:13.5px;color:var(--ink-2);}

  /* ---- final cta ---- */
  .final{text-align:center;padding:104px 0;}
  .final h2{font-size:clamp(30px,5vw,50px);line-height:1.15;}
  .final p{max-width:44ch;margin:20px auto 0;color:var(--ink-2);font-size:16.5px;}
  .final .hero-cta{justify-content:center;margin-top:38px;}

  /* ---- contact ---- */
  .contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;}
  .ccard{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);
    border-radius:14px;padding:22px 24px;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s;}
  a.ccard:hover{border-color:var(--accent-line);transform:translateY(-2px);}
  .ccard .lab{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);}
  .ccard .ttl{font-family:var(--serif);font-size:19px;font-weight:600;}
  .ccard .ttl .ar{color:var(--accent);font-family:var(--sans);font-size:15px;margin-left:6px;}
  .ccard p{margin:2px 0 0;font-size:13px;color:var(--ink-2);}

  footer{border-top:1px solid var(--line-soft);padding:38px 0 54px;}
  footer .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:14px;}
  footer .maker{font-size:13px;color:var(--ink-3);}
  footer .maker b{color:var(--ink-2);font-weight:600;}
  footer .fnote{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.04em;}

  @media (max-width:1040px){
    .grid{grid-template-columns:repeat(2,1fr);}
    .honest{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:820px){
    .flow{grid-template-columns:1fr;}
    .flow .arrow{transform:rotate(90deg);font-size:24px;}
    .data-grid{grid-template-columns:1fr;gap:30px;}
    .use-grid{grid-template-columns:1fr;gap:26px;}
    .gallery{grid-template-columns:1fr;}
    section{padding:66px 0;}
    .hero .wrap{padding-top:70px;padding-bottom:78px;}
    .voices{padding:32px 22px;}
  }
  @media (max-width:520px){
    .grid{grid-template-columns:1fr;}
    .honest{grid-template-columns:1fr;}
    .wrap{padding:0 20px;}
    .mock .mbody{grid-template-columns:1fr;}
    .mock .ref{border-top:1px solid var(--line-soft);}
    .mock .script{border-right:none;}
    .hero-cta{gap:12px;}
    .btn{padding:11px 18px;}
    .topbar .wrap{gap:8px;}
    .brand .rom{display:none;}
  }
  @media (prefers-reduced-motion: reduce){
    /* ★対象を足したら、動きを付けた要素もここに並べること(.ccard の transform が
       長く取り残されていた)。hover の移動そのものも止める。 */
    .btn,.feat,.ccard{transition:none;}
    .btn.primary:hover,a.ccard:hover{transform:none;}
  }

  /* ---- editions ---- */
  .editions{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
  .ed{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 22px 24px;display:flex;flex-direction:column;}
  .ed .tier{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);}
  .ed .en{font-family:var(--serif);font-size:19px;font-weight:600;margin:8px 0 3px;}
  .ed .price{font-size:13px;color:var(--accent);font-weight:700;margin-bottom:13px;}
  .ed p{margin:0;font-size:13px;line-height:1.75;color:var(--ink-2);}
  .ed .cond{margin-top:auto;padding-top:14px;font-size:11.5px;color:var(--ink-3);line-height:1.7;}
  .ed-note{margin:22px 0 0;font-size:13.5px;color:var(--ink-3);line-height:1.85;max-width:70ch;}
  .ed-note b{color:var(--ink-2);font-weight:600;}
  @media(max-width:1040px){ .editions{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:520px){ .editions{grid-template-columns:1fr;} }

/* ---- mobile topbar (640px以下) ---- */
@media (max-width:640px){
  .topbar .wrap{gap:8px;padding:0 16px;}
  .brand{font-size:16px;white-space:nowrap;flex:none;gap:8px;}
  .brand .rom{display:none;}
  .brand .mark{width:26px;height:26px;}
  .top-actions{gap:6px;}
  .top-actions .btn{padding:8px 12px;font-size:12.5px;white-space:nowrap;flex:none;border-radius:9px;}
  .theme-toggle{width:32px;height:32px;}
  .hide-sm{display:none !important;}
  .wrap{padding:0 20px;}
  main.page{padding-top:28px !important;}
}


/* ---- 常時表示のナビ(デスクトップ)。主要ページへの導線をハンバーガーに隠さない ---- */
.top-nav{display:none;}
@media (min-width:960px){
  .top-nav{display:flex;align-items:center;gap:16px;margin-left:auto;}
  /* 項目が7つあり、900px前後では入手ボタンが折り返す。詰めて逃がす */
  .top-actions .btn{white-space:nowrap;}
  .top-nav a{font-size:13.5px;color:var(--ink-2);text-decoration:none;white-space:nowrap;padding:6px 2px;}
  .top-nav a:hover{color:var(--accent);}
  .top-nav a.on{color:var(--accent);font-weight:700;}
  .top-actions{margin-left:0;}
  .menu-toggle{display:none;}
}

/* ---- ハンバーガーメニュー ---- */
.menu-toggle{width:38px;height:38px;padding:0;justify-content:center;font-size:19px;line-height:1;}
.mnav{border-top:1px solid var(--line-soft);}
.mnav .wrap{display:flex;height:auto;align-items:flex-start;flex-wrap:wrap;gap:2px 22px;padding-top:12px;padding-bottom:14px;}
.mnav a{font-size:13.5px;color:var(--ink-2);text-decoration:none;padding:6px 0;}
.mnav a:hover{color:var(--accent);}
@media (max-width:640px){
  .mnav .wrap{flex-direction:column;gap:0;align-items:stretch;}
  .mnav a{padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:14px;}
  .mnav a:last-child{border-bottom:none;}
}
