.resume-page{--resume-paper: #ffffff;--resume-canvas: #e7e5e1;--resume-surface: #efede9;--resume-ink: #1b1a18;--resume-muted: #64615d;--resume-rule: #d6d2cc;--resume-accent: #c43b2b;min-height:100vh;padding:28px 20px 64px;background:var(--resume-canvas);color:var(--resume-ink);font-family:Commissioner,sans-serif;font-size:13px;line-height:1.5}.resume-page *,.resume-page *:before,.resume-page *:after{box-sizing:border-box}.resume-page *{margin:0;padding:0}.resume-actions{display:flex;width:210mm;margin:0 auto 12px;justify-content:flex-end}.resume-download-button{display:inline-flex;min-height:40px;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--resume-ink);border-radius:2px;background:var(--resume-paper);box-shadow:none;color:var(--resume-ink);cursor:pointer;font-family:Fragment Mono,monospace;font-size:11px;letter-spacing:.01em;transition:background-color .12s ease,color .12s ease;-webkit-user-select:none;user-select:none}.resume-download-button:hover{background:var(--resume-ink);color:var(--resume-paper)}.resume-download-button:focus-visible{outline:2px solid var(--resume-accent);outline-offset:3px}.resume-download-button:disabled{cursor:wait;opacity:.65}.resume-container{display:grid;grid-template-columns:7fr 3fr;align-items:stretch;width:210mm;min-height:297mm;margin:0 auto;overflow:hidden;border:1px solid var(--resume-rule);background:var(--resume-paper);box-shadow:0 18px 50px #1b1a181a}.main-content{min-width:0;padding:12mm 10mm;background:var(--resume-paper)}.resume-header{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:start;gap:18px;margin-bottom:28px;padding-top:14px;border-top:3px solid var(--resume-accent)}.resume-avatar{display:block;width:72px;height:72px;border:1px solid var(--resume-rule);border-radius:2px;object-fit:cover}.header-text{align-self:center;min-width:0}.header-text h1{color:var(--resume-ink);font-size:30px;font-weight:700;letter-spacing:-.035em;line-height:1}.header-text h2{max-width:34rem;margin-top:8px;color:var(--resume-muted);font-size:13px;font-weight:500;letter-spacing:0;line-height:1.4;text-wrap:balance}.resume-page h3{margin:26px 0 13px;padding-top:9px;border-top:1px solid var(--resume-rule);color:var(--resume-ink);font-size:16px;font-weight:700;letter-spacing:-.015em;line-height:1.25}.profile-section h3{margin-top:0}.resume-page p{margin-bottom:8px}.resume-page ul{margin:0 0 12px 17px;list-style:disc}.resume-page li{margin-bottom:4px;padding-left:2px}.resume-page a{color:inherit;text-decoration:none}.resume-page strong{font-weight:700}.profile-section ul{margin-bottom:20px}.job-entry{margin-bottom:21px;padding-bottom:19px;border-bottom:1px solid var(--resume-rule)}.job-entry:last-child,.project-entry:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}.job-header{color:var(--resume-ink);font-size:14px;font-weight:700;line-height:1.35}.job-date,.project-year{margin:4px 0 8px;color:var(--resume-accent);font-family:Fragment Mono,monospace;font-size:9.5px;letter-spacing:.01em;line-height:1.4;text-transform:uppercase}.job-desc{max-width:70ch;margin-bottom:9px;color:var(--resume-muted)}.project-entry{margin-bottom:23px;padding-bottom:21px;border-bottom:1px solid var(--resume-rule)}.project-title{color:var(--resume-ink);font-size:14px;font-weight:700;line-height:1.35}.project-details p,.project-details ul{margin-bottom:8px}.project-tech{margin-top:9px;color:var(--resume-muted);font-size:11px;line-height:1.45}.education-entry{margin-bottom:10px}.degree{color:var(--resume-ink);font-weight:700}.sidebar{min-width:0;padding:12mm 7mm;border-left:1px solid var(--resume-rule);background:var(--resume-surface);color:var(--resume-ink)}.sidebar section{min-width:0;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--resume-rule)}.sidebar section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}.sidebar h3{margin:0 0 14px;padding:0;border:0;color:var(--resume-ink);font-size:13px;letter-spacing:-.01em}.contact-info{display:grid;gap:6px;color:var(--resume-muted);font-family:Fragment Mono,monospace;font-size:8.5px;line-height:1.45;overflow-wrap:anywhere}.contact-info h3{font-family:Commissioner,sans-serif}.contact-info a,.contact-info span{display:block}.contact-info a:hover{color:var(--resume-accent);text-decoration:underline;text-underline-offset:2px}.skill-category{margin-bottom:12px}.skill-category:last-child{margin-bottom:0}.skill-category-title{margin-bottom:5px;color:var(--resume-accent);font-family:Fragment Mono,monospace;font-size:8.5px;font-weight:400;letter-spacing:.01em;line-height:1.35;text-transform:uppercase}.skill-list,.cert-list{color:var(--resume-muted);font-size:9.5px;line-height:1.4}.cert-list p{margin:0;padding:4px 0;border-top:1px solid var(--resume-rule)}.cert-list p:first-child{padding-top:0;border-top:0}@page{size:A4;margin:10mm 0}@media print{html,body{background:#fff!important}.resume-actions{display:none}.resume-page{min-height:auto;padding:0;background:#fff;font-size:10pt}.resume-container{width:auto;min-height:auto;margin:0;overflow:visible;border:0;box-shadow:none}.main-content{padding:0 10mm}.resume-header,.job-entry,.education-entry,.skill-category{break-inside:avoid}.resume-page h3,.job-header,.project-title{break-after:avoid}.resume-page p,.resume-page li{orphans:3;widows:3}.sidebar{padding:0 6mm;break-inside:auto;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.portfolio-page{--background: #f7f7f5;--surface: #ffffff;--surface-alt: #efede9;--foreground: #1b1a18;--muted-foreground: #64615d;--border: #d6d2cc;--accent: #c43b2b;--accent-contrast: #ffffff;background:var(--background);color:var(--foreground);font-family:Commissioner,sans-serif}.dark .portfolio-page{--background: #171614;--surface: #211f1c;--surface-alt: #292722;--foreground: #f5f3ef;--muted-foreground: #aaa59d;--border: #3b3832;--accent: #e95a43;--accent-contrast: #171614}body{font-family:Commissioner,sans-serif}.site-nav{background:color-mix(in srgb,var(--background) 92%,transparent);border-bottom:1px solid transparent;color:var(--foreground)}.site-nav.is-scrolled{border-bottom-color:var(--border)}.brand-wordmark{color:var(--foreground);font-weight:700;letter-spacing:-.03em;position:relative}.brand-wordmark:after{background:var(--accent);content:"";height:2px;left:0;position:absolute;top:100%;width:1.75rem}.registration-field{border-right:1px solid var(--border);border-top:1px solid var(--border);inset:5rem 1rem auto;height:1rem;pointer-events:none;position:absolute}.registration-field:after{background:var(--accent);content:"";height:1rem;position:absolute;right:2rem;top:-1px;width:2px}.dossier-panel{background:var(--surface);border:1px solid var(--border);border-radius:4px;box-shadow:none}.meta-label{align-items:center;background:var(--surface-alt);border:1px solid var(--border);border-radius:2px;color:var(--muted-foreground);display:inline-flex;font-family:Fragment Mono,monospace;font-size:.75rem;letter-spacing:.04em;line-height:1.25rem;padding:0 .4rem;text-transform:uppercase}.primary-action,.secondary-action{border:1px solid var(--border);border-radius:6px;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.primary-action{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.primary-action:hover{background:var(--foreground);border-color:var(--foreground)}.secondary-action{background:var(--surface);color:var(--foreground)}.secondary-action:hover{border-color:var(--accent);color:var(--accent)}.hero-actions{flex-wrap:wrap}.hero-actions>*{white-space:nowrap}.contact-section{background:var(--surface-alt);border-block:1px solid var(--border);color:var(--foreground)}.section-heading{color:var(--foreground);text-wrap:balance}.section-copy{color:var(--muted-foreground);text-wrap:pretty}.portrait-frame{background:var(--surface);border:1px solid var(--foreground);border-radius:6px;position:relative}.portrait-frame:after{border-right:2px solid var(--accent);border-top:2px solid var(--accent);content:"";inset:-.75rem -.75rem auto auto;height:45%;position:absolute;width:45%;z-index:-1}.portrait-image{filter:none}@media(hover:hover)and (pointer:fine){.portrait-image{filter:blur(2px);transition:filter .16s ease}.portrait-frame:hover .portrait-image,.portrait-frame:focus-within .portrait-image{filter:blur(0)}}@media(prefers-reduced-motion:reduce){.portfolio-page *,.portfolio-page *:before,.portfolio-page *:after{scroll-behavior:auto!important;transition-duration:0s!important}}
