@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap";:root{color-scheme:light;--font-body: "DM Sans", "Segoe UI", sans-serif;--font-display: "Manrope", "DM Sans", sans-serif;--page-bg: #f4f6f8;--page-bg-accent: rgba(63, 103, 211, .08);--surface: #ffffff;--surface-strong: #ffffff;--surface-muted: #edf1f7;--surface-accent: #e9efff;--text: #283344;--text-muted: #687487;--text-subtle: #8b95a5;--text-on-accent: #ffffff;--border: #e5e9ef;--border-strong: #e0e5ed;--accent-rgb: 63, 103, 211;--accent: rgb(var(--accent-rgb));--accent-soft: rgba(var(--accent-rgb), .1);--amber: #c47a24;--shadow-sm: 0 2px 8px rgba(39, 54, 78, .05);--shadow-md: 0 12px 36px rgba(39, 54, 78, .08);--radius-sm: 1.2rem;--radius-md: 2rem;--radius-lg: 2.8rem;--radius-pill: 999px;--space-2: .8rem;--space-3: 1.2rem;--space-4: 1.6rem;--space-5: 2.4rem;--space-6: 3.2rem;--space-7: 4rem;--space-8: 5.6rem;--panel-padding: 2rem;--section-gap: 2rem;--project-copy-width: 74ch;--container-width: 112rem;--content-width: min(var(--container-width), calc(100vw - 3.2rem) );--header-height: 6.4rem}*{box-sizing:border-box;margin:0;padding:0}html{font-size:62.5%;scroll-behavior:smooth;background:var(--page-bg)}body{min-height:100%;overflow-x:hidden;font-family:var(--font-body);line-height:1.65;color:var(--text);background:var(--page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{display:none}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}li{list-style:none}section{scroll-margin-top:9rem}input:focus,button:focus,a:focus,textarea:focus{outline:2px solid rgba(var(--accent-rgb),.35);outline-offset:3px}.main-container{width:var(--content-width);margin:0 auto}.sec-pad{padding:var(--space-7) 0}.heading.heading-sec{display:grid;gap:var(--space-2)}.heading-primary,.top-heading,.sub-heading,.heading-sec__main,.about__content-title,.projects__row-content-title,.project-details__content-title,#features-title,#skills-title{color:var(--text);font-family:var(--font-display);line-height:1.02;letter-spacing:-.03em;text-transform:uppercase;overflow-wrap:anywhere}.heading-primary{font-size:clamp(3.6rem,9vw,6rem);font-weight:800;text-align:center;background:linear-gradient(180deg,#f3fff7,#7effa6 62%,#48ff7a);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 2rem rgba(var(--accent-rgb),.28)}.heading-sec__main{display:block;font-size:clamp(2.6rem,5vw,3.6rem);font-weight:900;text-align:center;color:#bfffd3;margin-bottom:var(--space-2)}.heading-sec__sub{display:block;width:min(64rem,100%);margin:0 auto;text-align:center;font-size:1.6rem;font-weight:400;color:var(--text-muted)}.text-body,.text-primary,.project-text,.features-list,.skills-list,.projects__row-content-desc,.about__content-details-para{font-size:1.6rem;font-weight:400;color:var(--text-muted)}.text-accent,.blue-highlight,.app-features-section span,.learning-outcomes-section span{color:var(--amber)}.header{position:fixed;top:.8rem;left:50%;transform:translate(-50%);width:calc(100vw - 1.6rem);max-width:118rem;min-height:var(--header-height);z-index:1000;border:1px solid var(--border-strong);border-radius:1.4rem;background:linear-gradient(180deg,#0a101ceb,#070c16f5);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);box-shadow:var(--shadow-sm),inset 0 0 0 1px #7fffa014}.header__content{display:flex;align-items:center;justify-content:space-between;min-height:var(--header-height);padding:0 1.4rem;gap:1.2rem}.header__logo-container,.header__main{display:flex;align-items:center}.header__logo-container{min-width:0;gap:1rem;cursor:pointer}.header__logo-circle{width:4.2rem;height:4.2rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid rgba(127,255,160,.55);border-radius:50%;box-shadow:0 0 1.2rem rgba(var(--accent-rgb),.2);font-family:var(--font-body);font-size:1.3rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#c7ffd8}.header__link{display:flex;align-items:center;justify-content:center;min-height:3.8rem;padding:0 1.5rem;border:1px solid rgba(127,255,160,.18);border-radius:var(--radius-pill);color:#9cd8aa;font-size:1.3rem;font-weight:600;background:#08121c8f;transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.header__link.active{color:#eaffef;border-color:#7fffa073;background:#4cff7a26;box-shadow:inset 0 0 0 1px #7fffa024}.header__main-ham-menu-cont{display:block;width:2.8rem;flex:0 0 auto;cursor:pointer}.header__main-ham-menu,.header__main-ham-menu-close{width:100%;opacity:.95;filter:brightness(0) saturate(100%) invert(85%) sepia(57%) saturate(518%) hue-rotate(56deg) brightness(101%) contrast(102%)}.header__sm-menu{position:absolute;top:calc(100% + .8rem);left:0;width:100%;overflow:hidden;border:1px solid rgba(127,255,160,.28);border-radius:1rem;background:linear-gradient(180deg,#0a101cfa,#070c16fa);box-shadow:var(--shadow-md),inset 0 0 0 1px #7fffa012;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}.header__sm-menu--active{visibility:visible;opacity:1;transform:translateY(0)}.header__sm-menu-link a{display:block;padding:1.6rem;border-bottom:1px solid rgba(127,255,160,.14);text-align:right;color:#b1ddbc;font-size:1.3rem;font-weight:600;letter-spacing:.04em}.header__sm-menu-link:last-child a{border-bottom:0}@media (hover: hover){.header__link:hover{color:#eefff2;border-color:#7fffa08c;background:#4cff7a29;box-shadow:0 0 1.2rem rgba(var(--accent-rgb),.22)}.header__sm-menu-link a:hover{color:#ebfff0;background:#4cff7a1f}.projects__row{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.projects__row:hover{transform:translateY(-1px);border-color:#7fffa070;box-shadow:var(--shadow-sm)}.btn:hover,.alt-style:hover,.btn--bg:hover,.btn--theme-inv:hover,.contact-btn:hover{transform:none;box-shadow:none}.btn:hover,.alt-style:hover{background:rgba(var(--accent-rgb),.12);border-color:#7fffa04d;color:#dbffe5}.btn--bg:hover,.btn--theme-inv:hover,.contact-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}}@media (max-width: 47.99em){.projects__row{justify-items:center;text-align:center}.projects__row-img-cont{width:100%;max-width:48rem;margin:0 auto}.projects__row-content,.about__content-main,.about__content-skills{text-align:center}.about__content-main .btn--bg,.about__content-main .btn,.about__content-main .alt-style{justify-self:center}.skills{justify-content:center}.project-details__desc,.project-details__tools-used{text-align:center}.project-details__links{justify-content:center}}.d-none{display:none}.home-hero,.project-cs-hero{position:relative;padding-top:10.4rem;padding-bottom:var(--space-7)}.project-cs-hero{padding-bottom:var(--space-5)}.home-hero{padding-bottom:var(--space-6)}.home-hero__content,.project-cs-hero__content{width:var(--content-width);margin:0 auto;padding:var(--space-7) var(--panel-padding);border:1px solid var(--border-strong);border-radius:1.6rem;background:linear-gradient(160deg,#0c121ff0,#090e18f5);box-shadow:var(--shadow-md),inset 0 0 0 1px #7fffa014}.home-hero__content{padding:var(--space-6) var(--panel-padding)}.project-cs-hero .heading-primary{margin:0;font-size:clamp(2.8rem,6.8vw,4.6rem);letter-spacing:-.015em}#main-heading{display:flex;flex-direction:column;align-items:center;gap:.4rem;margin-bottom:var(--space-3);text-align:center}.top-heading,.sub-heading{font-size:clamp(3rem,7vw,5.2rem);font-weight:800}.home-hero__content .text-primary{width:min(62rem,100%);margin:0 auto;text-align:center}.project-cs-hero__cta,.btn-container{margin-top:var(--space-5);display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-3)}.btn-container .btn--bg,.btn-container .contact-btn{width:auto}.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:28rem;min-height:4.4rem;padding:0 2.4rem;border:1px solid transparent;border-radius:.6rem;font-family:var(--font-body);font-size:1.3rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.btn,.alt-style{background:transparent;border-color:#7fffa04d;color:#dbffe5}.btn--bg,.btn--theme-inv,.contact-btn{background:var(--surface-strong);border-color:#7fffa04d;color:#dbffe5}.projects .main-container,.about .main-container,.project-details .main-container{display:grid;gap:var(--section-gap)}.project-details .main-container{gap:calc(var(--section-gap) + .6rem)}.projects__row-content-link{display:block}.projects__row{display:grid;grid-template-columns:1fr;gap:var(--space-4);align-items:start;padding:var(--panel-padding);border:1px solid var(--border-strong);border-radius:1.4rem;background:linear-gradient(165deg,#0b111df2,#090e18f5);box-shadow:var(--shadow-sm),inset 0 0 0 1px #7fffa00f}.projects__row-img-cont{overflow:hidden;border:1px solid rgba(127,255,160,.22);border-radius:.9rem;background:#10192ae6;aspect-ratio:16 / 9;max-height:22rem}.projects__row-img{width:100%;height:100%;object-fit:cover;object-position:top center}.projects__row-content{display:grid;gap:var(--space-3)}.projects__row-content-title{font-size:clamp(2rem,1.2vw + 1.6rem,2.3rem);font-weight:800}.about__content{display:grid;grid-template-columns:1fr;gap:var(--space-4)}.about__content-main,.about__content-skills,.project-details__content-main,.project-details__showcase-img-cont{border:1px solid var(--border-strong);border-radius:1.4rem;background:linear-gradient(170deg,#0b111df0,#090e18f5);box-shadow:var(--shadow-sm),inset 0 0 0 1px #7fffa00f}.about__content-main,.about__content-skills,.project-details__content-main{padding:var(--panel-padding)}.about__content-main,.about__content-skills,.project-details__content-main,.contact .main-container,.about__content-details,.project-details__desc,.app-features-section,.learning-outcomes-section,.project-details__tools-used,.project-details__links{display:grid;gap:var(--space-4)}.project-details__desc{gap:calc(var(--space-3) + .2rem);padding-top:var(--space-2)}.project-details__tools-used .skills{margin-top:var(--space-2)}.project-details__links .project-details__content-title{margin-bottom:.4rem}.about__content-title,.project-details__content-title,#features-title,#skills-title{font-size:clamp(1.95rem,1.4vw + 1.4rem,2.2rem);font-weight:800;margin-bottom:0}.project-text,.features-list li,.skills-list li{font-family:var(--font-body)}.project-text{max-width:var(--project-copy-width);font-size:clamp(1.4rem,.45vw + 1.25rem,1.55rem);font-weight:500;line-height:1.8;color:#e8fff0}.features-list,.skills-list{display:grid;gap:var(--space-3)}.features-list li,.skills-list li{font-weight:500;line-height:1.75}.skills{display:flex;flex-wrap:wrap;gap:var(--space-2)}.skills__skill{display:inline-flex;align-items:center;gap:.8rem;min-height:4rem;max-width:100%;padding:.9rem 1.3rem;border:1px solid rgba(127,255,160,.3);border-radius:.8rem;background:rgba(var(--accent-rgb),.12);color:#dbffe5;font-size:1.3rem;font-weight:600}.project-details__content{width:100%;display:grid;gap:var(--space-4)}.project-details__content-main>*{min-width:0}.project-details__content-main>*+*{padding-top:var(--space-8);border-top:1px solid var(--border)}.project-details__showcase-img-cont{padding:var(--space-2);max-width:58rem;margin-left:auto;margin-right:auto}.project-details__showcase-img{width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:top;border-radius:1.4rem}.project-details__links .btn,.project-details__links .alt-style,.project-details__links .btn--theme-inv{width:100%}.about.sec-pad{padding-bottom:var(--space-4)}.contact.sec-pad{padding-top:var(--space-4);padding-bottom:var(--space-5)}.contact .main-container{padding:var(--panel-padding);border:1px solid var(--border-strong);border-radius:1.4rem;background:linear-gradient(165deg,#0b111df0,#090e18f5);box-shadow:var(--shadow-sm),inset 0 0 0 1px #7fffa00f;text-align:center}.contact .heading-sec__main,.contact .about__content-title{margin-bottom:0}.contact .heading-sec__sub{margin-bottom:var(--space-3);margin-top:var(--space-2)}.contact .btn-container{margin-top:var(--space-2)}.main-footer{margin-top:var(--space-7);padding:var(--space-5) 0 var(--space-7);border-top:1px solid rgba(127,255,160,.18)}.main-footer__upper{display:flex;align-items:center;justify-content:center;gap:1.4rem}.main-footer__upper a{display:inline-flex;align-items:center;justify-content:center;width:4.6rem;height:4.6rem;border:1px solid rgba(127,255,160,.3);border-radius:.9rem;background:#0b111de0;box-shadow:var(--shadow-sm),inset 0 0 0 1px #7fffa014}.main-footer__upper img{width:2.2rem;height:2.2rem;object-fit:contain}.home-hero__mouse-scroll-cont{display:none}.mouse{position:relative;width:2.8rem;height:4.8rem;border:1px solid rgba(127,255,160,.45);border-radius:var(--radius-pill);background:linear-gradient(180deg,#7fffa00f,#7fffa003);box-shadow:inset 0 0 0 1px #7fffa014,0 0 1.2rem rgba(var(--accent-rgb),.08);animation:mouseFloat 2.6s ease-in-out infinite}.mouse:before{content:"";position:absolute;top:.9rem;left:50%;width:.45rem;height:.95rem;border-radius:var(--radius-pill);background:linear-gradient(180deg,#d8ffe2 0%,var(--accent) 100%);box-shadow:0 0 1rem rgba(var(--accent-rgb),.35);transform:translate(-50%);animation:wheelTrack 2s cubic-bezier(.22,1,.36,1) infinite}@keyframes mouseFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-.4rem)}}@keyframes wheelTrack{0%{opacity:0;transform:translate(-50%) scaleY(.8)}18%{opacity:1;transform:translate(-50%,.2rem) scaleY(1)}58%{opacity:1;transform:translate(-50%,1.45rem) scaleY(1)}82%{opacity:0;transform:translate(-50%,2.15rem) scaleY(.82)}to{opacity:0;transform:translate(-50%) scaleY(.8)}}@media (prefers-reduced-motion: reduce){.mouse,.mouse:before{animation:none}}.about__content-main .btn,.about__content-main .alt-style,.about__content-main .btn--bg,.about__content-skills .btn{width:auto}@media (min-width: 48em){.about__content-main .btn,.about__content-main .alt-style,.about__content-main .btn--bg,.about__content-skills .btn{justify-self:start}}@media (min-width: 36em){.btn,.alt-style,.btn--bg,.btn--theme-inv,.contact-btn,.project-details__links .btn,.project-details__links .alt-style,.project-details__links .btn--theme-inv{width:auto}.project-details__links{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.project-details__links .project-details__content-title{width:100%}}@media (min-width: 48em){:root{--header-height: 7rem;--content-width: min(var(--container-width), calc(100vw - 4.8rem) );--panel-padding: 2.4rem;--section-gap: 2.8rem}.sec-pad{padding:5.6rem 0}.header{top:1.2rem;width:min(118rem,calc(100vw - 2.4rem))}.header__content{padding:0 2rem}.header__main-ham-menu-cont{display:none}.header__links{display:flex;align-items:center;gap:.6rem}.home-hero,.project-cs-hero{padding-top:13rem;padding-bottom:6rem}.project-cs-hero{padding-bottom:4.8rem}.project-details__content{gap:var(--space-5)}.projects__row{grid-template-columns:18rem 1fr;gap:var(--space-5);align-items:center}.projects__row-img-cont{aspect-ratio:3 / 2;max-height:none}.about__content{grid-template-columns:1.05fr .95fr}.about__content-main .btn-container{justify-content:flex-start}.project-details__showcase-img{aspect-ratio:16 / 9}.home-hero__mouse-scroll-cont{display:block;position:absolute;left:50%;bottom:2.8rem;transform:translate(-50%)}}@media (min-width: 64em){:root{--panel-padding: 3.2rem}.sec-pad{padding:6.4rem 0}.projects__row{grid-template-columns:22rem 1fr}}.home,.project-detail{padding-top:calc(var(--header-height) + 2.4rem)}.header__nav{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:var(--header-height);padding:0 1.4rem}.header__logo-circle{font-size:0}.header__logo-circle .fa-house:before{content:"⌂";font-size:2.4rem}.header__links{display:none}.header__main-ham-menu,.header__main-ham-menu-close{display:block;width:2.8rem;height:2.8rem;cursor:pointer}.header__sm-menu.active{visibility:visible;opacity:1;transform:translateY(0)}.header__sm-menu-links{display:grid;gap:.8rem;padding:1.2rem}.header__sm-menu-links .header__link{justify-content:flex-start}.header__main-ham-menu-close{width:2.4rem;height:2.4rem;margin:1.2rem 1.2rem 0 auto}.hero{display:grid;min-height:min(68rem,72vh);align-items:center;padding:4rem 0 6rem}.hero__content{width:var(--content-width);max-width:92rem;margin:0 auto;padding:5.6rem 2.4rem;border:1px solid var(--border-strong);border-radius:1.6rem;background:linear-gradient(160deg,#0c121ff0,#090e18f5);box-shadow:var(--shadow-md),inset 0 0 0 1px #7fffa014;text-align:center}.hero__content .heading-primary{margin-bottom:2rem;font-size:4rem}.heading__span{display:block}.hero__description,.about__bio,.contact__description{max-width:66ch;margin:0 auto;color:var(--text-muted);font-size:1.7rem}.projects,.about,.contact{width:var(--content-width);margin:0 auto;padding:5.6rem 0;scroll-margin-top:calc(var(--header-height) + 2rem)}.top-heading{margin-bottom:2.8rem;text-align:center}.projects__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(28rem,100%),1fr));gap:2rem}.project-card{display:grid;align-content:start;gap:1.4rem;overflow:hidden;padding-bottom:1.8rem;border:1px solid var(--border-strong);border-radius:.8rem;background:linear-gradient(165deg,#0b111df2,#090e18f5);box-shadow:var(--shadow-sm);transition:transform .2s ease,border-color .2s ease}.project-card:hover{transform:translateY(-3px);border-color:var(--accent)}.project-card__image{width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top center;background:var(--surface-muted)}.project-card__title,.project-card__description,.project-card__tech{margin-right:1.8rem;margin-left:1.8rem}.project-card__title{color:var(--text);font-family:var(--font-display);font-size:2.2rem;line-height:1.2}.project-card__description{color:var(--text-muted);font-size:1.45rem}.project-card__tech,.tech-stack{display:flex;flex-wrap:wrap;gap:.8rem}.project-card__tech-tag,.tech-tag,.skill-tag{padding:.5rem .9rem;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);background:#4cff7a0f;font-size:1.2rem}.about__container{display:grid;gap:3.2rem;max-width:96rem;margin:0 auto;padding:2.4rem;border:1px solid var(--border-strong);border-radius:.8rem;background:var(--surface)}.about__skills .sub-heading{margin-bottom:1.6rem;font-size:2.4rem}.skills-grid{display:flex;flex-wrap:wrap;gap:.8rem}.skill-tag{display:inline-flex;align-items:center;gap:.6rem;font-size:1.3rem}.contact{display:grid;justify-items:center;gap:1.6rem;margin-bottom:4rem;padding:4rem 2rem;border:1px solid var(--border-strong);border-radius:.8rem;background:var(--surface);text-align:center}.contact .top-heading{margin-bottom:0}.contact .btn{width:auto;gap:.8rem}.fa-arrow-right:before{content:"→"}.footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.6rem;padding:2.4rem max(1.6rem,calc((100vw - var(--container-width)) / 2));border-top:1px solid var(--border);background:#05080fcc}.footer__links{display:flex;gap:1rem}.footer__link{display:grid;min-width:3.8rem;min-height:3.8rem;place-items:center;border:1px solid var(--border);border-radius:.6rem;color:var(--text);font-size:1.3rem}.footer__link svg{width:1.8rem;height:1.8rem;fill:currentColor}.footer__link:hover,.footer__link:focus-visible{border-color:#cbd7f0;color:#3155a4;background:#f2f5fd}.footer__copy{color:var(--text-subtle);font-size:1.2rem}.project-hero,.project-main{width:var(--content-width);max-width:96rem;margin:0 auto}.project-hero{display:grid;justify-items:center;gap:2.4rem;padding:3.2rem 0 5.6rem}.project-hero__image{width:100%;max-height:48rem;aspect-ratio:16 / 9;border:1px solid var(--border-strong);border-radius:.8rem;object-fit:cover;object-position:top center}.project-main{display:grid;gap:3.2rem}.project-section{display:grid;gap:1.6rem;padding-top:2.4rem;border-top:1px solid var(--border)}.project-section .sub-heading{font-size:2.8rem}.features-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(24rem,100%),1fr));gap:1.2rem}.feature-item{padding:1.8rem;border:1px solid var(--border);border-radius:.8rem;background:var(--surface)}.feature-item__title{margin-bottom:.8rem;color:var(--text);font-size:1.8rem}.feature-item__description,.skills-list__item{color:var(--text-muted);font-size:1.5rem}.skills-list{display:grid;gap:.8rem}.skills-list__bullet{margin-right:.8rem;color:var(--accent)}.project-links .links-container{display:flex;flex-wrap:wrap;gap:1rem}.back-link{display:inline-flex;gap:.8rem;width:var(--content-width);margin:3.2rem auto;color:var(--accent)}.back-link .fa-arrow-left:before{content:"←"}@media (min-width: 48em){.header__nav{padding:0 2rem}.header__links{display:flex;align-items:center;gap:.8rem}.header__main-ham-menu{display:none}.hero__content{padding:7.2rem 5.6rem}.hero__content .heading-primary{font-size:5.6rem}.projects,.about,.contact{padding-top:7.2rem;padding-bottom:7.2rem}.about__container{grid-template-columns:1fr 1fr;align-items:start;padding:3.2rem}.project-hero{padding-top:4.8rem}}.header{position:fixed;z-index:1000;top:0;left:0;width:100%;max-width:none;min-height:var(--header-height);transform:none;border:0;border-bottom:1px solid var(--border-strong);border-radius:0;background:#fffffff5;box-shadow:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.header__nav{min-height:var(--header-height);padding:0 1.8rem}.sidebar-brand{display:flex;align-items:center;gap:1rem;min-width:0;color:var(--text)}.sidebar-brand__mark{display:grid;width:3.8rem;height:3.8rem;flex:0 0 auto;place-items:center;border-radius:.7rem;color:#fff;background:var(--accent);font-family:var(--font-display);font-size:1.4rem;font-weight:800}.sidebar-brand__copy{display:grid;line-height:1.35}.sidebar-brand__copy strong{font-size:1.4rem;font-weight:700}.sidebar-brand__copy small{color:var(--text-subtle);font-size:1.2rem}.sidebar-toggle{display:grid;width:4rem;height:4rem;align-content:center;justify-items:center;gap:.45rem;border:1px solid var(--border);border-radius:.6rem;background:#fff;cursor:pointer}.sidebar-toggle span{width:1.7rem;height:2px;border-radius:2px;background:var(--text-muted)}.header__links{display:none;gap:.4rem}.header__links.open{position:absolute;top:calc(100% + .6rem);right:1.2rem;left:1.2rem;display:grid;padding:.8rem;border:1px solid var(--border-strong);border-radius:.8rem;background:#fff;box-shadow:var(--shadow-md)}.header__link{display:flex;align-items:center;justify-content:flex-start;gap:.9rem;min-height:4rem;padding:0 1rem;border:0;border-radius:.5rem;color:var(--text-muted);background:transparent;font-size:1.35rem;font-weight:500;line-height:1.2;text-transform:none}.header__link.active{color:#3155a4;background:#eaf0ff;box-shadow:none}.sidebar-icon{display:grid;width:1.8rem;height:1.8rem;flex:0 0 1.8rem;place-items:center;color:currentColor;line-height:0}.sidebar-icon svg{display:block;width:1.8rem;height:1.8rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.home,.project-detail{padding-top:calc(var(--header-height) + 1.2rem)}.hero{min-height:auto;padding:4.2rem 2rem 3.2rem}.hero__content{width:var(--content-width);max-width:112rem;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;text-align:left}.hero__eyebrow{margin-bottom:1.2rem;color:var(--accent);font-size:1.15rem;font-weight:700}.hero__eyebrow span{padding:0 .5rem;color:#a5afbd}.hero__content .heading-primary{margin:0 0 1.2rem;color:var(--text);background:none;font-size:3.8rem;text-align:left;text-shadow:none;text-transform:none}.hero__description{margin:0;font-size:1.55rem}.hero__link{display:inline-flex;align-items:center;gap:.8rem;margin-top:1.8rem;color:#3155a4;font-size:1.35rem;font-weight:700}.hero__link span{font-size:1.8rem}.projects,.about,.contact{width:var(--content-width);max-width:112rem;padding:2.6rem 2rem 4.4rem}.top-heading{margin-bottom:1.8rem;color:var(--text);font-family:var(--font-display);font-size:2.2rem;font-weight:800;text-align:left;text-transform:none}.projects__grid{grid-template-columns:repeat(auto-fit,minmax(min(25rem,100%),1fr));gap:1.6rem}.project-card{gap:1rem;padding:0 0 1.6rem;border-color:var(--border-strong);border-radius:.7rem;background:#fff;box-shadow:var(--shadow-sm)}.project-card__image{aspect-ratio:16 / 9;border-bottom:1px solid var(--border);object-fit:cover}.project-card__title,.project-card__description,.project-card__tech{margin-right:1.5rem;margin-left:1.5rem}.project-card__title{font-family:var(--font-display);font-size:1.75rem;font-weight:700}.project-card__description{display:-webkit-box;overflow:hidden;color:var(--text-muted);font-size:1.3rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3}.project-card__tech-tag,.tech-tag,.skill-tag{padding:.35rem .7rem;border-color:#e7ebf2;border-radius:.4rem;color:#637087;background:#f6f8fb;font-size:1.1rem}.about__container{gap:2rem;padding:2.2rem;border-color:var(--border-strong);border-radius:.7rem;background:#fff;box-shadow:var(--shadow-sm)}.about__bio{margin:0;font-size:1.45rem}.about__skills .sub-heading{color:var(--text);font-size:1.75rem;text-transform:none}.skill-tag{font-size:1.2rem}.contact{justify-items:start;gap:1.2rem;margin-bottom:2.4rem;border:1px solid var(--border-strong);border-radius:.7rem;background:#fff;box-shadow:var(--shadow-sm);text-align:left}.contact .top-heading{margin:0}.contact__description{margin:0;font-size:1.45rem}.contact .btn{min-height:4rem;border-color:var(--accent);border-radius:.5rem;color:#fff;background:var(--accent);font-size:1.2rem}.footer{margin-left:0;padding:2rem;border-top-color:var(--border-strong);background:#fff}.footer__link{border-color:var(--border-strong);color:var(--text-muted)}.project-hero,.project-main{max-width:112rem}.project-hero .heading-primary{color:var(--text);background:none;text-shadow:none}.project-section .sub-heading{color:var(--text);text-transform:none}.feature-item{border-color:var(--border-strong);border-radius:.7rem;background:#fff}.back-link{justify-content:center}@media (min-width: 48em){:root{--header-height: 0rem;--content-width: min(112rem, calc(100vw - 29rem) )}.header{width:24rem;height:100vh;min-height:100vh;border-right:1px solid var(--border-strong);border-bottom:0;background:#fff}.header__nav{display:flex;height:100%;align-items:stretch;justify-content:flex-start;flex-direction:column;gap:3rem;padding:2.4rem 1.6rem}.sidebar-brand{padding:0 .5rem}.sidebar-toggle{display:none}.header__links,.header__links.open{position:static;display:grid;gap:.4rem;padding:0;border:0;background:transparent;box-shadow:none}.header__link{min-height:4.2rem;padding:0 1.1rem}.home,.project-detail{width:calc(100% - 24rem);margin-left:24rem;padding-top:0}.hero{padding-top:5.4rem}.projects,.about,.contact{padding-top:2.8rem;padding-bottom:3.2rem}.projects__grid{grid-template-columns:repeat(auto-fit,minmax(min(25rem,100%),1fr))}.about__container{grid-template-columns:1fr 1fr;align-items:start}.footer{margin-left:24rem}.project-hero,.project-main{width:min(100% - 6rem,112rem)}}@media (min-width: 64em){.projects__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 47.99em){.hero__content{width:100%}.hero__content .heading-primary{font-size:3.2rem}.projects__grid{grid-template-columns:repeat(auto-fit,minmax(min(24rem,100%),1fr))}}@media (hover: hover){.header__links .header__link:hover,.header__links .header__link:focus-visible{border-color:transparent;color:#3155a4;background:#f2f5fd;box-shadow:none}.header__links .header__link.active:hover{background:#eaf0ff}.project-links .btn--bg:hover{border-color:var(--accent);color:#fff;background:var(--accent)}}.project-links .btn--bg{border-color:#cbd7f0;color:#3155a4;background:#f2f5fd}.project-links .btn--bg:focus-visible{border-color:var(--accent);color:#3155a4;background:#eaf0ff}.ask-work{width:var(--content-width);max-width:112rem;margin:0 auto;padding:0 2rem 1.2rem}.ask-work__panel{display:grid;gap:1.2rem;padding:1.8rem;border:1px solid var(--border-strong);border-radius:.7rem;background:#fff;box-shadow:var(--shadow-sm)}.ask-work__intro h2{color:var(--text);font-family:var(--font-display);font-size:1.8rem;font-weight:700}.ask-work__intro p,.ask-work__loading{color:var(--text-muted);font-size:1.3rem}.ask-work__form{display:flex;gap:.8rem}.ask-work__form input{width:100%;min-width:0;min-height:4rem;padding:0 1.2rem;border:1px solid var(--border-strong);border-radius:.5rem;color:var(--text);background:#fff;font:inherit;font-size:1.35rem}.ask-work__form input::placeholder{color:var(--text-subtle)}.ask-work__submit{min-width:7rem;min-height:4rem;padding:0 1.4rem;border:1px solid var(--accent);border-radius:.5rem;color:#fff;background:var(--accent);font:inherit;font-size:1.3rem;font-weight:700;cursor:pointer}.ask-work__submit:disabled,.ask-work__suggestions button:disabled{cursor:wait;opacity:.65}.ask-work__suggestions,.ask-work__citations{display:flex;flex-wrap:wrap;gap:.6rem}.ask-work__suggestions button,.ask-work__citations a{padding:.45rem .75rem;border:1px solid #e4e9f2;border-radius:.4rem;color:#52627e;background:#f7f8fb;font:inherit;font-size:1.15rem;text-align:left;cursor:pointer}.ask-work__suggestions button:hover,.ask-work__suggestions button:focus-visible,.ask-work__citations a:hover,.ask-work__citations a:focus-visible{border-color:#cbd7f0;color:#3155a4;background:#f2f5fd}.ask-work__response:empty{display:none}.ask-work__response{padding-top:1rem;border-top:1px solid var(--border);color:var(--text);font-size:1.35rem}.ask-work__loading,.ask-work__error{display:flex;align-items:center;gap:.8rem}.ask-work__spinner{width:1.4rem;height:1.4rem;flex:0 0 auto;border:2px solid #dfe6f3;border-top-color:var(--accent);border-radius:50%;animation:ask-work-spin .8s linear infinite}@keyframes ask-work-spin{to{transform:rotate(360deg)}}.ask-work__answer>p{line-height:1.6}.ask-work__sources{margin-top:.9rem;color:var(--text-muted);font-size:1.2rem}.ask-work__sources-label{display:block;margin-bottom:.4rem;color:var(--text-subtle);font-size:1.05rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.ask-work__sources ul{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.ask-work__sources li{padding:.35rem .65rem;border:1px solid #e4e9f2;border-radius:.4rem;color:#617087;background:#f7f8fb;font-size:1.1rem}.ask-work__citations{margin-top:.9rem}.ask-work__error{color:#a23636}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 34em){.ask-work__panel{padding:1.3rem}.ask-work__form{flex-direction:column}.ask-work__submit{width:100%}}.project-page{width:var(--content-width);max-width:112rem;display:grid;gap:2rem;margin:0 auto;padding:4.2rem 2rem 4.4rem}.project-page__intro{display:grid;justify-items:start;max-width:72rem}.project-page__intro .hero__eyebrow{text-transform:uppercase}.project-page__title{margin:0 0 1.2rem;color:var(--text);font-family:var(--font-display);font-size:3.8rem;font-weight:800;line-height:1.08;letter-spacing:-.03em;text-transform:none}.project-page__lede,.project-page__copy{margin:0;max-width:66ch;color:var(--text-muted);font-size:1.55rem;line-height:1.65}.project-page__copy{font-size:1.45rem}.project-page__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}.project-page__actions .btn,.project-page__ghost{width:auto;max-width:none;min-height:4rem;padding:0 1.4rem;border-radius:.5rem;font-size:1.2rem;letter-spacing:0;text-transform:none}.project-page__actions .btn{gap:.8rem;border-color:var(--accent);color:#fff;background:var(--accent)}.project-page__ghost{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd7f0;color:#3155a4;background:#f2f5fd;font-weight:700}.project-page__media{overflow:hidden;margin:0;border:1px solid var(--border-strong);border-radius:.7rem;background:#fff;box-shadow:var(--shadow-sm)}.project-page__media img{width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:top center}.project-page__panel{display:grid;gap:1.4rem;padding:2.2rem;border:1px solid var(--border-strong);border-radius:.7rem;background:#fff;box-shadow:var(--shadow-sm)}.project-page__heading{margin:0;color:var(--text);font-family:var(--font-display);font-size:2.2rem;font-weight:800;letter-spacing:-.02em;line-height:1.2;text-transform:none}.project-page__features{display:grid;grid-template-columns:1fr;gap:1rem}.project-page__feature{display:grid;gap:.6rem;padding:1.4rem;border:1px solid var(--border);border-radius:.6rem;background:#f7f8fb}.project-page__feature h3{color:var(--text);font-family:var(--font-display);font-size:1.45rem;font-weight:700;line-height:1.3}.project-page__feature p{color:var(--text-muted);font-size:1.3rem;line-height:1.55}.project-page__split{display:grid;gap:1.6rem}.project-page__skills{display:grid;gap:.9rem}.project-page__skills li{position:relative;padding-left:1.4rem;color:var(--text-muted);font-size:1.4rem;line-height:1.55}.project-page__skills li:before{content:"";position:absolute;top:.75rem;left:0;width:.55rem;height:.55rem;border-radius:50%;background:var(--accent)}.project-page__stack{display:flex;flex-wrap:wrap;gap:.8rem}.project-page__back{margin-top:.4rem}@media (min-width: 48em){.project-page{gap:2.4rem;padding-top:5.4rem;padding-bottom:5.6rem}.project-page__title{font-size:4.6rem}.project-page__split{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start}.project-page__features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 47.99em){.project-page__title{font-size:3.2rem}.project-page__actions .btn,.project-page__ghost{width:100%}}@media (hover: hover){.project-page__actions .btn:hover,.project-page__actions .btn:focus-visible{border-color:var(--accent);color:#fff;background:var(--accent)}.project-page__ghost:hover,.project-page__ghost:focus-visible{border-color:#cbd7f0;color:#3155a4;background:#eaf0ff}}
