:root{color-scheme:light;--font-system: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", "Helvetica Neue", Inter, Arial, sans-serif;--font-mono: "SF Mono", SFMono-Regular, ui-monospace, Menlo, Consolas, monospace;--text-caption2: .6875rem;--text-caption1: .75rem;--text-footnote: .8125rem;--text-subhead: .9375rem;--text-callout: 1rem;--text-body: 1.0625rem;--text-headline: 1.0625rem;--text-title3: 1.25rem;--text-title2: 1.375rem;--text-title1: 1.75rem;--text-large-title: 2.125rem;--icon-sm: 1.25rem;--icon-md: 1.5rem;--icon-lg: 2rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.1;--line-height-snug: 1.2;--line-height-normal: 1.4;--line-height-relaxed: 1.5;--tracking-wide: .02em;--tracking-wider: .04em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--radius-card: var(--radius-xl);--radius-modal: var(--radius-2xl);--radius-control: var(--radius-full);--radius-input: var(--radius-md);--shadow-xs: 0 1px 2px rgba(14, 36, 49, .06);--shadow-sm: 0 1px 3px rgba(14, 36, 49, .08), 0 1px 2px rgba(14, 36, 49, .06);--shadow-md: 0 4px 6px rgba(14, 36, 49, .08), 0 2px 4px rgba(14, 36, 49, .06);--shadow-lg: 0 10px 15px rgba(14, 36, 49, .1), 0 4px 6px rgba(14, 36, 49, .08);--shadow-xl: 0 20px 25px rgba(14, 36, 49, .12), 0 8px 10px rgba(14, 36, 49, .1);--duration-instant: .1s;--duration-fast: .2s;--duration-base: .3s;--duration-slow: .5s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--touch-target-min: 44px;--header-height: 3rem;--container-max: 1024px;--z-back: -10;--z-normal: 1;--z-sticky: 50;--z-fixed: 100;--z-tooltip: 200;--z-modal: 1050;--accent: #4070F4;--accent-hover: #2955e0;--accent-text: #2E5BD8;--accent-contrast: #ffffff;--accent-tint: rgba(64, 112, 244, .08);--accent-tint-border: rgba(64, 112, 244, .22);--accent-overlay: rgba(46, 91, 216, .88);--label-primary: #0E2431;--label-secondary: #444B52;--label-tertiary: #6B7278;--label-on-inverted: #ffffff;--bg-primary: #ffffff;--bg-secondary: #f5f6fa;--bg-elevated: #ffffff;--bg-inverted: #0E2431;--fill-quaternary: rgba(120, 120, 128, .08);--separator: rgba(14, 36, 49, .12);--separator-strong: rgba(14, 36, 49, .24);--skeleton-sheen: rgba(14, 36, 49, .07);--status-live-bg: #1E7E34;--status-demo-bg: #B35309;--status-label: #ffffff;--status-learning: #1E7E34;--danger: #D70015;--focus-ring: #2E5BD8;--focus-ring-width: 3px;--focus-ring-offset: 2px;--scrim: rgba(0, 0, 0, .4);--scrim-strong: rgba(0, 0, 0, .6);--scrim-opaque: rgba(0, 0, 0, .75);--overlay-label: #ffffff;--accent-on-inverted: #7FA3FF;--status-learning-accent: #34d058;--switch-track: #111;--switch-ball: #ffffff;--switch-sun: #f39c12;--switch-moon: #f1c40f;--big-font-size: var(--text-large-title);--h2-font-size: var(--text-title3)}@media screen and (min-width:768px){:root{--h2-font-size: var(--text-title1)}}*,:before,:after{box-sizing:border-box}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}body,.l-header,.nav-menu,.skills-data,.level-tooltip,.modal-content,.project-card,.project-image-wrapper,.tech-badge,.contact-input,.contact-result{transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}body{margin:var(--header-height) 0 0 0;font-family:var(--font-system);font-size:var(--text-body);line-height:var(--line-height-normal);color:var(--label-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}ul{margin:0;padding:0;list-style:none;color:inherit}a{text-decoration:none;color:var(--accent-text)}img{max-width:100%;height:auto;display:block}img.img-loading{background-color:var(--bg-secondary);background-image:linear-gradient(100deg,transparent 25%,var(--skeleton-sheen) 50%,transparent 75%);background-repeat:no-repeat;background-size:200% 100%;animation:skeletonSweep 1.6s var(--ease-standard) infinite}img.img-failed{background-color:var(--bg-secondary);color:transparent}@keyframes skeletonSweep{0%{background-position:150% 0}to{background-position:-150% 0}}body.dark-theme{color-scheme:dark;--accent: #5783fc;--accent-hover: #7a9dfd;--accent-text: #5783fc;--accent-contrast: #0b1220;--accent-tint: rgba(87, 131, 252, .15);--accent-tint-border: rgba(87, 131, 252, .3);--accent-overlay: rgba(46, 91, 216, .88);--label-primary: #e0e0e0;--label-secondary: #b0b0b0;--label-tertiary: #8e9298;--label-on-inverted: #e0e0e0;--bg-primary: #121212;--bg-secondary: #2a2a2a;--bg-elevated: #1e1e1e;--bg-inverted: #1e1e1e;--fill-quaternary: rgba(120, 120, 128, .18);--separator: rgba(255, 255, 255, .1);--separator-strong: rgba(255, 255, 255, .2);--skeleton-sheen: rgba(255, 255, 255, .07);--danger: #FF453A;--focus-ring: #8CACFF;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .4), 0 4px 6px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .5), 0 8px 10px rgba(0, 0, 0, .5)}.section-title{position:relative;font-size:var(--h2-font-size);color:var(--accent-text);margin-top:var(--space-4);margin-bottom:var(--space-3);padding-bottom:var(--space-3);text-align:center}.section-title:after{position:absolute;content:"";width:64px;height:3px;inset:auto 0 0;margin:auto;background-color:var(--accent)}.section{padding-top:var(--space-12);padding-bottom:var(--space-8)}.bd-grid{max-width:var(--container-max);display:grid;grid-template-columns:100%;grid-column-gap:var(--space-8);width:calc(100% - var(--space-8));margin-left:var(--space-4);margin-right:var(--space-4)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}@keyframes blink{50%{opacity:0}}.button,.info-button,.project-link-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-target-min);font-family:var(--font-system);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);text-align:center;text-decoration:none;border:none;cursor:pointer;background-color:var(--accent);color:var(--accent-contrast)}.button:hover,.info-button:hover,.project-link-btn:hover{background-color:var(--accent-hover);color:var(--accent-contrast)}.button{padding:var(--space-3) var(--space-10);font-size:var(--text-callout);border-radius:var(--radius-md)}.button:hover{box-shadow:var(--shadow-lg)}.nav-toggle,.lang-btn,.close,.checkbox-label{transition:transform var(--duration-instant) var(--ease-standard)}.button:active,.info-button:active,.project-link-btn:active,.nav-toggle:active,.lang-btn:active,.close:active,.checkbox-label:active,.home-social-icon:active,.social-sidebar a:active{transform:scale(.96)}@keyframes gradientLoadingEffect{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes textGradientMove{0%{background-position:200% 0}to{background-position:-200% 0}}.close{position:absolute;top:var(--space-3);right:var(--space-3);display:inline-flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);padding:0;font-size:var(--icon-lg);font-weight:var(--font-weight-bold);line-height:1;background:none;border:none;border-radius:var(--radius-full);cursor:pointer;color:var(--label-secondary)}.close:hover{color:var(--danger)}body.has-panel-open{overflow:hidden}.empty-state{grid-column:1 / -1;margin:0;padding:var(--space-8) var(--space-4);text-align:center;color:var(--label-tertiary);font-size:var(--text-callout);line-height:var(--line-height-relaxed)}@media screen and (min-width:769px){body{margin:0}.section{padding-top:var(--space-16);padding-bottom:var(--space-12)}.section-title{margin-bottom:var(--space-12)}.section-title:after{width:80px}}@media screen and (min-width:1024px){.bd-grid{margin-left:auto;margin-right:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.button:active,.close:active{transform:none}img.img-loading{animation:none}}
