/* taylorclements.com: Taylor Clements design system tokens */
:root{--surface:#F3EFE7;--surface-raised:#FFFFFF;--ink:#0A0A0A;--ink-muted:#4A4A4A;--signal:#2741E8;--on-signal:#FFFFFF;--signal-text:#2741E8;--sky:#BFD0FF;--contrast-surface:#0A0A0A;--on-contrast:#F3EFE7;--hairline:#D9D3C7;--r-md:16px;--r-lg:24px;--r-pill:999px;--pad:64px}
@media (prefers-color-scheme:dark){:root{--surface:#16140F;--surface-raised:#221F19;--ink:#F3EFE7;--ink-muted:#B9B3A8;--signal-text:#8C9CFF;--sky:#26306B;--contrast-surface:#F3EFE7;--on-contrast:#0A0A0A;--hairline:#3A362E}}
@media (max-width:760px){:root{--pad:16px}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface);color:var(--ink);font:400 16px/24px 'Bricolage Grotesque',system-ui,sans-serif}
a{color:var(--signal-text);text-underline-offset:3px}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--signal-text);outline-offset:3px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:var(--surface-raised);padding:8px 16px;border-radius:var(--r-pill)}

h1,h2,h3{letter-spacing:-0.03em;margin:0 0 16px}
h1{font-weight:800;font-size:56px;line-height:58px}
h2{font-weight:700;font-size:36px;line-height:40px}
h3{font-weight:700;font-size:28px;line-height:32px}
.display{font-size:80px;line-height:78px}
@media (max-width:760px){h1{font-size:40px;line-height:44px}.display{font-size:48px;line-height:50px}h2{font-size:28px;line-height:32px}h3{font-size:22px;line-height:28px}}
.hl{background:var(--signal);color:var(--on-signal);border-radius:var(--r-md);padding:0 .2em}
.lead{font-size:20px;line-height:30px;max-width:40em}
.eyebrow{font-weight:600;font-size:14px;line-height:20px;color:var(--ink-muted);margin:0 0 12px}
.muted{color:var(--ink-muted)}

/* header + lockup (real mark file; wordmark set in Newsreader as specified) */
header.site{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px var(--pad)}
.lockup{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none}
.lockup img{display:block;width:44px;height:44px}
.lockup .divider{width:1.5px;align-self:stretch;background:var(--ink);opacity:.35}
.wordmark{font-family:'Newsreader',Georgia,serif;font-size:22px;line-height:22px;letter-spacing:-0.01em}
.wordmark i{color:var(--signal-text)}
.lockup.small img{width:32px;height:32px}
.lockup.small .wordmark{font-size:17px;line-height:18px}
.wordmark small{display:block;font-size:12px;line-height:18px;color:var(--ink-muted);font-style:normal;margin-top:4px}
nav{display:flex;gap:8px;flex-wrap:wrap}
nav a{display:inline-flex;align-items:center;min-height:48px;padding:0 18px;border-radius:var(--r-pill);background:var(--surface-raised);color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}
nav a[aria-current]{background:var(--ink);color:var(--surface)}
@media (max-width:760px){nav{gap:6px}nav a{min-height:44px;padding:0 14px}}

main{padding:24px var(--pad) 48px;max-width:1240px;margin:0 auto}
section{margin:0 0 48px}

.btn{display:inline-flex;align-items:center;min-height:48px;padding:0 24px;border-radius:var(--r-pill);font:600 16px/1 inherit;font-family:inherit;background:var(--signal);color:var(--on-signal);border:0;text-decoration:none;cursor:pointer}
.btn.secondary{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.card{background:var(--surface-raised);border-radius:var(--r-lg);padding:28px}
.card img{border-radius:var(--r-md);aspect-ratio:4/3;object-fit:cover;width:100%;margin-bottom:16px;background:var(--surface)}
.card h3{font-size:22px;line-height:28px}
.card p:last-child{margin-bottom:0}
.feature{background:var(--contrast-surface);color:var(--on-contrast)}
.feature a{color:inherit}
.tags{display:flex;gap:8px;flex-wrap:wrap;padding:0;margin:0 0 16px;list-style:none}
.tags li{border-radius:var(--r-pill);background:var(--sky);color:var(--ink);padding:2px 12px;font-size:13px;font-weight:600}

.hero{padding:48px 0}
.split{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}

footer.site{display:flex;flex-wrap:wrap;gap:20px 48px;align-items:flex-start;justify-content:space-between;padding:48px var(--pad);border-top:1px solid var(--hairline);font-size:14px;line-height:20px}
footer.site p{margin:0}

/* work */
.case{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start}
@media (max-width:900px){.case{grid-template-columns:1fr}}
.case h3{font-size:28px;line-height:32px}
.cases{display:grid;gap:20px}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}
.stats li{background:var(--surface);border-radius:var(--r-md);padding:16px 18px}
.feature .stats li{background:rgba(243,239,231,.08)}
@media (prefers-color-scheme:dark){.feature .stats li{background:rgba(10,10,10,.06)}}
.stats strong{display:block;font-weight:800;font-size:32px;line-height:36px;letter-spacing:-0.03em}
.stats span{display:block;font-size:14px;line-height:20px;opacity:.8}
.links{display:flex;gap:16px;flex-wrap:wrap;margin-top:20px;font-weight:600}
.feature .tags li{background:var(--sky);color:var(--ink)}
.minor{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding:0;margin:0;list-style:none}
.minor li{background:var(--surface-raised);border-radius:var(--r-md);padding:16px 20px}
.minor strong{display:block}

/* approach */
.principles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;counter-reset:p}
.principles .card::before{counter-increment:p;content:counter(p);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r-pill);background:var(--signal);color:var(--on-signal);font-weight:800;margin-bottom:16px}

/* case study pages */
.study{max-width:820px;margin:0 auto}
.study .stats{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin:28px 0 40px}
.study .stats li{background:var(--surface-raised)}
.study h2{font-size:28px;line-height:32px;margin-top:40px}
.study figure{margin:0 0 28px}
.study figure img{border-radius:var(--r-lg);display:block}
.study figcaption{font-size:14px;color:var(--ink-muted);margin-top:8px}

header.site>a{text-decoration:none;color:var(--ink)}
.grid.four{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}

/* resume */
.stats.wide{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.stats.wide li{background:var(--surface-raised)}
.timeline{list-style:none;margin:0;padding:0 0 0 28px;border-left:2px solid var(--hairline)}
.timeline li{position:relative;margin:0 0 32px}
.timeline li::before{content:"";position:absolute;left:-36px;top:6px;width:14px;height:14px;border-radius:var(--r-pill);background:var(--signal)}
.timeline h3{font-size:22px;line-height:28px;margin-bottom:8px}
.timeline p{margin:0 0 8px}
.when{font-weight:600;font-size:14px;line-height:20px;color:var(--ink-muted)}
.stack{display:grid;gap:20px}
.label{font-size:14px;line-height:20px;font-weight:600;color:var(--ink-muted);letter-spacing:0;margin:20px 0 8px}
.edu{list-style:none;margin:0;padding:0}
.edu li{padding:12px 0;border-bottom:1px solid var(--hairline)}
.edu li:last-child{border-bottom:0}
.edu strong{display:block}
@media (max-width:600px){.stats{gap:8px}.stats li{padding:12px 14px}.stats strong{font-size:24px;line-height:28px}.stats span{font-size:13px;line-height:18px}.card.case{padding:20px}}
