*,:after,:before{box-sizing:border-box}body,html{min-width:320px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0}button,input,textarea{font:inherit}img,svg{max-width:100%}::selection{background:#315ddc;color:#fff}:root{--background:#07111f;--surface:#0d1a2c;--surface-elevated:#122238;--surface-soft:hsla(0,0%,100%,.045);--text-primary:#f5f8fc;--text-secondary:#a9b7ca;--border:rgba(167,196,231,.16);--accent:#4f8cff;--accent-strong:#72a5ff;--accent-secondary:#35d0ba;--shadow:0 28px 80px rgba(0,0,0,.26);--radius-large:28px;--radius-medium:18px;--transition:180ms ease}:root[data-theme=light]{--background:#f5f7fb;--surface:#fff;--surface-elevated:#edf2f9;--surface-soft:rgba(16,47,86,.045);--text-primary:#10233d;--text-secondary:#52657d;--border:rgba(16,47,86,.14);--accent:#155eef;--accent-strong:#0e4fd1;--accent-secondary:#078b7b;--shadow:0 24px 70px rgba(33,60,94,.12)}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:#07111f;background:var(--background);color:#f5f8fc;color:var(--text-primary);transition:background-color .18s ease,color .18s ease;transition:background-color var(--transition),color var(--transition)}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #72a5ff;outline:3px solid var(--accent-strong);outline-offset:4px}.app{background:radial-gradient(circle at 83% 8%,rgba(79,140,255,.13),transparent 25rem),radial-gradient(circle at 10% 38%,rgba(53,208,186,.07),transparent 24rem),#07111f;background:radial-gradient(circle at 83% 8%,rgba(79,140,255,.13),transparent 25rem),radial-gradient(circle at 10% 38%,rgba(53,208,186,.07),transparent 24rem),var(--background);min-height:100vh;overflow:hidden}.section-shell{margin-inline:auto;width:min(1160px,calc(100% - 48px))}.hero{grid-gap:clamp(48px,7vw,96px);align-items:center;display:grid;gap:clamp(48px,7vw,96px);grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);min-height:100vh;padding-block:148px 96px}.eyebrow,.section-kicker{color:#72a5ff;color:var(--accent-strong);font-size:.78rem;font-weight:800;letter-spacing:.14em;margin:0;text-transform:uppercase}.eyebrow{align-items:center;background:hsla(0,0%,100%,.045);background:var(--surface-soft);border:1px solid rgba(167,196,231,.16);border:1px solid var(--border);border-radius:999px;display:inline-flex;gap:10px;padding:9px 14px}.status-dot{background:#35d0ba;background:var(--accent-secondary);border-radius:50%;box-shadow:0 0 0 6px color-mix(in srgb,#35d0ba 16%,transparent);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent-secondary) 16%,transparent);height:8px;width:8px}.hero h1{font-size:clamp(2.8rem,6vw,5.65rem);font-weight:760;letter-spacing:-.058em;line-height:.98;margin:28px 0 24px;max-width:780px}.contact-panel h2 span,.hero h1 span{color:#72a5ff;color:var(--accent-strong)}.hero-description{color:#a9b7ca;color:var(--text-secondary);font-size:clamp(1.04rem,1.5vw,1.22rem);line-height:1.78;margin:0;max-width:670px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.button{align-items:center;border:1px solid transparent;border-radius:12px;color:#f5f8fc;color:var(--text-primary);display:inline-flex;font-size:.94rem;font-weight:750;gap:10px;justify-content:center;min-height:50px;padding:0 20px;text-decoration:none;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,-webkit-transform .18s ease;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease,-webkit-transform .18s ease;transition:border-color var(--transition),background-color var(--transition),box-shadow var(--transition),-webkit-transform var(--transition);transition:transform var(--transition),border-color var(--transition),background-color var(--transition),box-shadow var(--transition);transition:transform var(--transition),border-color var(--transition),background-color var(--transition),box-shadow var(--transition),-webkit-transform var(--transition)}.button:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px)}.button-primary{background:linear-gradient(135deg,#4f8cff,#315ddc);background:linear-gradient(135deg,var(--accent),#315ddc);box-shadow:0 14px 32px rgba(49,93,220,.24);color:#fff}.button-primary:hover{box-shadow:0 18px 40px rgba(49,93,220,.34)}.button-secondary{background:hsla(0,0%,100%,.045);background:var(--surface-soft);border-color:rgba(167,196,231,.16);border-color:var(--border)}.button-secondary:hover{background:#0d1a2c;background:var(--surface);border-color:color-mix(in srgb,#4f8cff 52%,rgba(167,196,231,.16));border-color:color-mix(in srgb,var(--accent) 52%,var(--border))}.feature-list,.tag-list,.technology-list{list-style:none;padding:0}.technology-list{display:flex;flex-wrap:wrap;gap:9px;margin:32px 0 0}.tag-list li,.technology-list li{background:hsla(0,0%,100%,.045);background:var(--surface-soft);border:1px solid rgba(167,196,231,.16);border:1px solid var(--border);border-radius:999px;color:#a9b7ca;color:var(--text-secondary);font-size:.78rem;font-weight:700}.technology-list li{padding:8px 12px}.hero-panel{position:relative}.hero-panel:before{background:rgba(53,208,186,.12);border-radius:50%;content:"";-webkit-filter:blur(55px);filter:blur(55px);height:220px;inset:12% -12% auto auto;position:absolute;width:220px}.code-window{background:rgba(7,17,31,.88);border:1px solid rgba(167,196,231,.16);border:1px solid var(--border);border-radius:28px;border-radius:var(--radius-large);box-shadow:0 28px 80px rgba(0,0,0,.26);box-shadow:var(--shadow);overflow:hidden;position:relative;-webkit-transform:rotate(1.5deg);transform:rotate(1.5deg)}.window-bar{border-bottom:1px solid hsla(0,0%,100%,.09);display:flex;gap:7px;padding:17px 20px}.window-bar span{background:#ff6b6b;border-radius:50%;height:9px;width:9px}.window-bar span:nth-child(2){background:#f8c65d}.window-bar span:nth-child(3){background:#54d38a}.code-window pre{color:#dbe8fa;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:clamp(.86rem,1.4vw,1.02rem);line-height:2;margin:0;padding:clamp(30px,5vw,54px) clamp(24px,4vw,42px);white-space:pre-wrap}.code-purple{color:#c69cff}.code-green{color:#62e6c7}.hero-metrics{grid-gap:1px;background:rgba(167,196,231,.16);background:var(--border);border:1px solid rgba(167,196,231,.16);border:1px solid var(--border);border-radius:15px;box-shadow:0 28px 80px rgba(0,0,0,.26);box-shadow:var(--shadow);display:grid;gap:1px;grid-template-columns:repeat(3,1fr);margin:-18px auto 0;overflow:hidden;position:relative;width:calc(100% - 36px);z-index:1}.hero-metrics div{background:#0d1a2c;background:var(--surface);display:flex;flex-direction:column;justify-content:center;min-height:108px;padding:16px}.hero-metrics strong{font-size:.92rem}.hero-metrics span{color:#a9b7ca;color:var(--text-secondary);font-size:.75rem;line-height:1.45;margin-top:7px}.section{padding-block:clamp(86px,11vw,144px)}.section-heading{max-width:790px}.section-heading h2{font-size:clamp(2.2rem,4.8vw,4.25rem);letter-spacing:-.05em;line-height:1.04;margin:18px 0 22px}.portfolio-heading>p,.section-heading>p:last-child{color:#a9b7ca;color:var(--text-secondary);font-size:1.04rem;line-height:1.75;margin:0}.specialty-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-top:56px}.specialty-card{background:linear-gradient(145deg,hsla(0,0%,100%,.045),transparent);background:linear-gradient(145deg,var(--surface-soft),transparent);border:1px solid rgba(167,196,231,.16);border:1px solid var(--border);border-radius:18px;border-radius:var(--radius-medium);min-height:285px;padding:28px;transition:border-color .18s ease,background-color .18s ease,-webkit-transform .18s ease;transition:transform .18s ease,border-color .18s ease,background-color .18s ease;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,-webkit-transform .18s ease;transition:border-color var(--transition),background-color var(--transition),-webkit-transform var(--transition);transition:transform var(--transition),border-color var(--transition),background-color var(--transition);transition:transform var(--transition),border-color var(--transition),background-color var(--transition),-webkit-transform var(--transition)}.specialty-card:hover{background:#0d1a2c;background:var(--surface);border-color:color-mix(in srgb,#4f8cff 48%,rgba(167,196,231,.16));border-color:color-mix(in srgb,var(--accent) 48%,var(--border));-webkit-transform:translateY(-4px);transform:translateY(-4px)}.specialty-card>span{color:#72a5ff;color:var(--accent-strong);font-size:.78rem;font-weight:800;letter-spacing:.12em}.specialty-card h3{font-size:1.3rem;letter-spacing:-.02em;margin:56px 0 16px}.specialty-card p{color:#a9b7ca;color:var(--text-secondary);line-height:1.7;margin:0}.about-note{align-items:center;background:#0d1a2c;background:var(--surface);border:1px solid rgba(167,196,231,.16);border:1px solid var(--border);border-radius:18px;border-radius:var(--radius-medium);display:flex;gap:32px;justify-content:space-between;margin-top:24px;padding:24px 28px}.about-note p{color:#a9b7ca;color:var(--text-secondary);line-height:1.7;margin:0;max-width:730px}.about-note strong{color:#f5f8fc;color:var(--text-primary)}.about-note a{color:#72a5ff;color:var(--accent-strong);flex:none;font-weight:750;text-decoration:none}.portfolio-heading{grid-gap:64px;align-items:flex-end;display:grid;gap:64px;grid-template-columns:1.35fr .65fr;max-width:none}.portfolio-heading h2{margin-bottom:0;max-width:760px}.project-grid{grid-gap:22px;display:grid;gap:22px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:60px}.project-card{background:#0d1a2c;background:var(--surface);border:1px solid rgba(167,196,231,.16);border:1px solid var(--border);border-radius:28px;border-radius:var(--radius-large);box-shadow:0 18px 55px rgba(0,0,0,.08);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,-webkit-transform .18s ease;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,-webkit-transform .18s ease;transition:border-color var(--transition),box-shadow var(--transition),-webkit-transform var(--transition);transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition),-webkit-transform var(--transition)}.project-card:hover{border-color:color-mix(in srgb,#4f8cff 42%,rgba(167,196,231,.16));border-color:color-mix(in srgb,var(--accent) 42%,var(--border));box-shadow:0 28px 80px rgba(0,0,0,.26);box-shadow:var(--shadow);-webkit-transform:translateY(-5px);transform:translateY(-5px)}.project-visual{color:hsla(0,0%,100%,.94);display:grid;isolation:isolate;min-height:220px;overflow:hidden;place-items:center;position:relative}.project-visual:after,.project-visual:before{border-radius:50%;content:"";-webkit-filter:blur(1px);filter:blur(1px);position:absolute;z-index:-1}.project-visual:before{background:hsla(0,0%,100%,.12);height:250px;right:-50px;top:-110px;width:250px}.project-visual:after{border:1px solid hsla(0,0%,100%,.2);bottom:-110px;height:180px;left:-20px;width:180px}.accent-blue{background:linear-gradient(135deg,#123c87,#446be4)}.accent-teal{background:linear-gradient(135deg,#075a62,#11a595)}.accent-violet{background:linear-gradient(135deg,#42246f,#8a50d2)}.accent-orange{background:linear-gradient(135deg,#8d3d19,#dc7741)}.project-visual>strong{font-size:clamp(3.2rem,7vw,5.5rem);letter-spacing:-.08em}.project-category,.project-index{font-size:.76rem;font-weight:800;letter-spacing:.11em;position:absolute;text-transform:uppercase;top:24px}.project-index{left:26px}.project-category{right:26px}.project-content{padding:28px}.project-meta{color:#72a5ff;color:var(--accent-strong);display:flex;font-size:.75rem;font-weight:800;justify-content:space-between;letter-spacing:.1em;text-transform:uppercase}.project-content h3{font-size:clamp(1.35rem,2vw,1.7rem);letter-spacing:-.03em;margin:16px 0 12px}.project-content>p{line-height:1.68;margin:0;min-height:84px}.feature-list,.project-content>p{color:#a9b7ca;color:var(--text-secondary)}.feature-list{grid-gap:8px;display:grid;font-size:.9rem;gap:8px;margin:22px 0}.feature-list li{padding-left:19px;position:relative}.feature-list li:before{color:#35d0ba;color:var(--accent-secondary);content:"✓";font-weight:900;left:0;position:absolute}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin:0}.tag-list li{padding:6px 10px}.project-links{border-top:1px solid rgba(167,196,231,.16);border-top:1px solid var(--border);display:flex;gap:22px;margin-top:28px;padding-top:22px}.text-link{color:#f5f8fc;color:var(--text-primary);font-size:.9rem;font-weight:800;text-decoration:none}.text-link:hover{color:#72a5ff;color:var(--accent-strong)}.text-link-muted{color:#a9b7ca;color:var(--text-secondary)}.github-callout{align-items:center;background:hsla(0,0%,100%,.045);background:var(--surface-soft);border:1px solid rgba(167,196,231,.16);border:1px solid var(--border);border-radius:18px;border-radius:var(--radius-medium);display:flex;gap:28px;justify-content:space-between;margin-top:24px;padding:30px}.github-callout h3{font-size:clamp(1.2rem,2vw,1.55rem);margin:9px 0 0}@media (max-width:960px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:150px}.hero-copy{max-width:790px}.hero-panel{max-width:690px}.specialty-grid{grid-template-columns:1fr}.specialty-card{min-height:auto}.specialty-card h3{margin-top:30px}.portfolio-heading{gap:24px;grid-template-columns:1fr}.portfolio-heading>p{max-width:680px}}@media (max-width:720px){.section-shell{width:min(100% - 32px,1160px)}.hero{gap:54px;padding-block:124px 70px}.hero h1{font-size:clamp(2.55rem,13vw,4.2rem)}.hero-description{font-size:1rem}.hero-actions,.hero-actions .button{width:100%}.technology-list{margin-top:26px}.hero-metrics{grid-template-columns:1fr}.hero-metrics div{min-height:88px}.section{padding-block:82px}.section-heading h2{font-size:clamp(2.15rem,10vw,3.2rem)}.about-note,.github-callout{align-items:flex-start;flex-direction:column}.project-grid{grid-template-columns:1fr;margin-top:42px}.project-content>p{min-height:auto}.github-callout .button{width:100%}}@media (max-width:420px){.code-window pre{font-size:.76rem}.project-visual{min-height:185px}.project-content,.specialty-card{padding:22px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.site-header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:color-mix(in srgb,var(--background) 84%,transparent);border-bottom:1px solid var(--border);inset:0 0 auto;position:fixed;z-index:100}.header-inner{align-items:center;display:flex;gap:28px;justify-content:space-between;margin-inline:auto;min-height:78px;width:min(1160px,calc(100% - 48px))}.brand{align-items:center;color:var(--text-primary);display:inline-flex;gap:12px;text-decoration:none}.brand-mark{background:linear-gradient(135deg,var(--accent),#314fbe);border-radius:11px;box-shadow:0 10px 24px rgba(49,93,220,.22);color:#fff;display:grid;font-size:.82rem;font-weight:900;height:40px;letter-spacing:-.03em;place-items:center;width:40px}.brand-copy{display:flex;flex-direction:column;gap:3px}.brand-copy strong{font-size:.92rem;letter-spacing:-.01em}.brand-copy small{color:var(--text-secondary);font-size:.68rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.main-nav{align-items:center;display:flex;gap:6px}.main-nav a{border-radius:9px;color:var(--text-secondary);font-size:.88rem;font-weight:700;padding:10px 13px;text-decoration:none;transition:color var(--transition),background-color var(--transition)}.main-nav a:hover{background:var(--surface-soft);color:var(--text-primary)}.header-actions{align-items:center;display:flex;gap:9px}.menu-button,.theme-button{background:var(--surface-soft);border:1px solid var(--border);border-radius:11px;color:var(--text-primary);cursor:pointer;height:42px;transition:border-color var(--transition),background-color var(--transition),-webkit-transform var(--transition);transition:transform var(--transition),border-color var(--transition),background-color var(--transition);transition:transform var(--transition),border-color var(--transition),background-color var(--transition),-webkit-transform var(--transition);width:42px}.menu-button:hover,.theme-button:hover{background:var(--surface);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));-webkit-transform:translateY(-1px);transform:translateY(-1px)}.theme-button{display:grid;font-size:1rem;place-items:center}.menu-button{display:none;padding:10px}.menu-button span{background:currentColor;border-radius:2px;display:block;height:2px;margin:4px auto;width:19px}@media (max-width:720px){.header-inner{min-height:70px;width:min(100% - 32px,1160px)}.brand-copy small,.main-nav{display:none}.main-nav{align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);flex-direction:column;inset:70px 16px auto;padding:10px;position:absolute}.main-nav.is-open{display:flex}.main-nav a{padding:14px}.menu-button{display:block}}.site-footer{background:color-mix(in srgb,var(--surface) 52%,transparent);border-top:1px solid var(--border);padding:clamp(80px,10vw,120px) 0 28px}.contact-panel{align-items:flex-end;display:flex;gap:48px;justify-content:space-between;padding-bottom:54px}.contact-panel h2{font-size:clamp(2.25rem,5.4vw,5rem);letter-spacing:-.055em;line-height:1;margin:18px 0 0;max-width:840px}.contact-panel .button{flex:none;margin-bottom:7px}.contact-list{border-block:1px solid var(--border);display:grid;grid-template-columns:repeat(3,1fr)}.contact-list a{color:var(--text-primary);display:flex;flex-direction:column;gap:8px;min-width:0;padding:24px;text-decoration:none;transition:background-color var(--transition)}.contact-list a+a{border-left:1px solid var(--border)}.contact-list a:hover{background:var(--surface-soft)}.contact-list span{color:var(--text-secondary);font-size:.75rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.contact-list strong{font-size:.94rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer-bottom{align-items:center;color:var(--text-secondary);display:flex;font-size:.82rem;gap:24px;justify-content:space-between;padding-top:28px}.footer-bottom p{margin:0}.footer-bottom a{color:var(--text-primary);font-weight:750;text-decoration:none}@media (max-width:820px){.contact-panel{align-items:flex-start;flex-direction:column}.contact-list{grid-template-columns:1fr}.contact-list a+a{border-left:0;border-top:1px solid var(--border)}}@media (max-width:560px){.contact-panel .button{width:100%}.footer-bottom{align-items:flex-start;flex-direction:column}}
/*# sourceMappingURL=main.4fdc98ac.css.map*/