:root{--color-bg: #f3f2f2;--color-surface: #eae9e9;--color-text: #201e1d;--color-accent: #ec3013;--color-accent-700: #ae1800;--color-divider: color-mix(in srgb, #201e1d 40%, transparent);--color-muted: #6b6867;--color-faint: #a8a5a4;--font-heading: "Archivo", system-ui, sans-serif;--font-heading-weight: 800;--font-body: "Archivo", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.55}p{margin:0}a{color:var(--color-accent-700);text-underline-offset:3px}a:hover{color:var(--color-accent)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb,var(--color-accent) 30%,transparent)}.hr{height:2px;border:0;margin:0;background:var(--color-divider)}.disp{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:-.02em;margin:0}.body-copy{font-size:17px;line-height:1.7;color:#201e1d}.kick{display:block;font-size:12px;line-height:1;letter-spacing:.09em;text-transform:uppercase;color:var(--color-accent-700);font-weight:600;margin-bottom:20px}.lnk{display:inline-flex;align-items:center;gap:10px;font-size:15px;color:var(--color-text);text-decoration:none;font-weight:600;letter-spacing:-.01em}.lnk:hover{color:var(--color-accent)}.frame{display:grid;grid-template-columns:320px 1fr;min-height:100vh;border:2px solid var(--color-text)}.sidebar{border-right:2px solid var(--color-text);padding:44px 32px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}main{max-width:900px;width:100%;margin:0 auto}.nav-list{display:flex;flex-direction:column;gap:4px}.navlink{font-size:17px;color:var(--color-text);text-decoration:none;letter-spacing:-.01em;display:grid;grid-template-columns:26px 1fr;align-items:baseline;padding:5px 0}.navlink.muted{color:var(--color-faint)}.navlink .num{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--color-faint)}.navlink .label{position:relative;width:fit-content}.navlink .label:after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:100%;background:var(--color-accent);transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.2,.7,.2,1)}.navlink:hover{color:var(--color-accent)}.navlink:hover .label:after{transform:scaleX(1)}.social{margin-top:auto;padding-top:40px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.social .lnk{font-size:13px}.iconlnk{color:var(--color-text);display:inline-flex}.iconlnk:hover{color:var(--color-accent)}.dot{width:4px;height:4px;background:var(--color-text);flex:none}section{padding:64px 56px;scroll-margin-top:40px}section h3{font-size:34px;line-height:1.05}.reveal{opacity:1}#about{padding:88px 56px 72px}.hero{font-size:60px;line-height:1.02}.lede{max-width:44ch;margin-top:28px;font-size:20px}.about-rule{margin:48px 0}#about .kick{margin-bottom:18px}.about-body{max-width:58ch}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}.card{display:block;text-decoration:none;color:var(--color-text);padding:12px;background:var(--color-surface);transition:transform .18s ease,box-shadow .18s ease}.card:hover{color:var(--color-text);transform:translate(-4px,-4px);box-shadow:8px 8px 0 var(--color-text)}.card>*{display:block}.card>*+*{margin-top:8px}.card-kicker{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent)}.card-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:17px;line-height:1.2}.card-body{font-size:13px;opacity:.8}.bullets{margin-top:36px;display:flex;flex-direction:column;gap:18px;max-width:60ch}.bullet{display:flex;gap:14px;align-items:baseline}.bullet .body-copy{min-height:1.7em}.sq{width:8px;height:8px;background:var(--color-accent);display:inline-block;flex:none;margin-top:6px}.updated{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin-top:32px}.see-all{margin-top:24px;color:var(--color-accent-700)}#untitled.muted .kick,#untitled.muted h3{color:var(--color-faint)}.contact{background:var(--color-accent);color:#fff;padding:72px 56px 80px}.contact-label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;opacity:.85}.contact a{color:#fff;text-decoration:none}.contact-email{display:inline-block;font-size:30px;margin-top:24px;border-bottom:3px solid rgba(255,255,255,.5)}.contact-links{display:flex;gap:28px;margin-top:32px}.contact-links a{font-weight:600;border-bottom:2px solid rgba(255,255,255,.5)}.contact a:hover{border-bottom-color:#fff}.index-page{max-width:820px;margin:0 auto;padding:48px 40px 96px}.backlnk{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);font-weight:600;text-decoration:none}.index-page h1{font-size:72px;line-height:1.02;margin-top:48px}.index-sub{max-width:54ch;margin-top:20px}.index-grid{margin-top:56px;display:grid;grid-template-columns:1fr 1fr;gap:24px}.index-card{display:flex;flex-direction:column;border:2px solid var(--color-text);padding:28px;color:var(--color-text);background:var(--color-bg);text-decoration:none}.index-card:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.blog-card{min-height:200px}.blog-date{font-size:13px;letter-spacing:.04em;text-transform:uppercase;opacity:.6;min-height:1.2em}.blog-title{font-size:28px;margin-top:auto;min-height:1.1em}.blog-summary{font-size:15px;line-height:1.6;margin-top:12px;opacity:.75;min-height:1.6em}.article-card{min-height:180px}.article-title{font-size:26px;min-height:1.1em}.article-source{font-size:13px;margin-top:auto;opacity:.7;min-height:1.2em}@media(max-width:900px){.frame{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:28px 24px;border-right:0;border-bottom:2px solid var(--color-text)}.social{padding-top:24px}section,#about{padding:48px 24px}.contact{padding:56px 24px 64px}.hero{font-size:44px}.contact-email{font-size:22px;overflow-wrap:anywhere}.project-grid,.index-grid{grid-template-columns:1fr}.index-page{padding:32px 20px 72px}.index-page h1{font-size:52px;margin-top:36px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.navlink .label:after{transition:none}}
