@font-face{font-family:SpaceGrotesk;font-weight:300 700;src:url('./assets/space-grotesk.woff') format('woff');font-display:swap}
@font-face{font-family:DMSans;font-weight:100 1000;src:url('./assets/dm-sans.woff') format('woff');font-display:swap}
:root{--ink:#15171d;--paper:#f6f7f9;--muted:#666d78;--line:#d9dce2;--accent:#5269d8}
*{box-sizing:border-box}html,body{margin:0;background:#e8eaf0;color:var(--ink);font-family:DMSans,Arial,sans-serif}.resume-sheet{width:210mm;min-height:297mm;margin:18px auto;background:var(--paper);padding:12mm 14mm 11mm;box-shadow:0 24px 70px rgba(28,32,42,.13);border-top:2px solid var(--accent)}
.resume-head{display:grid;grid-template-columns:1fr auto;gap:12mm;padding-bottom:7mm;border-bottom:1px solid var(--line)}.resume-head h1{margin:0;font:560 27pt/.9 SpaceGrotesk,Arial,sans-serif;letter-spacing:-.035em}.resume-role{margin:3mm 0 0;font:650 6.8pt/1 SpaceGrotesk,Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}.resume-summary{max-width:150mm;margin:6mm 0 0;color:#3f4550;font-size:8.2pt;line-height:1.5}.resume-contact{display:grid;gap:1.6mm;align-content:start;text-align:right;font-size:7.2pt;color:#5f6670}.resume-contact a{color:inherit;text-decoration:none}
.resume-grid{display:grid;grid-template-columns:1.48fr .72fr;gap:10mm;margin-top:6mm}.resume-section{padding-top:4mm;border-top:1px solid var(--line)}.resume-section:first-child{padding-top:0;border-top:0}.resume-section+.resume-section{margin-top:5mm}.resume-section h2{margin:0 0 3.2mm;font:650 6.3pt/1 SpaceGrotesk,Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.resume-item{display:grid;grid-template-columns:1fr auto;gap:4mm}.resume-item+.resume-item{margin-top:4mm}.resume-item h3{margin:0;font:600 10.2pt/1 SpaceGrotesk,Arial,sans-serif;letter-spacing:-.04em}.resume-item .role{margin:1.1mm 0 0;font-size:7.6pt;font-weight:600}.resume-item .meta{font:650 5.8pt/1 SpaceGrotesk,Arial,sans-serif;letter-spacing:.1em;color:#7b818c}.resume-item p{grid-column:1/-1;margin:1.3mm 0 0;color:var(--muted);font-size:7.1pt;line-height:1.45}
.resume-project{padding:2.8mm 0;border-bottom:1px solid var(--line)}.resume-project:last-child{border-bottom:0}.resume-project h3{margin:0;font:600 9pt/1 SpaceGrotesk,Arial,sans-serif;letter-spacing:-.035em}.resume-project p{margin:1mm 0 0;color:var(--muted);font-size:6.9pt;line-height:1.42}.resume-project .proof{margin-top:1.2mm;font:650 5.8pt/1.3 SpaceGrotesk,Arial,sans-serif;letter-spacing:.04em;color:var(--accent)}
.resume-list,.resume-tags{margin:0;padding:0;list-style:none}.resume-list{display:grid;gap:2.4mm}.resume-list li{font-size:7.3pt;line-height:1.35}.resume-list strong{display:block;font:600 7.8pt/1.2 SpaceGrotesk,Arial,sans-serif}.resume-list span{color:var(--muted)}.resume-tags{display:flex;flex-wrap:wrap;gap:1.4mm}.resume-tags li{padding:1.2mm 1.8mm;border:1px solid var(--line);border-radius:999px;font:650 5.9pt/1 SpaceGrotesk,Arial,sans-serif}.resume-foot{display:flex;justify-content:space-between;gap:10px;margin-top:6mm;padding-top:3mm;border-top:1px solid var(--line);color:#7b818c;font-size:5.8pt}
@media screen and (max-width:850px){html,body{background:var(--paper)}.resume-sheet{width:100%;min-height:0;margin:0;box-shadow:none;padding:clamp(22px,5vw,48px)}.resume-head{grid-template-columns:1fr}.resume-contact{text-align:left}.resume-grid{grid-template-columns:1fr}}@media screen and (max-width:430px){.resume-sheet{padding:20px}.resume-head h1{font-size:22pt}}@media print{html,body{background:var(--paper)}.resume-sheet{margin:0;box-shadow:none}.resume-item,.resume-project,.resume-section{break-inside:avoid}}@page{size:A4;margin:0}

.resume-nav { display: none; }

@media screen {
  :root {
    --ink: #171b29;
    --paper: #fffefa;
    --muted: #52586a;
    --line: #d8d9e1;
    --accent: #2543cc;
  }

  html, body { background: #f7f6f2; }

  .resume-nav, .resume-sheet {
    width: min(calc(100% - 2 * clamp(1rem, 4.6vw, 4rem)), 69rem);
    margin-inline: auto;
  }

  .resume-nav, .resume-nav > div, .resume-brand {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.7rem;
  }

  .resume-nav { justify-content: space-between; padding-block: 0.75rem; }
  .resume-nav a { min-height: 44px; color: var(--ink); text-decoration: none; }
  .resume-brand { font: 700 1.17rem/1 SpaceGrotesk, Arial, sans-serif; letter-spacing: -0.055em; }
  .resume-brand img { display: block; }

  .resume-nav .resume-language, .resume-nav .resume-download {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 0.45rem 0.75rem;
    border: 1px solid var(--line);
    border-radius: 0.45rem;
    font-size: 0.88rem;
    font-weight: 700;
  }

  .resume-nav .resume-download { background: var(--accent); border-color: var(--accent); color: white; }
  .resume-nav a:hover, .resume-contact a:hover { text-decoration: underline; text-underline-offset: 0.25em; }
  .resume-nav .resume-download:hover { background: #1b32a4; }
  :focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

  .resume-sheet {
    min-height: 0;
    margin-block: clamp(0.4rem, 2vw, 1.3rem) 2rem;
    padding: clamp(1rem, 5vw, 4.4rem);
    border: 1px solid var(--line);
    border-top: 3px solid var(--accent);
    border-radius: 0.875rem;
    box-shadow: none;
    overflow-wrap: anywhere;
  }

  .resume-head { grid-template-columns: minmax(0, 1fr) auto; gap: 1.2rem 2rem; padding-bottom: 1.5rem; }
  .resume-head h1 { font-size: clamp(2.1rem, 5.7vw, 5.4rem); line-height: 0.96; font-weight: 700; letter-spacing: -0.045em; }
  .resume-role { margin-top: 0.8rem; font-size: 0.78rem; line-height: 1.35; }
  .resume-summary { margin-top: 0.85rem; color: var(--muted); font-size: 1rem; }
  .resume-contact { gap: 0.45rem; font-size: 0.92rem; }
  .resume-contact a { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }

  .resume-grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 1.8rem clamp(1.4rem, 5vw, 3.5rem); margin-top: 1.55rem; }
  .resume-section { padding-top: 1.1rem; }
  .resume-section + .resume-section { margin-top: 1.35rem; }
  .resume-section h2 { margin-bottom: 0.9rem; font-size: 0.83rem; }
  .resume-item { grid-template-columns: minmax(0, 1fr) auto; gap: 0.36rem 0.8rem; }
  .resume-item + .resume-item { margin-top: 1.15rem; }
  .resume-item h3, .resume-project h3 { font-size: 1.22rem; }
  .resume-item .role, .resume-item p, .resume-project p { font-size: 0.94rem; }
  .resume-item .meta { color: var(--muted); font-size: 0.69rem; }
  .resume-item p { margin-top: 0; }
  .resume-project { padding-block: 0.8rem; }
  .resume-project .proof, .resume-foot { font-size: 0.75rem; }
  .resume-list { gap: 0.66rem; }
  .resume-list li, .resume-list strong { font-size: 0.92rem; }
  .resume-tags { gap: 0.32rem; }
  .resume-tags li { padding: 0.3em 0.6em; font-size: 0.77rem; }
  .resume-foot { flex-wrap: wrap; margin-top: 1.5rem; color: var(--muted); }
}

@media screen and (max-width: 700px) {
  .resume-head, .resume-grid { grid-template-columns: minmax(0, 1fr); }
  .resume-contact { text-align: left; }
}

@media screen and (max-width: 420px) {
  .resume-item { grid-template-columns: minmax(0, 1fr); }
  .resume-nav, .resume-nav > div { gap: 0.35rem; }
  .resume-nav .resume-brand img { width: 28px; height: 28px; }
}
