@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Space+Grotesk:wght@500;600;700&display=swap";:root{color-scheme:light;--color-bg-primary: #faf8f4;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f1eee7;--color-surface-strong: #1b1914;--color-text-primary: #14120c;--color-text-secondary: #49443c;--color-text-muted: #7b7266;--color-accent: #916319;--color-accent-hover: #775010;--color-on-accent: #ffffff;--color-accent-soft: rgba(192, 139, 48, .12);--color-accent-glow: rgba(192, 139, 48, .24);--color-border: #ddd8ce;--color-border-light: #c9c1b4;--color-shadow: rgba(20, 18, 12, .08);--color-warning: #945018;--color-success: #24734f;--shadow-sm: 0 1px 3px rgba(20, 18, 12, .06);--shadow-md: 0 4px 18px rgba(20, 18, 12, .08);--shadow-lg: 0 18px 46px rgba(20, 18, 12, .12);--font-family-primary: "DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-heading: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--max-width-sm: 640px;--max-width-md: 768px;--max-width-lg: 1024px;--max-width-xl: 1200px;--max-width-2xl: 1536px;--transition-fast: .2s ease;--transition-normal: .35s ease;--transition-slow: .5s ease;--radius-sm: .35rem;--radius-md: .7rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-full: 9999px}[data-theme=dark]{color-scheme:dark;--color-bg-primary: #14120c;--color-bg-secondary: #23201a;--color-bg-tertiary: #1b1914;--color-surface-strong: #0d0c09;--color-text-primary: #f5f0e7;--color-text-secondary: #c7beae;--color-text-muted: #a29888;--color-accent: #d4a853;--color-accent-hover: #e0b866;--color-on-accent: #14120c;--color-accent-soft: rgba(212, 168, 83, .12);--color-accent-glow: rgba(212, 168, 83, .2);--color-border: #3a352d;--color-border-light: #544c40;--color-shadow: rgba(0, 0, 0, .32);--color-warning: #d69742;--color-success: #67b88f;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 4px 18px rgba(0, 0, 0, .32);--shadow-lg: 0 18px 46px rgba(0, 0, 0, .42)}body{background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:background-color var(--transition-normal),color var(--transition-normal)}[data-theme=dark] .card{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}[data-theme=dark] .card:hover{box-shadow:var(--shadow-md)}[data-theme=dark] .profile-photo{border:3px solid var(--color-accent);box-shadow:0 0 24px var(--color-accent-glow)}[data-theme=dark] .progress-bar{background-color:var(--color-bg-tertiary)}[data-theme=dark] .progress-fill{background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover))}[data-theme=light] body{background-color:var(--color-bg-primary);color:var(--color-text-primary)}[data-theme=light] .card{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}[data-theme=light] .card:hover{box-shadow:var(--shadow-md)}[data-theme=light] .profile-photo{border:3px solid var(--color-accent);box-shadow:0 0 20px var(--color-accent-glow)}[data-theme=light] .progress-bar{background-color:var(--color-bg-tertiary)}[data-theme=light] .progress-fill{background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover))}#theme-toggle{position:fixed;top:var(--spacing-md);right:var(--spacing-md);width:42px;height:42px;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-normal);z-index:1000;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-lg);box-shadow:var(--shadow-sm)}#theme-toggle:hover{border-color:var(--color-accent);background-color:var(--color-accent-soft);color:var(--color-accent);transform:translateY(-1px);box-shadow:var(--shadow-md)}#theme-toggle:focus{outline:2px solid var(--color-accent);outline-offset:2px}#theme-toggle:active{transform:translateY(0)}.toggle-icon{transition:transform var(--transition-normal);font-size:var(--font-size-xl)}@media(max-width:768px){#theme-toggle{width:42px;height:42px;top:var(--spacing-md);right:var(--spacing-md);font-size:var(--font-size-base)}.toggle-icon{font-size:var(--font-size-lg)}}.sidebar{grid-area:sidebar;min-width:0;position:sticky;top:5rem}.profile-section{text-align:center}.profile-photo-container{margin-bottom:var(--spacing-lg)}.profile-photo{width:160px;height:160px;border-radius:var(--radius-full);object-fit:cover;margin:0 auto;display:block;transition:transform var(--transition-normal)}.profile-photo:hover{transform:scale(1.025)}.personal-data{text-align:left}.personal-data h2{font-size:var(--font-size-xl);text-align:center;margin-bottom:var(--spacing-lg);color:var(--color-accent)}.contact-item{margin-bottom:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.contact-item:hover{background-color:var(--color-bg-tertiary)}.contact-item strong{display:inline;color:var(--color-text-primary);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px}.contact-item a,.contact-item span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.projects-section{margin-top:var(--spacing-lg)}.projects-section h3{text-align:center;margin-bottom:var(--spacing-md);color:var(--color-accent)}.project-group-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin:var(--spacing-md) 0 var(--spacing-sm)}.project-divider{border:none;border-top:1px solid var(--color-border);margin:var(--spacing-lg) 0}.project-item{background-color:var(--color-bg-tertiary);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-border);transition:all var(--transition-normal)}.project-item:hover{border-color:var(--color-accent)}.project-item.clickable{cursor:pointer}.project-item.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.project-item.clickable:focus{outline:2px solid var(--color-accent);outline-offset:2px}.project-item h4{color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-md)}.project-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.project-links{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.project-link{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-accent);color:var(--color-on-accent);text-decoration:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;transition:all var(--transition-normal)}.project-link:hover{color:var(--color-on-accent);background-color:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 2px 4px #0003}.project-link:focus{outline:2px solid var(--color-accent);outline-offset:2px}.project-status{display:flex;justify-content:flex-end}.status-badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-badge.ongoing{background-color:var(--color-warning);color:var(--color-bg-primary)}.status-badge.completed{background-color:var(--color-success);color:var(--color-bg-primary)}@media(max-width:1024px){.sidebar{min-width:250px}.profile-photo{width:150px;height:150px}}@media(max-width:860px){.sidebar{min-width:100%;position:static;display:contents}.profile-section{order:1!important}.projects-section{order:4!important;margin-top:0}.profile-photo{width:120px;height:120px}.personal-data,.contact-item,.projects-section h3{text-align:center}}.main-content{grid-area:main;min-width:0}.cv-grid{display:grid;grid-template-columns:260px minmax(0,1fr) 260px;grid-template-areas:"sidebar main skills";gap:var(--spacing-lg);align-items:start}.timeline{position:relative;padding-left:var(--spacing-lg)}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--color-accent),var(--color-border))}.timeline-item{position:relative;margin-bottom:var(--spacing-xl);padding-left:var(--spacing-lg)}.timeline-item:before{content:"";position:absolute;left:-6px;top:var(--spacing-sm);width:12px;height:12px;border-radius:var(--radius-full);background-color:var(--color-accent);border:2px solid var(--color-bg-primary)}.timeline-date{font-size:var(--font-size-sm);color:var(--color-accent);font-weight:600;margin-bottom:var(--spacing-xs)}.timeline-content h3{margin-bottom:var(--spacing-xs);color:var(--color-text-primary)}.timeline-content h4{font-size:var(--font-size-base);color:var(--color-accent);margin-bottom:var(--spacing-sm);font-weight:500}.timeline-content p{margin-bottom:0;color:var(--color-text-secondary)}.main-content .projects-section{margin-top:0}.tech-stack-section p{color:var(--color-text-secondary)}.tech-stack-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);list-style:none;margin:0;padding:0}.tech-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.tech-icon{width:16px;height:16px;display:block;color:var(--color-accent);flex-shrink:0}@media(max-width:1024px){.cv-grid{grid-template-columns:220px minmax(0,1fr) 220px;gap:var(--spacing-md)}}@media(max-width:860px){.cv-grid{display:flex;flex-direction:column;gap:var(--spacing-lg)}.main-content{display:contents}.summary-section{order:2!important}.tech-stack-section{order:3!important}.timeline-section{order:5!important}.timeline,.timeline-item{padding-left:var(--spacing-md)}}@media(max-width:480px){.cv-grid{gap:var(--spacing-md)}.timeline,.timeline-item{padding-left:var(--spacing-sm)}.timeline-item:before{left:-4px;width:8px;height:8px}}.skills-sidebar{grid-area:skills;min-width:0;position:sticky;top:5rem}.skills-section{margin-bottom:var(--spacing-xl)}.skills-section h3{font-size:var(--font-size-lg);color:var(--color-accent);margin-bottom:var(--spacing-lg);text-align:center;border-bottom:2px solid var(--color-border);padding-bottom:var(--spacing-sm)}.skill-item{margin-bottom:var(--spacing-lg)}.skill-name{display:block;font-weight:500;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.progress-bar{width:100%;height:8px;background-color:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--spacing-xs);position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover));border-radius:var(--radius-full);transition:width 1s ease-in-out;position:relative;min-width:0}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skill-level{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:500;text-align:right}.skill-item .progress-fill{width:0%}.skill-90{animation:fillTo90 1.5s ease-out .1s forwards}.skill-85{animation:fillTo85 1.5s ease-out .2s forwards}.skill-75{animation:fillTo75 1.5s ease-out .3s forwards}.skill-88{animation:fillTo88 1.5s ease-out .4s forwards}.skill-82{animation:fillTo82 1.5s ease-out .5s forwards}.skill-80{animation:fillTo80 1.5s ease-out .6s forwards}.skill-95{animation:fillTo95 1.5s ease-out .7s forwards}.skill-100{animation:fillTo100 1.5s ease-out .8s forwards}.skill-60{animation:fillTo60 1.5s ease-out .9s forwards}@keyframes fillTo90{0%{width:0%}to{width:90%}}@keyframes fillTo85{0%{width:0%}to{width:85%}}@keyframes fillTo75{0%{width:0%}to{width:75%}}@keyframes fillTo88{0%{width:0%}to{width:88%}}@keyframes fillTo82{0%{width:0%}to{width:82%}}@keyframes fillTo80{0%{width:0%}to{width:80%}}@keyframes fillTo95{0%{width:0%}to{width:95%}}@keyframes fillTo100{0%{width:0%}to{width:100%}}@keyframes fillTo60{0%{width:0%}to{width:60%}}.skill-70{animation:fillTo70 1.5s ease-out .1s forwards}.skill-65{animation:fillTo65 1.5s ease-out .2s forwards}.skill-50{animation:fillTo50 1.5s ease-out .3s forwards}.skill-45{animation:fillTo45 1.5s ease-out .4s forwards}.skill-40{animation:fillTo40 1.5s ease-out .5s forwards}.skill-30{animation:fillTo30 1.5s ease-out .6s forwards}.skill-20{animation:fillTo20 1.5s ease-out .7s forwards}.skill-10{animation:fillTo10 1.5s ease-out .8s forwards}@keyframes fillTo70{0%{width:0%}to{width:70%}}@keyframes fillTo65{0%{width:0%}to{width:65%}}@keyframes fillTo50{0%{width:0%}to{width:50%}}@keyframes fillTo45{0%{width:0%}to{width:45%}}@keyframes fillTo40{0%{width:0%}to{width:40%}}@keyframes fillTo30{0%{width:0%}to{width:30%}}@keyframes fillTo20{0%{width:0%}to{width:20%}}@keyframes fillTo10{0%{width:0%}to{width:10%}}@media(max-width:1024px){.skills-sidebar{min-width:250px}}@media(max-width:860px){.skills-sidebar{min-width:100%;position:static;display:contents}.languages-card{order:6!important}.skills-section h3{text-align:left}}@media(max-width:480px){.progress-bar{height:6px}.skill-name{font-size:var(--font-size-xs)}.skill-level{font-size:.7rem}}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{font-family:var(--font-family-primary);font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-primary);background:linear-gradient(color-mix(in srgb,var(--color-text-secondary) 5.5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--color-text-secondary) 5.5%,transparent) 1px,transparent 1px),var(--color-bg-primary);background-size:54px 54px,54px 54px,auto;transition:background-color var(--transition-normal),color var(--transition-normal);min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading);font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md);color:var(--color-text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}.container{max-width:var(--max-width-xl);margin:0 auto;padding:6rem var(--spacing-lg) var(--spacing-3xl)}.card{background:color-mix(in srgb,var(--color-bg-secondary) 94%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal),transform var(--transition-normal),border-color var(--transition-normal)}.card:hover{border-color:color-mix(in srgb,var(--color-accent) 45%,var(--color-border));box-shadow:var(--shadow-md);transform:translateY(-2px)}.cv-header{max-width:760px;margin-inline:auto}.cv-header h1{margin:.65rem 0 .55rem;font-size:clamp(2.5rem,6vw,4.75rem);letter-spacing:-.055em}.cv-header p{font-size:clamp(1rem,2vw,1.2rem)}.cv-eyebrow{display:inline-flex;padding:.4rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.09em;text-transform:uppercase}#cv-content.pdf-export{width:1200px;max-width:none;margin:0;padding:24px;background:#fff}#cv-content.pdf-export .cv-header{max-width:none;margin-bottom:18px}#cv-content.pdf-export .cv-header h1{margin:8px 0 4px;font-size:48px}#cv-content.pdf-export .cv-header p{margin-bottom:0;font-size:16px}#cv-content.pdf-export .cv-grid{display:grid;grid-template-columns:230px minmax(0,1fr);grid-template-areas:"sidebar main" "skills main";gap:14px}#cv-content.pdf-export .sidebar,#cv-content.pdf-export .skills-sidebar{position:static;min-width:0}#cv-content.pdf-export .sidebar{display:block}#cv-content.pdf-export .main-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}#cv-content.pdf-export .summary-section{grid-column:1 / -1}#cv-content.pdf-export .card{margin-bottom:0;padding:14px;border-radius:10px;box-shadow:none;transform:none}#cv-content.pdf-export .skills-sidebar{display:grid;gap:14px}#cv-content.pdf-export .profile-photo{width:112px;height:112px}#cv-content.pdf-export .profile-photo-container,#cv-content.pdf-export .personal-data h2,#cv-content.pdf-export .contact-item,#cv-content.pdf-export .skill-item,#cv-content.pdf-export .project-item,#cv-content.pdf-export .timeline-item{margin-bottom:10px}#cv-content.pdf-export .project-item{padding:10px}#cv-content.pdf-export .project-divider{margin:12px 0}#cv-content.pdf-export .timeline,#cv-content.pdf-export .timeline-item{padding-left:12px}#cv-content.pdf-export h2{font-size:22px}#cv-content.pdf-export h3{font-size:18px}#cv-content.pdf-export p{margin-bottom:10px}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mb-5{margin-bottom:var(--spacing-xl)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mt-5{margin-top:var(--spacing-xl)}@media(max-width:768px){.container{padding:5.5rem var(--spacing-md) var(--spacing-xl)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}.card{padding:var(--spacing-md)}}@media(max-width:480px){.container{padding-inline:.75rem}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}}button.svelte-1cmi4dh{position:fixed;top:var(--spacing-md);right:var(--spacing-md);z-index:1000;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius-md);padding:0;cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}button.svelte-1cmi4dh:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-accent);color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}button.svelte-1cmi4dh:focus{outline:2px solid var(--color-accent);outline-offset:2px}.toggle-icon.svelte-1cmi4dh{display:grid;place-items:center}.back.svelte-smlnbd{position:fixed;top:calc(var(--spacing-md));left:var(--spacing-md);z-index:1000;display:grid;place-items:center;cursor:pointer;width:42px;height:42px;border-radius:var(--radius-md);padding:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),background-color var(--transition-normal),box-shadow var(--transition-normal),color var(--transition-normal)}.back.svelte-smlnbd:hover{background:var(--color-bg-tertiary);border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.back.svelte-smlnbd:active{transform:translateY(0)}.back.svelte-smlnbd:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.icon.svelte-smlnbd{display:block;width:1.35rem;height:1.35rem;stroke:var(--color-accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.download-error.svelte-z34l3z{position:fixed;top:65px;right:16px;max-width:calc(100% - 32px);padding:12px;background:var(--color-bg-secondary);color:var(--color-text-primary);z-index:1001}.download-cv.svelte-z34l3z{position:fixed;top:var(--spacing-md);right:calc(var(--spacing-md) + 42px + var(--spacing-sm));z-index:1000;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);cursor:pointer;width:auto;height:42px;border-radius:var(--radius-md);padding:0 var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),background-color var(--transition-normal),box-shadow var(--transition-normal),color var(--transition-normal)}.download-cv.svelte-z34l3z:hover:not(:disabled){background:var(--color-bg-tertiary);border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.download-cv.svelte-z34l3z:active:not(:disabled){transform:translateY(0)}.download-cv.svelte-z34l3z:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.download-cv.svelte-z34l3z:disabled{cursor:wait;opacity:.7}.download-cv.svelte-z34l3z svg{display:block;width:1.35rem;height:1.35rem;color:var(--color-accent)}.download-label.svelte-z34l3z{color:var(--color-text-primary);font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.spinning.svelte-z34l3z{display:grid;place-items:center;animation:svelte-z34l3z-spin 1s linear infinite}@keyframes svelte-z34l3z-spin{to{transform:rotate(360deg)}}.gallery-group.svelte-1adnqlh+.gallery-group:where(.svelte-1adnqlh){margin-top:3rem}.gallery-group.svelte-1adnqlh h3:where(.svelte-1adnqlh){font-size:1.5rem;margin-bottom:1.5rem;letter-spacing:0}.gallery-grid.svelte-1adnqlh{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.gallery-card.svelte-1adnqlh{min-width:0;overflow:hidden;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-tertiary);display:flex;flex-direction:column}.gallery-card.svelte-1adnqlh{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.gallery-card.svelte-1adnqlh:focus-within{transform:translateY(-4px);border-color:var(--color-accent);box-shadow:var(--shadow-md)}@media(hover:hover){.gallery-card.svelte-1adnqlh:hover{transform:translateY(-4px);border-color:var(--color-accent);box-shadow:var(--shadow-md)}}@media(prefers-reduced-motion:reduce){.gallery-card.svelte-1adnqlh{transition:none}.gallery-card.svelte-1adnqlh:hover,.gallery-card.svelte-1adnqlh:focus-within{transform:none}}.project-image.svelte-1adnqlh{position:relative;aspect-ratio:8 / 5;width:100%;display:grid;place-items:center;background:var(--color-bg-secondary);color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.project-image.svelte-1adnqlh img:where(.svelte-1adnqlh){position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}.gallery-caption.svelte-1adnqlh{padding:1.25rem;display:flex;flex-direction:column;flex:1}.gallery-caption.svelte-1adnqlh h4:where(.svelte-1adnqlh){font-size:1.125rem;margin-bottom:.5rem}.gallery-caption.svelte-1adnqlh p:where(.svelte-1adnqlh){font-size:.875rem;line-height:1.6;margin-bottom:0}.gallery-links.svelte-1adnqlh{display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding-top:1rem;margin-top:auto}.gallery-links.svelte-1adnqlh a:where(.svelte-1adnqlh){display:inline-flex;align-items:center;gap:.25rem;min-height:28px;font-size:.875rem;font-weight:600}.gallery-links.svelte-1adnqlh a:where(.svelte-1adnqlh):hover{text-decoration:underline;text-underline-offset:3px}@media(max-width:900px){.gallery-grid.svelte-1adnqlh{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.gallery-grid.svelte-1adnqlh{grid-template-columns:minmax(0,1fr)}.gallery-group.svelte-1adnqlh h3:where(.svelte-1adnqlh){font-size:1.25rem}}.landing.svelte-1ajh10u{width:min(1200px,calc(100% - 48px));margin-inline:auto}.landing-nav.svelte-1ajh10u,.landing-footer.svelte-1ajh10u{display:flex;align-items:center;justify-content:space-between;gap:1rem}.landing-nav.svelte-1ajh10u{min-height:76px;padding-right:62px;border-bottom:1px solid var(--color-border)}.personal-brand.svelte-1ajh10u{font-family:var(--font-family-heading);font-size:1.08rem;font-weight:700}.personal-brand.svelte-1ajh10u span:where(.svelte-1ajh10u){color:var(--color-text-primary)}.hero.svelte-1ajh10u{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:3rem;align-items:center;padding:4rem 0}.eyebrow.svelte-1ajh10u{color:var(--color-accent);font-size:1rem;font-weight:700;margin-bottom:1rem}h1.svelte-1ajh10u{margin:0;font-size:4.75rem;line-height:1.05;letter-spacing:0}h1.svelte-1ajh10u span:where(.svelte-1ajh10u){color:var(--color-accent)}.hero-subtitle.svelte-1ajh10u{max-width:600px;margin:1.8rem 0 0;color:var(--color-text-secondary);font-size:1.15rem;line-height:1.75}.hero-photo.svelte-1ajh10u{width:100%;max-width:360px;aspect-ratio:1;overflow:hidden;border-radius:8px;justify-self:end}.hero-photo.svelte-1ajh10u img:where(.svelte-1ajh10u){display:block;width:100%;height:100%;object-fit:cover;object-position:53% 100%;transform:scale(1.6);transform-origin:53% 60%}.hero-actions.svelte-1ajh10u{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.primary-action.svelte-1ajh10u,.secondary-action.svelte-1ajh10u{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;padding:.78rem 1.15rem;border-radius:6px;font-weight:700}.primary-action.svelte-1ajh10u{border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.primary-action.svelte-1ajh10u:hover{background:var(--color-accent-hover)}.secondary-action.svelte-1ajh10u{border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary)}.secondary-action.svelte-1ajh10u:hover{border-color:var(--color-accent)}.secondary-action.svelte-1ajh10u svg{color:var(--color-accent);flex-shrink:0}.portfolio-section.svelte-1ajh10u{padding:2.5rem 0;border-top:1px solid var(--color-border);min-width:0;scroll-margin-top:1rem}.portfolio-section.svelte-1ajh10u .card{padding:0;margin:0;border:0;background:none;box-shadow:none;transform:none}.landing-footer.svelte-1ajh10u{min-height:72px;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-sm)}@media(max-width:900px){h1.svelte-1ajh10u{font-size:3.5rem}.hero.svelte-1ajh10u{gap:2rem}}@media(max-width:640px){.landing.svelte-1ajh10u{width:calc(100% - 28px)}.hero.svelte-1ajh10u{grid-template-columns:1fr;gap:2rem;padding:2.5rem 0}h1.svelte-1ajh10u{font-size:2.75rem}.hero-photo.svelte-1ajh10u{max-width:260px;justify-self:start}.landing-footer.svelte-1ajh10u{align-items:flex-start;flex-direction:column;justify-content:center;gap:.2rem}}
