@font-face { font-family: Geologica; src: url('/assets/fonts/Geologica-Variable.loadfix-20261002.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
:root { --paper:#f4f1e9; --ink:#090909; --yellow:#f7ce2a; --muted:#5f5d58; --rule:#d5d1c8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:28px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Geologica,Arial,sans-serif; line-height:1.72; }
a { color:inherit; text-underline-offset:5px; text-decoration-thickness:1px; }
a:focus-visible { outline:3px solid var(--ink); outline-offset:5px; }
img { display:block; max-width:100%; height:auto; }
p,h1,h2,h3 { margin:0; }
.shell { width:min(1080px,calc(100% - 64px)); margin-inline:auto; }
.reading { width:min(700px,calc(100% - 64px)); margin-inline:auto; }
.topbar { min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; font-size:14px; border-bottom:1px solid var(--rule); }
.brand { font-size:28px; font-weight:900; letter-spacing:-.08em; text-decoration:none; }
.skip-link { position:absolute; left:16px; top:8px; padding:8px 12px; background:var(--yellow); transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:38px; align-items:center; padding-block:64px 48px; }
.byline { font-size:14px; color:var(--muted); margin-bottom:24px; }
h1 { font-size:clamp(36px,4.3vw,56px); line-height:1.1; letter-spacing:-.05em; font-weight:780; text-wrap:balance; }
h1 span { text-decoration:underline; text-decoration-color:var(--yellow); text-decoration-thickness:8px; text-underline-offset:6px; }
.lead { margin-top:28px; font-size:20px; line-height:1.6; }
.hero img { border-radius:50%; background:var(--yellow); }
.contents { display:flex; flex-wrap:wrap; gap:10px 20px; padding-block:22px; border-block:1px solid var(--rule); font-size:15px; }
section.reading { padding-block:48px; border-bottom:1px solid var(--rule); font-size:19px; }
h2 { font-size:clamp(28px,3.2vw,38px); line-height:1.18; font-weight:700; letter-spacing:-.04em; margin-bottom:24px; text-wrap:balance; }
h3 { font-size:25px; line-height:1.25; letter-spacing:-.03em; margin-block:36px 18px; }
p+p, ul+p, ol+p, blockquote+p { margin-top:22px; }
ul,ol { padding-left:26px; margin-block:24px; }
li+li { margin-top:14px; }
blockquote { margin:24px 0; padding:26px 30px; border-radius:16px; background:#fffef8; font-size:19px; }
strong { font-weight:650; }
.results strong { display:block; font-variant-numeric:tabular-nums; }
.note { color:var(--muted); font-size:16px; line-height:1.65; }
.steps li { padding-left:6px; }
.steps strong { display:block; }
.service { padding-block:48px 60px; font-size:19px; }
footer.topbar { border-top:1px solid var(--rule); border-bottom:0; }
@media(max-width:600px) { .shell,.reading { width:calc(100% - 40px); } .hero { grid-template-columns:1fr; gap:24px; padding-block:36px; } .hero img { width:120px; } h1 { font-size:38px; } .lead { font-size:18px; } .byline { font-size:12px; } section.reading { font-size:17px; padding-block:36px; } blockquote { padding:20px; font-size:17px; } .service { font-size:17px; } .topbar { font-size:12px; min-height:70px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
