.site-footer{width:100%;margin-top:60px;padding:var(--spacing-lg) var(--spacing-md);text-align:center;border-top:1px solid rgba(200,200,215,.3);background:transparent}.footer-content{max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-xs)}.footer-links{display:flex;justify-content:center;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap}.footer-links a{color:var(--text-secondary);text-decoration:none;font-size:var(--font-size-footnote);letter-spacing:var(--tracking-footnote);transition:color .2s ease}.footer-links a:hover{color:var(--primary-color)}.footer-divider{color:var(--border-light);font-size:var(--font-size-caption2);-webkit-user-select:none;user-select:none}.footer-copy{margin:0;color:var(--text-secondary);font-size:var(--font-size-caption1);letter-spacing:var(--tracking-caption1);line-height:var(--line-height-caption1)}.dark-theme .site-footer{background:#121214cc;border-top-color:#ffffff1a}.dark-theme .footer-links a{color:#ffffff80}.dark-theme .footer-links a:hover{color:#0a84ffe6}.dark-theme .footer-divider{color:#ffffff26}.dark-theme .footer-copy{color:#fff6}:root{--primary-color: #007AFF;--secondary-color: #1d1d1f;--accent-color: #30d158;--text-primary: #1d1d1f;--text-secondary: #86868b;--text-light: #d2d2d7;--background-primary: #f5f7fb;--background-secondary: #f0f2f8;--background-accent: #f7f8fc;--border-light: #d2d2d7;--shadow-light: rgba(0, 0, 0, .04);--shadow-medium: rgba(0, 0, 0, .08);--shadow-strong: rgba(0, 0, 0, .12);--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, .6vw, 6px);--contrib-chart-gap: clamp(2px, 1vw, 6px);--contrib-chart-pad-x: clamp(6px, 2vw, 16px);--card-gap: 12px;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--spacing-xxl: 4rem;--font-size-large-title: 56px;--font-size-title1: 48px;--font-size-title2: 40px;--font-size-title3: 28px;--font-size-headline: 21px;--font-size-body: 17px;--font-size-callout: 16px;--font-size-subheadline: 14px;--font-size-footnote: 12px;--font-size-caption1: 11px;--font-size-caption2: 10px;--line-height-large-title: 1.07;--line-height-title1: 1.08;--line-height-title2: 1.1;--line-height-title3: 1.14;--line-height-headline: 1.24;--line-height-body: 1.47;--line-height-callout: 1.38;--line-height-subheadline: 1.43;--line-height-footnote: 1.33;--line-height-caption1: 1.27;--line-height-caption2: 1.2;--tracking-large-title: -.015em;--tracking-title1: -.012em;--tracking-title2: -.01em;--tracking-title3: .007em;--tracking-headline: .011em;--tracking-body: -.022em;--tracking-callout: -.016em;--tracking-subheadline: -.016em;--tracking-footnote: -.006em;--tracking-caption1: 0;--tracking-caption2: .006em}*{box-sizing:border-box}html{height:100vh}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,system-ui,sans-serif;line-height:var(--line-height-body);color:var(--text-primary);background:#f4f6fb;min-height:100vh;overflow-x:hidden;margin:0;padding:0;font-size:var(--font-size-body);font-weight:400;letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;position:relative}.light-theme:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 75% 55% at 72% 12%,rgba(140,200,255,.22) 0%,rgba(120,180,255,.1) 45%,transparent 70%),radial-gradient(ellipse 65% 50% at 20% 55%,rgba(180,150,255,.16) 0%,rgba(160,130,240,.06) 45%,transparent 70%),radial-gradient(ellipse 80% 45% at 55% 88%,rgba(255,180,200,.14) 0%,rgba(255,160,180,.05) 40%,transparent 70%),radial-gradient(ellipse 80% 75% at 50% 50%,transparent 55%,rgba(200,200,210,.2) 100%)}.light-theme:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.025;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:180px 180px}.app-container{min-height:100vh;position:relative;z-index:1;background:transparent;color:var(--text-primary)}.main-content{padding-top:90px;min-height:100vh}.view-container{min-height:100vh}.view-transition{position:relative;width:100%;overflow:visible}.view-transition-left{animation:slideInFromRight .45s cubic-bezier(.25,.8,.25,1) forwards}.view-transition-right{animation:slideInFromLeft .45s cubic-bezier(.25,.8,.25,1) forwards}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.app-scroll{overflow-y:scroll;scrollbar-gutter:stable}*{scrollbar-width:none;scrollbar-color:transparent transparent}*::-webkit-scrollbar{width:0;height:0;display:none}h1,h2,h3,h4,h5,h6{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;font-weight:600;color:var(--text-primary);margin:0}h1{font-size:var(--font-size-large-title);font-weight:700;letter-spacing:var(--tracking-large-title);line-height:var(--line-height-large-title)}h2{font-size:var(--font-size-title1);font-weight:600;letter-spacing:var(--tracking-title1);line-height:var(--line-height-title1)}h3{font-size:var(--font-size-title3);font-weight:600;letter-spacing:var(--tracking-title3);line-height:var(--line-height-title3)}h4{font-size:var(--font-size-headline);font-weight:600;letter-spacing:var(--tracking-headline);line-height:var(--line-height-headline)}h5{font-size:var(--font-size-body);font-weight:600;letter-spacing:var(--tracking-body);line-height:var(--line-height-body)}h6{font-size:var(--font-size-subheadline);font-weight:600;letter-spacing:.06em;line-height:var(--line-height-subheadline);text-transform:uppercase}.hero-section{background:transparent;padding:40px 0 0;position:relative}.section{padding:0;position:relative;margin:var(--card-gap) 0 0 0}.section#projects{margin-bottom:0}.design-projects-section{padding-top:0}.section:nth-child(2n){background:transparent}.grid-container{max-width:980px;margin:0 auto;padding:0 22px 40px;display:flex;flex-direction:column;gap:var(--card-gap)}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--card-gap);margin-bottom:0}.product-grid-single{display:grid;grid-template-columns:1fr;gap:var(--card-gap);margin-bottom:0}.hero-product-grid{margin-bottom:0}.product-card.auto-expand{min-height:auto;height:auto}.product-card.auto-expand .product-card-content{padding:clamp(20px,4vw,25px) clamp(20px,4vw,25px) clamp(15px,3vw,20px) clamp(20px,4vw,25px);max-width:100%}.product-card.auto-expand .product-card-custom{position:static;flex:1;align-items:center;margin-top:auto}.site-footer{padding:calc(var(--card-gap) * 2) 0 32px}.footer-card{background:linear-gradient(135deg,#ffffffa6,#fafaff80);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);padding:clamp(20px,4vw,32px);display:flex;flex-direction:column;gap:clamp(14px,3vw,20px)}.footer-main{display:flex;align-items:center;justify-content:center;gap:clamp(16px,3vw,24px);flex-wrap:wrap}.footer-links{display:flex;align-items:center;gap:clamp(10px,2vw,16px);flex-wrap:wrap;position:relative;z-index:2;justify-content:center;width:100%}.footer-link{text-decoration:none;color:var(--text-primary);width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.35);background:#fff9;backdrop-filter:blur(10px) saturate(160%);-webkit-backdrop-filter:blur(10px) saturate(160%);transition:transform .2s cubic-bezier(.4,0,.2,1),background .2s cubic-bezier(.4,0,.2,1)}.footer-link:hover{transform:translateY(-1px);background:#ffffffd9}.footer-meta{display:flex;align-items:center;gap:10px;font-size:var(--font-size-caption1);color:var(--text-secondary);position:relative;z-index:2;justify-content:center;width:100%}.footer-dot{width:4px;height:4px;border-radius:999px;background:currentColor;opacity:.6}.dark-theme .footer-meta{color:#ffffffb3}.dark-theme .footer-link{color:#ffffffd9;border-color:#ffffff2e;background:#18181abf}.dark-theme .footer-link:hover{background:#1c1c1ed9}.product-card-clickable{cursor:pointer}.product-card-clickable:hover{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:var(--card-min-height-large)}.product-card-small{min-height:var(--card-min-height-small)}.product-card-content{padding:var(--card-content-pad-top) var(--card-content-pad-side) var(--card-content-pad-bottom) var(--card-content-pad-side);text-align:left;display:flex;flex-direction:column;position:relative;overflow:hidden;max-width:70%;flex:0 0 auto;z-index:2}.design-portfolio-card .product-card-content{padding-top:clamp(24px,4vw,32px);padding-bottom:clamp(30px,5vw,40px)}.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)}.btn-apple{display:inline-flex;align-items:center;justify-content:center;position:relative;border:none;outline:none;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-weight:400;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none;text-decoration:none;transition:all .3s cubic-bezier(.25,.8,.25,1);z-index:1;-webkit-tap-highlight-color:transparent}.btn-medium{padding:8px 22px;font-size:17px;border-radius:980px;height:44px;letter-spacing:-.022em}.btn-small{padding:4px 16px;font-size:12px;border-radius:980px;height:32px;letter-spacing:0}.btn-large{padding:12px 28px;font-size:17px;border-radius:980px;height:50px;font-weight:400;letter-spacing:-.022em}.btn-apple-primary{background:#007affd9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);color:#fff;border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px #ffffff4d,inset 0 -1px #0000001a,0 4px 10px #007aff4d}.btn-apple-primary:hover{background:#007afff2;transform:translateY(-1px);box-shadow:inset 0 1px #fff6,inset 0 -1px #0000001a,0 6px 16px #007aff66}.btn-apple-primary:active{transform:translateY(0) scale(.98);background:#007aff;box-shadow:inset 0 2px 4px #0000001a,0 2px 4px #007aff33}.btn-apple-secondary{background:#ffffffa6;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);color:var(--text-primary);border:1px solid rgba(0,0,0,.05);box-shadow:inset 0 1px #fffc,0 2px 8px #0000000d}.btn-apple-secondary:hover{background:#ffffffd9;transform:translateY(-1px);box-shadow:inset 0 1px #ffffffe6,0 4px 12px #00000014}.btn-apple-secondary:active{transform:translateY(0) scale(.98);background:#ffffffe6;box-shadow:inset 0 1px 2px #0000000d}.dark-theme .btn-apple-primary{background:#0a84ffcc;border:1px solid rgba(255,255,255,.15);box-shadow:inset 0 1px #ffffff40,0 4px 12px #0a84ff4d}.dark-theme .btn-apple-secondary{background:#3c3c3e99;color:#fff;border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px #ffffff1a,0 2px 8px #0003}.dark-theme .btn-apple-secondary:hover{background:#505052cc;box-shadow:inset 0 1px #ffffff26,0 4px 12px #0000004d}.btn-loading{cursor:wait;opacity:.8}.btn-spinner{display:inline-flex;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.animate-spin{animation:spin 1s linear infinite;transform-origin:center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-content-loading{opacity:0;visibility:hidden}.btn-full-width{width:100%;display:flex}.btn-apple-ghost{background:transparent;color:var(--text-primary);border:1px solid transparent;box-shadow:none}.btn-apple-ghost:hover{background:#0000000d;color:var(--primary-color)}.dark-theme .btn-apple-ghost:hover{background:#ffffff1a;color:#fff}.btn-apple-ghost:active{opacity:.7;background:#0000001a}.btn-apple-icon{background:transparent;color:var(--text-secondary);border:none;box-shadow:none;padding:6px;width:auto;height:auto;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.btn-apple-icon:hover{background:#0000000d;color:var(--text-primary);transform:scale(1.05)}.dark-theme .btn-apple-icon:hover{background:#ffffff1a;color:#fff}.btn-apple-icon:active{transform:scale(.95);background:#0000001a}.product-card-small .product-card-content{max-width:75%;padding-right:110px;padding-bottom:180px}.product-card-large .description{margin-left:0}.product-card-large{position:relative}.hero-memoji{position:absolute;bottom:-60px;right:30px;width:440px;height:440px;opacity:1;transform:scaleX(-1) rotate(-8deg);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1;pointer-events:none}.product-card:hover .hero-memoji{transform:scaleX(-1) rotate(-5deg) scale(1.05);opacity:1;bottom:-40px}.skill-app-icon{position:absolute;top:52px;right:30px;width:80px;height:80px;opacity:.9;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:2;pointer-events:auto;cursor:pointer}.php-icon{top:132px!important}.skill-app-icon.haptic-feedback{transform:scale(.95);opacity:.7;transition:all .08s cubic-bezier(.4,0,.2,1)}.product-card-custom{position:absolute;top:clamp(280px,35vh,350px);left:clamp(15px,3vw,20px);right:clamp(15px,3vw,20px);bottom:clamp(15px,3vw,20px);display:flex;align-items:flex-start;justify-content:center;padding:0;box-sizing:border-box;overflow:visible;z-index:2}.github-contributions-card .product-card-custom{position:absolute;top:auto;left:clamp(20px,4vw,28px);right:clamp(20px,4vw,28px);bottom:clamp(26px,6vw,44px);height:var(--contrib-chart-height)}.github-contributions-wrapper{width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;padding:0;box-sizing:border-box}.contribution-status-message{text-align:center;color:var(--text-secondary);font-size:var(--font-size-subheadline);letter-spacing:var(--tracking-subheadline);width:100%;padding:var(--spacing-md)}.contributions-bar-chart{display:flex;align-items:flex-end;gap:var(--contrib-chart-gap);width:100%;height:100%;padding:0 var(--contrib-chart-pad-x);justify-content:space-between}.contribution-bar{flex:1;max-width:var(--contrib-bar-max-width);min-height:8%;border-radius:var(--contrib-bar-radius);background:#007aff40;border:1px solid rgba(0,0,0,.08);box-shadow:inset 0 1px 2px #ffffff2e;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative}.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{transform:translateY(-2px);opacity:.9}.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{position:relative;display:flex;align-items:end;justify-content:center;flex:1;height:100%}.contribution-tooltip-top{position:absolute;bottom:calc(var(--bar-height, 0%) + 8px);left:50%;transform:translate(-50%);margin-bottom:0;z-index:1000;animation:tooltipFadeIn .2s cubic-bezier(.4,0,.2,1);pointer-events:none}.contribution-tooltip-content{background:#1c1c1ef2;-webkit-backdrop-filter:blur(20px) saturate(200%);backdrop-filter:blur(20px) saturate(200%);border-radius:8px;padding:8px 12px;box-shadow:0 4px 16px #0003;border:1px solid rgba(255,255,255,.1);min-width:120px;text-align:center}.contribution-tooltip-title{color:#fff;font-size:var(--font-size-footnote);font-weight:600;margin-bottom:2px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}.contribution-tooltip-text{color:#fffc;font-size:var(--font-size-caption1);font-weight:400;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}.light-theme .contribution-tooltip-content{background:#fffffff2;border:1px solid rgba(0,0,0,.1);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:translate(-50%) scale(.9)}to{opacity:1;transform:translate(-50%) scale(1)}}@media (max-width: 734px){.contribution-tooltip-top{bottom:calc(var(--bar-height, 0%) + 12px);margin-bottom:0;max-width:calc(100vw - 40px)}.contribution-tooltip-content{padding:10px 14px;min-width:140px;max-width:200px}.contribution-tooltip-title{font-size:var(--font-size-callout);margin-bottom:3px}.contribution-tooltip-text{font-size:var(--font-size-footnote)}.contribution-bar.mobile-touch{min-width:20px;min-height:20px;cursor:pointer}.contribution-bar.mobile-touch:active{transform:scale(.95);opacity:.7}.contribution-tooltip-top.mobile-tooltip{position:absolute;bottom:calc(var(--bar-height, 0%) + 12px);top:auto;left:50%;transform:translate(-50%);margin-bottom:0;z-index:10001}.mobile-tooltip .contribution-tooltip-content{padding:12px 16px;min-width:160px;max-width:250px;border-radius:12px;box-shadow:0 8px 32px #0000004d}.contribution-tooltip-close{margin-top:8px;font-size:var(--font-size-caption2);color:#fff9;text-align:center;font-style:italic}.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:translate(0)}.contribution-bar-wrapper:nth-last-child(2) .contribution-tooltip-top:not(.mobile-tooltip),.contribution-bar-wrapper:last-child .contribution-tooltip-top:not(.mobile-tooltip){left:auto;right:0;transform:translate(0)}}.github-contributions-real{padding:8px 0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text;width:100%;overflow:hidden}.contributions-header{margin-bottom:12px}.contributions-count{color:#86868b;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{font-size:var(--font-size-caption2);color:#86868b;font-weight:500;flex:1;text-align:left}.contributions-content{display:flex;gap:8px}.day-labels{display:flex;flex-direction:column;justify-content:space-around;width:18px;height:80px}.day-labels span{font-size:var(--font-size-caption2);color:#86868b;font-weight:500;text-align:right;line-height:1}.contributions-grid{display:flex;gap:1.5px;overflow-x:auto;flex:1}.week-column{display:flex;flex-direction:column;gap:1.5px;flex:1;min-width:10px}.contribution-day{width:100%;height:10px;border-radius:2px;background:#ebedf0;border:1px solid rgba(0,0,0,.04);min-width:8px;max-width:12px;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer}.contribution-day:hover{transform:scale(1.3);box-shadow:0 2px 8px #00000026;z-index:10;position:relative}.contribution-tooltip{background:#1c1c1ef2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:#fff;padding:8px 12px;border-radius:8px;font-size:var(--font-size-caption1);font-weight:500;white-space:nowrap;pointer-events:none;box-shadow:0 4px 12px #0000004d;border:1px solid rgba(255,255,255,.1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;letter-spacing:-.01em}.contribution-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(28,28,30,.95)}.light-theme .contribution-tooltip{background:#fffffff2;color:#1d1d1f;border:1px solid rgba(0,0,0,.1)}.light-theme .contribution-tooltip:after{border-top-color:#fffffff2}@media (max-width: 734px){.contribution-tooltip{font-size:var(--font-size-caption2);padding:6px 10px}.contribution-day:hover{transform:scale(1.2)}}@media (max-width: 480px){.contribution-tooltip{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{transform:scale(1.2);box-shadow:0 2px 8px #007aff4d}.contributions-legend{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:8px;font-size:var(--font-size-caption2);color:#86868b}.legend-levels{display:flex;gap:2px}.legend-day{width:8px;height:8px;border-radius:2px}.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:var(--font-size-caption2)}.day-labels{width:12px;height:70px}.day-labels span{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;min-width:6px;max-width:10px}.contributions-legend{margin-top:6px;font-size:var(--font-size-caption2)}.legend-day{width:7px;height:7px}}.task-management-container{width:100%;height:100%;display:flex;flex-direction:column;gap:clamp(8px,2vw,12px);padding:clamp(16px,4vw,24px);box-sizing:border-box;overflow:visible}.task-item{background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:.5px solid rgba(0,0,0,.04);border-radius:18px;padding:clamp(14px,3vw,16px);min-height:clamp(56px,8vh,70px);display:flex;align-items:center;justify-content:space-between;cursor:grab;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;position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:pan-y;will-change:transform}.task-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #007aff14;border-color:#007aff26}.task-item:active{cursor:grabbing}.task-content{display:flex;align-items:center;gap:clamp(12px,3vw,16px);flex:1;min-width:0;position:relative}.task-indicator{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:absolute;left:0;top:50%;transform:translateY(-50%)}.task-category-dot{width:clamp(6px,1.5vw,8px);height:clamp(6px,1.5vw,8px);border-radius:50%;opacity:.9;box-shadow:0 0 0 1px #fff3}.task-details{flex:1;min-width:0;text-align:left;display:flex;align-items:center;justify-content:flex-start}.task-header{display:flex;align-items:center;justify-content:center;width:100%}.task-title{font-size:clamp(14px,3.5vw,16px);font-weight:600;color:var(--text-primary);line-height:1.2;white-space:normal;word-wrap:break-word;flex:1}.task-category{font-size:clamp(8px,1.8vw,10px);font-weight:600;flex-shrink:0;text-transform:uppercase;letter-spacing:.8px;line-height:1;padding:clamp(3px,.8vw,4px) clamp(6px,1.5vw,8px);border-radius:8px;background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.task-meta{display:flex;align-items:center;gap:clamp(6px,1.5vw,8px);flex-wrap:wrap}.task-status{font-size:clamp(9px,2vw,10px);font-weight:500;line-height:1;opacity:.8;text-transform:capitalize}.task-actions{display:flex;gap:6px;flex-shrink:0}.task-move-btn{width:34px;height:34px;border-radius:12px;border:1px solid rgba(0,0,0,.06);background:#ffffffe6;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:0;color:#0009;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease;box-shadow:0 2px 6px #00000014}.task-move-btn .btn-content{display:inline-flex;align-items:center;justify-content:center}.task-move-btn svg{display:block;width:16px;height:16px}.task-move-btn:hover{transform:translateY(-1px);box-shadow:0 6px 12px #0000001f;color:#007affe6;border-color:#007aff33}.task-move-btn:active{transform:translateY(0);box-shadow:0 2px 6px #00000014}.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{color:#007affcc;background:#007aff1a}.dark-theme .task-item:active .drag-handle,.dark-theme .task-item.dragging .drag-handle{color:#007affe6;background:#007aff26}.product-card:has(.task-management-container){overflow:hidden}.product-card:has(.task-management-container) .product-card-custom{left:clamp(12px,2.5vw,16px);right:clamp(12px,2.5vw,16px);padding:clamp(8px,2vw,12px);overflow:hidden}@keyframes taskLiftEffect{0%{transform:translateY(0) scale(1);box-shadow:0 4px 12px #007aff14}to{transform:translateY(-4px) scale(1.01);box-shadow:0 6px 16px #007aff1a}}@keyframes taskGrabEffect{0%{transform:scale(1);box-shadow:0 4px 12px #007aff14}to{transform:scale(1.005);box-shadow:0 4px 12px #007aff14}}@keyframes taskPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.98;transform:scale(.998)}}.smart-popup,.mini-popup{background:linear-gradient(135deg,#fff3,#1c1c1eb3);backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);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;border:1px solid rgba(255,255,255,.22);max-width:320px;min-width:240px;animation:miniPopupSlideIn .3s cubic-bezier(.34,1.56,.64,1);transform-origin:center bottom;z-index:999999!important;pointer-events:auto;position:fixed!important;overflow:hidden;transition:opacity .2s ease-out,transform .1s ease-out,visibility .2s ease-out;opacity:0;visibility:hidden;max-height:none;height:auto;overflow:hidden!important}@media (max-width: 768px){.mini-popup{max-width:calc(100vw - 24px);min-width:280px;width:auto;margin:0 12px}.mini-popup-content{padding:16px 18px}.mini-popup-title{font-size:var(--font-size-callout);margin-bottom:10px}.mini-popup-description{font-size:var(--font-size-caption1);line-height:1.4}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));--project-grid-card-height: 370px}}@media (max-width: 480px){.mini-popup{max-width:calc(100vw - 16px);min-width:260px;margin:0 8px}.mini-popup-content{padding:14px 16px}.mini-popup-title{font-size:var(--font-size-subheadline)}.mini-popup-description{font-size:var(--font-size-caption2)}}.smart-popup::-webkit-scrollbar,.mini-popup::-webkit-scrollbar{display:none}.smart-popup:before,.mini-popup:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d,#ffffff05,#ffffff0d,#ffffff1a);border-radius:24px;pointer-events:none}.smart-popup:after,.mini-popup:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);transform:rotate(45deg);animation:glassShimmer 3s ease-in-out infinite;pointer-events:none}.smart-popup-content,.mini-popup-content{padding:18px 22px;text-align:left;position:relative;z-index:1;overflow:hidden!important;word-wrap:break-word;height:auto;max-height:none}.smart-popup-title,.mini-popup-title{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:var(--font-size-headline);font-weight:600;color:#fff;margin-bottom:12px;letter-spacing:var(--tracking-headline);line-height:var(--line-height-headline);text-align:center}.smart-popup-description,.mini-popup-description{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:var(--font-size-footnote);font-weight:400;color:#ffffffd9;line-height:var(--line-height-footnote);letter-spacing:var(--tracking-footnote)}.smart-popup-description strong,.mini-popup-description strong{color:#fff;font-weight:600}.smart-popup-description em,.mini-popup-description em{font-style:italic;color:#ffffffbf;font-size:var(--font-size-caption1)}@keyframes glassShimmer{0%{transform:translate(-100%) translateY(-100%) rotate(45deg);opacity:0}50%{opacity:1}to{transform:translate(100%) translateY(100%) rotate(45deg);opacity:0}}@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)}}.smart-popup-closing,.mini-popup-closing{animation:miniPopupSlideOut .2s cubic-bezier(.4,0,1,1) forwards!important}.dark-theme .smart-popup,.dark-theme .mini-popup{background:linear-gradient(135deg,#3a3a3ce6,#1c1c1ed9);border:1px solid rgba(255,255,255,.18)}.light-theme .smart-popup,.light-theme .mini-popup{background:linear-gradient(135deg,#ffffffbf,#f5f5f78c);backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);border:1px solid rgba(0,0,0,.08);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 .smart-popup:before,.light-theme .mini-popup:before{background:linear-gradient(135deg,#fff3,#ffffff1a,#ffffff08,#ffffff1a,#fff3)}.light-theme .smart-popup:after,.light-theme .mini-popup:after{background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%)}.light-theme .smart-popup-title,.light-theme .mini-popup-title{color:#1d1d1f}.light-theme .smart-popup-description,.light-theme .mini-popup-description{color:#1d1d1fcc}.light-theme .smart-popup-description strong,.light-theme .mini-popup-description strong{color:#1d1d1f}.light-theme .smart-popup-description em,.light-theme .mini-popup-description em{color:#1d1d1fa6}.learning-memoji{position:absolute;bottom:-90px;right:50px;width:330px;height:330px;opacity:1;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1;pointer-events:none}.product-card:hover .learning-memoji{transform:scale(1.05) rotate(-3deg);opacity:1;bottom:-85px}@media (max-width: 1068px){.product-card-large{min-height:420px}.product-card-large .product-card-content{padding-left:50px;max-width:65%}.product-card-small .product-card-content{max-width:70%;padding-right:100px;padding-bottom:160px}.hero-memoji{width:180px;height:180px;bottom:-45px;right:8px}.php-icon{top:112px!important}.skill-app-icon{width:70px;height:70px;top:42px;right:25px}.learning-memoji{width:280px;height:280px;bottom:-70px;right:10px;transform:scaleX(-1)}.product-card:hover .learning-memoji{transform:scaleX(-1) scale(1.05) rotate(3deg);bottom:-65px}}@media (max-width: 734px){.product-card-large{min-height:380px}.product-card-large .product-card-content{text-align:center;padding-left:40px;max-width:100%}.product-card-small .product-card-content{max-width:fit-content}.hero-memoji{width:180px;height:180px;bottom:-45px;right:8px}.skill-app-icon{width:60px;height:60px;top:40px;right:20px}.php-icon{top:84px!important}.learning-memoji{width:240px;height:240px;bottom:-60px;right:5px;transform:scaleX(-1)}.product-card:hover .learning-memoji{transform:scaleX(-1) scale(1.05) rotate(3deg);bottom:-55px}}@media (max-width: 480px){.product-card-large{min-height:450px}.product-card-large .product-card-content{text-align:center;padding-left:30px;max-width:100%}.product-card-small .product-card-content{max-width:80%;padding-right:70px;padding-bottom:120px}.hero-memoji{width:180px;height:180px;bottom:-45px;right:8px;opacity:.8}.skill-app-icon{width:50px;height:50px;top:24px;right:15px}.learning-memoji{width:200px;height:200px;bottom:-50px;right:0;transform:scaleX(-1)}.product-card:hover .learning-memoji{transform:scaleX(-1) scale(1.05) rotate(3deg);bottom:-45px}}.product-card h2{font-size:clamp(32px,5vw,var(--font-size-title1));font-weight:700;line-height:var(--line-height-title1);letter-spacing:var(--tracking-title1);color:#fff;margin-bottom:clamp(4px,1vw,8px)}.product-card .subtitle{font-size:clamp(19px,3vw,var(--font-size-headline));line-height:var(--line-height-headline);font-weight:400;letter-spacing:var(--tracking-headline);color:#ffffffd9;margin-bottom:clamp(10px,2vw,16px);white-space:pre-line}.product-card .description{font-size:clamp(14px,2.5vw,var(--font-size-body));line-height:var(--line-height-body);font-weight:400;letter-spacing:var(--tracking-body);color:#ffffffb3;margin-bottom:clamp(16px,4vw,24px);max-width:clamp(300px,60vw,480px);margin-left:0;margin-right:auto;white-space:pre-line;word-wrap:break-word;overflow-wrap:break-word}.product-card-small h2{font-size:clamp(24px,4vw,var(--font-size-title3));font-weight:600;margin-bottom:clamp(4px,1vw,6px)}.product-card-small .subtitle{font-size:clamp(14px,2.5vw,var(--font-size-body));font-weight:400;margin-bottom:clamp(8px,2vw,12px)}.product-card-small .description{font-size:clamp(12px,2vw,var(--font-size-subheadline));line-height:var(--line-height-body);margin-bottom:clamp(14px,3vw,20px);max-width:clamp(280px,50vw,360px)}.card,.product-card,.project-grid-card,.footer-card{border-radius:var(--card-radius);overflow:hidden;position:relative;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease;border:1px solid rgba(255,255,255,.7);border-top-color:#ffffffd9;box-shadow:inset 0 1px #fffc,0 1px 3px #8c96b41f,0 8px 24px #8c96b41a,0 2px 8px #b4a0dc0f}.theme-repaint .card,.theme-repaint .product-card,.theme-repaint .project-grid-card,.theme-repaint .footer-card{opacity:.999}.product-card{--product-card-bg: linear-gradient(135deg, rgba(255, 255, 255, .65), rgba(250, 250, 255, .5));isolation:isolate;display:flex;flex-direction:column;min-height:var(--card-min-height);cursor:pointer}.product-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--product-card-bg);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);z-index:0}.project-grid-card{height:100%;min-height:var(--project-grid-card-height);max-height:var(--project-grid-card-height);display:flex;flex-direction:column}.card:after,.product-card:after,.project-grid-card:after,.footer-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 4px #ffffff80,inset 1px 0 3px #b4c8ff14,inset -1px 0 3px #ffbed20f,inset 0 0 20px #ffffff0f;z-index:3}.card{background:var(--background-primary);display:grid;grid-template-rows:1fr auto;grid-template-areas:"content" "actions"}.card>div{padding:40px;height:100%;display:flex;flex-direction:column}.hero-main{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center;justify-content:center;align-items:center}.hero-main h1{color:#fff;margin-bottom:8px}.hero-main p{margin-bottom:40px;opacity:.9}.card-visual{background:linear-gradient(135deg,var(--primary-color) 0%,#5856d6 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:600}.card-accent{background:var(--background-accent);border:.5px solid rgba(0,122,255,.1)}.card-minimal{background:#8e8e931f;border:1px dashed rgba(142,142,147,.24);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-weight:400}.product-bg-light{--product-card-bg: linear-gradient(135deg, rgba(255, 255, 255, .6), rgba(245, 246, 252, .45));color:var(--text-primary)}.product-bg-light h2{color:var(--text-primary)}.product-bg-light .subtitle{color:var(--text-secondary);white-space:pre-line}.product-bg-light .description{color:var(--text-secondary);white-space:pre-line;margin-left:0;word-wrap:break-word}.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{text-align:center;display:flex;align-items:center;justify-content:center;background:transparent;border:none;box-shadow:none;padding:0}.section-title-card:hover{transform:none;box-shadow:none}.product-buttons{display:flex;gap:25px;justify-content:flex-start;padding-top:20px}.product-card-small .product-buttons{justify-content:center}.btn-liquid-glass{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:980px;font-weight:400;text-decoration:none;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.btn-liquid-glass:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);transition:left .6s cubic-bezier(.4,0,.2,1);pointer-events:none}.btn-liquid-glass:hover:before{left:100%}.btn-small{padding:8px 16px;font-size:var(--font-size-footnote);letter-spacing:var(--tracking-footnote);line-height:var(--line-height-footnote);min-height:32px}.btn-medium{padding:12px 24px;font-size:var(--font-size-body);letter-spacing:var(--tracking-body);line-height:var(--line-height-body);min-height:44px}.btn-large{padding:16px 32px;font-size:var(--font-size-headline);letter-spacing:var(--tracking-headline);line-height:var(--line-height-headline);min-height:52px}.btn-liquid-glass-primary{background:linear-gradient(135deg,#0a84ffbf,#5856d6b3);color:#fff;border:1px solid rgba(255,255,255,.45);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);box-shadow:inset 0 1px 2px #ffffff59,0 6px 16px #007aff47}.btn-liquid-glass-primary:hover{background:linear-gradient(135deg,#0a84ffe6,#5856d6d9);transform:translateY(-1px);box-shadow:inset 0 1px 2px #ffffff73,0 10px 22px #007aff59}.btn-liquid-glass-primary:active{background:linear-gradient(135deg,#0a84ffa6,#5856d699);transform:translateY(0) scale(.98);box-shadow:inset 0 1px 2px #ffffff4d,0 4px 10px #007aff38}.btn-liquid-glass-secondary,.btn-liquid-glass-tertiary,.btn-liquid-glass-glass{background:#ffffff0f;color:var(--text-primary);border:1px solid rgba(0,0,0,.08);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 1px 3px #0000000a,inset 0 1px #ffffff80}.btn-liquid-glass-secondary:hover,.btn-liquid-glass-tertiary:hover,.btn-liquid-glass-glass:hover{background:#0000000f;border-color:#0000001f;transform:translateY(-1px);box-shadow:0 4px 12px #0000000f,inset 0 1px #fff9}.btn-liquid-glass-secondary:active,.btn-liquid-glass-tertiary:active,.btn-liquid-glass-glass:active{background:#0000001a;transform:translateY(0) scale(.98);box-shadow:0 1px 2px #0000000a,inset 0 1px #fff6}.btn-liquid-glass-tertiary{border:none;box-shadow:none}.btn-liquid-glass-tertiary:hover{box-shadow:none}.dark-theme .btn-liquid-glass-secondary,.dark-theme .btn-liquid-glass-tertiary,.dark-theme .btn-liquid-glass-glass{background:#ffffff0a;color:#ffffffe6;border-color:#ffffff1a;box-shadow:0 1px 3px #0003,inset 0 1px #ffffff0d}.dark-theme .btn-liquid-glass-secondary:hover,.dark-theme .btn-liquid-glass-tertiary:hover,.dark-theme .btn-liquid-glass-glass:hover{background:#ffffff14;border-color:#ffffff26;box-shadow:0 4px 12px #0000004d,inset 0 1px #ffffff14}.dark-theme .btn-liquid-glass-secondary:active,.dark-theme .btn-liquid-glass-tertiary:active,.dark-theme .btn-liquid-glass-glass: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{background:linear-gradient(135deg,#0a84ffcc,#5856d6bf);border-color:#fff3;backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);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]{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-liquid-glass:disabled:before,.btn-liquid-glass[disabled]:before{display:none}.btn-liquid-glass:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.product-card .btn-liquid-glass-primary,.product-card .btn-liquid-glass-primary:hover,.product-card .btn-liquid-glass-primary:active{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 rgba(255,255,255,.45);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;transform:translateY(-1px);box-shadow:inset 0 1px 2px #ffffff73,0 10px 22px #007aff59}.product-card .btn-liquid-glass-primary:active{background:linear-gradient(135deg,#0a84ffa6,#5856d699);transform:translateY(0) scale(.98);box-shadow:inset 0 1px 2px #ffffff4d,0 4px 10px #007aff38}.product-card .btn-liquid-glass-secondary,.product-card .btn-liquid-glass-secondary:hover,.product-card .btn-liquid-glass-secondary:active{color:#fff;box-shadow:none}.product-card .btn-liquid-glass-secondary{background:transparent;border:1px solid rgba(255,255,255,.35)}.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:hover,.product-bg-light .btn-liquid-glass-primary:active{color:#fff;border:1px solid transparent}.product-bg-light .btn-liquid-glass-primary{background:linear-gradient(135deg,#0a84ffbf,#5856d6b3);border:1px solid rgba(255,255,255,.45);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{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;background:#007aff1a;color:var(--primary-color);padding:4px 8px;border-radius:6px;font-size:var(--font-size-caption1);font-weight:400;display:inline-block;transition:all .3s cubic-bezier(.4,0,.2,1);letter-spacing:var(--tracking-caption1);line-height:var(--line-height-caption1)}.tag:hover{background:var(--primary-color);color:#fff;transform:scale(1.05)}.focus-ring:focus{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{grid-template-columns:1fr;gap:12px}.hero-section{padding:100px 0 0}.section{padding:0}.product-card h2{font-size:var(--font-size-title3)}.product-card .subtitle{font-size:19px}.product-card .description{font-size:var(--font-size-callout)}.contributions-grid-only .week-column{gap:6px}.contributions-grid-only .contribution-day{width:20px;height: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{text-align:center;padding-left:40px;max-width:100%}.product-card h2{font-size:28px}.product-card .subtitle{font-size:17px}.product-card .description{font-size:14px}.product-card-small h2{font-size:24px}.product-card-small .subtitle{font-size:15px}.product-card-small .description{font-size:13px}.product-buttons{flex-direction:column;align-items:center;gap:12px;padding-top:20px}.footer-main{flex-direction:column;align-items:flex-start}.footer-meta{flex-wrap:wrap}.hero-memoji{width:180px;height:180px;bottom:-45px;right:8px}.contributions-grid-only .week-column{gap:4px}.contributions-grid-only .contribution-day{width:16px;height: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)}.hero-section{padding:60px 0 0}.section{padding:0}.product-card-large .product-card-content{text-align:center;padding:20px 15px 60px;max-width:100%}.product-card-content{padding:var(--card-content-pad-top) var(--card-content-pad-side) var(--card-content-pad-bottom) var(--card-content-pad-side)}.project-grid{grid-template-columns:1fr;--project-grid-card-height: 360px}.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}.product-card.auto-expand{min-height:auto;height:fit-content}.product-card.auto-expand .product-card-content{padding:clamp(15px,3vw,20px) clamp(15px,3vw,20px) clamp(15px,3vw,20px) clamp(15px,3vw,20px);max-width:100%}.product-card-custom{top:auto;left:clamp(10px,2vw,15px);right:clamp(10px,2vw,15px);bottom:clamp(10px,2vw,15px);position:relative}.github-contributions-card .product-card-custom{position:absolute;top:auto;left:clamp(16px,5vw,22px);right:clamp(16px,5vw,22px);bottom:clamp(24px,8vw,36px);height:var(--contrib-chart-height)}.hero-memoji{width:180px;height:180px;bottom:-45px;right:10px;opacity:.8}.contributions-grid-only .week-column{gap:4px}.contributions-grid-only .contribution-day,.contribution-day{width:16px;height: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{font-size:var(--font-size-headline);font-weight:600;color:var(--text-primary);margin-bottom:12px;letter-spacing:var(--tracking-headline);line-height:var(--line-height-headline)}.skills-tags{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{background:#007aff1a;border:.5px solid rgba(0,122,255,.2);border-radius:20px;padding:8px 16px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:default;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.skill-tag:hover{background:#007aff26;border-color:#007aff4d;transform:translateY(-1px)}.skill-name{font-size:var(--font-size-subheadline);font-weight:500;color:var(--primary-color);letter-spacing:var(--tracking-subheadline);line-height:var(--line-height-subheadline)}.skill-level{font-size:var(--font-size-caption2);font-weight:400;color:var(--text-secondary);letter-spacing:.5px;text-transform:uppercase;line-height:var(--line-height-caption2)}.skills-tags-simple{display:flex;flex-wrap:wrap;gap:8px}.skill-tag-simple{background:#007aff1a;border:.5px solid rgba(0,122,255,.2);border-radius:16px;padding:6px 12px;font-size:var(--font-size-footnote);font-weight:500;color:var(--primary-color);letter-spacing:var(--tracking-footnote);line-height:var(--line-height-footnote);transition:all .2s cubic-bezier(.4,0,.2,1);cursor:default;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.skill-tag-simple:hover{background:#007aff26;border-color:#007aff4d;transform:translateY(-1px)}.dark-theme{background:#0a0a0c!important;color:#f5f5f7!important;position:relative}.dark-theme:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 75% 15%,rgba(0,180,255,.12) 0%,rgba(0,140,255,.06) 40%,transparent 70%),radial-gradient(ellipse 70% 55% at 25% 50%,rgba(140,80,255,.1) 0%,rgba(100,40,200,.05) 45%,transparent 70%),radial-gradient(ellipse 90% 50% at 60% 85%,rgba(0,210,180,.09) 0%,rgba(0,160,140,.04) 40%,transparent 70%),radial-gradient(ellipse 75% 70% at 50% 50%,transparent 50%,rgba(0,0,0,.45) 100%)}.dark-theme:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:180px 180px}.dark-theme .hero-section,.dark-theme .section,.dark-theme .grid-container{background:transparent}.dark-theme .card,.dark-theme .product-card,.dark-theme .project-grid-card,.dark-theme .footer-card{border:1px solid rgba(255,255,255,.14);border-top-color:#ffffff40;box-shadow:inset 0 1px #ffffff1a,0 2px 8px #0006,0 12px 32px #00000080}.dark-theme .card,.dark-theme .project-grid-card,.dark-theme .footer-card{background:linear-gradient(135deg,#1e1e24d9,#121216b8);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%)}.dark-theme .product-card{--product-card-bg: linear-gradient(135deg, rgba(30, 30, 36, .85), rgba(18, 18, 22, .72))}.dark-theme .card:after,.dark-theme .product-card:after,.dark-theme .project-grid-card:after,.dark-theme .footer-card:after{box-shadow:inset 0 2px 6px #ffffff1f,inset 0 1px 3px #96c8ff0d,inset 2px 0 6px #ffffff14,inset 1px 0 3px #c896ff0a,inset -2px 0 6px #ffffff14,inset -1px 0 3px #ffc8c80a,inset 0 -2px 6px #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 .product-card h2{color:#f5f5f7}.dark-theme .contributions-grid-only{background:transparent;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;color:#f5f5f7;border:1px solid rgba(255,255,255,.1)}.dark-theme .contribution-tooltip:after{border-top-color:#2c2c2ef2}.dark-theme .product-bg-light{--product-card-bg: linear-gradient(135deg, rgba(36, 36, 44, .78) 0%, rgba(20, 20, 26, .6) 100%);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 rgba(255,255,255,.1)}.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 rgba(0,122,255,.3);color:#64a9ff}@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:translate(100px)}to{opacity:1;transform:translate(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{width:calc(100% - 40px);max-width:400px}.skills-popup-small{width:calc(100% - 40px);max-width:300px}.skills-popup-header{padding:20px 20px 15px}.skills-popup-header h2{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{padding:5px 10px;font-size:var(--font-size-caption1)}}@media (max-width: 390px){.hero-section .product-card-large .product-buttons{align-items:flex-start;justify-content:flex-start}.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:var(--spacing-xl) 0}.project-grid-container.compact{padding:0}.project-grid{--project-grid-card-height: 380px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-auto-rows:var(--project-grid-card-height);gap:12px;width:100%;max-width:980px;margin:0 auto 12px;padding:0}.project-grid-card-inner{padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;height:100%}.project-grid-card-inner{position:relative;border-radius:inherit;background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.project-grid-card-inner:before{content:none}.project-grid-card-header{display:flex;align-items:center;gap:var(--spacing-sm)}.project-grid-card-kicker{font-size:var(--font-size-caption1);text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-weight:600;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}.project-grid-card-main{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.project-grid-card-title{font-size:clamp(17px,2.5vw,var(--font-size-headline));font-weight:600;letter-spacing:var(--tracking-headline);line-height:var(--line-height-headline);color:var(--text-primary);margin:0;min-height:calc(2 * 1em * var(--line-height-headline));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.project-grid-card-description{font-size:var(--font-size-subheadline);line-height:var(--line-height-body);letter-spacing:var(--tracking-body);color:var(--text-secondary);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;margin:0;min-height:calc(2 * 1em * var(--line-height-body));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-grid-card-deliverables{display:flex;flex-wrap:wrap;gap:8px}.project-grid-card-pill{padding:4px 10px;border-radius:999px;background:#ffffff59;border:1px solid rgba(255,255,255,.5);font-size:var(--font-size-caption1);color:var(--text-secondary);letter-spacing:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}.project-grid-card-visual{margin-top:auto;height:110px;border-radius:var(--card-radius-inner);cursor:pointer;background:radial-gradient(120% 120% at 10% 10%,rgba(142,255,233,.75),transparent 55%),radial-gradient(120% 120% at 90% 20%,rgba(120,171,255,.65),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(190,140,255,.55),transparent 55%),linear-gradient(135deg,#ffffffa6,#ffffff0d);border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 1px 2px #fff9,inset 0 -1px 2px #0000000f;position:relative;overflow:hidden;transition:all .35s cubic-bezier(.32,.72,0,1)}.project-grid-card-cta{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:linear-gradient(135deg,#ffffffe6,#f0f4ffe6);border:1px solid rgba(255,255,255,.9);color:#0f172ae6;font-size:var(--font-size-caption1);font-weight:600;letter-spacing:.08em;text-transform:uppercase;box-shadow:inset 0 1px 2px #ffffffd9,inset 0 -1px 2px #0000000f,0 10px 20px #0000002e;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);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 rgba(255,255,255,.7)}.project-grid-card-cta-icon{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ffffffe6;color:#0f172ad9}.project-grid-card-cta:hover{transform:translateY(-1px);background:linear-gradient(135deg,#fffffff2,#f0f4fffa)}.dark-theme .project-grid-card-cta:hover{background:#2c2c2eeb;color:#ffffffeb}.dark-theme .project-grid-card-cta{background:#141416cc;border-color:#fff3;color:#fffc;box-shadow:inset 0 1px 2px #ffffff26,inset 0 -1px 2px #0006,0 8px 18px #00000059}.dark-theme .project-grid-card-cta-text{color:#ffffffeb;text-shadow:0 1px 4px rgba(0,0,0,.4)}.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%,rgba(142,255,233,.75),transparent 55%),radial-gradient(120% 120% at 90% 20%,rgba(120,171,255,.65),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(190,140,255,.55),transparent 55%),linear-gradient(135deg,#ffffffa6,#ffffff0d)}.project-grid-card-visual.visual-cobalt{background:radial-gradient(120% 120% at 20% 10%,rgba(120,171,255,.75),transparent 55%),radial-gradient(120% 120% at 80% 30%,rgba(75,125,255,.6),transparent 55%),radial-gradient(120% 120% at 60% 100%,rgba(160,210,255,.5),transparent 55%),linear-gradient(135deg,#fff9,#ffffff14)}.project-grid-card-visual.visual-sunset{background:radial-gradient(120% 120% at 20% 20%,rgba(255,176,120,.75),transparent 55%),radial-gradient(120% 120% at 85% 15%,rgba(255,122,149,.55),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(255,206,130,.55),transparent 55%),linear-gradient(135deg,#fff9,#ffffff14)}.project-grid-card-visual.visual-mint{background:radial-gradient(120% 120% at 15% 15%,rgba(120,255,214,.65),transparent 55%),radial-gradient(120% 120% at 85% 25%,rgba(120,255,199,.55),transparent 55%),radial-gradient(120% 120% at 55% 100%,rgba(140,220,255,.45),transparent 55%),linear-gradient(135deg,#ffffff9e,#ffffff14)}.project-grid-card-visual.visual-rose{background:radial-gradient(120% 120% at 20% 15%,rgba(255,170,210,.65),transparent 55%),radial-gradient(120% 120% at 90% 30%,rgba(255,140,170,.55),transparent 55%),radial-gradient(120% 120% at 55% 100%,rgba(255,210,210,.5),transparent 55%),linear-gradient(135deg,#fff9,#ffffff14)}.project-grid-card-visual.visual-ink{background:radial-gradient(120% 120% at 20% 10%,rgba(140,160,255,.55),transparent 55%),radial-gradient(120% 120% at 85% 25%,rgba(120,140,255,.4),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(190,200,255,.45),transparent 55%),linear-gradient(135deg,#f5f7ff99,#ffffff1a)}.project-grid-card-visual:after{content:"";position:absolute;top:-40%;right:-20%;bottom:-40%;left:-20%;background:radial-gradient(circle at 20% 20%,#ffffffe6,#fff0 60%);opacity:0;transform:translateY(12px) rotate(-6deg);transition:opacity .35s cubic-bezier(.32,.72,0,1),transform .35s cubic-bezier(.32,.72,0,1);pointer-events:none}.project-grid-card-visual:hover{box-shadow:inset 0 2px 6px #ffffffe6,inset 0 -2px 6px #fff6,0 10px 24px #0000001f;border-color:#ffffffb3;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{background:#ffffff14;border-color:#ffffff2e;color:#ffffffbf}.dark-theme .project-grid-card-visual{background:radial-gradient(120% 120% at 10% 10%,rgba(76,255,214,.35),transparent 55%),radial-gradient(120% 120% at 90% 20%,rgba(88,155,255,.35),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(164,104,255,.3),transparent 55%),linear-gradient(135deg,#28282ce6,#14141899);border-color:#ffffff2e}.dark-theme .project-grid-card-visual.visual-aurora{background:radial-gradient(120% 120% at 10% 10%,rgba(76,255,214,.35),transparent 55%),radial-gradient(120% 120% at 90% 20%,rgba(88,155,255,.35),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(164,104,255,.3),transparent 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-cobalt{background:radial-gradient(120% 120% at 15% 10%,rgba(88,155,255,.35),transparent 55%),radial-gradient(120% 120% at 85% 25%,rgba(70,130,255,.3),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(120,170,255,.28),transparent 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-sunset{background:radial-gradient(120% 120% at 20% 20%,rgba(255,150,90,.3),transparent 55%),radial-gradient(120% 120% at 85% 15%,rgba(255,120,160,.25),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(255,200,120,.25),transparent 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-mint{background:radial-gradient(120% 120% at 15% 15%,rgba(120,255,214,.28),transparent 55%),radial-gradient(120% 120% at 85% 25%,rgba(120,255,199,.24),transparent 55%),radial-gradient(120% 120% at 55% 100%,rgba(140,220,255,.22),transparent 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-rose{background:radial-gradient(120% 120% at 20% 15%,rgba(255,170,210,.28),transparent 55%),radial-gradient(120% 120% at 90% 30%,rgba(255,140,170,.22),transparent 55%),radial-gradient(120% 120% at 55% 100%,rgba(255,210,210,.22),transparent 55%),linear-gradient(135deg,#28282ce6,#14141899)}.dark-theme .project-grid-card-visual.visual-ink{background:radial-gradient(120% 120% at 20% 10%,rgba(140,160,255,.28),transparent 55%),radial-gradient(120% 120% at 85% 25%,rgba(120,140,255,.24),transparent 55%),radial-gradient(120% 120% at 50% 100%,rgba(190,200,255,.22),transparent 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{box-shadow:inset 0 2px 8px #ffffff2e,inset 0 -2px 8px #00000080,0 12px 28px #00000080;border-color:#ffffff47}@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{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:10000;isolation:isolate;animation:fadeIn .2s ease;transition:opacity .2s ease}.project-dialog-overlay.opening{animation:fadeIn .2s ease}.project-dialog-overlay.closing{opacity:1;animation:fadeOut .18s ease forwards}.project-dialog-overlay.muted{opacity:.35;pointer-events:none}.project-dialog{background:#ffffffe0;backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border:1px solid rgba(255,255,255,.45);border-radius:var(--card-radius);max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 16px 32px -12px #00000047,0 6px 16px #0000001f,inset 0 1px #fff9;color:var(--text-primary);--dialog-text-primary: var(--text-primary);--dialog-text-secondary: var(--text-secondary);--dialog-text-muted: rgba(29, 29, 31, .65);will-change:opacity,transform;font-family:inherit;font-size:var(--font-size-body);letter-spacing:var(--tracking-body)}.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;transform:translateY(14px) scale(.985);pointer-events:none;transition:opacity .22s ease,transform .22s ease}.project-dialog-close{position:absolute;top:20px;right:20px;width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;border:1px solid var(--border-light);background:#fff;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px #00000014;transition:transform .15s ease,box-shadow .15s ease;z-index:3;padding:0;aspect-ratio:1 / 1;line-height:1;flex-shrink:0}.project-dialog-close:hover{transform:scale(1.05);box-shadow:0 8px 18px #0000001f}.project-dialog-close:active{transform:scale(.97)}body.dialog-scroll-lock{overflow:hidden;padding-right:var(--dialog-scrollbar-comp, 0px)}.project-dialog-content{padding:clamp(32px,6vw,56px);padding-top:clamp(52px,7vw,72px);display:flex;flex-direction:column;gap:clamp(16px,3vw,28px)}.project-dialog-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(16px,3vw,24px);padding:clamp(18px,3vw,28px);border-radius:var(--card-radius-inner);background:#ffffffd1;border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}.project-dialog-hero-text{display:flex;flex-direction:column;gap:clamp(6px,2vw,12px)}.project-dialog-badge{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;background:#007aff1f;color:#007aff;font-size:var(--font-size-caption1);font-weight:600;letter-spacing:.06em;text-transform:uppercase;width:fit-content}.project-dialog-title{font-size:clamp(var(--font-size-title1),3.5vw,32px);font-weight:700;margin:0;color:var(--dialog-text-primary)}.project-dialog-summary{font-size:clamp(var(--font-size-subheadline),2.8vw,var(--font-size-body));color:var(--dialog-text-secondary);margin:0;line-height:var(--line-height-body)}.project-dialog-timeline{display:flex;align-items:center;gap:10px;padding:0;background:transparent;border:none;border-radius:0;font-size:var(--font-size-callout);color:var(--dialog-text-primary);margin-top:4px}.project-dialog-timeline-label{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:var(--font-size-caption1);color:var(--dialog-text-muted)}.project-dialog-timeline-value{font-weight:600}.project-dialog-hero-media{position:relative;min-height:clamp(180px,32vh,260px);border-radius:var(--card-radius-inner);background:#fff;border:none;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:clamp(12px,3vw,18px);box-shadow:none;cursor:pointer;transition:transform .15s ease}.project-dialog-hero-image{width:100%;height:auto;max-height:260px;object-fit:contain;display:block;border-radius:14px;box-shadow:none}.project-dialog-hero-placeholder{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--dialog-text-muted);font-weight:600;font-size:var(--font-size-callout)}.project-dialog-columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(18px,3vw,28px)}.project-dialog-column{display:flex;flex-direction:column;gap:var(--spacing-md, 16px)}.project-dialog-section{margin-bottom:var(--spacing-lg)}.project-dialog-section-title{font-size:var(--font-size-caption1);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dialog-text-secondary);margin:0 0 8px;line-height:var(--line-height-caption1)}.project-dialog-section-content{font-size:clamp(var(--font-size-subheadline),2.6vw,var(--font-size-body));line-height:var(--line-height-body);letter-spacing:var(--tracking-body);color:var(--dialog-text-primary);margin:0;font-weight:400}.project-dialog-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.project-dialog-list-item{display:flex;align-items:flex-start;gap:10px;color:var(--dialog-text-primary);font-size:clamp(var(--font-size-footnote),2.4vw,var(--font-size-body));line-height:var(--line-height-body);letter-spacing:var(--tracking-body)}.project-dialog-list-dot{width:8px;height:8px;margin-top:.3em;border-radius:999px;background:var(--primary-color);box-shadow:0 0 0 4px #007aff1f;flex:0 0 8px}.project-dialog-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--spacing-sm)}.project-dialog-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(10px,2vw,16px)}.project-dialog-meta-card{background:#ffffffd1;border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-radius:var(--card-radius-inner);padding:clamp(12px,2vw,18px);display:flex;flex-direction:column;align-items:flex-start;gap:6px;box-shadow:0 8px 18px #00000014,inset 0 1px #fff9}.project-dialog-meta-label{font-size:var(--font-size-caption1);text-transform:uppercase;letter-spacing:.08em;color:var(--dialog-text-secondary);font-weight:600;line-height:1;margin:0}.project-dialog-meta-value{font-size:clamp(var(--font-size-title3),3.2vw,var(--font-size-title2));font-weight:700;color:var(--dialog-text-primary);line-height:1.1;margin:0}.project-dialog-meta-sub{font-size:var(--font-size-footnote);color:var(--dialog-text-muted);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{background:#18181c;border-color:#ffffff1f;box-shadow:0 18px 40px #0006,0 3px 12px #00000052;--dialog-text-primary: #f5f5f7;--dialog-text-secondary: rgba(255, 255, 255, .75);--dialog-text-muted: rgba(255, 255, 255, .6)}.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{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:11000;padding:20px;opacity:0;animation:fadeIn .2s ease forwards;isolation:isolate;overflow:hidden}.mockup-viewer-overlay.opening{animation:fadeIn .2s ease forwards}.mockup-viewer-overlay.closing{animation:fadeOut .18s ease forwards}.mockup-viewer{position:relative;width:min(920px,calc(100vw - 64px));max-width:min(980px,calc(100vw - 48px));background:#ffffffe6;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border-radius:var(--card-radius);border:1px solid rgba(255,255,255,.5);padding:clamp(24px,4vw,36px);box-shadow:0 24px 48px -12px #00000040,0 8px 16px #0000001f;display:inline-flex;flex-direction:column;align-items:center;pointer-events:auto;opacity:0;transform:translateY(20px) scale(.98);animation:slideUp .22s cubic-bezier(.33,1,.68,1) forwards}.mockup-viewer.opening{animation:slideUp .22s cubic-bezier(.33,1,.68,1) forwards}.mockup-viewer.closing{animation:slideDown .18s ease forwards}.mockup-viewer-close{position:absolute;top:20px;right:20px;width:34px;height:34px;min-width:34px;min-height:34px;border-radius:50%;border:1px solid var(--border-light);background:#fff;color:var(--text-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 6px 16px #00000014;z-index:3;padding:0;aspect-ratio:1 / 1;line-height:1;flex-shrink:0}.mockup-viewer-close:hover{transform:scale(1.05)}.mockup-viewer-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:clamp(20px,5vw,36px) clamp(24px,6vw,48px);overflow:visible}.mockup-viewer-zoom{position:relative;overflow:visible;border-radius:0;padding:clamp(10px,3vw,16px)}.mockup-viewer-image{width:auto;max-width:min(78vw,700px);max-height:70vh;object-fit:contain;filter:drop-shadow(0 18px 30px rgba(0,0,0,.3));z-index:1}.mockup-viewer-nav{position:fixed;top:50%;transform:translateY(-50%);width:42px;height:42px;min-width:42px;min-height:42px;border-radius:50%;border:1px solid var(--border-light);background:#ffffffe6;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:11001;padding:0;aspect-ratio:1 / 1;line-height:1;flex-shrink:0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 12px #00000026;transition:all .2s ease}.mockup-viewer-nav:hover{transform:translateY(-50%) scale(1.05);box-shadow:0 6px 16px #0003}.mockup-viewer-prev{left:clamp(20px,5vw,40px)}.mockup-viewer-next{right:clamp(20px,5vw,40px)}.mockup-viewer-dots{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px}.mockup-viewer-dot{width:8px;height:8px;border-radius:999px;border:none;background:#1d1d1f33;cursor:pointer;transition:transform .2s ease,background .2s ease}.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:#2c2c2ee6;border-color:#ffffff1f;color:#ffffffe6;box-shadow:0 4px 12px #0000004d}.dark-theme .mockup-viewer-nav:hover{background:#3a3a3cf2;box-shadow:0 6px 16px #0006}.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{top:16px;right:16px}.project-dialog-hero,.project-dialog-columns{grid-template-columns:1fr}.mockup-viewer-prev{left:clamp(12px,3vw,20px)}.mockup-viewer-next{right:clamp(12px,3vw,20px)}.mockup-viewer-nav{width:38px;height:38px;min-width:38px;min-height:38px}}@media (max-width: 480px){.project-dialog-content{padding:24px 18px}.project-dialog-title{font-size:var(--font-size-title1)}.project-dialog-hero{padding:20px}.mockup-viewer-prev{left:8px}.mockup-viewer-next{right:8px}.mockup-viewer-nav{width:34px;height:34px;min-width:34px;min-height:34px}}@media (max-width: 1024px){*{scrollbar-width:none!important}*::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}}.apple-header{--navbar-control-size: 44px;position:fixed;top:0;left:0;right:0;z-index:1000;height:auto;display:flex;align-items:center;justify-content:flex-end;width:100%;margin:0;padding:16px clamp(20px,4vw,32px);transition:all .3s cubic-bezier(.25,.8,.25,1)}.apple-header-content{width:100%;margin:0;padding:0;display:flex;align-items:center;justify-content:flex-end;min-height:100%;z-index:10}.apple-theme-toggle{width:var(--navbar-control-size);height:var(--navbar-control-size);border-radius:999px;background:linear-gradient(135deg,#ffffffc7,#f5f5f78c);backdrop-filter:blur(22px) saturate(200%);-webkit-backdrop-filter:blur(22px) saturate(200%);border:1px solid rgba(255,255,255,.65);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.25,.8,.25,1);color:#000000b3;z-index:200;aspect-ratio:1 / 1;box-shadow:inset 0 1px 2px #ffffffd9,inset 0 -1px 2px #00000014,0 12px 26px #00000024,0 4px 10px #0000001a}.apple-theme-toggle:hover{background:linear-gradient(135deg,#ffffffe6,#f5f5f7b3);color:#000;transform:scale(1.05);box-shadow:inset 0 1px 2px #ffffffe6,inset 0 -1px 2px #0000001a,0 12px 28px #00000029,0 6px 14px #0000001f}.apple-theme-toggle:active{transform:scale(.95)}.apple-theme-toggle svg{width:clamp(16px,4vw,18px);height:clamp(16px,4vw,18px);transition:all .3s cubic-bezier(.4,0,.2,1);display:block}.dark-theme .apple-theme-toggle{background:linear-gradient(135deg,#18181cb3,#0a0a0e80);backdrop-filter:blur(22px) saturate(200%);-webkit-backdrop-filter:blur(22px) saturate(200%);color:#ffffffbf;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1px 2px #ffffff1f,inset 0 -1px 2px #00000073,0 14px 28px #0000008c,0 4px 12px #00000061}.dark-theme .apple-theme-toggle:hover{background:linear-gradient(135deg,#202024cc,#0c0c1099);color:#fffffff2;transform:scale(1.05);box-shadow:inset 0 1px 2px #ffffff2e,inset 0 -1px 2px #00000080,0 16px 32px #0009,0 6px 14px #00000073}@media (max-width: 768px){.apple-header{--navbar-control-size: 40px}.apple-theme-toggle{width:var(--navbar-control-size);height:var(--navbar-control-size)}}@media (max-width: 480px){.apple-header{--navbar-control-size: 36px}.apple-theme-toggle{width:var(--navbar-control-size);height:var(--navbar-control-size)}.apple-theme-toggle svg{width:clamp(14px,4.5vw,16px);height:clamp(14px,4.5vw,16px)}}.simple-navbar{--navbar-button-height: calc(var(--navbar-control-size) - 12px);display:flex;gap:8px;align-items:center;margin-right:16px;position:relative}.simple-navbar-track{display:flex;gap:8px;align-items:center;position:relative;padding:6px;border-radius:999px;background:linear-gradient(135deg,#ffffffc7,#f5f5f78c);border:1px solid rgba(255,255,255,.65);box-shadow:inset 0 1px 2px #ffffffd9,inset 0 -1px 2px #00000014,0 12px 26px #00000024,0 4px 10px #0000001a;backdrop-filter:blur(22px) saturate(200%);-webkit-backdrop-filter:blur(22px) saturate(200%);overflow:hidden}.simple-navbar-track:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:inherit;background:linear-gradient(135deg,#fff9,#fff0);opacity:.7;pointer-events:none}.simple-navbar-button{height:var(--navbar-button-height);padding:8px 16px;background:transparent;border:none;color:#0009;font-size:14px;font-weight:500;line-height:1;letter-spacing:-.01em;cursor:pointer;border-radius:999px;transition:all .2s cubic-bezier(.25,.8,.25,1);position:relative;white-space:nowrap;z-index:1;display:inline-flex;align-items:center;justify-content:center}.simple-navbar-button:hover{color:#000000e6;background:#0000000a;border-radius:999px}.simple-navbar-button.is-active{color:#000000e6;background:#00000014;border-radius:999px}.dark-theme .simple-navbar-button{color:#fff9}.dark-theme .simple-navbar-button:hover{color:#ffffffe6;background:#ffffff14;border-radius:999px}.dark-theme .simple-navbar-button.is-active{color:#fffffff2;background:#ffffff26;border-radius:999px}.dark-theme .simple-navbar-track{background:linear-gradient(135deg,#18181cb3,#0a0a0e80);border-color:#ffffff2e;box-shadow:inset 0 1px 2px #ffffff1f,inset 0 -1px 2px #00000073,0 14px 28px #0000008c,0 4px 12px #00000061}.dark-theme .simple-navbar-track:before{background:linear-gradient(135deg,#ffffff2e,#fff0);opacity:.5}@media (max-width: 768px){.simple-navbar{margin-right:12px;gap:6px}.simple-navbar-track{gap:6px;padding:5px}.simple-navbar-button{padding:6px 12px;font-size:13px}}@media (max-width: 480px){.simple-navbar{margin-right:8px;gap:4px}.simple-navbar-track{gap:4px;padding:4px}.simple-navbar-button{padding:5px 10px;font-size:12px}}
