@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');

:root { --ink:#102a2c; --ink-soft:#1b3a3c; --cream:#f6f2eb; --paper:#fffdf9; --accent:#e5774e; --mint:#bdd5cb; --line:rgba(16,42,44,.16); }
html { scroll-behavior:smooth; }
body { background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; font-size:1.05rem; line-height:1.65; }
h1,h2,h3,h4 { font-weight:600; line-height:1.1; letter-spacing:-.04em; } h1,h2 { font-family:'Playfair Display',serif; } h1 em { color:var(--accent); } a { color:inherit; } .py-lg-6 { padding-top:6rem!important; padding-bottom:6rem!important; }
.site-nav { background:rgba(16,42,44,.97); padding:.85rem 0; transition:padding .2s ease, box-shadow .2s ease; } .site-nav.scrolled { padding:.55rem 0; box-shadow:0 3px 16px rgba(0,0,0,.14); } .navbar-brand { font-family:'Playfair Display',serif; font-size:2rem; font-weight:700; line-height:1; } .navbar-brand span { color:var(--accent); }.navbar-nav { gap:.4rem; }.nav-link { color:rgba(255,255,255,.72)!important; font-size:.9rem; }.nav-link:hover,.nav-link.active { color:#fff!important; }
.hero { min-height:720px; padding:9rem 0 5rem; color:#fff; background:var(--ink); overflow:hidden; position:relative; }.hero:after { content:''; position:absolute; width:56vw; height:56vw; min-width:550px; min-height:550px; border:1px solid rgba(189,213,203,.23); border-radius:50%; right:-20vw; top:12%; }.hero h1 { font-size:clamp(3.5rem,7.5vw,7rem); max-width:850px; margin-bottom:1.5rem; }.eyebrow { text-transform:uppercase; letter-spacing:.14em; font-family:'DM Mono',monospace; font-size:.72rem; font-weight:500; margin-bottom:1.25rem; }.text-accent { color:var(--accent); }.hero-copy { max-width:640px; font-size:1.27rem; color:rgba(255,255,255,.78); margin-bottom:2rem; }.btn { border-radius:0; font-weight:600; }.btn-accent { background:var(--accent); border-color:var(--accent); color:#fff; }.btn-accent:hover { background:#cf623c; border-color:#cf623c; color:#fff; }.btn-link-light { color:#fff; text-decoration:none; }.btn-link-light:hover { color:var(--mint); }.headshot-wrap { position:relative; z-index:1; max-width:365px; margin:0 auto; }.headshot-ring { width:100%; aspect-ratio:1; overflow:hidden; border-radius:50%; border:12px solid rgba(189,213,203,.88); box-shadow:0 0 0 1px rgba(255,255,255,.16), 18px 20px 0 -7px var(--accent); background:var(--mint); }.headshot { width:100%; height:100%; object-fit:cover; transform:translateY(12%) scale(1.42); transform-origin:center center; }.headshot-caption { display:flex; flex-direction:column; gap:.28rem; position:relative; margin:1.55rem 0 0 1.25rem; color:rgba(255,255,255,.75); font-size:.86rem; }.headshot-caption:before { content:''; width:1px; height:2.5rem; background:var(--accent); position:absolute; left:-1.25rem; top:-.15rem; }.panel-label,.project-type { color:var(--mint); text-transform:uppercase; letter-spacing:.12em; font-family:'DM Mono',monospace; font-size:.68rem; }
.intro-section { background:var(--cream); }.lead { font-size:1.37rem; line-height:1.55; }.text-link { display:inline-block; font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.15rem; }.text-link:hover { color:var(--accent); }
.work-section { background:#e7eee9; }.project-card,.quote-card { min-height:300px; padding:2rem; position:relative; border:1px solid transparent; }.project-card { background:#fffdf9; transition:transform .2s ease,box-shadow .2s ease; }.project-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(16,42,44,.12); }.project-card-large { min-height:390px; background:var(--mint); }.project-card-dark { background:var(--ink); color:#fff; }.project-card-light { background:#f0c7a9; }.project-number { display:block; font-family:'DM Mono',monospace; font-size:.75rem; margin-bottom:3rem; opacity:.7; }.project-card h3 { font-family:'Playfair Display',serif; font-size:clamp(1.8rem,3vw,2.6rem); max-width:510px; }.project-card p:not(.project-type) { max-width:550px; margin-bottom:0; }.project-card-dark .project-type { color:#f0c7a9; }.quote-card { min-height:100%; background:var(--accent); color:#fff; display:flex; flex-direction:column; justify-content:center; }.quote-card p { font-family:'Playfair Display',serif; font-size:clamp(1.8rem,3.2vw,2.75rem); font-style:italic; line-height:1.2; margin:0 0 1rem; }.quote-card span { font-size:.9rem; opacity:.8; }.skill-chip { border-top:1px solid var(--ink); padding:.85rem 0; font-weight:600; }.cta-section { background:var(--ink); color:#fff; padding:5rem 0; }.cta-section h2 { font-size:clamp(2.5rem,5vw,4.6rem); max-width:800px; }.cta-section .eyebrow { color:var(--mint); }.site-footer { background:var(--ink); border-top:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.65); font-family:'DM Mono',monospace; font-size:.72rem; padding:1.5rem 0; }
.page-hero { background:var(--ink); color:#fff; padding:10rem 0 4.5rem; }.page-hero h1 { font-size:clamp(3rem,6vw,5.5rem); max-width:850px; }.page-hero .lead { max-width:720px; color:rgba(255,255,255,.77); }.page-content { padding:5rem 0 6rem; }.section-title { font-size:clamp(2.25rem,4.5vw,4rem); margin-bottom:1.6rem; }.section-rule { border-top:1px solid var(--line); margin:0; }.timeline-item { padding:2.5rem 0; border-bottom:1px solid var(--line); }.timeline-meta { font-family:'DM Mono',monospace; color:var(--accent); font-size:.76rem; letter-spacing:.05em; }.timeline-item h2 { font-size:2rem; margin:.4rem 0; }.timeline-item h3 { font-size:1.15rem; letter-spacing:0; }.tag { display:inline-block; border:1px solid var(--line); padding:.3rem .55rem; margin:.2rem .15rem .2rem 0; font-family:'DM Mono',monospace; font-size:.68rem; }.project-detail { padding:3rem 0; border-bottom:1px solid var(--line); scroll-margin-top:70px; }.project-detail h2 { font-size:clamp(2rem,4vw,3.4rem); }.project-aside { color:#527172; font-family:'DM Mono',monospace; font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; }.stat { border-left:3px solid var(--accent); padding-left:1rem; }.stat strong { display:block; font-family:'Playfair Display',serif; font-size:2.4rem; line-height:1; }.skill-group { padding:2rem 0; border-top:1px solid var(--line); }.skill-group h2 { font-size:1.85rem; }.proficiency { color:#527172; font-family:'DM Mono',monospace; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; }.contact-panel { background:var(--mint); padding:clamp(2rem,6vw,5rem); }.contact-panel h2 { font-size:clamp(2.5rem,5vw,4.5rem); }.fine-print { font-size:.85rem; color:#527172; }
@media (max-width:991.98px) { .hero { min-height:auto; }.hero:after { right:-35vw; top:30%; }.headshot-wrap { max-width:290px; }.navbar-nav { padding:1rem 0; align-items:flex-start!important; }.navbar-nav .btn { margin-top:.5rem; } }
@media (max-width:575.98px) { .py-lg-6 { padding-top:4rem!important; padding-bottom:4rem!important; }.hero { padding-top:8rem; }.hero-panel { margin-top:1rem; }.project-card,.project-card-large { min-height:280px; }.page-hero { padding-top:8rem; } }
