/* GarageFactory — "データに赤入れ"
   Layout: 方眼の白い作業面に、検索結果・分析画面・変更差分などの“データの道具”を置き、
   人の手で赤ペンを入れる。色はロゴから：4本のバー＝4サービス、濁点の赤＝赤ペン。 */
:root{
  --bg:#f6f7f9; --surface:#ffffff; --ink:#0f1720; --ink-2:#3b4554; --mute:#5b6676;
  --line:#dde2e8; --line-2:#c9d1db; --grid:#e9edf2;
  --primary:#1f6f93; --primary-ink:#ffffff; --primary-hover:#185a78;
  --pen:#ff5050; --pen-text:#c62828; --sticky:#ffe066;
  --c-seo:#ff8736; --c-ec:#23c16a; --c-mkt:#2988b2; --c-dev:#9451bf; --c-mark:#615f5f;
  --del-bg:#fdecec; --del:#b42318; --add-bg:#e6f6ec; --add:#116b3a;
  --f-sans:"IBM Plex Sans JP","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --f-hand:"Klee One","Hiragino Maru Gothic ProN",cursive;
  --w:1180px; --r:12px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-sans);font-size:16px;line-height:1.9;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto}
a{color:var(--primary)}
a:hover{color:var(--primary-hover)}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{margin:0;text-wrap:balance;color:var(--ink)}
p{margin:0}
.wrap{max-width:var(--w);margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.narrow{max-width:880px}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:100;background:var(--ink);color:#fff;padding:8px 14px}
.mono{font-family:var(--f-mono)}
.gridbg{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px;background-position:-1px -1px}

/* ── hand-written marks ───────────── */
.hand{font-family:var(--f-hand);font-weight:600;color:var(--pen-text);line-height:1.5}
.sticky{display:inline-block;background:var(--sticky);padding:10px 16px;font-family:var(--f-hand);font-weight:600;font-size:17px;line-height:1.5;color:var(--ink);box-shadow:2px 4px 0 rgba(15,23,32,.12)}
.tilt-l{transform:rotate(-4deg)} .tilt-r{transform:rotate(4deg)}
.circle-mark{position:absolute;inset:-10px;pointer-events:none;overflow:visible}
.circle-mark path{fill:none;stroke:var(--pen);stroke-width:2.8;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:0;animation:draw 1.1s ease-out .5s both}
@keyframes draw{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}
@media (max-width:760px){.deco{display:none!important}}

/* ── header ───────────────────────── */
.site-header{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:30}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px 28px;padding-block:12px}
.logo{display:block;line-height:0}
.logo img{height:30px;width:auto}
.gnav ul{display:flex;flex-wrap:wrap;align-items:center;gap:4px 22px;list-style:none;margin:0;padding:0;font-size:14px;font-weight:500}
.gnav a{color:var(--ink);text-decoration:none;display:inline-block;padding:6px 0}
.gnav a:hover{color:var(--primary)}
.gnav a[aria-current="page"]{color:var(--primary);box-shadow:inset 0 -2px var(--primary)}
.gnav .nav-cta a{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:8px;background:var(--primary);color:#fff;font-weight:700;box-shadow:none}
.gnav .nav-cta a:hover{background:var(--primary-hover);color:#fff}
.menu-btn{display:none;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.menu-btn span{display:block;width:18px;height:2px;border-radius:2px;background:currentColor;box-shadow:0 -6px currentColor,0 6px currentColor}
@media (max-width:980px){
  .menu-btn{display:inline-flex}
  .gnav{position:absolute;left:0;right:0;top:100%;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(15,23,32,.08);display:none}
  .gnav.is-open{display:block}
  .gnav ul{flex-direction:column;align-items:stretch;gap:0;padding:8px max(24px,env(safe-area-inset-left,0px)) 20px;font-size:16px}
  .gnav li{border-bottom:1px solid var(--line)}
  .gnav a{display:block;padding:12px 0}
  .gnav .nav-cta{border:0;padding-top:14px}
  .gnav .nav-cta a{justify-content:center;width:100%}
}

/* ── breadcrumb & opener ──────────── */
.breadcrumb{font-size:12px;color:var(--mute);padding-block:14px 0}
.breadcrumb ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-family:var(--f-mono)}
.breadcrumb li+li::before{content:"/";margin:0 8px;color:var(--line-2)}
.breadcrumb a{color:var(--mute);text-decoration:none}
.breadcrumb a:hover{color:var(--primary)}
.opener{padding-block:44px 56px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:13px;color:var(--mute);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 14px}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pen)}
.opener h1{font-weight:700;font-size:clamp(32px,4.6vw,52px);line-height:1.3;margin-top:18px;letter-spacing:-.005em}
.opener .lead{margin-top:18px;max-width:42em;color:var(--ink-2);font-size:17px}
.opener .hand{margin-top:14px;font-size:18px}

