/* Text board — page-specific rules */
.g{--bg:#ffffff;--fg:#0a0a0a;--mute:#666666;--line:rgba(10,10,10,.14);--tint:#f1f1f1;--ease:cubic-bezier(.7,0,.2,1);--out:cubic-bezier(.16,1,.3,1);background:var(--bg);color:var(--fg);font-family:"Geist",system-ui,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;position:relative;min-height:100vh;overflow-x:clip;transition:background-color .7s var(--ease),color .7s var(--ease)}
.nav a:hover .jp{opacity:.7;transform:none}
.foot{padding:clamp(110px,16vh,180px) 0 110px}
.fcol a{align-self:flex-start;min-height:26px}
.fbase{grid-column:1 / 13;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:56px;color:var(--mute)}
.ib{width:30px;height:44px;display:flex;align-items:center;justify-content:center;opacity:.9}
.lhero{padding-top:clamp(130px,19vh,200px)}
.tabs{grid-column:1 / 13;display:flex;gap:6px;flex-wrap:wrap;margin-bottom:40px}
.tab{min-height:36px;padding:0 14px;border:1px solid var(--line);transition:all .3s}
.tab:hover{border-color:var(--fg)}
.tab.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.ltitle{grid-column:1 / 10;margin:0;font-weight:400;font-size:clamp(48px,6.4vw,104px);line-height:.94;letter-spacing:-.045em;display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;animation:in .7s var(--out) both}
.ltitle .jp{font-size:clamp(14px,1.2vw,20px);color:var(--mute);letter-spacing:.12em}
@keyframes in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.lmeta{grid-column:1 / 13;display:flex;gap:28px;flex-wrap:wrap;margin-top:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.draft{border:1px solid var(--fg);padding:2px 8px}
.toc{grid-column:1 / 4;position:sticky;top:110px;align-self:start;margin-top:40px;display:flex;flex-direction:column;gap:2px}
.toc a{display:grid;grid-template-columns:28px 1fr;min-height:32px;align-items:center;color:var(--mute);transition:color .3s}
.toc a:hover{color:var(--fg)}
.body{grid-column:5 / 11;margin-top:40px;animation:in .7s var(--out) both}
.body section{padding-bottom:36px;scroll-margin-top:100px}
.body h2{margin:0 0 12px;font-weight:400;font-size:clamp(20px,1.7vw,26px);letter-spacing:-.02em;display:flex;gap:14px;align-items:baseline}
.body h2 .mono{color:var(--mute)}
.body p{margin:0 0 14px;max-width:62ch}
.body ul{margin:0 0 14px;padding:0;list-style:none;border-top:1px solid var(--line)}
.body li{display:grid;grid-template-columns:24px 1fr;padding:10px 0;border-bottom:1px solid var(--line);max-width:62ch}
.body li::before{content:"+";font-family:"Geist Mono",monospace;color:var(--mute)}
.callout{border:1px solid var(--fg);padding:18px 20px;margin:0 0 clamp(48px,7vh,72px);font-size:17px;letter-spacing:-.01em;line-height:1.45}
.lost{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:140px 0 120px}
.lost .big{font-size:clamp(120px,22vw,340px);line-height:.85;letter-spacing:-.06em;margin:0;font-weight:400}
.lost .row{display:flex;gap:28px;align-items:baseline;flex-wrap:wrap;margin-top:18px}
.lost .jp{font-size:clamp(28px,3vw,44px);letter-spacing:.12em}
.lost p{font-size:clamp(18px,1.5vw,22px);max-width:34ch;margin:22px 0 0;letter-spacing:-.015em}
.lost .links{display:flex;gap:24px;flex-wrap:wrap;margin-top:28px}
@media (max-width:820px){
  .grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .theme-b{grid-column:4 / 5;margin-right:0}
  .tabs,.ltitle,.lmeta,.toc,.body,.fbase{grid-column:1 / 5}
  .toc{position:static}
}
