/* page.css: layout for the inner pages (blog, policies) and the
   "More from TOAO" section on the home page. Tokens from styles.css. */

/* ---------- more from TOAO (home) ---------- */
.more{padding-top:0}
.more-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px}
.more-head h2{max-width:16ch}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.post-card{display:flex;flex-direction:column;min-height:100%}
.post-card .bezel-in{padding:0;display:flex;flex-direction:column;overflow:hidden}
.post-body{padding:26px 24px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.post-body .mono{font-size:.62rem;letter-spacing:.14em;color:var(--accent)}
.post-body h3,.post-body h2{font-size:1.25rem;letter-spacing:-.02em;line-height:1.2}
.post-body p{color:var(--muted);font-size:.95rem;line-height:1.5}
.post-body .link{margin-top:auto;padding-top:8px}
.post-card:hover .bezel-in{border-color:var(--hair-3)}

/* ---------- inner page shell ---------- */
.page{padding-top:clamp(130px,16vw,170px)}
.page-head{max-width:760px;margin-bottom:clamp(36px,5vw,56px)}
.page-head h1{font-size:clamp(2.2rem,5vw,4.2rem);letter-spacing:-.04em;line-height:1.02;margin:0 0 18px}
.page-head .lede{margin-bottom:0;font-size:1.15rem;color:var(--muted)}
.meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:22px}
.meta b{color:var(--accent);font-weight:500}
.cover{margin:0 0 clamp(36px,5vw,56px)}
.cover .bezel-in{overflow:hidden}
.cover img{width:100%;height:auto;aspect-ratio:16/8;object-fit:cover;display:block}

/* ---------- prose ---------- */
.prose{max-width:720px;font-size:1.08rem;line-height:1.7;color:var(--muted)}
.prose h2{font-size:clamp(1.5rem,2.6vw,2.1rem);color:var(--ink);margin:clamp(40px,5vw,56px) 0 16px;letter-spacing:-.025em}
.prose h3{font-size:1.2rem;color:var(--ink);margin:28px 0 10px}
.prose p{margin:0 0 20px}
.prose strong{color:var(--ink);font-weight:600}
.prose ul,.prose ol{margin:0 0 22px;padding-left:22px}
.prose li{margin-bottom:8px}
.prose li::marker{color:var(--accent)}
.prose a{color:var(--ink);border-bottom:1px solid var(--hair-3)}
.prose a:hover{border-color:var(--accent)}
.prose blockquote{margin:28px 0;padding:22px 26px;border-left:2px solid var(--accent);background:rgba(255,255,255,.03);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--ink);font-size:1.15rem;letter-spacing:-.01em}
.prose .callout{margin:28px 0;padding:22px 24px;border:1px solid rgba(255,90,31,.3);border-radius:var(--r-md);background:var(--accent-wash);color:var(--ink);font-size:1rem}
.prose .callout .mono{display:block;color:var(--accent);font-size:.62rem;letter-spacing:.14em;margin-bottom:8px}
.prose hr{border:0;border-top:1px solid var(--hair);margin:40px 0}
.prose .updated{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.article-grid{display:grid;grid-template-columns:1fr 300px;gap:clamp(36px,6vw,80px);align-items:start}
.aside{position:sticky;top:110px;display:flex;flex-direction:column;gap:16px}
.aside .bezel-in{padding:22px}
.aside h4{font-size:1rem;margin-bottom:8px}
.aside p{color:var(--muted);font-size:.92rem;line-height:1.5;margin-bottom:14px}
.aside .btn{width:100%;justify-content:space-between}
.next-post{margin-top:clamp(48px,7vw,80px);padding-top:32px;border-top:1px solid var(--hair)}
.next-post .mono{color:var(--dim);font-size:.66rem;letter-spacing:.14em;margin-bottom:8px}
.next-post a{font-size:1.3rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);border-bottom:1px solid var(--hair-3)}
.next-post a:hover{border-color:var(--accent)}

.res-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-wash);border:1px solid rgba(255,90,31,.25);color:var(--accent);margin-bottom:6px}
.res-ic .glyph{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.post-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

/* ---------- footer columns ---------- */
.foot-sig{font-size:clamp(4.5rem,18vw,15rem);font-weight:700;letter-spacing:-.06em;line-height:.85;margin:10px 0 26px;color:transparent;-webkit-text-stroke:1px var(--hair-3);user-select:none}
.foot-sig em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--accent)}
.nf h1{max-width:14ch}
.foot-cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px;padding-bottom:32px;margin-bottom:28px;border-bottom:1px solid var(--hair)}
.foot-cols .foot-h{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin:0 0 12px;font-weight:500}
.foot-cols a{display:block;color:var(--muted);font-size:.92rem;padding:4px 0}
.foot-cols a:hover{color:var(--ink)}
.foot-blurb{color:var(--muted);font-size:.92rem;max-width:32ch;margin-top:8px}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}

