/* ============================================================
   codudo 首頁「一筆帶過」save.css
   以前的八個繁瑣步驟 → 化成墨（一層一層暈開）→ 一筆從左畫到右 → 鏡頭拉遠變成一條線：想法 → 完成，下面寫出省了多少麻煩。
   預設（沒有 JS、關掉動態、列印）：兩段直接排出來，什麼都看得到。save.js 跑起來才加 .is-live 變成跟著捲動走。
   守 DESIGN.md 第 2 章：顏色、字級只用 :root 的變數；只動畫化 transform / opacity
   ============================================================ */
.ink-save{position:relative;background:var(--ink-0)}
.ink-save-runway{position:relative}
.ink-save-stage{position:relative;padding:var(--s6) 0}
.ink-save-ink{display:none}

/* ---------- 以前：八個步驟 ---------- */
.ink-save-before .ink-h2{max-width:none}
.ink-save-chores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:var(--s4);list-style:none}
.ink-save-chores li{min-width:0;padding:16px 18px;border:1px solid var(--line);will-change:transform,opacity}
.ink-save-chores b{display:block;font-size:var(--t-body);font-weight:700;color:var(--paper);line-height:1.5}
.ink-save-chores span{display:block;margin-top:4px;font-size:var(--t-body);color:var(--paper-60)}

/* ---------- 之後：一條線，想法 → 完成 ---------- */
.ink-save-after{margin-top:var(--s6);text-align:center}
.ink-save-line{position:relative;height:9px;margin:0 auto var(--s2);max-width:760px}
.ink-save-line i{position:absolute;left:0;right:0;top:4px;height:1px;background:var(--paper);transform-origin:0 50%}
/* 兩端：左邊一個空心圈（想法），右邊是 ○• 的那個點（完成） */
.ink-save-line::before,.ink-save-line::after{content:"";position:absolute;top:0;width:9px;height:9px;border-radius:var(--r)}
.ink-save-line::before{left:-4px;border:1px solid var(--paper);background:var(--ink-0)}
.ink-save-line::after{right:-4px;background:var(--paper)}
.ink-save-ends{display:flex;justify-content:space-between;max-width:760px;margin:0 auto;
  font-family:var(--f-serif);font-weight:900;font-size:var(--t-step);color:var(--paper)}
.ink-save-after .ink-h2{margin-top:var(--s4);max-width:none}
.ink-save .nw{white-space:nowrap}
.ink-save-gain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);margin:var(--s4) auto 0;list-style:none}
.ink-save-gain li{min-width:0;padding-top:16px;border-top:1px solid var(--line)}
.ink-save-gain b{display:block;font-family:var(--f-serif);font-weight:900;font-size:var(--t-h2);line-height:1.2;color:var(--paper);white-space:nowrap}
.ink-save-gain span{display:block;margin-top:8px;font-size:var(--t-body);color:var(--paper-60)}

/* ---------- 跟著捲動走 ---------- */
.ink-save.is-live .ink-save-runway{height:440vh}
.ink-save.is-live .ink-save-stage{position:sticky;top:0;height:100vh;height:100svh;padding:0;overflow:hidden}
.ink-save.is-live .ink-save-ink{display:block;position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.ink-save.is-live .ink-save-before{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%)}
.ink-save.is-live .ink-save-after{position:absolute;left:0;right:0;top:50%;margin:0 auto;transform:translateY(-36%)}
.ink-save.is-live .ink-save-after > *{opacity:0;will-change:transform,opacity}
.ink-save.is-live .ink-save-before .ink-tag,.ink-save.is-live .ink-save-before .ink-h2{will-change:opacity}
/* 矮螢幕（save.js 量過放不下才加）：收掉小標跟步驟底下的灰色小字 */
.ink-save.is-live.is-tight .ink-save-before .ink-tag{display:none}
.ink-save.is-live.is-tight .ink-save-chores{margin-top:var(--s3)}
.ink-save.is-live.is-tight .ink-save-chores span{display:none}

@media (max-width:860px){
  .ink-save-chores{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .ink-save-chores li{padding:10px 12px}
  /* 手機：省下的麻煩改成一行一列（左邊數字、右邊說明），整段才塞得進一個螢幕 */
  .ink-save-after .ink-h2{margin-top:var(--s3)}
  .ink-save-gain{grid-template-columns:minmax(0,1fr);gap:0;margin-top:var(--s3)}
  .ink-save-gain li{display:flex;align-items:baseline;gap:10px;padding:12px 0;text-align:left}
  .ink-save-gain b{flex:0 0 auto;min-width:5.6em;font-size:var(--t-step)}
  .ink-save-gain span{margin-top:0}
  .ink-save.is-live .ink-save-runway{height:380vh}
  .ink-save.is-live .ink-save-after{transform:translateY(-50%)}
}
@media print{
  .ink-save.is-live .ink-save-runway{height:auto}
  .ink-save.is-live .ink-save-stage{position:relative;height:auto;padding:var(--s5) 0}
  .ink-save.is-live .ink-save-ink{display:none}
  .ink-save.is-live .ink-save-before,.ink-save.is-live .ink-save-after{position:static;transform:none}
  .ink-save.is-live .ink-save-after > *,.ink-save.is-live .ink-save-chores li{opacity:1!important;transform:none!important}
}
