*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f4ecda;--bg-warm: #efe5cf;--card: #fbf6e9;--card-soft: #f8f1df;--ink: #2c261d;--ink-soft: #5f574a;--ink-dim: #8a8170;--gold: #b07d2b;--gold-soft: #caa45a;--moss: #6e7a3c;--ember: #c2632c;--line: rgba(44, 38, 29, .12);--line-soft: rgba(44, 38, 29, .07);--shadow: rgba(74, 58, 32, .14);--shadow-soft: rgba(74, 58, 32, .08);--font-display: "Fraunces", Georgia, serif;--font-body: "EB Garamond", Georgia, serif;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 3.5rem;--space-xl: 5.5rem;--radius: 16px;--radius-sm: 10px}html{font-size:18px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-family:var(--font-body);color:var(--ink);line-height:1.72;min-height:100vh;background:radial-gradient(circle at 12% -5%,rgba(202,164,90,.2),transparent 40%),radial-gradient(circle at 92% 6%,rgba(110,122,60,.13),transparent 38%),var(--bg)}::selection{background:var(--gold-soft);color:#2c261d}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);line-height:1.15;font-weight:500}h1{font-size:clamp(2.4rem,6vw,3.6rem);font-weight:600;letter-spacing:-.01em}h2{font-size:clamp(1.5rem,3.2vw,2rem);font-weight:600;letter-spacing:-.005em}h3{font-size:1.2rem;font-weight:600}p{max-width:40em}a{color:var(--gold);text-decoration:none;transition:color .2s}a:hover{color:var(--ember)}em{font-style:italic;color:var(--ink)}strong{font-weight:600;color:var(--ink)}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82em;background:var(--bg-warm);padding:.12em .4em;border-radius:5px}.container{width:100%;max-width:1000px;margin:0 auto;padding:0 var(--space-md)}section{padding:var(--space-xl) 0 var(--space-lg)}.eyebrow{font-family:var(--font-display);font-style:italic;font-size:1rem;color:var(--moss);letter-spacing:.01em}.divider{font-family:var(--font-display);font-style:italic;font-size:1.5rem;color:var(--ink);margin:0 0 var(--space-md);display:flex;align-items:baseline;gap:.8rem}.divider:after{content:"";flex:1;height:1px;align-self:center;background:linear-gradient(90deg,var(--line),transparent)}.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-lg);align-items:center;padding:var(--space-xl) 0 var(--space-lg)}@media(min-width:760px){.hero{grid-template-columns:280px minmax(0,1fr);gap:var(--space-lg)}}.portrait-frame{position:relative;width:220px;justify-self:center}@media(min-width:760px){.portrait-frame{width:100%;max-width:280px}}.portrait-frame img{width:100%;display:block;border-radius:var(--radius);border:5px solid var(--card);box-shadow:0 18px 44px -16px var(--shadow),0 2px 0 var(--line);transform:rotate(-1.4deg)}.portrait-caption{margin-top:.9rem;text-align:center;font-family:var(--font-display);font-style:italic;font-size:.92rem;color:var(--ink-soft);transform:rotate(-1deg)}.portrait-caption span{color:var(--ember)}.hero-copy .status-pill{margin-bottom:1.2rem}.hero-copy h1{margin-bottom:.4rem}.hero-copy .tagline{font-size:1.3rem;color:var(--ink);max-width:30em;margin-bottom:.9rem}.hero-copy .tagline-sub{font-size:1.05rem;color:var(--ink-soft);max-width:34em;margin-bottom:var(--space-md)}.cta-row{display:flex;gap:.8rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;font-family:var(--font-display);font-size:.92rem;font-weight:500;padding:.7em 1.6em;border-radius:999px;border:1.5px solid var(--gold);color:var(--gold);background:transparent;cursor:pointer;transition:all .2s ease}.btn:hover{background:var(--card);transform:translateY(-2px);box-shadow:0 8px 20px -10px var(--shadow);color:var(--ember);border-color:var(--ember)}.btn.primary{background:linear-gradient(180deg,var(--gold-soft),var(--gold));color:#fff;border-color:var(--gold);box-shadow:0 10px 24px -12px #b07d2bb3}.btn.primary:hover{color:#fff;filter:brightness(1.05);border-color:var(--gold)}.status-pill{display:inline-flex;align-items:center;gap:.6rem;padding:.45rem 1rem;border-radius:999px;border:1px solid rgba(110,122,60,.4);background:#6e7a3c1f;color:#4f5a28;font-family:var(--font-body);font-size:.95rem;font-weight:500}.status-pill .status-dot{width:9px;height:9px;border-radius:50%;background:var(--moss);box-shadow:0 0 0 4px #6e7a3c2e;flex-shrink:0;animation:status-pulse 2.4s ease-in-out infinite}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.5}}.about{padding-top:0}.about p{font-size:1.12rem;color:var(--ink);max-width:46em;margin-bottom:1rem}.about p:last-child{margin-bottom:0}.card-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:680px){.card-grid{grid-template-columns:1fr 1fr}}@media(min-width:920px){.card-grid.three{grid-template-columns:1fr 1fr 1fr}}.soft-card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius);padding:var(--space-md);box-shadow:0 10px 30px -20px var(--shadow),0 1px #fff9 inset;transition:transform .2s ease,box-shadow .2s ease}.soft-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px var(--shadow)}.soft-card h3{margin-bottom:.2rem}.soft-card h3 a{color:var(--ink)}.soft-card h3 a:hover{color:var(--ember)}.soft-card .meta{font-family:var(--font-display);font-style:italic;font-size:.95rem;color:var(--moss);margin-bottom:.7rem}.soft-card p{font-size:1rem;color:var(--ink-soft)}.chip{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.28em .7em;border-radius:999px;vertical-align:middle}.chip.out{background:#6e7a3c2e;color:#4f5a28;border:1px solid rgba(110,122,60,.4)}.chip.soon{background:#c2632c24;color:#a44d1d;border:1px solid rgba(194,99,44,.4)}.card-head{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:.5rem}.card-head h3{margin:0}.tagline-row{margin-top:.9rem;font-family:var(--font-display);font-style:italic;font-size:.9rem;color:var(--ink-dim)}.card-links{margin-top:1rem;display:flex;gap:1.1rem;flex-wrap:wrap}.card-links a{font-size:.95rem;font-weight:500;border-bottom:1.5px solid transparent;padding-bottom:1px;transition:border-color .2s,color .2s}.card-links a:hover{border-color:var(--ember)}.featured{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius);padding:var(--space-md);box-shadow:0 14px 36px -22px var(--shadow);margin-bottom:var(--space-md)}.featured .card-head h3{font-size:1.55rem}.featured .card-head h3 a{color:var(--ink)}.featured p{font-size:1.06rem;color:var(--ink-soft);max-width:46em}.skills{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:680px){.skills{grid-template-columns:1fr 1fr}}.skill h3{color:var(--ink);margin-bottom:.3rem}.skill .meta{font-family:var(--font-display);font-style:italic;color:var(--moss);margin-bottom:.5rem}.skill p{font-size:1rem;color:var(--ink-soft)}.contact-card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius);padding:var(--space-lg) var(--space-md);text-align:center;box-shadow:0 14px 36px -22px var(--shadow)}.contact-card h2{margin-bottom:.6rem}.contact-card .sub{font-size:1.12rem;color:var(--ink-soft);max-width:36em;margin:0 auto var(--space-md)}.contact-links{display:flex;gap:1.4rem;flex-wrap:wrap;justify-content:center}.contact-links a{font-size:1.02rem;font-weight:500;border-bottom:1.5px solid var(--line);padding-bottom:2px}.contact-links a:hover{border-color:var(--ember)}footer{padding:var(--space-lg) 0 var(--space-md);text-align:center}footer p{font-size:.95rem;color:var(--ink-dim);margin:0 auto;font-family:var(--font-display);font-style:italic}@media(max-width:640px){html{font-size:16px}.container{padding:0 var(--space-sm)}section{padding:var(--space-lg) 0 var(--space-md)}.hero{padding-top:var(--space-lg)}}
