@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{color-scheme:dark;--bg:#111310;--surface:#191c16;--text:#f0f1e9;--muted:#a4a99b;--accent:#c5f478;--line:#30342b;font-family:'DM Sans',Arial,sans-serif;font-size:16px;background:var(--bg);color:var(--text)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}a:hover{color:var(--accent)}::selection{background:var(--accent);color:var(--bg)}.site-shell{max-width:1440px;margin:auto;padding:0 6.25%}.skip{position:fixed;top:-100px;left:1rem;background:var(--accent);color:var(--bg);padding:1rem;z-index:20}.skip:focus{top:1rem}.wordmark{font-family:'Manrope',sans-serif;font-size:2.2rem;font-weight:800;letter-spacing:-.15rem}.wordmark span{color:var(--accent)}header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}nav{display:flex;gap:2.5rem;font-size:.95rem}nav a{padding:.75rem 0}.header-github{font-size:.9rem}.header-github span{display:none}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:550;color:var(--muted);display:flex;align-items:center;gap:1rem;margin:0 0 1.8rem}.short-line{width:24px;height:2px;background:var(--accent)}.slash{color:#666d5d}.hero{padding:4.6rem 0 0}.hero-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:4rem;align-items:center}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Manrope',Arial,sans-serif}h1{font-size:clamp(3rem,5.9vw,5.7rem);line-height:1.07;letter-spacing:-.065em;font-weight:650;margin-bottom:1.7rem}h1>span{color:var(--accent)}.intro{color:var(--muted);font-size:1.075rem;line-height:1.8;max-width:450px;margin-bottom:2rem}.hero-actions{display:flex;gap:1.8rem;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;padding:1rem 1.4rem;border-radius:5px;font-size:.9rem;font-weight:650;min-height:48px}.primary{background:var(--accent);color:#18200f}.primary:hover{background:#d3ff91;color:#111310}.text-link{font-size:.9rem;border-bottom:1px solid #67705c;padding:.5rem 0}.profile-note{margin:2rem 0 0;min-height:325px;background:var(--surface);border:1px solid #353e2a;border-radius:3px;padding:2rem;transform:rotate(2deg);box-shadow:12px 14px 0 #151912;position:relative}.profile-note:before{content:'';position:absolute;top:-1px;left:2rem;width:42px;height:3px;background:var(--accent)}.note-number{font-size:.75rem;letter-spacing:.1em;color:var(--muted)}.profile-note p{font-family:'Manrope',sans-serif;font-size:clamp(1.3rem,2.2vw,2rem);font-weight:500;letter-spacing:-.045em;line-height:1.5;margin:2.8rem 0 2.2rem}.profile-note em{font-style:normal;color:var(--accent)}.note-bottom{display:flex;justify-content:space-between;gap:1rem;padding-top:1.1rem;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}.hero-footer{margin-top:4.5rem;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:1.4rem 0;color:var(--muted);font-size:.75rem;letter-spacing:.07em;line-height:1.8}.separator{color:#5f6657;margin:0 1.2rem}.work-section{padding:6rem 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:3rem}.section-head h2{margin-bottom:0}h2{font-size:clamp(2.3rem,3.7vw,3.5rem);line-height:1.15;letter-spacing:-.05em;font-weight:600}.section-head>p{color:var(--muted);font-size:1rem;line-height:1.7;margin:0 0 .25rem}.project{display:grid;grid-template-columns:54px 1fr auto;gap:1.6rem;padding:2.7rem 0;border-top:1px solid var(--line);align-items:center}.project:last-child{border-bottom:1px solid var(--line)}.project-index{align-self:start;font-size:.8rem;color:#9ca38f;padding-top:.1rem}.project-meta{display:flex;gap:1rem;font-size:.75rem;letter-spacing:.075em;color:var(--muted);margin-bottom:.9rem}.project-meta span+span:before{content:'/';margin-right:1rem;color:#5b6450}h3{font-size:2rem;letter-spacing:-.05em;margin-bottom:.8rem;font-weight:550}.title-dot{color:var(--accent)}.project p{color:var(--muted);line-height:1.7;max-width:490px;margin-bottom:1.25rem}.tags{display:flex;gap:.5rem;flex-wrap:wrap}.tags span{border:1px solid var(--line);border-radius:4px;padding:.4rem .65rem;color:#c2c8b7;font-size:.75rem}.project-link{font-size:.875rem;border-bottom:1px solid #67705c;padding:.65rem 0}.current-page{font-size:.875rem;color:var(--muted)}.about-section{display:grid;grid-template-columns:1fr 1.15fr;gap:5rem;padding:0 0 6rem}.about-copy>p{font-size:1rem;line-height:1.85;color:var(--muted);margin-bottom:1.25rem}.about-copy>.large-copy{font-size:1.45rem;line-height:1.6;color:var(--text);letter-spacing:-.025em}.skills{margin-top:2rem;border-top:1px solid var(--line);display:grid;gap:1.4rem;padding-top:1.5rem}.skills>div{display:flex;flex-direction:column;gap:.6rem;font-size:.95rem}.skill-label{font-size:.75rem;letter-spacing:.08em;color:var(--muted)}.contact-section{border-top:1px solid var(--line);padding:4rem 0 5rem}.contact-row{display:flex;justify-content:space-between;align-items:center;gap:3rem}.contact-row h2{font-size:clamp(2.6rem,5vw,4.8rem);margin-bottom:0}.contact-row p{color:var(--muted);line-height:1.7;margin-bottom:1.5rem}footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding:1.7rem 0;color:var(--muted);font-size:.8rem}footer .wordmark{color:var(--text);font-size:1.7rem}
@media(min-width:1600px){.site-shell{padding:0 80px}}
@media(max-width:900px){.site-shell{padding:0 6%}.hero-grid{gap:2rem;grid-template-columns:1.5fr 1fr}.profile-note{padding:1.4rem;min-height:290px}.note-bottom{flex-direction:column;gap:.5rem}.hero-footer>span:last-child{display:none}.about-section{gap:2.5rem;grid-template-columns:1fr 1.3fr}.project{grid-template-columns:30px 1fr;gap:1rem}.project-link,.current-page{grid-column:2;justify-self:start}.section-head>p{max-width:240px}.section-head>p br{display:none}}
@media(max-width:640px){header{height:88px}.wordmark{font-size:1.9rem}nav{gap:1.4rem;font-size:.875rem}.header-github{display:none}.hero{padding-top:3rem}.hero>.eyebrow{font-size:.75rem;letter-spacing:.05em;gap:.6rem;flex-wrap:wrap}.hero-grid{grid-template-columns:1fr;gap:1.8rem}h1{font-size:clamp(2.75rem,10vw,4.25rem)}.intro{font-size:1rem}.hero-actions{gap:1.4rem}.button,.text-link{font-size:.875rem}.profile-note{transform:none;min-height:0;margin:.5rem 0 0;box-shadow:none;padding:1.5rem}.profile-note p{font-size:1.5rem;margin:1.5rem 0}.note-bottom{flex-direction:row}.hero-footer{margin-top:2rem;font-size:.75rem;letter-spacing:0}.separator{margin:0 .45rem}.work-section{padding:3.5rem 0}.section-head{display:block;margin-bottom:2rem}.section-head>p{margin-top:1.25rem;max-width:none}.eyebrow{margin-bottom:1.25rem}h2{font-size:2.4rem}.project{padding:2rem 0;gap:.75rem}.project-meta{font-size:.75rem;gap:.5rem;flex-wrap:wrap}.project-meta span+span:before{margin-right:.5rem}h3{font-size:1.7rem}.project p{font-size:1rem}.about-section{grid-template-columns:1fr;gap:.75rem;padding-bottom:3.5rem}.about-copy>.large-copy{font-size:1.25rem}.contact-section{padding:3rem 0}.contact-row{display:block}.contact-row h2{font-size:2.8rem;margin-bottom:1.5rem}.contact-row p br{display:none}footer{flex-wrap:wrap;font-size:.75rem}footer>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Quiet card surfaces and optional pointer feedback. */
.project{background:#161914;border:1px solid var(--line);border-radius:12px;padding:2.4rem 2rem;position:relative;isolation:isolate;overflow:hidden}
.profile-note{border-radius:12px;isolation:isolate;overflow:hidden}
.skills{grid-template-columns:1fr 1fr;gap:1rem;border-top:0;padding-top:0}
.skills>div{background:#161914;border:1px solid var(--line);padding:1.3rem;border-radius:10px;position:relative;isolation:isolate;overflow:hidden;line-height:1.6}
.project:after,.profile-note:after,.skills>div:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(260px circle at var(--pointer-x,50%) var(--pointer-y,50%),rgb(197 244 120 / .075),transparent 75%)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .project,.profile-note,.skills>div{transition:transform 220ms ease,border-color 220ms ease,box-shadow 220ms ease}
  .project:after,.profile-note:after,.skills>div:after{transition:opacity 220ms ease}
  .pointer-active:after{opacity:1}
  .project:hover,.skills>div:hover{transform:translateY(-3px);border-color:#566444;box-shadow:0 12px 25px rgb(0 0 0 / .12)}
  .profile-note.pointer-active{transform:perspective(900px) rotate(2deg) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));border-color:#667b4c}
  .button{transition:transform 180ms ease,background-color 180ms ease,box-shadow 180ms ease}
  .button:hover{transform:translateY(-2px);box-shadow:0 5px 18px rgb(197 244 120 / .08)}
  .button:active{transform:translateY(0)}
}
@media(max-width:900px){.skills{grid-template-columns:1fr}}
@media(max-width:640px){.project{padding:1.5rem 1.1rem}.profile-note.pointer-active{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}}
@media(prefers-reduced-motion:reduce){.profile-note.pointer-active{transform:none}.pointer-active:after{display:none}}
