:root{--font-display: "Fraunces", "Playfair Display", Georgia, serif;--font-body: "Manrope", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Courier New", monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: clamp(.9375rem, .9rem + .16vw, 1.0625rem);--text-lg: clamp(1.0625rem, 1rem + .28vw, 1.25rem);--text-xl: clamp(1.1875rem, 1.1rem + .4vw, 1.4375rem);--text-2xl: clamp(1.4375rem, 1.28rem + .7vw, 1.9375rem);--text-3xl: clamp(1.75rem, 1.45rem + 1.3vw, 2.75rem);--text-4xl: clamp(2.25rem, 1.7rem + 2.4vw, 4rem);--text-5xl: clamp(2.75rem, 1.85rem + 3.9vw, 5.5rem);--tracking-hero: -.035em;--tracking-display: -.025em;--tracking-heading: -.015em;--tracking-normal: -.003em;--tracking-wide: .06em;--tracking-widest: .14em;--leading-hero: 1.02;--leading-display: 1.1;--leading-heading: 1.2;--leading-body: 1.65;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 2.5rem;--sp-8: 3rem;--sp-9: 4rem;--sp-10: 5rem;--sp-11: 7rem;--container: 1180px;--gutter: clamp(1.25rem, 4vw, 3rem);--section-y: clamp(4.5rem, 8vw, 8rem);--nav-h: 68px;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--bg: #08080a;--bg-elev: #101013;--bg-elev-2: #17171c;--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .16);--fg: #f2f2f4;--fg-muted: #9b9ba5;--fg-faint: #6a6a74;--accent: #a78bfa;--accent-strong: #8b5cf6;--accent-dim: rgba(167, 139, 250, .14);--warm: #f0a868;--ease: cubic-bezier(.22, 1, .36, 1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--sp-6));-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);font-weight:400;line-height:var(--leading-body);letter-spacing:var(--tracking-normal);overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);font-variation-settings:"opsz" 72,"SOFT" 20;color:var(--fg);text-wrap:balance}p{text-wrap:pretty}a{color:inherit}img,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent-strong);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.section{padding-block:var(--section-y);position:relative}.section+.section{border-top:1px solid var(--line)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.sec-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);padding-bottom:var(--sp-4);border-bottom:1px solid var(--line);margin-bottom:var(--sp-8)}.sec-index{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--accent);flex-shrink:0;padding-top:.35em}.sec-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:500;letter-spacing:var(--tracking-display);line-height:var(--leading-display);font-variation-settings:"opsz" 144,"SOFT" 40;margin:0}.sec-note{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--fg-faint);white-space:nowrap}@media (max-width: 720px){.sec-head{gap:var(--sp-2) var(--sp-4)}.sec-index{order:-1;width:100%;padding-top:0}.sec-note{margin-left:0;white-space:normal}}.eyebrow{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--fg-faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:.75rem 1.5rem;border-radius:var(--radius);border:1px solid transparent;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}.btn-primary{background:var(--fg);color:#0b0b0d}.btn-primary:hover{background:#fff;transform:translateY(-2px)}.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--fg)}.btn-ghost:hover{border-color:var(--accent);background:var(--accent-dim);transform:translateY(-2px)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.nav{position:sticky;top:0;z-index:2000;height:var(--nav-h);display:flex;align-items:center;border-bottom:1px solid transparent;transition:background .3s var(--ease),border-color .3s var(--ease),backdrop-filter .3s var(--ease)}.nav--scrolled{background:#08080ab8;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom-color:var(--line)}.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5)}.nav__brand{display:inline-flex;align-items:center;gap:var(--sp-3);text-decoration:none;flex-shrink:0}.nav__mark{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;letter-spacing:.04em;color:var(--fg);transition:border-color .25s var(--ease),color .25s var(--ease)}.nav__brand:hover .nav__mark{border-color:var(--accent);color:var(--accent)}.nav__brandName{font-size:var(--text-sm);font-weight:600;letter-spacing:var(--tracking-heading)}.nav__links{display:flex;align-items:center;gap:clamp(1.25rem,2.4vw,2.25rem)}.nav__link{position:relative;padding:.35rem 0;background:none;border:0;cursor:pointer;text-decoration:none;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-heading);color:var(--fg-muted);transition:color .25s var(--ease)}.nav__link:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.nav__link:hover{color:var(--fg)}.nav__link:hover:after{transform:scaleX(1)}.nav__link.is-active{color:var(--fg)}.nav__link.is-active:after{transform:scaleX(1)}.nav__actions{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.nav__cta{padding:.5rem 1rem;font-size:var(--text-xs)}.nav__burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;padding:0;background:none;border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer}.nav__burger span{display:block;width:15px;height:1.5px;margin-inline:auto;background:var(--fg);transition:transform .3s var(--ease),opacity .2s var(--ease)}.nav__burger.is-open{border-color:var(--line-strong);background:var(--bg-elev-2)}.nav__burger.is-open span:first-child{transform:translateY(3.25px) rotate(45deg)}.nav__burger.is-open span:last-child{transform:translateY(-3.25px) rotate(-45deg)}.nav__scrim{position:fixed;inset:0;background:#08080a99;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1998}.nav__drawer{position:fixed;top:0;right:0;bottom:0;width:min(86vw,320px);z-index:1999;background:var(--bg-elev);border-left:1px solid var(--line);padding:calc(var(--nav-h) + var(--sp-5)) var(--sp-6) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}.nav__drawerLink{background:none;border:0;padding:var(--sp-2) 0;text-align:left;text-decoration:none;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-display);color:var(--fg);cursor:pointer;border-bottom:1px solid var(--line);transition:color .25s var(--ease),padding-left .25s var(--ease)}.nav__drawerLink:hover{color:var(--accent);padding-left:var(--sp-2)}.nav__drawerCta{margin-top:var(--sp-4);align-self:flex-start}.nav__toast{position:fixed;top:calc(var(--nav-h) + var(--sp-4));right:var(--gutter);z-index:10001;padding:.6rem 1rem;border-radius:var(--radius);background:var(--bg-elev-2);border:1px solid var(--line-strong);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--fg)}@media (max-width: 860px){.nav__links{display:none}.nav__burger{display:flex}.nav__cta,.nav__brandName{display:none}}.hero{position:relative;padding-block:clamp(3.5rem,8vh,7rem) clamp(2.5rem,5vh,4rem);min-height:calc(100svh - var(--nav-h));display:flex;flex-direction:column;justify-content:center}.hero__inner{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:clamp(2rem,6vw,5.5rem);align-items:center}.hero__status{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--fg-muted);margin-bottom:var(--sp-5)}.hero__dot{width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 #4ade808c;animation:hero-pulse 2.4s ease-out infinite}@keyframes hero-pulse{0%{box-shadow:0 0 #4ade8080}70%{box-shadow:0 0 0 7px #4ade8000}to{box-shadow:0 0 #4ade8000}}.hero__title{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:400;line-height:var(--leading-hero);letter-spacing:var(--tracking-hero);font-variation-settings:"opsz" 144,"SOFT" 24;margin-bottom:var(--sp-5);text-wrap:initial}.hero__title em{font-style:italic;font-weight:500;font-variation-settings:"opsz" 144,"SOFT" 80;color:var(--accent)}.hero__lede{font-size:var(--text-lg);line-height:1.6;color:var(--fg-muted);max-width:46ch;margin-bottom:var(--sp-6)}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.hero__portrait{justify-self:end;width:100%;max-width:340px}.hero__frame{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);background:radial-gradient(120% 80% at 50% 100%,rgba(139,92,246,.2),transparent 62%),linear-gradient(180deg,var(--bg-elev-2),var(--bg));aspect-ratio:4 / 5;display:flex;align-items:flex-end;justify-content:center}.hero__frame img{width:100%;height:96%;object-fit:contain;object-position:bottom center;filter:grayscale(1) contrast(1.05) brightness(.97);transition:filter .6s var(--ease),transform .8s var(--ease)}.hero__frame:hover img{filter:grayscale(0) contrast(1) brightness(1);transform:translateY(-4px) scale(1.02)}.hero__frame:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.7}.hero__caption{display:block;margin-top:var(--sp-3);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);color:var(--fg-faint);text-align:right}.hero__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5);margin-top:clamp(2.5rem,6vh,4.5rem);padding-top:var(--sp-5);border-top:1px solid var(--line)}.hero__fact dd{margin-top:var(--sp-2);font-size:var(--text-sm);color:var(--fg);line-height:1.5}@media (max-width: 900px){.hero__inner{grid-template-columns:1fr;gap:var(--sp-7)}.hero__portrait{order:-1;justify-self:start;max-width:190px}.hero__caption{text-align:left}.hero__facts{grid-template-columns:1fr;gap:var(--sp-4)}}@media (max-width: 560px){.hero__actions .btn{flex:1 1 auto}}.about__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem,6vw,5rem);align-items:start}.about__prose{max-width:60ch;display:flex;flex-direction:column;gap:var(--sp-4)}.about__lede{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;line-height:1.42;letter-spacing:var(--tracking-heading);font-variation-settings:"opsz" 96,"SOFT" 30;color:var(--fg);margin-bottom:var(--sp-2)}.about__prose p:not(.about__lede){font-size:var(--text-base);line-height:var(--leading-body);color:var(--fg-muted)}.about__rail{display:flex;flex-direction:column;gap:var(--sp-6)}.about__portrait{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);aspect-ratio:4 / 3;background:var(--bg-elev)}.about__portrait img{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:grayscale(1) contrast(1.05);transition:filter .6s var(--ease),transform .9s var(--ease)}.about__portrait:hover img{filter:grayscale(0);transform:scale(1.04)}.about__facts{display:flex;flex-direction:column}.about__fact{padding-block:var(--sp-4);border-top:1px solid var(--line)}.about__fact:last-child{border-bottom:1px solid var(--line)}.about__fact dd{margin:var(--sp-2) 0 0}.about__factTitle{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--text-base);font-weight:600;letter-spacing:var(--tracking-heading);color:var(--fg)}.about__logo{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#ffffff0f}.about__factMeta{display:block;margin-top:var(--sp-1);font-size:var(--text-sm);line-height:1.55;color:var(--fg-faint)}@media (max-width: 900px){.about__grid{grid-template-columns:1fr;gap:var(--sp-7)}.about__prose{max-width:none}.about__portrait{aspect-ratio:16 / 9}}.work__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.25rem,2.5vw,2rem)}.work-item{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev);overflow:hidden;cursor:pointer;transition:border-color .35s var(--ease),transform .35s var(--ease),background .35s var(--ease)}.work-item:hover,.work-item:focus-visible{border-color:var(--line-strong);background:var(--bg-elev-2);transform:translateY(-4px)}.work-item__media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:#0d0d10;border-bottom:1px solid var(--line)}.work-item__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease),filter .5s var(--ease);filter:saturate(.75) brightness(.85)}.work-item:hover .work-item__media img{transform:scale(1.045);filter:saturate(1) brightness(1)}.work-item__no{position:absolute;top:var(--sp-3);left:var(--sp-3);padding:.2rem .5rem;border-radius:var(--radius-sm);background:#08080ab8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);color:var(--fg-muted)}.work-item__body{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-5);flex:1}.work-item__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;line-height:1.25;letter-spacing:var(--tracking-heading);font-variation-settings:"opsz" 96,"SOFT" 30;color:var(--fg)}.work-item__desc{font-size:var(--text-sm);line-height:1.6;color:var(--fg-muted);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.work-item__tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);list-style:none;margin-top:auto;padding-top:var(--sp-2)}.work-item__tags li{padding:.2rem .55rem;border-radius:999px;border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.03em;color:var(--fg-faint);white-space:nowrap}.work-item__cta{display:inline-flex;align-items:center;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--fg-faint);transition:color .3s var(--ease)}.work-item__cta span{transition:transform .3s var(--ease)}.work-item:hover .work-item__cta{color:var(--accent)}.work-item:hover .work-item__cta span{transform:translate(4px)}.work__more{display:inline-flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-7);padding:0;background:none;border:0;cursor:pointer;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;letter-spacing:var(--tracking-display);color:var(--fg)}.work__more span:first-child{background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:0% 1px;background-position:left 100%;transition:background-size .4s var(--ease);padding-bottom:2px}.work__more:hover span:first-child{background-size:100% 1px}.work__moreArrow{color:var(--accent);transition:transform .35s var(--ease)}.work__more:hover .work__moreArrow{transform:translate(6px)}@media (max-width: 760px){.work__grid{grid-template-columns:1fr}}.contact__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:start}.contact__lede{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;line-height:1.42;letter-spacing:var(--tracking-heading);font-variation-settings:"opsz" 96,"SOFT" 30;color:var(--fg);max-width:34ch}.contact__email{display:inline-flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-5);font-family:var(--font-mono);font-size:var(--text-base);letter-spacing:.01em;color:var(--accent);text-decoration:none;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:100% 1px;background-position:left 100%;padding-bottom:2px;transition:background-size .4s var(--ease)}.contact__email:hover{background-size:0% 1px}.contact__channels{list-style:none;margin-top:var(--sp-7);display:flex;flex-direction:column}.contact-detail{border-top:1px solid var(--line)}.contact-detail:last-child{border-bottom:1px solid var(--line)}.contact-detail a,.contact-detail>span{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-2);text-decoration:none;color:inherit;transition:padding-left .3s var(--ease),background .3s var(--ease)}.contact-detail a:hover{padding-left:var(--sp-4);background:#ffffff05}.contact__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--fg-muted);flex-shrink:0;transition:border-color .3s var(--ease),color .3s var(--ease)}.contact__icon img{width:15px;height:15px;filter:brightness(0) invert(64%);transition:filter .3s var(--ease)}.contact-detail a:hover .contact__icon img{filter:brightness(0) invert(74%) sepia(38%) saturate(900%) hue-rotate(215deg)}.contact-detail a:hover .contact__icon{border-color:var(--accent);color:var(--accent)}.contact__channelText{display:flex;flex-direction:column;gap:2px;min-width:0}.contact__value{font-size:var(--text-sm);font-weight:500;color:var(--fg);overflow-wrap:anywhere}.contact__form{display:flex;flex-direction:column;gap:var(--sp-4);padding:clamp(1.5rem,3vw,2.25rem);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev)}.contact__field{display:flex;flex-direction:column;gap:var(--sp-2)}.contact__form input,.contact__form textarea{width:100%;padding:.7rem .9rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.5;outline:none;transition:border-color .25s var(--ease),background .25s var(--ease)}.contact__form input::placeholder,.contact__form textarea::placeholder{color:var(--fg-faint)}.contact__form input:focus,.contact__form textarea:focus{border-color:var(--accent);background:var(--bg-elev-2)}.contact__form textarea{resize:vertical;min-height:120px}.contact__form input:disabled,.contact__form textarea:disabled{opacity:.6;cursor:not-allowed}.contact__submit{align-self:flex-start;margin-top:var(--sp-2);display:inline-flex;align-items:center;gap:var(--sp-2)}.contact__submit:disabled{opacity:.65;cursor:not-allowed;transform:none!important}.contact__spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.25);border-top-color:currentColor;border-radius:50%;animation:contact-spin .75s linear infinite;flex-shrink:0}@keyframes contact-spin{to{transform:rotate(360deg)}}.contact__alert{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);font-size:var(--text-sm);line-height:1.5;animation:contact-fade-in .25s var(--ease)}.contact__alert-icon{flex-shrink:0;margin-top:2px}.contact__alert--success{background:#34d39914;border:1px solid rgba(52,211,153,.25);color:#34d399}.contact__alert--error{background:#f8717114;border:1px solid rgba(248,113,113,.25);color:#f87171}.contact__alert-content{display:flex;flex-direction:column;gap:var(--sp-1)}.contact__alert-fallback{color:inherit;font-family:var(--font-mono);font-size:var(--text-xs);text-decoration:underline;text-underline-offset:3px;opacity:.9;transition:opacity .2s}.contact__alert-fallback:hover{opacity:1}@keyframes contact-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.contact__hint{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);color:var(--fg-faint)}@media (max-width: 860px){.contact__grid{grid-template-columns:1fr;gap:var(--sp-7)}.contact__lede{max-width:none}.contact__submit{align-self:stretch}}.footer{border-top:1px solid var(--line);padding-block:var(--sp-8) var(--sp-6);background:linear-gradient(180deg,transparent,rgba(139,92,246,.04))}.footer__inner{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap;padding-bottom:var(--sp-6)}.footer__brand{display:flex;align-items:center;gap:var(--sp-3)}.footer__mark{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--fg);flex-shrink:0}.footer__name{font-size:var(--text-sm);font-weight:600;letter-spacing:var(--tracking-heading)}.footer__role{font-size:var(--text-xs);color:var(--fg-faint)}.footer__links{display:flex;flex-wrap:wrap;gap:clamp(1rem,2.5vw,2rem)}.footer__links a{position:relative;text-decoration:none;font-size:var(--text-sm);font-weight:500;color:var(--fg-muted);transition:color .25s var(--ease)}.footer__links a:after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.footer__links a:hover{color:var(--fg)}.footer__links a:hover:after{transform:scaleX(1)}.footer__bottom{display:flex;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding-top:var(--sp-5);border-top:1px solid var(--line)}.footer__bottom p{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);color:var(--fg-faint)}.loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:var(--bg)}.loader__inner{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);width:min(320px,76vw)}.loader__name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;letter-spacing:var(--tracking-display);font-variation-settings:"opsz" 120,"SOFT" 30;color:var(--fg)}.loader__role{color:var(--fg-faint)}.loader__track{width:100%;height:1px;margin-top:var(--sp-3);background:var(--line-strong);overflow:hidden}.loader__bar{width:100%;height:100%;background:var(--accent);transform-origin:left}.loader__count{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);color:var(--fg-faint)}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--accent);transform-origin:left;z-index:10000}.page-ground{position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--bg)}.page-ground__grid{position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.055) 1px,transparent 0);background-size:34px 34px;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 62%);mask-image:linear-gradient(180deg,#000 0%,transparent 62%)}.page-ground__wash{position:absolute;inset:0;background:radial-gradient(60vw 46vh at 12% -6%,rgba(139,92,246,.16),transparent 68%),radial-gradient(48vw 40vh at 96% 8%,rgba(240,168,104,.07),transparent 66%)}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);will-change:transform}.cursor-dot{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:var(--fg);z-index:9999;transition:opacity .2s ease,transform .2s ease}.cursor-dot.hover{opacity:0}.cursor-ring{width:26px;height:26px;margin:-13px 0 0 -13px;border:1px solid var(--line-strong);z-index:9998;transition:width .28s var(--ease),height .28s var(--ease),margin .28s var(--ease),border-color .28s var(--ease),background .28s var(--ease)}.cursor-ring.hover{width:46px;height:46px;margin:-23px 0 0 -23px;border-color:var(--accent);background:var(--accent-dim)}@media (hover: none),(pointer: coarse){.cursor-dot,.cursor-ring{display:none}}.projects-detail{min-height:100vh}.project-not-found{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-5);text-align:center;padding:var(--gutter)}.project-not-found h1{font-size:var(--text-3xl);font-weight:400}.project-not-found button{padding:.75rem 1.5rem;border-radius:var(--radius);border:1px solid var(--line-strong);background:transparent;color:var(--fg);font-weight:600;cursor:pointer}.project-not-found button:hover{border-color:var(--accent);background:var(--accent-dim)}.project-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:start;width:100%;max-width:var(--container);margin-inline:auto;padding:var(--sp-7) var(--gutter) var(--sp-9)}.project-image-container{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);background:#0d0d10;aspect-ratio:16 / 11;position:sticky;top:calc(var(--nav-h) + var(--sp-5))}.project-hero-image{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.project-hero-content{display:flex;flex-direction:column;gap:var(--sp-5)}.project-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:400;line-height:var(--leading-display);letter-spacing:var(--tracking-display);font-variation-settings:"opsz" 144,"SOFT" 30}.project-description{font-size:var(--text-base);line-height:var(--leading-body);color:var(--fg-muted);max-width:62ch}.quick-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-3)}.info-card{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg-muted);transition:border-color .3s var(--ease)}.info-card:hover{border-color:var(--line-strong)}.info-card>svg{flex-shrink:0;width:17px;height:17px;margin-top:2px}.info-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--fg-faint)}.info-value{margin-top:2px;font-size:var(--text-sm);font-weight:500;color:var(--fg)}.project-links{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.link-button{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.7rem 1.25rem;border-radius:var(--radius);border:1px solid var(--line-strong);background:transparent;color:var(--fg);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;text-decoration:none;cursor:pointer;transition:border-color .25s var(--ease),background .25s var(--ease),transform .25s var(--ease)}.link-button:hover{border-color:var(--accent);background:var(--accent-dim);transform:translateY(-2px)}.link-button.live{background:var(--fg);color:#0b0b0d;border-color:var(--fg)}.link-button.live:hover{background:#fff;border-color:#fff}.project-content{width:100%;max-width:var(--container);margin-inline:auto;padding:0 var(--gutter) var(--sp-10);display:flex;flex-direction:column}.content-section{padding-block:var(--sp-7);border-top:1px solid var(--line)}.section-title{display:flex;align-items:center;gap:var(--sp-3);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-display);font-variation-settings:"opsz" 120,"SOFT" 30;margin-bottom:var(--sp-5)}.skills-grid,.technologies-grid{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.skill-badge,.tech-card{padding:.4rem .8rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-elev);font-size:var(--text-xs);font-weight:500;color:var(--fg-muted);transition:border-color .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}.skill-badge:hover,.tech-card:hover{border-color:var(--line-strong);color:var(--fg);transform:translateY(-2px)}.story-text{font-size:var(--text-base);line-height:var(--leading-body);color:var(--fg-muted);max-width:68ch}.subjects-list{display:flex;flex-direction:column;gap:var(--sp-3)}.subject-item{display:flex;align-items:baseline;gap:var(--sp-3);font-size:var(--text-sm);color:var(--fg-muted)}.subject-bullet{color:var(--accent);flex-shrink:0}.timeline-container{position:relative;padding-left:var(--sp-5)}.timeline-line{position:absolute;left:3px;top:6px;bottom:6px;width:1px;background:var(--line-strong)}.timeline-items{display:flex;flex-direction:column;gap:var(--sp-5)}.timeline-item{position:relative}.timeline-dot{position:absolute;left:calc(var(--sp-5) * -1);top:.5em;width:7px;height:7px;border-radius:50%;background:var(--accent)}.timeline-content h3{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;letter-spacing:var(--tracking-heading)}.timeline-content p{margin-top:2px;font-size:var(--text-sm);color:var(--fg-muted)}@media (max-width: 860px){.project-hero{grid-template-columns:1fr}.project-image-container{position:static}}.projects-page{min-height:100vh}.projects-container{width:100%;max-width:var(--container);margin-inline:auto;padding:var(--sp-6) var(--gutter) var(--sp-10)}.back-button{display:inline-flex;align-items:center;gap:var(--sp-2);margin:var(--sp-6) 0 0 max(var(--gutter),calc((100% - var(--container)) / 2 + var(--gutter)));padding:.5rem .9rem .5rem 0;background:none;border:0;cursor:pointer;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--fg-faint);transition:color .25s var(--ease)}.back-button:hover{color:var(--accent)}.back-button img{width:14px;height:14px;transform:scaleX(-1);filter:brightness(0) invert(64%);transition:transform .25s var(--ease)}.back-button:hover img{transform:scaleX(-1) translate(3px)}.projects-title{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:400;line-height:var(--leading-display);letter-spacing:var(--tracking-hero);font-variation-settings:"opsz" 144,"SOFT" 30;color:var(--fg);padding-bottom:var(--sp-5);margin-bottom:var(--sp-8);border-bottom:1px solid var(--line)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:clamp(1.25rem,2.5vw,2rem)}.project-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev);overflow:hidden;cursor:pointer;transition:border-color .35s var(--ease),background .35s var(--ease)}.project-card:hover{border-color:var(--line-strong);background:var(--bg-elev-2)}.project-image-wrapper{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:#0d0d10;border-bottom:1px solid var(--line)}.project-card-image{width:100%;height:100%;object-fit:cover;filter:saturate(.75) brightness(.85);transition:transform .7s var(--ease),filter .5s var(--ease)}.project-card:hover .project-card-image{transform:scale(1.045);filter:saturate(1) brightness(1)}.project-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#08080a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .35s var(--ease)}.project-card:hover .project-overlay{opacity:1}.view-details-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.6rem 1.1rem;border-radius:var(--radius);border:1px solid var(--line-strong);background:#08080acc;color:var(--fg);font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;cursor:pointer}.project-card-content{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-5);flex:1}.project-card-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;line-height:1.25;letter-spacing:var(--tracking-heading);font-variation-settings:"opsz" 96,"SOFT" 30}.project-card-description{font-size:var(--text-sm);line-height:1.6;color:var(--fg-muted);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-card-meta{display:flex;flex-direction:column;gap:var(--sp-1);padding-top:var(--sp-3);border-top:1px solid var(--line);margin-top:auto}.project-meta-item{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.02em;color:var(--fg-muted)}.meta-label{color:var(--fg-faint);text-transform:uppercase;letter-spacing:var(--tracking-widest)}.project-card-skills{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.skill-tag{padding:.2rem .55rem;border-radius:999px;border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.03em;color:var(--fg-faint)}.skill-tag.more{color:var(--accent);border-color:var(--accent-dim)}.engineering-projects-section{margin-top:var(--sp-9)}.engineering-projects-card{padding:clamp(1.75rem,4vw,3rem);border:1px solid var(--line);border-radius:var(--radius-lg);background:radial-gradient(80% 140% at 0% 0%,rgba(139,92,246,.1),transparent 60%),var(--bg-elev);transition:border-color .35s var(--ease)}.engineering-projects-card:hover{border-color:var(--line-strong)}.engineering-projects-content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-4);max-width:62ch}.engineering-projects-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-display);font-variation-settings:"opsz" 120,"SOFT" 30}.engineering-projects-description{font-size:var(--text-sm);line-height:1.65;color:var(--fg-muted)}.engineering-projects-button{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.75rem 1.5rem;border-radius:var(--radius);border:1px solid var(--line-strong);background:transparent;color:var(--fg);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:border-color .25s var(--ease),background .25s var(--ease)}.engineering-projects-button:hover{border-color:var(--accent);background:var(--accent-dim)}@media (max-width: 560px){.projects-grid{grid-template-columns:1fr}}.exp__list{list-style:none;display:flex;flex-direction:column}.exp__row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:clamp(1.25rem,3vw,2.5rem);padding-block:var(--sp-6);border-top:1px solid var(--line)}.exp__row:last-child{border-bottom:1px solid var(--line)}.exp__period{padding-top:.35rem}.exp__period .eyebrow{color:var(--accent);white-space:nowrap}.exp__card{display:flex;flex-direction:column;gap:var(--sp-4)}.exp__cardHead{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4)}.exp__role{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;letter-spacing:var(--tracking-display);line-height:1.2;font-variation-settings:"opsz" 96,"SOFT" 30}.exp__company{margin-top:var(--sp-1);font-size:var(--text-sm);font-weight:500;color:var(--fg-muted)}.exp__logo{width:42px;height:42px;border-radius:var(--radius-sm);object-fit:contain;background:#ffffff0f;border:1px solid var(--line);padding:3px;flex-shrink:0}.exp__points{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2);max-width:74ch}.exp__points li{position:relative;padding-left:1.1rem;font-size:var(--text-sm);line-height:1.65;color:var(--fg-muted)}.exp__points li:before{content:"";position:absolute;left:0;top:.72em;width:5px;height:1px;background:var(--accent)}.exp__stack{display:flex;flex-wrap:wrap;gap:var(--sp-2);list-style:none;margin-top:var(--sp-1)}.exp__stack li{padding:.2rem .55rem;border-radius:999px;border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.03em;color:var(--fg-faint)}.stack__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem) clamp(1.5rem,4vw,3.5rem)}@media (max-width: 900px){.stack__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.stack__grid{grid-template-columns:1fr}}.stack__group{display:flex;flex-direction:column;gap:var(--sp-3)}.stack__groupTitle{padding-bottom:var(--sp-2);border-bottom:1px solid var(--line)}.stack__items{display:flex;flex-wrap:wrap;gap:var(--sp-2);list-style:none}.skill-item{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.4rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-elev);font-size:var(--text-xs);font-weight:500;letter-spacing:.005em;color:var(--fg-muted);transition:border-color .25s var(--ease),color .25s var(--ease),background .25s var(--ease),transform .25s var(--ease)}.skill-item:hover{border-color:var(--line-strong);background:var(--bg-elev-2);color:var(--fg);transform:translateY(-2px)}.skill-item__icon{width:15px;height:15px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.85}.skill-item__icon img,.skill-item__icon svg{width:100%;height:100%;object-fit:contain}@media (max-width: 760px){.exp__row{grid-template-columns:1fr;gap:var(--sp-3)}.exp__period{padding-top:0}}