/* ── sections ─────────────────────── */
.section{padding-block:80px}
.section.tight{padding-block:52px}
.section.tone{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:36px}
.sec-head h2{font-weight:700;font-size:clamp(26px,3.2vw,36px);line-height:1.4}
.sec-head .en{font-family:var(--f-mono);font-size:13px;color:var(--mute)}
.sec-head .more{margin-left:auto;font-size:14px}
.split{display:flex;flex-wrap:wrap;gap:20px 56px}
.split>.side{flex:1 1 240px}
.split>.side h2{font-weight:700;font-size:clamp(24px,2.8vw,30px);line-height:1.45}
.split>.side .en{display:block;margin-top:4px;font-family:var(--f-mono);font-size:13px;color:var(--mute)}
.split>.main{flex:3 1 580px;min-width:0}

/* ── buttons & links ──────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:10px;background:var(--primary);color:#fff;text-decoration:none;font-weight:700;font-size:15px;border:1px solid var(--primary);cursor:pointer;font-family:inherit;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{background:var(--primary-hover);color:#fff;transform:translateY(-2px);box-shadow:0 8px 18px rgba(31,111,147,.25)}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line-2)}
.btn.ghost:hover{color:var(--ink);border-color:var(--ink);box-shadow:0 8px 18px rgba(15,23,32,.08)}
.btn.light{background:#fff;color:var(--ink);border-color:#fff}
.btn.light:hover{background:var(--sticky);border-color:var(--sticky);color:var(--ink)}
.link-arrow{font-weight:700;text-decoration:none}
.link-arrow::after{content:" →";transition:margin .15s}
.link-arrow:hover::after{margin-left:4px}

/* ── hero (top) ───────────────────── */
.hero{padding-block:64px 56px}
.hero .wrap{display:flex;flex-wrap:wrap;gap:48px 56px;align-items:center}
.hero .copy{flex:1 1 520px;min-width:0}
.hero .tags{display:flex;flex-wrap:wrap;gap:6px 16px;font-family:var(--f-mono);font-size:13px;color:var(--ink-2)}
.hero .tags span{display:inline-flex;align-items:center;gap:7px}
.hero .tags span::before{content:"";width:16px;height:6px;border-radius:0 4px 4px 0;background:var(--c)}
.diff{margin-top:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;position:relative;box-shadow:0 1px 2px rgba(15,23,32,.04)}
.diff .bar{display:flex;justify-content:space-between;gap:12px;padding:9px 16px;border-bottom:1px solid var(--line);background:#f9fafb;font-family:var(--f-mono);font-size:12px;color:var(--mute)}
.diff .del{display:flex;gap:14px;padding:8px 16px;background:var(--del-bg);color:var(--del);font-family:var(--f-mono);font-size:clamp(15px,1.8vw,20px)}
.diff .del s{text-decoration-thickness:2px}
.diff .add{display:flex;gap:14px;padding:14px 16px 20px;background:var(--add-bg)}
.diff .add .sign{font-family:var(--f-mono);font-size:clamp(15px,1.8vw,20px);color:var(--add);padding-top:.4em}
.diff h1{font-weight:700;font-size:clamp(40px,5.4vw,70px);line-height:1.2;letter-spacing:-.01em}
.diff .note{position:absolute;right:18px;top:30px;display:flex;align-items:center;gap:6px;transform:rotate(-4deg)}
.diff .note svg{width:44px;height:30px;overflow:visible}
.diff .note path{fill:none;stroke:var(--pen);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.diff .note .hand{font-size:18px;white-space:nowrap}
.hero .body{margin-top:24px;max-width:34em;color:var(--ink-2);font-size:17px}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero .meta{margin-top:12px;font-family:var(--f-mono);font-size:12px;color:var(--mute)}
.serp{flex:1 1 430px;min-width:0;margin:0;position:relative}
.serp .card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(15,23,32,.10);padding:20px 22px 18px}
.serp .q{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:14px;color:var(--ink-2)}
.serp ol{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:4px}
.serp li{display:flex;gap:12px;align-items:flex-start;padding:10px 8px;border-radius:8px;position:relative}
.serp .n{flex:0 0 26px;font-family:var(--f-mono);font-size:13px;color:#9aa4b2;padding-top:1px}
.serp .lines{flex:1 1 auto;min-width:0}
.serp .lines i{display:block;height:9px;border-radius:4px;background:#e3e8ee}
.serp .lines i+i{margin-top:8px}
.serp .lines i.t{height:12px;background:#cfe1ea}
.serp li.you{background:#fff8d6}
.serp li.you .n{color:var(--ink);font-weight:600}
.serp .you .url{font-family:var(--f-mono);font-size:11px;color:var(--add)}
.serp .you .title{font-weight:700;color:var(--primary);font-size:15px;line-height:1.5}
.serp .stats{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;font-family:var(--f-mono);font-size:12px;color:var(--ink-2)}
.serp .stats .down{color:var(--del);font-weight:700} .serp .stats .up{color:var(--add);font-weight:700}
.serp .sticky{position:absolute;left:-44px;bottom:90px;transform:rotate(-5deg)}
.serp .rank{position:absolute;right:-4px;top:-28px;font-size:18px;transform:rotate(5deg)}
.serp figcaption{margin-top:12px;font-size:12px;color:var(--mute);text-align:right}

/* ── service cards (logo bars) ────── */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.svc{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px 22px 24px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s}
a.svc:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,32,.10);border-color:var(--line-2);color:var(--ink)}
.svc::before{content:"";display:block;width:64px;height:12px;border-radius:0 7px 7px 0;background:var(--c);margin-bottom:6px}
.svc .path{font-family:var(--f-mono);font-size:12px;color:var(--mute)}
.svc h3{font-size:19px;font-weight:700;line-height:1.5}
.svc p{font-size:14px;color:var(--ink-2);line-height:1.8}
.svc .go{margin-top:auto;padding-top:8px;font-size:14px;font-weight:700;color:var(--primary)}
.c-seo{--c:var(--c-seo)} .c-ec{--c:var(--c-ec)} .c-mkt{--c:var(--c-mkt)} .c-dev{--c:var(--c-dev)}

/* ── generic cards / feature ─────── */
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:10px}
.card.heavy{border-top:4px solid var(--ink)}
.kicker{font-family:var(--f-mono);font-size:12px;color:var(--mute);font-weight:500}
.card h3{font-size:20px;font-weight:700;line-height:1.5}
.card h3 a{color:var(--ink);text-decoration:none}
.card h3 a:hover{color:var(--primary)}
.card p{color:var(--ink-2);font-size:15px}
.card .link-arrow{align-self:flex-start;margin-top:auto;font-size:14px}
.feature{display:flex;flex-wrap:wrap;gap:32px 56px;align-items:center}
.feature .text{flex:3 1 520px;min-width:0}
.feature h3{font-weight:700;font-size:clamp(26px,3vw,36px);line-height:1.45;margin:8px 0 16px}
.feature .text p{color:var(--ink-2)}
.feature .side{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.strike{text-decoration:line-through;text-decoration-style:wavy;text-decoration-color:var(--pen);text-decoration-thickness:2px}
.marker{background:linear-gradient(transparent 60%,rgba(255,224,102,.9) 60%)}
blockquote.big{margin:0;padding:24px 28px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--pen);border-radius:0 var(--r) var(--r) 0;font-weight:700;font-size:clamp(20px,2.4vw,26px);line-height:1.7}

/* ── steps ────────────────────────── */
.steps{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;counter-reset:s}
.steps li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;position:relative}
.steps .num{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:28px;padding:0 10px;border-radius:999px;background:var(--ink);color:#fff;font-family:var(--f-mono);font-size:13px;font-weight:600}
.steps h3{margin:12px 0 4px;font-size:19px;font-weight:700}
.steps p{font-size:15px;color:var(--ink-2)}
.steps.long{grid-template-columns:1fr;gap:12px}
.steps.long li{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:flex-start}
.steps.long .num{flex:0 0 auto;margin-top:4px}
.steps.long .body{flex:1 1 420px;min-width:0}
.steps.long h3{margin-top:0}
.steps.long .meta{font-size:13px;color:var(--mute);margin-top:6px}

/* ── lists ────────────────────────── */
.rows{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:4px 22px}
.rows .row{display:flex;flex-wrap:wrap;gap:2px 20px;padding:16px 0;border-bottom:1px solid var(--line)}
.rows .row:last-child{border-bottom:0}
.rows .date{flex:0 0 96px;font-family:var(--f-mono);font-size:14px;color:var(--mute);font-variant-numeric:tabular-nums;padding-top:2px}
.rows .tag{flex:0 0 80px;font-family:var(--f-mono);font-size:11px;font-weight:600;color:var(--ink-2);padding-top:4px}
.rows .text{flex:1 1 300px;min-width:0}
.checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.checklist li{position:relative;padding:14px 16px 14px 50px;background:var(--surface);border:1px solid var(--line);border-radius:10px}
.checklist li::before{content:"";position:absolute;left:16px;top:16px;width:22px;height:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M4 16 C 8 18, 10 22, 12 26 C 16 16, 22 8, 28 3' fill='none' stroke='%23ff5050' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain}
.bullets{margin:0;padding-left:1.3em}
.bullets li{margin:6px 0}
.bullets li::marker{color:var(--pen)}
.spec{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.spec>div{display:flex;flex-wrap:wrap;gap:4px 24px;padding:16px 22px;border-bottom:1px solid var(--line)}
.spec>div:last-child{border-bottom:0}
.spec dt{flex:0 0 180px;font-weight:700;color:var(--ink)}
.spec dd{flex:1 1 320px;margin:0;min-width:0;color:var(--ink-2)}
.formula{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;padding:28px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);font-family:var(--f-mono);font-size:clamp(16px,2.2vw,22px);font-weight:600;position:relative}
.formula .term{padding:6px 14px;border-radius:8px;background:#f1f4f7}
.formula .term.hot{background:var(--del-bg);color:var(--del);outline:2px dashed var(--pen);outline-offset:3px}
.formula .op{color:var(--mute)}
.formula .hand{position:absolute;right:24px;bottom:-14px;font-family:var(--f-hand);font-size:17px;transform:rotate(-3deg);background:var(--bg);padding:0 6px}

/* ── QA ───────────────────────────── */
.qa details{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 20px}
.qa details+details{margin-top:10px}
.qa summary{cursor:pointer;list-style:none;display:flex;gap:12px;font-weight:700;align-items:flex-start}
.qa summary::-webkit-details-marker{display:none}
.qa summary::before{content:"Q";flex:0 0 26px;height:26px;border-radius:6px;background:var(--ink);color:#fff;font-family:var(--f-mono);font-size:13px;display:flex;align-items:center;justify-content:center;margin-top:2px}
.qa summary::after{content:"+";margin-left:auto;font-family:var(--f-mono);color:var(--mute);font-size:18px;line-height:1.6}
.qa details[open] summary::after{content:"−"}
.qa details p{margin:10px 0 0 38px;color:var(--ink-2)}
.qa h3{font-size:20px;font-weight:700;margin:36px 0 14px;display:flex;align-items:center;gap:10px}
.qa h3::before{content:"";width:16px;height:6px;border-radius:0 4px 4px 0;background:var(--pen)}
.qa h3:first-child{margin-top:0}

/* ── prose (column) ───────────────── */
.prose{font-size:17px;line-height:2.05;color:var(--ink-2)}
.prose>*+*{margin-top:1.3em}
.prose h2{font-size:26px;font-weight:700;line-height:1.5;color:var(--ink);margin-top:2.2em;padding-top:18px;border-top:1px solid var(--line)}
.prose h3{font-size:20px;font-weight:700;color:var(--ink);margin-top:1.8em}
.prose ul,.prose ol{padding-left:1.4em}
.prose li+li{margin-top:.4em}
.prose li::marker{color:var(--primary);font-family:var(--f-mono)}
.prose .box{background:var(--sticky);padding:20px 24px;transform:rotate(-.4deg);box-shadow:2px 4px 0 rgba(15,23,32,.1);color:var(--ink)}
.prose .box b{font-family:var(--f-hand)}
.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.7;background:var(--surface)}
.prose th,.prose td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{border-bottom:2px solid var(--ink);color:var(--ink)}
.table-wrap{overflow-x:auto}
.article-head{padding-block:40px 32px}
.article-head h1{font-weight:700;font-size:clamp(30px,4.2vw,46px);line-height:1.4;margin-top:16px}
.article-meta{display:flex;flex-wrap:wrap;gap:4px 18px;font-family:var(--f-mono);font-size:13px;color:var(--mute);margin-top:16px}
.article-body{padding-bottom:80px}
.article-toc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 24px}
.article-toc b{font-size:15px}
.article-toc ol{margin:6px 0 0;padding-left:1.4em;font-size:15px}
.author{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;margin-top:56px}
.author .avatar{flex:0 0 72px;height:72px;border-radius:50%;background:#e3e8ee;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--mute)}
.author .bio{flex:1 1 300px;min-width:0;font-size:15px;color:var(--ink-2)}
.author .bio b{display:block;color:var(--ink);font-size:17px}

/* ── photo placeholder & notes ───── */
.photo{min-height:360px;border-radius:var(--r);background:#e8ecf1;background-image:repeating-linear-gradient(135deg,rgba(15,23,32,.04) 0 1px,transparent 1px 12px);display:flex;align-items:center;justify-content:center;color:var(--mute);font-size:13px;text-align:center;padding:16px}
.photo.sm{min-height:280px}
figcaption{font-size:12px;color:var(--mute)}
.todo{background:var(--del-bg);color:var(--del);padding:0 6px;border-radius:4px;font-weight:700}
.notice{border:1.5px dashed var(--pen);border-radius:var(--r);background:var(--surface);padding:20px 24px;color:var(--ink-2);font-size:15px}

/* ── forms ────────────────────────── */
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:36px;box-shadow:0 18px 40px rgba(15,23,32,.06)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 22px}
.form .full{grid-column:1/-1}
.form label{display:grid;gap:6px;font-size:14px;font-weight:700}
.form .req{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;color:#fff;background:var(--pen-text);border-radius:4px;padding:0 6px;line-height:1.7}
.form .opt{margin-left:8px;color:var(--mute);font-size:12px;font-weight:400}
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea{font:inherit;font-weight:400;font-size:16px;min-height:50px;padding:10px 14px;border:1px solid var(--line-2);border-radius:10px;background:#fff;color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(31,111,147,.18)}
.form textarea{min-height:180px;resize:vertical;line-height:1.8}
.form .check{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.form .check input{width:20px;height:20px;margin-top:6px;accent-color:var(--primary)}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{grid-column:1/-1;font-weight:700;color:var(--pen-text)}
@media (max-width:640px){.form{grid-template-columns:minmax(0,1fr)}.form-card{padding:24px 20px}}

/* ── CTA & footer ─────────────────── */
.cta{background:var(--ink);color:#fff;padding-block:72px}
.cta .wrap{display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between}
.cta .text{flex:1 1 440px}
.cta .label{font-family:var(--f-mono);font-size:13px;color:#9aa4b2}
.cta .label b{color:#7ee2a8;font-weight:600}
.cta h2{margin-top:8px;color:#fff;font-weight:700;font-size:clamp(26px,3.4vw,38px);line-height:1.45}
.cta p{margin-top:12px;color:#c3cad4}
.site-footer{padding-block:48px 28px;background:var(--surface);border-top:1px solid var(--line);font-size:14px}
.site-footer .top{display:flex;flex-wrap:wrap;gap:32px 56px;justify-content:space-between}
.site-footer .about{flex:1 1 280px}
.site-footer .about img{height:28px;width:auto}
.site-footer .about p{margin-top:14px;color:var(--mute);font-size:13px;line-height:1.9}
.site-footer nav{flex:2 1 520px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px 32px}
.site-footer nav b{display:block;font-size:14px;margin-bottom:6px}
.site-footer nav ul{list-style:none;margin:0;padding:0;line-height:2.1}
.site-footer nav a{text-decoration:none;color:var(--mute)}
.site-footer nav a:hover{color:var(--primary)}
.site-footer .bottom{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:var(--mute)}
.site-footer .bottom a{color:var(--mute)}
.bars{display:flex;height:6px}
.bars span{flex:1}

/* ── 404 ──────────────────────────── */
.notfound{padding-block:96px}
.notfound .diff{max-width:620px}
.notfound .diff .add .sign{padding-top:.1em}
.notfound p.desc{margin-top:24px;color:var(--ink-2)}
.notfound .btn{margin-top:28px}

/* ── founder photos ── */
.portrait{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r);background:#e8ecf1}
.author .avatar{overflow:hidden}
.author .avatar img{width:100%;height:100%;object-fit:cover;display:block}
.prose .callout{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--c-mkt);border-radius:0 10px 10px 0;padding:12px 18px;color:var(--ink)}
.prose .point{background:var(--add-bg);border-radius:10px;padding:18px 22px;color:var(--ink)}
.prose img{border-radius:10px;border:1px solid var(--line)}
