@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..650;1,9..144,400..650&family=Inter:wght@400;500;600&display=swap";:root{--paper: #f5f4ef;--card: #ffffff;--ink: #1a1912;--muted: #6d6a5c;--dim: #a6a493;--line: #e3e1d4;--line-strong: #cfccb9;--accent: #0f3d2e;--accent-soft: #e9f0e4;--warm: #a16207;--serif: "Fraunces", Georgia, serif;--sans: "Inter", -apple-system, "Segoe UI", sans-serif;color:var(--ink);background:var(--paper);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{min-width:320px;margin:0}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--paper)}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.site-shell{width:min(100% - 3rem,1120px);margin:0 auto}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;min-height:4.5rem;border-bottom:1px solid var(--line);background:#f5f4efe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.wordmark{font-family:var(--serif);font-size:1.25rem;font-weight:600;letter-spacing:-.01em}.nav-links{display:flex;gap:clamp(1.25rem,3vw,2.75rem);color:var(--muted);font-size:.78rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.nav-links a{transition:color .16s ease}.nav-links a:hover{color:var(--ink)}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,19rem);gap:clamp(2.5rem,6vw,5rem);align-items:end;padding:clamp(4rem,10vh,7rem) 0 clamp(3rem,7vh,5rem)}.hero-name{margin:0;font-family:var(--serif);font-size:clamp(3.4rem,8.5vw,6.2rem);font-weight:550;line-height:1.02;letter-spacing:-.025em}.hero-line{max-width:32rem;margin:1.5rem 0 0;color:var(--muted);font-size:1.02rem;line-height:1.65}.hero-contact{margin-top:2.25rem;font-size:.95rem}.hero-contact a{color:var(--accent);font-weight:500;border-bottom:1px solid var(--line-strong);padding-bottom:2px;transition:border-color .16s ease}.hero-contact a:hover{border-color:var(--accent)}.hero-photo img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:14px;border:1px solid var(--line)}.section{padding:clamp(3rem,7vh,5rem) 0;border-top:1px solid var(--line)}.section-head{margin-bottom:clamp(2rem,4vh,3rem)}.section-label{color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.project{padding:clamp(2.25rem,5vh,3.5rem) 0;border-top:1px solid var(--line)}.project:first-child{border-top:none;padding-top:0}.project-head{display:flex;align-items:baseline;gap:1.5rem;margin-bottom:1.75rem}.project-index{font-family:var(--serif);font-style:italic;color:var(--dim);font-size:1rem;min-width:1.75rem}.project-titles{display:flex;flex-direction:column;gap:.35rem}.project-name{margin:0;font-family:var(--serif);font-size:clamp(1.75rem,3.5vw,2.4rem);font-weight:550;letter-spacing:-.015em;line-height:1.1}.project-tagline{margin:0;color:var(--muted);font-size:.95rem}.status{display:inline-flex;align-items:center;gap:.45rem;margin-left:auto;font-size:.68rem;font-weight:600;letter-spacing:.14em;white-space:nowrap}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.status-live{color:var(--accent)}.status-warm{color:var(--warm)}.status-dim{color:var(--dim)}.project-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,5vw,4rem);align-items:start}.project-flat .project-body{grid-template-columns:minmax(0,44rem)}.project-description{margin:0 0 1.5rem;color:var(--ink);font-size:.97rem;line-height:1.7}.project-points{margin:0 0 1.5rem;padding:0;list-style:none;color:var(--muted);font-size:.9rem;line-height:1.55}.project-points li{padding:.55rem 0;border-top:1px solid var(--line)}.project-tech{margin:0;color:var(--dim);font-size:.74rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.project-link{display:inline-block;margin-top:1.25rem;color:var(--accent);font-size:.9rem;font-weight:500;border-bottom:1px solid var(--line-strong);padding-bottom:2px;transition:border-color .16s ease}.project-link:hover{border-color:var(--accent)}.project-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:0 0 1.75rem;padding:1.25rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat dd{margin:0;font-family:var(--serif);font-size:2rem;font-weight:550;letter-spacing:-.02em;line-height:1.1}.stat dt{margin:.4rem 0 0;color:var(--muted);font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.phones-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.75rem,1.5vw,1.25rem)}.phones-row.phones-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:26rem}.phone-frame{margin:0;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 1px 2px #1a19120a,0 12px 32px -16px #1a19121f}.phone-frame img{width:100%}.browser-frame{margin:0;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #1a19120a,0 12px 32px -16px #1a19121f}.browser-chrome{padding:.65rem 1rem;border-bottom:1px solid var(--line)}.browser-url{color:var(--dim);font-size:.75rem;letter-spacing:.03em}.browser-frame img{width:100%}.experience-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;padding:1.75rem 0;border-top:1px solid var(--line)}.experience-row:first-child{border-top:none;padding-top:0}.experience-main h3{margin:0;font-family:var(--serif);font-size:1.55rem;font-weight:550;letter-spacing:-.01em}.experience-role{margin:.35rem 0 1rem;color:var(--muted);font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.experience-main ul{margin:0;padding:0;list-style:none;color:var(--muted);font-size:.92rem;line-height:1.6}.experience-main li{padding:.3rem 0}.experience-period{color:var(--dim);font-size:.8rem;white-space:nowrap}.background-list{margin:0;padding:0;list-style:none;columns:2;column-gap:3rem;color:var(--muted);font-size:.9rem;line-height:1.55}.background-list li{break-inside:avoid;padding:.55rem 0;border-top:1px solid var(--line)}.footer{padding:clamp(4rem,9vh,6.5rem) 0 3rem;border-top:1px solid var(--line)}.footer-mail{display:inline-block;font-family:var(--serif);font-size:clamp(1.9rem,4.5vw,3.2rem);font-weight:550;letter-spacing:-.02em;color:var(--ink);border-bottom:2px solid var(--line-strong);padding-bottom:4px;transition:color .16s ease,border-color .16s ease}.footer-mail:hover{color:var(--accent);border-color:var(--accent)}.footer-note{margin:3.5rem 0 0;color:var(--dim);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}@media(max-width:900px){.hero{grid-template-columns:1fr;align-items:start}.hero-photo{max-width:17rem}.project-body{grid-template-columns:1fr}.project-visual{order:-1;margin-bottom:.5rem}.background-list{columns:1}}@media(max-width:600px){.project-stats{grid-template-columns:repeat(2,1fr);row-gap:1.5rem}.experience-row{grid-template-columns:1fr;gap:.5rem}.status{margin-left:0}.project-head{flex-wrap:wrap;gap:.5rem 1.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
