*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}img{max-width:100%;display:block}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000040}.window{-webkit-backdrop-filter:blur(52px)saturate(200%)brightness(1.04);will-change:transform;background:#ebedf29e;border:1px solid #ffffff8c;border-radius:16px;flex-direction:column;width:720px;max-width:calc(100vw - 40px);height:520px;max-height:calc(100vh - 120px);animation:.45s cubic-bezier(.16,1,.3,1) both windowOpen;display:flex;position:absolute;overflow:hidden;box-shadow:0 40px 90px #0003,0 8px 24px #0000001a,0 0 0 .5px #0000001a,inset 0 1px #ffffffbf}.window--active{box-shadow:0 48px 100px #00000047,0 12px 32px #0000001f,0 0 0 .5px #00000024,inset 0 1px #fffc}.window--dragging{opacity:.93;cursor:grabbing;transition:none!important}@keyframes windowOpen{0%{opacity:0;transform:scale(.82)translateY(24px)}60%{opacity:1;transform:scale(1.015)translateY(-3px)}to{opacity:1;transform:scale(1)translateY(0)}}.window__titlebar{cursor:grab;-webkit-backdrop-filter:blur(8px);background:linear-gradient(#ffffffb8 0%,#f8f8fc94 100%);border-bottom:1px solid #00000012;flex-shrink:0;align-items:center;height:48px;padding:0 16px;display:flex;position:relative}.window__titlebar:active{cursor:grabbing}.window--active .window__titlebar{background:linear-gradient(#ffffffd6 0%,#f4f4faad 100%)}.window__traffic-lights{z-index:1;gap:8px;display:flex}.window__btn{border-radius:50%;width:12px;height:12px;transition:filter .15s;position:relative}.window__btn--close{background:#ff5f57}.window__btn--minimize{background:#febc2e}.window__btn--fullscreen{background:#28c840}.window:not(.window--active) .window__btn{background:#d4d4d4}.window__btn:after{color:#00000073;opacity:0;justify-content:center;align-items:center;font-size:8px;font-weight:800;line-height:1;transition:opacity .1s;display:flex;position:absolute;inset:0}.window__traffic-lights:hover .window__btn:after{opacity:1}.window__traffic-lights:hover .window__btn--close:after{content:"✕";font-size:7px}.window__traffic-lights:hover .window__btn--minimize:after{content:"−";font-size:12px}.window__traffic-lights:hover .window__btn--fullscreen:after{content:"⤢";font-size:9px}.window__title{color:#000000d9;white-space:nowrap;pointer-events:none;font-size:13px;font-weight:500;position:absolute;left:50%;transform:translate(-50%)}.window:not(.window--active) .window__title{color:#00000059}.window__content{background:#fcfcffeb;flex:1;padding:28px;overflow-y:auto}.window__content::-webkit-scrollbar{width:6px}.window__content::-webkit-scrollbar-track{background:0 0}.window__content::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.window__content::-webkit-scrollbar-thumb:hover{background:#00000040}.app-content{color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,Inter,sans-serif;line-height:1.6}.app-content h2{color:#1d1d1f;letter-spacing:-.01em;margin-bottom:14px;font-size:18px;font-weight:700}.app-content h3{color:#1d1d1f;margin-bottom:8px;font-size:15px;font-weight:600}.app-content p{color:#424245;margin-bottom:12px;font-size:14px}.app-hero{align-items:center;gap:20px;margin:-28px -28px 0;padding:32px 28px 28px;display:flex;position:relative;overflow:hidden}.app-hero h1{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:700}.app-hero p{opacity:.8;margin:4px 0 0;font-size:14px}.app-hero__text{z-index:1;position:relative}.app-hero--blue{color:#fff;background:linear-gradient(135deg,#0c5cb6 0%,#1a8ae8 50%,#38bdf8 100%)}.app-hero--blue h1,.app-hero--blue p,.app-hero--blue a{color:#fff}.app-hero--purple{color:#fff;background:linear-gradient(135deg,#4c1d95,#7c3aed 50%,#a78bfa 100%)}.app-hero--purple h1,.app-hero--purple p{color:#fff}.app-hero--dark{color:#fff;background:linear-gradient(135deg,#0f172a,#1e293b 60%,#334155 100%);flex-wrap:wrap;justify-content:space-between}.app-hero--dark h1,.app-hero--dark p{color:#fff}.app-hero--green{color:#fff;background:linear-gradient(135deg,#065f46,#059669 50%,#34d399 100%)}.app-hero--green h1,.app-hero--green p{color:#fff}.app-hero--cyan{color:#fff;background:linear-gradient(135deg,#0c4a6e,#0284c7 50%,#38bdf8 100%)}.app-hero--cyan h1,.app-hero--cyan p{color:#fff}.app-body{flex-direction:column;gap:24px;padding-top:24px;display:flex}.about{flex-direction:column;display:flex}.about .app-hero{gap:18px}.about__avatar{object-fit:cover;border:2.5px solid #ffffff73;border-radius:50%;flex-shrink:0;width:68px;height:68px;box-shadow:0 4px 16px #0003}.about__hero-text h1{margin-bottom:2px;font-size:22px}.about__hero-text p{opacity:.8}.about__links{gap:14px;margin-top:8px;display:flex}.about__links a{color:#ffffffe6;background:#ffffff26;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background .2s}.about__links a:hover{background:#ffffff47}.about__bio{color:#424245;font-size:14px;line-height:1.7}.about__section,.about__skill-groups{flex-direction:column;gap:12px;display:flex}.about__skill-group{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.about__skill-label{text-transform:uppercase;letter-spacing:.04em;color:#86868b;flex-shrink:0;min-width:82px;font-size:12px;font-weight:600}.about__skills{flex-wrap:wrap;gap:6px;display:flex}.about__skill{color:#1e3a5f;background:#f0f4ff;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500;transition:background .2s}.about__skill:hover{background:#dbeafe}.about__experience-item{background:#f8f9fb;border:1px solid #f0f1f3;border-radius:14px;padding:16px}.about__exp-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.about__experience-item h4{color:#1d1d1f;margin-bottom:0;font-size:14px;font-weight:600}.about__exp-date{color:#86868b;white-space:nowrap;font-size:12px}.about__exp-company{color:#86868b;margin:2px 0 0;font-size:13px}.about__exp-bullets{flex-direction:column;gap:6px;margin:10px 0 0;padding-left:18px;list-style:outside;display:flex}.about__exp-bullets li{color:#424245;font-size:13px;line-height:1.55}.about__project-link{color:#007aff;font-size:13px;font-weight:500;text-decoration:none}.about__project-link:hover{text-decoration:underline}.projects{flex-direction:column;display:flex}.project-feature{background:linear-gradient(#faf8ff,#f3f0ff);border:1px solid #e9e5f5;border-radius:18px;padding:24px}.project-feature__header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.project-feature__badge{color:#166534;text-transform:uppercase;letter-spacing:.04em;background:#dcfce7;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600}.project-feature__link{color:#7c3aed;font-size:13px;font-weight:500;text-decoration:none}.project-feature__link:hover{text-decoration:underline}.project-feature__title{color:#0f172a;margin-bottom:10px;font-size:24px;font-weight:700}.project-feature__desc{color:#475569;margin-bottom:20px;font-size:14px;line-height:1.7}.project-feature__details{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.project-feature__detail{color:#334155;gap:12px;font-size:13px;line-height:1.5;display:flex}.project-feature__detail-label{color:#0f172a;flex-shrink:0;min-width:60px;font-weight:600}.project-feature__highlights{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.project-feature__highlight{background:#fff;border:1px solid #e9e5f5;border-radius:12px;flex-direction:column;gap:4px;padding:14px;display:flex}.project-feature__highlight strong{color:#0f172a;font-size:13px}.project-feature__highlight span{color:#64748b;font-size:12px;line-height:1.5}.projects__more{background:#f8f9fb;border:1px solid #f0f1f3;border-radius:14px;padding:18px}.projects__more h3{margin-bottom:4px;font-size:14px;font-weight:600}.projects__more p{color:#86868b;margin:0;font-size:13px}.project-card__tags{flex-wrap:wrap;gap:6px;display:flex}.project-card__tag{color:#5b21b6;background:#7c3aed14;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:500}.contact{flex-direction:column;display:flex}.contact__links{flex-direction:column;gap:10px;display:flex}.contact__link{cursor:pointer;background:#f8f9fb;border:1px solid #f0f1f3;border-radius:14px;align-items:center;gap:14px;padding:14px 18px;transition:background .2s,transform .15s;display:flex}.contact__link:hover{background:#f0f4ff;transform:translateY(-1px)}.contact__link-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.contact__link-icon svg{width:20px;height:20px}.contact__link-info h4{color:#1d1d1f;margin-bottom:1px;font-size:14px;font-weight:600}.contact__link-info p{color:#86868b;margin:0;font-size:13px}.contact__form{flex-direction:column;gap:12px;display:flex}.contact__input,.contact__textarea{color:#1d1d1f;background:#f8f9fb;border:1px solid #e2e4e8;border-radius:12px;outline:none;width:100%;padding:12px 16px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}.contact__input:focus,.contact__textarea:focus{background:#fff;border-color:#059669;box-shadow:0 0 0 3px #0596691a}.contact__textarea{resize:vertical;min-height:120px}.contact__submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#059669,#10b981);border:none;border-radius:12px;align-self:flex-start;padding:10px 28px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .2s;box-shadow:0 2px 8px #05966933}.contact__submit:hover{transform:translateY(-1px);box-shadow:0 4px 14px #0596694d}.contact__submit:active{transform:scale(.97)}.github{flex-direction:column;display:flex}.github__profile-link{color:#fff;white-space:nowrap;background:#ffffff26;border-radius:999px;flex-shrink:0;padding:8px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:background .2s}.github__profile-link:hover{background:#ffffff40}.github__state{color:#86868b;background:#f8f9fb;border-radius:14px;padding:14px 16px;font-size:13px}.github__state--error{color:#b42318;background:#fef3f2}.github__list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.github__repo{background:#f8f9fb;border:1px solid #f0f1f3;border-radius:16px;flex-direction:column;gap:10px;padding:18px;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.github__repo:hover{border-color:#e2e4e8;transform:translateY(-2px);box-shadow:0 8px 24px #0f172a0f}.github__repo-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.github__repo-top h3{color:#0f172a;margin:0;font-size:14px;font-weight:600}.github__repo-top span{color:#94a3b8;font-size:12px}.github__repo p{color:#64748b;margin:0;font-size:13px;line-height:1.5}.github__repo-meta{color:#94a3b8;flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.github__repo-lang{align-items:center;gap:5px;display:flex}.github__lang-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.github__repo-live{color:#166534;text-transform:uppercase;background:#dcfce7;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:600}.feed{flex-direction:column;max-width:740px;display:flex}.feed .app-body{gap:16px}.feed__section-label{text-transform:uppercase;letter-spacing:.06em;color:#86868b;align-items:center;gap:8px;padding:0 4px;font-size:11px;font-weight:600;display:flex}.feed__loading-dot{background:#0284c7;border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite feedPulse}@keyframes feedPulse{0%,to{opacity:.3}50%{opacity:1}}.feed__notice{color:#86868b;background:#f8f9fb;border-radius:12px;padding:12px 16px;font-size:13px}.feed__timeline{flex-direction:column;gap:10px;display:flex}.feed__post{background:#fff;border:1px solid #eaecf0;border-radius:16px;gap:14px;padding:16px;display:flex;box-shadow:0 1px 3px #0f172a0a}.feed__avatar{color:#fff;background:linear-gradient(135deg,#0ea5e9,#111827);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex}.feed__body{flex:1;min-width:0}.feed__meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.feed__meta strong{color:#101828}.feed__meta span{color:#667085}.feed__pin-badge{color:#3b82f6;text-transform:uppercase;letter-spacing:.04em;background:#f0f5ff;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:600}.feed__body p{color:#334155;margin:0;font-size:14px;line-height:1.65}.feed__post--commit{box-shadow:none;background:#f8f9fb;border-color:#f0f1f3;padding:12px 16px}.feed__commit-icon{color:#3b82f6;background:#f0f5ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.feed__commit-repo{color:#0f172a;font-size:13px;font-weight:600}.feed__commit-msg{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.55;text-decoration:none;display:block;overflow:hidden}.feed__commit-msg:hover{color:#0284c7}.desktop{background:#0c5cb6;width:100%;height:100%;position:relative;overflow:hidden}.desktop__wallpaper{background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.desktop__wallpaper--next{opacity:0;z-index:1;transition:opacity ease-in-out}.desktop__wallpaper--fading{opacity:1}.desktop__hint{pointer-events:none;z-index:2;justify-content:center;animation:1.2s ease-out .3s both hintFadeIn;display:flex;position:absolute;bottom:100px;left:0;right:0}.desktop__hint-text{-webkit-backdrop-filter:blur(16px)saturate(140%);color:#ffffffc7;letter-spacing:.01em;background:#00000038;border:1px solid #ffffff1f;border-radius:999px;padding:6px 20px;font-size:13px;font-weight:500}@keyframes hintFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.desktop__canvas{position:absolute;inset:28px 0 0}.menubar{z-index:9000;-webkit-backdrop-filter:blur(30px)saturate(180%);color:#000000d9;background:#ffffffb8;border-bottom:.5px solid #00000014;justify-content:space-between;align-items:center;height:28px;padding:0 16px;font-size:13px;font-weight:500;display:flex;position:absolute;top:0;left:0;right:0}.menubar__left{align-items:center;gap:14px;display:flex}.menubar__apple{opacity:.85;align-items:center;display:flex}.menubar__app-name{font-size:13px;font-weight:600}.menubar__right{align-items:center;gap:18px;display:flex}.menubar__status{color:#000000b8;background:#ffffff75;border-radius:999px;align-items:center;gap:7px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex;box-shadow:inset 0 .5px #fff6}.menubar__status-dot{background:#34c759;border-radius:999px;width:7px;height:7px;box-shadow:0 0 10px #34c7598c}.menubar__item{color:#000000bf;font-size:13px;font-weight:400}.menubar__time{font-variant-numeric:tabular-nums}.dock{z-index:8000;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.dock__container{-webkit-backdrop-filter:blur(34px)saturate(180%);background:linear-gradient(#ffffff57,#ffffff29);border:1px solid #ffffff52;border-radius:24px;align-items:flex-end;gap:8px;padding:8px 14px 10px;display:flex;position:relative;box-shadow:0 18px 60px #0a122338,inset 0 1px #ffffff5c,inset 0 -1px #ffffff14}.dock__reflection{pointer-events:none;background:linear-gradient(#ffffff4d,#0000);border-radius:18px 18px 40px 40px;height:48%;position:absolute;top:2px;left:18px;right:18px}.dock__item{transform-origin:bottom;flex-direction:column;align-items:center;padding:0;transition:transform .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative}.dock__item:hover{transform:translateY(-8px)scale(1.25)}.dock__item:hover+.dock__item{transform:translateY(-3px)scale(1.1)}.dock__item:has(+.dock__item:hover){transform:translateY(-3px)scale(1.1)}.dock__icon{border-radius:16px;justify-content:center;align-items:center;width:54px;height:54px;transition:box-shadow .2s,transform .2s;display:flex;position:relative;box-shadow:0 10px 18px #00000029,inset 0 1px #ffffff47}.dock__icon:before{content:"";pointer-events:none;background:linear-gradient(#ffffff2e,#0000 45%);border-radius:15px;position:absolute;inset:1px}.dock__item:hover .dock__icon{transform:translateY(-1px);box-shadow:0 14px 24px #0000003d,inset 0 1px #ffffff52}.dock__item--open .dock__icon{box-shadow:0 8px 18px #00000038,inset 0 1px #ffffff47,0 0 0 1px #ffffff2e}.dock__icon svg{width:28px;height:28px}.dock__tooltip{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#fff;white-space:nowrap;pointer-events:none;opacity:0;background:#18181bc7;border-radius:10px;padding:6px 12px;font-size:12px;font-weight:500;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.dock__item:hover .dock__tooltip{opacity:1;transform:translate(-50%)translateY(-2px)}.dock__indicator{background:linear-gradient(90deg,#ffffff4d,#ffffffe6,#ffffff4d);border-radius:50%;width:18px;height:4px;margin-top:5px;box-shadow:0 0 8px #ffffff73}@media (max-width:920px){.desktop__hint{bottom:94px}.desktop__hint-text{font-size:12px}}@media (prefers-reduced-motion:reduce){.desktop__hint,.dock__item{transition:none;animation:none}}.android{background:#1a1a2e;flex-direction:column;width:100%;height:100%;font-family:Roboto,Inter,sans-serif;display:flex;position:relative;overflow:hidden}.android__wallpaper{z-index:0;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.android__wallpaper--next{opacity:0;z-index:1;transition:opacity ease-in-out}.android__wallpaper--fading{opacity:1}.android__status{z-index:10;color:#ffffffd9;flex-shrink:0;justify-content:space-between;align-items:center;height:36px;padding:8px 20px;display:flex}.android__status--app{color:#000000b3;z-index:10;background:#f8f9fa}.android__status-time{font-variant-numeric:tabular-nums;font-size:13px;font-weight:500}.android__status-icons{opacity:.7;align-items:center;gap:6px;display:flex}.android__home{z-index:5;flex-direction:column;flex:1;gap:28px;padding:12px 24px;display:flex;position:relative;overflow-y:auto}.android__widget{flex-direction:column;align-items:flex-start;padding:24px 0 8px;display:flex}.android__widget-time{color:#fffffff2;letter-spacing:-.02em;text-shadow:0 1px 8px #0000004d;font-size:56px;font-weight:200;line-height:1}.android__widget-date{color:#ffffffb3;text-shadow:0 1px 4px #00000040;margin-top:4px;font-size:15px;font-weight:400}.android__search-bar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#00000059;background:#ffffffbf;border-radius:28px;align-items:center;gap:12px;padding:14px 20px;font-size:15px;display:flex;box-shadow:0 1px 4px #0000000a}.android__grid{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:center;gap:22px 16px;padding:8px 0;display:grid}.android__app-icon{-webkit-tap-highlight-color:transparent;touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:8px;padding:0;transition:transform .18s,opacity .18s;display:flex;position:relative}.android__app-icon:active .android__icon-shape{transform:scale(.9)}.android__app-icon--dragging{z-index:20}.android__app-icon--dragging .android__icon-shape{box-shadow:0 18px 30px #00000038,0 6px 14px #00000024}.android__app-icon--dragging .android__app-label{opacity:.95}.android__app-icon--target .android__icon-shape{box-shadow:0 0 0 3px #ffffffa6,0 10px 18px #00000029}.android__icon-shape{border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;transition:transform .15s,box-shadow .18s;display:flex;box-shadow:0 2px 8px #0000001a}.android__icon-shape svg{width:28px;height:28px}.android__app-label{color:#fffffff2;text-align:center;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px #0006;max-width:68px;font-size:12px;font-weight:500;overflow:hidden}.android__activity{z-index:5;background:#f2f4f8;flex-direction:column;flex:1;animation:.42s cubic-bezier(.16,1,.3,1) activitySlideUp;display:flex;position:relative;overflow:hidden}@keyframes activitySlideUp{0%{opacity:0;transform:translateY(56px)scale(.97)}60%{opacity:1;transform:translateY(-4px)scale(1.005)}to{opacity:1;transform:translateY(0)scale(1)}}.android__app-bar{background:linear-gradient(160deg, color-mix(in srgb, var(--app-color,#4285f4) 18%, #fff), color-mix(in srgb, var(--app-color,#4285f4) 8%, #f2f4f8) 100%);flex-shrink:0;align-items:center;gap:8px;padding:14px 8px 16px;display:flex}.android__back-btn{width:40px;height:40px;color:color-mix(in srgb, var(--app-color,#4285f4) 70%, #000);-webkit-tap-highlight-color:transparent;border-radius:20px;justify-content:center;align-items:center;transition:background .15s;display:flex}.android__back-btn:active{background:#0000000f}.android__back-btn svg{width:24px;height:24px}.android__app-bar-title{color:#000000d9;font-size:20px;font-weight:500}.android__app-content{background:#fff;border-radius:24px 24px 0 0;flex:1;padding:0;overflow-y:auto;box-shadow:0 -2px 16px #0000000a}.android__app-content .app-hero{border-radius:0;margin:0}.android__app-content .app-body{padding:20px}.android__navbar{z-index:10;flex-shrink:0;justify-content:center;align-items:center;padding:8px 0 12px;display:flex}.android__nav-pill{-webkit-tap-highlight-color:transparent;background:#fff6;border-radius:3px;width:120px;height:5px;transition:background .15s}.android__nav-pill:active{background:#ffffffb3}
