.nav{position:sticky;top:0;z-index:50;height:var(--nav-h);background:#f2f6f8db;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav__brand{display:inline-flex;align-items:center;gap:.65rem}.nav__mark{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:var(--ink);color:var(--teal);font-family:var(--font-display);font-weight:800;font-size:1.1rem}.nav__name{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--ink);letter-spacing:-.03em}.nav__links{display:flex;align-items:center;gap:.35rem}.nav__links a{padding:.45rem .85rem;color:var(--muted);font-weight:500;border-radius:var(--radius);transition:color .2s ease,background .2s ease}.nav__links a:hover,.nav__links a.active{color:var(--ink);background:#1aa6a01a}.nav__cta{margin-left:.5rem!important;background:var(--ink)!important;color:var(--white)!important}.nav__cta:hover{background:var(--ink-soft)!important}.nav__toggle{display:none;width:42px;height:42px;border:1px solid var(--line);background:var(--white);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:6px;cursor:pointer}.nav__toggle span{width:18px;height:2px;background:var(--ink)}@media(max-width:768px){.nav__toggle{display:flex}.nav__links{position:absolute;top:var(--nav-h);left:0;right:0;flex-direction:column;align-items:stretch;padding:1rem 1.25rem 1.25rem;background:var(--paper);border-bottom:1px solid var(--line);transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.nav__links.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.nav__cta{margin-left:0!important;text-align:center}}.footer{background:var(--ink);color:#ffffffc7;padding-top:3.5rem}.footer__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.footer__brand{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--white);margin-bottom:.5rem}.footer__tag{color:#ffffff8c}.footer__cols{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.footer__cols h3{color:var(--white);font-size:.95rem;margin-bottom:.85rem}.footer__cols a,.footer__cols p{display:block;margin-bottom:.45rem;color:#ffffffa6}.footer__cols a:hover{color:var(--teal)}.footer__bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.25rem 0 1.75rem;font-size:.9rem}.footer__icp:hover{color:var(--amber)}@media(max-width:768px){.footer__grid{grid-template-columns:1fr}}.project-card{background:var(--white);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.project-card__media{display:block;aspect-ratio:16 / 10;overflow:hidden}.project-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.project-card:hover .project-card__media img{transform:scale(1.05)}.project-card__body{padding:1.25rem 1.2rem 1.4rem;display:flex;flex-direction:column;gap:.7rem;flex:1}.project-card__tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-card h3{font-size:1.2rem}.project-card h3 a:hover{color:var(--teal-deep)}.project-card p{color:var(--muted);font-size:.95rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.project-card__links{display:flex;gap:1rem;padding-top:.35rem}.project-card__links a{font-weight:600;color:var(--teal-deep)}.project-card__links a:hover{color:var(--ink)}.hero{position:relative;min-height:calc(100vh - var(--nav-h));display:grid;align-items:end;overflow:hidden;color:var(--white)}.hero__media{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;transform:scale(1.02);animation:fade-in 1.2s ease both}.hero__veil{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,#071820eb 18%,#0718208c 62%,#0e7a7659),linear-gradient(to top,rgba(7,24,32,.75),transparent 45%)}.hero__content{position:relative;z-index:1;padding-bottom:clamp(4rem,10vw,7rem);padding-top:clamp(5rem,12vw,8rem);max-width:42rem}.hero__brand{font-family:var(--font-display);font-size:clamp(2.4rem,6vw,4.2rem);font-weight:800;letter-spacing:-.04em;color:var(--teal);margin-bottom:.85rem}.hero h1{font-size:clamp(1.55rem,3.2vw,2.25rem);font-weight:700;margin-bottom:1rem;color:var(--white)}.hero__lead{color:#ffffffd1;font-size:1.08rem;max-width:34rem;margin-bottom:1.8rem}.hero__actions{display:flex;flex-wrap:wrap;gap:.85rem}.hero__chart{position:absolute;right:6%;bottom:12%;width:min(34vw,360px);opacity:.9;z-index:1;animation:drift 6s ease-in-out infinite}.features{background:var(--white)}.features__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.feature{padding:1.6rem 1.4rem;border-top:3px solid var(--teal);background:var(--paper)}.feature h3{font-size:1.25rem;margin-bottom:.65rem;color:var(--ink)}.feature p{color:var(--muted)}.solutions{background:var(--mist)}.solutions__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.solution{padding:1.5rem 1.25rem;background:var(--white);border:1px solid var(--line)}.solution h3{margin-bottom:1rem;color:var(--ink)}.solution ul{list-style:none}.solution li{position:relative;padding-left:1rem;margin-bottom:.45rem;color:var(--muted)}.solution li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--amber)}.portfolio-preview__head{width:100%;max-width:none;display:flex;justify-content:space-between;align-items:end;gap:1rem}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.cta{background:linear-gradient(135deg,var(--ink),var(--ink-soft) 55%,#0e5c58);color:var(--white);padding:clamp(4rem,8vw,5.5rem) 0}.cta__inner{text-align:center;max-width:40rem}.cta h2{color:var(--white);font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:.75rem}.cta p{color:#ffffffbf;margin-bottom:1.5rem}@media(max-width:960px){.features__grid,.solutions__grid,.projects-grid{grid-template-columns:1fr 1fr}.hero__chart{display:none}}@media(max-width:640px){.features__grid,.solutions__grid,.projects-grid{grid-template-columns:1fr}.portfolio-preview__head{flex-direction:column;align-items:start}}.about-hero{background:var(--white);padding-top:clamp(3rem,6vw,4.5rem)}.about-hero__grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:2.5rem;align-items:center}.about-hero__portrait{position:relative;aspect-ratio:1;border-radius:24px;background:linear-gradient(160deg,var(--ink),#0f4f4b);display:grid;place-items:center;overflow:hidden}.about-hero__portrait p{position:relative;z-index:1;font-family:var(--font-display);font-size:6rem;font-weight:800;color:var(--teal)}.about-hero__glow{position:absolute;width:60%;height:60%;border-radius:50%;background:radial-gradient(circle,rgba(232,184,74,.35),transparent 70%);animation:drift 5s ease-in-out infinite}.eyebrow{color:var(--teal-deep);font-weight:700;margin-bottom:.6rem}.about-hero h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:1rem;color:var(--ink)}.lead{color:var(--muted);font-size:1.08rem;margin-bottom:1.8rem;max-width:36rem}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.stats div{padding:1rem 0;border-top:2px solid var(--teal)}.stats strong{display:block;font-family:var(--font-display);font-size:1.8rem;color:var(--ink)}.stats span{color:var(--muted);font-size:.92rem}.about-skills{background:var(--mist)}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.skills-grid article{background:var(--white);border:1px solid var(--line);padding:1.5rem}.skills-grid h3{margin-bottom:1rem;color:var(--ink)}.skills-grid ul{list-style:none}.skills-grid li{padding:.45rem 0;border-bottom:1px solid var(--line);color:var(--muted)}.skills-grid li:last-child{border-bottom:0}@media(max-width:800px){.about-hero__grid,.skills-grid{grid-template-columns:1fr}.about-hero__portrait{max-width:220px}}.page-pad{background:var(--paper)}.portfolio .projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}@media(max-width:800px){.portfolio .projects-grid{grid-template-columns:1fr}}.contact__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:2rem;align-items:start}.contact__info{list-style:none;display:grid;gap:.85rem}.contact__info li{padding:1rem 1.1rem;background:var(--white);border:1px solid var(--line)}.contact__info span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}.contact__info a,.contact__info p{font-weight:600;color:var(--ink)}.contact__form{background:var(--white);border:1px solid var(--line);padding:1.5rem;display:grid;gap:1rem}.contact__form h3{color:var(--ink)}.contact__form label{display:grid;gap:.4rem;font-weight:600;color:var(--ink-soft)}.contact__form input,.contact__form textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:.8rem .9rem;background:var(--paper);color:var(--text)}.contact__form input:focus,.contact__form textarea:focus{outline:2px solid rgba(26,166,160,.35);border-color:var(--teal)}.contact__ok{padding:.75rem .9rem;background:#1aa6a01f;color:var(--teal-deep);border-radius:var(--radius)}@media(max-width:800px){.contact__grid{grid-template-columns:1fr}}.detail__banner{position:relative;min-height:42vh;background-size:cover;background-position:center;display:flex;align-items:end;color:var(--white)}.detail__veil{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#071820e6,#07182059)}.detail__banner-text{position:relative;z-index:1;padding-bottom:2.5rem;padding-top:5rem}.back{display:inline-block;margin-bottom:1rem;color:#ffffffbf}.back:hover{color:var(--teal)}.detail__banner h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:1rem;color:var(--white)}.detail__tags{display:flex;flex-wrap:wrap;gap:.45rem}.detail__tags .tag{background:#ffffff24;color:var(--white)}.detail__body{max-width:720px}.detail__body p{font-size:1.08rem;color:var(--muted);margin-bottom:1.75rem}.detail__actions{display:flex;flex-wrap:wrap;gap:.75rem}:root{--ink: #071820;--ink-soft: #14303a;--teal: #1aa6a0;--teal-deep: #0e7a76;--amber: #e8b84a;--mist: #e8eef1;--paper: #f2f6f8;--white: #ffffff;--text: #1a2f36;--muted: #5a727a;--line: rgba(7, 24, 32, .1);--radius: 4px;--shadow: 0 18px 40px rgba(7, 24, 32, .12);--font-display: "Syne", system-ui, sans-serif;--font-body: "Manrope", system-ui, sans-serif;--max: 1120px;--nav-h: 72px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}h1,h2,h3{font-family:var(--font-display);line-height:1.15;letter-spacing:-.02em}.container{width:min(100% - 2.5rem,var(--max));margin-inline:auto}.section{padding:clamp(4rem,8vw,6.5rem) 0}.section-head{max-width:36rem;margin-bottom:2.5rem}.section-head h2{font-size:clamp(1.8rem,3.5vw,2.6rem);color:var(--ink);margin-bottom:.75rem}.section-head p{color:var(--muted);font-size:1.05rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.75rem 1.4rem;border-radius:var(--radius);border:1.5px solid transparent;font-weight:600;cursor:pointer;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--teal);color:var(--white)}.btn-primary:hover{background:var(--teal-deep)}.btn-ghost{background:transparent;border-color:#ffffff8c;color:var(--white)}.btn-ghost:hover{background:var(--white);color:var(--ink)}.btn-outline{background:transparent;border-color:var(--ink);color:var(--ink)}.btn-outline:hover{background:var(--ink);color:var(--white)}.tag{display:inline-flex;padding:.25rem .65rem;font-size:.78rem;font-weight:600;color:var(--teal-deep);background:#1aa6a01f;border-radius:999px}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes drift{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,-10px,0)}}.rise{animation:rise-in .8s ease both}.rise-delay-1{animation-delay:.12s}.rise-delay-2{animation-delay:.24s}.rise-delay-3{animation-delay:.36s}
