:root{--white:#fff;--mist:#f2f5f9;--line:#dde3ec;--navy:#1b3360;--ink:#14213d;--muted:#5d6880;--red:#de1c4b}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font:400 17px/1.65 Figtree,system-ui,sans-serif;color:var(--ink);background:var(--white);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;font-weight:500;line-height:1.1;color:var(--navy)}
h1{font-size:clamp(40px,5vw,66px);letter-spacing:-.01em}
h1 em{font-style:italic;color:var(--navy)}
h2{font-size:clamp(30px,3.3vw,44px)}
h3{font-size:23px;display:flex;align-items:center;gap:12px}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--red)}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:30px;padding:12px clamp(20px,4vw,56px);background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand svg{width:38px;height:24px;fill:none;stroke:var(--red);stroke-width:3.4;stroke-linecap:round}
.brand span{font-family:"Playfair Display",serif;font-weight:600;font-size:19px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);line-height:1}
.brand small{display:block;font-family:Figtree,sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.2em;color:var(--muted);margin-top:4px}
.top nav{margin-left:auto;display:flex;gap:28px;font-size:15px}
.top nav a{text-decoration:none;color:var(--muted)}
.top nav a:hover{color:var(--navy)}
.call{display:flex;align-items:center;gap:8px;background:var(--red);color:#fff;text-decoration:none;padding:10px 18px;border-radius:999px;font-weight:600;font-size:15px}
.call svg{width:16px;height:16px;fill:currentColor}
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--mist),#fff 85%)}
.currents{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.c{fill:none;stroke:#c9d3e2;stroke-width:1.2;stroke-dasharray:6 10;animation:drift 18s linear infinite}
.c2{animation-duration:24s;stroke:#d5dde9}.c3{animation-duration:30s}
@keyframes drift{to{stroke-dashoffset:-320}}
.hero-inner{position:relative;max-width:900px;margin:0 auto;padding:clamp(70px,9vw,130px) 24px clamp(70px,8vw,110px);text-align:center}
.flag{width:84px;height:54px;margin:0 auto 28px;display:block}
.flag .s{fill:none;stroke:var(--red);stroke-width:7;stroke-linecap:round;animation:wave 3.6s ease-in-out infinite}
.flag .s2{animation-delay:.25s}.flag .s3{animation-delay:.5s}
@keyframes wave{50%{transform:translateY(2px) scaleY(.96)}}
.lede{font-size:19px;color:var(--muted);max-width:36em;margin:24px auto 34px}
.ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;padding:15px 26px;border-radius:999px;font:inherit;font-weight:600;border:1px solid var(--navy);cursor:pointer;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-1px);background:var(--ink)}
.btn.ghost{background:transparent;color:var(--navy)}
.btn.ghost:hover{background:var(--navy);color:#fff}
.proof{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 28px;margin-top:40px;font-size:14px;color:var(--muted)}
.proof b{color:var(--navy)}
.services,.work{max-width:1240px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px) 0}
.sec-head{margin-bottom:44px}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.col{border-top:2px solid var(--navy);padding-top:24px}
.col p{color:var(--muted);margin:12px 0 18px}
.col ul{list-style:none}
.col li{padding:9px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.log{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.log figure{background:var(--mist);border-radius:14px;overflow:hidden}
.log img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.log figcaption{padding:12px 14px;font-size:14px;color:var(--muted)}
.about{max-width:1240px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px) 0;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,6vw,90px);align-items:center}
.portrait{border-radius:200px 200px 18px 18px;overflow:hidden;background:var(--mist)}
.portrait img{width:100%;height:auto}
.role{font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin:10px 0 20px}
.about-copy>p{color:var(--muted);max-width:34em}
.quote{font-family:"Playfair Display",serif;font-style:italic;font-size:24px;line-height:1.4;color:var(--navy)!important;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.quote span{display:block;font-family:Figtree,sans-serif;font-style:normal;font-size:13px;color:var(--muted);margin-top:8px}
.area{max-width:1240px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px) 0;text-align:center}
.area ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px}
.area li{padding:10px 20px;border:1px solid var(--line);border-radius:999px;font-family:"Playfair Display",serif;font-size:19px;color:var(--navy)}
.contact{max-width:1240px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px);display:grid;grid-template-columns:.9fr 1.1fr;gap:22px}
.card{background:var(--navy);color:#fff;border-radius:18px;padding:clamp(30px,4vw,50px)}
.card h2{color:#fff}
.flag.small{width:56px;height:36px;margin:0 0 22px}
.card .big{display:block;font-family:"Playfair Display",serif;font-size:clamp(36px,4vw,50px);text-decoration:none;margin-top:24px}
.card .mail{display:block;color:#c4cfe4;word-break:break-all;margin-bottom:22px}
.card p{color:#aab6cf;font-size:15px}
.form{background:var(--mist);border-radius:18px;padding:clamp(26px,4vw,44px);display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;align-content:start}
.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}
.form .wide{grid-column:1/-1}
.form input,.form select,.form textarea{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--navy);outline-offset:1px}
.form .btn{grid-column:1/-1;justify-self:start;background:var(--red);border-color:var(--red)}
.hp{position:absolute;left:-9999px}
.status{grid-column:1/-1;font-size:14px;color:var(--muted)}
footer{border-top:1px solid var(--line);padding:30px 20px 40px;text-align:center;font-size:14px;color:var(--muted)}
footer a{text-decoration:none}
.fab{display:none}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.c,.flag .s{animation:none}}
@media (max-width:960px){
 .top nav{display:none}.call{margin-left:auto}
 .cols{grid-template-columns:1fr}
 .log{grid-template-columns:1fr 1fr}
 .about,.contact{grid-template-columns:1fr}
 .portrait{max-width:420px}
}
@media (max-width:560px){
 body{font-size:16px}
 .call span{display:none}.call{padding:11px}
 .form{grid-template-columns:1fr}
 .fab{display:block;position:fixed;right:16px;bottom:16px;z-index:30;background:var(--red);color:#fff;text-decoration:none;padding:13px 20px;border-radius:999px;font-weight:600;box-shadow:0 10px 24px -8px rgba(0,0,0,.4)}
}
