:root{
  --paper:#fcfbfe;--lavender:#f0e9fa;--lavender-light:#f7f3fc;
  --ink:#2d233b;--muted:#645b70;--purple:#624084;--deep:#4f2d72;--line:#e1d7ec;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
  --pad:64px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.5}
a{color:var(--deep);text-decoration:none}
a:hover{color:var(--purple);text-decoration:underline;text-underline-offset:4px}
a:focus-visible{outline:3px solid var(--purple);outline-offset:4px}
::selection{background:#dfceef}
h1,h2,h3,p{margin:0}

.skip-link{position:absolute;top:-100px;left:16px;z-index:20;background:var(--deep);color:#fff;padding:10px 16px;border-radius:8px}
.skip-link:focus{top:12px}

/* Header */
.site-header{position:sticky;top:0;z-index:10;background:rgba(252,251,254,.85);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line)}
.header-inner{max-width:1280px;margin:0 auto;height:52px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:16px}
.wordmark{font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.2px}
nav{display:flex;gap:32px;font-size:12px}
nav a{color:var(--muted)}

/* Hero */
.hero{background:var(--lavender);padding:128px var(--pad) 136px;display:flex;flex-direction:column;align-items:center;text-align:center}
.greeting{margin-bottom:24px;font-size:42px;font-weight:600;color:var(--purple);letter-spacing:-.2px}
h1{font-size:88px;line-height:1.05;font-weight:700;letter-spacing:-.035em;max-width:1000px;text-wrap:balance}
h1 span{color:var(--purple)}
.intro-copy{margin-top:32px;font-size:21px;color:var(--muted);max-width:680px;text-wrap:pretty}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:28px;margin-top:40px;font-size:17px}
.button{background:var(--deep);color:#fff;padding:12px 24px;border-radius:980px}
.button:hover{background:#3e205e;color:#fff;text-decoration:none}

/* Layout */
.container{max-width:1280px;margin:0 auto;padding:0 var(--pad)}
.section{padding-top:120px}
.section-title{margin-bottom:48px;font-size:56px;font-weight:700;letter-spacing:-.03em}

/* Projects */
.project-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.project{grid-column:span 2;background:var(--lavender-light);border-radius:28px;padding:44px;display:flex;flex-direction:column;gap:14px}
.project.wide{grid-column:span 3}
.project-context{font-size:14px;font-weight:600;color:var(--purple)}
.project h3{font-size:30px;line-height:1.12;font-weight:700;letter-spacing:-.02em}
.project-copy{margin-top:8px;font-size:17px;line-height:1.55;color:var(--muted)}
.tool-line{margin-top:auto;padding-top:16px;font-size:14px;color:var(--purple)}

/* About */
.about{padding-top:120px;display:grid;grid-template-columns:1fr 1fr;gap:64px}
.sub-title{margin-bottom:32px;font-size:40px;font-weight:700;letter-spacing:-.025em}
.row{border-top:1px solid var(--line);padding:20px 0;display:flex;justify-content:space-between;gap:16px}
.row.stacked{display:block}
.row h3{font-size:19px;font-weight:600}
.row.minor h3{font-size:15px}
.muted{color:var(--muted);font-size:15px;margin-top:4px}
.date{white-space:nowrap;margin-top:0}
.uni{margin-top:6px;font-size:17px;font-weight:600;color:var(--purple)}
.uni + .muted{margin-top:2px}

/* Contact */
.contact{margin-top:120px;background:var(--lavender);border-radius:28px;padding:96px 64px;display:flex;flex-direction:column;align-items:center;text-align:center}
.contact h2{font-size:72px;font-weight:700;letter-spacing:-.035em}
.contact p{margin-top:20px;font-size:21px;color:var(--muted)}
.email{margin-top:36px;font-size:32px;font-weight:600;letter-spacing:-.02em;overflow-wrap:anywhere}
.contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:32px;margin-top:28px;font-size:24px}

.site-footer{margin-top:64px;padding:20px 0 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}
.site-footer a{color:var(--muted)}

/* Tablet / small laptop */
@media (max-width:1024px){
  :root{--pad:40px}
  .greeting{font-size:34px}
  h1{font-size:68px}
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project,.project.wide{grid-column:span 1;padding:36px}
  .project.wide:last-child{grid-column:span 2}
  .project h3{font-size:26px}
}

/* Phone */
@media (max-width:680px){
  :root{--pad:20px}
  nav{gap:18px;font-size:13px}
  .hero{padding:72px var(--pad) 80px}
  .greeting{font-size:24px;margin-bottom:16px}
  h1{font-size:44px;letter-spacing:-.03em}
  .intro-copy{margin-top:24px;font-size:17px}
  .hero-actions{margin-top:32px;gap:20px}
  .section,.about{padding-top:72px}
  .section-title{font-size:40px;margin-bottom:28px}
  .project-grid{grid-template-columns:1fr;gap:14px}
  .project,.project.wide,.project.wide:last-child{grid-column:auto;padding:28px;border-radius:22px}
  .project h3{font-size:24px}
  .project-copy{font-size:16px}
  .about{grid-template-columns:1fr;gap:56px}
  .sub-title{font-size:32px;margin-bottom:20px}
  .row{flex-direction:column;gap:4px}
  .contact{margin-top:72px;padding:56px 24px;border-radius:22px}
  .contact h2{font-size:48px}
  .contact p{font-size:17px}
  .email{font-size:22px}
  .contact-links{font-size:19px}
}

@media (max-width:360px){
  .wordmark{font-size:14px}
  nav{gap:14px;font-size:12px}
  h1{font-size:38px}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
