:root{--primary-color:#007aff;--secondary-color:#1d1d1f;--accent-color:#30d158;--text-primary:#1d1d1f;--text-secondary:#86868b;--text-light:#d2d2d7;--background-primary:#fff;--background-secondary:#f5f5f7;--background-accent:#fbfbfd;--border-light:#d2d2d7;--shadow-light:#0000000a;--shadow-medium:#00000014;--shadow-strong:#0000001f;--border-radius:18px;--card-radius:clamp(18px,6vw,50px);--card-radius-inner:clamp(14px,5vw,40px);--card-min-height:clamp(340px,52vh,520px);--card-min-height-large:clamp(400px,60vh,620px);--card-min-height-small:clamp(260px,38vh,320px);--card-content-pad-top:clamp(24px,6vw,40px);--card-content-pad-side:clamp(22px,5vw,35px);--card-content-pad-bottom:clamp(18px,4vw,30px);--contrib-chart-height:clamp(72px,18vw,120px);--contrib-bar-max-width:clamp(12px,4vw,26px);--contrib-bar-radius:clamp(3px,0.6vw,6px);--contrib-chart-gap:clamp(2px,1vw,6px);--contrib-chart-pad-x:clamp(6px,2vw,16px);--card-gap:12px;--spacing-xs:0.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-xxl:4rem;--font-size-large-title:34px;--font-size-title1:28px;--font-size-title2:22px;--font-size-title3:20px;--font-size-headline:17px;--font-size-body:17px;--font-size-callout:16px;--font-size-subheadline:15px;--font-size-footnote:13px;--font-size-caption1:12px;--font-size-caption2:11px;--line-height-large-title:1.21;--line-height-title1:1.21;--line-height-title2:1.27;--line-height-title3:1.2;--line-height-headline:1.29;--line-height-body:1.29;--line-height-callout:1.31;--line-height-subheadline:1.33;--line-height-footnote:1.38;--line-height-caption1:1.33;--line-height-caption2:1.18;--tracking-large-title:0.007em;--tracking-title1:0.007em;--tracking-title2:0.011em;--tracking-title3:0.012em;--tracking-headline:-0.024em;--tracking-body:-0.024em;--tracking-callout:-0.02em;--tracking-subheadline:-0.016em;--tracking-footnote:-0.006em;--tracking-caption1:0;--tracking-caption2:0.006em}*{box-sizing:border-box}html{height:100vh}body{background:#0000;color:#1d1d1f;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,system-ui,sans-serif;font-size:17px;font-size:var(--font-size-body);font-weight:400;letter-spacing:-.024em;letter-spacing:var(--tracking-body);line-height:1.29;line-height:var(--line-height-body);margin:0;min-height:100vh;overflow-x:hidden;padding:0}.app-scroll{overflow-y:scroll;scrollbar-gutter:stable}*{scrollbar-color:#0003 #0000;scrollbar-width:thin}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#0003;background-clip:content-box;border:2px solid #0000;border-radius:9px}::-webkit-scrollbar-thumb:hover{background:#0000004d;background-clip:content-box}::-webkit-scrollbar-thumb:active{background:#0006;background-clip:content-box}::-webkit-scrollbar-corner{background:#0000}.dark-theme *,.dark-theme .app-scroll,.dark-theme .mini-popup,.dark-theme .mockup-viewer,.dark-theme .project-dialog,.dark-theme .smart-popup,.dark-theme body{scrollbar-color:#ffffff47 #0000}.dark-theme ::-webkit-scrollbar-thumb{background:#ffffff47}.dark-theme ::-webkit-scrollbar-thumb:hover{background:#ffffff5c}.dark-theme ::-webkit-scrollbar-thumb:active{background:#ffffff70}.dark-theme .app-scroll::-webkit-scrollbar-thumb,.dark-theme .mini-popup::-webkit-scrollbar-thumb,.dark-theme .mockup-viewer::-webkit-scrollbar-thumb,.dark-theme .project-dialog::-webkit-scrollbar-thumb,.dark-theme .smart-popup::-webkit-scrollbar-thumb,.dark-theme body::-webkit-scrollbar-thumb{background:#ffffff47}.dark-theme .app-scroll::-webkit-scrollbar-thumb:hover,.dark-theme .mini-popup::-webkit-scrollbar-thumb:hover,.dark-theme .mockup-viewer::-webkit-scrollbar-thumb:hover,.dark-theme .project-dialog::-webkit-scrollbar-thumb:hover,.dark-theme .smart-popup::-webkit-scrollbar-thumb:hover,.dark-theme body::-webkit-scrollbar-thumb:hover{background:#ffffff5c}.dark-theme .app-scroll::-webkit-scrollbar-thumb:active,.dark-theme .mini-popup::-webkit-scrollbar-thumb:active,.dark-theme .mockup-viewer::-webkit-scrollbar-thumb:active,.dark-theme .project-dialog::-webkit-scrollbar-thumb:active,.dark-theme .smart-popup::-webkit-scrollbar-thumb:active,.dark-theme body::-webkit-scrollbar-thumb:active{background:#ffffff70}h1,h2,h3,h4,h5,h6{color:#1d1d1f;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;font-weight:600;margin:0}h1{font-size:34px;font-size:var(--font-size-large-title);font-weight:700;letter-spacing:.007em;letter-spacing:var(--tracking-large-title);line-height:1.21;line-height:var(--line-height-large-title)}h2{font-size:28px;font-size:var(--font-size-title1);font-weight:300;letter-spacing:.007em;letter-spacing:var(--tracking-title1);line-height:1.21;line-height:var(--line-height-title1)}h3{font-size:22px;font-size:var(--font-size-title2);letter-spacing:.011em;letter-spacing:var(--tracking-title2);line-height:1.27;line-height:var(--line-height-title2)}h3,h4{font-weight:400}h4{font-size:20px;font-size:var(--font-size-title3);letter-spacing:.012em;letter-spacing:var(--tracking-title3);line-height:1.2;line-height:var(--line-height-title3)}h5{font-size:17px;font-size:var(--font-size-headline);font-weight:600;letter-spacing:-.024em;letter-spacing:var(--tracking-headline);line-height:1.29;line-height:var(--line-height-headline)}h6{font-size:15px;font-size:var(--font-size-subheadline);font-weight:400;letter-spacing:-.016em;letter-spacing:var(--tracking-subheadline);line-height:1.33;line-height:var(--line-height-subheadline)}.apple-header{align-items:center;display:flex;height:clamp(52px,8vh,64px);left:0;margin:0 auto;max-width:min(980px,calc(100% - clamp(32px, 8vw, 64px)));padding:0 clamp(24px,5vw,40px);position:-webkit-sticky;position:sticky;right:0;top:20px;transition:all .3s cubic-bezier(.25,.8,.25,1);z-index:1000}.liquid-glass-nav{backdrop-filter:saturate(160%) blur(45px);-webkit-backdrop-filter:saturate(160%) blur(45px);background:#ffffff1f;border:1px solid #ffffff40;border-radius:50px;box-shadow:inset 0 2px 6px 0 #ffffff4d,inset 0 1px 3px 0 #96c8ff26,inset 2px 0 6px 0 #fff3,inset 1px 0 3px 0 #c896ff1a,inset -2px 0 6px 0 #fff3,inset -1px 0 3px 0 #ffc8c81a,inset 0 -2px 6px 0 #ffffff26,inset 0 0 30px 2px #ffffff14,0 0 20px 2px #ffffff14,0 0 40px 4px #ffffff0a,0 20px 40px -10px #00000014,0 4px 12px #0000000a;transition:all .35s cubic-bezier(.32,.72,0,1)}.liquid-glass-nav:hover{backdrop-filter:saturate(160%) blur(50px);-webkit-backdrop-filter:saturate(160%) blur(50px);background:#ffffff26;border:1px solid #ffffff59;box-shadow:inset 0 3px 8px 0 #fff6,inset 0 2px 4px 0 #96c8ff33,inset 3px 0 8px 0 #ffffff4d,inset 2px 0 4px 0 #c896ff26,inset -3px 0 8px 0 #ffffff4d,inset -2px 0 4px 0 #ffc8c826,inset 0 -3px 8px 0 #fff3,inset 0 0 35px 3px #ffffff1f,0 0 25px 3px #ffffff1f,0 0 50px 6px #ffffff0f,0 24px 48px -12px #0000001a,0 6px 16px #0000000d;transform:translateY(-.5px)}.apple-header-content{justify-content:center;margin:0;max-width:100%;min-height:100%;padding:0 clamp(20px,4vw,32px);width:100%}.apple-header-content,.apple-nav{align-items:center;display:flex;position:relative;z-index:10}.apple-nav{background:#0000000d;border-radius:50px;box-shadow:inset 0 1px 2px #00000014,inset 0 0 0 .5px #0000000a;gap:0;padding:2px}.apple-nav-slider{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:linear-gradient(135deg,#78c4fff2,#4e9cffe6);border-radius:50px;box-shadow:inset 0 1px 2px 0 #fff9,inset 0 -1px 2px 0 #0000000a,0 3px 8px #0000001f,0 1px 3px #00000014,0 0 0 .5px #ffffff4d;height:calc(100% - 4px);left:2px;overflow:hidden;position:absolute;top:2px;transition:left .35s cubic-bezier(.25,.46,.45,.94);width:calc(50% - 2px);will-change:left;z-index:1}.apple-nav-slider:before{background:linear-gradient(135deg,#ffb078f2,#ff7a95e6);border-radius:inherit;content:"";inset:0;opacity:0;position:absolute;transition:opacity .45s cubic-bezier(.32,.72,0,1)}.apple-nav.nav-design .apple-nav-slider:before{opacity:1}.apple-nav-item{align-items:center;background:#0000;border:none;border-radius:50px;color:#00000073;cursor:pointer;display:flex;flex:1 1;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;font-size:clamp(13px,3.5vw,15px);font-weight:500;justify-content:center;letter-spacing:-.01em;min-height:32px;padding:8px 20px;position:relative;transition:color .25s ease-out,font-weight .3s ease-out;white-space:nowrap;z-index:2}.apple-nav-item.active{color:#000000e0;font-weight:590}.apple-nav-item.active:hover{color:#000000e0}.apple-theme-toggle{align-items:center;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#ffffffbf;border:1px solid #ffffff4d;border-radius:50%;box-shadow:inset 0 1px 2px 0 #fff9,inset 0 -1px 1px 0 #0000000a,0 2px 6px #00000014,0 1px 2px #0000000a,0 0 0 .5px #fff3;color:#000000b3;cursor:pointer;display:flex;height:clamp(36px,9vw,40px);justify-content:center;position:absolute;right:clamp(20px,4vw,32px);transition:background .2s ease-out,color .2s ease-out,transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease-out;width:clamp(36px,9vw,40px);z-index:15}.apple-theme-toggle:hover{background:#ffffffd9;box-shadow:inset 0 1px 2px 0 #ffffffb3,inset 0 -1px 1px 0 #0000000a,0 3px 8px #0000001f,0 1px 3px #0000000f,0 0 0 .5px #ffffff4d;color:#000000e6;transform:scale(1.05);transition:background .15s ease-out,color .15s ease-out,transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s ease-out}.apple-theme-toggle:active{transform:scale(.95)}.apple-theme-toggle svg{height:clamp(16px,4vw,18px);transition:all .3s cubic-bezier(.4,0,.2,1);width:clamp(16px,4vw,18px)}.hero-section{background:#0000;padding:40px 0 0;position:relative}.section{margin:12px 0 0;margin:var(--card-gap) 0 0 0;padding:0;position:relative}.section#projects{margin-bottom:0}.design-projects-section{padding-top:0}.section:nth-child(2n){background:#0000}.grid-container{display:flex;flex-direction:column;gap:12px;gap:var(--card-gap);margin:0 auto;max-width:980px;padding:0 22px}.product-grid{grid-gap:12px;grid-gap:var(--card-gap);grid-template-columns:1fr 1fr}.product-grid,.product-grid-single{display:grid;gap:12px;gap:var(--card-gap);margin-bottom:0}.product-grid-single{grid-gap:12px;grid-gap:var(--card-gap);grid-template-columns:1fr}.hero-product-grid{margin-bottom:0}.product-card{background:#f5f5f7;background:var(--background-secondary);cursor:pointer;display:flex;flex-direction:column;min-height:clamp(340px,52vh,520px);min-height:var(--card-min-height)}.product-card.auto-expand{height:auto;min-height:auto}.product-card.auto-expand .product-card-content{max-width:100%;padding:clamp(20px,4vw,25px) clamp(20px,4vw,25px) clamp(15px,3vw,20px)}.product-card.auto-expand .product-card-custom{align-items:center;flex:1 1;margin-top:auto;position:static}.site-footer{padding:24px 0 32px;padding:calc(var(--card-gap)*2) 0 32px}.footer-card{background:#f5f5f7;background:var(--background-secondary);border:1px solid #ffffff40;border-radius:clamp(18px,6vw,50px);border-radius:var(--card-radius);box-shadow:none;display:flex;flex-direction:column;gap:clamp(14px,3vw,20px);overflow:hidden;padding:clamp(20px,4vw,32px);position:relative}.footer-main{gap:clamp(16px,3vw,24px)}.footer-links,.footer-main{align-items:center;display:flex;flex-wrap:wrap;justify-content:center}.footer-links{gap:clamp(10px,2vw,16px);position:relative;width:100%;z-index:2}.footer-link{align-items:center;backdrop-filter:blur(10px) saturate(160%);-webkit-backdrop-filter:blur(10px) saturate(160%);background:#fff9;border:1px solid #ffffff59;border-radius:999px;color:#1d1d1f;color:var(--text-primary);display:inline-flex;height:36px;justify-content:center;text-decoration:none;transition:transform .2s cubic-bezier(.4,0,.2,1),background .2s cubic-bezier(.4,0,.2,1);width:36px}.footer-link:hover{background:#ffffffd9;transform:translateY(-1px)}.footer-meta{align-items:center;color:#86868b;color:var(--text-secondary);display:flex;font-size:12px;font-size:var(--font-size-caption1);gap:10px;justify-content:center;position:relative;width:100%;z-index:2}.footer-dot{background:currentColor;border-radius:999px;height:4px;opacity:.6;width:4px}.footer-card:after{border-radius:inherit;box-shadow:inset 0 2px 6px 0 #ffffff4d,inset 0 1px 3px 0 #96c8ff26,inset 2px 0 6px 0 #fff3,inset 1px 0 3px 0 #c896ff1a,inset -2px 0 6px 0 #fff3,inset -1px 0 3px 0 #ffc8c81a,inset 0 -2px 6px 0 #ffffff26,inset 0 0 30px 2px #ffffff14,0 0 20px 2px #ffffff14,0 0 40px 4px #ffffff0a,0 20px 40px -10px #00000014,0 4px 12px #0000000a;content:"";inset:0;pointer-events:none;position:absolute;z-index:1}.dark-theme .footer-card:after{box-shadow:inset 0 2px 6px 0 #ffffff1f,inset 0 1px 3px 0 #96c8ff0d,inset 2px 0 6px 0 #ffffff14,inset 1px 0 3px 0 #c896ff0a,inset -2px 0 6px 0 #ffffff14,inset -1px 0 3px 0 #ffc8c80a,inset 0 -2px 6px 0 #ffffff0f,inset 0 0 30px 2px #ffffff08,0 0 20px 2px #ffffff0a,0 0 40px 4px #ffffff05,0 20px 40px -10px #00000080,0 4px 12px #0000004d}.dark-theme .footer-card{background:linear-gradient(135deg,#1c1c1e,#2c2c2e);border-color:#ffffff1f}.dark-theme .footer-meta{color:#ffffffb3}.dark-theme .footer-link{background:#18181abf;border-color:#ffffff2e;color:#ffffffd9}.dark-theme .footer-link:hover{background:#1c1c1ed9}.product-card-clickable:hover{box-shadow:0 8px 16px #00000014,0 12px 32px #0000001f;box-shadow:0 8px 16px var(--shadow-medium),0 12px 32px var(--shadow-strong)}.product-card-clickable:active{transform:none}.product-card-large{min-height:clamp(400px,60vh,620px);min-height:var(--card-min-height-large)}.product-card-small{min-height:clamp(260px,38vh,320px);min-height:var(--card-min-height-small)}.product-card-content{display:flex;flex:0 0 auto;flex-direction:column;max-width:70%;overflow:hidden;padding:clamp(24px,6vw,40px) clamp(22px,5vw,35px) clamp(18px,4vw,30px);padding:var(--card-content-pad-top) var(--card-content-pad-side) var(--card-content-pad-bottom) var(--card-content-pad-side);position:relative;text-align:left;z-index:2}.design-portfolio-card .product-card-content{padding-bottom:clamp(30px,5vw,40px);padding-top:clamp(24px,4vw,32px)}.design-portfolio-card .product-buttons{padding-top:12px}.design-portfolio-card{min-height:clamp(260px,34vh,320px)}.technology-stack-card{min-height:clamp(320px,42vh,360px)}.featured-projects-card,.learn-collaborate-card{min-height:clamp(340px,46vh,360px)}.product-card-large .product-card-content{padding-left:clamp(32px,6vw,60px);text-align:left}.product-card-small .product-card-content{max-width:75%;padding-bottom:180px;padding-right:110px}.product-card-large .description{margin-left:0}.product-card-large{position:relative}.hero-memoji{bottom:-60px;height:440px;opacity:1;pointer-events:none;position:absolute;right:30px;transform:scaleX(-1) rotate(-8deg);transition:all .3s cubic-bezier(.4,0,.2,1);width:440px;z-index:1}.product-card:hover .hero-memoji{bottom:-40px;opacity:1;transform:scaleX(-1) rotate(-5deg) scale(1.05)}.skill-app-icon{cursor:pointer;height:80px;opacity:.9;pointer-events:auto;position:absolute;right:30px;top:52px;transition:all .3s cubic-bezier(.4,0,.2,1);width:80px;z-index:2}.php-icon{top:132px!important}.skill-app-icon.haptic-feedback{opacity:.7;transform:scale(.95);transition:all .08s cubic-bezier(.4,0,.2,1)}.product-card-custom{align-items:flex-start;bottom:clamp(15px,3vw,20px);box-sizing:border-box;display:flex;justify-content:center;left:clamp(15px,3vw,20px);overflow:visible;padding:0;position:absolute;right:clamp(15px,3vw,20px);top:clamp(280px,35vh,350px);z-index:2}.github-contributions-card .product-card-custom{bottom:clamp(26px,6vw,44px);height:clamp(72px,18vw,120px);height:var(--contrib-chart-height);left:clamp(20px,4vw,28px);position:absolute;right:clamp(20px,4vw,28px);top:auto}.github-contributions-wrapper{box-sizing:border-box;justify-content:center;padding:0}.contributions-bar-chart,.github-contributions-wrapper{align-items:flex-end;display:flex;height:100%;width:100%}.contributions-bar-chart{gap:clamp(2px,1vw,6px);gap:var(--contrib-chart-gap);justify-content:space-between;padding:0 clamp(6px,2vw,16px);padding:0 var(--contrib-chart-pad-x)}.contribution-bar{background:#007aff40;border:1px solid #00000014;border-radius:clamp(3px,.6vw,6px);border-radius:var(--contrib-bar-radius);box-shadow:inset 0 1px 2px #ffffff2e;cursor:pointer;flex:1 1;max-width:clamp(12px,4vw,26px);max-width:var(--contrib-bar-max-width);min-height:8%;position:relative;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1)}.contribution-bar.level-0{background:#00000026}.contribution-bar.level-1{background:#007aff59}.contribution-bar.level-2{background:#007aff8c}.contribution-bar.level-3{background:#007affbf}.contribution-bar.level-4{background:#007aff}.contribution-bar:hover{opacity:.9;transform:translateY(-2px)}.dark-theme .contribution-bar{border-color:#ffffff1f;box-shadow:inset 0 1px 2px #ffffff1f}.dark-theme .contribution-bar.level-0{background:#ffffff2e}.dark-theme .contribution-bar.level-1{background:#007aff73}.dark-theme .contribution-bar.level-2{background:#007affa6}.dark-theme .contribution-bar.level-3{background:#007affd9}.dark-theme .contribution-bar.level-4{background:#0a84ff}.contribution-bar-wrapper{align-items:end;display:flex;flex:1 1;height:100%;justify-content:center;position:relative}.contribution-tooltip-top{animation:tooltipFadeIn .2s cubic-bezier(.4,0,.2,1);bottom:8px;bottom:calc(var(--bar-height, 0%) + 8px);left:50%;margin-bottom:0;pointer-events:none;position:absolute;transform:translateX(-50%);z-index:1000}.contribution-tooltip-content{-webkit-backdrop-filter:blur(20px) saturate(200%);backdrop-filter:blur(20px) saturate(200%);background:#1c1c1ef2;border:1px solid #ffffff1a;border-radius:8px;box-shadow:0 4px 16px #0003;min-width:120px;padding:8px 12px;text-align:center}.contribution-tooltip-title{color:#fff;font-size:13px;font-size:var(--font-size-footnote);font-weight:600;margin-bottom:2px}.contribution-tooltip-text,.contribution-tooltip-title{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}.contribution-tooltip-text{color:#fffc;font-size:12px;font-size:var(--font-size-caption1);font-weight:400}.light-theme .contribution-tooltip-content{background:#fffffff2;border:1px solid #0000001a;box-shadow:0 4px 16px #0000001a}.light-theme .contribution-tooltip-title{color:#1d1d1f}.light-theme .contribution-tooltip-text{color:#1d1d1fcc}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateX(-50%) scale(.9)}to{opacity:1;transform:translateX(-50%) scale(1)}}@media (max-width:734px){.contribution-tooltip-top{bottom:12px;bottom:calc(var(--bar-height, 0%) + 12px);margin-bottom:0;max-width:calc(100vw - 40px)}.contribution-tooltip-content{max-width:200px;min-width:140px;padding:10px 14px}.contribution-tooltip-title{font-size:16px;font-size:var(--font-size-callout);margin-bottom:3px}.contribution-tooltip-text{font-size:13px;font-size:var(--font-size-footnote)}.contribution-bar.mobile-touch{cursor:pointer;min-height:20px;min-width:20px}.contribution-bar.mobile-touch:active{opacity:.7;transform:scale(.95)}.contribution-tooltip-top.mobile-tooltip{bottom:12px;bottom:calc(var(--bar-height, 0%) + 12px);left:50%;margin-bottom:0;position:absolute;top:auto;transform:translateX(-50%);z-index:10001}.mobile-tooltip .contribution-tooltip-content{border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:250px;min-width:160px;padding:12px 16px}.contribution-tooltip-close{color:#fff9;font-size:11px;font-size:var(--font-size-caption2);font-style:italic;margin-top:8px;text-align:center}.light-theme .contribution-tooltip-close{color:#1d1d1f99}.contribution-bar-wrapper:first-child .contribution-tooltip-top:not(.mobile-tooltip),.contribution-bar-wrapper:nth-child(2) .contribution-tooltip-top:not(.mobile-tooltip){left:0;transform:translateX(0)}.contribution-bar-wrapper:last-child .contribution-tooltip-top:not(.mobile-tooltip),.contribution-bar-wrapper:nth-last-child(2) .contribution-tooltip-top:not(.mobile-tooltip){left:auto;right:0;transform:translateX(0)}}.github-contributions-real{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text;overflow:hidden;padding:8px 0;width:100%}.contributions-header{margin-bottom:12px}.contributions-count{color:#86868b;font-size:12px;font-size:var(--font-size-caption1);font-weight:500}.contributions-wrapper{position:relative}.month-labels{display:flex;justify-content:space-between;margin-bottom:4px;margin-left:25px;padding-right:8px}.month-labels span{color:#86868b;flex:1 1;font-size:11px;font-size:var(--font-size-caption2);font-weight:500;text-align:left}.contributions-content{display:flex;gap:8px}.day-labels{display:flex;flex-direction:column;height:80px;justify-content:space-around;width:18px}.day-labels span{color:#86868b;font-size:11px;font-size:var(--font-size-caption2);font-weight:500;line-height:1;text-align:right}.contributions-grid{display:flex;flex:1 1;gap:1.5px;overflow-x:auto}.week-column{display:flex;flex:1 1;flex-direction:column;gap:1.5px;min-width:10px}.contribution-day{background:#ebedf0;border:1px solid #0000000a;border-radius:2px;cursor:pointer;height:10px;max-width:12px;min-width:8px;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.contribution-day:hover{box-shadow:0 2px 8px #00000026;position:relative;transform:scale(1.3);z-index:10}.contribution-tooltip{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#1c1c1ef2;border:1px solid #ffffff1a;border-radius:8px;box-shadow:0 4px 12px #0000004d;color:#fff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:12px;font-size:var(--font-size-caption1);font-weight:500;letter-spacing:-.01em;padding:8px 12px;pointer-events:none;white-space:nowrap}.contribution-tooltip:after{border-left:6px solid #0000;border-right:6px solid #0000;border-top:6px solid #1c1c1ef2;content:"";height:0;left:50%;position:absolute;top:100%;transform:translateX(-50%);width:0}.light-theme .contribution-tooltip{background:#fffffff2;border:1px solid #0000001a;color:#1d1d1f}.light-theme .contribution-tooltip:after{border-top-color:#fffffff2}@media (max-width:734px){.contribution-tooltip{font-size:11px;font-size:var(--font-size-caption2);padding:6px 10px}.contribution-day:hover{transform:scale(1.2)}}@media (max-width:480px){.contribution-tooltip{font-size:11px;font-size:var(--font-size-caption2);padding:5px 8px}}.contribution-day.level-0{background:#0000000f}.contribution-day.level-1{background:#007aff33}.contribution-day.level-2{background:#007aff66}.contribution-day.level-3{background:#007affb3}.contribution-day.level-4{background:#007aff}.contribution-day:hover{box-shadow:0 2px 8px #007aff4d;transform:scale(1.2)}.contributions-legend{align-items:center;color:#86868b;display:flex;font-size:11px;font-size:var(--font-size-caption2);gap:6px;justify-content:flex-end;margin-top:8px}.legend-levels{display:flex;gap:2px}.legend-day{border-radius:2px;height:8px;width:8px}.legend-day.level-0{background:#ebedf0}.legend-day.level-1{background:#9be9a8}.legend-day.level-2{background:#40c463}.legend-day.level-3{background:#30a14e}.legend-day.level-4{background:#216e39}@media (max-width:734px){.github-contributions-real{padding:6px 0}.month-labels{margin-left:15px;padding-right:4px}.month-labels span{font-size:11px;font-size:var(--font-size-caption2)}.day-labels{height:70px;width:12px}.day-labels span{font-size:11px;font-size:var(--font-size-caption2)}.contributions-content{gap:4px}.contributions-grid{gap:1px}.week-column{gap:1px;min-width:8px}.contribution-day{height:8px;max-width:10px;min-width:6px}.contributions-legend{font-size:11px;font-size:var(--font-size-caption2);margin-top:6px}.legend-day{height:7px;width:7px}}.task-management-container{box-sizing:border-box;display:flex;flex-direction:column;gap:clamp(8px,2vw,12px);height:100%;overflow:visible;padding:clamp(16px,4vw,24px);width:100%}.task-item{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#fffc;border:.5px solid #0000000a;border-radius:18px;cursor:grab;display:flex;justify-content:space-between;min-height:clamp(56px,8vh,70px);overflow:hidden;padding:clamp(14px,3vw,16px);position:relative;touch-action:pan-y;transition:transform .18s cubic-bezier(.25,.8,.25,1),box-shadow .18s cubic-bezier(.25,.8,.25,1),border-color .2s ease,background .2s ease;-webkit-user-select:none;user-select:none;will-change:transform}.task-item:hover{border-color:#007aff26;box-shadow:0 4px 12px #007aff14;transform:translateY(-2px)}.task-item:active{cursor:grabbing}.task-content{flex:1 1;gap:clamp(12px,3vw,16px);min-width:0;position:relative}.task-content,.task-indicator{align-items:center;display:flex}.task-indicator{flex-shrink:0;justify-content:center;left:0;position:absolute;top:50%;transform:translateY(-50%)}.task-category-dot{border-radius:50%;box-shadow:0 0 0 1px #fff3;height:clamp(6px,1.5vw,8px);opacity:.9;width:clamp(6px,1.5vw,8px)}.task-details{flex:1 1;justify-content:flex-start;min-width:0;text-align:left}.task-details,.task-header{align-items:center;display:flex}.task-header{justify-content:center;width:100%}.task-title{word-wrap:break-word;color:#1d1d1f;color:var(--text-primary);flex:1 1;font-size:clamp(14px,3.5vw,16px);font-weight:600;line-height:1.2;white-space:normal}.task-category{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffff26;border-radius:8px;flex-shrink:0;font-size:clamp(8px,1.8vw,10px);font-weight:600;letter-spacing:.8px;line-height:1;padding:clamp(3px,.8vw,4px) clamp(6px,1.5vw,8px);text-transform:uppercase}.task-meta{align-items:center;display:flex;flex-wrap:wrap;gap:clamp(6px,1.5vw,8px)}.task-status{font-size:clamp(9px,2vw,10px);font-weight:500;line-height:1;opacity:.8;text-transform:capitalize}.task-actions{display:flex;flex-shrink:0;gap:6px}.task-move-btn{align-items:center;background:#ffffffe6;border:1px solid #0000000f;border-radius:12px;box-shadow:0 2px 6px #00000014;color:#0009;cursor:pointer;display:inline-flex;height:34px;justify-content:center;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease;width:34px}.task-move-btn:hover{border-color:#007aff33;box-shadow:0 6px 12px #0000001f;color:#007affe6;transform:translateY(-1px)}.task-move-btn:active{box-shadow:0 2px 6px #00000014;transform:translateY(0)}.task-move-btn svg{pointer-events:none}.dark-theme .task-item{background:#2c2c2ecc;border-color:#ffffff14}.dark-theme .task-item:hover{background:#3a3a3ccc;border-color:#007aff33}.dark-theme .task-item.drag-over{background:#007aff14;border-color:#007aff40}.dark-theme .task-title{color:#f5f5f7}.dark-theme .task-category{background:#0003;color:#ffffffe6}.dark-theme .task-item.long-press-active{background:#3a3a3cf2;box-shadow:0 8px 24px #007aff4d}.dark-theme .task-item.drop-target{background:#007aff14;border-color:#007aff66}.dark-theme .task-item.selected{background:#007aff1a;border-color:#007aff80}.dark-theme .drag-handle{color:#ffffff4d}.dark-theme .task-item:hover .drag-handle{background:#007aff1a;color:#007affcc}.dark-theme .task-item.dragging .drag-handle,.dark-theme .task-item:active .drag-handle{background:#007aff26;color:#007affe6}.product-card:has(.task-management-container){overflow:hidden}.product-card:has(.task-management-container) .product-card-custom{left:clamp(12px,2.5vw,16px);overflow:hidden;padding:clamp(8px,2vw,12px);right:clamp(12px,2.5vw,16px)}@keyframes taskLiftEffect{0%{box-shadow:0 4px 12px #007aff14;transform:translateY(0) scale(1)}to{box-shadow:0 6px 16px #007aff1a;transform:translateY(-4px) scale(1.01)}}@keyframes taskGrabEffect{0%{box-shadow:0 4px 12px #007aff14;transform:scale(1)}to{box-shadow:0 4px 12px #007aff14;transform:scale(1.005)}}@keyframes taskPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.98;transform:scale(.998)}}.mini-popup,.smart-popup{animation:miniPopupSlideIn .3s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);background:linear-gradient(135deg,#fff3,#1c1c1eb3);border:1px solid #ffffff38;border-radius:24px;box-shadow:0 20px 60px #0006,0 8px 30px #00000040,0 2px 8px #00000026,inset 0 1px 2px #ffffff59,inset 0 -1px 2px #0003;height:auto;max-height:none;max-width:320px;min-width:240px;opacity:0;overflow:hidden;overflow:hidden!important;pointer-events:auto;position:fixed!important;transform-origin:center bottom;transition:opacity .2s ease-out,transform .1s ease-out,visibility .2s ease-out;visibility:hidden;z-index:999999!important}@media (max-width:768px){.mini-popup{margin:0 12px;max-width:calc(100vw - 24px);min-width:280px;width:auto}.mini-popup-content{padding:16px 18px}.mini-popup-title{font-size:16px;font-size:var(--font-size-callout);margin-bottom:10px}.mini-popup-description{font-size:12px;font-size:var(--font-size-caption1);line-height:1.4}}@media (max-width:480px){.mini-popup{margin:0 8px;max-width:calc(100vw - 16px);min-width:260px}.mini-popup-content{padding:14px 16px}.mini-popup-title{font-size:15px;font-size:var(--font-size-subheadline)}.mini-popup-description{font-size:11px;font-size:var(--font-size-caption2)}}.mini-popup::-webkit-scrollbar,.smart-popup::-webkit-scrollbar{display:none}.mini-popup:before,.smart-popup:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d 25%,#ffffff05 50%,#ffffff0d 75%,#ffffff1a);border-radius:24px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.mini-popup:after,.smart-popup:after{animation:glassShimmer 3s ease-in-out infinite;background:linear-gradient(45deg,#0000 30%,#ffffff1a 50%,#0000 70%);content:"";height:200%;left:-50%;pointer-events:none;position:absolute;top:-50%;transform:rotate(45deg);width:200%}.mini-popup-content,.smart-popup-content{word-wrap:break-word;height:auto;max-height:none;overflow:hidden!important;padding:18px 22px;position:relative;text-align:left;z-index:1}.mini-popup-title,.smart-popup-title{color:#fff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:17px;font-size:var(--font-size-headline);font-weight:600;letter-spacing:-.024em;letter-spacing:var(--tracking-headline);line-height:1.29;line-height:var(--line-height-headline);margin-bottom:12px;text-align:center}.mini-popup-description,.smart-popup-description{color:#ffffffd9;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:13px;font-size:var(--font-size-footnote);font-weight:400;letter-spacing:-.006em;letter-spacing:var(--tracking-footnote);line-height:1.38;line-height:var(--line-height-footnote)}.mini-popup-description strong,.smart-popup-description strong{color:#fff;font-weight:600}.mini-popup-description em,.smart-popup-description em{color:#ffffffbf;font-size:12px;font-size:var(--font-size-caption1);font-style:italic}@keyframes glassShimmer{0%{opacity:0;transform:translateX(-100%) translateY(-100%) rotate(45deg)}50%{opacity:1}to{opacity:0;transform:translateX(100%) translateY(100%) rotate(45deg)}}@keyframes miniPopupSlideIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes miniPopupSlideOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.mini-popup-closing,.smart-popup-closing{animation:miniPopupSlideOut .2s cubic-bezier(.4,0,1,1) forwards!important}.dark-theme .mini-popup,.dark-theme .smart-popup{background:linear-gradient(135deg,#3a3a3ce6,#1c1c1ed9);border:1px solid #ffffff2e}.light-theme .mini-popup,.light-theme .smart-popup{backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);background:linear-gradient(135deg,#ffffffbf,#f5f5f78c);border:1px solid #00000014;box-shadow:0 20px 60px #0003,0 8px 30px #0000001f,0 2px 8px #00000014,inset 0 1px 2px #ffffffb3,inset 0 -1px 2px #00000014}.light-theme .mini-popup:before,.light-theme .smart-popup:before{background:linear-gradient(135deg,#fff3,#ffffff1a 25%,#ffffff08 50%,#ffffff1a 75%,#fff3)}.light-theme .mini-popup:after,.light-theme .smart-popup:after{background:linear-gradient(45deg,#0000 30%,#ffffff4d 50%,#0000 70%)}.light-theme .mini-popup-title,.light-theme .smart-popup-title{color:#1d1d1f}.light-theme .mini-popup-description,.light-theme .smart-popup-description{color:#1d1d1fcc}.light-theme .mini-popup-description strong,.light-theme .smart-popup-description strong{color:#1d1d1f}.light-theme .mini-popup-description em,.light-theme .smart-popup-description em{color:#1d1d1fa6}.learning-memoji{bottom:-90px;height:330px;opacity:1;pointer-events:none;position:absolute;right:50px;transition:all .3s cubic-bezier(.4,0,.2,1);width:330px;z-index:1}.product-card:hover .learning-memoji{bottom:-85px;opacity:1;transform:scale(1.05) rotate(-3deg)}@media (max-width:1068px){.product-card-large{min-height:420px}.product-card-large .product-card-content{max-width:65%;padding-left:50px}.product-card-small .product-card-content{max-width:70%;padding-bottom:160px;padding-right:100px}.hero-memoji{bottom:-45px;height:180px;right:8px;width:180px}.php-icon{top:112px!important}.skill-app-icon{height:70px;right:25px;top:42px;width:70px}.learning-memoji{bottom:-70px;height:280px;right:10px;transform:scaleX(-1);width:280px}.product-card:hover .learning-memoji{bottom:-65px;transform:scaleX(-1) scale(1.05) rotate(3deg)}}@media (max-width:734px){.product-card-large{min-height:380px}.product-card-large .product-card-content{max-width:100%;padding-left:40px;text-align:center}.product-card-small .product-card-content{max-width:-webkit-fit-content;max-width:fit-content}.hero-memoji{bottom:-45px;height:180px;right:8px;width:180px}.skill-app-icon{height:60px;right:20px;top:40px;width:60px}.php-icon{top:84px!important}.learning-memoji{bottom:-60px;height:240px;right:5px;transform:scaleX(-1);width:240px}.product-card:hover .learning-memoji{bottom:-55px;transform:scaleX(-1) scale(1.05) rotate(3deg)}}@media (max-width:480px){.product-card-large{min-height:450px}.product-card-large .product-card-content{max-width:100%;padding-left:30px;text-align:center}.product-card-small .product-card-content{max-width:80%;padding-bottom:120px;padding-right:70px}.hero-memoji{bottom:-45px;height:180px;opacity:.8;right:8px;width:180px}.skill-app-icon{height:50px;right:15px;top:24px;width:50px}.learning-memoji{bottom:-50px;height:200px;right:0;transform:scaleX(-1);width:200px}.product-card:hover .learning-memoji{bottom:-45px;transform:scaleX(-1) scale(1.05) rotate(3deg)}}.product-card h2{color:#fff;font-size:clamp(34px,8vw,48px);font-size:clamp(var(--font-size-large-title),8vw,48px);font-weight:700;letter-spacing:.007em;letter-spacing:var(--tracking-large-title);line-height:1.21;line-height:var(--line-height-large-title);margin-bottom:clamp(4px,1vw,8px)}.product-card .subtitle{color:#ffffffe6;font-size:clamp(22px,5vw,28px);font-size:clamp(var(--font-size-title2),5vw,var(--font-size-title1));font-weight:300;letter-spacing:.007em;letter-spacing:var(--tracking-title1);line-height:1.21;line-height:var(--line-height-title1);margin-bottom:clamp(8px,2vw,12px);white-space:pre-line}.product-card .description{word-wrap:break-word;color:#fffc;font-size:clamp(15px,3.5vw,17px);font-size:clamp(var(--font-size-subheadline),3.5vw,var(--font-size-body));font-weight:400;letter-spacing:-.024em;letter-spacing:var(--tracking-body);line-height:1.29;line-height:var(--line-height-body);margin-bottom:clamp(16px,4vw,22px);margin-left:0;margin-right:auto;max-width:clamp(300px,60vw,420px);overflow-wrap:break-word;white-space:pre-line}.product-card-small h2{font-size:clamp(28px,6vw,34px);font-size:clamp(var(--font-size-title1),6vw,var(--font-size-large-title));margin-bottom:clamp(6px,1.5vw,8px)}.product-card-small .subtitle{font-size:clamp(16px,4vw,20px);font-size:clamp(var(--font-size-callout),4vw,var(--font-size-title3));margin-bottom:clamp(12px,3vw,16px)}.product-card-small .description{font-size:clamp(13px,3vw,17px);font-size:clamp(var(--font-size-footnote),3vw,var(--font-size-body));line-height:1.29;line-height:var(--line-height-body);margin-bottom:clamp(16px,4vw,24px);max-width:clamp(280px,50vw,320px)}.card,.product-card,.project-grid-card{-webkit-backface-visibility:hidden;backface-visibility:hidden;border:1px solid #ffffff40;border-radius:clamp(18px,6vw,50px);border-radius:var(--card-radius);box-shadow:none;overflow:hidden;position:relative;transform:translateZ(0);transition:all .3s cubic-bezier(.4,0,.2,1)}.card:after,.product-card:after,.project-grid-card:after{border-radius:inherit;box-shadow:inset 0 2px 6px 0 #ffffff4d,inset 0 1px 3px 0 #96c8ff26,inset 2px 0 6px 0 #fff3,inset 1px 0 3px 0 #c896ff1a,inset -2px 0 6px 0 #fff3,inset -1px 0 3px 0 #ffc8c81a,inset 0 -2px 6px 0 #ffffff26,inset 0 0 30px 2px #ffffff14,0 0 20px 2px #ffffff14,0 0 40px 4px #ffffff0a,0 20px 40px -10px #00000014,0 4px 12px #0000000a;content:"";inset:0;pointer-events:none;position:absolute;z-index:3}.card{background:#fff;background:var(--background-primary);display:grid;grid-template-areas:"content" "actions";grid-template-rows:1fr auto}.card>div{display:flex;flex-direction:column;height:100%;padding:40px}.hero-main{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;justify-content:center;text-align:center}.hero-main h1{color:#fff;margin-bottom:8px}.hero-main p{margin-bottom:40px;opacity:.9}.card-visual{align-items:center;background:linear-gradient(135deg,#007aff,#5856d6);background:linear-gradient(135deg,var(--primary-color) 0,#5856d6 100%);color:#fff;display:flex;font-size:2rem;font-weight:600;justify-content:center}.card-accent{background:#fbfbfd;background:var(--background-accent);border:.5px solid #007aff1a}.card-minimal{align-items:center;background:#8e8e931f;border:1px dashed #8e8e933d;color:#86868b;color:var(--text-secondary);display:flex;font-weight:400;justify-content:center}.product-bg-light{background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.product-bg-light,.product-bg-light h2{color:#1d1d1f;color:var(--text-primary)}.product-bg-light .description,.product-bg-light .subtitle{color:#86868b;color:var(--text-secondary);white-space:pre-line}.product-bg-light .description{word-wrap:break-word;margin-left:0}.card-small{min-height:200px}.card-medium{min-height:300px}.card-large{min-height:400px}.card-xl{min-height:500px}.card-full,.card-height-small{min-height:200px}.card-height-medium{min-height:348px}.card-height-large{min-height:580px}.section-title-card{align-items:center;background:#0000;border:none;box-shadow:none;display:flex;justify-content:center;padding:0;text-align:center}.section-title-card:hover{box-shadow:none;transform:none}.product-buttons{display:flex;gap:25px;justify-content:flex-start;padding-top:20px}.btn-liquid-glass,.product-card-small .product-buttons{justify-content:center}.btn-liquid-glass{-webkit-tap-highlight-color:transparent;align-items:center;border-radius:980px;cursor:pointer;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-weight:400;gap:8px;overflow:hidden;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.btn-liquid-glass:before{background:linear-gradient(90deg,#0000,#ffffff14,#0000);content:"";height:100%;left:-100%;pointer-events:none;position:absolute;top:0;transition:left .6s cubic-bezier(.4,0,.2,1);width:100%}.btn-liquid-glass:hover:before{left:100%}.btn-small{font-size:13px;font-size:var(--font-size-footnote);letter-spacing:-.006em;letter-spacing:var(--tracking-footnote);line-height:1.38;line-height:var(--line-height-footnote);min-height:32px;padding:8px 16px}.btn-medium{font-size:17px;font-size:var(--font-size-body);letter-spacing:-.024em;letter-spacing:var(--tracking-body);line-height:1.29;line-height:var(--line-height-body);min-height:44px;padding:12px 24px}.btn-large{font-size:17px;font-size:var(--font-size-headline);letter-spacing:-.024em;letter-spacing:var(--tracking-headline);line-height:1.29;line-height:var(--line-height-headline);min-height:52px;padding:16px 32px}.btn-liquid-glass-primary{backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);background:linear-gradient(135deg,#0a84ffbf,#5856d6b3);border:1px solid #ffffff73;box-shadow:inset 0 1px 2px #ffffff59,0 6px 16px #007aff47;color:#fff}.btn-liquid-glass-primary:hover{background:linear-gradient(135deg,#0a84ffe6,#5856d6d9);box-shadow:inset 0 1px 2px #ffffff73,0 10px 22px #007aff59;transform:translateY(-1px)}.btn-liquid-glass-primary:active{background:linear-gradient(135deg,#0a84ffa6,#5856d699);box-shadow:inset 0 1px 2px #ffffff4d,0 4px 10px #007aff38;transform:translateY(0) scale(.98)}.btn-liquid-glass-glass,.btn-liquid-glass-secondary,.btn-liquid-glass-tertiary{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#ffffff0f;border:1px solid #00000014;box-shadow:0 1px 3px #0000000a,inset 0 1px 0 #ffffff80;color:#1d1d1f;color:var(--text-primary)}.btn-liquid-glass-glass:hover,.btn-liquid-glass-secondary:hover,.btn-liquid-glass-tertiary:hover{background:#0000000f;border-color:#0000001f;box-shadow:0 4px 12px #0000000f,inset 0 1px 0 #fff9;transform:translateY(-1px)}.btn-liquid-glass-glass:active,.btn-liquid-glass-secondary:active,.btn-liquid-glass-tertiary:active{background:#0000001a;box-shadow:0 1px 2px #0000000a,inset 0 1px 0 #fff6;transform:translateY(0) scale(.98)}.btn-liquid-glass-tertiary{border:none;box-shadow:none}.btn-liquid-glass-tertiary:hover{box-shadow:none}.dark-theme .btn-liquid-glass-glass,.dark-theme .btn-liquid-glass-secondary,.dark-theme .btn-liquid-glass-tertiary{background:#ffffff0a;border-color:#ffffff1a;box-shadow:0 1px 3px #0003,inset 0 1px 0 #ffffff0d;color:#ffffffe6}.dark-theme .btn-liquid-glass-glass:hover,.dark-theme .btn-liquid-glass-secondary:hover,.dark-theme .btn-liquid-glass-tertiary:hover{background:#ffffff14;border-color:#ffffff26;box-shadow:0 4px 12px #0000004d,inset 0 1px 0 #ffffff14}.dark-theme .btn-liquid-glass-glass:active,.dark-theme .btn-liquid-glass-secondary:active,.dark-theme .btn-liquid-glass-tertiary:active{background:#ffffff1f}.dark-theme .btn-liquid-glass-tertiary{border:none;box-shadow:none}.dark-theme .btn-liquid-glass-tertiary:hover{box-shadow:none}.dark-theme .btn-liquid-glass-primary{backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);background:linear-gradient(135deg,#0a84ffcc,#5856d6bf);border-color:#fff3;box-shadow:inset 0 1px 2px #ffffff2e,0 8px 18px #0a84ff59}.dark-theme .btn-liquid-glass-primary:hover{background:linear-gradient(135deg,#409cfff2,#7878ffd9);box-shadow:inset 0 1px 2px #ffffff40,0 12px 24px #0a84ff73}.dark-theme .btn-liquid-glass-primary:active{background:linear-gradient(135deg,#0a84ffa6,#5856d699)}.btn-liquid-glass:disabled,.btn-liquid-glass[disabled]{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.btn-liquid-glass:disabled:before,.btn-liquid-glass[disabled]:before{display:none}.btn-liquid-glass:focus-visible{outline:2px solid #007aff;outline:2px solid var(--primary-color);outline-offset:2px}.product-card .btn-liquid-glass-primary,.product-card .btn-liquid-glass-primary:active,.product-card .btn-liquid-glass-primary:hover{backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);color:#fff}.product-card .btn-liquid-glass-primary{background:linear-gradient(135deg,#0a84ffbf,#5856d6b3);border:1px solid #ffffff73;box-shadow:inset 0 1px 2px #ffffff59,0 6px 16px #007aff47}.product-card .btn-liquid-glass-primary:hover{background:linear-gradient(135deg,#0a84ffe6,#5856d6d9);border-color:#ffffff8c;box-shadow:inset 0 1px 2px #ffffff73,0 10px 22px #007aff59;transform:translateY(-1px)}.product-card .btn-liquid-glass-primary:active{background:linear-gradient(135deg,#0a84ffa6,#5856d699);box-shadow:inset 0 1px 2px #ffffff4d,0 4px 10px #007aff38;transform:translateY(0) scale(.98)}.product-card .btn-liquid-glass-secondary,.product-card .btn-liquid-glass-secondary:active,.product-card .btn-liquid-glass-secondary:hover{box-shadow:none;color:#fff}.product-card .btn-liquid-glass-secondary{background:#0000;border:1px solid #ffffff59}.product-card .btn-liquid-glass-secondary:hover{background:#ffffff1f;border-color:#ffffff80;transform:translateY(-1px)}.product-card .btn-liquid-glass-secondary:active{background:#ffffff2e;transform:translateY(0) scale(.98)}.product-bg-light .btn-liquid-glass-primary,.product-bg-light .btn-liquid-glass-primary:active,.product-bg-light .btn-liquid-glass-primary:hover{border:1px solid #0000;color:#fff}.product-bg-light .btn-liquid-glass-primary{background:linear-gradient(135deg,#0a84ffbf,#5856d6b3);border:1px solid #ffffff73;box-shadow:inset 0 1px 2px #ffffff59,0 6px 16px #007aff47}.product-bg-light .btn-liquid-glass-primary:hover{background:linear-gradient(135deg,#0a84ffe6,#5856d6d9);border-color:#ffffff8c;box-shadow:inset 0 1px 2px #ffffff73,0 10px 22px #007aff59;transform:translateY(-1px)}.product-bg-light .btn-liquid-glass-primary:active{background:linear-gradient(135deg,#0a84ffa6,#5856d699);box-shadow:inset 0 1px 2px #ffffff4d,0 4px 10px #007aff38;transform:translateY(0) scale(.98)}.tag{background:#007aff1a;border-radius:6px;color:#007aff;color:var(--primary-color);display:inline-block;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:12px;font-size:var(--font-size-caption1);font-weight:400;letter-spacing:0;letter-spacing:var(--tracking-caption1);line-height:1.33;line-height:var(--line-height-caption1);padding:4px 8px;transition:all .3s cubic-bezier(.4,0,.2,1)}.tag:hover{background:#007aff;background:var(--primary-color);color:#fff;transform:scale(1.05)}.focus-ring:focus{outline:2px solid #007aff;outline:2px solid var(--primary-color);outline-offset:2px}.smooth-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}@media (max-width:1068px){:root{--card-min-height:clamp(360px,56vh,480px);--card-min-height-large:clamp(440px,64vh,580px)}.grid-container{max-width:692px;padding:0 16px}.product-grid{gap:12px;grid-template-columns:1fr}.hero-section{padding:100px 0 0}.section{padding:0}.product-card h2{font-size:34px;font-size:var(--font-size-large-title)}.product-card .subtitle{font-size:22px;font-size:var(--font-size-title2)}.product-card .description{font-size:17px;font-size:var(--font-size-body)}.contributions-grid-only .week-column{gap:6px}.contributions-grid-only .contribution-day{height:20px;width:20px}}@media (max-width:734px){:root{--card-radius:clamp(16px,7vw,40px);--card-radius-inner:clamp(12px,6vw,32px);--card-min-height:clamp(320px,55vh,420px);--card-min-height-large:clamp(380px,62vh,500px);--card-content-pad-top:clamp(22px,6vw,32px);--card-content-pad-side:clamp(20px,6vw,30px);--card-content-pad-bottom:clamp(20px,5vw,28px);--contrib-chart-height:clamp(70px,22vw,110px);--contrib-bar-max-width:clamp(10px,7vw,22px);--contrib-chart-gap:clamp(2px,2vw,6px);--contrib-chart-pad-x:clamp(6px,4vw,14px)}.grid-container{max-width:87.5%;padding:0 16px}.hero-section{padding:80px 0 0}.section{padding:0}.product-grid{grid-template-columns:1fr}.product-card-content{padding:40px 30px 30px}.product-card-large .product-card-content{max-width:100%;padding-left:40px;text-align:center}.product-card h2{font-size:34px;font-size:var(--font-size-large-title)}.product-card .subtitle{font-size:20px;font-size:var(--font-size-title3)}.product-card .description{font-size:17px;font-size:var(--font-size-body)}.product-card-small h2{font-size:28px;font-size:var(--font-size-title1)}.product-card-small .subtitle{font-size:17px;font-size:var(--font-size-headline)}.product-card-small .description{font-size:15px;font-size:var(--font-size-subheadline)}.product-buttons{align-items:center;flex-direction:column;gap:12px;padding-top:20px}.footer-main{align-items:flex-start;flex-direction:column}.footer-meta{flex-wrap:wrap}.apple-header,.liquid-glass-nav{border-radius:999px;height:60px;overflow:hidden;padding:0 clamp(18px,5vw,32px);top:16px}.apple-header-content{padding:0 clamp(18px,5vw,26px)}.apple-nav{gap:20px}.hero-memoji{bottom:-45px;height:180px;right:8px;width:180px}.contributions-grid-only .week-column{gap:4px}.contributions-grid-only .contribution-day{height:16px;width:16px}.github-contributions-wrapper{margin:15px 30px}}@media (max-width:480px){:root{--card-radius:clamp(14px,8vw,28px);--card-radius-inner:clamp(12px,7vw,24px);--card-min-height:clamp(300px,60vh,380px);--card-min-height-large:clamp(340px,64vh,420px);--card-min-height-small:clamp(240px,46vh,300px);--card-content-pad-top:clamp(20px,6vw,30px);--card-content-pad-side:clamp(18px,5vw,26px);--card-content-pad-bottom:clamp(18px,6vw,28px);--contrib-chart-height:clamp(64px,28vw,96px);--contrib-bar-max-width:clamp(10px,8vw,20px);--contrib-chart-gap:clamp(2px,3vw,6px);--contrib-chart-pad-x:clamp(6px,5vw,12px)}.apple-header,.liquid-glass-nav{border-radius:999px;height:56px;overflow:hidden;padding:0 clamp(14px,6vw,22px);top:12px}.apple-header-content{gap:clamp(8px,6vw,14px);justify-content:space-between;padding:0 clamp(14px,6vw,20px)}.apple-nav{gap:clamp(10px,6vw,14px);padding:4px 10px}.apple-nav-item{font-size:clamp(12px,4vw,13px);padding:7px 14px}.apple-theme-toggle{height:clamp(28px,9vw,32px);margin-left:14px;width:clamp(28px,9vw,32px)}.apple-theme-toggle svg{height:clamp(14px,4.5vw,16px);width:clamp(14px,4.5vw,16px)}.hero-section{padding:60px 0 0}.section{padding:0}.product-card-large .product-card-content{max-width:100%;padding:20px 15px 60px;text-align:center}.product-card-content{padding:clamp(24px,6vw,40px) clamp(22px,5vw,35px) clamp(18px,4vw,30px);padding:var(--card-content-pad-top) var(--card-content-pad-side) var(--card-content-pad-bottom) var(--card-content-pad-side)}.hero-section .product-card-large .product-card-content{text-align:left}.hero-section .product-card-large .product-buttons{align-items:flex-start;justify-content:flex-start;width:100%}.apple-theme-toggle{flex-shrink:0;margin-left:auto;position:relative;right:0}.apple-nav{gap:clamp(10px,5vw,14px)}.hero-section .product-card-large .product-buttons .btn-liquid-glass{align-self:flex-start}.product-card.auto-expand{height:-webkit-fit-content;height:fit-content;min-height:auto}.product-card.auto-expand .product-card-content{max-width:100%;padding:clamp(15px,3vw,20px)}.product-card-custom{bottom:clamp(10px,2vw,15px);left:clamp(10px,2vw,15px);position:relative;right:clamp(10px,2vw,15px);top:auto}.github-contributions-card .product-card-custom{bottom:clamp(24px,8vw,36px);height:clamp(72px,18vw,120px);height:var(--contrib-chart-height);left:clamp(16px,5vw,22px);position:absolute;right:clamp(16px,5vw,22px);top:auto}.hero-memoji{bottom:-45px;height:180px;opacity:.8;right:10px;width:180px}.contributions-grid-only .week-column{gap:4px}.contribution-day,.contributions-grid-only .contribution-day{height:16px;width:16px}}.text-center{text-align:center}.mb-8{margin-bottom:2rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:1rem}.skills-category{margin-bottom:30px}.skills-category:last-child{margin-bottom:0}.skills-category-title{color:#1d1d1f;color:var(--text-primary);font-size:17px;font-size:var(--font-size-headline);font-weight:600;letter-spacing:-.024em;letter-spacing:var(--tracking-headline);line-height:1.29;line-height:var(--line-height-headline);margin-bottom:12px}.skills-tags{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#007aff1a;border:.5px solid #007aff33;border-radius:20px;cursor:default;display:flex;flex-direction:column;gap:2px;padding:8px 16px;transition:all .2s cubic-bezier(.4,0,.2,1)}.skill-tag:hover{background:#007aff26;border-color:#007aff4d;transform:translateY(-1px)}.skill-name{color:#007aff;color:var(--primary-color);font-size:15px;font-size:var(--font-size-subheadline);font-weight:500;letter-spacing:-.016em;letter-spacing:var(--tracking-subheadline);line-height:1.33;line-height:var(--line-height-subheadline)}.skill-level{color:#86868b;color:var(--text-secondary);font-size:11px;font-size:var(--font-size-caption2);font-weight:400;letter-spacing:.5px;line-height:1.18;line-height:var(--line-height-caption2);text-transform:uppercase}.skills-tags-simple{display:flex;flex-wrap:wrap;gap:8px}.skill-tag-simple{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#007aff1a;border:.5px solid #007aff33;border-radius:16px;color:#007aff;color:var(--primary-color);cursor:default;font-size:13px;font-size:var(--font-size-footnote);font-weight:500;letter-spacing:-.006em;letter-spacing:var(--tracking-footnote);line-height:1.38;line-height:var(--line-height-footnote);padding:6px 12px;transition:all .2s cubic-bezier(.4,0,.2,1)}.skill-tag-simple:hover{background:#007aff26;border-color:#007aff4d;transform:translateY(-1px)}.dark-theme{background:#000!important;color:#f5f5f7!important}.dark-theme .apple-header,.dark-theme .liquid-glass-nav{backdrop-filter:saturate(160%) blur(45px);-webkit-backdrop-filter:saturate(160%) blur(45px);background:#0000002e;border:1px solid #ffffff1f;box-shadow:inset 0 2px 6px 0 #ffffff1f,inset 0 1px 3px 0 #96c8ff0d,inset 2px 0 6px 0 #ffffff14,inset 1px 0 3px 0 #c896ff0a,inset -2px 0 6px 0 #ffffff14,inset -1px 0 3px 0 #ffc8c80a,inset 0 -2px 6px 0 #ffffff0f,inset 0 0 30px 2px #ffffff08,0 0 20px 2px #ffffff0a,0 0 40px 4px #ffffff05,0 20px 40px -10px #00000080,0 4px 12px #0000004d}.dark-theme .liquid-glass-nav:hover{backdrop-filter:saturate(160%) blur(50px);-webkit-backdrop-filter:saturate(160%) blur(50px);background:#00000038;border:1px solid #ffffff29;box-shadow:inset 0 3px 8px 0 #ffffff29,inset 0 2px 4px 0 #96c8ff14,inset 3px 0 8px 0 #ffffff1f,inset 2px 0 4px 0 #c896ff0f,inset -3px 0 8px 0 #ffffff1f,inset -2px 0 4px 0 #ffc8c80f,inset 0 -3px 8px 0 #ffffff1a,inset 0 0 35px 3px #ffffff0d,0 0 25px 3px #ffffff0f,0 0 50px 6px #ffffff08,0 24px 48px -12px #0009,0 6px 16px #0006}.dark-theme .apple-nav{background:#ffffff1a;box-shadow:inset 0 0 0 .5px #ffffff14;box-shadow:inset 0 1px 2px #0003,inset 0 0 0 .5px #ffffff14}.dark-theme .apple-nav-slider{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#ffffff2e;border:1px solid #fff3;box-shadow:inset 0 1px 2px 0 #fff3,inset 0 -1px 1px 0 #0000004d,0 3px 8px #0006,0 1px 3px #0000004d,0 0 0 .5px #ffffff26}.dark-theme .apple-nav-item{color:#ffffff80}.dark-theme .apple-nav-item.active{color:#ffffffeb;font-weight:590}.dark-theme .apple-theme-toggle{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#000000a6;border:1px solid #ffffff26;box-shadow:inset 0 1px 2px 0 #ffffff26,inset 0 -1px 1px 0 #0000004d,0 2px 6px #0000004d,0 1px 2px #0003,0 0 0 .5px #ffffff1a;color:#ffffffbf}.dark-theme .apple-theme-toggle:hover{background:#000000bf;box-shadow:inset 0 1px 2px 0 #fff3,inset 0 -1px 1px 0 #0006,0 3px 8px #0006,0 1px 3px #0000004d,0 0 0 .5px #ffffff26;color:#fffffff2;transform:scale(1.05)}.dark-theme .hero-section,.dark-theme .section{background:#000}.dark-theme .grid-container{background:#0000}.dark-theme .product-card{background:linear-gradient(135deg,#1c1c1e,#2c2c2e)}.dark-theme .card,.dark-theme .product-card,.dark-theme .project-grid-card{border:1px solid #ffffff1f}.dark-theme .card:after,.dark-theme .product-card:after,.dark-theme .project-grid-card:after{box-shadow:inset 0 2px 6px 0 #ffffff1f,inset 0 1px 3px 0 #96c8ff0d,inset 2px 0 6px 0 #ffffff14,inset 1px 0 3px 0 #c896ff0a,inset -2px 0 6px 0 #ffffff14,inset -1px 0 3px 0 #ffc8c80a,inset 0 -2px 6px 0 #ffffff0f,inset 0 0 30px 2px #ffffff08,0 0 20px 2px #ffffff0a,0 0 40px 4px #ffffff05,0 20px 40px -10px #00000080,0 4px 12px #0000004d}.dark-theme .contributions-grid-only{background:#0000;border:none}.dark-theme .contribution-day.level-0{background:#ffffff0d}.dark-theme .contribution-day.level-1{background:#007aff40}.dark-theme .contribution-day.level-2{background:#007aff73}.dark-theme .contribution-day.level-3{background:#007affbf}.dark-theme .contribution-day.level-4{background:#007aff}.dark-theme .contribution-tooltip{background:#2c2c2ef2;border:1px solid #ffffff1a;color:#f5f5f7}.dark-theme .contribution-tooltip:after{border-top-color:#2c2c2ef2}.dark-theme .product-bg-light{background:linear-gradient(135deg,#1c1c1e,#2c2c2e);color:#f5f5f7}.dark-theme .product-bg-light h2{color:#f5f5f7}.dark-theme .product-bg-light .subtitle{color:#fffc}.dark-theme .product-bg-light .description{color:#ffffffb3}.dark-theme .skills-popup-small{background:#1c1c1e;border:.5px solid #ffffff1a}.dark-theme .skills-popup-header h2{color:#f5f5f7}.dark-theme .skills-popup-close{background:#ffffff1a;color:#fffc}.dark-theme .skill-tag-simple{background:#007aff33;border:.5px solid #007aff4d;color:#64a9ff}.content-transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:none;transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity}.content-transition.transitioning{opacity:0;transform:none}.content-transition.active{opacity:1;transform:none}.content-transition.active .card,.content-transition.active .product-card,.content-transition.active .project-grid-card{animation:cardSlideIn .5s cubic-bezier(.4,0,.2,1) both;will-change:transform,opacity}.content-transition.active .grid-container>.product-card:first-child{animation-delay:.1s}.content-transition.active .product-grid .product-card:first-child{animation-delay:.2s}.content-transition.active .product-grid .product-card:nth-child(2){animation-delay:.25s}.content-transition.active .project-grid .card:first-child,.content-transition.active .project-grid .project-grid-card:first-child{animation-delay:.2s}.content-transition.active .project-grid .card:nth-child(2),.content-transition.active .project-grid .project-grid-card:nth-child(2){animation-delay:.25s}.content-transition.active .project-grid .card:nth-child(3),.content-transition.active .project-grid .project-grid-card:nth-child(3){animation-delay:.3s}.content-transition.active .project-grid .card:nth-child(4),.content-transition.active .project-grid .project-grid-card:nth-child(4){animation-delay:.35s}.content-transition.active .project-grid .card:nth-child(5),.content-transition.active .project-grid .project-grid-card:nth-child(5){animation-delay:.4s}.content-transition.active .project-grid .card:nth-child(6),.content-transition.active .project-grid .project-grid-card:nth-child(6){animation-delay:.45s}.content-transition.active .grid-container>.product-card:nth-child(3){animation-delay:.3s}.content-transition.active .footer-card{animation:cardSlideIn .5s cubic-bezier(.4,0,.2,1) both;will-change:transform,opacity}.content-transition.transitioning .product-card{opacity:0;transform:translateY(20px) scale(.98);transition:all .2s cubic-bezier(.4,0,.2,1)}body.dialog-scroll-lock .content-transition,body.dialog-scroll-lock .content-transition.active,body.dialog-scroll-lock .content-transition.transitioning{animation:none!important;opacity:1!important;transform:none!important;transition:none!important}.content-transition.transitioning .card,.content-transition.transitioning .footer-card,.content-transition.transitioning .project-grid-card{opacity:0;transform:translateY(20px) scale(.98);transition:all .2s cubic-bezier(.4,0,.2,1)}@media (max-width:900px){.content-transition,.content-transition.active,.content-transition.transitioning{opacity:1!important;transform:none!important;transition:none!important}.content-transition .card,.content-transition .footer-card,.content-transition .product-card,.content-transition .project-grid-card{animation:none!important;opacity:1!important;transform:none!important}}@media (prefers-reduced-motion:no-preference){@keyframes cardSlideIn{0%{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.card-entrance{animation:slideUp .6s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section-fade{animation:fadeIn .8s cubic-bezier(.4,0,.2,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}@keyframes popupFromButton{0%{opacity:0;transform:scale(.8) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}}@media (max-width:560px){.skills-popup{max-width:400px;width:calc(100% - 40px)}.skills-popup-small{max-width:300px;width:calc(100% - 40px)}.skills-popup-header{padding:20px 20px 15px}.skills-popup-header h2{font-size:22px;font-size:var(--font-size-title2)}.skills-popup-content{padding:15px 20px 20px}.skills-category{margin-bottom:25px}.skill-tag{padding:6px 12px}.skill-tag-simple{font-size:12px;font-size:var(--font-size-caption1);padding:5px 10px}}@media (max-width:390px){.apple-header-content{gap:clamp(8px,6vw,12px)}.apple-nav{gap:clamp(8px,4vw,12px);min-height:44px;padding:4px clamp(8px,4vw,12px)}.apple-nav-item{font-size:clamp(11px,3.5vw,13px);padding:clamp(6px,1.5vw,8px) clamp(10px,3vw,12px)}.apple-theme-toggle{height:clamp(28px,8vw,32px);width:clamp(28px,8vw,32px)}.apple-theme-toggle svg{height:clamp(12px,3.5vw,14px);width:clamp(12px,3.5vw,14px)}.hero-section .product-card-large .product-card-content{text-align:left}.hero-section .product-card-large .product-buttons{align-items:flex-start;justify-content:flex-start;width:100%}.hero-section .product-card-large .product-buttons .btn-liquid-glass{align-self:flex-start}}.project-grid-container{padding:3rem 0;padding:var(--spacing-xl) 0}.project-grid-container.compact{padding:0}.project-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:0 auto 12px;max-width:980px;padding:0;width:100%}.project-grid-card-inner{backdrop-filter:none;-webkit-backdrop-filter:none;background:#0000;border:none;border-radius:inherit;box-shadow:none;display:flex;flex:1 1;flex-direction:column;gap:.5rem;gap:var(--spacing-xs);height:auto;padding:1.5rem;padding:var(--spacing-md);position:relative}.project-grid-card-inner:before{content:none}.project-grid-card-header{align-items:center;display:flex;gap:1rem;gap:var(--spacing-sm)}.project-grid-card-kicker{color:#86868b;color:var(--text-secondary);font-size:12px;font-size:var(--font-size-caption1);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.project-grid-card-main{display:flex;flex-direction:column;gap:.5rem;gap:var(--spacing-xs)}.project-grid-card-title{color:#1d1d1f;color:var(--text-primary);font-size:clamp(20px,2.5vw,22px);font-size:clamp(var(--font-size-title3),2.5vw,var(--font-size-title2));font-weight:600;letter-spacing:.012em;letter-spacing:var(--tracking-title3);line-height:1.2;line-height:var(--line-height-title3);min-height:2.4em;min-height:calc(2em*var(--line-height-title3));white-space:pre-line}.project-grid-card-description,.project-grid-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin:0;overflow:hidden}.project-grid-card-description{color:#86868b;color:var(--text-secondary);font-size:13px;font-size:var(--font-size-footnote);letter-spacing:-.016em;letter-spacing:var(--tracking-subheadline);line-height:1.33;line-height:var(--line-height-subheadline);min-height:2.66em;min-height:calc(2em*var(--line-height-subheadline))}.project-grid-card-deliverables{display:flex;flex-wrap:wrap;gap:8px}.project-grid-card-pill{background:#ffffff59;border:1px solid #ffffff80;border-radius:999px;color:#86868b;color:var(--text-secondary);font-size:11px;font-size:var(--font-size-caption2);letter-spacing:0;letter-spacing:var(--tracking-caption1);padding:4px 10px}.project-grid-card-visual{background:radial-gradient(120% 120% at 10% 10%,#8effe9bf,#0000 55%),radial-gradient(120% 120% at 90% 20%,#78abffa6,#0000 55%),radial-gradient(120% 120% at 50% 100%,#be8cff8c,#0000 55%),linear-gradient(135deg,#ffffffa6,#ffffff0d);border:1px solid #ffffff59;border-radius:clamp(14px,5vw,40px);border-radius:var(--card-radius-inner);box-shadow:inset 0 1px 2px #fff9,inset 0 -1px 2px #0000000f;cursor:pointer;height:110px;margin-top:1rem;margin-top:var(--spacing-sm);overflow:hidden;position:relative;transition:all .35s cubic-bezier(.32,.72,0,1)}.project-grid-card-cta{align-items:center;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background:linear-gradient(135deg,#ffffffe6,#f0f4ffe6);border:1px solid #ffffffe6;border-radius:999px;bottom:12px;box-shadow:inset 0 1px 2px #ffffffd9,inset 0 -1px 2px #0000000f,0 10px 20px #0000002e;color:#0f172ae6;display:inline-flex;font-size:12px;font-size:var(--font-size-caption1);font-weight:600;gap:8px;letter-spacing:.08em;padding:8px 12px;position:absolute;right:12px;text-transform:uppercase;transition:transform .2s cubic-bezier(.4,0,.2,1),background .2s cubic-bezier(.4,0,.2,1)}.project-grid-card-cta-text{color:#0f172af2;text-shadow:0 1px 4px #ffffffb3}.project-grid-card-cta-icon{align-items:center;background:#ffffffe6;border-radius:999px;color:#0f172ad9;display:inline-flex;height:22px;justify-content:center;width:22px}.project-grid-card-cta:hover{background:linear-gradient(135deg,#fffffff2,#f0f4fffa);transform:translateY(-1px)}.dark-theme .project-grid-card-cta:hover{background:#2c2c2eeb;color:#ffffffeb}.dark-theme .project-grid-card-cta{background:#141416cc;border-color:#fff3;box-shadow:inset 0 1px 2px #ffffff26,inset 0 -1px 2px #0006,0 8px 18px #00000059;color:#fffc}.dark-theme .project-grid-card-cta-text{color:#ffffffeb;text-shadow:0 1px 4px #0006}.dark-theme .project-grid-card-cta-icon{background:#3a3a3ce6;color:#ffffffd9}.project-grid-card-visual.visual-aurora{background:radial-gradient(120% 120% at 10% 10%,#8effe9bf,#0000 55%),radial-gradient(120% 120% at 90% 20%,#78abffa6,#0000 55%),radial-gradient(120% 120% at 50% 100%,#be8cff8c,#0000 55%),linear-gradient(135deg,#ffffffa6,#ffffff0d)}.project-grid-card-visual.visual-cobalt{background:radial-gradient(120% 120% at 20% 10%,#78abffbf,#0000 55%),radial-gradient(120% 120% at 80% 30%,#4b7dff99,#0000 55%),radial-gradient(120% 120% at 60% 100%,#a0d2ff80,#0000 55%),linear-gradient(135deg,#fff9,#ffffff14)}.project-grid-card-visual.visual-sunset{background:radial-gradient(120% 120% at 20% 20%,#ffb078bf,#0000 55%),radial-gradient(120% 120% at 85% 15%,#ff7a958c,#0000 55%),radial-gradient(120% 120% at 50% 100%,#ffce828c,#0000 55%),linear-gradient(135deg,#fff9,#ffffff14)}.project-grid-card-visual.visual-mint{background:radial-gradient(120% 120% at 15% 15%,#78ffd6a6,#0000 55%),radial-gradient(120% 120% at 85% 25%,#78ffc78c,#0000 55%),radial-gradient(120% 120% at 55% 100%,#8cdcff73,#0000 55%),linear-gradient(135deg,#ffffff9e,#ffffff14)}.project-grid-card-visual.visual-rose{background:radial-gradient(120% 120% at 20% 15%,#ffaad2a6,#0000 55%),radial-gradient(120% 120% at 90% 30%,#ff8caa8c,#0000 55%),radial-gradient(120% 120% at 55% 100%,#ffd2d280,#0000 55%),linear-gradient(135deg,#fff9,#ffffff14)}.project-grid-card-visual.visual-ink{background:radial-gradient(120% 120% at 20% 10%,#8ca0ff8c,#0000 55%),radial-gradient(120% 120% at 85% 25%,#788cff66,#0000 55%),radial-gradient(120% 120% at 50% 100%,#bec8ff73,#0000 55%),linear-gradient(135deg,#f5f7ff99,#ffffff1a)}.project-grid-card-visual:after{background:radial-gradient(circle at 20% 20%,#ffffffe6,#fff0 60%);content:"";inset:-40% -20%;opacity:0;pointer-events:none;position:absolute;transform:translateY(12px) rotate(-6deg);transition:opacity .35s cubic-bezier(.32,.72,0,1),transform .35s cubic-bezier(.32,.72,0,1)}.project-grid-card-visual:hover{border-color:#ffffffb3;box-shadow:inset 0 2px 6px #ffffffe6,inset 0 -2px 6px #fff6,0 10px 24px #0000001f;transform:translateY(-2px) scale(1.01)}.project-grid-card-visual:hover:after{opacity:1;transform:translateY(0) rotate(-4deg)}.dark-theme .project-grid-card-inner{background:#1414168c;border-color:#ffffff1a}.dark-theme .project-grid-card-inner:before{content:none}.dark-theme .project-grid-card-pill{border-color:#ffffff2e}.dark-theme .project-grid-card-visual{border-color:#ffffff2e}.dark-theme .project-grid-card-visual,.dark-theme .project-grid-card-visual.visual-aurora{background:radial-gradient(120% 120% at 10% 10%,#4cffd659,#0000 55%),radial-gradient(120% 120% at 90% 20%,#589bff59,#0000 55%),radial-gradient(120% 120% at 50% 100%,#a468ff4d,#0000 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-cobalt{background:radial-gradient(120% 120% at 15% 10%,#589bff59,#0000 55%),radial-gradient(120% 120% at 85% 25%,#4682ff4d,#0000 55%),radial-gradient(120% 120% at 50% 100%,#78aaff47,#0000 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-sunset{background:radial-gradient(120% 120% at 20% 20%,#ff965a4d,#0000 55%),radial-gradient(120% 120% at 85% 15%,#ff78a040,#0000 55%),radial-gradient(120% 120% at 50% 100%,#ffc87840,#0000 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-mint{background:radial-gradient(120% 120% at 15% 15%,#78ffd647,#0000 55%),radial-gradient(120% 120% at 85% 25%,#78ffc73d,#0000 55%),radial-gradient(120% 120% at 55% 100%,#8cdcff38,#0000 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-rose{background:radial-gradient(120% 120% at 20% 15%,#ffaad247,#0000 55%),radial-gradient(120% 120% at 90% 30%,#ff8caa38,#0000 55%),radial-gradient(120% 120% at 55% 100%,#ffd2d238,#0000 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-ink{background:radial-gradient(120% 120% at 20% 10%,#8ca0ff47,#0000 55%),radial-gradient(120% 120% at 85% 25%,#788cff3d,#0000 55%),radial-gradient(120% 120% at 50% 100%,#bec8ff38,#0000 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual:after{background:radial-gradient(circle at 20% 20%,#ffffff8c,#fff0 60%)}.dark-theme .project-grid-card-visual:hover{border-color:#ffffff47;box-shadow:inset 0 2px 8px #ffffff2e,inset 0 -2px 8px #00000080,0 12px 28px #00000080}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(40px) scale(.95)}}.project-dialog-overlay{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#00000059;display:flex;inset:0;isolation:isolate;justify-content:center;padding:20px;position:fixed;transition:opacity .2s ease;z-index:10000}.project-dialog-overlay,.project-dialog-overlay.opening{animation:fadeIn .2s ease}.project-dialog-overlay.closing{animation:fadeOut .18s ease forwards;opacity:1}.project-dialog-overlay.muted{opacity:.35;pointer-events:none}.project-dialog{--dialog-text-primary:var(--text-primary);--dialog-text-secondary:var(--text-secondary);--dialog-text-muted:#1d1d1fa6;backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);background:#ffffffe0;border:1px solid #ffffff73;border-radius:clamp(18px,6vw,50px);border-radius:var(--card-radius);box-shadow:0 16px 32px -12px #00000047,0 6px 16px #0000001f,inset 0 1px 0 #fff9;color:#1d1d1f;color:var(--text-primary);max-height:90vh;max-width:900px;overflow-y:auto;position:relative;width:100%;will-change:opacity,transform}.project-dialog.opening{animation:slideUp .22s cubic-bezier(.33,1,.68,1)}.project-dialog.closing{animation:slideDown .2s ease forwards}.project-dialog.inactive{opacity:0;pointer-events:none;transform:translateY(14px) scale(.985);transition:opacity .22s ease,transform .22s ease}.project-dialog-close{align-items:center;background:#fff;border:1px solid #d2d2d7;border:1px solid var(--border-light);border-radius:50%;box-shadow:0 6px 16px #00000014;color:#1d1d1f;color:var(--text-primary);cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:20px;top:20px;transition:transform .15s ease,box-shadow .15s ease;width:36px;z-index:3}.project-dialog-close:hover{box-shadow:0 8px 18px #0000001f;transform:scale(1.05)}.project-dialog-close:active{transform:scale(.97)}body.dialog-scroll-lock{overflow:hidden;padding-right:0;padding-right:var(--dialog-scrollbar-comp,0)}.project-dialog-content{display:flex;flex-direction:column;gap:clamp(16px,3vw,28px);padding:clamp(52px,7vw,72px) clamp(32px,6vw,56px) clamp(32px,6vw,56px)}.project-dialog-hero{grid-gap:clamp(16px,3vw,24px);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);background:#ffffffd1;border:1px solid #ffffff80;border-radius:clamp(14px,5vw,40px);border-radius:var(--card-radius-inner);display:grid;gap:clamp(16px,3vw,24px);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);padding:clamp(18px,3vw,28px)}.project-dialog-hero-text{display:flex;flex-direction:column;gap:clamp(6px,2vw,12px)}.project-dialog-badge{align-items:center;background:#007aff1f;border-radius:999px;color:#007aff;display:inline-flex;font-size:12px;font-size:var(--font-size-caption1);font-weight:600;justify-content:center;letter-spacing:.06em;padding:8px 12px;text-transform:uppercase;width:-webkit-fit-content;width:fit-content}.project-dialog-title{color:var(--dialog-text-primary);font-size:clamp(28px,3.5vw,32px);font-size:clamp(var(--font-size-title1),3.5vw,32px);font-weight:700;margin:0}.project-dialog-summary{color:var(--dialog-text-secondary);font-size:clamp(15px,2.8vw,17px);font-size:clamp(var(--font-size-subheadline),2.8vw,var(--font-size-body));line-height:1.29;line-height:var(--line-height-body);margin:0}.project-dialog-timeline{align-items:center;background:#0000;border:none;border-radius:0;color:var(--dialog-text-primary);display:flex;font-size:16px;font-size:var(--font-size-callout);gap:10px;margin-top:4px;padding:0}.project-dialog-timeline-label{color:var(--dialog-text-muted);font-size:12px;font-size:var(--font-size-caption1);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.project-dialog-timeline-value{font-weight:600}.project-dialog-hero-media{align-items:center;background:#fff;border:none;border-radius:clamp(14px,5vw,40px);border-radius:var(--card-radius-inner);box-shadow:none;cursor:pointer;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:clamp(180px,32vh,260px);overflow:hidden;padding:clamp(12px,3vw,18px);position:relative;transition:transform .15s ease}.project-dialog-hero-image{border-radius:14px;box-shadow:none;display:block;height:auto;max-height:260px;object-fit:contain;width:100%}.project-dialog-hero-placeholder{align-items:center;color:var(--dialog-text-muted);display:flex;font-size:16px;font-size:var(--font-size-callout);font-weight:600;gap:8px;justify-content:center}.project-dialog-columns{grid-gap:clamp(18px,3vw,28px);display:grid;gap:clamp(18px,3vw,28px);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.project-dialog-column{display:flex;flex-direction:column;gap:1.5rem;gap:var(--spacing-md,16px)}.project-dialog-section{margin-bottom:2rem;margin-bottom:var(--spacing-lg)}.project-dialog-section-title{color:var(--dialog-text-secondary);font-size:12px;font-size:var(--font-size-caption1);font-weight:600;letter-spacing:.06em;line-height:1.33;line-height:var(--line-height-caption1);margin:0 0 8px;text-transform:uppercase}.project-dialog-section-content{color:var(--dialog-text-primary);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,system-ui,sans-serif;font-size:clamp(15px,2.6vw,17px);font-size:clamp(var(--font-size-subheadline),2.6vw,var(--font-size-body));letter-spacing:-.024em;letter-spacing:var(--tracking-body);line-height:1.29;line-height:var(--line-height-body);margin:0}.project-dialog-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.project-dialog-list-item{align-items:flex-start;color:var(--dialog-text-primary);display:flex;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,system-ui,sans-serif;font-size:clamp(13px,2.4vw,17px);font-size:clamp(var(--font-size-footnote),2.4vw,var(--font-size-body));gap:10px;letter-spacing:-.024em;letter-spacing:var(--tracking-body);line-height:1.29;line-height:var(--line-height-body)}.project-dialog-list-dot{background:#007aff;background:var(--primary-color);border-radius:999px;box-shadow:0 0 0 4px #007aff1f;flex:0 0 8px;height:8px;margin-top:.3em;width:8px}.project-dialog-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:1rem;margin-top:var(--spacing-sm)}.project-dialog-meta{grid-gap:clamp(10px,2vw,16px);display:grid;gap:clamp(10px,2vw,16px);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.project-dialog-meta-card{align-items:flex-start;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);background:#ffffffd1;border:1px solid #ffffff80;border-radius:clamp(14px,5vw,40px);border-radius:var(--card-radius-inner);box-shadow:0 8px 18px #00000014,inset 0 1px 0 #fff9;display:flex;flex-direction:column;gap:6px;padding:clamp(12px,2vw,18px)}.project-dialog-meta-label{color:var(--dialog-text-secondary);font-size:12px;font-size:var(--font-size-caption1);font-weight:600;letter-spacing:.08em;line-height:1;margin:0;text-transform:uppercase}.project-dialog-meta-value{color:var(--dialog-text-primary);font-size:clamp(20px,3.2vw,22px);font-size:clamp(var(--font-size-title3),3.2vw,var(--font-size-title2));font-weight:700;line-height:1.1;margin:0}.project-dialog-meta-sub{color:var(--dialog-text-muted);font-size:13px;font-size:var(--font-size-footnote);line-height:1.2;margin:0}.dark-theme .project-grid-card-title{color:#f5f5f7}.dark-theme .project-grid-card-description{color:#fffc}.dark-theme .project-grid-card-kicker{color:#ffffffb3}.dark-theme .project-grid-card-pill{background:#ffffff14;border-color:#ffffff1f;color:#ffffffbf}.dark-theme .project-dialog{--dialog-text-primary:#f5f5f7;--dialog-text-secondary:#ffffffbf;--dialog-text-muted:#fff9;background:#18181c;border-color:#ffffff1f;box-shadow:0 18px 40px #0006,0 3px 12px #00000052}.dark-theme .project-dialog-hero{background:#1f1f24;border-color:#ffffff1f}.dark-theme .project-dialog-badge,.dark-theme .project-dialog-timeline{border-color:#ffffff1f;color:#fffc}.dark-theme .project-dialog-summary{color:#f5f5f7c7}.dark-theme .project-dialog-hero-media{background:#2c2c2ed9;border-color:#ffffff1f}.dark-theme .project-dialog-meta-card{background:#2c2c2ed1;border-color:#ffffff1f}.dark-theme .project-dialog-meta-value{color:var(--dialog-text-primary)}.dark-theme .project-dialog-list-dot{box-shadow:0 0 0 4px #0a84ff33}.dark-theme .project-dialog-close{background:#18181abf;border-color:#ffffff1f;color:#f5f5f7}.mockup-viewer-overlay{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#00000059;display:flex;inset:0;isolation:isolate;justify-content:center;opacity:0;overflow:hidden;padding:20px;position:fixed;z-index:11000}.mockup-viewer-overlay,.mockup-viewer-overlay.opening{animation:fadeIn .2s ease forwards}.mockup-viewer-overlay.closing{animation:fadeOut .18s ease forwards}.mockup-viewer{align-items:center;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);background:#ffffffe6;border:1px solid #ffffff80;border-radius:clamp(18px,6vw,50px);border-radius:var(--card-radius);box-shadow:0 24px 48px -12px #00000040,0 8px 16px #0000001f;display:inline-flex;flex-direction:column;max-width:min(980px,calc(100vw - 48px));opacity:0;padding:clamp(24px,4vw,36px);pointer-events:auto;position:relative;transform:translateY(20px) scale(.98);width:min(920px,calc(100vw - 64px))}.mockup-viewer,.mockup-viewer.opening{animation:slideUp .22s cubic-bezier(.33,1,.68,1) forwards}.mockup-viewer.closing{animation:slideDown .18s ease forwards}.mockup-viewer-close{align-items:center;background:#fff;border:1px solid #d2d2d7;border:1px solid var(--border-light);border-radius:50%;box-shadow:0 6px 16px #00000014;color:#1d1d1f;color:var(--text-primary);cursor:pointer;display:inline-flex;height:34px;justify-content:center;position:absolute;right:20px;top:20px;transition:transform .15s ease,box-shadow .15s ease;width:34px;z-index:3}.mockup-viewer-close:hover{transform:scale(1.05)}.mockup-viewer-stage{align-items:center;display:flex;justify-content:center;min-height:0;overflow:visible;padding:clamp(20px,5vw,36px) clamp(24px,6vw,48px);position:relative}.mockup-viewer-zoom{border-radius:0;overflow:visible;padding:clamp(10px,3vw,16px);position:relative}.mockup-viewer-image{filter:drop-shadow(0 18px 30px rgba(0,0,0,.3));max-height:70vh;max-width:min(78vw,700px);object-fit:contain;width:auto;z-index:1}.mockup-viewer-nav{align-items:center;background:#ffffffe6;border:1px solid #d2d2d7;border:1px solid var(--border-light);border-radius:50%;color:#1d1d1f;color:var(--text-primary);cursor:pointer;display:inline-flex;height:42px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:42px;z-index:2}.mockup-viewer-prev{left:clamp(-27px,2vw,10px)}.mockup-viewer-next{right:clamp(-27px,2vw,10px)}.mockup-viewer-dots{align-items:center;display:flex;gap:8px;justify-content:center;margin-top:6px}.mockup-viewer-dot{background:#1d1d1f33;border:none;border-radius:999px;cursor:pointer;height:8px;transition:transform .2s ease,background .2s ease;width:8px}.mockup-viewer-dot.active{background:#1d1d1fa6;transform:scale(1.2)}.dark-theme .mockup-viewer{background:#18181c;border-color:#ffffff1f}.dark-theme .mockup-viewer-close,.dark-theme .mockup-viewer-nav{background:#2c2c2ed9;border-color:#ffffff1f;color:#ffffffe6}.dark-theme .mockup-viewer-dot{background:#fff3}.dark-theme .mockup-viewer-dot.active{background:#ffffffb3}@media (max-width:768px){.project-dialog-content{padding:30px 26px}.project-dialog-close{right:16px;top:16px}.project-dialog-columns,.project-dialog-hero{grid-template-columns:1fr}}@media (max-width:480px){.project-dialog-content{padding:24px 18px}.project-dialog-title{font-size:28px;font-size:var(--font-size-title1)}.project-dialog-hero{padding:20px}}@media (max-width:1024px){*{scrollbar-width:none!important}::-webkit-scrollbar{display:none!important;height:0!important;width:0!important}}
/*# sourceMappingURL=main.f43c7168.css.map*/