/* ECS family: measured spacing, deep red, clear focus. Korbin retains his own editorial identity. */
:root{color-scheme:light;--bg:#f6f3ec;--ink:#202125;--muted:#55565b;--line:#c6bfb5;--card:#fffdf8;--red:#8f101b;--focus:#004b9b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.65 Arial,Helvetica,sans-serif}a{color:var(--red);text-underline-offset:5px}header,main,footer{max-width:1280px;margin:auto;padding-left:clamp(20px,5vw,72px);padding-right:clamp(20px,5vw,72px)}header{display:flex;justify-content:space-between;gap:24px;align-items:center;padding-top:28px;padding-bottom:24px;border-bottom:1px solid var(--line)}.name{font:700 25px/1.2 Georgia,serif;text-decoration:none;color:var(--ink)}.name span{display:block;font:12px/2 Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}nav{display:flex;gap:20px;align-items:center;flex-wrap:wrap}nav a{font-size:14px;color:var(--ink);padding:10px 0}button,.button{min-height:44px;border:1px solid var(--red);padding:12px 20px;background:var(--red);color:#fff;cursor:pointer;font:700 14px/1.4 Arial,sans-serif;text-decoration:none;display:inline-flex;align-items:center;gap:24px;transition:transform .18s,background-color .18s}button{background:transparent;color:var(--ink);border-color:var(--muted)}button[aria-pressed=true]{border-bottom:3px solid var(--red)}.button.secondary{background:transparent;color:var(--red)}.detail{font-size:12px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 45px}h1,h2,h3,h4{font-family:Georgia,serif;line-height:1.15}h1{font-size:clamp(50px,7vw,94px);font-weight:400;letter-spacing:-3px;margin:24px 0}h2{font-size:clamp(30px,4vw,48px);font-weight:400;margin:15px 0 34px}h3{font-size:25px;margin:12px 0 20px}h4{font-size:21px;margin:20px 0 6px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--red)}.hero{padding-top:55px}.lead{max-width:700px;font-size:20px;color:var(--muted)}section{padding:50px 0;border-bottom:1px solid var(--line)}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-top:1px solid var(--line);padding-top:18px}.facts p{font-size:14px;color:var(--muted)}.facts strong{display:block;color:var(--ink);font:400 36px/1.5 Georgia,serif}.cards,.resume-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.cards article{background:var(--card);padding:32px;border:1px solid var(--line);border-top:3px solid var(--red)}.cards p,.projects p,.resume-grid p{color:var(--muted)}.projects article{display:flex;gap:30px;padding:22px 0;border-top:1px solid var(--line)}.projects p{max-width:780px}.number{font:16px/2 monospace;color:var(--red)}.resume-grid{gap:70px;margin-bottom:32px}.job{border-bottom:1px solid var(--line);padding-bottom:14px}.meta{font-size:14px}.contact{padding-bottom:65px}.email{font-size:clamp(21px,4vw,36px);overflow-wrap:anywhere}footer{display:flex;justify-content:space-between;gap:20px;padding-top:24px;padding-bottom:28px;font-size:13px}.skip{position:absolute;top:0;left:20px;background:var(--bg);padding:12px;transform:translateY(-130%)}.skip:focus{transform:none}:focus-visible{outline:3px solid var(--focus);outline-offset:5px}[hidden]{display:none!important}[data-theme=dark]{color-scheme:dark;--bg:#111315;--ink:#f4f1eb;--muted:#c3c1bc;--line:#55585b;--card:#1b1e21;--red:#ffb3ba;--focus:#93ccff}[data-theme=dark] .button:not(.secondary){color:#171719}@media(hover:hover){.button:hover,button:hover{transform:translateY(-2px)}}@media(max-width:700px){header{align-items:flex-start;flex-direction:column}nav{gap:18px}.facts,.cards,.resume-grid{grid-template-columns:1fr}.facts{gap:0}.facts p{margin:8px 0}.facts strong{font-size:28px}.resume-grid{gap:20px}.cards article{padding:22px}footer{flex-direction:column}h1{letter-spacing:-2px}section{padding:35px 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button,.button{transition:none}button:hover,.button:hover{transform:none}}@media print{nav,.actions,footer,.skip{display:none}body{background:white;color:black;font-size:11pt}section{padding:16px 0}.cards,.resume-grid{display:block}.job,article{break-inside:avoid}h1{font-size:36pt}a{color:black}}
