@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Outfit:wght@300;400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box}:root{--ff-primary: "Source Sans Pro", sans-serif;--ff-secondary: "Source Code Pro", monospace;--fw-reg: 300;--fw-bold: 900;--clr-light: #fff;--clr-dark: #303030;--clr-accent: #16e0bd;--fs-h1: 3rem;--fs-h2: 2.25rem;--fs-h3: 1.25rem;--fs-body: 1rem;--bs: .25em .25em .75em rgba(0, 0, 0, .25), .125em .125em .25em rgba(0, 0, 0, .15)}@media (min-width: 800px){:root{--fs-h1: 4.5rem;--fs-h2: 3.75rem;--fs-h3: 1.5rem;--fs-body: 1.125rem}}html{scroll-behavior:smooth}body{margin:0;background:var(--clr-light);color:var(--clr-dark);font-family:var(--ff-primary);font-size:var(--fs-body);line-height:1.6;min-width:340px}section{padding:5em 2em}img{max-width:100%;display:block}strong{font-weight:var(--fw-bold)}:focus{outline:3px solid var(--clr-accent);outline-offset:3px}.btn{display:inline-block;padding:.5em 2.5em;background:var(--clr-accent);color:var(--clr-dark);text-decoration:none;cursor:pointer;font-size:.8rem;text-transform:uppercase;letter-spacing:2px;font-weight:var(--fw-bold);transition:transform .2s ease-in-out}.btn:hover,.btn:focus{transform:scale(1.1)}h1,h2,h3{margin:0;line-height:1}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}.section__title{margin-bottom:.25em}.section__title--intro{font-weight:var(--fw-reg)}.section__title--intro strong{display:block}.section__subtitle{margin:0;font-size:var(--fs-h3)}.section__subtitle--intro,.section__subtitle--about{background-color:var(--clr-accent);padding:.25em 1em;font-family:var(--ff-secondary);margin-bottom:1em}.section__subtitle--work{color:var(--clr-accent);font-weight:var(--fw-bold);margin-bottom:2em}header{display:flex;justify-content:space-between;padding:1em}.nav{position:fixed;background:var(--clr-dark);color:var(--clr-light);inset:0;z-index:100;transform:translate(100%);transition:transform .25s cubic-bezier(.5,0,.5,1)}.nav__list{list-style:none;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center;height:100%;margin:0;padding:0}.nav__link{color:inherit;font-weight:var(--fw-bold);font-size:var(--fs-h2);text-decoration:none}.nav__link:hover{color:var(--clr-accent)}.nav__link--resume{color:var(--clr-accent);border-bottom:2px solid var(--clr-accent);padding-bottom:.2em}.logo{max-width:150px}.logo__text{font-family:var(--ff-secondary);font-size:1.125rem;font-weight:var(--fw-bold);color:var(--clr-dark);letter-spacing:.5px}@media (min-width: 800px){.logo__text{font-size:1.25rem}}.nav-toggle{padding:.5em;background:transparent;border:0;cursor:pointer;position:absolute;right:1em;top:1em;z-index:1000}.nav-open .nav{transform:translate(0)}.nav-open .nav-toggle{position:fixed}.nav-open .hamburger{transform:rotate(.625turn)}.nav-open .hamburger:before{transform:rotate(90deg) translate(-6px)}.nav-open .hamburger:after{opacity:0}.hamburger,.hamburger:before,.hamburger:after{background:var(--clr-accent);width:2em;height:3px;border-radius:1em;transition:transform .25s ease-in-out}.hamburger{display:block;position:relative}.hamburger:before,.hamburger:after{content:"";position:absolute;left:0;right:0}.hamburger:before{top:6px}.hamburger:after{bottom:6px}.footer{background:#111;color:var(--clr-accent);text-align:center;padding:3em 2em}.footer__content{max-width:800px;margin:0 auto}.footer__title{font-size:var(--fs-h3);font-weight:var(--fw-bold);margin-bottom:.5em;color:var(--clr-light)}.footer__availability{font-size:1rem;color:var(--clr-light);margin-bottom:1.5em;opacity:.9}.footer a{color:inherit;text-decoration:none}.footer__link{font-weight:var(--fw-bold);font-size:var(--fs-h3);display:inline-block;margin-bottom:.5em}.footer__link:hover{text-decoration:underline}.footer__link:hover,.social-list__link:hover{opacity:.7}.social-list{list-style:none;display:flex;justify-content:center;margin:2em 0 0;padding:0}.social-list__item{margin:0 .5em}.social-list__link{padding:.5em}.intro{position:relative}.intro__img{box-shadow:var(--bs);object-position:bottom;object-fit:cover;height:360px}.section__subtitle--intro{display:inline-block}.intro__tagline{margin:1.5em 0 1em;font-size:1.125rem;color:var(--clr-dark);line-height:1.6;max-width:600px}.intro__cta{display:flex;gap:1rem;margin-top:2em;flex-wrap:wrap}.btn--primary{background:var(--clr-accent);color:var(--clr-dark)}.btn--secondary{background:transparent;color:var(--clr-dark);border:2px solid var(--clr-accent);padding:calc(.5em - 2px) 2.5em}.btn--secondary:hover,.btn--secondary:focus{background:var(--clr-accent);color:var(--clr-dark)}@media (min-width: 600px){.intro{display:grid;width:min-content;margin:0 auto;grid-column-gap:1em;grid-template-areas:"img title" "img subtitle" "img tagline" "img cta";grid-template-columns:min-content max-content}.intro__img,.portfolio-intro__img{grid-area:img;min-width:250px;position:relative;z-index:2}.section__subtitle--intro{align-self:start;grid-column:-1 / 1;grid-row:2;text-align:right;position:relative;left:-1.5em;width:calc(100% + 1.5em);padding-left:calc(250px + 1em)}.intro__tagline{grid-area:tagline;grid-column:2;margin-top:1em}.intro__cta{grid-area:cta;grid-column:2}}.my-services{background-color:var(--clr-dark);background-image:url(/assets/services-bg7-S9X8fiXV.jpg);background-size:cover;background-blend-mode:multiply;color:var(--clr-light);text-align:center}.section__title--services{color:var(--clr-light);position:relative}.section__title--services:after{content:"";display:block;width:2em;height:1px;margin:.5em auto 1em;background:var(--clr-light);opacity:.25}.services{margin-bottom:4em}.service{max-width:500px;margin:0 auto 2em}@media (min-width: 800px){.services{display:flex;max-width:1200px;gap:3em;margin-left:auto;margin-right:auto}.service+.service{margin-left:0}.service{margin-bottom:0}}.about-me{max-width:1000px;margin:0 auto}.about-me__body{margin-top:1em}.about-me__body p{margin-bottom:1.5em;line-height:1.8}.about-me__tech-intro{font-weight:var(--fw-bold);margin-top:2em;margin-bottom:1em}.tech-categories{display:grid;gap:2em;margin-top:1em}.tech-category__title{font-size:1rem;font-weight:var(--fw-bold);color:var(--clr-accent);margin-bottom:.75em;font-family:var(--ff-secondary);text-transform:uppercase;letter-spacing:1px}.tech-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.5em 1em;list-style:none;padding:0;margin:0;font-family:var(--ff-secondary);font-size:.95rem}.tech-list li{position:relative;padding-left:1.5em;color:var(--clr-dark)}.tech-list li:before{content:"▹";position:absolute;left:0;color:var(--clr-accent);font-size:1.2em;line-height:1}.about-me__img{box-shadow:var(--bs);margin-top:2em}@media (min-width: 600px){.about-me{display:grid;grid-template-columns:1fr 200px;grid-template-areas:"title img" "subtitle img" "content img";grid-column-gap:2em}.section__title--about{grid-area:title}.section__subtitle--about{grid-area:subtitle;grid-column:1/-1;grid-row:2;position:relative;left:-1em;width:calc(100% + 2em);padding-left:1em;padding-right:calc(200px + 4em)}.about-me__body{grid-area:content}.about-me__img{grid-area:img;position:relative;z-index:2;margin-top:0}.tech-list{grid-template-columns:repeat(2,1fr)}.tech-categories{grid-template-columns:repeat(3,1fr);gap:2em}}@media (min-width: 800px){.tech-list{grid-template-columns:1fr}}.my-work{background-color:var(--clr-dark);color:var(--clr-light);text-align:center}.portfolio{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2em;max-width:1000px;margin:0 auto}.portfolio__item{background:var(--clr-accent);width:100%;overflow:hidden;aspect-ratio:3 / 4}.portfolio__img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .75s cubic-bezier(.5,0,.5,1),opacity .25s linear}.portfolio__item:focus{position:relative;z-index:2}.portfolio__img:hover,.portfolio__item:focus .portfolio__img{transform:scale(1.2);opacity:.75}.case-study{--cs-font-display: "DM Serif Display", Georgia, serif;--cs-font-body: "Outfit", var(--ff-primary), sans-serif;--cs-spacing-xs: .5rem;--cs-spacing-sm: 1rem;--cs-spacing-md: 1.5rem;--cs-spacing-lg: 2.5rem;--cs-spacing-xl: 3.5rem;--cs-radius-sm: 4px;--cs-radius-md: 8px;--cs-radius-lg: 16px;--cs-transition: .3s cubic-bezier(.4, 0, .2, 1)}.case-study{background:var(--clr-light);min-height:100vh}.case-study__not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--cs-spacing-lg) var(--cs-spacing-md);text-align:center}.case-study__not-found-code{font-family:var(--cs-font-display);font-size:clamp(4rem,15vw,10rem);color:var(--clr-accent);line-height:1;opacity:.3;margin-bottom:var(--cs-spacing-sm)}.case-study__not-found h1{font-family:var(--cs-font-display);font-size:clamp(1.5rem,4vw,2.5rem);color:var(--clr-dark);margin-bottom:var(--cs-spacing-sm)}.case-study__not-found p{font-family:var(--cs-font-body);font-size:1.125rem;color:var(--clr-dark);opacity:.7;margin-bottom:var(--cs-spacing-md)}.case-study__back-link{display:inline-flex;align-items:center;gap:var(--cs-spacing-xs);font-family:var(--cs-font-body);font-weight:500;color:var(--clr-accent);text-decoration:none;transition:var(--cs-transition)}.case-study__back-link svg{transform:rotate(180deg);transition:var(--cs-transition)}.case-study__back-link:hover{color:var(--clr-dark)}.case-study__back-link:hover svg{transform:rotate(180deg) translate(4px)}.case-study__hero{position:relative;min-height:70vh;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--cs-spacing-md);padding-top:5rem;overflow:hidden}.case-study__hero-bg{position:absolute;inset:0;z-index:0}.case-study__hero-bg-img{width:100%;height:100%;object-fit:cover;object-position:top center;filter:grayscale(20%)}.case-study__hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#3030304d,#30303099 40%,#303030f2)}.case-study__hero-content{position:relative;z-index:1;max-width:900px}.case-study__breadcrumb{display:flex;align-items:center;gap:var(--cs-spacing-xs);font-family:var(--cs-font-body);font-size:.875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--cs-spacing-md);animation:fadeSlideUp .6s ease-out}.case-study__breadcrumb a{color:var(--clr-accent);text-decoration:none;transition:var(--cs-transition)}.case-study__breadcrumb a:hover{color:var(--clr-light)}.case-study__breadcrumb-sep{color:#fff6}.case-study__breadcrumb span:last-child{color:#ffffffb3}.case-study__hero-text{animation:fadeSlideUp .6s ease-out .1s both}.case-study__category{font-family:var(--cs-font-body);font-size:.9375rem;font-weight:500;color:var(--clr-accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--cs-spacing-sm)}.case-study__title{font-family:var(--cs-font-display);font-size:clamp(2.5rem,8vw,5rem);font-weight:400;color:var(--clr-light);line-height:1.1;margin-bottom:var(--cs-spacing-sm)}.case-study__tagline{font-family:var(--cs-font-body);font-size:clamp(1rem,2.5vw,1.25rem);font-weight:300;color:#ffffffd9;line-height:1.6;max-width:700px}.case-study__hero-meta{display:flex;flex-wrap:wrap;gap:var(--cs-spacing-md);margin-top:var(--cs-spacing-md);padding-top:var(--cs-spacing-sm);border-top:1px solid rgba(255,255,255,.15);animation:fadeSlideUp .6s ease-out .2s both}.case-study__meta-item{display:flex;flex-direction:column;gap:.25rem}.case-study__meta-label{font-family:var(--cs-font-body);font-size:.75rem;font-weight:500;color:#ffffff80;letter-spacing:.1em;text-transform:uppercase}.case-study__meta-value{font-family:var(--cs-font-body);font-size:1rem;font-weight:500;color:var(--clr-light);text-transform:capitalize}.case-study__scroll-indicator{position:absolute;bottom:var(--cs-spacing-md);right:var(--cs-spacing-md);display:flex;flex-direction:column;align-items:center;gap:var(--cs-spacing-xs);animation:fadeSlideUp .6s ease-out .4s both}.case-study__scroll-indicator span{font-family:var(--cs-font-body);font-size:.6875rem;font-weight:500;color:#ffffff80;letter-spacing:.15em;text-transform:uppercase;writing-mode:vertical-rl}.case-study__scroll-line{width:1px;height:60px;background:linear-gradient(to bottom,var(--clr-accent),transparent);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{opacity:1;transform:scaleY(1)}50%{opacity:.5;transform:scaleY(.8)}}.case-study__body{max-width:1100px;margin:0 auto;padding:var(--cs-spacing-lg) var(--cs-spacing-md)}.case-study__section{margin-bottom:var(--cs-spacing-xl)}.case-study__section-header{display:flex;align-items:baseline;gap:var(--cs-spacing-sm);margin-bottom:var(--cs-spacing-md)}.case-study__section-number{font-family:var(--cs-font-body);font-size:.875rem;font-weight:600;color:var(--clr-accent);letter-spacing:.05em}.case-study__section-title{font-family:var(--cs-font-display);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:400;color:var(--clr-dark);line-height:1.2}.case-study__overview-content{display:grid;gap:var(--cs-spacing-md)}.case-study__description{font-family:var(--cs-font-body);font-size:clamp(1.0625rem,2vw,1.1875rem);font-weight:300;line-height:1.85;color:var(--clr-dark);margin:0}.case-study__overview-links{padding:var(--cs-spacing-md);background:linear-gradient(135deg,#16e0bd14,#16e0bd05);border:1px solid rgba(22,224,189,.15);border-radius:var(--cs-radius-md)}.case-study__links-title{font-family:var(--cs-font-body);font-size:.75rem;font-weight:600;color:var(--clr-dark);letter-spacing:.1em;text-transform:uppercase;margin:0 0 var(--cs-spacing-sm) 0}.case-study__links-list{display:flex;flex-direction:column;gap:var(--cs-spacing-xs)}.case-study__link{display:inline-flex;align-items:center;gap:var(--cs-spacing-xs);padding:.75rem 1rem;font-family:var(--cs-font-body);font-size:.9375rem;font-weight:500;text-decoration:none;border-radius:var(--cs-radius-sm);transition:var(--cs-transition)}.case-study__link--primary{background:var(--clr-accent);color:var(--clr-dark)}.case-study__link--primary:hover{background:#1affdb;transform:translate(4px)}.case-study__link--secondary{background:var(--clr-dark);color:var(--clr-light)}.case-study__link--secondary:hover{background:#404040;transform:translate(4px)}.case-study__showcase{margin:var(--cs-spacing-lg) calc(-1 * var(--cs-spacing-md))}.case-study__showcase-figure{margin:0}.case-study__showcase-img{width:100%;height:auto;max-height:70vh;object-fit:cover;object-position:top center}.case-study__showcase-caption{font-family:var(--cs-font-body);font-size:.8125rem;color:var(--clr-dark);opacity:.6;text-align:center;padding:var(--cs-spacing-sm) var(--cs-spacing-md)}.case-study__highlights-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--cs-spacing-sm)}.case-study__highlight{display:flex;align-items:flex-start;gap:var(--cs-spacing-sm);padding:var(--cs-spacing-sm) var(--cs-spacing-md);background:var(--clr-light);border:1px solid rgba(48,48,48,.08);border-radius:var(--cs-radius-md);transition:var(--cs-transition);animation:fadeSlideUp .5s ease-out calc(var(--delay, 0s)) both}.case-study__highlight:hover{border-color:var(--clr-accent);box-shadow:0 4px 20px #16e0bd1a;transform:translate(8px)}.case-study__highlight-marker{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#16e0bd1a;border-radius:50%;color:var(--clr-accent);transition:var(--cs-transition)}.case-study__highlight:hover .case-study__highlight-marker{background:var(--clr-accent);color:var(--clr-dark)}.case-study__highlight-text{font-family:var(--cs-font-body);font-size:1rem;font-weight:400;line-height:1.6;color:var(--clr-dark)}.case-study__tech-grid{display:grid;gap:var(--cs-spacing-md)}.case-study__tech-category{padding:var(--cs-spacing-md);background:linear-gradient(180deg,rgba(48,48,48,.02),transparent);border:1px solid rgba(48,48,48,.08);border-radius:var(--cs-radius-md);transition:var(--cs-transition)}.case-study__tech-category:hover{border-color:#16e0bd4d;box-shadow:0 8px 32px #0000000f}.case-study__tech-label{font-family:var(--cs-font-body);font-size:.6875rem;font-weight:600;color:var(--clr-dark);letter-spacing:.15em;text-transform:uppercase;margin:0 0 var(--cs-spacing-sm) 0;opacity:.6}.case-study__tech-tags{display:flex;flex-wrap:wrap;gap:.5rem}.case-study__tech-tag{display:inline-block;padding:.5rem 1rem;font-family:var(--cs-font-body);font-size:.875rem;font-weight:500;border-radius:100px;transition:var(--cs-transition)}.case-study__tech-tag--frontend{background:#16e0bd1f;color:#0a7d65;border:1px solid rgba(22,224,189,.25)}.case-study__tech-tag--frontend:hover{background:#16e0bd33;transform:translateY(-2px)}.case-study__tech-tag--backend{background:#68a0631f;color:#3d5837;border:1px solid rgba(104,160,99,.25)}.case-study__tech-tag--backend:hover{background:#68a06333;transform:translateY(-2px)}.case-study__tech-tag--tools{background:#3030300f;color:var(--clr-dark);border:1px solid rgba(48,48,48,.12)}.case-study__tech-tag--tools:hover{background:#3030301a;transform:translateY(-2px)}.case-study__gallery-grid{display:grid;gap:var(--cs-spacing-md)}.case-study__gallery-item{position:relative;background:none;border:none;padding:0;cursor:pointer;text-align:left;animation:fadeSlideUp .5s ease-out calc(var(--delay, 0s)) both}.case-study__gallery-item:focus{outline:3px solid var(--clr-accent);outline-offset:4px;border-radius:var(--cs-radius-lg)}.case-study__gallery-img-wrapper{position:relative;overflow:hidden;border-radius:var(--cs-radius-lg);aspect-ratio:16 / 10;background:#3030300d}.case-study__gallery-img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4,0,.2,1)}.case-study__gallery-item:hover .case-study__gallery-img{transform:scale(1.05)}.case-study__gallery-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--cs-spacing-xs);background:#16e0bdeb;opacity:0;transition:var(--cs-transition);color:var(--clr-dark)}.case-study__gallery-item:hover .case-study__gallery-overlay{opacity:1}.case-study__gallery-overlay svg{width:32px;height:32px}.case-study__gallery-overlay span{font-family:var(--cs-font-body);font-size:.8125rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.case-study__gallery-number{display:block;margin-top:var(--cs-spacing-sm);font-family:var(--cs-font-body);font-size:.75rem;font-weight:500;color:var(--clr-dark);opacity:.4;letter-spacing:.05em}.case-study__cta{padding:var(--cs-spacing-lg) var(--cs-spacing-md);background:linear-gradient(135deg,var(--clr-dark),#1a1a1a);border-radius:var(--cs-radius-lg);margin:var(--cs-spacing-lg) 0}.case-study__cta-content{text-align:center}.case-study__cta-title{font-family:var(--cs-font-display);font-size:clamp(1.5rem,4vw,2.25rem);font-weight:400;color:var(--clr-light);margin:0 0 var(--cs-spacing-xs) 0}.case-study__cta-text{font-family:var(--cs-font-body);font-size:1rem;font-weight:300;color:#ffffffb3;margin:0 0 var(--cs-spacing-md) 0}.case-study__cta-buttons{display:flex;flex-direction:column;gap:var(--cs-spacing-sm);justify-content:center}.case-study__cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--cs-spacing-xs);padding:1rem 2rem;font-family:var(--cs-font-body);font-size:.9375rem;font-weight:600;text-decoration:none;border-radius:var(--cs-radius-sm);transition:var(--cs-transition)}.case-study__cta-btn--primary{background:var(--clr-accent);color:var(--clr-dark)}.case-study__cta-btn--primary:hover{background:#1affdb;transform:translateY(-3px);box-shadow:0 10px 30px #16e0bd4d}.case-study__cta-btn--secondary{background:#ffffff1a;color:var(--clr-light);border:1px solid rgba(255,255,255,.2)}.case-study__cta-btn--secondary:hover{background:#ffffff26;border-color:var(--clr-accent);transform:translateY(-3px)}.case-study__cta-btn svg:last-child{transition:var(--cs-transition)}.case-study__cta-btn:hover svg:last-child{transform:translate(4px)}.case-study__nav{display:flex;justify-content:center;padding:var(--cs-spacing-md) 0;border-top:1px solid rgba(48,48,48,.1)}.case-study__nav-link{display:inline-flex;align-items:center;gap:var(--cs-spacing-xs);font-family:var(--cs-font-body);font-size:.9375rem;font-weight:500;color:var(--clr-dark);text-decoration:none;padding:var(--cs-spacing-sm) var(--cs-spacing-md);border:1px solid rgba(48,48,48,.15);border-radius:var(--cs-radius-sm);transition:var(--cs-transition)}.case-study__nav-link svg{transform:rotate(180deg);transition:var(--cs-transition)}.case-study__nav-link:hover{background:var(--clr-accent);border-color:var(--clr-accent);color:var(--clr-dark)}.case-study__nav-link:hover svg{transform:rotate(180deg) translate(4px)}.case-study__lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#000000f5;padding:var(--cs-spacing-md);animation:fadeIn .3s ease-out}.case-study__lightbox-close{position:absolute;top:var(--cs-spacing-md);right:var(--cs-spacing-md);width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;transition:var(--cs-transition);z-index:1001;padding:0}.case-study__lightbox-close:hover{background:#ffffff26;border-color:var(--clr-accent);transform:rotate(90deg)}.case-study__lightbox-close:focus{outline:2px solid var(--clr-accent);outline-offset:2px}.case-study__lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;transition:var(--cs-transition);z-index:1001;padding:0}.case-study__lightbox-nav--prev{left:var(--cs-spacing-md)}.case-study__lightbox-nav--next{right:var(--cs-spacing-md)}.case-study__lightbox-nav:hover{background:#ffffff26;border-color:var(--clr-accent)}.case-study__lightbox-nav--prev:hover{transform:translateY(-50%) translate(-4px)}.case-study__lightbox-nav--next:hover{transform:translateY(-50%) translate(4px)}.case-study__lightbox-nav:focus{outline:2px solid var(--clr-accent);outline-offset:2px}.case-study__lightbox-content{display:flex;flex-direction:column;align-items:center;gap:var(--cs-spacing-md);max-width:90vw;max-height:85vh;animation:zoomIn .3s ease-out}.case-study__lightbox-img{max-width:100%;max-height:calc(85vh - 4rem);object-fit:contain;border-radius:var(--cs-radius-md);box-shadow:0 25px 80px #0009}.case-study__lightbox-info{display:flex;flex-direction:column;align-items:center;gap:.25rem}.case-study__lightbox-counter{font-family:var(--cs-font-body);font-size:.9375rem;font-weight:600;color:#fff;letter-spacing:.1em}.case-study__lightbox-hint{font-family:var(--cs-font-body);font-size:.75rem;color:#ffffff80;letter-spacing:.05em}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (min-width: 600px){.case-study__hero{padding:var(--cs-spacing-lg);padding-top:8rem}.case-study__overview-content{grid-template-columns:1fr 280px;gap:var(--cs-spacing-lg)}.case-study__overview-links{position:sticky;top:var(--cs-spacing-md);height:fit-content}.case-study__links-list{flex-direction:column}.case-study__showcase{margin:var(--cs-spacing-lg) calc(-1 * var(--cs-spacing-lg))}.case-study__showcase-img{border-radius:var(--cs-radius-lg);margin:0 var(--cs-spacing-lg);width:calc(100% - var(--cs-spacing-lg) * 2)}.case-study__highlights-list{grid-template-columns:repeat(2,1fr)}.case-study__tech-grid{grid-template-columns:repeat(3,1fr)}.case-study__gallery-grid{grid-template-columns:repeat(2,1fr)}.case-study__cta-buttons{flex-direction:row}.case-study__lightbox-close,.case-study__lightbox-nav{width:56px;height:56px}}@media (min-width: 800px){.case-study__body{padding:var(--cs-spacing-xl) var(--cs-spacing-lg)}.case-study__hero-meta{gap:var(--cs-spacing-lg)}.case-study__gallery-grid{grid-template-columns:repeat(2,1fr);gap:var(--cs-spacing-lg)}.case-study__gallery-img-wrapper{aspect-ratio:16 / 9}.case-study__cta{padding:var(--cs-spacing-xl)}}@media (min-width: 1200px){.case-study__hero{min-height:75vh}.case-study__body{max-width:1200px}.case-study__gallery-grid{grid-template-columns:repeat(3,1fr)}.case-study__lightbox-content{max-width:95vw}}
