:root{--blue:#0B2A5B;--deep:#071A3A;--red:#D1121F;--white:#fff;--surface:#F3F5F9;--line:#DDE2EC;--ink:#0E1726;--muted:#5A6478;--green:#25D366;--font-head:'Manrope',sans-serif;--font-body:'Inter',sans-serif;--shell:1240px;--ease:cubic-bezier(.2,.75,.25,1)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;color:var(--ink);background:var(--white);font:400 16px/1.65 var(--font-body);-webkit-font-smoothing:antialiased}body,button,input,select,textarea{font-family:var(--font-body)}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img,svg{max-width:100%}img{display:block}button{color:inherit}::selection{background:var(--blue);color:white}:focus-visible{outline:3px solid #2675D8;outline-offset:3px}.shell{width:min(var(--shell),calc(100% - 64px));margin-inline:auto}.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:10px 16px;color:white;background:var(--blue);transform:translateY(-160%)}.skip-link:focus{transform:none}.eyebrow,.section-index,.service-kicker,.card-index,.project-tag,.footer-label{font-size:.72rem;line-height:1.3;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.eyebrow{color:var(--red)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-head);letter-spacing:-.045em;line-height:1.08}h1{font-size:clamp(2.6rem,6.6vw,6.2rem);font-weight:800}h2{font-size:clamp(2.1rem,4.4vw,4.4rem);font-weight:800}h3{font-size:clamp(1.25rem,2vw,1.75rem);font-weight:750}.section{padding:clamp(82px,10vw,144px) 0}.section-index{display:flex;justify-content:space-between;gap:24px;padding-bottom:20px;border-bottom:1px solid var(--line);color:var(--muted)}.section-index strong{color:var(--red)}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:54px;padding:0 22px;border:1px solid var(--blue);border-radius:4px;background:var(--blue);color:white;font-weight:650;transition:transform .25s var(--ease),background .25s,border-color .25s}.button:hover{transform:translateY(-2px);background:var(--deep);border-color:var(--deep)}.button-light{background:white;color:var(--blue);border-color:white}.button-light:hover{background:var(--surface);border-color:var(--surface)}
/* Header */
.header{position:fixed;inset:0 0 auto;z-index:50;height:84px;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(221,226,236,.8);backdrop-filter:blur(14px);transition:box-shadow .25s}.header.is-scrolled{box-shadow:0 8px 24px rgba(7,26,58,.08)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:48px;height:48px;object-fit:contain}.brand-text{display:grid;line-height:1.2}.brand-text strong{font:800 1.08rem var(--font-head);letter-spacing:-.04em;color:var(--blue)}.brand-text small{margin-top:4px;color:var(--muted);font-size:.58rem;letter-spacing:.075em}.nav{display:flex;align-items:center;gap:clamp(16px,2.6vw,36px)}.nav a{font-size:.82rem;font-weight:600;color:#344258;transition:color .2s}.nav a:hover{color:var(--red)}.header-cta{min-height:44px;padding:0 16px;font-size:.8rem}.menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:4px;background:white}.menu-toggle span{display:block;width:18px;height:2px;margin:5px auto;background:var(--blue);transition:transform .2s}
/* Hero */
.hero{position:relative;display:flex;align-items:center;min-height:min(860px,100svh);padding:145px 0 90px;overflow:hidden;background:var(--deep);color:white;isolation:isolate}.hero:before{position:absolute;z-index:-2;inset:0;content:"";background:linear-gradient(105deg,#071A3A 0%,#0B2A5B 58%,#0B2A5B 100%)}.hero-grid{position:absolute;z-index:-1;inset:0;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000,transparent 90%)}.hero-structure{position:absolute;z-index:-1;right:-3%;top:10%;width:min(62vw,840px);height:80%;object-fit:contain;opacity:.28;filter:brightness(1.5) saturate(.4)}.hero-canvas{position:absolute;z-index:0;inset:0;width:100%;height:100%;pointer-events:none}.hero-content{position:relative;z-index:2}.hero-kicker{display:flex;align-items:center;gap:12px;margin-bottom:30px;color:#D4E1F4;font-size:.75rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase}.hero-kicker:before{content:"";width:25px;height:2px;background:var(--red)}.hero h1{max-width:900px;margin-bottom:32px;color:white}.hero h1 em{color:#9DB8E2;font-style:normal}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;max-width:900px}.hero-bottom p{max-width:480px;margin:0;color:#D4DEED;font-size:clamp(1rem,1.5vw,1.2rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero-meta{position:absolute;z-index:2;right:32px;bottom:24px;color:#b5c6df;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase}
/* Firm statement */
.firm{background:white}.firm-grid{display:grid;grid-template-columns:.8fr 2fr;gap:10vw;align-items:start;padding-top:54px}.firm-label{color:var(--red)}.firm h2{max-width:840px;margin-bottom:26px;color:var(--blue)}.firm-copy{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:800px;color:var(--muted)}.firm-copy p{margin:0}.firm-note{padding:24px;border-left:3px solid var(--red);background:var(--surface);color:var(--blue);font-weight:650}
/* Divisions */
.services{background:var(--surface)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;padding:50px 0 40px}.section-heading h2{margin:0;color:var(--blue)}.section-heading p{max-width:450px;margin:0;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.service-card{grid-column:span 2;min-height:340px;padding:28px;border:1px solid var(--line);border-radius:5px;background:white;transition:transform .25s var(--ease),box-shadow .25s}.service-card:nth-child(4),.service-card:nth-child(5){grid-column:span 3;min-height:300px}.service-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(7,26,58,.09)}.service-visual{display:flex;align-items:center;justify-content:center;height:120px;margin:-5px 0 23px;background:var(--surface);border-radius:3px}.service-visual img{width:100%;height:100%;object-fit:contain;padding:12px}.service-kicker{color:var(--red)}.service-card h3{margin:12px 0;color:var(--blue)}.service-card p{margin:0;color:var(--muted);font-size:.92rem}.service-foot{margin-top:22px;color:var(--muted);font-size:.78rem}
/* Capacity */
.capacity{background:white}.capacity .section-heading{padding-bottom:36px}.bento{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:14px}.bento-card{position:relative;min-height:210px;padding:28px;border:1px solid var(--line);border-radius:5px;background:white;overflow:hidden}.bento-card.primary{grid-row:span 2;display:flex;flex-direction:column;justify-content:space-between;min-height:435px;color:white;background:var(--blue);border-color:var(--blue)}.bento-card.primary h3{max-width:400px;font-size:clamp(1.8rem,3vw,2.7rem)}.bento-card.primary p{max-width:420px;color:#D4DEED}.bento-card h3{margin:30px 0 10px;color:var(--blue)}.bento-card p{margin:0;color:var(--muted);font-size:.9rem}.bento-tag{color:var(--red)}.bento-card.primary .bento-tag{color:#ff9299}.capability-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.capability-list span{padding:7px 10px;border:1px solid rgba(255,255,255,.24);border-radius:2px;font-size:.68rem;letter-spacing:.07em}.bento-num{font:800 clamp(2rem,3vw,3.2rem) var(--font-head);color:var(--blue);letter-spacing:-.06em}
/* Process */
.process{background:var(--surface)}.process-row{display:grid;grid-template-columns:repeat(5,1fr);margin-top:55px;border-top:1px solid #BAC5D6}.process-step{position:relative;padding:30px 22px 0 0}.process-step:before{position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--red);content:""}.process-step strong{font-size:.7rem;letter-spacing:.1em;color:var(--muted)}.process-step h3{margin:26px 0 12px;color:var(--blue)}.process-step p{margin:0;color:var(--muted);font-size:.88rem}
/* Portfolio placeholders */
.portfolio{background:white}.filters{display:flex;flex-wrap:wrap;gap:8px}.filter-button{padding:9px 13px;border:1px solid var(--line);border-radius:3px;background:white;color:var(--muted);font-size:.75rem;font-weight:650;cursor:pointer}.filter-button:hover,.filter-button.is-active{border-color:var(--blue);background:var(--blue);color:white}.project-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.project-card{min-height:290px;padding:0;text-align:left;border:1px solid var(--line);border-radius:4px;background:white;overflow:hidden}.project-placeholder{display:flex;min-height:190px;align-items:center;justify-content:center;padding:24px;text-align:center;background:linear-gradient(135deg,#F3F5F9,#e8edf5);color:var(--blue)}.project-placeholder span{display:grid;gap:10px;max-width:220px}.placeholder-mark{font:800 2rem var(--font-head);letter-spacing:-.08em;color:#A7B6CC}.project-info{padding:18px}.project-tag{color:var(--red)}.project-info h3{margin:10px 0 0;color:var(--blue);font-size:1.15rem}.project-note{margin:24px 0 0;padding:16px 18px;border-left:3px solid var(--red);background:var(--surface);color:var(--muted);font-size:.86rem}
.visual-references{margin:0 0 38px}.visual-references-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin:0 0 18px}.visual-references-heading h3{margin:9px 0 0;color:var(--blue)}.visual-references-heading p{max-width:440px;margin:0;color:var(--muted);font-size:.86rem}.reference-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.reference-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:white}.reference-visual{height:190px;background:var(--surface)}.reference-visual img{width:100%;height:100%;object-fit:cover}.reference-visual-diagram{background:var(--deep)}.reference-info{padding:16px}.reference-info h3{margin:8px 0 0;color:var(--blue);font-size:1.05rem}
@media(max-width:900px){.reference-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.visual-references-heading{display:block}.visual-references-heading p{margin-top:12px}.reference-grid{gap:9px}.reference-visual{height:145px}.reference-info{padding:12px}.reference-info h3{font-size:.94rem}}
/* Video panel */
.film{padding:0 0 clamp(84px,10vw,140px);background:white}.film-frame{display:grid;grid-template-columns:1fr 1fr;min-height:330px;border-radius:5px;overflow:hidden;background:var(--deep);color:white}.film-placeholder{display:flex;align-items:center;justify-content:center;min-height:300px;border-right:1px solid rgba(255,255,255,.2);background:linear-gradient(145deg,#0B2A5B,#071A3A)}.film-placeholder span{display:grid;gap:10px;text-align:center;color:#d8e4f5}.film-placeholder b{font:800 1.8rem var(--font-head)}.film-copy{align-self:center;padding:clamp(28px,5vw,70px)}.film-copy h2{margin:0 0 14px;font-size:clamp(1.7rem,3vw,2.6rem)}.film-copy p{margin:0;color:#d4deed}
/* Contact */
.contact{background:var(--blue);color:white}.contact .section-index{border-color:rgba(255,255,255,.28);color:#d4deed}.contact .section-index strong{color:#ff9299}.contact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:9vw;padding-top:52px}.contact h2{margin:0 0 24px}.contact-intro{max-width:420px;color:#d4deed}.contact-phone{margin-top:34px;color:white}.contact-phone span{display:block;margin-bottom:8px;color:#d4deed;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:grid;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#d4deed}.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid rgba(255,255,255,.34);border-radius:3px;background:#fff;color:var(--ink);font-size:.95rem}.field textarea{min-height:100px;resize:vertical}.contact-form .button{grid-column:1/-1;justify-self:start;background:var(--red);border-color:var(--red)}.contact-form .button:hover{background:#ad0f1a}.form-hint{grid-column:1/-1;margin:0;color:#d4deed;font-size:.78rem}.form-feedback{grid-column:1/-1;min-height:1.5em;margin:0;color:#fff;font-size:.83rem}
/* Footer */
.footer{padding:48px 0 32px;background:#06152F;color:white}.footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.2)}.footer .brand-text strong{color:white}.footer .brand-text small{color:#c5d2e5}.footer-logo{width:48px;height:48px;object-fit:contain;filter:brightness(0) invert(1)}.footer-nav{display:flex;flex-wrap:wrap;gap:22px;color:#d4deed;font-size:.82rem}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:20px;color:#b4c3d8;font-size:.75rem}.footer-wa{color:white}
/* WhatsApp */
.whatsapp-float{position:fixed;z-index:999;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:11px;min-height:58px;padding:0 20px;border:0;border-radius:999px;background:var(--green);color:#073b1b;font-size:.84rem;font-weight:750;box-shadow:0 10px 28px rgba(4,44,22,.24);transition:transform .2s,box-shadow .2s;animation:wa-pulse 4s ease-out infinite}.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(4,44,22,.32)}.whatsapp-float svg{width:25px;height:25px;fill:currentColor;flex:none}@keyframes wa-pulse{0%,82%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.3),0 10px 28px rgba(4,44,22,.24)}90%{box-shadow:0 0 0 9px rgba(37,211,102,0),0 10px 28px rgba(4,44,22,.24)}}
/* Dialog and reveal-safe enhancement */
.lightbox{width:min(900px,calc(100% - 32px));padding:24px;border:0;border-radius:5px;background:white;color:var(--ink)}.lightbox::backdrop{background:rgba(7,26,58,.8)}.lightbox-close{float:right;padding:8px 12px;border:1px solid var(--line);background:white;cursor:pointer}.lightbox img{clear:both;width:100%;height:min(70vh,650px);object-fit:contain}.js-reveal{opacity:1}.js-ready .reveal{animation:rise-in .7s var(--ease) both}@keyframes rise-in{from{opacity:.01;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:900px){.shell{width:min(var(--shell),calc(100% - 40px))}.header-inner{gap:16px}.nav{gap:14px}.nav a{font-size:.75rem}.header-cta{padding:0 12px;font-size:.72rem}.hero{min-height:760px}.hero-structure{right:-18%;width:82vw;opacity:.2}.firm-grid{grid-template-columns:1fr;gap:26px}.service-card,.service-card:nth-child(4),.service-card:nth-child(5){grid-column:span 3}.bento{grid-template-columns:1fr 1fr}.bento-card.primary{grid-column:1/-1;grid-row:auto;min-height:300px}.project-grid{grid-template-columns:repeat(2,1fr)}.contact-grid{gap:5vw}}
@media(max-width:680px){html{scroll-padding-top:74px}.shell{width:calc(100% - 36px)}.header{height:72px}.brand img{width:42px;height:42px}.brand-text strong{font-size:.96rem}.brand-text small{font-size:.51rem}.header-cta{display:none}.menu-toggle{display:block;position:relative;z-index:55}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.nav{position:fixed;z-index:54;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;padding:84px 10vw 40px;background:white;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,visibility .2s,transform .2s}.nav.is-open{opacity:1;visibility:visible;transform:none}.nav a{font:750 clamp(1.8rem,8vw,3rem) var(--font-head);color:var(--blue)}.hero{min-height:760px;min-height:100svh;padding:118px 0 82px}.hero h1{font-size:clamp(2.65rem,13vw,5rem)}.hero-bottom{display:block}.hero-bottom p{max-width:390px}.hero-structure{top:32%;right:-40%;width:125vw;height:60%;opacity:.18}.hero-meta{right:18px;bottom:14px;font-size:.56rem}.section{padding:78px 0}.section-index{font-size:.62rem;gap:12px}.section-index span:last-child{text-align:right}.section-heading{display:block;padding:38px 0 28px}.section-heading p{margin-top:18px}.firm-copy{grid-template-columns:1fr;gap:15px}.service-grid{display:block}.service-card,.service-card:nth-child(4),.service-card:nth-child(5){min-height:0;margin-bottom:12px;padding:20px}.service-visual{height:130px;margin:0 0 18px}.bento{grid-template-columns:1fr}.bento-card,.bento-card.primary{min-height:225px;padding:22px}.bento-card.primary{min-height:300px}.process-row{grid-template-columns:1fr;margin-top:38px;border-top:0;border-left:1px solid #BAC5D6}.process-step{padding:4px 0 28px 25px}.process-step:before{top:4px;left:-5px}.process-step h3{margin:12px 0 8px}.portfolio .section-heading{padding-bottom:24px}.filters{gap:6px}.filter-button{padding:8px 10px;font-size:.69rem}.project-grid{grid-template-columns:1fr 1fr;gap:9px}.project-card{min-height:235px}.project-placeholder{min-height:145px;padding:12px}.project-info{padding:13px}.project-info h3{font-size:1rem}.film{padding-bottom:78px}.film-frame{grid-template-columns:1fr}.film-placeholder{min-height:190px;border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.film-copy{padding:28px}.contact-grid{grid-template-columns:1fr;gap:34px;padding-top:38px}.contact-form{grid-template-columns:1fr}.field.full,.contact-form .button,.form-hint,.form-feedback{grid-column:1}.footer-top,.footer-bottom{display:grid}.footer-nav{gap:14px}.whatsapp-float{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:60px;height:60px;min-height:60px;justify-content:center;padding:0}.whatsapp-float span{display:none}.whatsapp-float svg{width:29px;height:29px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.whatsapp-float{animation:none}.js-ready .reveal{animation:none}}
