:root{font-family:Georgia,Times New Roman,serif;color:#273548;background:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;--blue: #173f68;--line: #c4d0df}*{box-sizing:border-box}body{margin:0;font-size:1.25rem;line-height:1.75}a{color:var(--blue);text-underline-offset:.25em;text-decoration-thickness:.08em}a:hover{text-decoration-thickness:.15em}:focus-visible{outline:3px solid #a14917;outline-offset:5px}section{scroll-margin-top:2rem}.skip-link{position:absolute;top:.5rem;left:1rem;z-index:10;padding:.75rem 1rem;background:#fff;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{border-bottom:1px solid var(--line)}.header-inner{max-width:76rem;margin-inline:auto;padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem}.site-name,nav,.office,.hero-links{font-family:Arial,Helvetica,sans-serif}.site-name{font-size:.95rem;font-weight:700;letter-spacing:.07em}nav{display:flex;flex-wrap:wrap;gap:.5rem 2rem;font-size:1rem}nav a,.site-name{display:inline-flex;align-items:center;min-height:44px}.candidate{background:#e4edf7;border-bottom:1px solid var(--line)}.candidate-inner{max-width:76rem;margin-inline:auto;padding:4.5rem 2rem;display:grid;grid-template-columns:1.3fr 1fr;gap:4rem;align-items:center}.office{color:var(--blue);font-size:1.375rem;line-height:1.5;margin:0 0 2rem}.office.vote{font-size:1.75rem}h1{color:var(--blue);font-size:clamp(2rem,4.5vw,4rem);line-height:1.12;font-weight:400;letter-spacing:-.035em;margin:0 0 2.5rem}h1 span{display:block;font-size:1.5em}.headshot{display:block;width:100%;height:auto;border-radius:.25rem;box-shadow:1rem 1rem #cbdbee}.hero-links{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;font-size:1rem}.hero-links a{display:inline-flex;align-items:center;gap:.75rem;min-height:48px}.primary-link{background:var(--blue);color:#fff;padding:.65rem 1rem;border-radius:.2rem}.section{padding:4.5rem 1.5rem 5rem}.reading-width{max-width:44rem;margin-inline:auto}h2{font-size:clamp(2rem,4vw,2.75rem);font-weight:400;color:var(--blue);line-height:1.2;margin:0 0 2.5rem;letter-spacing:-.025em}.prose p{margin:0 0 1.5rem}.prose p:last-child{margin-bottom:0}.letter>p:last-child{font-size:1.75rem;font-style:italic;color:var(--blue)}.issues{background:#edf2f8;border-top:1px solid var(--line)}.positions h3{font-family:Arial,Helvetica,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.4;letter-spacing:normal;padding-top:2.5rem;border-top:1px solid var(--line);margin:2.5rem 0 1.25rem}.positions h3:first-child{margin-top:0}.site-footer{border-top:1px solid var(--line);padding:1.5rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 2rem;font-family:Arial,Helvetica,sans-serif;font-size:1rem}.site-footer a{display:inline-flex;align-items:center;min-height:44px}.policy-page h2{font-size:1.5rem;font-weight:700;margin:2.5rem 0 1rem}@media(max-width:48rem){.header-inner{padding:1rem 1.25rem;flex-direction:column;align-items:flex-start;gap:.25rem}nav{gap:.25rem 1.5rem}.candidate-inner{padding:2.5rem 1.5rem 3rem;grid-template-columns:1fr;gap:2.5rem}h1{font-size:clamp(2rem,7.5vw,3.5rem)}.headshot{max-width:24rem;justify-self:center}.office{margin-bottom:1.5rem}.section{padding:3rem 1.5rem}}@media print{:root{color:#000;background:#fff}body{font-size:12pt;line-height:1.5}.site-header,.hero-links,.skip-link{display:none}.candidate,.issues{background:#fff}.candidate-inner{padding:1rem 0 2rem;grid-template-columns:1fr 10rem;gap:2rem}.headshot{box-shadow:none}h1{font-size:24pt}h2,.positions h3{break-after:avoid}p{orphans:3;widows:3}.section{padding:2rem 0}.reading-width{max-width:none}}
