:root{--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-display:"Space Grotesk", var(--font-sans);--font-mono:"JetBrains Mono", ui-monospace, monospace;--max:1140px;--radius:16px;--radius-sm:10px;--ease:cubic-bezier(.22, 1, .36, 1);--bg:#f6f8f4;--bg-2:#eef2ea;--surface:#fff;--surface-2:#f2f5ef;--border:#e0e6db;--border-strong:#d0d8ca;--text:#1a201b;--text-dim:#414a42;--muted:#63705f;--accent:#5a7c53;--accent-strong:#4a6a44;--accent-ink:#fff;--shadow:0 22px 50px -30px #3c503759;--glow:#78a06e38}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;transition:background .4s var(--ease), color .4s var(--ease);margin:0;line-height:1.6}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.1}p{margin:0}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--accent-ink)}.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 14px;font-size:.75rem}.reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(22px)}.reveal.is-visible{opacity:1;transform:none}.btn{font-family:var(--font-sans);cursor:pointer;transition:transform .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;min-width:max-content;padding:12px 22px;font-size:.95rem;font-weight:550;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{background:var(--accent-strong)}.btn--ghost{border-color:var(--border-strong);color:var(--text);background:0 0}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.btn--sm{padding:8px 16px;font-size:.85rem}.btn--lg{padding:15px 30px;font-size:1.02rem}.nav{z-index:100;transition:padding .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease), backdrop-filter .3s var(--ease);border-bottom:1px solid #0000;padding:16px 0;position:fixed;top:0;left:0;right:0}.nav.is-scrolled{background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--border);padding:10px 0}.nav__inner{justify-content:space-between;align-items:center;display:flex}.nav__brand{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.35rem;font-weight:700}.nav__brand-dot{color:var(--accent)}.nav__links{gap:28px;display:flex}.nav__links a{color:var(--text-dim);transition:color .2s var(--ease);padding:4px 0;font-size:.92rem;position:relative}.nav__links a:after{content:"";background:var(--accent);width:0;height:1.5px;transition:width .25s var(--ease);position:absolute;bottom:0;left:0}.nav__links a:hover{color:var(--text)}.nav__links a:hover:after{width:100%}.nav__actions{align-items:center;gap:12px;display:flex}.nav__burger{border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;gap:5px;width:40px;height:38px;display:none}.nav__burger span{background:var(--text);width:18px;height:2px;transition:transform .25s var(--ease), opacity .2s var(--ease);margin:0 auto;display:block}.nav__burger.is-open span:first-child{transform:translateY(3.5px)rotate(45deg)}.nav__burger.is-open span:last-child{transform:translateY(-3.5px)rotate(-45deg)}.hero{padding:130px 0 90px;position:relative;overflow:hidden}.hero__grid{grid-template-columns:1.15fr .85fr;align-items:start;gap:48px;display:grid;position:relative}.hero__aside{flex-direction:column;gap:20px;display:flex}.hero__bio{margin:0 0 32px}.hero__bio p{color:var(--text-dim);margin-bottom:14px;font-size:1.05rem}.hero__bio p:last-child{margin-bottom:0}.hero__glow{background:radial-gradient(circle at center, var(--glow), transparent 62%);filter:blur(20px);pointer-events:none;width:900px;max-width:120vw;height:900px;position:absolute;top:-20%;left:50%;transform:translate(-50%)}.hero__inner{position:relative}.hero__eyebrow{animation:fadeUp .7s var(--ease) both}.hero__title{animation:fadeUp .7s 80ms var(--ease) both;margin:0 0 10px;font-size:clamp(2.6rem,7vw,5rem);font-weight:700}.hero__title-accent{color:var(--accent)}.hero__role{color:var(--accent);animation:fadeUp .7s .12s var(--ease) both;margin:0 0 28px;font-size:clamp(1.1rem,2.4vw,1.5rem);font-weight:600}.hero__lead{color:var(--text);max-width:620px;animation:fadeUp .7s .16s var(--ease) both;margin:0 0 22px;font-size:clamp(1.05rem,2vw,1.3rem);font-weight:500}.hero__actions{animation:fadeUp .7s .24s var(--ease) both;flex-wrap:wrap;gap:14px;margin-bottom:30px;display:flex}.hero__meta{font-family:var(--font-mono);color:var(--muted);animation:fadeUp .7s .32s var(--ease) both;align-items:center;gap:14px;font-size:.85rem;display:flex}.hero__meta a{transition:color .2s var(--ease)}.hero__meta a:hover{color:var(--accent)}.hero__meta-sep{opacity:.5}.hero__scroll{border:1.5px solid var(--border-strong);border-radius:999px;place-items:start center;width:24px;height:38px;padding-top:7px;display:grid;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.hero__scroll span{background:var(--accent);width:4px;height:8px;animation:scrollDot 1.6s var(--ease) infinite;border-radius:4px}@keyframes scrollDot{0%{opacity:0;transform:translateY(0)}40%{opacity:1}80%{opacity:0;transform:translateY(10px)}to{opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.section{padding:100px 0;position:relative}.section+.section{border-top:1px solid var(--border)}.section__head{max-width:720px;margin-bottom:48px}.section__title{font-size:clamp(1.9rem,4vw,2.7rem)}.about{grid-template-columns:1fr 1fr;align-items:stretch;gap:40px;display:grid}.about__content{flex-direction:column;gap:22px;display:flex}.about__media{border-radius:var(--radius);border:1px solid var(--border);min-height:460px;position:relative;overflow:hidden}.about__bio p{color:var(--text-dim);margin-bottom:18px;font-size:1.08rem}.about__interests{color:var(--muted)!important;margin-top:26px!important;font-size:.98rem!important}.about__interests-label{color:var(--accent);font-weight:600}.about__aside{flex-direction:column;gap:18px;display:flex}.about__portrait{object-fit:cover;object-position:center 22%;width:100%;height:100%;display:block;position:absolute;inset:0}.offclock__inner{grid-template-columns:1fr 1fr;align-items:center;gap:56px;display:grid}.offclock__lead{color:var(--text-dim);max-width:30ch;font-size:1.15rem;line-height:1.6}.offclock__photos{justify-content:center;align-items:center;min-height:320px;display:flex;position:relative}.offclock__photo{aspect-ratio:4/5;object-fit:cover;border:6px solid #fff;border-radius:14px;width:46%;max-width:280px;box-shadow:0 18px 40px #00000029}.offclock__photo--1{z-index:1;transform:rotate(-5deg)}.offclock__photo--2{margin-left:-6%;transform:rotate(4deg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.card--soft{background:var(--surface)}.card__label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:.72rem}.card__title{margin-bottom:4px;font-size:1.05rem;font-weight:600}.card__meta{color:var(--text-dim);font-size:.95rem}.card__meta--dim{color:var(--muted);margin-top:2px;font-size:.85rem}.cert-list li{color:var(--text-dim);font-size:.95rem;position:relative}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:var(--border-strong);width:1.5px;position:absolute;top:6px;bottom:6px;left:7px}.timeline__item{padding:0 0 44px 40px;position:relative}.timeline__item:last-child{padding-bottom:0}.timeline__marker{background:var(--bg);border:3px solid var(--accent);border-radius:999px;width:16px;height:16px;position:absolute;top:6px;left:0}.timeline__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.timeline__role{font-size:1.25rem}.timeline__period{font-family:var(--font-mono);color:var(--muted);font-size:.8rem}.timeline__company-row{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 14px;display:flex}.timeline__logo{object-fit:cover;border:1px solid var(--border);border-radius:10px;flex:none;width:40px;height:40px}.timeline__company{color:var(--accent);margin:0;font-weight:600}.timeline__now{border:1px solid var(--border);background:var(--surface-2);font-family:var(--font-mono);letter-spacing:.02em;color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px 3px 4px;font-size:.68rem;display:inline-flex}.timeline__now-logo{object-fit:cover;border-radius:5px;width:18px;height:18px}.card__inst{align-items:center;gap:12px;margin-bottom:8px;display:flex}.card__logo{object-fit:cover;border:1px solid var(--border);border-radius:9px;flex:none;width:38px;height:38px}.timeline__points{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.timeline__points li{color:var(--text-dim);padding-left:20px;font-size:.98rem;position:relative}.timeline__points li:before{content:"";background:var(--border-strong);border-radius:999px;width:6px;height:6px;position:absolute;top:.6em;left:2px}.projects-grid{gap:26px;display:grid}.projects-grid--client{grid-template-columns:repeat(2,1fr)}.projects-grid--personal{grid-template-columns:repeat(3,1fr)}.projects-subhead{margin:90px 0 40px}.projects-subhead__note{color:var(--muted);margin-top:10px}.project{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);flex-direction:column;display:flex;overflow:hidden}.project:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-6px)}.project__thumb{aspect-ratio:16/10;background:var(--surface-2);position:relative;overflow:hidden}.project__thumb>img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .5s var(--ease)}.project:hover .project__thumb>img{transform:scale(1.04)}.project__monogram{width:100%;height:100%;font-family:var(--font-display);color:var(--accent);background:radial-gradient(circle at 30% 20%, var(--surface-2), var(--surface));place-items:center;font-size:4rem;font-weight:700;display:grid}.project__visit{background:color-mix(in srgb, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--text);border:1px solid var(--border);opacity:0;transition:opacity .25s var(--ease), transform .25s var(--ease);border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:.78rem;font-weight:550;display:inline-flex;position:absolute;top:12px;right:12px;transform:translateY(-4px)}.project:hover .project__visit{opacity:1;transform:none}.project__body{flex-direction:column;flex:1;padding:22px;display:flex}.project__top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.project__title{font-size:1.2rem}.project__role{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);white-space:nowrap;font-size:.68rem}.project__host{font-family:var(--font-mono);color:var(--muted);margin:6px 0 12px;font-size:.78rem}.project__desc{color:var(--text-dim);flex:1;font-size:.95rem}.project__tags{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.project__tags li{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:4px 11px;font-size:.75rem}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px;display:grid}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .3s var(--ease), transform .3s var(--ease);padding:24px}.skill-card:hover{border-color:var(--border-strong);transform:translateY(-4px)}.skill-card__group{color:var(--accent);margin-bottom:16px;font-size:.95rem}.skill-card__items{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.skill-card__items li{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);border-radius:8px;padding:6px 12px;font-size:.85rem}.contact{border-top:1px solid var(--border);background:radial-gradient(circle at 50% 120%, var(--glow), transparent 55%), var(--bg-2);padding:110px 0}.contact__inner{text-align:center;max-width:640px;margin:0 auto}.contact__title{margin-bottom:16px;font-size:clamp(2.2rem,5vw,3.4rem)}.contact__lead{color:var(--text-dim);margin-bottom:20px;font-size:1.1rem}.contact__availability{border:1px solid var(--border-strong);background:var(--surface-2);max-width:620px;color:var(--muted);font-family:var(--font-mono);border-radius:999px;margin:0 auto 32px;padding:12px 20px;font-size:.82rem;line-height:1.5;display:inline-block}.contact__links{font-family:var(--font-mono);flex-wrap:wrap;justify-content:center;gap:22px;margin-top:34px;font-size:.85rem;display:flex}.contact__links a{color:var(--muted);transition:color .2s var(--ease);position:relative}.contact__links a:hover{color:var(--accent)}.footer{border-top:1px solid var(--border);padding:34px 0}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.footer__name{font-family:var(--font-display);font-weight:600}.footer__note{font-family:var(--font-mono);color:var(--muted);font-size:.8rem}@media (width<=900px){.hero__grid{grid-template-columns:1fr;gap:32px}.about{grid-template-columns:1fr;gap:28px}.about__media{order:-1;min-height:380px}.offclock__inner{grid-template-columns:1fr;gap:36px}.offclock__lead{max-width:none}.projects-grid--personal{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.nav__links{background:var(--bg);border-bottom:1px solid var(--border);transition:transform .35s var(--ease);flex-direction:column;gap:0;padding:90px 24px 30px;position:fixed;inset:0 0 auto;transform:translateY(-100%)}.nav__links.is-open{transform:none}.nav__links a{border-bottom:1px solid var(--border);padding:16px 0;font-size:1.1rem}.nav__burger{display:flex}.nav__cv{display:none}.section{padding:72px 0}.projects-grid--client,.projects-grid--personal{grid-template-columns:1fr}.timeline__head{flex-direction:column;gap:2px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto;transition-duration:.001ms!important;animation-duration:.001ms!important}}.casestudy{animation:fadeUp .7s var(--ease) both;padding-top:130px;padding-bottom:90px}.casestudy__nav{margin-bottom:24px}.casestudy__back{align-items:center;gap:8px;display:inline-flex}.casestudy__header{max-width:800px;margin-bottom:40px}.casestudy__title{outline:none;margin-top:8px;margin-bottom:20px;font-size:clamp(2.4rem,6vw,3.8rem)}.casestudy__lead{color:var(--text-dim);font-size:clamp(1.1rem,2.5vw,1.35rem);line-height:1.5}.casestudy__hero-wrap{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);box-sizing:border-box;justify-content:center;align-items:flex-end;margin-bottom:40px;padding:40px 60px 0;display:flex;position:relative;overflow:hidden}.casestudy__hero-image{object-fit:cover;object-position:top center;width:100%;height:100%}.casestudy__visit-btn{z-index:10;bottom:24px;right:24px;box-shadow:0 10px 30px -10px #00000080;position:absolute!important}.casestudy__stats{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:48px;display:grid}.casestudy__stat-item{flex-direction:column;display:flex}.casestudy__stat-tags{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.casestudy__stat-tag{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:3px 8px;font-size:.72rem}.casestudy__grid{grid-template-columns:1.5fr 1fr;align-items:start;gap:48px;margin-bottom:64px;display:grid}.casestudy__section{margin-bottom:40px}.casestudy__section-title{margin-bottom:18px;padding-bottom:10px;font-size:1.8rem;position:relative}.casestudy__section-title:after{content:"";background:var(--accent);width:40px;height:2px;position:absolute;bottom:0;left:0}.casestudy__text{color:var(--text-dim);white-space:pre-line;font-size:1.06rem;line-height:1.7}.casestudy__deliverables{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.casestudy__deliverable-item{color:var(--text-dim);align-items:flex-start;gap:12px;font-size:.98rem;line-height:1.4;display:flex}.casestudy__deliverable-item svg{flex-shrink:0;margin-top:3px}.casestudy__results{flex-direction:column;gap:16px;display:flex}.casestudy__result-card{padding:20px}.casestudy__result-text{color:var(--text);font-size:.98rem;line-height:1.5}.casestudy__footer{border-top:1px solid var(--border);margin-top:60px;padding-top:48px}.casestudy__next-link{transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);justify-content:space-between;align-items:center;padding:32px;text-decoration:none;display:flex}.casestudy__next-link:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-4px)}.casestudy__next-info{max-width:80%}.casestudy__next-title{color:var(--text);margin-top:8px;margin-bottom:8px;font-size:1.6rem}.casestudy__next-desc{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.casestudy__next-arrow{background:var(--surface-2);border:1px solid var(--border);width:50px;height:50px;transition:background .2s var(--ease), transform .2s var(--ease);border-radius:999px;place-items:center;display:grid}.casestudy__next-link:hover .casestudy__next-arrow{background:var(--accent);transform:translate(4px)}.casestudy__next-link:hover .casestudy__next-arrow svg{stroke:var(--accent-ink)}::view-transition-old(project-image){object-fit:cover;height:100%}::view-transition-new(project-image){object-fit:cover;height:100%}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}@media (width<=900px){.casestudy__stats{grid-template-columns:repeat(2,1fr)}.casestudy__grid{grid-template-columns:1fr;gap:32px}}@media (width<=720px){.casestudy{padding-top:100px}.casestudy__hero-wrap{padding:20px 20px 0}.casestudy__visit-btn{width:100%;box-shadow:none;justify-content:center;margin-top:16px;position:static!important}.casestudy__stats{grid-template-columns:1fr;gap:16px}.casestudy__next-link{padding:24px}.casestudy__next-info{max-width:75%}}.casestudy__showcase{border-top:1px solid var(--border);margin-top:80px;padding-top:64px}.showcase-grid{grid-template-columns:1.2fr 1.8fr;align-items:center;gap:48px;display:grid}.showcase-phone-col{justify-content:center;align-items:center;display:flex}.showcase-tabs-col{flex-direction:column;display:flex}.showcase-tabs-list{flex-direction:column;gap:16px;display:flex}.showcase-tab-btn{text-align:left;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:var(--radius-sm);width:100%;transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease);padding:20px}.showcase-tab-btn:hover{border-color:var(--border-strong);transform:translate(4px)}.showcase-tab-btn.active{border-color:var(--accent);background:var(--surface-2);box-shadow:var(--shadow)}.showcase-tab-btn.active .showcase-tab-label{color:var(--accent)}.showcase-tab-label{color:var(--text);transition:color .25s var(--ease);margin-bottom:6px;font-size:1.1rem;font-weight:600}.showcase-tab-desc{color:var(--text-dim);margin:0;font-size:.9rem;line-height:1.4}.ipad-mockup{background:#121514;border:8px solid #202422;border-radius:24px;flex-shrink:0;width:480px;height:360px;position:relative;overflow:hidden;box-shadow:0 20px 50px -15px #00000059,0 0 0 1px #ffffff0d}.ipad-mockup__screen{background:#000;width:100%;height:100%;position:relative;overflow:hidden}.ipad-mockup__img{object-fit:cover;width:100%;height:100%;animation:tabFadeIn .4s var(--ease) both;display:block}.showcase-grid.ipad-layout{grid-template-columns:1.5fr 1.5fr;gap:40px}@media (width<=900px){.showcase-grid.ipad-layout{grid-template-columns:1fr}.ipad-mockup{width:320px;height:240px}}.iphone-mockup{background:#121514;border:6px solid #202422;border-radius:36px;width:276px;height:597px;position:relative;overflow:hidden;box-shadow:0 20px 50px -15px #00000059,0 0 0 1px #ffffff0d}.iphone-mockup:before{display:none}.iphone-mockup__screen{background:#000;width:100%;height:100%;position:relative;overflow:hidden}.iphone-mockup__img{object-fit:cover;width:100%;height:100%;animation:tabFadeIn .4s var(--ease) both;display:block}@keyframes tabFadeIn{0%{opacity:.8;transform:scale(.99)}to{opacity:1;transform:none}}@media (width<=900px){.showcase-grid{grid-template-columns:1fr;gap:32px}.iphone-mockup{width:240px;height:520px}}.showcase-grid.ipad-layout,.showcase-grid.dual-layout{grid-template-columns:1.5fr 1.5fr;gap:40px}@media (width<=900px){.showcase-grid.ipad-layout,.showcase-grid.dual-layout{grid-template-columns:1fr}}.dual-mockup{box-sizing:border-box;justify-content:center;align-items:center;width:100%;max-width:640px;margin:0 auto;padding:20px 20px 20px 40px;display:flex;position:relative}.laptop-mockup{aspect-ratio:16/10;flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.laptop-mockup__screen{box-sizing:border-box;background:#121514;border:8px solid #202422;border-bottom:none;border-radius:16px 16px 0 0;width:100%;height:calc(100% - 12px);position:relative;overflow:hidden;box-shadow:0 20px 40px -15px #0006,0 0 0 1px #ffffff0d}.laptop-mockup__screen:before{content:"";z-index:5;background:#000;border-radius:0 0 3px 3px;width:44px;height:4px;position:absolute;top:0;left:50%;transform:translate(-50%)}.laptop-mockup__img{object-fit:cover;object-position:top center;width:100%;height:100%;animation:tabFadeIn .4s var(--ease) both;display:block}.laptop-mockup__keyboard{background:#d1d5db;border-radius:0 0 10px 10px;justify-content:center;width:105%;height:12px;display:flex;position:relative;box-shadow:0 8px 16px -6px #00000080,inset 0 1px #fffc,inset 0 -1.5px 2px #0003}.laptop-mockup__keyboard:after{content:"";background:#00000026;border-radius:0 0 4px 4px;width:50px;height:4px;position:absolute;top:0}.dual-mockup__phone{z-index:10;border:3.5px solid #202422;border-radius:18px;width:140px;height:303px;position:absolute;bottom:0;left:0;box-shadow:0 15px 30px -8px #0009,0 0 0 1px #ffffff0d}.dual-mockup__phone .iphone-mockup__screen{border-radius:14px}@media (width<=900px){.dual-mockup{padding-left:20px}}@media (width<=500px){.dual-mockup{flex-direction:column;gap:16px;max-width:320px;padding:10px}.dual-mockup__phone{width:160px;height:346px;margin-top:-40px;position:relative;bottom:auto;left:auto;box-shadow:0 15px 30px -8px #0006}}.hero-browser{background:#fff;border:1px solid #ffffff1f;border-radius:12px 12px 0 0;flex-direction:column;width:100%;max-width:900px;height:100%;display:flex;overflow:hidden;transform:translateY(1px);box-shadow:0 25px 50px -12px #00000080}.hero-browser__header{background:#1c1c1e;border-bottom:1px solid #2c2c2e;flex-shrink:0;align-items:center;gap:6px;height:32px;padding:0 14px;display:flex}.hero-browser__dot{border-radius:50%;width:8px;height:8px;display:inline-block}.hero-browser__dot.red{background:#ff5f56}.hero-browser__dot.yellow{background:#ffbd2e}.hero-browser__dot.green{background:#27c93f}.hero-browser__address{color:#ffffff80;letter-spacing:.2px;background:#ffffff14;border-radius:4px;flex:1;justify-content:center;align-items:center;max-width:320px;height:18px;margin-left:16px;font-family:monospace;font-size:10px;display:flex}.hero-browser__body{background:#1c1c1e;flex:1;width:100%;position:relative;overflow:hidden}.hero-browser__img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.hero-tablet{box-sizing:border-box;background:#1c1c1e;border:1px solid #ffffff1f;border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:760px;height:100%;padding:10px 10px 0;display:flex;transform:translateY(1px);box-shadow:0 25px 50px -12px #00000080}.hero-tablet__bezel{background:#000;border-radius:12px 12px 0 0;width:100%;height:100%;position:relative;overflow:hidden}.hero-tablet__img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.project__thumb{box-sizing:border-box;justify-content:center;align-items:flex-end;padding:24px 32px 0;display:flex!important}.card-browser{width:100%;height:100%;transition:transform .5s var(--ease);background:#fff;border:1px solid #ffffff1a;border-radius:8px 8px 0 0;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 15px 30px #0000004d}.card-browser__header{background:#1c1c1e;border-bottom:1px solid #2c2c2e;flex-shrink:0;align-items:center;gap:4px;height:20px;padding:0 8px;display:flex}.card-browser__dot{border-radius:50%;width:5px;height:5px;display:inline-block}.card-browser__dot.red{background:#ff5f56}.card-browser__dot.yellow{background:#ffbd2e}.card-browser__dot.green{background:#27c93f}.card-browser__body{background:#1c1c1e;flex:1;width:100%;overflow:hidden}.card-browser__body>img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.card-tablet{box-sizing:border-box;width:100%;max-width:240px;height:100%;transition:transform .5s var(--ease);background:#1c1c1e;border:1px solid #ffffff1a;border-radius:12px 12px 0 0;flex-direction:column;padding:6px 6px 0;display:flex;box-shadow:0 15px 30px #0000004d}.card-tablet__bezel{background:#000;border-radius:8px 8px 0 0;width:100%;height:100%;overflow:hidden}.card-tablet__bezel>img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.project:hover .card-browser,.project:hover .card-tablet{transform:translateY(-4px)scale(1.02)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--accent);color:var(--bg);border-radius:var(--radius-sm);z-index:9999;transition:top .2s var(--ease);padding:10px 20px;font-weight:600;position:absolute;top:-100px;left:20px}.skip-link:focus{outline:2px solid var(--accent);outline-offset:4px;top:20px}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--accent)!important;outline-offset:4px!important}.nav__links a.nav__link--active{color:var(--text)}.nav__links a.nav__link--active:after{width:100%}.hero__badge{background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);color:var(--text-dim);border-radius:99px;align-items:center;gap:8px;margin-bottom:24px;padding:6px 14px;font-size:.78rem;display:inline-flex}.hero__badge .badge-dot{background:#27c93f;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #27c93f}@media (prefers-reduced-motion:no-preference){.hero__badge .badge-dot{animation:2s infinite badgePulse}}@keyframes badgePulse{0%{opacity:.8;transform:scale(.9)}50%{opacity:1;transform:scale(1.1);box-shadow:0 0 14px #27c93f}to{opacity:.8;transform:scale(.9)}}.title-row{line-height:1.25;display:block;overflow:hidden}.title-word{display:inline-block;transform:translateY(100%)}@media (prefers-reduced-motion:no-preference){.title-word{animation:.8s cubic-bezier(.16,1,.3,1) forwards slideUpTitle}}.hero__title-accent{animation-delay:.15s!important}@keyframes slideUpTitle{to{transform:translateY(0)}}.projects-filter{flex-wrap:wrap;gap:10px;margin:32px 0;display:flex}.filter-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);font-size:.88rem;font-family:var(--font-body);cursor:pointer;transition:all .25s var(--ease);border-radius:99px;padding:8px 16px;font-weight:500}.filter-btn:hover{background:var(--surface-3);border-color:var(--border-strong);color:var(--text)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.projects-empty{text-align:center;color:var(--text-dim);padding:48px 0}.casestudy__nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.casestudy__switcher-select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .2s var(--ease);outline:none;padding:8px 16px;font-size:.88rem;font-weight:500}.casestudy__switcher-select:hover{border-color:var(--border-strong)}.cert-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.cert-item{color:var(--text-dim);align-items:center;gap:12px;font-size:.94rem;display:flex}.cert-icon{color:var(--accent);flex-shrink:0}.cert-logo{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:8px;flex:none;width:34px;height:34px;padding:4px}.btn--primary{position:relative;overflow:hidden}.btn--primary:after{content:"";background:linear-gradient(90deg,#fff0 0%,#ffffff59 50%,#fff0 100%);width:30%;height:200%;position:absolute;top:-50%;left:-60%;transform:rotate(25deg)}@media (prefers-reduced-motion:no-preference){.btn--primary:after{transition:all .8s cubic-bezier(.16,1,.3,1)}.btn--primary:hover:after{left:125%}}@keyframes glowPulse{0%{opacity:.4;transform:translate(-30%,-30%)scale(1)rotate(0)}50%{opacity:.65;transform:translate(-25%,-20%)scale(1.15)rotate(180deg)}to{opacity:.4;transform:translate(-30%,-30%)scale(1)rotate(360deg)}}@media (prefers-reduced-motion:no-preference){.hero__glow{animation:25s ease-in-out infinite alternate glowPulse}}.showcase-scroll-container{width:100%;position:relative}@media (width>=769px){.casestudy__showcase{box-sizing:border-box;flex-direction:column;justify-content:center;height:calc(100vh - 120px);padding:20px 0;display:flex;position:sticky;top:90px;margin-bottom:0!important}.showcase-grid{flex:1;min-height:0}.showcase-phone-col{justify-content:center;align-items:center;height:100%;max-height:60vh;display:flex}.showcase-tabs-col{padding-right:28px;position:relative}}@keyframes screenFadeIn{0%{opacity:.6;transform:scale(.99)translateY(2px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:no-preference){.iphone-mockup__img,.ipad-mockup__img,.laptop-mockup__img{animation:screenFadeIn .4s var(--ease) forwards}}.showcase-vertical-progress{background:var(--border-strong);border-radius:99px;width:2px;position:absolute;top:12px;bottom:12px;right:0}.showcase-vertical-fill{background:var(--accent);border-radius:99px;width:100%;height:0;transition:height .15s cubic-bezier(.2,.8,.2,1)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.reveal{opacity:1!important;transform:none!important}}
