.app{min-height:100vh}.app-header h1{font-size:3rem;font-weight:700;margin-bottom:1rem}.app-header p{font-size:1.2rem;opacity:.9}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);border:none;border-radius:var(--radius-lg);font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);text-decoration:none;cursor:pointer;transition:all var(--transition-fast) var(--ease-ios);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;transform:scale(1);box-shadow:var(--shadow-button)}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background-color:#fff3;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s var(--ease-ios),height .3s var(--ease-ios);pointer-events:none;z-index:1}.btn:active:before{width:200px;height:200px}.btn:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);border-radius:var(--radius-lg);opacity:0;transition:opacity var(--transition-fast) var(--ease-ios);pointer-events:none;z-index:0}.btn:hover:after:not(.btn--disabled){opacity:1}.btn--sm{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-footnote);min-height:2rem}.btn--md{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-callout);min-height:2.75rem}.btn--lg{padding:var(--spacing-lg) var(--spacing-xl);font-size:var(--font-size-body);min-height:3.5rem}.btn--primary{background-color:var(--color-primary);color:#fff}.btn--primary:hover:not(.btn--disabled){background-color:var(--color-primary-hover);transform:translateY(-1px) scale(1.02);box-shadow:var(--shadow-lg)}.btn--primary:active:not(.btn--disabled){background-color:var(--color-primary-active);transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.btn--secondary{background-color:var(--color-surface-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn--secondary:hover:not(.btn--disabled){background-color:var(--color-gray-6);transform:translateY(-1px) scale(1.02);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.btn--secondary:active:not(.btn--disabled){background-color:var(--color-gray-5);transform:translateY(0) scale(.98)}.btn--ghost{background-color:transparent;color:var(--color-primary);box-shadow:none}.btn--ghost:hover:not(.btn--disabled){background-color:var(--color-primary);color:#fff;transform:translateY(-1px) scale(1.02);box-shadow:var(--shadow-button)}.btn--ghost:active:not(.btn--disabled){background-color:var(--color-primary-active);transform:translateY(0) scale(.98)}.btn--destructive{background-color:var(--color-error);color:#fff}.btn--destructive:hover:not(.btn--disabled){background-color:#e6342a;transform:scale(1.02);box-shadow:var(--shadow-md)}.btn--destructive:active:not(.btn--disabled){background-color:#cc2e24;transform:scale(.98)}.btn--full-width{width:100%}.btn--disabled{opacity:.5;cursor:not-allowed;transform:scale(1)!important;box-shadow:var(--shadow-xs)!important}.btn--loading{cursor:wait}.btn__content--hidden{opacity:0}.btn__content{opacity:1;transition:opacity var(--transition-fast)}.btn__spinner{position:absolute;width:1rem;height:1rem;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (hover: none) and (pointer: coarse){.btn:active:not(.btn--disabled){transform:scale(.95);transition:transform .1s ease-out}}@media (prefers-color-scheme: dark){.btn--secondary{background-color:var(--color-surface-secondary);border-color:var(--color-border)}.btn--secondary:hover:not(.btn--disabled){background-color:var(--color-gray-5);border-color:var(--color-primary)}.btn--secondary:active:not(.btn--disabled){background-color:var(--color-gray-4)}}[data-theme=dark] .btn--secondary{background-color:var(--color-surface-secondary);border-color:var(--color-border)}[data-theme=dark] .btn--secondary:hover:not(.btn--disabled){background-color:var(--color-gray-5);border-color:var(--color-primary)}[data-theme=dark] .btn--secondary:active:not(.btn--disabled){background-color:var(--color-gray-4)}.card{background-color:var(--color-surface);border-radius:var(--radius-xl);transition:all var(--transition-normal) var(--ease-ios);position:relative;overflow:hidden}.card--default{background-color:var(--color-surface);border:1px solid var(--color-border-secondary)}.card--elevated{background-color:var(--color-surface);box-shadow:var(--shadow-card);border:none}.card--outlined{background-color:var(--color-surface);border:1px solid var(--color-border)}.card--padding-none{padding:0}.card--padding-sm{padding:var(--spacing-md)}.card--padding-md{padding:var(--spacing-lg)}.card--padding-lg{padding:var(--spacing-xl)}.card--hoverable:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card--hoverable:hover.card--default{border-color:var(--color-border)}.card--clickable{cursor:pointer;border:none;text-align:left;font-family:inherit;width:100%;-webkit-tap-highlight-color:transparent}.card--clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.card--clickable:active{transform:scale(.98)}@media (hover: none) and (pointer: coarse){.card--hoverable:active,.card--clickable:active{transform:scale(.97);transition:transform .1s ease-out}.card--hoverable:hover{transform:none}}.card__header{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-secondary);margin-bottom:var(--spacing-md)}.card__body{flex:1}.card__footer{padding-top:var(--spacing-md);border-top:1px solid var(--color-border-secondary);margin-top:var(--spacing-md)}.card__image{width:100%;height:auto;display:block;border-radius:var(--radius-md);overflow:hidden}.card__image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal) var(--ease-ios)}.card--hoverable .card__image img:hover{transform:scale(1.05)}@media (prefers-color-scheme: dark){.card--default{background-color:var(--color-surface);border-color:var(--color-border-secondary)}.card--elevated{background-color:var(--color-surface)}.card--outlined{background-color:var(--color-surface);border-color:var(--color-border)}.card__header{border-bottom-color:var(--color-border-secondary)}.card__footer{border-top-color:var(--color-border-secondary)}}[data-theme=dark] .card--default{background-color:var(--color-surface);border-color:var(--color-border-secondary)}[data-theme=dark] .card--elevated{background-color:var(--color-surface)}[data-theme=dark] .card--outlined{background-color:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .card__header{border-bottom-color:var(--color-border-secondary)}[data-theme=dark] .card__footer{border-top-color:var(--color-border-secondary)}.badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-family-primary);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap;transition:all var(--transition-fast) var(--ease-ios);-webkit-user-select:none;user-select:none}.badge--sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-caption);min-height:1.25rem}.badge--md{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-footnote);min-height:1.5rem}.badge--lg{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-subhead);min-height:2rem}.badge--default{background-color:var(--color-gray-6);color:var(--color-text-secondary)}.badge--primary{background-color:var(--color-primary);color:#fff}.badge--secondary{background-color:var(--color-surface-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.badge--success{background-color:var(--color-success);color:#fff}.badge--warning{background-color:var(--color-warning);color:#fff}.badge--error{background-color:var(--color-error);color:#fff}.badge--react{background-color:#61dafb;color:#20232a}.badge--typescript{background-color:#3178c6;color:#fff}.badge--javascript{background-color:#f7df1e;color:#000}.badge--swift{background-color:#fa7343;color:#fff}.badge--csharp{background-color:#512bd4;color:#fff}.badge--ios{background-color:var(--color-primary);color:#fff}.badge--node{background-color:#393;color:#fff}.badge--css{background-color:#1572b6;color:#fff}.badge--html{background-color:#e34f26;color:#fff}.badge--uikit,.badge--swiftui{background-color:#007aff;color:#fff}.badge--coredata,.badge--corelocation{background-color:#34c759;color:#fff}.badge--network{background-color:#ff9500;color:#fff}.badge--animation{background-color:#ff3b30;color:#fff}.badge--gesture{background-color:#34c759;color:#fff}.badge--cloudkit{background-color:#ff9500;color:#fff}.badge--healthkit{background-color:#ff3b30;color:#fff}.badge--xcode{background-color:#147efb;color:#fff}.badge--firebase,.badge--firestore{background-color:#ff9500;color:#fff}.badge--dotnet{background-color:#512bd4;color:#fff}.badge--windows{background-color:#0078d4;color:#fff}.badge--clickable{cursor:pointer;border:none;background:none;font:inherit;transition:all var(--transition-fast) var(--ease-ios);position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.badge--clickable:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background-color:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s var(--ease-ios),height .3s var(--ease-ios);pointer-events:none}.badge--clickable:active:before{width:100px;height:100px}.badge--clickable:hover{transform:translateY(-1px) scale(1.05);box-shadow:var(--shadow-md)}.badge--clickable:active{transform:translateY(0) scale(.95)}.badge--clickable:focus{outline:2px solid var(--color-primary);outline-offset:2px}.badge--hoverable{cursor:pointer;position:relative;overflow:hidden}.badge--hoverable:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s var(--ease-ios)}.badge--hoverable:hover:after{left:100%}.badge--hoverable:hover{transform:translateY(-1px) scale(1.05);box-shadow:var(--shadow-sm)}.badge--hoverable:active{transform:translateY(0) scale(.95)}@media (prefers-color-scheme: dark){.badge--default{background-color:var(--color-gray-5);color:var(--color-text-secondary)}.badge--secondary{background-color:var(--color-surface-secondary);border-color:var(--color-border)}}[data-theme=dark] .badge--default{background-color:var(--color-gray-5);color:var(--color-text-secondary)}[data-theme=dark] .badge--secondary{background-color:var(--color-surface-secondary);border-color:var(--color-border)}html:not([data-theme=dark]) .badge--secondary{background-color:var(--color-surface-secondary)!important;color:var(--color-text-primary)!important;border-color:var(--color-border)!important}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);z-index:var(--z-modal-backdrop);animation:modalBackdropFadeIn var(--transition-normal) var(--ease-ios)}.modal{background-color:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-modal);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;z-index:var(--z-modal);animation:modalSlideIn var(--transition-normal) var(--ease-ios);position:relative}.modal--sm{width:100%;max-width:400px}.modal--md{width:100%;max-width:500px}.modal--lg{width:100%;max-width:700px}.modal--xl{width:100%;max-width:900px}.modal--full{width:95vw;height:95vh;max-width:none;max-height:none}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md);border-bottom:1px solid var(--color-border-secondary);flex-shrink:0}.modal__title{color:var(--color-text-primary);margin:0}.modal__close-button{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast) var(--ease-ios);-webkit-tap-highlight-color:transparent}.modal__close-button:hover{background-color:var(--color-gray-6);color:var(--color-text-primary)}.modal__close-button:active{transform:scale(.95)}.modal__close-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.modal__content{padding:var(--spacing-lg);overflow-y:auto;flex:1}@keyframes modalBackdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width: 640px){.modal-backdrop{padding:var(--spacing-md)}.modal--sm,.modal--md,.modal--lg,.modal--xl{width:100%;max-width:none;margin:0}.modal--full{width:100vw;height:100vh;border-radius:0}.modal__header,.modal__content{padding:var(--spacing-md)}}@media (hover: none) and (pointer: coarse){.modal{animation:modalSlideUpMobile var(--transition-normal) var(--ease-ios)}@keyframes modalSlideUpMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}}@media (prefers-color-scheme: dark){.modal-backdrop{background-color:#000000b3}.modal__close-button:hover{background-color:var(--color-gray-5)}}[data-theme=dark] .modal-backdrop{background-color:#000000b3}[data-theme=dark] .modal__close-button:hover{background-color:var(--color-gray-5)}.theme-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);background:var(--color-surface-secondary);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-normal) var(--ease-ios);-webkit-tap-highlight-color:transparent}.theme-toggle:hover{background:var(--color-gray-5);transform:scale(1.05)}.theme-toggle:active{transform:scale(.95);transition-duration:var(--transition-fast)}.theme-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.theme-toggle__icon{position:relative;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center}.theme-toggle__sun{position:absolute;width:100%;height:100%;color:var(--color-warning);opacity:1;transform:rotate(0) scale(1);transition:all var(--transition-normal) var(--ease-ios)}.theme-toggle__moon{position:absolute;width:100%;height:100%;color:var(--color-primary);opacity:0;transform:rotate(180deg) scale(.8);transition:all var(--transition-normal) var(--ease-ios)}.theme-toggle__system{position:absolute;width:100%;height:100%;color:var(--color-text-secondary);opacity:0;transform:rotate(-180deg) scale(.8);transition:all var(--transition-normal) var(--ease-ios)}.theme-toggle[data-theme=dark] .theme-toggle__sun{opacity:0;transform:rotate(180deg) scale(.8)}.theme-toggle[data-theme=dark] .theme-toggle__moon{opacity:1;transform:rotate(0) scale(1)}.theme-toggle[data-theme=dark] .theme-toggle__system,.theme-toggle[data-theme=system] .theme-toggle__sun{opacity:0;transform:rotate(-180deg) scale(.8)}.theme-toggle[data-theme=system] .theme-toggle__moon{opacity:0;transform:rotate(180deg) scale(.8)}.theme-toggle[data-theme=system] .theme-toggle__system,.theme-toggle[data-theme=light] .theme-toggle__sun{opacity:1;transform:rotate(0) scale(1)}.theme-toggle[data-theme=light] .theme-toggle__moon{opacity:0;transform:rotate(180deg) scale(.8)}.theme-toggle[data-theme=light] .theme-toggle__system{opacity:0;transform:rotate(-180deg) scale(.8)}.theme-toggle__tooltip{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:#333;color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:9999}.theme-toggle:hover .theme-toggle__tooltip{opacity:1}@media (max-width: 768px){.theme-toggle{width:2.25rem;height:2.25rem}.theme-toggle__icon{width:1.125rem;height:1.125rem}}@media (prefers-reduced-motion: reduce){.theme-toggle,.theme-toggle__sun,.theme-toggle__moon,.theme-toggle__system,.theme-toggle__tooltip{transition:none}.theme-toggle:hover,.theme-toggle:active{transform:none}}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.container--sm{max-width:640px}.container--md{max-width:768px}.container--lg{max-width:1024px}.container--xl{max-width:1280px}.container--full{max-width:none}@media (max-width: 640px){.container{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}}@media (max-width: 480px){.container{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}}.grid{display:grid;width:100%}.grid--cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid--cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid--cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid--cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid--gap-xs{gap:var(--spacing-xs)}.grid--gap-sm{gap:var(--spacing-sm)}.grid--gap-md{gap:var(--spacing-md)}.grid--gap-lg{gap:var(--spacing-lg)}.grid--gap-xl{gap:var(--spacing-xl)}.grid-item--span-1{grid-column:span 1 / span 1}.grid-item--span-2{grid-column:span 2 / span 2}.grid-item--span-3{grid-column:span 3 / span 3}.grid-item--span-4{grid-column:span 4 / span 4}.grid-item--span-5{grid-column:span 5 / span 5}.grid-item--span-6{grid-column:span 6 / span 6}.grid-item--span-7{grid-column:span 7 / span 7}.grid-item--span-8{grid-column:span 8 / span 8}.grid-item--span-9{grid-column:span 9 / span 9}.grid-item--span-10{grid-column:span 10 / span 10}.grid-item--span-11{grid-column:span 11 / span 11}.grid-item--span-12{grid-column:span 12 / span 12}@media (min-width: 640px){.grid-item--span-sm-1{grid-column:span 1 / span 1}.grid-item--span-sm-2{grid-column:span 2 / span 2}.grid-item--span-sm-3{grid-column:span 3 / span 3}.grid-item--span-sm-4{grid-column:span 4 / span 4}.grid-item--span-sm-5{grid-column:span 5 / span 5}.grid-item--span-sm-6{grid-column:span 6 / span 6}.grid-item--span-sm-7{grid-column:span 7 / span 7}.grid-item--span-sm-8{grid-column:span 8 / span 8}.grid-item--span-sm-9{grid-column:span 9 / span 9}.grid-item--span-sm-10{grid-column:span 10 / span 10}.grid-item--span-sm-11{grid-column:span 11 / span 11}.grid-item--span-sm-12{grid-column:span 12 / span 12}}@media (min-width: 768px){.grid-item--span-md-1{grid-column:span 1 / span 1}.grid-item--span-md-2{grid-column:span 2 / span 2}.grid-item--span-md-3{grid-column:span 3 / span 3}.grid-item--span-md-4{grid-column:span 4 / span 4}.grid-item--span-md-5{grid-column:span 5 / span 5}.grid-item--span-md-6{grid-column:span 6 / span 6}.grid-item--span-md-7{grid-column:span 7 / span 7}.grid-item--span-md-8{grid-column:span 8 / span 8}.grid-item--span-md-9{grid-column:span 9 / span 9}.grid-item--span-md-10{grid-column:span 10 / span 10}.grid-item--span-md-11{grid-column:span 11 / span 11}.grid-item--span-md-12{grid-column:span 12 / span 12}}@media (min-width: 1024px){.grid-item--span-lg-1{grid-column:span 1 / span 1}.grid-item--span-lg-2{grid-column:span 2 / span 2}.grid-item--span-lg-3{grid-column:span 3 / span 3}.grid-item--span-lg-4{grid-column:span 4 / span 4}.grid-item--span-lg-5{grid-column:span 5 / span 5}.grid-item--span-lg-6{grid-column:span 6 / span 6}.grid-item--span-lg-7{grid-column:span 7 / span 7}.grid-item--span-lg-8{grid-column:span 8 / span 8}.grid-item--span-lg-9{grid-column:span 9 / span 9}.grid-item--span-lg-10{grid-column:span 10 / span 10}.grid-item--span-lg-11{grid-column:span 11 / span 11}.grid-item--span-lg-12{grid-column:span 12 / span 12}}@media (max-width: 767px){.grid--cols-2,.grid--cols-3,.grid--cols-4,.grid--cols-5,.grid--cols-6,.grid--cols-12{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (min-width: 768px) and (max-width: 1023px){.grid--cols-3,.grid--cols-4,.grid--cols-5,.grid--cols-6,.grid--cols-12{grid-template-columns:repeat(2,minmax(0,1fr))}}.header{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);background-color:var(--color-background);border-bottom:1px solid var(--color-border-secondary);transition:all var(--transition-normal) var(--ease-ios);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.header__content{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);max-width:1280px;margin:0 auto;min-height:4rem}.header--transparent{background-color:transparent;border-bottom:1px solid transparent}.header--transparent.header--scrolled{background-color:var(--color-background);opacity:.95;border-bottom:1px solid var(--color-border-secondary)}.header__nav{display:flex;align-items:center;gap:var(--spacing-lg)}.header__nav-list{display:flex;align-items:center;gap:var(--spacing-lg);list-style:none;margin:0;padding:0}.header__nav-item{position:relative}.header__nav-link{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-callout);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-fast) var(--ease-ios);position:relative}.header__nav-link:hover{color:var(--color-text-primary);background-color:var(--color-surface-secondary)}.header__nav-link--active{color:var(--color-primary)}.header__nav-link--active:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:4px;height:4px;background-color:var(--color-primary);border-radius:50%}.header__logo{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary);text-decoration:none;font-size:var(--font-size-title-3);font-weight:var(--font-weight-bold);transition:color var(--transition-fast) var(--ease-ios)}.header__logo:hover{color:var(--color-primary)}.header__right-content{display:flex;align-items:center;gap:var(--spacing-md)}.header__menu-button{display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:none;background:none;color:var(--color-text-primary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast) var(--ease-ios);-webkit-tap-highlight-color:transparent}.header__menu-button:hover{background-color:var(--color-surface-secondary)}.header__menu-button:active{transform:scale(.95)}.header__mobile-nav{display:none;position:absolute;top:100%;left:0;right:0;background-color:var(--color-background);border-bottom:1px solid var(--color-border-secondary);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:mobileNavSlideDown var(--transition-normal) var(--ease-ios)}.header__mobile-nav--open{display:block}.header__mobile-nav-list{display:flex;flex-direction:column;padding:var(--spacing-md);gap:var(--spacing-xs);list-style:none;margin:0}.header__mobile-nav-link{display:flex;align-items:center;padding:var(--spacing-md);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-fast) var(--ease-ios)}.header__mobile-nav-link:hover,.header__mobile-nav-link--active{color:var(--color-primary);background-color:var(--color-surface-secondary)}@media (max-width: 768px){.header__content{padding:var(--spacing-md)}.header__nav{display:none}.header__menu-button{display:flex}.header__right-content{gap:var(--spacing-sm)}}@media (max-width: 640px){.header__content{padding:var(--spacing-sm) var(--spacing-md)}}@keyframes mobileNavSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme: dark){.header--transparent.header--scrolled{background-color:var(--color-background);opacity:.95}}[data-theme=dark] .header--transparent.header--scrolled{background-color:var(--color-background)!important;opacity:.95!important}.project-card-wrapper{cursor:pointer;transition:transform var(--transition-normal) var(--ease-ios)}.project-card-wrapper:hover .project-card{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow-xl);border-color:var(--color-primary)}.project-card-wrapper:hover .project-card:before{opacity:1}.project-card-wrapper:active .project-card{transform:translateY(-4px) scale(1.01);transition-duration:.1s}.project-card{position:relative;overflow:hidden;transition:all var(--transition-normal) var(--ease-ios);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);transform:translateY(0) scale(1);box-shadow:var(--shadow-card)}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(0,122,255,.05) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal) var(--ease-ios);pointer-events:none;z-index:1}.project-card__image-container{position:relative;width:100%;height:200px;overflow:hidden;background:var(--color-surface-secondary);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.project-card__image{width:120px;height:120px;object-fit:cover;border-radius:22px;transition:transform var(--transition-slow) var(--ease-ios);filter:brightness(1) saturate(1);box-shadow:0 4px 12px #00000026}.project-card-wrapper:hover .project-card__image{transform:scale(1.05);filter:brightness(1.05) saturate(1.1);box-shadow:0 8px 25px #00000040}.project-card__featured-badge{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);z-index:1}.project-card__content{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.project-card__header{display:flex;flex-direction:column;gap:var(--spacing-xs)}.project-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;line-height:var(--line-height-tight);transition:color var(--transition-fast) var(--ease-ios)}.project-card-wrapper:hover .project-card__title{color:var(--color-primary)}.project-card__meta{display:flex;align-items:center;gap:var(--spacing-sm)}.project-card__date{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.project-card__description{font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-card__technologies{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);align-items:center}.project-card__actions{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-top:auto;padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.project-card__links{display:flex;gap:var(--spacing-xs);align-items:center}.project-card__icon{width:16px;height:16px;margin-right:var(--spacing-xs)}@media (max-width: 768px){.project-card__content{padding:var(--spacing-md);gap:var(--spacing-sm)}.project-card__image-container{height:160px;padding:var(--spacing-md)}.project-card__image{width:100px;height:100px;border-radius:18px}.project-card__actions{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.project-card__links{justify-content:center}}@media (prefers-color-scheme: dark){.project-card{background:var(--color-surface);border-color:var(--color-border)}.project-card__title{color:var(--color-text-primary)}.project-card__description,.project-card__date{color:var(--color-text-secondary)}.project-card__actions{border-top-color:var(--color-border)}.project-card__image-container{background:var(--color-surface-secondary)}}[data-theme=dark] .project-card{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .project-card__title{color:var(--color-text-primary)}[data-theme=dark] .project-card__description,[data-theme=dark] .project-card__date{color:var(--color-text-secondary)}[data-theme=dark] .project-card__actions{border-top-color:var(--color-border)}[data-theme=dark] .project-card__image-container{background:var(--color-surface-secondary)}.project-card-wrapper:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.project-card--loading{pointer-events:none}.project-card--loading .project-card__image{background:var(--color-surface-secondary);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.project-card--compact .project-card__image-container{height:120px}.project-card--compact .project-card__content{padding:var(--spacing-md);gap:var(--spacing-sm)}.project-card--compact .project-card__description{-webkit-line-clamp:2}.project-gallery{display:flex;flex-direction:column;gap:var(--spacing-xl)}.project-gallery__controls{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg)}.project-gallery__search{display:flex;flex-direction:column;gap:var(--spacing-sm)}.project-gallery__search-input{position:relative;display:flex;align-items:center}.project-gallery__search-icon{position:absolute;left:var(--spacing-md);width:20px;height:20px;color:var(--color-text-secondary);pointer-events:none;z-index:1}.project-gallery__search-field{width:100%;padding:var(--spacing-md) var(--spacing-md) var(--spacing-md) 48px;border:1px solid var(--color-border);border-radius:var(--border-radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-md);transition:all .2s cubic-bezier(.4,0,.2,1)}.project-gallery__search-field:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha-20)}.project-gallery__search-clear{position:absolute;right:var(--spacing-md);width:20px;height:20px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-sm);transition:all .2s cubic-bezier(.4,0,.2,1)}.project-gallery__search-clear:hover{color:var(--color-text-primary);background:var(--color-surface-secondary)}.project-gallery__search-clear svg{width:16px;height:16px}.project-gallery__filters{display:flex;flex-direction:column;gap:var(--spacing-md)}.project-gallery__sort{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.project-gallery__sort-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap}.project-gallery__sort-buttons{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.project-gallery__filter-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.project-gallery__filter-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.project-gallery__filter-options{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.project-gallery__filter-badge{cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.project-gallery__filter-badge:hover{transform:translateY(-1px)}.project-gallery__clear-filters{align-self:flex-start;margin-top:var(--spacing-sm)}.project-gallery__summary{display:flex;justify-content:space-between;align-items:center;padding:0 var(--spacing-xs)}.project-gallery__count{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.project-gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-xl);padding:0}.project-gallery__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-lg);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);min-height:300px}.project-gallery__empty-icon{width:64px;height:64px;margin-bottom:var(--spacing-lg);color:var(--color-text-tertiary)}.project-gallery__empty-icon svg{width:100%;height:100%}.project-gallery__empty-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.project-gallery__empty-description{font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0 0 var(--spacing-lg) 0;max-width:400px}.project-gallery__empty-action{margin-top:var(--spacing-md)}@media (max-width: 1024px){.project-gallery__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}}@media (max-width: 768px){.project-gallery{gap:var(--spacing-lg)}.project-gallery__controls{padding:var(--spacing-md);gap:var(--spacing-md)}.project-gallery__grid{grid-template-columns:1fr;gap:var(--spacing-md)}.project-gallery__sort{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.project-gallery__sort-buttons{justify-content:center}.project-gallery__filter-group{gap:var(--spacing-xs)}.project-gallery__empty{padding:var(--spacing-xl) var(--spacing-md);min-height:250px}.project-gallery__empty-icon{width:48px;height:48px;margin-bottom:var(--spacing-md)}}@media (max-width: 480px){.project-gallery__search-field{padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-sm) 40px}.project-gallery__search-icon{left:var(--spacing-sm);width:18px;height:18px}.project-gallery__search-clear{right:var(--spacing-sm);width:18px;height:18px}}@media (prefers-color-scheme: dark){.project-gallery__controls{background:var(--color-surface);border-color:var(--color-border)}.project-gallery__search-field{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-primary)}.project-gallery__search-field:focus{border-color:var(--color-primary)}.project-gallery__search-icon,.project-gallery__search-clear{color:var(--color-text-secondary)}.project-gallery__search-clear:hover{color:var(--color-text-primary);background:var(--color-surface-secondary)}.project-gallery__sort-label,.project-gallery__filter-label,.project-gallery__count{color:var(--color-text-secondary)}.project-gallery__empty{background:var(--color-surface);border-color:var(--color-border)}.project-gallery__empty-icon{color:var(--color-text-tertiary)}.project-gallery__empty-title{color:var(--color-text-primary)}.project-gallery__empty-description{color:var(--color-text-secondary)}}[data-theme=dark] .project-gallery__controls{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .project-gallery__search-field{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-primary)}[data-theme=dark] .project-gallery__search-field:focus{border-color:var(--color-primary)}[data-theme=dark] .project-gallery__search-icon,[data-theme=dark] .project-gallery__search-clear{color:var(--color-text-secondary)}[data-theme=dark] .project-gallery__search-clear:hover{color:var(--color-text-primary);background:var(--color-surface-secondary)}[data-theme=dark] .project-gallery__sort-label,[data-theme=dark] .project-gallery__filter-label,[data-theme=dark] .project-gallery__count{color:var(--color-text-secondary)}[data-theme=dark] .project-gallery__empty{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .project-gallery__empty-icon{color:var(--color-text-tertiary)}[data-theme=dark] .project-gallery__empty-title{color:var(--color-text-primary)}[data-theme=dark] .project-gallery__empty-description{color:var(--color-text-secondary)}.project-gallery--loading .project-gallery__grid{opacity:.6;pointer-events:none}.project-gallery__grid{transition:opacity var(--transition-normal) var(--ease-ios),transform var(--transition-normal) var(--ease-ios)}.project-gallery__grid--filtering{opacity:.7;transform:scale(.98)}.project-gallery__filter-badge:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.project-gallery__search-field:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.project-gallery__card-wrapper{opacity:0;transform:translateY(30px);transition:opacity .6s var(--ease-ios),transform .6s var(--ease-ios)}.project-gallery__card-wrapper.in-view{opacity:1;transform:translateY(0)}.project-gallery__card-wrapper:nth-child(1){transition-delay:0ms}.project-gallery__card-wrapper:nth-child(2){transition-delay:.15s}.project-gallery__card-wrapper:nth-child(3){transition-delay:.3s}.project-gallery__card-wrapper:nth-child(4){transition-delay:.45s}.project-gallery__card-wrapper:nth-child(5){transition-delay:.6s}.project-gallery__card-wrapper:nth-child(6){transition-delay:.75s}.project-gallery__card-wrapper:nth-child(7){transition-delay:.9s}.project-gallery__card-wrapper:nth-child(8){transition-delay:1.05s}.project-gallery__card-wrapper:nth-child(9){transition-delay:1.2s}@media (prefers-reduced-motion: reduce){.project-gallery__card-wrapper{opacity:1;transform:none;transition:none}}.project-detail{--detail-padding: var(--spacing-xl);--detail-gap: var(--spacing-xl)}.project-detail__container{display:flex;flex-direction:column;height:100%;max-height:100vh;overflow:hidden}.project-detail__header{flex-shrink:0;padding:var(--detail-padding);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.project-detail__header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg)}.project-detail__title-section{flex:1;min-width:0}.project-detail__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;line-height:var(--line-height-tight)}.project-detail__meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.project-detail__date{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.project-detail__close{flex-shrink:0;width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center}.project-detail__close svg{width:24px;height:24px}.project-detail__content{flex:1;display:grid;grid-template-columns:1fr 400px;gap:var(--detail-gap);padding:var(--detail-padding);overflow:hidden}.project-detail__carousel{display:flex;flex-direction:column;gap:var(--spacing-md);min-height:0}.project-detail__image-container{position:relative;flex:1;min-height:300px;background:var(--color-surface-secondary);border-radius:var(--border-radius-lg);overflow:hidden;display:flex;align-items:center;justify-content:center}.project-detail__image{width:100%;height:100%;object-fit:contain;transition:opacity .3s cubic-bezier(.4,0,.2,1)}.project-detail__image-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1}.project-detail__spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.project-detail__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);z-index:2}.project-detail__nav:hover{background:#000c;transform:translateY(-50%) scale(1.1)}.project-detail__nav--prev{left:var(--spacing-md)}.project-detail__nav--next{right:var(--spacing-md)}.project-detail__nav svg{width:24px;height:24px}.project-detail__image-caption{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;margin:0;padding:var(--spacing-sm);background:var(--color-surface);border-radius:var(--border-radius-md);line-height:var(--line-height-relaxed)}.project-detail__indicators{display:flex;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm)}.project-detail__indicator{width:8px;height:8px;border-radius:50%;border:none;background:var(--color-border);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.project-detail__indicator--active{background:var(--color-primary);transform:scale(1.25)}.project-detail__indicator:hover{background:var(--color-primary);opacity:.7}.project-detail__info{display:flex;flex-direction:column;gap:var(--detail-gap);overflow-y:auto;padding-right:var(--spacing-sm)}.project-detail__section{display:flex;flex-direction:column;gap:var(--spacing-md)}.project-detail__section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;padding-bottom:var(--spacing-xs);border-bottom:2px solid var(--color-primary)}.project-detail__description{display:flex;flex-direction:column;gap:var(--spacing-md)}.project-detail__paragraph{font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.project-detail__technologies{display:flex;flex-direction:column;gap:var(--spacing-sm)}.project-detail__technology{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-surface-secondary);border-radius:var(--border-radius-md)}.project-detail__tech-category{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-transform:capitalize}.project-detail__links{display:flex;flex-direction:column;gap:var(--spacing-sm)}.project-detail__link-button{justify-content:flex-start;text-align:left}.project-detail__link-icon{width:20px;height:20px;margin-right:var(--spacing-sm);flex-shrink:0}.project-detail__status{display:flex;align-items:center}@media (max-width: 1200px){.project-detail__content{grid-template-columns:1fr 350px}}@media (max-width: 1024px){.project-detail__content{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:var(--spacing-lg)}.project-detail__carousel{max-height:60vh}}@media (max-width: 768px){.project-detail{--detail-padding: var(--spacing-lg);--detail-gap: var(--spacing-lg)}.project-detail__header-content{gap:var(--spacing-md)}.project-detail__title{font-size:var(--font-size-xl)}.project-detail__content{gap:var(--spacing-md)}.project-detail__carousel{max-height:50vh}.project-detail__image-container{min-height:200px}.project-detail__nav{width:40px;height:40px}.project-detail__nav svg{width:20px;height:20px}.project-detail__nav--prev{left:var(--spacing-sm)}.project-detail__nav--next{right:var(--spacing-sm)}}@media (max-width: 480px){.project-detail{--detail-padding: var(--spacing-md);--detail-gap: var(--spacing-md)}.project-detail__header-content{flex-direction:column;align-items:stretch}.project-detail__close{align-self:flex-end}.project-detail__meta{gap:var(--spacing-xs)}.project-detail__carousel{max-height:40vh}.project-detail__links,.project-detail__technologies{gap:var(--spacing-xs)}.project-detail__technology{padding:var(--spacing-xs)}}@media (prefers-color-scheme: dark){.project-detail__header{background:var(--color-surface-dark);border-bottom-color:var(--color-border-dark)}.project-detail__title{color:var(--color-text-primary-dark)}.project-detail__date{color:var(--color-text-secondary-dark)}.project-detail__section-title{color:var(--color-text-primary-dark)}.project-detail__paragraph{color:var(--color-text-secondary-dark)}.project-detail__tech-category{color:var(--color-text-tertiary-dark)}.project-detail__technology{background:var(--color-surface-secondary-dark)}.project-detail__image-caption{background:var(--color-surface-dark);color:var(--color-text-secondary-dark)}.project-detail__image-container{background:var(--color-surface-secondary-dark)}.project-detail__indicator{background:var(--color-border-dark)}}.project-detail__nav:focus-visible,.project-detail__indicator:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.project-detail__info{scroll-behavior:smooth}.project-detail__info::-webkit-scrollbar{width:6px}.project-detail__info::-webkit-scrollbar-track{background:var(--color-surface-secondary);border-radius:3px}.project-detail__info::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.project-detail__info::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.project-showcase{width:100%;min-height:100vh}.project-showcase--loading{display:flex;align-items:center;justify-content:center}.project-showcase__loading{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-3xl);text-align:center}.project-showcase__spinner{width:48px;height:48px;border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.project-showcase__loading p{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:0}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-color-scheme: dark){.project-showcase__loading p{color:var(--color-text-secondary-dark)}.project-showcase__spinner{border-color:var(--color-border-dark);border-top-color:var(--color-primary)}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-background) 0%,var(--color-background-secondary) 100%);overflow:hidden;padding:var(--spacing-xl) 0}.hero:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center top,rgba(138,43,226,.08) 0%,rgba(0,122,255,.05) 30%,transparent 70%);pointer-events:none}.hero__container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.hero__content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-xl)}.hero__image-container{position:relative;opacity:0;transform:translateY(30px) scale(.9);transition:all .8s var(--ease-ios)}.hero--visible .hero__image-container{opacity:1;transform:translateY(0) scale(1)}.hero__image-wrapper{position:relative;width:200px;height:200px;margin:0 auto}.hero__image{width:100%;height:100%;border-radius:var(--radius-full);object-fit:cover;border:4px solid var(--color-background);box-shadow:var(--shadow-xl);transition:transform .3s var(--ease-ios)}.hero__image:hover{transform:scale(1.05)}.hero__image-glow{position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;background:linear-gradient(45deg,var(--color-primary),var(--color-success),var(--color-warning));border-radius:var(--radius-full);opacity:0;z-index:-1;filter:blur(20px);transition:opacity .3s var(--ease-ios)}.hero__image-wrapper:hover .hero__image-glow{opacity:.3}.hero__text{max-width:600px;margin:0 auto}.hero__greeting{opacity:0;transform:translateY(20px);transition:all .6s var(--ease-ios) .2s}.hero--visible .hero__greeting{opacity:1;transform:translateY(0)}.hero__greeting-text{font-size:var(--font-size-headline);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.1em}.hero__name{margin:var(--spacing-sm) 0 var(--spacing-md);opacity:0;transform:translateY(30px);transition:all .8s var(--ease-ios) .4s}.hero--visible .hero__name{opacity:1;transform:translateY(0)}.hero__name-text{font-size:var(--font-size-large-title);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-tight);background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero__title{margin:0 0 var(--spacing-lg);opacity:0;transform:translateY(20px);transition:all .6s var(--ease-ios) .6s}.hero--visible .hero__title{opacity:1;transform:translateY(0)}.hero__title-text{font-size:var(--font-size-title-1);font-weight:var(--font-weight-semibold);color:var(--color-primary);line-height:var(--line-height-tight)}.hero__subtitle{margin:0 0 var(--spacing-lg);opacity:0;transform:translateY(20px);transition:all .6s var(--ease-ios) .8s}.hero--visible .hero__subtitle{opacity:1;transform:translateY(0)}.hero__subtitle-text{font-size:var(--font-size-title-3);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.hero__bio{margin:0 0 var(--spacing-xl);opacity:0;transform:translateY(20px);transition:all .6s var(--ease-ios) 1s}.hero--visible .hero__bio{opacity:1;transform:translateY(0)}.hero__bio-text{font-size:var(--font-size-body);color:var(--color-text-tertiary);line-height:var(--line-height-relaxed);max-width:500px;margin:0 auto}.hero__actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center;opacity:0;transform:translateY(30px);transition:all .8s var(--ease-ios) 1.2s}.hero--visible .hero__actions{opacity:1;transform:translateY(0)}.hero__cta-primary,.hero__cta-secondary{min-width:160px;transition:transform .2s var(--ease-ios)}.hero__cta-primary:hover,.hero__cta-secondary:hover{transform:translateY(-2px)}.hero__cta-primary:active,.hero__cta-secondary:active{transform:translateY(0)}.hero__scroll-indicator{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);opacity:0;transform:translateY(20px);transition:all .6s var(--ease-ios) 1.4s;margin-top:var(--spacing-xl)}.hero--visible .hero__scroll-indicator{opacity:1;transform:translateY(0)}.hero__scroll-arrow{width:24px;height:24px;color:var(--color-text-tertiary);animation:bounce 2s infinite}.hero__scroll-text{font-size:var(--font-size-caption);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.1em;font-weight:var(--font-weight-medium)}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}60%{transform:translateY(-3px)}}@media (max-width: 768px){.hero{min-height:90vh;padding:var(--spacing-lg) 0}.hero__content{gap:var(--spacing-lg)}.hero__image-wrapper{width:160px;height:160px}.hero__name-text{font-size:var(--font-size-title-1)}.hero__title-text{font-size:var(--font-size-title-2)}.hero__subtitle-text{font-size:var(--font-size-headline)}.hero__bio-text{font-size:var(--font-size-callout)}.hero__actions{flex-direction:column;align-items:center;gap:var(--spacing-sm)}.hero__cta-primary,.hero__cta-secondary{width:100%;max-width:280px}}@media (max-width: 480px){.hero__container{padding:0 var(--spacing-md)}.hero__image-wrapper{width:140px;height:140px}.hero__name-text{font-size:var(--font-size-title-2)}.hero__title-text{font-size:var(--font-size-title-3)}}@media (prefers-color-scheme: dark){.hero{background:linear-gradient(135deg,var(--color-background) 0%,var(--color-background-secondary) 100%)}.hero:before{background:radial-gradient(ellipse at center top,rgba(138,43,226,.15) 0%,rgba(10,132,255,.1) 30%,transparent 70%)}}html[data-theme=dark] .hero{background:linear-gradient(135deg,var(--color-background) 0%,var(--color-background-secondary) 100%)!important}html[data-theme=dark] .hero:before{background:radial-gradient(ellipse at center top,rgba(138,43,226,.15) 0%,rgba(10,132,255,.1) 30%,transparent 70%)!important}.hero__name-text{background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}} .about{padding:var(--spacing-4xl) 0;background:var(--color-background);position:relative}.about__container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.about__header{text-align:center;margin-bottom:var(--spacing-3xl)}.about__title{font-size:var(--font-size-large-title);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-md);line-height:var(--line-height-tight)}.about__subtitle{font-size:var(--font-size-title-3);color:var(--color-text-secondary);line-height:var(--line-height-normal);max-width:600px;margin:0 auto}.about__content{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg)}@media (min-width: 768px){.about__content{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,minmax(200px,auto));gap:var(--spacing-lg)}.about__info-card{grid-column:1 / 3;grid-row:1 / 3}.about__skills-card{grid-column:3 / 5;grid-row:1 / 2}.about__contact-card{grid-column:3 / 5;grid-row:2 / 4}.about__stats-card{grid-column:1 / 3;grid-row:3 / 4}}.about__info-card,.about__skills-card,.about__contact-card,.about__stats-card{height:fit-content;border-radius:var(--radius-2xl);overflow:hidden;transition:transform var(--transition-normal) var(--ease-ios)}.about__info-card:hover,.about__skills-card:hover,.about__contact-card:hover,.about__stats-card:hover{transform:translateY(-4px)}.about__info{padding:var(--spacing-lg)}.about__info-title{font-size:var(--font-size-title-2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg)}.about__bio{margin-bottom:var(--spacing-xl)}.about__bio-text{font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.about__details{display:flex;flex-direction:column;gap:var(--spacing-md)}.about__detail-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border-secondary)}.about__detail-item:last-child{border-bottom:none}.about__detail-label{font-size:var(--font-size-callout);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary)}.about__detail-value{font-size:var(--font-size-callout);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:right}.about__stats{padding:var(--spacing-lg);height:100%;display:flex;flex-direction:column}.about__stats-title{font-size:var(--font-size-title-2);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg);text-align:center}.about__stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);flex:1;align-items:center}.about__stat-item{text-align:center;padding:var(--spacing-md);border-radius:var(--radius-lg);background:linear-gradient(135deg,#007aff,#5ac8fa);color:#fff;transition:transform var(--transition-fast) var(--ease-ios);box-shadow:0 4px 12px #007aff4d}.about__stat-item:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 8px 25px #007aff66}.about__stat-item:nth-child(2){background:linear-gradient(135deg,#34c759,#30d158);box-shadow:0 4px 12px #34c7594d}.about__stat-item:nth-child(2):hover{box-shadow:0 8px 25px #34c75966}.about__stat-item:nth-child(3){background:linear-gradient(135deg,#ff9500,#ffcc02);box-shadow:0 4px 12px #ff95004d}.about__stat-item:nth-child(3):hover{box-shadow:0 8px 25px #ff950066}.about__stat-item:nth-child(4){background:linear-gradient(135deg,#ff3b30,#ff6482);box-shadow:0 4px 12px #ff3b304d}.about__stat-item:nth-child(4):hover{box-shadow:0 8px 25px #ff3b3066}.about__stat-number{font-size:var(--font-size-large-title);font-weight:var(--font-weight-bold);line-height:1;margin-bottom:var(--spacing-xs)}.about__stat-label{font-size:var(--font-size-footnote);font-weight:var(--font-weight-medium);opacity:.9}.about__skills{padding:var(--spacing-lg)}.about__skills-title{font-size:var(--font-size-title-2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm)}.about__skills-subtitle{font-size:var(--font-size-body);color:var(--color-text-secondary);margin:0 0 var(--spacing-xl);line-height:var(--line-height-normal)}.about__skills-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media (min-width: 640px){.about__skills-grid{grid-template-columns:1fr 1fr}}.about__skill-category{display:flex;flex-direction:column;gap:var(--spacing-md)}.about__skill-category-title{font-size:var(--font-size-headline);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-primary);width:fit-content}.about__skill-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.about__skill-badge{transition:transform .2s var(--ease-ios)}.about__skill-badge:hover{transform:translateY(-2px)}.about__contact{padding:var(--spacing-lg)}.about__contact-title{font-size:var(--font-size-title-2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm)}.about__contact-subtitle{font-size:var(--font-size-body);color:var(--color-text-secondary);margin:0 0 var(--spacing-xl);line-height:var(--line-height-normal)}.about__contact-info{margin-bottom:var(--spacing-xl)}.about__contact-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) 0}.about__contact-label{font-size:var(--font-size-callout);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);min-width:60px}.about__contact-link{font-size:var(--font-size-callout);font-weight:var(--font-weight-medium);color:var(--color-primary);text-decoration:none;transition:color .2s var(--ease-ios)}.about__contact-link:hover{color:var(--color-primary-hover);text-decoration:underline}.about__social{border-top:1px solid var(--color-border-secondary);padding-top:var(--spacing-lg)}.about__social-title{font-size:var(--font-size-headline);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md)}.about__social-links{display:flex;flex-direction:column;gap:var(--spacing-md)}.about__social-link{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-background-secondary);border-radius:var(--radius-md);text-decoration:none;transition:all .2s var(--ease-ios);border:1px solid var(--color-border-secondary)}.about__social-link:hover{background:var(--color-surface);border-color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.about__social-platform{font-size:var(--font-size-callout);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.about__social-label{font-size:var(--font-size-footnote);color:var(--color-text-secondary)}@media (max-width: 768px){.about{padding:var(--spacing-3xl) 0}.about__container{padding:0 var(--spacing-md)}.about__header{margin-bottom:var(--spacing-2xl)}.about__title{font-size:var(--font-size-title-1)}.about__subtitle{font-size:var(--font-size-headline)}.about__content{gap:var(--spacing-lg)}.about__info,.about__skills,.about__contact{padding:var(--spacing-md)}.about__skills-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.about__detail-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.about__detail-value{text-align:left}}@media (max-width: 480px){.about__container{padding:0 var(--spacing-sm)}.about__title{font-size:var(--font-size-title-2)}.about__info,.about__skills,.about__contact{padding:var(--spacing-sm)}}@media (prefers-reduced-motion: no-preference){.about__info-card,.about__skills-card,.about__contact-card{opacity:0;transform:translateY(30px);animation:fadeInUp .6s var(--ease-ios) forwards}.about__skills-card{animation-delay:.2s}.about__contact-card{animation-delay:.4s}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}}@media (prefers-color-scheme: dark){.about__social-link{background:var(--color-background-secondary);border-color:var(--color-border-secondary)}.about__social-link:hover{background:var(--color-surface-secondary);border-color:var(--color-primary)}.about__detail-item{border-bottom-color:var(--color-border-secondary)}.about__social{border-top-color:var(--color-border-secondary)}}[data-theme=dark] .about__social-link{background:var(--color-background-secondary);border-color:var(--color-border-secondary)}[data-theme=dark] .about__social-link:hover{background:var(--color-surface-secondary);border-color:var(--color-primary)}[data-theme=dark] .about__detail-item{border-bottom-color:var(--color-border-secondary)}[data-theme=dark] .about__social{border-top-color:var(--color-border-secondary)}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background-color:var(--color-surface-secondary);z-index:var(--z-sticky);opacity:0;transition:opacity var(--transition-fast) var(--ease-ios)}.scroll-progress--visible{opacity:1}.scroll-progress__bar{height:100%;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-success) 50%,var(--color-warning) 100%);transition:width .1s ease-out;border-radius:0 2px 2px 0}.scroll-progress__percentage{position:absolute;top:100%;right:var(--spacing-md);background-color:var(--color-surface);color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);margin-top:var(--spacing-xs)}@media (prefers-color-scheme: dark){.scroll-progress{background-color:var(--color-surface-secondary)}.scroll-progress__percentage{background-color:var(--color-surface);color:var(--color-text-secondary);border-color:var(--color-border)}}[data-theme=dark] .scroll-progress{background-color:var(--color-surface-secondary)}[data-theme=dark] .scroll-progress__percentage{background-color:var(--color-surface);color:var(--color-text-secondary);border-color:var(--color-border)}.scroll-to-top{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);z-index:var(--z-fixed);opacity:0;visibility:hidden;transform:translateY(20px) scale(.8);transition:all var(--transition-normal) var(--ease-ios)}.scroll-to-top--visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.scroll-to-top__button{width:3rem;height:3rem;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:#007affe6;border:1px solid rgba(255,255,255,.2);transition:all var(--transition-fast) var(--ease-ios);display:flex;align-items:center;justify-content:center;cursor:pointer}.scroll-to-top__button:hover{transform:translateY(-2px) scale(1.1);box-shadow:var(--shadow-xl);background-color:var(--color-primary)}.scroll-to-top__button:active{transform:translateY(0) scale(1.05)}.scroll-to-top__button svg{width:20px;height:20px;color:#fff;display:block}.scroll-to-top--visible .scroll-to-top__button{animation:scrollToTopPulse .6s ease-out}@keyframes scrollToTopPulse{0%{transform:scale(.8);box-shadow:0 0 #007affb3}70%{transform:scale(1.05);box-shadow:0 0 0 10px #007aff00}to{transform:scale(1);box-shadow:0 0 #007aff00}}@media (max-width: 768px){.scroll-to-top{bottom:var(--spacing-lg);right:var(--spacing-lg)}.scroll-to-top__button{width:2.5rem;height:2.5rem}}@media (prefers-color-scheme: dark){.scroll-to-top__button{background-color:#0a84ffe6;border-color:#ffffff1a}}[data-theme=dark] .scroll-to-top__button{background-color:#0a84ffe6;border-color:#ffffff1a}:root{--color-primary: #007AFF;--color-primary-hover: #0056CC;--color-primary-active: #004299;--color-success: #34C759;--color-warning: #FF9500;--color-error: #FF3B30;--color-gray-1: #8E8E93;--color-gray-2: #AEAEB2;--color-gray-3: #C7C7CC;--color-gray-4: #D1D1D6;--color-gray-5: #E5E5EA;--color-gray-6: #F2F2F7;--color-background: #FFFFFF;--color-background-secondary: #F2F2F7;--color-background-tertiary: #FFFFFF;--color-surface: #FFFFFF;--color-surface-secondary: #F2F2F7;--color-text-primary: #000000;--color-text-secondary: #3C3C43;--color-text-tertiary: #3C3C4399;--color-border: #C6C6C8;--color-border-secondary: #E5E5EA;--color-separator: #C6C6C8;--font-family-primary: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", sans-serif;--font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-size-large-title: 2.125rem;--font-size-title-1: 1.75rem;--font-size-title-2: 1.375rem;--font-size-title-3: 1.25rem;--font-size-headline: 1.0625rem;--font-size-body: 1.0625rem;--font-size-callout: 1rem;--font-size-subhead: .9375rem;--font-size-footnote: .8125rem;--font-size-caption: .75rem;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.6;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 6rem;--spacing-5xl: 8rem;--radius-xs: .25rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-card: 0 2px 10px rgba(0, 0, 0, .08);--shadow-modal: 0 10px 40px rgba(0, 0, 0, .15);--shadow-button: 0 1px 3px rgba(0, 0, 0, .12);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080;--transition-fast: .15s ease-out;--transition-normal: .25s ease-out;--transition-slow: .35s ease-out;--ease-ios: cubic-bezier(.25, .46, .45, .94);--ease-ios-in: cubic-bezier(.42, 0, 1, 1);--ease-ios-out: cubic-bezier(0, 0, .58, 1);--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}@media (prefers-color-scheme: dark){:root{--color-primary: #0A84FF;--color-primary-hover: #409CFF;--color-primary-active: #0056CC;--color-success: #30D158;--color-warning: #FF9F0A;--color-error: #FF453A;--color-background: #000000;--color-background-secondary: #1C1C1E;--color-background-tertiary: #2C2C2E;--color-surface: #1C1C1E;--color-surface-secondary: #2C2C2E;--color-text-primary: #FFFFFF;--color-text-secondary: #EBEBF5;--color-text-tertiary: #EBEBF599;--color-border: #38383A;--color-border-secondary: #48484A;--color-separator: #38383A;--color-gray-1: #8E8E93;--color-gray-2: #636366;--color-gray-3: #48484A;--color-gray-4: #3A3A3C;--color-gray-5: #2C2C2E;--color-gray-6: #1C1C1E;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 10px 10px -5px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .6);--shadow-card: 0 2px 10px rgba(0, 0, 0, .3);--shadow-modal: 0 10px 40px rgba(0, 0, 0, .5);--shadow-button: 0 1px 3px rgba(0, 0, 0, .3)}}html[data-theme=dark],html[data-theme=dark] :root{background-color:#000!important;--color-primary: #0A84FF;--color-primary-hover: #409CFF;--color-primary-active: #0056CC;--color-success: #30D158;--color-warning: #FF9F0A;--color-error: #FF453A;--color-background: #000000;--color-background-secondary: #1C1C1E;--color-background-tertiary: #2C2C2E;--color-surface: #1C1C1E;--color-surface-secondary: #2C2C2E;--color-text-primary: #FFFFFF;--color-text-secondary: #EBEBF5;--color-text-tertiary: #EBEBF599;--color-border: #38383A;--color-border-secondary: #48484A;--color-separator: #38383A;--color-gray-1: #8E8E93;--color-gray-2: #636366;--color-gray-3: #48484A;--color-gray-4: #3A3A3C;--color-gray-5: #2C2C2E;--color-gray-6: #1C1C1E;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 10px 10px -5px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .6);--shadow-card: 0 2px 10px rgba(0, 0, 0, .3);--shadow-modal: 0 10px 40px rgba(0, 0, 0, .5);--shadow-button: 0 1px 3px rgba(0, 0, 0, .3)}html[data-theme=dark] body{background-color:#000!important;color:#fff!important}html[data-theme=dark] *{--color-background: #000000 !important;--color-text-primary: #FFFFFF !important;--color-surface: #1C1C1E !important}.text-large-title{font-size:var(--font-size-large-title);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:-.02em}.text-title-1{font-size:var(--font-size-title-1);font-weight:var(--font-weight-regular);line-height:var(--line-height-tight);letter-spacing:-.01em}.text-title-2{font-size:var(--font-size-title-2);font-weight:var(--font-weight-regular);line-height:var(--line-height-tight)}.text-title-3{font-size:var(--font-size-title-3);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}.text-headline{font-size:var(--font-size-headline);font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal)}.text-body{font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}.text-callout{font-size:var(--font-size-callout);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}.text-subhead{font-size:var(--font-size-subhead);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}.text-footnote{font-size:var(--font-size-footnote);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}.text-caption{font-size:var(--font-size-caption);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}.font-regular{font-weight:var(--font-weight-regular)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-accent{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.leading-tight{line-height:var(--line-height-tight)}.leading-normal{line-height:var(--line-height-normal)}.leading-relaxed{line-height:var(--line-height-relaxed)}.font-mono{font-family:var(--font-family-mono)}.m-0{margin:0}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.m-2xl{margin:var(--spacing-2xl)}.m-3xl{margin:var(--spacing-3xl)}.mt-0{margin-top:0}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mt-2xl{margin-top:var(--spacing-2xl)}.mt-3xl{margin-top:var(--spacing-3xl)}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.mb-3xl{margin-bottom:var(--spacing-3xl)}.ml-0{margin-left:0}.ml-xs{margin-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.ml-2xl{margin-left:var(--spacing-2xl)}.ml-3xl{margin-left:var(--spacing-3xl)}.mr-0{margin-right:0}.mr-xs{margin-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.mr-2xl{margin-right:var(--spacing-2xl)}.mr-3xl{margin-right:var(--spacing-3xl)}.mx-0{margin-left:0;margin-right:0}.mx-xs{margin-left:var(--spacing-xs);margin-right:var(--spacing-xs)}.mx-sm{margin-left:var(--spacing-sm);margin-right:var(--spacing-sm)}.mx-md{margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.mx-lg{margin-left:var(--spacing-lg);margin-right:var(--spacing-lg)}.mx-xl{margin-left:var(--spacing-xl);margin-right:var(--spacing-xl)}.mx-2xl{margin-left:var(--spacing-2xl);margin-right:var(--spacing-2xl)}.mx-3xl{margin-left:var(--spacing-3xl);margin-right:var(--spacing-3xl)}.my-0{margin-top:0;margin-bottom:0}.my-xs{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.my-sm{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.my-md{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.my-lg{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.my-xl{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.my-2xl{margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.my-3xl{margin-top:var(--spacing-3xl);margin-bottom:var(--spacing-3xl)}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.p-2xl{padding:var(--spacing-2xl)}.p-3xl{padding:var(--spacing-3xl)}.pt-0{padding-top:0}.pt-xs{padding-top:var(--spacing-xs)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pt-2xl{padding-top:var(--spacing-2xl)}.pt-3xl{padding-top:var(--spacing-3xl)}.pb-0{padding-bottom:0}.pb-xs{padding-bottom:var(--spacing-xs)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.pb-2xl{padding-bottom:var(--spacing-2xl)}.pb-3xl{padding-bottom:var(--spacing-3xl)}.pl-0{padding-left:0}.pl-xs{padding-left:var(--spacing-xs)}.pl-sm{padding-left:var(--spacing-sm)}.pl-md{padding-left:var(--spacing-md)}.pl-lg{padding-left:var(--spacing-lg)}.pl-xl{padding-left:var(--spacing-xl)}.pl-2xl{padding-left:var(--spacing-2xl)}.pl-3xl{padding-left:var(--spacing-3xl)}.pr-0{padding-right:0}.pr-xs{padding-right:var(--spacing-xs)}.pr-sm{padding-right:var(--spacing-sm)}.pr-md{padding-right:var(--spacing-md)}.pr-lg{padding-right:var(--spacing-lg)}.pr-xl{padding-right:var(--spacing-xl)}.pr-2xl{padding-right:var(--spacing-2xl)}.pr-3xl{padding-right:var(--spacing-3xl)}.px-0{padding-left:0;padding-right:0}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.px-2xl{padding-left:var(--spacing-2xl);padding-right:var(--spacing-2xl)}.px-3xl{padding-left:var(--spacing-3xl);padding-right:var(--spacing-3xl)}.py-0{padding-top:0;padding-bottom:0}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.py-2xl{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.py-3xl{padding-top:var(--spacing-3xl);padding-bottom:var(--spacing-3xl)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.gap-0{gap:0}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.gap-2xl{gap:var(--spacing-2xl)}.gap-3xl{gap:var(--spacing-3xl)}.w-full{width:100%}.w-auto{width:auto}.w-fit{width:fit-content}.h-full{height:100%}.h-auto{height:auto}.h-fit{height:fit-content}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.rounded-none{border-radius:0}.rounded-xs{border-radius:var(--radius-xs)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:none}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}@media (max-width: 640px){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}}@media (max-width: 768px){.md\:hidden{display:none}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}}@media (max-width: 1024px){.lg\:hidden{display:none}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-8px,0)}70%{transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.animate-fade-in{animation:fadeIn .6s var(--ease-ios) forwards}.animate-fade-out{animation:fadeOut .4s var(--ease-ios) forwards}.animate-slide-in-up{animation:slideInUp .6s var(--ease-ios) forwards}.animate-slide-in-down{animation:slideInDown .6s var(--ease-ios) forwards}.animate-slide-in-left{animation:slideInLeft .6s var(--ease-ios) forwards}.animate-slide-in-right{animation:slideInRight .6s var(--ease-ios) forwards}.animate-scale-in{animation:scaleIn .4s var(--ease-ios) forwards}.animate-scale-out{animation:scaleOut .3s var(--ease-ios) forwards}.animate-bounce{animation:bounce 1s ease-in-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.scroll-animate{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease-ios),transform .8s var(--ease-ios)}.scroll-animate.in-view{opacity:1;transform:translateY(0)}.scroll-animate-stagger{opacity:0;transform:translateY(30px);transition:opacity .6s var(--ease-ios),transform .6s var(--ease-ios)}.scroll-animate-stagger:nth-child(1){transition-delay:0ms}.scroll-animate-stagger:nth-child(2){transition-delay:.1s}.scroll-animate-stagger:nth-child(3){transition-delay:.2s}.scroll-animate-stagger:nth-child(4){transition-delay:.3s}.scroll-animate-stagger:nth-child(5){transition-delay:.4s}.scroll-animate-stagger:nth-child(6){transition-delay:.5s}.scroll-animate-stagger.in-view{opacity:1;transform:translateY(0)}.loading-spinner{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem}.loading-spinner__circle{width:1.5rem;height:1.5rem;border:2px solid var(--color-gray-5);border-top:2px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.loading-spinner--small .loading-spinner__circle{width:1rem;height:1rem;border-width:1.5px}.loading-spinner--large .loading-spinner__circle{width:2.5rem;height:2.5rem;border-width:3px}.loading-activity{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem}.loading-activity__dot{width:3px;height:3px;background-color:var(--color-primary);border-radius:50%;margin:0 1px;animation:pulse 1.4s ease-in-out infinite both}.loading-activity__dot:nth-child(1){animation-delay:-.32s}.loading-activity__dot:nth-child(2){animation-delay:-.16s}.loading-activity__dot:nth-child(3){animation-delay:0s}.skeleton{background:linear-gradient(90deg,var(--color-gray-6) 25%,var(--color-gray-5) 50%,var(--color-gray-6) 75%);background-size:200px 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton--text{height:1rem;margin-bottom:.5rem}.skeleton--title{height:1.5rem;margin-bottom:1rem}.skeleton--avatar{width:3rem;height:3rem;border-radius:50%}.skeleton--card{height:12rem;border-radius:var(--radius-lg)}.hover-lift{transition:transform var(--transition-fast) var(--ease-ios),box-shadow var(--transition-fast) var(--ease-ios)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.hover-scale{transition:transform var(--transition-fast) var(--ease-ios)}.hover-scale:hover{transform:scale(1.02)}.hover-glow{transition:box-shadow var(--transition-fast) var(--ease-ios)}.hover-glow:hover{box-shadow:0 0 20px #007aff4d}.touch-feedback{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.touch-feedback:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background-color:#007aff1a;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s var(--ease-ios),height .3s var(--ease-ios);pointer-events:none}.touch-feedback:active:before{width:200px;height:200px}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .6s var(--ease-ios),transform .6s var(--ease-ios)}.page-exit{opacity:1;transform:translateY(0)}.page-exit-active{opacity:0;transform:translateY(-10px);transition:opacity .4s var(--ease-ios),transform .4s var(--ease-ios)}.parallax{will-change:transform}.parallax-slow{transform:translateY(var(--parallax-offset, 0))}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.parallax{transform:none!important}.scroll-animate,.scroll-animate-stagger{opacity:1;transform:none}}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.delay-1000{animation-delay:1s}.duration-150{animation-duration:.15s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.duration-1000{animation-duration:1s}*,*:before,*:after{box-sizing:border-box}*{margin:0}body{line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;font-family:var(--font-family-primary);background-color:var(--color-background);color:var(--color-text-primary);transition:background-color var(--transition-normal),color var(--transition-normal)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root{isolation:isolate}html{scroll-behavior:smooth}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-3);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-2)}::selection{background-color:var(--color-primary);color:#fff}::-moz-selection{background-color:var(--color-primary);color:#fff}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}*{-webkit-tap-highlight-color:transparent}*,*:before,*:after{transition-property:background-color,border-color,color,fill,stroke;transition-duration:var(--transition-fast);transition-timing-function:var(--ease-ios)}img,video{height:auto;max-width:100%}button{cursor:pointer;border:none;background:none;font-family:inherit}a{color:inherit;text-decoration:none}main{padding-top:4rem}
