:root{--bg:#0a0a0b;--bg-soft:#101012;--surface:#141416;--surface-2:#1b1b1f;--text:#f4f4f1;--text-dim:#8b8b88;--accent:#d8ff3e;--accent-ink:#0a0a0b;--danger:#ff8f8f;--border:hsla(0,0%,100%,.11);--border-2:hsla(0,0%,100%,.06);--panel:rgba(20,20,22,.72);--panel-hover:rgba(28,28,32,.85);--max:1380px;--pad:clamp(20px,5vw,56px);--ease:cubic-bezier(0.16,1,0.3,1);--font-body:"Inter",system-ui,-apple-system,sans-serif;--font-display:"Bricolage Grotesque","Inter",sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}ul{list-style:none}em{color:var(--accent);font-style:italic}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{border-radius:2px;outline:2px solid var(--accent);outline-offset:3px}:focus:not(:focus-visible){outline:none}*{scrollbar-color:var(--surface-2) transparent;scrollbar-width:thin}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:0}.container{margin-inline:auto;max-width:var(--max);padding-inline:var(--pad);width:100%}#bg-canvas{height:100%;inset:0;opacity:.55;pointer-events:none;position:fixed;width:100%;z-index:0}.about,.ai,.contact,.footer,.hero,.legal,.marquee,.nav,.page-hero,.projects,.services,.stats{position:relative;z-index:1}.btn{align-items:center;border:1px solid var(--border);border-radius:999px;cursor:pointer;display:inline-flex;font-family:var(--font-display);font-size:.95rem;font-weight:600;gap:8px;justify-content:center;padding:15px 30px;transition:transform .2s var(--ease),background .2s,color .2s,border-color .2s}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--primary:hover{filter:brightness(1.08);transform:translateY(-2px)}.btn--ghost{background:transparent;color:var(--text)}.btn--ghost:hover{background:var(--text);border-color:var(--text);color:var(--accent-ink);transform:translateY(-2px)}.btn--danger{background:transparent;border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}.btn--danger:hover{background:var(--danger);border-color:var(--danger);color:var(--accent-ink);transform:translateY(-2px)}.btn--small{font-size:.82rem;padding:9px 18px}.nav{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:rgba(10,10,11,.7);border-bottom:1px solid transparent;position:sticky;top:0;transition:border-color .3s,background .3s;z-index:50}.nav.is-scrolled{background:rgba(10,10,11,.9);border-bottom-color:var(--border)}.nav__inner{align-items:center;display:flex;gap:24px;height:72px;justify-content:space-between}.nav__logo{align-items:center;display:inline-flex;font-family:var(--font-display);font-size:1.05rem;font-weight:700;gap:10px;letter-spacing:-.3px}.nav__dot{background:var(--accent);border-radius:50%;height:9px;width:9px}.nav__logo-img{height:28px;object-fit:contain;width:28px}.nav__links{align-items:center;display:flex;gap:34px;margin-left:auto}.nav__links a{color:var(--text-dim);font-size:.95rem;font-weight:500;transition:color .2s}.nav__links a:hover{color:var(--text)}.nav__cta{color:var(--accent)!important}.nav__impersonation{align-items:center;background:var(--accent);border-radius:999px;color:var(--accent-ink);display:inline-flex;flex:0 0 auto;font-family:var(--font-display);font-size:.82rem;font-weight:600;gap:8px;padding:7px 16px;transition:filter .2s,transform .2s var(--ease)}.nav__impersonation:before{background:currentColor;border-radius:50%;content:"";height:7px;width:7px}.nav__impersonation:hover{filter:brightness(1.08);transform:translateY(-1px)}.nav__burger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:6px}.nav__burger span{background:var(--text);border-radius:2px;height:2px;transition:transform .3s,opacity .3s;width:24px}.hero{border-bottom:1px solid var(--border);padding:clamp(40px,7vw,80px) 0 clamp(50px,8vw,90px)}.hero__top{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding-bottom:clamp(24px,4vw,48px)}.hero__tag{align-items:center;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);display:inline-flex;font-family:var(--font-display);font-size:.85rem;font-weight:500;gap:10px;padding:8px 16px}.hero__tag .dot{animation:pulse 2.2s var(--ease) infinite;background:var(--accent);border-radius:50%;height:8px;width:8px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.hero__role{color:var(--text-dim);font-size:.9rem;letter-spacing:.3px}.hero__wordmark{font-family:var(--font-display);font-size:clamp(3.5rem,17vw,15rem);font-weight:800;letter-spacing:-.04em;line-height:.86;text-transform:none}.hero__bottom{align-items:flex-end;display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between;margin-top:clamp(28px,4vw,48px)}.hero__subtitle{color:var(--text-dim);font-size:clamp(1.05rem,1.7vw,1.35rem);max-width:540px}.hero__actions{display:flex;flex-wrap:wrap;gap:14px}.marquee{border-bottom:1px solid var(--border);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);overflow:hidden;padding:22px 0}.marquee__track{align-items:center;animation:scroll-x 40s linear infinite;display:inline-flex;gap:0;white-space:nowrap}.marquee__track span{color:var(--text-dim);font-family:var(--font-display);font-size:1.4rem;font-weight:600;padding:0 32px;position:relative}.marquee__track span:after{color:var(--accent);content:"/";position:absolute;right:-4px}.marquee:hover .marquee__track{animation-play-state:paused}@keyframes scroll-x{to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.marquee__track{animation:none}}.trust{border-bottom:1px solid var(--border);padding:clamp(60px,8vw,100px) 0}.trust__label{color:var(--text-dim);font-family:var(--font-display);font-size:.82rem;font-weight:600;letter-spacing:.18em;margin-bottom:clamp(32px,4vw,52px);text-align:center;text-transform:uppercase}.logos{-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);overflow:hidden}.logos__track{white-space:nowrap;will-change:transform}.logo,.logos__track{align-items:center;display:inline-flex}.logo{flex:none;height:clamp(64px,8vw,96px);justify-content:center;padding:0 clamp(48px,9vw,140px)}.logo img{height:100%;transition:opacity .3s var(--ease);width:auto}@media (prefers-reduced-motion:reduce){.logos__track{animation:none}}.section-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:12px 22px;margin-bottom:clamp(40px,5vw,64px)}.section-head__num{color:var(--accent);font-family:var(--font-display);font-size:1rem;font-weight:600}.section-head__title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.6rem);font-weight:700;letter-spacing:-.03em;line-height:1}.section-head__desc{color:var(--text-dim);font-size:1rem;margin-top:4px;width:100%}.section-head__note{color:var(--text-dim);font-size:.88rem;max-width:70ch;opacity:.8;width:100%}.services{border-bottom:1px solid var(--border);padding:clamp(70px,9vw,110px) 0}.services__grid{border:1px solid var(--border);border-radius:0;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden}.service{background:var(--panel);border-right:1px solid var(--border);padding:clamp(28px,3vw,44px);transition:background .3s}.service:last-child{border-right:none}.service:hover{background:var(--panel-hover)}.service__idx{color:var(--text-dim);font-size:.85rem}.service h3,.service__idx{font-family:var(--font-display)}.service h3{font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:600;letter-spacing:-.02em;margin:18px 0 12px}.service p{color:var(--text-dim)}.projects{border-bottom:1px solid var(--border);padding:clamp(70px,9vw,110px) 0}.projects__list{display:grid;gap:clamp(20px,2.5vw,30px);grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr))}.project,.project.is-reversed{background:var(--panel);border:1px solid var(--border);display:flex;flex-direction:column;gap:0;overflow:hidden;transition:transform .3s var(--ease),border-color .3s,background .3s}.project:hover{background:var(--panel-hover);border-color:var(--accent);transform:translateY(-5px)}.project.is-reversed .project__media,.project__media{aspect-ratio:16/10;background:var(--panel);border-bottom:1px solid var(--border);order:0;overflow:hidden;position:relative}.project__media img{height:100%;object-fit:contain;padding:24px;transition:transform .5s var(--ease);width:100%}.project:hover .project__media img{transform:scale(1.04)}.project__status{align-items:center;backdrop-filter:blur(6px);background:rgba(100,116,139,.9);border-radius:999px;color:#fff;display:inline-flex;font-size:.72rem;font-weight:600;gap:7px;left:14px;line-height:1;padding:6px 12px;position:absolute;top:14px;z-index:2}.project__status:before{background:#fff;border-radius:50%;content:"";height:6px;width:6px}.project__status.is-published{background:#16a34a}.project__status.is-in-progress{background:#2563eb}.project__status.is-paused{background:#d97706}.project__status.is-abandoned{background:#dc2626}.project.is-reversed .project__body,.project__body{align-items:flex-start;display:flex;flex:1;flex-direction:column;order:0;padding:26px;text-align:left}.project__index{color:var(--accent);font-size:.78rem;letter-spacing:1px;margin-bottom:12px}.project__index,.project__title{font-family:var(--font-display);font-weight:600}.project__title{font-size:clamp(1.3rem,2.2vw,1.7rem);letter-spacing:-.02em;line-height:1.1}.project__desc{color:var(--text-dim);font-size:.97rem;margin-top:12px}.project__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.project__tags span{border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-size:.76rem;font-weight:500;padding:5px 12px}.project__link{align-items:center;color:var(--accent);display:inline-flex;font-family:var(--font-display);font-weight:600;gap:8px;margin-top:auto;padding-top:22px;transition:gap .25s var(--ease)}.project__link:hover{gap:14px}.project__link.is-disabled{color:var(--text-dim);cursor:not-allowed;opacity:.6}.project__link.is-disabled:hover{gap:8px}.project__demo{background:var(--panel);border:1px solid var(--border);margin-top:20px;padding:14px 16px}.project__demo-title{color:var(--accent);display:block;font-family:var(--font-display);font-size:.82rem;font-weight:600;margin-bottom:10px}.project__demo-row{align-items:center;color:var(--text-dim);display:flex;font-size:.86rem;gap:10px;margin-top:6px}.project__demo-row>span{min-width:92px}.project__demo-row code{background:hsla(0,0%,100%,.05);border-radius:6px;color:var(--text);font-family:monospace;padding:2px 8px;word-break:break-all}.projects__more{display:flex;justify-content:center;margin-top:clamp(48px,6vw,72px)}.stats{border-bottom:1px solid var(--border);padding:clamp(70px,9vw,110px) 0}.stats__panel{background:var(--panel);border:1px solid var(--border)}.stats__bar{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:18px clamp(18px,2.4vw,28px)}.stats__switch{border:1px solid var(--border);border-radius:999px;display:inline-flex;padding:4px}.stats__tab{background:none;border:none;border-radius:999px;color:var(--text-dim);cursor:pointer;font-family:var(--font-display);font-size:.92rem;font-weight:600;padding:9px 22px;transition:color .2s,background .25s var(--ease)}.stats__tab:hover{color:var(--text)}.stats__tab.is-active{background:var(--accent);color:var(--accent-ink)}.stats__profile{align-items:center;color:var(--accent);display:inline-flex;font-family:var(--font-display);font-size:.9rem;font-weight:600;gap:8px;transition:gap .25s var(--ease)}.stats__profile:hover{gap:14px}.stats__profile[hidden]{display:none}.stats__grid{display:grid;grid-template-columns:repeat(4,1fr)}.kpi{border-bottom:1px solid var(--border);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px;padding:clamp(22px,2.4vw,30px);transition:background .3s}.kpi:nth-child(4n){border-right:none}.kpi:nth-last-child(-n+4){border-bottom:none}.kpi:hover{background:var(--panel-hover)}.kpi__label{color:var(--text-dim);font-size:.82rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.kpi__value{align-items:baseline;display:inline-flex;font-family:var(--font-display);font-size:clamp(2rem,3.2vw,2.6rem);font-weight:700;gap:6px;letter-spacing:-.03em;line-height:1}.kpi__value--text{font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:600}.kpi__approx{color:var(--text-dim);font-size:.55em;font-weight:500}.kpi__hint{font-size:.82rem}.kpi.is-empty .kpi__value,.kpi__hint{color:var(--text-dim)}.kpi.is-loading{gap:14px}.kpi.is-loading span{animation:kpi-shimmer 1.4s linear infinite;background:linear-gradient(90deg,hsla(0,0%,100%,.05),hsla(0,0%,100%,.11),hsla(0,0%,100%,.05));background-size:200% 100%;border-radius:4px;display:block;height:12px}.kpi.is-loading span:first-child{width:45%}.kpi.is-loading span:last-child{height:34px;width:70%}@keyframes kpi-shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.kpi.is-loading span{animation:none}}.langs{border-top:1px solid var(--border);padding:clamp(24px,2.8vw,34px)}.langs__title{color:var(--text-dim);display:block;font-size:.82rem;font-weight:600;letter-spacing:.02em;margin-bottom:16px;text-transform:uppercase}.langs__bar{border-radius:4px;display:flex;gap:2px;height:14px;overflow:hidden}.langs__seg{display:block;min-width:3px}.langs__legend{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:16px}.langs__item{align-items:center;color:var(--text-dim);display:inline-flex;font-size:.9rem;gap:9px}.langs__dot{border-radius:50%;flex:none;height:10px;width:10px}.langs__pct{color:var(--text);font-variant-numeric:tabular-nums}.stats__meta{color:var(--text-dim);font-size:.82rem;padding:0 clamp(24px,2.8vw,34px) clamp(24px,2.8vw,34px)}.stats__error{color:var(--text-dim);padding:clamp(28px,3.4vw,40px)}@media (max-width:1150px){.stats__grid{grid-template-columns:repeat(2,1fr)}.kpi:nth-child(4n){border-right:1px solid var(--border)}.kpi:nth-child(2n){border-right:none}.kpi:nth-last-child(-n+4){border-bottom:1px solid var(--border)}.kpi:nth-last-child(-n+2){border-bottom:none}}@media (max-width:540px){.stats__grid{grid-template-columns:1fr}.kpi{border-bottom:1px solid var(--border)!important;border-right:none!important}.kpi:last-child{border-bottom:none!important}.stats__bar{justify-content:center}}.page-hero{border-bottom:1px solid var(--border);padding:clamp(60px,9vw,100px) 0 clamp(30px,4vw,50px)}.page-hero__back{align-items:center;color:var(--text-dim);display:inline-flex;font-weight:500;gap:8px;margin-bottom:24px;transition:color .2s,gap .2s}.page-hero__back:hover{color:var(--accent);gap:12px}.page-hero .hero__tag{margin-bottom:24px}.page-hero__title{font-family:var(--font-display);font-size:clamp(3rem,12vw,9rem);font-weight:800;letter-spacing:-.04em;line-height:.88}.page-hero__subtitle{color:var(--text-dim);font-size:1.15rem;margin-top:22px;max-width:600px}.projects--page{padding-top:clamp(50px,7vw,72px)}.about{background:var(--panel);border-bottom:1px solid var(--border);padding:clamp(70px,9vw,110px) 0}.about__grid{align-items:start;display:grid;gap:clamp(32px,5vw,72px);grid-template-columns:1.2fr 1fr}.about__lead{font-family:var(--font-display);font-size:clamp(1.25rem,2.2vw,1.8rem);font-weight:400;letter-spacing:-.01em;line-height:1.4}.about__lead strong{color:var(--accent);font-weight:600}.about__skills{align-content:flex-start;display:flex;flex-wrap:wrap;gap:10px}.about__skills li{border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-size:.9rem;font-weight:500;padding:9px 18px;transition:color .2s,border-color .2s,transform .2s var(--ease)}.about__skills li:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-3px)}.ai{border-bottom:1px solid var(--border);padding:clamp(70px,9vw,110px) 0}.ai__grid{align-items:start;display:grid;gap:clamp(32px,5vw,72px);grid-template-columns:1fr 1.3fr}.ai__lead{font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.7rem);font-weight:400;letter-spacing:-.01em;line-height:1.4;position:sticky;top:96px}.ai__lead strong{color:var(--accent);font-weight:600}.ai__steps{border:1px solid var(--border);display:grid;grid-template-columns:repeat(2,1fr)}.ai-step{background:var(--panel);border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:clamp(24px,2.6vw,34px);transition:background .3s}.ai-step:nth-child(2n){border-right:none}.ai-step:nth-last-child(-n+2){border-bottom:none}.ai-step:hover{background:var(--panel-hover)}.ai-step__idx{color:var(--accent);font-size:.85rem;letter-spacing:1px}.ai-step h3,.ai-step__idx{font-family:var(--font-display);font-weight:600}.ai-step h3{font-size:clamp(1.15rem,2vw,1.45rem);letter-spacing:-.02em;margin:14px 0 10px}.ai-step p{color:var(--text-dim);font-size:.95rem}.ai__tools{align-items:center;display:flex;flex-wrap:wrap;gap:16px 22px;margin-top:clamp(40px,5vw,64px)}.ai__tools-label{color:var(--text-dim);font-family:var(--font-display);font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.ai__tools-list{display:flex;flex-wrap:wrap;gap:10px}.ai__tools-list li{border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-size:.9rem;font-weight:500;padding:9px 18px;transition:color .2s,border-color .2s,transform .2s var(--ease)}.ai__tools-list li:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-3px)}@media (max-width:900px){.ai__grid{grid-template-columns:1fr}.ai__lead{position:static}}@media (max-width:540px){.ai__steps{grid-template-columns:1fr}.ai-step{border-right:none}.ai-step:nth-last-child(-n+2):not(:last-child){border-bottom:1px solid var(--border)}}.reveal{opacity:0;transform:translateY(36px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}.contact{border-bottom:1px solid var(--border);padding:clamp(80px,12vw,140px) 0;text-align:center}.contact .section-head__num{display:inline-block;margin-bottom:16px}.contact__title{font-size:clamp(3rem,13vw,10rem);font-weight:800;letter-spacing:-.04em;line-height:.86}.contact__mail,.contact__title{font-family:var(--font-display)}.contact__mail{align-items:center;color:var(--accent);display:inline-flex;font-size:clamp(1.1rem,2.4vw,1.7rem);font-weight:500;gap:10px;margin-top:clamp(28px,4vw,44px);transition:gap .25s var(--ease)}.contact__mail:hover{gap:16px}.contact-form{display:flex;flex-direction:column;gap:18px;margin:clamp(32px,5vw,56px) auto 0;max-width:640px;text-align:left}.contact-form__row{display:grid;gap:18px;grid-template-columns:1fr 1fr}.contact-form__field{display:flex;flex-direction:column;gap:8px}.contact-form label{color:var(--text-dim);font-size:.82rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.contact-form input,.contact-form textarea{background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;padding:13px 16px;transition:border-color .2s var(--ease),background .2s var(--ease);width:100%}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--text-dim);opacity:.7}.contact-form input:focus,.contact-form textarea:focus{background:var(--surface-2);border-color:var(--accent);outline:none}.contact-form textarea{min-height:130px;resize:vertical}.contact-form .btn{align-self:flex-start;margin-top:4px}.contact-form ul{list-style:none;margin:0;padding:0}.contact-form ul li{color:#ff6b6b;font-size:.85rem;margin-top:4px}.contact-form .g-recaptcha{margin-top:4px}.contact__flash{border-radius:10px;font-weight:500;margin:clamp(24px,4vw,40px) auto 0;max-width:640px;padding:14px 18px}.contact__flash--ok{background:rgba(216,255,62,.12);border:1px solid var(--accent);color:var(--accent)}@media (max-width:560px){.contact-form__row{grid-template-columns:1fr}}.legal{padding:clamp(40px,6vw,70px) 0 clamp(60px,9vw,100px)}.legal__body{max-width:760px}.legal__block{border-bottom:1px solid var(--border);padding:clamp(24px,3vw,34px) 0}.legal__block:last-child{border-bottom:none}.legal__num{color:var(--accent);display:block;font-family:var(--font-display);font-size:.8rem;letter-spacing:.08em;margin-bottom:10px}.legal__title{font-size:clamp(1.25rem,2.4vw,1.6rem);font-weight:700;letter-spacing:-.02em;margin-bottom:14px}.legal__text{color:var(--text-dim);line-height:1.7}.legal__text+.legal__text{margin-top:12px}.legal__list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:16px 0 0;padding:0}.legal__list li{color:var(--text-dim);line-height:1.7;padding-left:20px;position:relative}.legal__list li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.7em;width:7px}.legal a{color:var(--text);text-decoration:underline;text-underline-offset:3px;transition:color .2s}.legal a:hover{color:var(--accent)}.legal strong{color:var(--text)}.footer{padding:36px 0}.footer__inner{align-items:center;color:var(--text-dim);display:flex;flex-wrap:wrap;font-size:.9rem;gap:16px;justify-content:space-between;padding-right:clamp(64px,8vw,96px)}.footer__social{display:flex;gap:22px}.footer__social a{transition:color .2s}.footer__social a:hover{color:var(--accent)}.footer__links{display:flex;flex-wrap:wrap;gap:22px}.footer__links a{transition:color .2s}.footer__links a:hover{color:var(--accent)}.footer__credit{color:var(--text-dim);font-size:.8rem;margin-top:18px;opacity:.8}.footer__credit em{color:var(--text-dim);font-style:italic}.footer__credit a{color:var(--text-dim);text-decoration:underline;text-underline-offset:2px;transition:color .2s}.footer__credit a:hover{color:var(--accent)}@media (max-width:900px){.services__grid{grid-template-columns:1fr}.service{border-bottom:1px solid var(--border);border-right:none}.service:last-child{border-bottom:none}.about__grid{grid-template-columns:1fr}}@media (max-width:820px){.nav__links{align-items:flex-start;background:var(--bg-soft);border-bottom:1px solid var(--border);flex-direction:column;gap:20px;inset:72px 0 auto 0;padding:24px;position:fixed;transform:translateY(-130%);transition:transform .35s var(--ease)}.nav__links.is-open{transform:translateY(0)}.nav__burger{display:flex}.nav__impersonation{font-size:.76rem;margin-left:auto;padding:6px 13px}.hero__bottom{align-items:flex-start;flex-direction:column}.hero__actions{width:100%}.about__grid{grid-template-columns:1fr}}@media (max-width:540px){.hero__top{align-items:flex-start;flex-direction:column;gap:12px}.hero__actions .btn{flex:1;min-width:0;padding:12px 18px;white-space:nowrap}.marquee__track span{font-size:1.15rem;padding:0 22px}.project__body{padding:22px}.footer__inner{align-items:flex-start;flex-direction:column;gap:14px}.about__skills{gap:8px}.about__skills li{font-size:.85rem;padding:8px 14px}}.ambient{align-items:center;display:flex;gap:12px;position:fixed;right:clamp(16px,3vw,28px);top:calc(72px + clamp(12px, 2vw, 20px));z-index:60}.ambient-credit{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(10,10,11,.82);border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;gap:2px;opacity:0;padding:10px 14px;pointer-events:none;position:absolute;right:0;text-align:right;top:calc(100% + 12px);transform:translateY(-8px);transition:opacity .25s var(--ease),transform .25s var(--ease);white-space:nowrap}.ambient:focus-within .ambient-credit,.ambient:hover .ambient-credit{opacity:1;pointer-events:auto;transform:translateY(0)}.ambient-credit__title{color:var(--text);font-family:var(--font-display);font-size:.82rem;font-weight:600}.ambient-credit__title em{color:var(--accent);font-style:italic}.ambient-credit__lic,.ambient-credit__link{color:var(--text-dim);font-size:.72rem}.ambient-credit__link{text-decoration:underline;text-underline-offset:2px;transition:color .2s}.ambient-credit__link:hover{color:var(--accent)}.ambient-toggle{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(10,10,11,.7);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent),0 4px 18px rgba(0,0,0,.35);color:var(--text);cursor:pointer;display:inline-flex;flex:none;height:52px;justify-content:center;position:relative;transition:color .2s,border-color .2s,transform .2s var(--ease),background .2s,box-shadow .2s;width:52px}.ambient-toggle:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 6px 22px rgba(0,0,0,.4);transform:translateY(-2px)}.ambient-toggle.is-on,.ambient-toggle:hover{border-color:var(--accent);color:var(--accent)}.ambient-toggle svg{height:20px;width:20px}.ambient-toggle__on{display:none}.ambient-toggle.is-on .ambient-toggle__on{display:block}.ambient-toggle.is-on .ambient-toggle__off{display:none}.ambient-toggle:after{border:1px solid var(--accent);border-radius:50%;content:"";inset:-4px;opacity:0;position:absolute}.ambient-toggle:not(.is-on):after{animation:ambient-breathe 3.2s var(--ease) infinite}.ambient-toggle.is-on:after{animation:ambient-ring 2.4s var(--ease) infinite}.ambient-toggle:hover:after{animation:none}@keyframes ambient-breathe{0%,to{opacity:.12;transform:scale(1)}50%{opacity:.5;transform:scale(1.06)}}@keyframes ambient-ring{0%{opacity:.5;transform:scale(.92)}to{opacity:0;transform:scale(1.45)}}@media (prefers-reduced-motion:reduce){.ambient-toggle:after{animation:none}}.auth{border-bottom:1px solid var(--border);padding:clamp(70px,11vw,130px) 0 clamp(60px,9vw,110px);position:relative;z-index:1}.auth__inner{max-width:520px}.auth__title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,4.4rem);font-weight:800;letter-spacing:-.03em;line-height:.95}.auth__subtitle{color:var(--text-dim);font-size:1.02rem;margin-top:18px}.auth__subtitle strong{color:var(--text);font-weight:600}.auth__form{margin-top:clamp(26px,4vw,38px)}.auth__form .btn{align-self:stretch;justify-content:center;text-align:center}.auth__error,.auth__notice{background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:.92rem;margin-top:24px;padding:12px 16px}.auth__error{border-color:hsla(0,100%,71%,.45);color:#ff8f8f}.auth__notice{border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.auth__code{font-family:var(--font-display);font-size:1.9rem;letter-spacing:.5em;text-align:center;text-indent:.5em}.auth__resend{margin-top:22px}.auth__link{background:none;border:none;color:var(--text-dim);cursor:pointer;font:inherit;font-size:.9rem;padding:0;text-decoration:underline;text-underline-offset:4px;transition:color .2s}.auth__link:hover{color:var(--accent)}.workspace{border-bottom:1px solid var(--border);padding:clamp(50px,8vw,90px) 0 clamp(60px,9vw,110px);position:relative;z-index:1}.workspace__head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.workspace__title{font-family:var(--font-display);font-size:clamp(2.2rem,6vw,3.6rem);font-weight:800;letter-spacing:-.03em;line-height:1}.workspace__title--sm{font-size:clamp(1.7rem,3.6vw,2.4rem);max-width:20ch}.workspace__subtitle{color:var(--text-dim);font-size:.98rem;margin-top:14px}.workspace__subtitle strong{color:var(--text);font-weight:600}.workspace__mail{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.admin__flash{background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:.95rem;font-weight:500;margin-top:26px;padding:13px 18px}.admin__flash--ok{background:rgba(216,255,62,.1);border-color:var(--accent);color:var(--accent)}.admin__flash--ko{border-color:hsla(0,100%,71%,.45);color:#ff8f8f}.workspace__nav{align-items:stretch;border-bottom:1px solid var(--border);border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:18px 0;margin-top:clamp(22px,3vw,30px);padding:16px 0}.workspace__nav-group{display:flex;flex-direction:column;gap:10px}.workspace__nav-group+.workspace__nav-group{border-left:1px solid var(--border);margin-left:clamp(20px,3vw,34px);padding-left:clamp(20px,3vw,34px)}.workspace__nav-label{align-items:center;color:var(--text-dim);display:inline-flex;font-size:.7rem;font-weight:700;gap:8px;letter-spacing:.12em;text-transform:uppercase}.workspace__nav-label:before{background:var(--accent);border-radius:2px;content:"";height:2px;opacity:.55;width:14px}.workspace__nav-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.workspace__link{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);display:inline-flex;font-size:.92rem;font-weight:500;padding:8px 16px;transition:color .2s,background .2s,border-color .2s}.workspace__link:hover{background:var(--surface-2);border-color:var(--text-dim);color:var(--text)}.workspace__link.is-active{border-color:var(--accent);font-weight:600}.workspace__link.is-active,.workspace__link.is-active:hover{background:var(--accent);color:var(--accent-ink)}.workspace__back{align-items:center;color:var(--text-dim);display:inline-flex;font-weight:500;gap:8px;margin-bottom:24px;transition:color .2s,gap .2s}.workspace__back:hover{color:var(--accent);gap:12px}.workspace__panels{align-items:start;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:clamp(24px,3.5vw,34px)}.workspace__filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(26px,4vw,38px)}.workspace__filter{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);display:inline-flex;font-size:.88rem;font-weight:500;gap:8px;padding:9px 16px;transition:color .2s,border-color .2s,background .2s}.workspace__filter span{font-size:.78rem;opacity:.7}.workspace__filter:hover{border-color:var(--text-dim);color:var(--text)}.workspace__filter.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.workspace__filter.is-active span{opacity:.85}.workspace__empty{color:var(--text-dim);margin-top:40px;max-width:60ch}.workspace__search{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(26px,4vw,38px)}.workspace__search-input{background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text);flex:1 1 260px;font:inherit;font-size:.9rem;max-width:420px;padding:11px 16px;transition:border-color .2s}.workspace__search-input:focus{border-color:var(--accent);outline:none}.workspace__search-reset{color:var(--text-dim);font-size:.85rem;text-decoration:underline;text-underline-offset:4px}.workspace__search-reset:hover{color:var(--text)}.workspace__list{display:flex;flex-direction:column;gap:12px;margin-top:clamp(24px,3.5vw,34px)}.admin-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;transition:background .2s,border-color .2s,transform .2s var(--ease)}.admin-card:hover{background:var(--panel-hover);border-color:var(--text-dim);transform:translateY(-2px)}.admin-card--todo{border-left:3px solid var(--accent)}.admin-card__link{gap:16px;justify-content:space-between;padding:18px 22px}.admin-card--with-aside,.admin-card__link{align-items:center;display:flex;flex-wrap:wrap}.admin-card--with-aside .admin-card__link{flex:1 1 320px}.admin-card__aside{padding:0 22px 18px}@media (min-width:720px){.admin-card__aside{padding:0 22px 0 0}}.admin-card__subject{font-family:var(--font-display);font-size:1.05rem;font-weight:600}.admin-card__from{color:var(--text-dim);font-size:.88rem;margin-top:4px}.admin-card__meta{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-card__count,.admin-card__date{color:var(--text-dim);font-size:.82rem}.badge{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);display:inline-flex;font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:4px 11px;white-space:nowrap}.badge--new{border-color:color-mix(in srgb,var(--accent) 50%,transparent);color:var(--accent)}.badge--in-progress{border-color:rgba(120,180,255,.45);color:#8fbcff}.badge--waiting{border-color:rgba(255,190,90,.45);color:#ffc46b}.badge--won{border-color:rgba(110,220,150,.45);color:#7fe0a4}.badge--lost{border-color:var(--border);color:var(--text-dim)}.badge--todo{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.badge--failed{border-color:hsla(0,100%,71%,.5);color:#ff8f8f}.badge--private{border-color:rgba(190,150,255,.5);color:#c9a9ff}.admin__layout{align-items:start;display:grid;gap:clamp(20px,3vw,34px);grid-template-columns:minmax(0,1fr) 320px;margin-top:clamp(26px,4vw,38px)}.admin__thread{gap:clamp(18px,2.5vw,26px);min-width:0}.admin__side,.admin__thread{display:flex;flex-direction:column}.admin__side{gap:14px;position:sticky;top:92px}.admin__panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:22px}.admin__panel-title{font-family:var(--font-display);font-size:1.05rem;font-weight:600}.admin__panel-hint{color:var(--text-dim);font-size:.86rem;margin-top:6px}.admin__panel .admin-form{margin:18px 0 0;max-width:none}.admin-form__check{align-items:center;flex-direction:row;flex-wrap:wrap;gap:10px}.admin-form__check input[type=checkbox]{accent-color:var(--accent);cursor:pointer;height:18px;width:18px}.admin-form__check label{cursor:pointer;margin:0}.admin-form__check .help-text,.admin-form__check ul{flex-basis:100%}.admin__facts{display:grid;font-size:.88rem;gap:8px 16px;grid-template-columns:auto 1fr;margin-top:16px}.admin__facts dt{color:var(--text-dim)}.admin__facts dd{text-align:right}.admin__delete{align-self:flex-start;background:none;border:none;color:var(--text-dim);cursor:pointer;font:inherit;font-size:.85rem;padding:0;text-decoration:underline;text-underline-offset:4px;transition:color .2s}.admin__delete:hover{color:var(--danger)}.modal{background:transparent;border:none;color:var(--text);margin:auto;overflow:visible;padding:0;width:min(520px,calc(100vw - var(--pad)*2))}.modal::backdrop{backdrop-filter:blur(4px);background:rgba(5,5,8,.72)}.modal__panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;gap:12px;padding:clamp(22px,4vw,30px)}.modal__title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;line-height:1.3}.modal__text{color:var(--text-dim);font-size:.9rem}.modal__text strong{color:var(--text);font-weight:600}.modal__label{color:var(--text-dim);font-size:.78rem;font-weight:600;letter-spacing:.09em;margin-top:6px;text-transform:uppercase}.modal__input{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;padding:13px 16px;width:100%}.modal__input:focus{border-color:var(--danger);outline:none}.modal__actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:8px}.modal__actions .btn{padding:12px 22px}.admin-form select{background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;padding:13px 16px;width:100%}.admin-form select:focus{border-color:var(--accent);outline:none}.admin-form .btn{align-self:flex-start;margin-top:4px}.admin-form textarea{min-height:120px;resize:vertical}.thread{flex-direction:column;gap:14px}.thread,.thread__item{display:flex}.thread__item--outbound{justify-content:flex-end}.thread__bubble{background:var(--surface);border:1px solid var(--border);border-radius:14px;max-width:min(100%,640px);padding:16px 20px}.thread__item--outbound .thread__bubble{background:var(--surface-2);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.thread__meta{align-items:center;color:var(--text-dim);display:flex;flex-wrap:wrap;font-size:.78rem;gap:10px}.thread__who{color:var(--text);font-weight:600}.thread__subject{font-family:var(--font-display);font-size:.98rem;font-weight:600;margin-top:8px}.thread__body{font-size:.95rem;line-height:1.65;margin-top:8px;overflow-wrap:anywhere}.thread--mirrored .thread__item--inbound{justify-content:flex-end}.thread--mirrored .thread__item--outbound{justify-content:flex-start}.thread--mirrored .thread__item--inbound .thread__bubble{background:var(--surface-2);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.thread--mirrored .thread__item--outbound .thread__bubble{background:var(--surface);border-color:var(--border)}.thread--mirrored .thread__item--private .thread__bubble,.thread__item--private .thread__bubble{background:color-mix(in srgb,#b98cff 8%,var(--surface));border-color:rgba(190,150,255,.5);border-style:dashed}.observers{display:flex;flex-direction:column;gap:10px;list-style:none;margin-top:14px;padding:0}.observers__item{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding-bottom:10px}.observers__name{display:flex;flex-direction:column;font-size:.9rem;min-width:0}.observers__mail{color:var(--text-dim);font-size:.78rem;overflow-wrap:anywhere}.observers__remove{background:none;border:0;color:var(--text-dim);cursor:pointer;font-size:.8rem;padding:0;text-decoration:underline}.observers__remove:hover{color:#ff8f8f}.attachments{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;list-style:none;margin:12px 0 0;padding:12px 0 0}.attachments__item{display:flex}.attachments__link{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;color:var(--text);display:inline-flex;font-size:.86rem;gap:10px;max-width:100%;padding:8px 12px;transition:border-color .2s var(--ease),color .2s var(--ease)}.attachments__link:hover{border-color:var(--accent);color:var(--accent)}.attachments__icon{flex:none}.attachments__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachments__size{color:var(--text-dim);flex:none;font-size:.76rem}.contact-form input[type=file]{cursor:pointer;font-size:.88rem;padding:11px 14px}.contact-form input[type=file]::file-selector-button{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font:inherit;font-size:.82rem;margin-right:12px;padding:6px 12px}.contact-form .help-text{color:var(--text-dim);font-size:.8rem}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);border:0;white-space:nowrap}@media (max-width:900px){.workspace__nav{flex-direction:column;gap:16px}.workspace__nav-group+.workspace__nav-group{border-left:0;border-top:1px solid var(--border);margin-left:0;padding-left:0;padding-top:16px}.admin__layout{grid-template-columns:1fr}.admin__side{position:static}.thread--mirrored .thread__item--inbound,.thread__item--outbound{justify-content:flex-start}}