/* DOVIX — silver detailing, quiet surfaces, restrained motion. */
:root{--silver:#cbd2dc;--line:rgba(205,216,230,.12);--muted:#98a3b0;--blue:#3899ec}
body{background:#080e16;color:#eef0f3}
.topbar{background:linear-gradient(110deg,#080e15,#0c1621);border-color:rgba(215,225,238,.13)}
.brand{gap:5px}.brand img{width:clamp(46px,3.35vw,62px);height:clamp(46px,3.35vw,62px);filter:drop-shadow(0 3px 5px #0006);min-width:0;min-height:0}.brand strong{font-size:clamp(23px,1.72vw,32px);font-weight:650;letter-spacing:.16em;color:#e9edf2;line-height:1}.brand small{font-size:clamp(9px,.64vw,12px);font-weight:400;letter-spacing:.11em;text-transform:none;color:#a7b0bc;margin-top:8px}
.desktop-nav{color:#bec5ce}.desktop-nav a{font-weight:400}.desktop-nav a:first-child:after{height:1px;background:#c7d2df;bottom:16px}.desktop-nav a:hover{color:white}.lang{color:#59636f}.lang button{font-size:12px}.lang button.active{font-weight:500;color:#e5eaf1}.nav-actions .btn.primary{background:transparent;border:1px solid #7e8b9b66;box-shadow:none;color:#e0e5ec}.nav-actions .btn.primary:hover{background:#ffffff09;border-color:#adb7c4}
.hero{background:radial-gradient(ellipse at 48% 60%,#142333 0,transparent 54%),linear-gradient(110deg,#080e16,#08131e 65%,#0c1b2a)}
.hero .eyebrow{color:#97b4cc;letter-spacing:.22em;font-size:clamp(10px,.66vw,12px);font-weight:500;margin-bottom:1.45vw}.hero h1{font-weight:650;letter-spacing:-.05em;line-height:1.09}.hero h1 .accent{background-image:linear-gradient(170deg,#8dc8f4,#2787d4);font-weight:650}.hero h1 .title-end{font-size:2.82vw;font-weight:600;letter-spacing:-.045em;margin-top:.15vw}.hero .lead{font-size:1.04vw;line-height:1.65;color:#b5bfc9;max-width:34.2vw;margin-top:1.3vw}.hero .actions{margin-top:1.8vw;gap:1.2vw}.btn{border-radius:8px;font-size:.94vw;min-height:3.2vw;font-weight:500;transition:background .2s,border-color .2s,transform .2s}.btn.primary{background:linear-gradient(135deg,#258ce4,#1269b8);border-color:#75b7ed66;box-shadow:inset 0 1px 0 #cce7ff26,0 5px 18px #0002}.btn.primary:hover{background:linear-gradient(135deg,#3298ed,#2279c8);box-shadow:inset 0 1px 0 #fff3}.btn.ghost{background:#0d182366;border-color:#aab8c04d;color:#d7dde5}.btn.ghost:hover{border-color:#aab8c099;background:#ffffff06;box-shadow:none}.btn .line-icon{width:21px;height:21px;stroke-width:1.5}.hero .actions .primary{min-width:15.8vw}.hero .actions .ghost{min-width:13.8vw}
.benefits{display:flex;gap:1.5vw;max-width:none;margin-top:1.85vw}.benefits>div{gap:.48vw}.benefits small{display:none}.benefits .line-icon{color:#9bafc0;stroke-width:1.4;width:1.05vw;height:1.2vw}.benefits b{font-size:.62vw;color:#a8b3bf;font-weight:400}
.service-strip{background:#0b131d;border-block:1px solid #cdd7e518}.service-strip>.shell{min-height:5.1vw}.service-strip a{padding:0 1.6vw;gap:.9vw;border-color:#cdd7e512}.service-strip .line-icon{color:#a6b6c6;width:1.6vw;height:1.6vw;stroke-width:1.35}.service-strip b{font-size:.73vw;color:#cbd3dc;font-weight:400}.service-strip small{display:none}.service-strip a:hover .line-icon{color:#65b0eb}.service-strip a:hover b{color:#fff}
.proof-strip{background:#080f18;padding:0}.proof-strip>.shell{width:var(--shell);border:0;border-radius:0;padding:1.7vw 0;min-height:7vw;grid-template-columns:1fr 1fr 1.2fr 1fr 1.1fr}.proof-strip>.shell>div{padding:0 2.4vw;border-color:#cdd7e514;gap:0}.proof-strip .line-icon{display:none}.proof-strip b{font-size:1.25vw;font-weight:500;letter-spacing:-.035em;color:#dce3eb}.proof-strip small{font-size:.7vw;color:#788695;margin-top:4px}.proof-strip p{font-size:.85vw;color:#899aa9;padding-left:2.5vw;line-height:1.6}.proof-strip p:before{display:none}
.section{padding:100px 0;border-color:#d3dce513}.section.alt{background:#0b121c}.section .eyebrow{color:#93a5b6;font-size:10px;font-weight:500;letter-spacing:.23em}.section h2{font-family:Inter,sans-serif;font-weight:500;letter-spacing:-.045em;font-size:clamp(30px,2.65vw,45px);line-height:1.12}.heading{margin-bottom:40px;gap:90px}.heading>p{font-size:14px;line-height:1.8;color:#909dac;max-width:470px}.accordion-grid{gap:14px 22px}.accordion{background:linear-gradient(120deg,#101923,#0d151f);border:1px solid #cdd7e518;border-radius:8px}.accordion button{padding:23px 21px;grid-template-columns:28px 1fr 20px;gap:15px}.accordion button strong{font-weight:500;color:#d7dee6;font-size:14px}.accordion button small{color:#778594;font-size:11px;margin-top:6px}.accordion .icon{background:transparent;border:0;border-radius:0;color:#a6b7c7;font-size:19px;width:25px;height:25px}.accordion button i{color:#8398aa;font-style:normal;font-size:17px}.accordion:hover{border-color:#b1c0d03b}.accordion.open{border-color:#b1c0d04f}.details{border-color:#cdd7e518;padding:4px 22px 22px}.details b{font-weight:500}.details p{color:#8b99a7;line-height:1.8}.segments{gap:12px}.segments>div{background:transparent;border-color:#cdd7e51a;border-radius:6px;font-weight:500;min-height:110px;color:#cbd4de}.segments span{color:#7d8b99}.section details{background:#ffffff02;border-color:#cdd7e51a;border-radius:6px}.timeline:before{background:linear-gradient(90deg,transparent,#7c8d9c55 12%,#7c8d9c55 88%,transparent)}.timeline span{border-color:#9bafc055;box-shadow:none;background:#0e1721;color:#c5d0dd;font-size:13px}.timeline b{font-weight:500;color:#d3dbe5}.timeline p{color:#8493a3;line-height:1.7}.about{background:#0b131d}.about-grid>div:last-child>p{font-size:15px;color:#a4afbb;line-height:1.9}.pills span{color:#9faebe;border-color:#cdd7e51c;border-radius:5px}.cta{background:linear-gradient(120deg,#111c28,#0b121b)}.btn.whatsapp{background:#1b6fac;border-color:#9bbcd34f}.cta p:not(.eyebrow){color:#909fad;font-size:14px;line-height:1.8}footer{background:#080e15;border-color:#cdd7e51a}.footer-grid{padding:52px 0}.footer-grid .brand>span{color:inherit}.footer-bottom{border-color:#cdd7e512}
/* Both layers share the photograph's coordinate system at every breakpoint. */
.device-motion{position:absolute;left:0;top:-4.9vw;width:100vw;height:50vw;pointer-events:none;overflow:visible}.laptop-reflection{animation:glass-pass 12s ease-in-out infinite}.phone-reflection{animation:phone-pass 12s ease-in-out infinite}.chart-signal{opacity:0;animation:chart-breathe 8s ease-in-out infinite}.phone-signal{transform-box:fill-box;transform-origin:center;opacity:0;animation:phone-pulse 8s ease-out infinite}
@keyframes glass-pass{0%,12%{transform:translateX(0);opacity:0}20%{opacity:1}50%,100%{transform:translateX(1050px);opacity:0}}
@keyframes phone-pass{0%,42%{transform:translateX(0);opacity:0}48%{opacity:1}72%,100%{transform:translateX(400px);opacity:0}}
@keyframes chart-breathe{0%,30%,70%,100%{opacity:0}45%,50%{opacity:.34}}
@keyframes phone-pulse{0%,55%,85%,100%{opacity:0;transform:scale(1)}60%{opacity:.45;transform:scale(1)}80%{opacity:0;transform:scale(1.8)}}
.motion-toggle{position:absolute;right:4.85%;bottom:12px;display:flex;align-items:center;gap:7px;background:#0a1521b3;border:1px solid #aebfd326;color:#a1b1bf;border-radius:5px;padding:6px 9px;font-size:9px;cursor:pointer;z-index:2;backdrop-filter:blur(8px)}.motion-toggle svg{width:11px;height:11px;stroke:currentColor;stroke-width:1.4;fill:none}.motion-toggle:hover{color:#e2eaf3;border-color:#b6c9db66}.motion-paused .device-motion *{animation-play-state:paused!important}.motion-paused .motion-toggle svg{opacity:.55}
@media(min-width:901px) and (max-width:1200px){.device-motion{width:110vw;height:55vw;left:-10vw;top:-5.4vw}.hero .lead{font-size:1.2vw;max-width:39vw}.benefits{gap:1.15vw}.benefits b{font-size:.73vw}.benefits .line-icon{width:1.3vw;height:1.5vw}.hero h1 .title-end{font-size:2.95vw}.btn{font-size:1.08vw;min-height:3.7vw}}
@media(max-width:900px){.brand{gap:4px}.brand img{width:47px;height:47px}.brand strong{font-size:25px}.brand small{font-size:9px;margin-top:7px}.hero .eyebrow{font-size:9px;margin-bottom:25px}.hero h1 .title-end{font-size:.8em;line-height:1.16;margin-top:4px}.hero .lead{font-size:15px;max-width:580px;line-height:1.8;margin-top:23px}.hero .actions{margin-top:27px;gap:12px}.btn{min-height:52px;font-size:14px;padding:0 19px}.benefits{display:grid;grid-template-columns:repeat(4,1fr);margin-top:26px;gap:13px}.benefits>div{gap:7px}.benefits .line-icon{width:17px;height:19px}.benefits b{font-size:10px;white-space:normal}.service-strip>.shell{gap:20px 10px;min-height:0;padding:25px 0}.service-strip a{padding:0;gap:10px;min-height:32px}.service-strip a:first-child{padding:0}.service-strip .line-icon{width:22px;height:22px}.service-strip b{font-size:12px}.proof-strip>.shell{grid-template-columns:repeat(4,1fr);gap:20px;padding:28px 0}.proof-strip>.shell>div{padding:0}.proof-strip b{font-size:21px}.proof-strip small{font-size:11px;margin-top:5px}.proof-strip p{display:none}.section{padding:70px 0}.heading{gap:20px;margin-bottom:30px}.device-motion{width:183vw;height:91.5vw;left:-83vw;top:-8.96vw}.motion-toggle{bottom:9px;right:20px;font-size:9px}.accordion button{padding:20px 17px}.about-grid>div:last-child>p{font-size:14px}.footer-grid .brand strong{font-size:25px}}
@media(max-width:520px){.hero{padding-top:35px}.hero h1{font-size:37px}.hero h1 .title-end{font-size:29px}.hero .lead{font-size:14px;margin-top:23px}.hero .actions{gap:10px}.benefits{grid-template-columns:1fr 1fr;gap:14px 20px;margin-top:25px}.benefits b{font-size:10px}.reference-art{margin-top:30px}.service-strip>.shell{grid-template-columns:repeat(2,1fr);gap:21px 16px}.service-strip a:last-child{grid-column:auto}.service-strip b{font-size:11px}.proof-strip>.shell{grid-template-columns:1fr 1fr;gap:25px;padding:30px 0}.proof-strip>.shell>div{padding:0}.proof-strip b{font-size:24px}.proof-strip small{font-size:11px}.motion-toggle span{font-size:8px}.motion-toggle{right:16px;bottom:8px}.section h2{font-size:31px}.heading>p{font-size:13px}.accordion button strong{font-size:13px}.accordion button small{font-size:10px}.brand strong{font-size:24px}.brand small{font-size:8px}.brand img{width:45px;height:45px}}
@media(prefers-reduced-motion:reduce){.device-motion *{animation:none!important}.motion-toggle{display:none}}

/* Quiet, stationary wordmark and shared device-photo coordinate system. */
.brand strong,.footer-grid .brand strong{font-family:Inter,system-ui,sans-serif;font-weight:600;font-size:clamp(27px,1.95vw,35px);letter-spacing:.09em;line-height:1.04;display:flex;align-items:baseline;color:#e2e8ef}
.brand-dot{display:inline-block;width:.20em;height:.20em;border-radius:50%;background:#319deb;margin-left:.06em;flex-shrink:0}
.brand small{font-size:clamp(10px,.75vw,13px);letter-spacing:.06em;margin-top:7px;color:#b6c0cc}
.brand small .brand-ltda{font:inherit;color:#319deb}
.hero{height:36.7vw}
.reference-art{background:none;clip-path:none;mask-image:none;overflow:visible}
.reference-art::before{content:'';position:absolute;inset:0;background:url('/assets/dovix-reference.png') center -3.5vw / 100vw auto no-repeat;mask-image:linear-gradient(to right,transparent 45%,#000 49%),linear-gradient(to bottom,transparent 85%,#000 94%);mask-composite:add;clip-path:inset(1.5vw 0 0)}
.device-motion{top:-3.5vw;width:100vw;height:50vw;left:0;overflow:visible}
.device-photo{image-rendering:auto}
.laptop-reflection,.phone-reflection{animation-duration:16s}
.motion-toggle{bottom:10px;font-size:9px;background:#09131ccc}
@media(min-width:901px) and (max-width:1200px){.hero{height:36.7vw}.hero-copy{width:44%}.hero .lead{max-width:36vw;font-size:1.12vw}.hero-grid{padding-top:2vw}.device-motion{width:100vw;height:50vw;left:0;top:-3.5vw}.benefits{gap:1vw}.benefits b{font-size:.65vw}}
@media(max-width:900px){.hero{height:auto}.brand strong,.footer-grid .brand strong{font-size:28px}.brand small{font-size:10.5px}.reference-art{height:58vw;margin-top:24px;overflow:hidden}.reference-art::before{background-size:148vw auto;background-position:right -5vw;clip-path:inset(2vw 0 0);mask-image:linear-gradient(to right,transparent 0%,#000 16%),linear-gradient(to bottom,transparent 85%,#000 94%)}.device-motion{width:148vw;height:74vw;left:-48vw;top:-5vw}.motion-toggle{right:16px;bottom:10px}}
@media(max-width:380px){.nav-wrap{gap:10px}.nav-actions{gap:5px}.lang{gap:3px}.brand strong,.footer-grid .brand strong{font-size:25px}.brand small{font-size:9.5px}}
@media(max-width:900px){.reference-art{height:54.3vw}.reference-art::before{clip-path:inset(2.4vw 0 0);mask-image:linear-gradient(to right,transparent 20%,#000 30%),linear-gradient(to bottom,transparent 85%,#000 94%)}}
@media(max-width:900px){.hero{padding-bottom:32px}.motion-toggle{bottom:5px;background:transparent;border-color:#aebfd31a}}


/* Uniform typographic wordmark: native X, fixed blue, compact spacing. */
.brand{gap:2px}
.brand strong,.footer-grid .brand strong{font-size:clamp(29px,2.1vw,38px);letter-spacing:.045em;display:block;line-height:1.04}
.brand strong .brand-x-solid{font:inherit;letter-spacing:inherit;color:#319deb}
.brand-dot{width:.17em;height:.17em;margin-left:.06em;vertical-align:baseline}
@media(max-width:900px){.brand{gap:2px}.brand strong,.footer-grid .brand strong{font-size:30px}}
@media(max-width:380px){.brand strong,.footer-grid .brand strong{font-size:27px}}

/* Align the company signature more closely with the wordmark. */
.brand small{margin-top:4px;letter-spacing:.12em}
/* Product catalogue: actual products instead of unverified sales metrics. */
.products{background:#0a121c}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.product-card{display:flex;flex-direction:column;padding:34px;border:1px solid #cdd7e525;border-radius:12px;background:linear-gradient(135deg,#121e2a,#0c151f)}.product-top{display:flex;align-items:center;gap:14px;margin-bottom:26px}.product-symbol{display:grid;place-items:center;width:46px;height:46px;border:1px solid #7cb2db40;border-radius:11px;color:#98bddb;font-size:16px;letter-spacing:.02em}.map-symbol{font-size:27px}.product-category{font-size:10px;color:#9aacbc;letter-spacing:.16em}.product-card h3{font-size:28px;font-weight:550;letter-spacing:-.03em;margin:0 0 16px;color:#edf1f6}.product-card>p{font-size:14px;line-height:1.85;color:#a7b4c1;margin:0 0 22px}.product-card ul{padding:0;margin:0 0 28px;list-style:none;color:#c1ccd7;font-size:12px;line-height:1.8}.product-card li{padding:6px 0}.product-card li:before{content:'—';color:#559bcc;margin-right:10px}.product-actions{margin-top:auto;display:flex;align-items:center;flex-wrap:wrap;gap:18px}.product-actions .btn{font-size:13px;min-height:46px;padding:0 18px}.product-link{font-size:12px;color:#a9bed0}.product-link:hover{color:#fff}.product-card .product-install{font-size:11px;color:#8092a3;margin:20px 0 0;line-height:1.7}.demo-caption{position:absolute;bottom:9px;left:49%;margin:0;color:#a5b1bd;font-size:9px;background:#09131cb3;border-radius:4px;padding:5px 8px;pointer-events:none}
@media(max-width:900px){.demo-caption{left:16px;bottom:8px;font-size:8px;padding:3px 0;background:none}.product-card{padding:25px}.product-grid{gap:18px}.product-card h3{font-size:25px}}
@media(max-width:650px){.product-grid{grid-template-columns:1fr}.product-card{padding:26px 22px}.product-category{font-size:9px}.product-card>p{font-size:13px}.demo-caption{max-width:52%;font-size:7px}.product-actions{gap:16px}}
/* Readable, even text blocks and a self-contained WhatsApp glyph. */
.hero .lead{max-width:36.5vw;line-height:1.7;text-align:justify;text-align-last:left;hyphens:auto;text-wrap:pretty}
.whatsapp-icon{display:block;width:23px;height:23px;min-width:23px;flex:0 0 23px;fill:currentColor;stroke:none;align-self:center}
.product-card>p,.about-grid>div:last-child>p{ text-wrap:pretty }
.segments b{font:inherit}
@media(max-width:900px){.hero .lead{max-width:590px;font-size:15px;line-height:1.75}}
@media(max-width:520px){.hero .lead{max-width:100%;font-size:14px;line-height:1.75}}
/* Keep contact typography compact and prevent inherited SVG sizing. */
.hero .lead{text-align:left;word-spacing:normal;letter-spacing:normal;hyphens:none;text-wrap:pretty}
.hero .actions .btn{gap:10px;white-space:nowrap}
.hero .actions .whatsapp-icon{width:19px;height:19px;min-width:19px;max-width:19px;min-height:19px;max-height:19px;flex:0 0 19px;fill:currentColor;stroke:none}
/* Contact dialog shares the site's restrained silver and blue palette. */
#contact-dialog{width:min(660px,calc(100% - 28px));max-height:90dvh;box-sizing:border-box;margin:auto;padding:36px;border:1px solid #687d9055;border-radius:16px;background:#0d1721;color:#e6edf5;box-shadow:0 30px 100px #0009}#contact-dialog::backdrop{background:#020810cc;backdrop-filter:blur(6px)}#contact-dialog h2{font-size:28px;letter-spacing:-.035em;margin:12px 30px 12px 0}#contact-dialog .eyebrow{font-size:10px;letter-spacing:.15em;color:#80bce6}.contact-close{position:absolute;right:18px;top:12px;background:transparent;border:0;color:#bfccd8;font-size:30px;cursor:pointer;width:36px;height:36px}.contact-intro,#contact-success p{color:#b3c0cd;font-size:14px;line-height:1.7}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-wide{grid-column:1/-1}#contact-form label{display:block;font-size:12px;color:#cad5df}#contact-form input:not([type=checkbox]),#contact-form textarea{display:block;box-sizing:border-box;width:100%;margin-top:8px;padding:11px 12px;color:#edf3fa;background:#08111a;border:1px solid #53677888;border-radius:7px;font:inherit;font-size:16px}#contact-form textarea{resize:vertical}#contact-form input:focus-visible,#contact-form textarea:focus-visible{outline:2px solid #329dec;outline-offset:2px}#contact-form fieldset{border:0;padding:0;margin:23px 0}#contact-form legend{font-size:12px;margin-bottom:12px}.solution-options{display:flex;gap:8px;flex-wrap:wrap}#contact-form .solution-options label{display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid #405366;border-radius:7px;cursor:pointer;font-size:11px}.solution-options label:has(:checked){background:#133652;border-color:#329dec}.solution-options input{accent-color:#329dec}.contact-note{color:#8fa3b5;font-size:11px;line-height:1.7;margin:16px 0}.contact-trap{position:absolute!important;left:-10000px!important}#contact-error{color:#ffb4ad;font-size:13px;line-height:1.5}#contact-dialog .btn{font-size:14px;min-height:46px;padding:0 20px}#contact-dialog .btn:disabled{opacity:.6;cursor:wait}.contact-protocol{padding:14px;background:#09111a;border:1px solid #31475a;border-radius:7px;overflow-wrap:anywhere}body:has(#contact-dialog[open]){overflow:hidden}@media(max-width:520px){#contact-dialog{padding:26px 20px}.contact-fields{grid-template-columns:1fr}#contact-dialog h2{font-size:25px}}
/* One consistent headline size with natural, justified line wrapping. */
.hero h1{font-size:3.3vw;line-height:1.12;max-width:42vw;text-align:justify;text-align-last:left;text-wrap:pretty;letter-spacing:-.045em}
.hero h1>span,.hero h1 .accent,.hero h1 .title-end{display:inline;white-space:normal;font-size:inherit;font-weight:650;line-height:inherit;letter-spacing:inherit;margin:0}
@media(max-width:900px){.hero h1{font-size:clamp(32px,5.7vw,51px);max-width:610px}}
@media(max-width:520px){.hero h1{font-size:32px;max-width:100%}}
/* Two intentional lines, with normal spaces and identical type size. */
.hero h1{font-size:2.8vw;text-align:left;text-align-last:left;word-spacing:normal;max-width:44vw;line-height:1.15}
.hero h1 .headline-row{display:block;white-space:nowrap;font-size:inherit;max-width:none}
@media(max-width:900px){.hero h1{font-size:clamp(23px,4.5vw,44px);max-width:100%}}
@media(max-width:520px){.hero h1{font-size:clamp(21px,5.8vw,30px)}}
/* Give the introduction breathing room and a neatly aligned text column. */
.hero .lead{margin-top:clamp(26px,2.2vw,42px);max-width:38vw;text-align:justify;text-align-last:left;text-justify:inter-word;word-spacing:normal;line-height:1.8;text-wrap:pretty}
@media(max-width:900px){.hero .lead{max-width:590px;margin-top:28px}}
@media(max-width:520px){.hero .lead{max-width:100%;margin-top:25px;line-height:1.8}}
/* Consistent justification for descriptive copy across the landing page. */
main p:not(.eyebrow):not(.demo-caption),main .details p,#contact-dialog .contact-intro,#contact-dialog .contact-note,#contact-success>p:not(.eyebrow):not(.contact-protocol){text-align:justify;text-align-last:left;text-justify:inter-word;word-spacing:normal;text-wrap:pretty}
/* DOViX wordmark: lowercase i and blue iX plus punctuation. */
.brand strong .brand-x-solid{color:#319deb;text-transform:none}
.brand .brand-dot{background:#319deb}
/* More breathing room between the introductory copy and contact actions. */
.hero .actions{margin-top:clamp(36px,2.8vw,52px)}
@media(max-width:520px){.hero .actions{margin-top:34px}}
