:root{
  --viv-bg:#06111f;
  --viv-bg-2:#081827;
  --viv-bg-3:#091b30;
  --viv-text:#f5f9ff;
  --viv-muted:#9fb0c4;
  --viv-line:rgba(112,177,255,.18);
  --viv-accent:#1f73ff;
  --viv-accent-2:#54b8ff;
  --viv-gutter:clamp(18px,3vw,44px);
  --viv-max:1140px;
  --viv-ease:cubic-bezier(.22,1,.36,1);
}
html{background:var(--viv-bg)}
body{background:var(--viv-bg)!important;color:var(--viv-text);font-family:Poppins,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{text-decoration:none}.viv-shell{width:min(var(--viv-max),calc(100% - (var(--viv-gutter)*2)));margin-inline:auto}.viv-shell-wide{width:min(1540px,calc(100% - (var(--viv-gutter)*2)));margin-inline:auto}.viv-section{padding:clamp(76px,8.5vw,132px) 0}.viv-label{display:flex;gap:14px;align-items:center;font-size:10px;letter-spacing:.16em;font-weight:600;text-transform:uppercase;color:#7fbfff}.viv-label::before{content:"";width:28px;height:1px;background:linear-gradient(90deg,var(--viv-accent-2),transparent)}.viv-display{margin:0;font-size:clamp(42px,5.2vw,78px);line-height:.96;letter-spacing:-.036em;font-weight:500;text-wrap:balance}.viv-lead{color:var(--viv-muted);font-size:clamp(14px,.55vw + 12px,17px);line-height:1.65}.viv-btn{min-height:50px;padding:0 20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:18px;font-size:12px;font-weight:600;border:1px solid rgba(255,255,255,.32);transition:transform .3s var(--viv-ease),background .3s ease,border-color .3s ease}.viv-btn:hover{transform:translateY(-3px)}.viv-btn-primary{background:linear-gradient(135deg,var(--viv-accent),#329dff);border-color:rgba(105,186,255,.75);box-shadow:0 12px 30px rgba(31,115,255,.22);color:#fff}.viv-btn-ghost{background:rgba(255,255,255,.055);backdrop-filter:blur(10px);color:#fff}

/* Header — visual language from viv.cssingerei.md, mobile behavior kept compact. */
.site-header{position:fixed;inset:0 0 auto;z-index:60;color:#fff;border-bottom:1px solid transparent;transition:background .35s ease,border-color .35s ease,backdrop-filter .35s ease}.site-header.scrolled,.inner-page .site-header{background:rgba(6,17,31,.90);border-bottom-color:rgba(255,255,255,.09);backdrop-filter:blur(18px) saturate(130%)}.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(54,147,255,.28),transparent);pointer-events:none}.header-shell{height:86px;display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(230px,1fr);align-items:center;gap:28px}.viv-brand{display:inline-flex;align-items:center;gap:12px;justify-self:start;min-width:0}.viv-brand img{height:42px;width:auto;object-fit:contain}.viv-brand-copy{display:flex;flex-direction:column;line-height:1}.viv-brand-copy strong{font-size:13px;letter-spacing:.08em}.viv-brand-copy small{font-size:8px;letter-spacing:.14em;color:rgba(255,255,255,.58);margin-top:5px}.desktop-nav{display:flex;gap:clamp(18px,2.1vw,36px);justify-content:center}.desktop-nav a{font-size:13px;font-weight:500;color:rgba(255,255,255,.78);position:relative;padding:12px 0;white-space:nowrap}.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:7px;height:1px;background:linear-gradient(90deg,var(--viv-accent),var(--viv-accent-2));transition:right .35s var(--viv-ease)}.desktop-nav a:hover::after,.desktop-nav a.is-active::after{right:0}.desktop-nav a.is-active{color:#fff}.header-actions{justify-self:end;display:flex;align-items:center;gap:8px}.phone-pill,.menu-toggle{height:44px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.04);color:#fff;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;backdrop-filter:blur(10px)}.phone-pill{padding:0 17px;gap:9px;font-size:12px;font-weight:500;white-space:nowrap}.menu-toggle{display:none;width:44px;padding:0;cursor:pointer}.mobile-call{display:none;width:42px;padding:0}.mobile-menu-card{position:fixed;z-index:59;top:74px;left:12px;right:12px;height:auto;max-height:calc(100dvh - 86px);overflow:auto;border:1px solid rgba(112,177,255,.2);border-radius:20px;background:rgba(6,17,31,.97);box-shadow:0 20px 48px rgba(0,0,0,.38);padding:12px;backdrop-filter:blur(18px)}.mobile-menu-card a{display:flex;align-items:center;min-height:50px;padding:0 16px;border-radius:13px;font-size:15px;font-weight:600;color:#eaf4ff}.mobile-menu-card a:hover,.mobile-menu-card a.is-active{background:rgba(31,115,255,.12);color:#7fc3ff}.mobile-menu-phone{margin-top:6px;padding-top:10px!important;border-top:1px solid var(--viv-line);color:#7fc3ff!important}.mobile-menu-backdrop{position:fixed;inset:0;z-index:58;background:rgba(1,8,16,.38);backdrop-filter:blur(1px)}

/* Home hero */
.viv-hero{position:relative;min-height:100svh;isolation:isolate;overflow:hidden;background:var(--viv-bg)}.viv-hero-media,.viv-hero-overlay,.viv-hero-noise{position:absolute;inset:0}.viv-hero-media{z-index:0;background:var(--viv-bg-2)}.viv-hero-media picture,.viv-hero-media img{display:block;width:100%;height:100%}.viv-hero-media img{object-fit:cover;object-position:center;filter:saturate(.98) contrast(1.04) brightness(.96);transform:scale(1.012)}.viv-hero-overlay{z-index:1;background:linear-gradient(180deg,rgba(3,12,24,.56) 0%,rgba(3,14,29,.11) 28%,rgba(4,16,32,.16) 56%,rgba(4,14,27,.80) 100%),linear-gradient(90deg,rgba(3,15,30,.58) 0%,rgba(3,15,30,.28) 34%,rgba(3,15,30,.04) 68%,transparent 100%)}.viv-hero-noise{z-index:1;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.44'/%3E%3C/svg%3E");mix-blend-mode:soft-light;pointer-events:none}.viv-hero-content{position:relative;z-index:2;min-height:100svh;padding-top:clamp(118px,13vh,154px);padding-bottom:38px;display:flex;flex-direction:column;justify-content:flex-end}.viv-hero-main{max-width:760px}.viv-hero-kicker{font-size:10px;letter-spacing:.15em;font-weight:600;display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.84);text-transform:uppercase}.viv-status-dot{width:7px;height:7px;border-radius:50%;background:var(--viv-accent-2);box-shadow:0 0 0 5px rgba(31,115,255,.18)}.viv-hero-title{margin:28px 0 28px;font-size:clamp(42px,5.3vw,78px);font-weight:500;line-height:.91;letter-spacing:-.044em;text-wrap:balance;text-shadow:0 6px 30px rgba(0,0,0,.18)}.viv-hero-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;border-top:1px solid rgba(115,178,255,.24);padding-top:18px}.viv-hero-bottom.no-subtitle{grid-template-columns:1fr;justify-items:start}.viv-hero-subtitle{margin:0;max-width:560px;font-size:clamp(14px,1vw,17px);line-height:1.5;color:rgba(255,255,255,.82)}.viv-hero-index{position:absolute;right:0;bottom:0;display:flex;gap:12px;font-size:8px;letter-spacing:.14em;color:rgba(255,255,255,.38)}.viv-hero-content[data-width="ingust"] .viv-hero-main{max-width:520px}.viv-hero-content[data-width="normal"] .viv-hero-main{max-width:760px}.viv-hero-content[data-width="lat"] .viv-hero-main{max-width:980px}.viv-hero-content[data-width="full"] .viv-hero-main{max-width:none;width:100%}.viv-hero-content[data-align="centru"] .viv-hero-main{text-align:center;margin-inline:auto}.viv-hero-content[data-align="centru"] .viv-hero-bottom{grid-template-columns:1fr;justify-items:center}.viv-hero-content[data-align="centru"] .viv-hero-subtitle{text-align:center}.viv-hero-content[data-position="sus"]{justify-content:flex-start}.viv-hero-content[data-position="centru"]{justify-content:center}.viv-hero-content[data-position="jos"]{justify-content:flex-end}.viv-hero-content[data-desktop-size="mic"] .viv-hero-title{font-size:clamp(38px,4.2vw,64px)}.viv-hero-content[data-desktop-size="normal"] .viv-hero-title{font-size:clamp(42px,5.3vw,78px)}.viv-hero-content[data-desktop-size="mare"] .viv-hero-title{font-size:clamp(48px,6vw,92px)}.viv-hero-content[data-desktop-size="xl"] .viv-hero-title{font-size:clamp(54px,6.7vw,104px)}

/* Home sections */
.viv-service-card-media picture,.viv-work-card picture,.viv-gallery-tile picture,.viv-project-card picture,.viv-project-thumb picture{display:block;width:100%;height:100%}.viv-service-card-media picture img,.viv-work-card picture img,.viv-gallery-tile picture img,.viv-project-card picture img,.viv-project-thumb picture img{width:100%;height:100%;object-fit:cover}
.viv-services{background:linear-gradient(180deg,#06111f,#081a2d)}.viv-portfolio{background:linear-gradient(180deg,#091b30,#071522)}.viv-section-head{display:grid;grid-template-columns:minmax(150px,.72fr) minmax(0,1.7fr);column-gap:clamp(34px,6vw,92px);row-gap:14px;align-items:start;margin-bottom:clamp(34px,4vw,52px)}.viv-section-head .viv-section-copy{grid-column:2}.viv-section-head p{margin:12px 0 0;max-width:660px;color:var(--viv-muted);font-size:15px;line-height:1.65}.viv-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.viv-service-card{display:block;position:relative;min-height:360px;border:1px solid rgba(112,181,255,.14);border-radius:20px;overflow:hidden;background:#071725;isolation:isolate;transition:transform .45s var(--viv-ease),border-color .35s ease,box-shadow .45s ease}.viv-service-card:hover{transform:translateY(-6px);border-color:rgba(96,183,255,.38);box-shadow:0 28px 70px rgba(0,0,0,.25)}.viv-service-card-media{position:absolute;inset:0;background:#091827}.viv-service-card-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03);transition:transform .7s var(--viv-ease),filter .45s ease}.viv-service-card:hover img{transform:scale(1.045);filter:saturate(1.04) contrast(1.035)}.viv-service-card-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,10,19,.03) 20%,rgba(2,10,19,.16) 48%,rgba(2,10,19,.88) 100%)}.viv-service-fallback{position:absolute;inset:0;background:radial-gradient(circle at 72% 24%,rgba(84,184,255,.26),transparent 28%),linear-gradient(135deg,#0c2a50,#06111f 74%)}.viv-service-card-content{position:absolute;z-index:2;left:20px;right:20px;bottom:18px;display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:14px;align-items:end}.viv-service-number{font-size:9px;color:#87bde9;margin-bottom:6px}.viv-service-card h3{margin:0;font-size:clamp(24px,2.1vw,35px);line-height:1.04;font-weight:500;letter-spacing:-.035em;text-wrap:balance}.viv-service-card p{margin:8px 0 0;color:rgba(227,239,249,.74);font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.viv-service-arrow{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(112,181,255,.28);color:#a9d6fa;font-size:20px;background:rgba(6,17,31,.52);backdrop-filter:blur(8px);transition:transform .35s var(--viv-ease),background .35s ease}.viv-service-card:hover .viv-service-arrow{transform:translate(3px,-3px);background:rgba(31,115,255,.34)}
.viv-portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(12px,1.25vw,18px)}.viv-work-card{position:relative;overflow:hidden;aspect-ratio:4/3;background:#03101c;border:1px solid rgba(116,182,255,.16);border-radius:16px;isolation:isolate;box-shadow:0 18px 44px rgba(0,0,0,.16)}.viv-work-card img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--viv-ease),filter .45s ease;filter:saturate(.98) contrast(1.015)}.viv-work-card::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(1,8,16,.03) 25%,rgba(1,8,16,.12) 54%,rgba(1,8,16,.80) 100%);pointer-events:none}.viv-work-card:hover img{transform:scale(1.035);filter:saturate(1.04) contrast(1.025)}.viv-work-caption{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;color:#fff}.viv-work-caption span{display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(218,235,250,.78);margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viv-work-caption strong{display:block;font-size:clamp(19px,1.55vw,25px);line-height:1.08;font-weight:500;letter-spacing:-.03em;text-wrap:balance}.viv-work-meta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:10px;color:rgba(228,239,249,.68)}

/* Contact + map */
.viv-contact{background:radial-gradient(circle at 78% 15%,rgba(79,183,255,.20),transparent 34%),linear-gradient(135deg,#0b2e59 0%,#0b4b91 55%,#0b69cf 100%);color:#fff;padding:clamp(58px,5.2vw,76px) 0 54px}.viv-contact-head{border-bottom:1px solid rgba(255,255,255,.20);padding-bottom:30px}.viv-contact h2{font-size:clamp(48px,5.2vw,72px);line-height:.92;letter-spacing:-.032em;font-weight:600;margin:12px 0 0;max-width:820px;text-wrap:balance}.viv-contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px;padding-top:26px;align-items:stretch}.viv-contact-card,.viv-map{min-height:360px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(3,17,34,.18);overflow:hidden}.viv-contact-card{padding:28px;display:flex;flex-direction:column;justify-content:space-between;backdrop-filter:blur(8px)}.viv-contact-meta{display:grid;gap:22px}.viv-contact-item span{display:block;font-size:9px;letter-spacing:.15em;font-weight:700;opacity:.7;text-transform:uppercase;margin-bottom:7px}.viv-contact-item a,.viv-contact-item strong{font-size:15px;line-height:1.5;font-weight:600;color:#fff}.viv-contact-legal{padding-top:22px;border-top:1px solid rgba(255,255,255,.15);font-size:11px;color:rgba(255,255,255,.72);line-height:1.65}.viv-map iframe{width:100%;height:100%;min-height:360px;border:0;display:block}

/* Footer */
.viv-footer{background:#040c16;color:#fff;padding:42px 0 30px}.viv-footer-shell{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px}.viv-footer-side{display:flex;gap:14px;flex-wrap:wrap;font-size:9px;letter-spacing:.11em;color:#7890aa;text-transform:uppercase}.viv-footer-nav a:hover{color:#fff}.viv-footer-logo{text-align:center}.viv-footer-logo img{height:42px;width:auto;margin:0 auto}.viv-footer-logo span{display:block;font-size:8px;letter-spacing:.24em;margin-top:10px;color:#8498ad;text-transform:uppercase}.viv-footer-right{justify-self:end;justify-content:flex-end}

/* Inner pages */
.viv-inner{padding-top:86px;background:linear-gradient(180deg,#06111f,#081827);min-height:100svh}.viv-inner-hero{padding:clamp(56px,7vw,100px) 0 clamp(46px,6vw,82px)}.viv-back{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#78baff;font-weight:600}.viv-service-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(34px,5vw,72px);align-items:center;margin-top:28px}.viv-service-visual{position:relative;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--viv-line);border-radius:18px;background:#081827;box-shadow:0 24px 62px rgba(0,0,0,.18)}.viv-service-visual img{width:100%;height:100%;object-fit:cover}.viv-service-copy h1{margin:14px 0 0;font-size:clamp(44px,5.2vw,72px);line-height:.96;letter-spacing:-.04em;font-weight:500;text-wrap:balance}.viv-service-copy p{margin:24px 0 0;color:#aebfd1;line-height:1.68;font-size:clamp(14px,1vw,17px)}.viv-gallery-section{padding:0 0 clamp(70px,8vw,110px)}.viv-gallery-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.viv-gallery-head h2{margin:8px 0 0;font-size:clamp(32px,3.4vw,48px);line-height:1;font-weight:500;letter-spacing:-.035em}.viv-gallery-count{font-size:10px;letter-spacing:.1em;color:#7890aa;text-transform:uppercase}.viv-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.viv-gallery-tile{position:relative;overflow:hidden;aspect-ratio:4/3;border:1px solid rgba(112,177,255,.14);border-radius:14px;background:#03101c;cursor:zoom-in}.viv-gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--viv-ease)}.viv-gallery-tile:hover img{transform:scale(1.035)}.viv-gallery-index{position:absolute;left:12px;bottom:10px;z-index:2;font-size:9px;letter-spacing:.14em;color:#fff}.viv-empty{padding:24px;border:1px solid var(--viv-line);background:#081827;color:var(--viv-muted)}

/* Portfolio listing */
.viv-portfolio-page .viv-shell{max-width:1140px}.viv-portfolio-head{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,1.5fr);gap:clamp(34px,6vw,92px);align-items:start;margin-bottom:34px}.viv-portfolio-head .viv-display{font-size:clamp(48px,6vw,82px)}.viv-portfolio-head .viv-lead{margin-top:18px}.viv-filters{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;margin-bottom:34px;scrollbar-width:none}.viv-filters::-webkit-scrollbar{display:none}.viv-filters a{flex:0 0 auto;white-space:nowrap;border:1px solid rgba(112,177,255,.2);border-radius:999px;background:#081827;color:#b9c8d8;padding:9px 14px;font-size:11px;font-weight:600}.viv-filters a:hover,.viv-filters a.is-active{color:#fff;border-color:#5db5ff;background:#0b3158}.viv-project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.viv-project-card{position:relative;overflow:hidden;aspect-ratio:4/3;border:1px solid rgba(112,177,255,.16);border-radius:16px;background:#03101c}.viv-project-card img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--viv-ease)}.viv-project-card:hover img{transform:scale(1.035)}.viv-project-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 32%,rgba(1,8,16,.82));pointer-events:none}.viv-project-card-content{position:absolute;z-index:2;left:16px;right:16px;bottom:14px}.viv-project-card-meta{display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#8ecaff}.viv-project-card h2{margin:7px 0 0;font-size:clamp(18px,1.45vw,23px);line-height:1.07;font-weight:500;letter-spacing:-.03em}

/* Project detail gallery like the live VIV gallery. */
.viv-project-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.65fr);gap:clamp(30px,5vw,70px);align-items:end;padding:clamp(46px,6vw,78px) 0 34px}.viv-project-head h1{margin:10px 0 0;font-size:clamp(44px,5.2vw,72px);line-height:.96;letter-spacing:-.04em;font-weight:500;text-wrap:balance}.viv-project-head p{margin:0;color:#aebfd1;line-height:1.68;font-size:15px}.viv-project-gallery{padding:18px 0 56px}.viv-project-gallery-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,260px);gap:14px;align-items:stretch}.viv-project-stage{position:relative;height:clamp(300px,40vh,390px);background:radial-gradient(circle at 50% 44%,rgba(55,126,193,.08),transparent 46%),#03101c;border:1px solid var(--viv-line);border-radius:18px;display:grid;place-items:center;overflow:hidden;cursor:zoom-in}.viv-project-stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.viv-stage-hint{position:absolute;right:14px;bottom:14px;padding:8px 11px;border-radius:999px;background:rgba(2,12,23,.82);border:1px solid rgba(121,190,255,.32);font-size:9px;font-weight:700;letter-spacing:.04em}.viv-project-thumbs{display:grid;grid-template-columns:1fr;grid-auto-rows:calc((100% - 24px)/3);gap:12px;height:clamp(300px,40vh,390px);overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgba(99,180,255,.32) transparent}.viv-project-thumb{position:relative;border:1px solid rgba(112,177,255,.14);border-radius:12px;background:#03101c;overflow:hidden;opacity:.68;cursor:pointer;transition:.22s ease}.viv-project-thumb:hover,.viv-project-thumb.is-active{opacity:1;border-color:#4daaff;transform:translateY(-2px)}.viv-project-thumb img{width:100%;height:100%;object-fit:cover}.viv-project-info{padding:52px 0 72px;background:linear-gradient(180deg,#071522,#091b30)}.viv-project-info-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(32px,5vw,64px)}.viv-project-info h2{margin:10px 0 0;font-size:clamp(32px,3.8vw,48px);line-height:1;font-weight:500;letter-spacing:-.04em}.viv-project-info p{margin:0;color:#adbed0;line-height:1.72;font-size:15px}

/* Lightbox */
.viv-lightbox{position:fixed;inset:0;z-index:100;display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;padding:28px;background:rgba(0,7,15,.97)}.viv-lightbox[hidden],.viv-lightbox.is-hidden{display:none}.viv-lightbox-backdrop{position:absolute;inset:0}.viv-lightbox figure{position:relative;z-index:1;margin:0;height:calc(100vh - 56px);display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center}.viv-lightbox figure img{display:block;max-width:100%;max-height:calc(100vh - 120px);width:auto;height:auto;object-fit:contain;margin:auto;box-shadow:0 28px 90px rgba(0,0,0,.42)}.viv-lightbox figcaption{display:flex;justify-content:center;align-items:center;gap:14px;padding-top:12px;color:#fff}.viv-lightbox figcaption span{font-size:10px;letter-spacing:.14em;color:#75bfff}.viv-lightbox-close,.viv-lightbox-nav{position:relative;z-index:2;border:1px solid rgba(126,192,255,.28);background:rgba(7,26,46,.72);color:#fff;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(12px)}.viv-lightbox-close{position:absolute;right:18px;top:18px;width:46px;height:46px;border-radius:50%;font-size:30px}.viv-lightbox-nav{width:52px;height:70px;border-radius:14px;font-size:42px}.viv-lightbox-prev{justify-self:start}.viv-lightbox-next{justify-self:end}

@media(max-width:1023px){.header-shell{grid-template-columns:1fr auto;height:74px}.viv-brand-copy,.desktop-nav,.phone-pill{display:none}.menu-toggle,.mobile-call{display:inline-flex}.viv-brand img{height:38px}.viv-hero-content{padding-top:104px;min-height:100svh}.viv-section-head,.viv-portfolio-head{grid-template-columns:1fr;gap:22px}.viv-section-head .viv-section-copy{grid-column:auto}.viv-contact-grid{grid-template-columns:1fr}.viv-service-hero-grid{grid-template-columns:1fr}.viv-project-head{grid-template-columns:1fr;gap:24px}.viv-project-gallery-layout{display:block}.viv-project-thumbs{grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;height:auto;overflow:visible;margin-top:10px}.viv-project-thumb{aspect-ratio:4/3}.viv-project-info-grid{grid-template-columns:1fr}.viv-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.viv-section{padding:68px 0}.viv-hero-content{padding-top:96px;padding-bottom:28px}.viv-hero-title{font-size:clamp(46px,14vw,68px);margin:24px 0 28px}.viv-hero-content[data-mobile-size="mic"] .viv-hero-title{font-size:clamp(38px,11vw,50px)}.viv-hero-content[data-mobile-size="normal"] .viv-hero-title{font-size:clamp(44px,13vw,62px)}.viv-hero-content[data-mobile-size="mare"] .viv-hero-title{font-size:clamp(50px,15vw,72px)}.viv-hero-bottom{grid-template-columns:1fr;gap:20px}.viv-hero-index{display:none}.viv-service-grid{grid-template-columns:1fr}.viv-service-card{min-height:330px}.viv-portfolio-grid{grid-template-columns:1fr}.viv-contact h2{font-size:clamp(48px,15vw,72px)}.viv-contact-card,.viv-map,.viv-map iframe{min-height:300px}.viv-footer-shell{grid-template-columns:1fr;justify-items:center;text-align:center;gap:24px}.viv-footer-logo{grid-row:1}.viv-footer-side,.viv-footer-right{justify-self:center;justify-content:center}.viv-service-hero-grid{gap:24px}.viv-service-copy h1{font-size:clamp(40px,12vw,56px)}.viv-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.viv-portfolio-head .viv-display{font-size:clamp(46px,13vw,64px)}.viv-project-grid{grid-template-columns:1fr}.viv-project-stage{height:auto;aspect-ratio:4/3}.viv-project-thumbs{grid-template-columns:repeat(2,1fr);gap:8px}.viv-project-head h1{font-size:clamp(42px,12.5vw,60px)}.viv-lightbox{grid-template-columns:46px minmax(0,1fr) 46px;padding:12px}.viv-lightbox figure{height:calc(100vh - 24px)}.viv-lightbox figure img{max-height:calc(100vh - 105px)}.viv-lightbox-nav{width:40px;height:58px;font-size:34px}.viv-lightbox-close{right:10px;top:10px;width:42px;height:42px}}
@media(max-width:420px){.viv-gallery-grid{grid-template-columns:1fr}.viv-service-card{min-height:300px}.mobile-menu-card{top:70px}.viv-brand img{height:34px}}
@media(min-width:1440px){.viv-portfolio-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Home Hero: no visual separator below the text. */
.viv-hero-bottom{border-top:0}

/* Home services: photo-first cards with a separate, readable information area. */
.viv-services .viv-shell{width:min(1760px,calc(100% - (var(--viv-gutter)*2)))}.viv-service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,1.15vw,24px)}.viv-service-card{display:flex;min-height:0;flex-direction:column;border-color:rgba(112,181,255,.16);border-radius:22px;background:#071725}.viv-service-card:hover{transform:translateY(-3px);border-color:rgba(96,183,255,.35);box-shadow:0 20px 50px rgba(0,0,0,.2)}.viv-service-card-media{position:relative;inset:auto;display:grid;aspect-ratio:16/10;max-height:420px;place-items:center;overflow:hidden;background:#07152d}.viv-service-card-media picture{display:grid;width:100%;height:100%;place-items:center}.viv-service-card-media picture img,.viv-service-card-media img{display:block;width:100%;height:100%;object-fit:contain!important;object-position:center;filter:none;transform:none}.viv-service-card:hover .viv-service-card-media img{transform:none;filter:none}.viv-service-fallback{position:static;width:100%;height:100%;background:radial-gradient(circle at 72% 24%,rgba(84,184,255,.26),transparent 28%),linear-gradient(135deg,#0c2a50,#06111f 74%)}.viv-service-card-content{position:relative;z-index:auto;left:auto;right:auto;bottom:auto;display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:14px;align-items:end;min-height:142px;padding:16px 16px 17px;background:#071725}.viv-service-number{margin:0 0 7px;color:#72c5ff;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.viv-service-card h3{font-size:clamp(20px,1.35vw,25px);font-weight:600;line-height:1.1;letter-spacing:-.03em}.viv-service-card p{display:-webkit-box;overflow:hidden;margin:8px 0 0;color:#b7c6d6;font-size:12px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3}.viv-service-arrow{width:36px;height:36px;border-color:rgba(112,181,255,.3);background:#0b213d;color:#9bd7ff;backdrop-filter:none}.viv-service-card:hover .viv-service-arrow{transform:translate(2px,-2px);background:#10345f}@media(min-width:2200px){.viv-service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1199px){.viv-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.viv-service-grid{grid-template-columns:1fr}.viv-service-card{min-height:0}.viv-service-card-content{min-height:0;padding:15px}.viv-service-card h3{font-size:22px}}
