:root{--ink: #15181f;--muted: #59626f;--line: #e4e7eb;--ac: #0d9488;--ac-soft: #ecfdf9;--ac-line: #cdeee7;--ac-bright: #5cf2d6;--bg: #08090c;--font-name: "Space Grotesk", "Inter", system-ui, sans-serif;--font-body: "Inter", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{background:radial-gradient(120% 80% at 50% -10%,rgba(92,242,214,.07),transparent 60%),var(--bg);color:#c7cfdb;font-family:var(--font-body);font-size:10.5pt;line-height:1.42;-webkit-font-smoothing:antialiased;-webkit-print-color-adjust:exact;print-color-adjust:exact}a{color:inherit;text-decoration:none}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:210mm;margin:0 auto;padding:18px 6px}.tb-back{color:#9aa3b2;font-size:.95rem;transition:color .2s}.tb-back:hover{color:var(--ac-bright)}.tb-save{border:none;background:var(--ac-bright);color:#04120e;font:inherit;font-weight:600;padding:10px 20px;border-radius:999px;cursor:pointer;transition:transform .2s,box-shadow .2s}.tb-save:hover{transform:translateY(-1px);box-shadow:0 12px 30px -10px #5cf2d699}.sheet{width:210mm;min-height:297mm;margin:0 auto 48px;padding:15mm 16mm;background:#fff;color:var(--ink);border-radius:6px;box-shadow:0 30px 80px -20px #000000bf,0 0 0 1px #5cf2d61a}.dl{font-family:var(--font-mono);font-size:8pt;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);text-align:right;margin-bottom:10px}.dl-link{color:var(--ac)}.id{display:flex;align-items:center;gap:16px;padding-bottom:14px;border-bottom:2px solid var(--ac)}.avatar{width:62px;height:62px;border-radius:50%;object-fit:cover;flex:0 0 auto}.id-main{flex:1 1 auto}.id-main h1{font-family:var(--font-name);font-size:21pt;font-weight:700;line-height:1.1;letter-spacing:-.02em}.id-main .dot{color:var(--ac)}.id-sub{color:var(--muted);font-size:9.5pt;margin-top:3px}.id-sub .role{font-family:var(--font-mono);color:var(--ac);font-weight:500}.id-sub .sep{margin:0 6px;opacity:.5}.id-contact{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-family:var(--font-mono);font-size:8.5pt;color:var(--muted);flex:0 0 auto}.id-contact a:hover{color:var(--ac)}.block{margin-top:15px;break-inside:avoid}.block h2{font-family:var(--font-mono);font-size:9pt;text-transform:uppercase;letter-spacing:.1em;color:var(--ac);margin-bottom:7px}.summary{max-width:66ch}.skills{list-style:none;display:flex;flex-wrap:wrap;gap:6px}.skills li{font-family:var(--font-mono);font-size:8.5pt;padding:3px 9px;border:1px solid var(--ac-line);background:var(--ac-soft);border-radius:999px;color:#0b6b62}.projects{list-style:none;display:flex;flex-direction:column;gap:9px}.proj{break-inside:avoid}.proj-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.proj-name{font-family:var(--font-name);font-weight:600;font-size:11pt}.proj-meta{font-family:var(--font-mono);font-size:8.5pt;color:var(--muted);white-space:nowrap;flex:0 0 auto}.proj-blurb{color:#333a45;font-size:9.5pt;margin-top:1px}.edu{list-style:none;display:flex;flex-direction:column;gap:8px}.edu-row{display:flex;align-items:center;gap:10px;break-inside:avoid}.flag{width:22px;height:15px;object-fit:cover;border-radius:2px;flex:0 0 auto;box-shadow:0 0 0 1px var(--line)}.edu-main{flex:1 1 auto;display:flex;flex-direction:column}.edu-deg{font-family:var(--font-name);font-weight:600;font-size:10pt}.edu-school{color:var(--muted);font-size:9pt}.edu-year{font-family:var(--font-mono);font-size:9pt;color:var(--ac);flex:0 0 auto}.cv-note{margin-top:18px;padding-top:10px;border-top:1px solid var(--line);text-align:center;font-size:9pt;color:var(--muted)}.cv-note a{color:var(--ac);font-weight:500}@media(max-width:800px){.sheet{width:100%;padding:22px;border-radius:0}.toolbar{max-width:100%;padding:14px 12px}.id{flex-wrap:wrap}.id-contact{align-items:flex-start}}@media print{@page{size:A4;margin:12mm}html,body{background:#fff}.toolbar{display:none}.sheet{width:auto;min-height:0;margin:0;padding:0;border-radius:0;box-shadow:none}}
