:root{--bg:#09090b;--bg-raised:#0e0e11;--surface:#131317;--surface-hover:#18181d;--line:#ffffff14;--line-strong:#ffffff24;--text:#f4f4f5;--text-2:#a1a1aa;--text-3:#71717a;--accent:#7c9dff;--accent-soft:#7c9dff1f;--success:#4ade80;--danger:#f87171;--font-sans:var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, "SFMono-Regular", Menlo, monospace;--radius-sm:6px;--radius:10px;--radius-lg:14px;--ease:cubic-bezier(.2, .7, .2, 1);--nav-h:72px;--section-y:clamp(96px, 12vw, 160px);--bs-body-bg:var(--bg);--bs-body-color:var(--text);--bs-body-font-family:var(--font-sans);--bs-border-color:var(--line);--bs-link-color-rgb:244, 244, 245;--bs-link-hover-color-rgb:255, 255, 255}html{scroll-padding-top:calc(var(--nav-h) + 16px);-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px;line-height:1.6}::selection{color:var(--bg);background:#fff}h1,h2,h3,h4,h5,h6{color:var(--text);letter-spacing:-.02em;margin:0;font-weight:600}p{margin:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{max-width:1200px;padding-left:20px;padding-right:20px}@media (min-width:768px){.container{padding-left:32px;padding-right:32px}}.visually-hidden-focusable:not(:focus){position:absolute}.mono-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:12px;font-weight:500}.muted{color:var(--text-2)}.button{white-space:nowrap;cursor:pointer;height:48px;transition:background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:15px;font-weight:500;line-height:1;display:inline-flex}.button svg{transition:transform .25s var(--ease);flex-shrink:0}.button:active{transform:scale(.98)}.button--primary{background:var(--text);color:var(--bg)}.button--primary:hover{color:var(--bg);background:#fff}.button--ghost{border-color:var(--line-strong);color:var(--text);background:0 0}.button--ghost:hover{background:var(--surface);color:var(--text);border-color:#ffffff3d}.button--sm{height:38px;padding:0 16px;font-size:14px}.button:disabled{opacity:.6;cursor:not-allowed}@media (hover:hover){.button:hover .icon-arrow-right{transform:translate(3px)}.button:hover .icon-arrow-diag,.text-link:hover .icon-arrow-diag{transform:translate(2px,-2px)}}.text-link{color:var(--text);border-bottom:1px solid var(--line-strong);transition:border-color .2s var(--ease), color .2s var(--ease);align-items:center;gap:6px;padding-bottom:2px;font-size:14px;font-weight:500;display:inline-flex}.text-link svg{transition:transform .25s var(--ease)}.text-link:hover{color:#fff;border-color:var(--text)}.icon-button{border:1px solid var(--line);width:42px;height:42px;color:var(--text-2);transition:color .2s var(--ease), border-color .2s var(--ease), background-color .2s var(--ease);background:0 0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{color:var(--text);border-color:var(--line-strong);background:var(--surface)}.tag-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--line);border-radius:var(--radius-sm);height:26px;font-family:var(--font-mono);color:var(--text-2);white-space:nowrap;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:var(--reveal-delay,0s);transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:none}.enter{animation:enter .8s var(--ease) both;animation-delay:var(--enter-delay,0s)}@keyframes enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.site-nav{z-index:1030;transition:padding .3s var(--ease);padding:12px 0;position:fixed;inset:0 0 auto}.site-nav__bar{height:56px;transition:background-color .3s var(--ease), border-color .3s var(--ease), backdrop-filter .3s var(--ease);border:1px solid #0000;border-radius:999px;justify-content:space-between;align-items:center;gap:16px;margin-inline:-18px -8px;padding-inline:18px 8px;display:flex}.site-nav.is-scrolled .site-nav__bar{border-color:var(--line);-webkit-backdrop-filter:saturate(140%)blur(14px);background:#0e0e11b8}.brand{color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-size:15px;font-weight:600;display:inline-flex}.brand__mark{background:var(--text);width:30px;height:30px;color:var(--bg);font-family:var(--font-mono);letter-spacing:-.02em;border-radius:8px;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.site-nav__links{align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:none}.site-nav__link{height:36px;color:var(--text-2);transition:color .2s var(--ease), background-color .2s var(--ease);border-radius:999px;align-items:center;padding:0 14px;font-size:14px;display:inline-flex;position:relative}.site-nav__link:hover{color:var(--text)}.site-nav__link[aria-current=true]{color:var(--text);background:#ffffff0f}.site-nav__cta{display:none}.site-nav__menu-btn{border:1px solid var(--line);width:42px;height:42px;color:var(--text);background:0 0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}@media (min-width:992px){.site-nav__links,.site-nav__cta{display:flex}.site-nav__menu-btn{display:none}}.mobile-menu.offcanvas{--bs-offcanvas-width:min(100vw, 420px);background:var(--bg);color:var(--text);border:0!important;border-inline-start:1px solid var(--line)!important}.mobile-menu .offcanvas-header{border-bottom:1px solid var(--line);justify-content:space-between;height:80px;padding:0 20px}.mobile-menu .offcanvas-body{flex-direction:column;padding:12px 20px 28px;display:flex}.mobile-menu__list{margin:0;padding:0;list-style:none}.mobile-menu__link{border-bottom:1px solid var(--line);letter-spacing:-.03em;color:var(--text-2);transition:color .2s var(--ease);align-items:baseline;gap:14px;padding:16px 0;font-size:28px;font-weight:500;display:flex}.mobile-menu__link span{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-3);font-size:12px}.mobile-menu__link[aria-current=true],.mobile-menu__link:hover{color:var(--text)}.mobile-menu__footer{flex-direction:column;gap:20px;margin-top:auto;padding-top:32px;display:flex}.offcanvas-backdrop.show{opacity:.7}.section{padding:var(--section-y) 0;border-top:1px solid var(--line);position:relative}.section-head{gap:20px;margin-bottom:clamp(40px,5vw,64px);display:grid}.section-head__index{align-items:center;gap:12px;display:flex}.section-head__index b{color:var(--accent);font-weight:500}.section-head__title{letter-spacing:-.035em;max-width:16ch;font-size:clamp(2.1rem,4.6vw,3.5rem);font-weight:600;line-height:1.05}.section-head__body{gap:16px;display:grid}.section-head__lead{max-width:56ch;color:var(--text-2);font-size:clamp(1rem,1.3vw,1.125rem)}@media (min-width:992px){.section-head{grid-template-columns:3fr 9fr;align-items:start;column-gap:32px}.section-head__index{padding-top:14px}}.hero{min-height:100svh;padding:calc(var(--nav-h) + 56px) 0 72px;isolation:isolate;align-items:center;display:flex;position:relative;overflow:hidden}.hero__grid,.hero__spotlight{z-index:-1;pointer-events:none;background-image:linear-gradient(90deg,#ffffff0b 1px,#0000 1px),linear-gradient(#ffffff0b 1px,#0000 1px);background-position:-1px -1px;background-size:64px 64px;position:absolute;inset:0}.hero__grid{-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 20%,#0000 75%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 20%,#0000 75%)}.hero__spotlight{opacity:0;transition:opacity .4s var(--ease);-webkit-mask-image:radial-gradient(260px circle at var(--mx,50%) var(--my,40%), #000, transparent 70%);mask-image:radial-gradient(260px circle at var(--mx,50%) var(--my,40%), #000, transparent 70%);-webkit-mask-image:radial-gradient(260px circle at var(--mx,50%) var(--my,40%), #000, transparent 70%);background-image:linear-gradient(90deg,#7c9dff59 1px,#0000 1px),linear-gradient(#7c9dff59 1px,#0000 1px)}.hero.is-pointer .hero__spotlight{opacity:1}.hero__inner{gap:56px;width:100%;display:grid}@media (min-width:992px){.hero__inner{grid-template-columns:minmax(0,1fr) 340px;align-items:end;gap:64px}}.hero__intro{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:28px;display:flex}.hero__name{color:var(--text);font-size:15px;font-weight:500}.hero__divider{background:var(--line-strong);width:1px;height:14px}@media (max-width:575.98px){.hero__intro{flex-direction:column;align-items:flex-start;gap:6px}.hero__divider{display:none}}.hero__title{letter-spacing:-.045em;font-size:clamp(2.5rem,6.4vw,5.25rem);font-weight:600;line-height:.98}.hero__title span{display:block}@media (min-width:768px){.hero__title span{white-space:nowrap}}.hero__title .is-muted{color:var(--text-3)}.hero__description{max-width:54ch;color:var(--text-2);margin-top:28px;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.6}.hero__actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:40px;display:flex}.hero__socials{gap:8px;margin-inline-start:4px;display:flex}@media (max-width:575.98px){.hero__actions .button{flex:100%}.hero__socials{margin:8px 0 0}}.profile-card{border:1px solid var(--line);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(6px);background:#0e0e11cc}.profile-card__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.status{color:var(--text-2);align-items:center;gap:8px;font-size:13px;display:inline-flex}.status__dot{background:var(--success);border-radius:50%;width:8px;height:8px;position:relative}.status__dot:after{content:"";border:1px solid var(--success);opacity:0;animation:ping 2.4s var(--ease) infinite;border-radius:50%;position:absolute;inset:-4px}@keyframes ping{0%{opacity:.8;transform:scale(.6)}80%,to{opacity:0;transform:scale(1.5)}}.profile-card__facts{margin:0;padding:6px 18px}.profile-card__fact{border-bottom:1px dashed var(--line);grid-template-columns:96px 1fr;gap:12px;padding:12px 0;font-size:14px;display:grid}.profile-card__fact:last-child{border-bottom:0}.profile-card__fact dt{font-weight:400}.profile-card__fact dd{color:var(--text);margin:0}.profile-card__stack{border-top:1px solid var(--line);padding:14px 18px 18px}.stack-icons{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.stack-icons li{border:1px solid var(--line);border-radius:var(--radius);width:38px;height:38px;color:var(--text-2);transition:color .2s var(--ease), border-color .2s var(--ease);justify-content:center;align-items:center;display:inline-flex}.stack-icons li:hover{color:var(--text);border-color:var(--line-strong)}.hero__scroll{color:var(--text-3);transition:color .2s var(--ease);align-items:center;gap:8px;display:none;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.hero__scroll:hover{color:var(--text)}@media (min-width:992px) and (min-height:760px){.hero__scroll{display:inline-flex}}.about__grid{gap:56px;display:grid}@media (min-width:992px){.about__grid{grid-template-columns:3fr 9fr;column-gap:32px}.about__main{grid-column:2}}.about__copy{max-width:64ch;color:var(--text-2);gap:20px;font-size:clamp(1.05rem,1.35vw,1.2rem);line-height:1.65;display:grid}.about__copy p:first-child{color:var(--text)}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:48px 0 0;padding:0;list-style:none;display:grid}.stats li{padding-block:24px;padding-inline:0 16px}.stats li+li{border-inline-start:1px solid var(--line);padding-inline-start:20px}.stats strong{letter-spacing:-.04em;color:var(--text);font-size:clamp(2rem,4vw,2.75rem);font-weight:600;line-height:1;display:block}.stats span{color:var(--text-3);margin-top:10px;font-size:13px;line-height:1.4;display:block}.capabilities{border-top:1px solid var(--line);margin:64px 0 0;padding:0;list-style:none;display:grid}@media (min-width:768px){.capabilities{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}}.capability{border-bottom:1px solid var(--line);grid-template-columns:36px 1fr;align-content:start;gap:4px 12px;padding:22px 0;display:grid}.capability__num{font-family:var(--font-mono);color:var(--text-3);grid-row:span 2;padding-top:3px;font-size:12px}.capability h3{letter-spacing:-.01em;font-size:16px;font-weight:600}.capability p{color:var(--text-2);font-size:14.5px}.working-style{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:32px;display:flex}.skills-grid{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--line);grid-template-columns:1fr;gap:1px;display:grid;overflow:hidden}@media (min-width:768px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.skill-group{background:var(--bg);transition:background-color .3s var(--ease);padding:28px}@media (hover:hover){.skill-group:hover{background:var(--bg-raised)}}.skill-group__head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.skill-group__head h3{letter-spacing:-.02em;font-size:20px}.skill-group__desc{color:var(--text-3);margin-bottom:22px;font-size:14px}.skill-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.skill-chip{border:1px solid var(--line);border-radius:var(--radius);min-height:36px;color:var(--text-2);transition:color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);background:0 0;align-items:center;gap:8px;padding:6px 12px;font-size:14px;display:inline-flex}.skill-chip svg{opacity:.8;flex-shrink:0}.skill-chip.is-core{color:var(--text);border-color:var(--line-strong)}.skill-chip.is-core:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;margin-inline-start:auto}@media (hover:hover){.skill-chip:hover{color:var(--text);border-color:#ffffff3d;transform:translateY(-1px)}}.skills-legend{color:var(--text-3);align-items:center;gap:8px;margin-top:20px;font-size:13px;display:inline-flex}.skills-legend i{background:var(--accent);border-radius:50%;width:5px;height:5px}.projects{gap:clamp(72px,10vw,128px);display:grid}.project{align-items:center;gap:32px;display:grid}@media (min-width:992px){.project{grid-template-columns:7fr 5fr;gap:56px}.project--reverse{grid-template-columns:5fr 7fr}.project--reverse .project__media{order:2}}.frame{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);position:relative;overflow:hidden}.frame__bar{border-bottom:1px solid var(--line);background:var(--bg-raised);align-items:center;gap:6px;height:34px;padding:0 14px;display:flex}.frame__bar i{background:#ffffff1f;border-radius:50%;width:9px;height:9px}.frame__url{font-family:var(--font-mono);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;margin-inline-start:10px;font-size:11px;overflow:hidden}.frame__viewport{aspect-ratio:16/10;background:#0b0b0d;position:relative;overflow:hidden}.frame__slide{opacity:0;transition:opacity .5s var(--ease), transform .8s var(--ease);position:absolute;inset:0}.frame__slide.is-active{opacity:1}.frame__slide img{object-fit:cover;object-position:top center}@media (hover:hover){.project__media:hover .frame__slide.is-active,.project-card:hover .frame__slide.is-active{transform:scale(1.02)}}.gallery-thumbs{gap:8px;margin-top:12px;display:flex}.gallery-thumb{aspect-ratio:16/10;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);opacity:.55;cursor:pointer;width:72px;transition:opacity .2s var(--ease), border-color .2s var(--ease);flex:none;padding:0;position:relative;overflow:hidden}.gallery-thumb img{object-fit:cover;object-position:top center}.gallery-thumb:hover{opacity:.85}.gallery-thumb[aria-pressed=true]{opacity:1;border-color:var(--text-2)}.project__meta{align-items:center;gap:12px;margin-bottom:18px;display:flex}.project__meta b{color:var(--text);font-weight:500}.project__title{letter-spacing:-.035em;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.05}.project__desc{color:var(--text-2);margin-top:16px;font-size:16px}.project__highlights{border-top:1px solid var(--line);margin:24px 0 0;padding:0;list-style:none}.project__highlights li{border-bottom:1px solid var(--line);color:var(--text-2);padding:11px 0 11px 22px;font-size:14.5px;position:relative}.project__highlights li:before{content:"";inset-inline-start:2px;background:var(--accent);width:8px;height:1px;position:absolute;top:22px}.project__stack{margin-top:24px}.project__links{flex-wrap:wrap;gap:20px;margin-top:28px;display:flex}.projects-more{margin-top:clamp(96px,12vw,144px)}.projects-more__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:32px;padding-bottom:20px;display:flex}.projects-more__head h3{letter-spacing:-.02em;font-size:22px}.projects-more__grid{gap:40px 28px;display:grid}@media (min-width:768px){.projects-more__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.projects-more__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.project-card{flex-direction:column;display:flex}.project-card .frame__viewport{aspect-ratio:16/10}.project-card__body{flex-direction:column;flex:1;padding-top:20px;display:flex}.project-card__title{letter-spacing:-.02em;margin-top:10px;font-size:19px}.project-card__desc{color:var(--text-2);margin-top:8px;font-size:14.5px}.project-card__highlights{color:var(--text-3);margin:14px 0 0;padding:0;font-size:13.5px;list-style:none}.project-card__highlights li+li{margin-top:4px}.project-card__highlights li:before{content:"— "}.project-card .tag-list{margin-top:auto;padding-top:18px}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline-item{gap:14px;padding:0 0 56px 32px;display:grid;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";inset-inline-start:5px;background:var(--line-strong);width:1px;position:absolute;top:10px;bottom:-10px}.timeline-item:last-child:before{display:none}.timeline-item__node{inset-inline-start:0;border:1px solid var(--text-3);background:var(--bg);border-radius:50%;width:11px;height:11px;position:absolute;top:5px}.timeline-item.is-current .timeline-item__node{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.timeline-item__when{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.timeline-item__when .mono-label{color:var(--text-2)}.badge-current{background:var(--accent-soft);height:22px;color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;display:inline-flex}.timeline-item__location{color:var(--text-3);font-size:14px}.timeline-item__role{letter-spacing:-.03em;font-size:clamp(1.35rem,2.2vw,1.75rem);line-height:1.2}.timeline-item__role span{color:var(--text-3);font-weight:500}.timeline-item__domain{color:var(--text-2);margin-top:6px;font-size:14px;display:inline-block}.timeline-item__list{gap:8px;max-width:68ch;margin:4px 0 0;padding:0;list-style:none;display:grid}.timeline-item__list li{color:var(--text-2);padding-inline-start:20px;font-size:15px;position:relative}.timeline-item__list li:before{content:"";inset-inline-start:0;background:var(--text-3);width:8px;height:1px;position:absolute;top:.8em}.timeline-item .tag-list{margin-top:6px}@media (min-width:992px){.timeline-item{grid-template-columns:3fr 9fr;column-gap:32px;padding-inline-start:0}.timeline-item:before{inset-inline-start:calc(25% - 18px)}.timeline-item__node{inset-inline-start:calc(25% - 23px)}.timeline-item__side{padding-inline-end:32px}.timeline-item__when{flex-direction:column;align-items:flex-start}.timeline-item__main{gap:14px;padding-inline-start:24px;display:grid}}@media (max-width:991.98px){.timeline-item__side,.timeline-item__main{gap:12px;display:grid}}.contact__grid{gap:56px;display:grid}@media (min-width:992px){.contact__grid{grid-template-columns:5fr 7fr;gap:72px}}.contact__title{letter-spacing:-.045em;max-width:11ch;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1}.contact__lead{max-width:44ch;color:var(--text-2);margin-top:24px;font-size:clamp(1rem,1.3vw,1.125rem)}.contact__email{align-items:center;gap:8px;margin-top:36px;display:flex}.contact__email .button--primary{min-width:0;overflow:hidden}.contact__email .button--primary span{text-overflow:ellipsis;overflow:hidden}.contact__details{border-top:1px solid var(--line);margin:40px 0 0;padding:0;list-style:none}.contact__details li{border-bottom:1px solid var(--line);grid-template-columns:96px 1fr;align-items:center;gap:12px;padding:14px 0;font-size:15px;display:grid}.contact__details a{overflow-wrap:break-word;min-width:0;color:var(--text);transition:color .2s var(--ease)}.contact__details a:hover{color:var(--accent)}.contact-form{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-raised);padding:clamp(24px,3vw,36px)}.contact-form__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:24px;display:flex}.contact-form__head h3{letter-spacing:-.01em;font-size:18px}@media (max-width:575.98px){.contact__details li{grid-template-columns:80px 1fr;font-size:14px}}.contact-form__row{gap:0 16px;display:grid}@media (min-width:576px){@media (max-width:575.98px){.contact__details li{grid-template-columns:80px 1fr;font-size:14px}}.contact-form__row{grid-template-columns:1fr 1fr}}.field{margin-bottom:18px}.field .form-label{color:var(--text-2);margin-bottom:8px;font-size:13px;font-weight:500}.field .form-control{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);min-height:46px;color:var(--text);box-shadow:none;transition:border-color .2s var(--ease), box-shadow .2s var(--ease);padding:11px 14px;font-size:15px}.field textarea.form-control{resize:vertical;min-height:140px}.field .form-control::placeholder{color:var(--text-3)}.field .form-control:focus{background:var(--bg);color:var(--text);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field .form-control.is-invalid{border-color:var(--danger);background-image:none;padding-inline-end:14px}.field .form-control.is-invalid:focus{box-shadow:0 0 0 3px #f8717126}.field__error{color:var(--danger);margin-top:6px;font-size:13px}.contact-form__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:8px;display:flex}.contact-form__note{color:var(--text-3);font-size:13px}@media (max-width:575.98px){.contact-form__footer .button{width:100%}}.site-footer{border-top:1px solid var(--line);padding:40px 0 32px}.site-footer__top{gap:28px;padding-bottom:32px;display:grid}@media (min-width:768px){.site-footer__top{grid-template-columns:1fr auto;align-items:center}}.site-footer__role{color:var(--text-3);margin-top:6px;font-size:14px}.site-footer__nav{flex-wrap:wrap;gap:8px 24px;margin:0;padding:0;list-style:none;display:flex}.site-footer__nav a{color:var(--text-2);transition:color .2s var(--ease);font-size:14px}.site-footer__nav a:hover{color:var(--text)}.site-footer__bottom{border-top:1px solid var(--line);color:var(--text-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:24px;font-size:13px;display:flex}.social-row{gap:8px;display:flex}.chat-toggle{inset-inline-end:24px;z-index:1036;border:1px solid var(--line-strong);background:var(--surface);width:56px;height:56px;color:var(--text);transition:transform .3s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:fixed;bottom:24px;box-shadow:0 10px 30px #00000073}.chat-toggle:hover{background:var(--surface-hover);border-color:#ffffff3d}.chat-toggle.is-open{transform:rotate(90deg)}.chat-outer{bottom:96px;opacity:0;transform-origin:100% 100%;pointer-events:none;width:380px;height:min(560px,75vh);max-height:75vh;transition:opacity .25s var(--ease), transform .25s var(--ease);position:fixed;inset-inline-end:24px;transform:translateY(12px)scale(.98)}.chat-outer.is-open{opacity:1;pointer-events:auto;transform:none}.chat-card{color:var(--text);background:var(--bg-raised)!important;border:1px solid var(--line-strong)!important;border-radius:var(--radius-lg)!important;box-shadow:0 24px 60px #0000008c!important}.chat-header{background:var(--bg-raised);border-bottom:1px solid var(--line);flex-shrink:0}.chat-title{color:var(--text);font-size:15px;font-weight:600}.chat-subtitle{color:var(--text-3);align-items:center;gap:8px;font-size:12px;display:flex}.chat-close{width:32px;height:32px;color:var(--text-2);transition:background-color .2s var(--ease), color .2s var(--ease);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.chat-close:hover{background:var(--surface);color:var(--text)}.input-area{background:var(--bg-raised);flex-shrink:0;border-top:1px solid var(--line)!important}.chat-header-avatar{width:36px;min-width:36px;height:36px;color:var(--bg);background:var(--text);border-radius:10px;justify-content:center;align-items:center;display:flex}.online-dot{background-color:var(--success);border-radius:50%;width:7px;height:7px;display:inline-block}.messages-container{background-color:var(--bg);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;min-height:0}.messages-container::-webkit-scrollbar{width:6px}.messages-container::-webkit-scrollbar-track{background:0 0}.messages-container::-webkit-scrollbar-thumb{background-color:var(--line-strong);border-radius:3px}.message-item{animation:fadeInUp .3s var(--ease)}.msg-avatar{border-radius:7px;justify-content:center;align-items:center;width:24px;min-width:24px;height:24px;margin-bottom:2px;display:flex}.bot-avatar{background:var(--surface);border:1px solid var(--line);color:var(--text)}.user-avatar{background:var(--text);color:var(--bg)}.message-bubble{word-wrap:break-word;overflow-wrap:break-word;border-radius:14px;max-width:78%}.bot-message{background-color:var(--surface);color:var(--text);border:1px solid var(--line);border-end-start-radius:4px}.user-message{background:var(--text);color:var(--bg);border-end-end-radius:4px}.message-text{word-break:break-word;font-size:14px;line-height:1.5}.message-text>div+div{margin-top:4px}.message-list{margin:4px 0;padding-inline-start:18px}.message-list li{margin-bottom:3px}.message-list li:last-child{margin-bottom:0}.message-timestamp{opacity:.55;margin-top:4px;font-size:10px}.empty-state-text{color:var(--text-3);max-width:220px;font-size:13.5px}.powered-by{color:var(--text-3);letter-spacing:.2px;justify-content:center;align-items:center;gap:4px;margin-top:6px;font-size:10px;display:flex}.typing-dots{justify-content:center;align-items:center;gap:4px;padding:8px 2px;display:flex!important}.typing-dots span{background-color:var(--text-2);border-radius:50%;width:6px;height:6px;animation:1.3s ease-in-out infinite typingBounce;display:inline-block}.typing-dots span:first-child{animation-delay:-.32s}.typing-dots span:nth-child(2){animation-delay:-.16s}.message-input.form-control{background:var(--bg);border:1px solid var(--line-strong);color:var(--text);border-radius:999px;padding-block:12px;padding-inline:16px 48px;font-size:14px}.message-input.form-control::placeholder{color:var(--text-3)}.message-input.form-control:focus{background:var(--bg);color:var(--text);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.message-input.form-control:disabled{background:var(--bg);opacity:.7}.send-button{inset-inline-end:6px;background:var(--text);width:34px;height:34px;color:var(--bg);transition:opacity .2s var(--ease);border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.send-button:disabled{opacity:.4}@keyframes typingBounce{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.typing-indicator,.empty-state{animation:.3s fadeIn}@media (max-width:575.98px){.chat-toggle{inset-inline-end:16px;width:52px;height:52px;bottom:16px}.chat-outer{inset-inline:12px;width:auto;height:min(70vh,100svh - 140px);max-height:calc(100svh - 140px);bottom:80px}}.site-nav__actions{align-items:center;gap:8px;display:flex}.lang-toggle{border:1px solid var(--line);border-radius:999px;align-items:center;height:38px;padding:3px;display:inline-flex}.lang-toggle button{min-width:40px;height:30px;color:var(--text-3);font-family:var(--font-mono);letter-spacing:.04em;transition:color .2s var(--ease), background-color .2s var(--ease);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.lang-toggle button:lang(ar){font-family:var(--font-sans);letter-spacing:0;font-size:13px}.lang-toggle button:hover{color:var(--text)}.lang-toggle button[aria-pressed=true]{color:var(--text);background:#ffffff14}.site-nav .brand{white-space:nowrap}@media (max-width:379.98px){.site-nav .brand>span:last-child{display:none}}html[lang=ar] body,html[lang=ar] body *{letter-spacing:normal!important}html[lang=ar] .mono-label,html[lang=ar] .badge-current{font-family:var(--font-sans);text-transform:none;font-size:13px}html[lang=ar] .hero__title,html[lang=ar] .section-head__title,html[lang=ar] .contact__title,html[lang=ar] .project__title,html[lang=ar] .mobile-menu__link{line-height:1.25}html[lang=ar] .hero__title{font-size:clamp(2.3rem,5.4vw,4.4rem)}html[lang=ar] .hero__title span{white-space:normal}html[lang=ar] .about__copy,html[lang=ar] .hero__description{line-height:1.85}[dir=rtl] .icon-arrow-right,[dir=rtl] .icon-arrow-diag{transform:scaleX(-1)}@media (hover:hover){[dir=rtl] .button:hover .icon-arrow-right{transform:translate(-3px)scaleX(-1)}[dir=rtl] .button:hover .icon-arrow-diag,[dir=rtl] .text-link:hover .icon-arrow-diag{transform:translate(-2px,-2px)scaleX(-1)}}[dir=rtl] .chat-outer{transform-origin:0 100%}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}.hero__spotlight{display:none}}@media print{.reveal,.enter{opacity:1!important;animation:none!important;transform:none!important}.site-nav,.chat-toggle,.chat-outer,.hero__grid,.hero__spotlight{display:none!important}}
