:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#020202;--panel:#131313b3;--panel-strong:#1c1c1cd1;--text:#f7f7f7;--muted:#a7a7a7;--dim:#6e6e6e;--line:#ffffff24;--line-strong:#ffffff47;--surface-subtle:#ffffff0b;--surface-card:#fff1;--surface-raised:#131313f5;--shadow-soft:0 18px 56px #00000047;--glow:0 0 32px #ffffff24;--focus-ring:0 0 0 2px #050505, 0 0 0 4px #ffffffeb;--radius-control:10px;--radius-card:14px;--radius-dialog:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--duration-fast:.16s;--duration-base:.24s;--duration-reveal:.6s;--ease-out:cubic-bezier(.16, 1, .3, 1);--max:1180px;background:var(--bg);color:var(--text);scroll-behavior:smooth;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(circle at 18% 12%,#ffffff0b,#0000 24rem),radial-gradient(circle at 88% 38%,#ffffff08,#0000 20rem),#020202;margin:0;line-height:1.5;overflow-x:hidden}html{scroll-padding-top:var(--space-9)}body:before,body:after{z-index:-2;pointer-events:none;content:"";position:fixed;inset:0}body:before{opacity:.55;background:radial-gradient(circle at 18% 32%,#ffffff0a,#0000 18rem),radial-gradient(circle at 80% 54%,#ffffff09,#0000 22rem),radial-gradient(circle at 45% 82%,#ffffff06,#0000 19rem);animation:18s ease-in-out infinite alternate ambient-drift}body:after{z-index:1000;mix-blend-mode:screen;opacity:.16;background:radial-gradient(#0000 48%,#00000080 100%),linear-gradient(#ffffff02 1px,#0000 1px) 0 0/34px 34px,linear-gradient(90deg,#ffffff02 1px,#0000 1px) 0 0/34px 34px}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{box-shadow:var(--focus-ring);outline:none}section[id]{scroll-margin-top:var(--space-9)}img{max-width:100%;display:block}.section-shell{z-index:0;width:min(var(--max), calc(100% - 48px));margin:0 auto;position:relative}.section-shell:not(.hero):before{z-index:-1;filter:blur(8px);opacity:.42;pointer-events:none;content:"";background:radial-gradient(circle at 24%,#ffffff08,#0000 24rem),radial-gradient(circle at 78% 56%,#ffffff06,#0000 22rem);border-radius:999px;height:260px;animation:16s ease-in-out infinite alternate section-glow-drift;position:absolute;inset:-80px 0 auto}.scroll-reveal-section{overflow:clip}.navbar{z-index:50;width:min(var(--max), calc(100% - 48px));height:72px;transition:background var(--duration-fast) ease, border-color var(--duration-fast) ease, backdrop-filter var(--duration-fast) ease;border:1px solid #0000;border-radius:999px;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 18px;display:grid;position:fixed;top:0;left:50%;transform:none}.navbar.is-scrolled{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#050505b8}.brand{letter-spacing:0;justify-self:start;font-size:27px;font-weight:800}.nav-links{color:#e8e8e8;justify-content:center;gap:34px;font-size:13px;display:flex}.nav-links a{align-items:center;min-height:44px;padding:0;display:inline-flex;position:relative}.nav-links a:after{transform-origin:50%;height:1px;transition:transform var(--duration-fast) ease;content:"";background:#fff;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav-links a:hover:after,.nav-links a[aria-current=page]:after{transform:scaleX(1)}.resume-button,.button,.text-button,.all-projects{justify-content:center;align-items:center;gap:10px;display:inline-flex}.resume-button{border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface-subtle);color:#fff;min-height:42px;transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease, background var(--duration-fast) ease;justify-self:end;padding:0 18px;font-size:13px}.resume-button:hover,.button:hover,.icon-button:hover{box-shadow:var(--glow);border-color:#ffffff9e;transform:translateY(-3px)}.menu-button,.mobile-menu{display:none}.hero{isolation:isolate;width:100%;min-height:740px;margin:0;padding-top:120px;display:grid;position:relative;overflow:hidden}.hero.section-shell{width:100%}.shader-background{z-index:0;background:#000;position:absolute;inset:0;overflow:hidden}.shader-canvas,.shader-background canvas{opacity:.92}.shader-fallback{background:radial-gradient(at 9% 7%,#fffffffa 0,#ffffff38 11%,#0000 24%),radial-gradient(at 92% 28%,#ffffffdb 0,#fff3 13%,#0000 28%),linear-gradient(130deg,#050505,#000 52%,#111);position:absolute;inset:0}.shader-overlay{background:linear-gradient(90deg,#0009,#0000006b 42%,#0000008c),linear-gradient(#0003,#020202 98%);position:absolute;inset:0}.hero-grid{z-index:1;width:min(var(--max), calc(100% - 48px));grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);align-items:center;gap:76px;min-height:580px;margin:0 auto;display:grid;position:relative}.hero-copy{max-width:560px}.intro,.section-label{color:#c9c9c9;text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px;font-size:13px;font-weight:600}.intro{text-transform:none;letter-spacing:0;font-size:16px;font-weight:400}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;margin-bottom:18px;font-size:clamp(48px,7vw,78px);line-height:.95}h2{letter-spacing:0;font-size:clamp(30px,4vw,48px);line-height:1.08}h3{letter-spacing:0}.role-badge{border:1px solid var(--line-strong);text-transform:uppercase;background:#ffffff0d;border-radius:999px;align-items:center;gap:8px;margin-bottom:25px;padding:11px 17px;font-size:13px;font-weight:700;display:inline-flex}.hero-description,.section-copy p,.section-heading p,.contact-copy p{color:#d0d0d0;max-width:62ch;font-size:17px;line-height:1.75}.hero-actions{flex-wrap:wrap;gap:16px;margin-top:32px;display:flex}.button{border:1px solid var(--line-strong);border-radius:var(--radius-control);min-height:48px;transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, background var(--duration-fast) ease, transform var(--duration-fast) ease;padding:0 22px;font-size:14px;font-weight:700}.button:hover{transform:translateY(-4px)}.button svg,.resume-button svg,.text-button svg,.all-projects svg{transition:transform var(--duration-fast) ease}.button:hover svg,.resume-button:hover svg,.text-button:hover svg,.all-projects:hover svg{transform:translate(3px)}.button-primary{color:#050505;background:#fff}.button-ghost{color:#fff;background:#ffffff0a}.scroll-indicator{color:#b9b9b9;text-transform:uppercase;flex-direction:column;align-items:center;gap:8px;margin-top:58px;font-size:11px;display:inline-flex}.scroll-indicator svg{transform:translateY(0)}.hero-portrait-area{place-items:center;min-height:430px;display:grid;position:relative}.portrait-card{aspect-ratio:.78;border-radius:var(--radius-dialog);background:linear-gradient(145deg,#ffffff29,#ffffff08);border:1px solid #ffffff8f;width:min(360px,78vw);position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff0a,0 0 70px #ffffff29}.portrait-card:before,.portrait-card:after{z-index:2;content:"";background:linear-gradient(90deg,#0000,#fff,#0000);height:1px;position:absolute;left:18px;right:18px}.portrait-card:before{top:0}.portrait-card:after{bottom:0}.portrait-card img{object-fit:cover;object-position:center top;filter:grayscale(.88)contrast(1.08);width:100%;height:100%}.about{border-top:1px solid #ffffff0f;grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);align-items:center;gap:64px;padding:80px 0 48px;display:grid}.section-copy{max-width:580px}.stats-grid,.reviews-grid{gap:16px;display:grid}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card,.review-card,.project-card,.modal-card,.contact-card{border:1px solid var(--line);background:var(--surface-card);box-shadow:inset 0 1px #ffffff0e}.metric-card,.review-card,.project-card{transition:transform var(--duration-base) ease, border-color var(--duration-base) ease, background var(--duration-base) ease, box-shadow var(--duration-base) ease;animation:content-reveal var(--duration-reveal) var(--ease-out) both}.metric-card:hover,.review-card:hover,.project-card.is-active:hover{box-shadow:var(--glow), inset 0 1px 0 #ffffff1a;background:linear-gradient(145deg,#ffffff24,#ffffff0a);border-color:#ffffff57;transform:translateY(-6px)}.metric-card{border-radius:var(--radius-card);min-height:128px;padding:20px}.metric-card svg{color:#f7f7f7;filter:drop-shadow(0 0 12px #ffffff38);margin-bottom:18px}.metric-card strong{margin-bottom:6px;font-size:32px;line-height:1;display:block}.metric-card span{color:#c8c8c8;font-size:13px}.section-heading{margin-bottom:32px}.skills,.projects,.reviews,.process,.contact{padding:64px 0}.project-visual svg,.review-card>svg,.step-node svg,.contact-icon svg,.contact-meta svg,.modal-icon svg{transition:transform var(--duration-base) ease, color var(--duration-base) ease, filter var(--duration-base) ease, opacity var(--duration-base) ease}.project-card:hover .project-visual svg,.review-card:hover>svg,.contact-meta a:hover svg,.contact-card:hover .contact-icon svg,.modal-card:hover .modal-icon svg{color:#fff;filter:drop-shadow(0 0 16px #ffffff75);transform:translateY(-3px)scale(1.05)}.modal-card ul{color:#d1d1d1;gap:9px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.skills-heading{max-width:720px}.skills-heading h2{margin-bottom:12px}.developer-dashboard{gap:16px;display:grid}.developer-dashboard-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:16px;display:grid}.dashboard-card,.technology-stack{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-card);min-width:0;transition:transform var(--duration-base) ease, border-color var(--duration-base) ease, box-shadow var(--duration-base) ease, background var(--duration-base) ease;box-shadow:inset 0 1px #ffffff0e}.dashboard-card{flex-direction:column;min-height:430px;padding:24px;display:flex}.technology-stack{padding:24px}.dashboard-card:hover,.technology-stack:hover{box-shadow:var(--shadow-soft), inset 0 1px 0 #ffffff12;background:#fff1;border-color:#ffffff2e;transform:translateY(-2px)}.dashboard-card-heading,.dashboard-card-title{align-items:center;gap:12px;display:flex}.dashboard-card-heading{margin-bottom:24px}.dashboard-card-heading-split{justify-content:space-between}.dashboard-card-heading h3,.dashboard-card-heading p{margin:0}.dashboard-card-heading h3{font-size:17px;line-height:1.3}.dashboard-card-heading p{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.dashboard-card-icon,.technology-chip-icon{border:1px solid var(--line);border-radius:var(--radius-control);color:#f4f4f4;background:#ffffff09;flex:none;place-items:center;display:inline-grid}.dashboard-card-icon{width:40px;height:40px}.dashboard-live-status{color:#c8c8c8;flex:none;align-items:center;gap:7px;font-size:11px;display:inline-flex}.dashboard-live-status>span{background:#d8d8d8;border-radius:50%;width:7px;height:7px;box-shadow:0 0 12px #ffffff6b}.github-metrics{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0 0 22px;display:grid}.github-metric{border-left:1px solid var(--line);min-width:0;padding:0 14px}.github-metric:first-child{border-left:0;padding-left:0}.github-metric:last-child{padding-right:0}.github-metric dt{min-height:34px;color:var(--muted);align-items:flex-start;gap:6px;font-size:10px;line-height:1.35;display:flex}.github-metric dt svg{color:#d5d5d5;flex:none;margin-top:-1px}.github-metric dd{color:#fff;min-height:32px;margin:8px 0 0;font-size:25px;font-weight:750;line-height:1}.metric-skeleton,.skeleton-lines,.calendar-skeleton{border-radius:var(--radius-control);background:#ffffff13;animation:1.4s ease-in-out infinite dashboard-skeleton-pulse;display:block}.metric-skeleton{width:48px;height:25px}.github-calendar-panel{align-content:start;min-height:245px;margin-top:22px;display:grid}.calendar-panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.calendar-panel-heading h4{margin:0;font-size:13px}.calendar-panel-heading span{color:var(--muted);font-size:11px}.github-calendar-viewport{color:#bdbdbd;scrollbar-color:#ffffff29 transparent;scrollbar-width:thin;max-width:100%;padding-bottom:4px;overflow:auto hidden}.github-calendar-viewport>*{min-width:max-content}.github-calendar-viewport text,.github-calendar-viewport span{color:#adadad;fill:#adadad}.contribution-block{cursor:pointer;touch-action:manipulation;transition:filter var(--duration-fast) ease, opacity var(--duration-fast) ease, stroke var(--duration-fast) ease;outline:none}.contribution-block:hover,.contribution-block:focus-visible{opacity:1;stroke:#ffffffeb;stroke-width:1.5px;filter:drop-shadow(0 0 5px #ffffff52)}.contribution-tooltip{z-index:1200;border-radius:var(--radius-card);color:#fff;pointer-events:none;-webkit-backdrop-filter:blur(16px)saturate(125%);background:#121212db;border:1px solid #ffffff26;gap:7px;width:min(240px,100vw - 16px);padding:13px 14px;font-family:inherit;display:grid;position:fixed;box-shadow:0 18px 50px #00000075,inset 0 1px #ffffff12}.contribution-tooltip[data-placement=top]{transform-origin:bottom}.contribution-tooltip[data-placement=bottom]{transform-origin:top}.contribution-tooltip-arrow{background:#121212e6;border-bottom:1px solid #ffffff26;border-right:1px solid #ffffff26;width:9px;height:9px;position:absolute;transform:translate(-50%)rotate(45deg)}.contribution-tooltip[data-placement=top] .contribution-tooltip-arrow{bottom:-5px}.contribution-tooltip[data-placement=bottom] .contribution-tooltip-arrow{top:-5px;transform:translate(-50%)rotate(225deg)}.contribution-tooltip-date,.contribution-tooltip-context{color:var(--muted);font-size:11px;line-height:1.4}.contribution-tooltip strong{align-items:center;gap:8px;font-size:14px;line-height:1.25;display:flex}.contribution-tooltip strong>span{background:#f1f1f1;border-radius:50%;width:7px;height:7px;box-shadow:0 0 11px #ffffff7a}.calendar-skeleton{background:repeating-linear-gradient(90deg,#ffffff0e 0 8px,#0000 8px 12px),repeating-linear-gradient(0deg,#ffffff0b 0 8px,#0000 8px 12px);width:100%;min-height:164px}.calendar-unavailable{color:var(--muted);margin:32px 0;font-size:13px}.dashboard-inline-error,.dashboard-state{border:1px solid var(--line);border-radius:var(--radius-control);background:#ffffff06;align-content:center;justify-items:start;min-height:116px;padding:18px;display:grid}.dashboard-inline-error p,.dashboard-state p{color:#c6c6c6;margin:0;font-size:13px;line-height:1.6}.dashboard-inline-error a{color:#fff;margin-top:8px;font-size:12px;font-weight:700}.language-card{overflow:hidden}.language-visual,.language-skeleton{flex:1;grid-template-columns:minmax(150px,.9fr) minmax(150px,1.1fr);align-items:center;gap:20px;display:grid}.language-donut-wrap{aspect-ratio:1;place-items:center;width:min(210px,100%);margin:0 auto;display:grid;position:relative}.language-donut{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.language-donut-track,.language-donut-segment{fill:none;transform-origin:60px 60px}.language-donut-track{stroke:#ffffff12;stroke-width:14px}.language-donut-segment{cursor:default}.language-donut-label{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:26%}.language-donut-label strong,.language-donut-label span{overflow-wrap:anywhere;max-width:100%;display:block}.language-donut-label strong{color:#fff;font-size:24px;line-height:1}.language-donut-label span{color:var(--muted);margin-top:6px;font-size:10px}.language-legend{gap:5px;margin:0;padding:0;list-style:none;display:grid}.language-legend-item{border-radius:var(--radius-control);color:#d0d0d0;width:100%;min-height:34px;font:inherit;text-align:left;cursor:default;transition:border-color var(--duration-fast) ease, background var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-fast) ease;background:0 0;border:1px solid #0000;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:9px;padding:5px 7px;font-size:11px;display:grid}.language-legend-item:hover,.language-legend-item.is-active{border-color:var(--line);color:#fff;background:#ffffff0b;transform:translate(2px)}.language-legend-item strong{font-variant-numeric:tabular-nums;font-size:11px}.language-swatch{border-radius:50%;width:8px;height:8px;box-shadow:0 0 9px}.language-skeleton{min-height:260px}.skeleton-donut{aspect-ratio:1;border:16px solid #fff1;border-radius:50%;width:min(170px,80%);margin:0 auto;animation:1.4s ease-in-out infinite dashboard-skeleton-pulse}.skeleton-lines{height:180px}.technology-expertise-heading{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding-bottom:24px;display:flex}.technology-expertise-heading h3,.technology-expertise-heading p,.technology-category-heading h4,.technology-category-heading p{margin:0}.technology-expertise-heading h3{font-size:17px;line-height:1.3}.technology-expertise-heading p{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.technology-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;display:grid}.technology-category{border-bottom:1px solid var(--line);min-width:0;padding:24px 0}.technology-category:nth-last-child(-n+2){border-bottom:0;padding-bottom:0}.technology-category-heading{grid-template-columns:30px minmax(0,1fr);align-items:start;gap:10px;margin-bottom:16px;display:grid}.technology-category-heading>span{border:1px solid var(--line);color:#e8e8e8;background:#ffffff09;border-radius:9px;place-items:center;width:30px;height:30px;display:grid}.technology-category-heading h4{color:#f4f4f4;font-size:13px;line-height:1.35}.technology-category-heading p{color:var(--dim);margin-top:3px;font-size:10px;line-height:1.5}.technology-chip-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.technology-chip-list li{min-width:0;display:flex}.technology-chip{border:1px solid var(--line);color:#d8d8d8;min-width:0;min-height:44px;font:inherit;text-align:left;cursor:pointer;transition:transform .28s var(--ease-out), border-color .28s ease, box-shadow .28s ease, background .28s ease, color .28s ease;background:#ffffff06;border-radius:12px;align-items:center;gap:9px;padding:8px 12px 8px 9px;font-size:11px;font-weight:650;line-height:1.2;display:inline-flex}.technology-chip:hover,.technology-chip:focus-visible,.technology-chip.is-active{color:#fff;background:#ffffff13;border-color:#ffffff47;transform:translateY(-3px)scale(1.012);box-shadow:0 12px 28px #00000047,0 0 20px #ffffff0a}.technology-chip-icon{width:27px;height:27px;transition:transform .28s var(--ease-out), color .28s ease;border-radius:8px}.technology-chip:hover .technology-chip-icon,.technology-chip:focus-visible .technology-chip-icon,.technology-chip.is-active .technology-chip-icon{color:#fff;transform:rotate(4deg)scale(1.08)}.technology-dual-icon{justify-content:center;align-items:center;gap:1px;display:inline-flex}.technology-dual-icon svg{width:12px;height:12px}.technology-popover{z-index:1200;border-radius:var(--radius-card);color:#fff;pointer-events:auto;-webkit-backdrop-filter:blur(16px)saturate(120%);background:#121212e6;border:1px solid #ffffff29;width:min(300px,100vw - 16px);max-height:calc(100vh - 16px);padding:15px;position:fixed;overflow-y:auto;box-shadow:0 20px 56px #0000007a,inset 0 1px #ffffff12}.technology-popover[data-placement=top]{transform-origin:bottom}.technology-popover[data-placement=bottom]{transform-origin:top}.technology-popover-arrow{background:#121212f0;border-bottom:1px solid #ffffff29;border-right:1px solid #ffffff29;width:9px;height:9px;position:absolute;transform:translate(-50%)rotate(45deg)}.technology-popover[data-placement=top] .technology-popover-arrow{bottom:-5px}.technology-popover[data-placement=bottom] .technology-popover-arrow{top:-5px;transform:translate(-50%)rotate(225deg)}.technology-popover-heading{grid-template-columns:38px minmax(0,1fr);align-items:center;gap:11px;display:grid}.technology-popover-icon{border:1px solid var(--line);border-radius:var(--radius-control);background:#ffffff0b;place-items:center;width:38px;height:38px;display:grid}.technology-popover-heading strong,.technology-popover-heading span{display:block}.technology-popover-heading strong{font-size:13px;line-height:1.3}.technology-popover-heading div>span,.technology-popover-projects>span{color:var(--muted);margin-top:3px;font-size:10px;line-height:1.4}.technology-popover>p{color:#c4c4c4;margin:12px 0 0;font-size:11px;line-height:1.6}.technology-popover-projects{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.technology-popover-projects>span{text-transform:uppercase;margin:0 0 6px;display:block}.technology-popover-projects ul{flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none;display:flex}.technology-popover-projects li{color:#d8d8d8;background:#ffffff09;border:1px solid #ffffff1a;border-radius:7px;padding:4px 7px;font-size:9px;line-height:1.35}@keyframes dashboard-skeleton-pulse{0%,to{opacity:.45}50%{opacity:.9}}.projects-header,.split-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.projects-header{margin-bottom:32px}.projects-header h2,.split-heading h2{margin:0}.projects-count{color:var(--muted);margin:0;font-size:14px}.deck-wrap{contain:paint;place-items:center;width:100%;min-height:500px;display:grid;position:relative;overflow:hidden}.project-deck{touch-action:pan-y;width:min(520px,72vw);height:460px;position:relative}.deck-card-position{cursor:pointer;will-change:transform, opacity, filter;position:absolute;inset:0}.deck-card-position.active{cursor:grab}.deck-card-position.hidden{pointer-events:none}.deck-card-position:not(.active) .project-content{opacity:.2;transition:opacity var(--duration-base) ease}.deck-card-position:not(.active) .project-visual{opacity:.64}.project-card{border-radius:var(--radius-dialog);grid-template-rows:180px 1fr;width:100%;height:100%;display:grid;overflow:hidden}.project-visual{background:linear-gradient(135deg,#ffffff24,#ffffff06);place-items:center;display:grid;position:relative;overflow:hidden}.project-visual:after{content:"";background:linear-gradient(#0000,#000000c7);height:54%;position:absolute;inset:auto -10% 0}.project-visual span{color:#fff;font-size:13px;font-weight:800;position:absolute;top:18px;left:18px}.project-visual svg{color:#ffffffdb;filter:drop-shadow(0 0 28px #ffffff59)}.project-content{padding:24px}.project-status{margin-bottom:12px}.project-status span,.status-pill{border:1px solid var(--line);color:#d7d7d7;text-transform:uppercase;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;display:inline-flex}.project-card h3{margin-bottom:12px;font-size:25px;line-height:1.12}.project-card p{color:#c9c9c9;font-size:14px;line-height:1.65}.chip-row,.available-list{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);color:#d8d8d8;border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:12px;display:inline-flex}.text-button{color:#fff;cursor:pointer;transition:color var(--duration-fast) ease, transform var(--duration-fast) ease;background:0 0;border:0;margin-top:18px;padding:0;font-size:14px;font-weight:800}.text-button:hover{color:#fff;transform:translateY(-2px)}.deck-arrow,.icon-button{border:1px solid var(--line);color:#fff;cursor:pointer;width:46px;height:46px;transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;background:#ffffff0a;border-radius:999px;place-items:center;display:inline-grid}.deck-arrow:hover,.icon-button:hover{transform:translateY(-3px)scale(1.04)}.deck-arrow{z-index:4;position:absolute}.deck-arrow.left{left:2%}.deck-arrow.right{right:2%}.deck-dots{justify-content:center;gap:8px;display:flex}.deck-dots button,.gallery-thumbs button{cursor:pointer;background:#ffffff40;border:0;border-radius:999px;width:28px;height:3px}.deck-dots button.is-active,.gallery-thumbs button.is-active{background:#fff}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#000000b8;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.modal-card{border-radius:var(--radius-dialog);background:var(--surface-raised);width:min(980px,100%);max-height:min(88vh,900px);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:30px;position:relative;overflow:auto}.modal-close{position:absolute;top:20px;right:20px}.modal-header{align-items:center;gap:18px;margin-bottom:28px;padding-right:52px;display:flex}.modal-icon{border:1px solid var(--line);background:#ffffff0f;border-radius:16px;place-items:center;width:58px;height:58px;display:grid}.modal-header h2{margin:8px 0 0}.modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.modal-grid h3{text-transform:uppercase;margin:20px 0 8px;font-size:13px}.modal-grid p{color:#cfcfcf;line-height:1.7}.gallery-panel{margin-top:28px}.gallery-frame{aspect-ratio:16/9;border-radius:var(--radius-card);color:#d8d8d8;background:#ffffff09;border:1px dashed #fff3;place-items:center;width:100%;display:grid;overflow:hidden}.gallery-frame>img{object-fit:cover;width:100%;height:100%}.gallery-placeholder{text-align:center;place-items:center;gap:8px;padding:24px;display:grid}.gallery-placeholder strong{font-size:14px}.gallery-placeholder span{color:var(--muted);font-size:13px}.gallery-controls{justify-content:center;align-items:center;gap:16px;margin-top:16px;display:flex}.reviews-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.placeholder-note{max-width:340px;color:var(--muted);font-size:13px;line-height:1.5}.review-card{border-radius:var(--radius-card);min-height:0;padding:24px}.review-card svg{color:#ffffffa6}.review-card p{color:#e2e2e2;max-width:48ch;line-height:1.7}.review-author{align-items:center;gap:12px;margin-top:22px;display:flex}.review-author>span{border:1px solid var(--line);background:#ffffff14;border-radius:999px;place-items:center;width:40px;height:40px;font-size:12px;font-weight:800;display:grid}.review-author strong,.review-author small{display:block}.review-author small{color:var(--muted);margin-top:4px}.timeline{grid-template-columns:repeat(6,minmax(0,1fr));gap:24px;padding:58px 0 28px;display:grid;position:relative}.timeline-line{background:#ffffff29;height:1px;position:absolute;top:84px;left:7%;right:7%}.timeline-line span{transform-origin:0;background:#fff;width:100%;height:2px;display:block;box-shadow:0 0 20px #ffffff73}.timeline-line-mobile{display:none}.timeline-step{z-index:1;opacity:.52;transition:opacity var(--duration-base) ease, transform var(--duration-base) ease;position:relative}.timeline-step.is-active{opacity:1}.step-node{border:1px solid var(--line-strong);color:#ffffff8f;width:52px;height:52px;transition:border-color var(--duration-base) ease, box-shadow var(--duration-base) ease, transform var(--duration-base) ease, color var(--duration-base) ease;background:#050505f5;border-radius:999px;place-items:center;margin-bottom:18px;display:grid}.timeline-step.is-active .step-node{color:#fff;border-color:#ffffff9e;transform:scale(1.03);box-shadow:0 0 24px #ffffff29}.timeline-step>span{color:#ffffff94;transition:color var(--duration-base) ease, text-shadow var(--duration-base) ease;margin-bottom:7px;font-weight:800;display:block}.timeline-step.is-active>span{color:#fff;text-shadow:0 0 16px #ffffff59}.timeline-step h3{margin-bottom:8px;font-size:15px;line-height:1.25}.timeline-step p{color:var(--muted);font-size:13px;line-height:1.55}.contact-card{contain:paint;border-radius:var(--radius-dialog);background:var(--surface-card);box-shadow:var(--shadow-soft), inset 0 1px 0 #ffffff0b;transition:border-color var(--duration-base) ease, box-shadow var(--duration-base) ease, background var(--duration-base) ease;border-color:#ffffff17;grid-template-columns:112px minmax(0,1fr) minmax(240px,.7fr);align-items:center;gap:32px;padding:40px;display:grid;position:relative;overflow:hidden}.contact-icon,.contact-copy,.contact-meta,.available-list{z-index:2;position:relative}.contact-card:hover{border-color:#ffffff2e;box-shadow:inset 0 1px #ffffff0f,0 0 48px #ffffff1a,0 30px 130px #ffffff12}.contact-icon{border:1px solid var(--line);border-radius:var(--radius-dialog);width:104px;height:104px;box-shadow:var(--glow);background:#ffffff0a;place-items:center;display:grid}.contact-label{color:#d8d8d8;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:800}.contact-copy h2{max-width:470px}.contact-meta{gap:14px;display:grid}.contact-meta a{color:#d8d8d8;transition:color var(--duration-fast) ease, transform var(--duration-fast) ease;grid-template-columns:24px 80px 1fr;align-items:center;gap:10px;font-size:13px;display:grid}.contact-meta a:hover{color:#fff;transform:translate(4px)}.contact-meta strong{overflow-wrap:anywhere;color:#fff}.available-list{grid-column:2/-1}.footer{width:min(var(--max), calc(100% - 48px));color:var(--muted);margin:0 auto;padding:28px 0 42px;font-size:13px}.footer-inner,.footer-links{align-items:center;display:flex}.footer-inner{border-top:1px solid #ffffff14;justify-content:space-between;gap:24px;padding-top:24px}.footer-inner p{margin:0}.footer-links{flex-wrap:wrap;justify-content:flex-end;gap:20px}.footer-links a{min-height:44px;transition:color var(--duration-fast) ease;align-items:center;gap:6px;display:inline-flex}.footer-links a:hover{color:var(--text)}@keyframes ambient-drift{0%{transform:translate(-1.5%,-1%)scale(1)}to{transform:translate(1.5%,1%)scale(1.04)}}@keyframes section-glow-drift{0%{transform:translate(-2%)scale(.98)}to{transform:translate(2%)scale(1.02)}}@keyframes content-reveal{0%{opacity:0;filter:blur(8px);transform:translateY(12px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (width<=1080px){.about{grid-template-columns:1fr}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);gap:40px}.portrait-card{width:min(330px,100%)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.developer-dashboard-grid,.reviews-grid{grid-template-columns:1fr}.contact-card{grid-template-columns:104px minmax(0,1fr)}.contact-icon{grid-row:1/span 3}.contact-meta,.available-list{grid-column:2}.timeline{grid-template-columns:1fr;gap:28px;padding:48px 0 18px 28px}.timeline-line{display:none}.timeline-line-mobile{background:#ffffff29;width:1px;display:block;position:absolute;top:48px;bottom:20px;left:54px}.timeline-line-mobile span{transform-origin:top;background:#fff;width:1px;height:100%;display:block;box-shadow:0 0 20px #ffffff73}.timeline-step{grid-template-columns:52px 1fr;column-gap:18px;display:grid}.timeline-step>span,.timeline-step h3,.timeline-step p{grid-column:2}.step-node{grid-row:1/span 3}}@media (width<=900px){.hero-grid{grid-template-columns:1fr}}@media (width<=820px){.section-shell,.navbar,.footer{width:min(100% - 32px, var(--max))}.navbar{grid-template-columns:1fr auto;height:66px;padding:0 12px}.nav-links,.resume-button{display:none}.menu-button{border:1px solid var(--line);color:#fff;background:#ffffff0a;border-radius:999px;place-items:center;width:42px;height:42px;display:inline-grid}.mobile-menu{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#050505eb;border-radius:16px;padding:14px;display:none;position:absolute;top:74px;left:0;right:0}.mobile-menu.is-open{display:grid}.mobile-menu a{color:#f2f2f2;padding:13px 10px}.mobile-menu a[aria-current=page]{background:var(--surface-subtle);border-radius:var(--radius-control)}.hero{min-height:auto;padding-top:96px;padding-bottom:48px}.hero-grid{gap:32px}.hero-portrait-area{min-height:380px}.scroll-indicator{margin-top:40px}h1{font-size:50px}.hero-description,.section-copy p,.section-heading p,.contact-copy p{font-size:15px}.reviews-grid,.modal-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-header,.split-heading{flex-direction:column;align-items:start}.project-deck{width:min(420px,82vw);height:500px}.deck-card-position.previous,.deck-card-position.next{pointer-events:auto}.deck-card-position.previous .project-content,.deck-card-position.next .project-content{opacity:0}.deck-arrow{top:auto;bottom:-8px}.deck-arrow.left{left:calc(50% - 60px)}.deck-arrow.right{right:calc(50% - 60px)}.deck-wrap{min-height:560px}.contact-card{grid-template-columns:1fr;gap:24px;padding:24px}.contact-icon{display:none}.contact .hero-actions{margin-top:24px}.available-list{gap:6px}.contact-meta a{grid-template-columns:20px 64px 1fr;gap:8px}.contact-meta,.available-list{grid-column:auto}.footer-inner{flex-direction:column;align-items:flex-start}.footer-links{justify-content:flex-start}}@media (width<=560px){.hero{padding-bottom:40px}.hero-portrait-area,.scroll-indicator{display:none}.stats-grid{grid-template-columns:1fr}.metric-card{min-height:0}.dashboard-card,.technology-stack{padding:20px}.dashboard-card{min-height:0}.dashboard-card-heading-split{align-items:flex-start}.dashboard-live-status{margin-top:4px}.github-metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}.github-metric:nth-child(3){border-left:0;padding-left:0}.language-visual,.language-skeleton{grid-template-columns:1fr}.github-calendar-viewport{overflow-x:hidden}.github-calendar-viewport>*{width:100%;min-width:0}.github-calendar-viewport svg{height:auto;width:100%!important}.technology-category-grid{grid-template-columns:1fr}.technology-category:nth-last-child(2){border-bottom:1px solid var(--line);padding-bottom:24px}.hero-actions,.button{width:100%}.role-badge{white-space:normal;max-width:100%}.portrait-card{width:min(296px,100%)}.hero-portrait-area{min-height:360px}.project-deck{width:min(330px,86vw);height:520px}.project-card{grid-template-rows:160px 1fr}.project-content{padding:20px}.project-card h3{font-size:22px}.modal-backdrop{padding:12px}.modal-card{border-radius:var(--radius-dialog);padding:22px}}@media (width<=360px){h1{font-size:44px}.role-badge{font-size:12px}.technology-chip-list li,.technology-chip{max-width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.shader-canvas{display:none}body:before,.section-shell:not(.hero):before{animation:none!important}.section-shell:not(.hero),.metric-card,.dashboard-card,.technology-stack,.technology-chip,.language-legend-item,.review-card,.project-card{opacity:1;filter:none;transform:none;animation:none!important}.metric-skeleton,.calendar-skeleton,.skeleton-donut,.skeleton-lines{animation:none!important}}