@media (max-width:1020px){
  .posts,.post-list{grid-template-columns:1fr 1fr}
  .dials{grid-template-columns:repeat(3,1fr)}
  .audit-grid{grid-template-columns:1fr}
  .article-grid{grid-template-columns:1fr}
  .aside{position:static}
  .foot-cols{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .posts,.post-list{grid-template-columns:1fr}
  .dials{grid-template-columns:repeat(2,1fr)}
  .audit-row{grid-template-columns:1fr}
  .prev-bar{flex-wrap:wrap}
  .more-head{flex-direction:column;align-items:flex-start}
  .foot-cols{grid-template-columns:1fr}
}

/* ---------- website auditor ---------- */
.audit-row{display:grid;grid-template-columns:1fr auto;gap:12px;max-width:760px}
.audit-row input{background:var(--well);border:1px solid var(--hair-2);border-radius:var(--pill);color:var(--ink);font:500 1.05rem var(--display);padding:14px 22px;min-height:52px;outline:0;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.audit-row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.audit-row .btn{min-height:52px}
.audit-status{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:14px;min-height:1.2em}
.audit-status.err{color:var(--accent)}
.audit-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:clamp(32px,4vw,48px)}
.audit-card .bezel-in{padding:clamp(22px,3vw,32px)}
.audit-card h3{font-size:1.2rem;margin-bottom:6px}
.audit-card .sub{color:var(--muted);font-size:.92rem;margin-bottom:18px}
.overall{display:flex;align-items:center;gap:24px;margin-bottom:22px}
.dial{position:relative;width:96px;height:96px;flex:0 0 96px}
.dial svg{width:100%;height:100%;transform:rotate(-90deg)}
.dial circle{fill:none;stroke-width:7;stroke-linecap:round}
.dial .track{stroke:var(--hair-2)}
.dial .bar{stroke:var(--accent);stroke-dasharray:264;stroke-dashoffset:264;transition:stroke-dashoffset 1.1s var(--ease)}
.dial.good .bar{stroke:var(--ok)}.dial.mid .bar{stroke:#f2b84b}
.dial b{position:absolute;inset:0;display:grid;place-items:center;font-size:1.7rem;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.overall h4{font-size:1.6rem;letter-spacing:-.03em;margin-bottom:4px}
.overall p{color:var(--muted);font-size:.95rem}
.dials{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dials li{list-style:none;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border:1px solid var(--hair);border-radius:var(--r-md);background:var(--well)}
.dials .dial{width:64px;height:64px;flex-basis:64px}
.dials .dial b{font-size:1.15rem}
.dials .dial circle{stroke-width:6}
.dials span{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center}
.findings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.findings li{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--hair);font-size:.95rem;line-height:1.45}
.findings li:first-child{border-top:0}
.findings i{width:18px;height:18px;border-radius:50%;margin-top:2px;border:1px solid var(--hair-3);position:relative}
.findings i::after{content:"";position:absolute;inset:4px;border-radius:50%}
.findings .pass i{border-color:rgba(61,220,132,.5)}.findings .pass i::after{background:var(--ok)}
.findings .fail i{border-color:rgba(255,90,31,.6)}.findings .fail i::after{background:var(--accent)}
.findings .warn i{border-color:rgba(242,184,75,.6)}.findings .warn i::after{background:#f2b84b}
.findings b{color:var(--ink);display:block}
.findings span{color:var(--muted)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-top:6px}
.facts div{padding:10px 12px;border:1px solid var(--hair);border-radius:var(--r-sm);background:var(--well)}
.facts .mono{font-size:.58rem;letter-spacing:.12em;color:var(--dim);display:block;margin-bottom:3px}
.facts b{font-size:1.05rem;font-variant-numeric:tabular-nums}
.preview{margin-top:16px}
.preview .bezel-in{padding:0;overflow:hidden}
.prev-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--hair);background:rgba(255,255,255,.02)}
.prev-bar .mono{font-size:.62rem;letter-spacing:.12em;color:var(--muted)}
.prev-tabs{display:flex;gap:2px;background:var(--well);border-radius:var(--pill);padding:3px;border:1px solid var(--hair)}
.prev-tabs button{border:0;background:transparent;color:var(--muted);font:500 .78rem var(--display);padding:5px 12px;border-radius:var(--pill);cursor:pointer}
.prev-tabs button.on{background:var(--raised);color:var(--ink)}
.prev-frame{background:#fff;display:flex;justify-content:center;transition:padding .4s var(--ease)}
.prev-frame iframe{width:100%;height:720px;border:0;display:block;background:#fff;transition:width .4s var(--ease)}
.prev-frame.mobile{padding:18px 0;background:var(--well)}
.prev-frame.mobile iframe{width:390px;border-radius:24px;border:1px solid var(--hair-3)}
.prev-note{font-size:.85rem;color:var(--dim);padding:12px 16px;border-top:1px solid var(--hair)}
.audit-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
