/* ==========================================================
   LOR GRAPHIC DESIGN — HOMEPAGE V18
   Navy/blue foundation + LOR logo palette (teal · coral · sun)
   ========================================================== */
:root{
  --navy-950:#06101d; --navy-900:#0a1a2f; --navy-800:#0f2744; --navy-700:#163a62;
  --blue:#277dc1; --azure:#52c2f5;
  --teal:#1DCAD3; --coral:#EE3E55; --sun:#FFC42D; --graphite:#5E5F5F;
  --ink:#122840; --muted:#62758a; --line:#e0e9f1; --paper:#f4f8fb; --white:#fff;
  --display:'Manrope',system-ui,sans-serif; --serif:'Playfair Display',Georgia,serif; --body:'DM Sans',system-ui,sans-serif;
  --ease:cubic-bezier(.2,.8,.25,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer}
h1,h2,h3,h4,p{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.container{width:min(1360px,calc(100% - 96px));margin-inline:auto}
.logo-svg{display:block}

/* ---------- shared type ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--blue)}
.tri{display:inline-flex;gap:4px}
.tri i{width:7px;height:7px;border-radius:50%;display:block}
.tri i:nth-child(1){background:var(--coral)}.tri i:nth-child(2){background:var(--teal)}.tri i:nth-child(3){background:var(--sun)}
.display{font-family:var(--display);font-weight:700;letter-spacing:-.045em;line-height:1.04}
.display em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em}
.section{padding:clamp(84px,10vw,136px) 0;position:relative}
.section-title{font-size:clamp(40px,5vw,72px);margin-top:20px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:56px}
.section-head>p{max-width:430px;color:var(--muted);line-height:1.8;font-size:15.5px}
.accent-teal{color:var(--teal)}.accent-coral{color:var(--coral)}.accent-sun{color:var(--sun)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:14px;padding:8px 8px 8px 24px;border-radius:999px;font-weight:700;font-size:13.5px;letter-spacing:.01em;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s}
.btn .arr{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;transition:transform .35s var(--ease)}
.btn .arr svg{width:15px;height:15px}
.btn:hover{transform:translateY(-3px)}
.btn:hover .arr{transform:rotate(45deg)}
.btn-primary{background:linear-gradient(100deg,var(--teal),var(--azure));color:var(--navy-900);box-shadow:0 14px 34px -12px rgba(29,202,211,.7)}
.btn-primary .arr{background:var(--navy-900);color:#fff}
.btn-ghost{color:#fff;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.04);backdrop-filter:blur(8px)}
.btn-ghost .arr{background:rgba(255,255,255,.1)}
.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4)}
.btn-dark{background:var(--navy-900);color:#fff}
.btn-dark .arr{background:var(--coral)}

/* ==========================================================
   NAV
   ========================================================== */
.nav-shell{position:fixed;inset:0 0 auto;z-index:60;transition:background .4s,box-shadow .4s,backdrop-filter .4s}
.nav-shell.scrolled{background:
    radial-gradient(40% 180% at 85% 0%,rgba(29,202,211,.28),transparent 70%),
    radial-gradient(30% 160% at 10% 100%,rgba(82,194,245,.22),transparent 70%),
    linear-gradient(100deg,rgba(14,42,78,.94),rgba(22,64,112,.92) 55%,rgba(18,58,104,.94));
  backdrop-filter:blur(16px) saturate(150%);box-shadow:0 18px 40px -24px rgba(6,20,40,.7)}
.nav-shell.scrolled::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--coral),var(--teal) 40%,var(--azure) 70%,var(--sun));opacity:.85}
.nav{height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;transition:height .4s}
.scrolled .nav{height:72px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;--logo-ink:#c9d6e4;--logo-ink2:#9fb3c8}
.brand .logo-svg{width:52px;height:47px}
.brand-word{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:.08em;line-height:1}
.brand-word small{display:block;font-size:8.5px;letter-spacing:.26em;font-weight:600;color:#9fbbd3;margin-top:6px}
.navlinks{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:500;color:#c6d6e5}
.navlinks a{position:relative;padding:6px 0;transition:color .25s}
.navlinks a::after{content:'';position:absolute;left:0;right:100%;bottom:0;height:2px;border-radius:2px;background:#52c2f5;box-shadow:0 0 8px rgba(82,194,245,.6);transition:right .35s var(--ease)}
.navlinks a:hover{color:#fff}.navlinks a:hover::after{right:0}
.navlinks a.active{color:#fff}.navlinks a.active::after{right:0}
.nav-cta{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--navy-900);background:#fff;transition:.3s}
.nav-cta i{width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(238,62,85,.18)}
.nav-cta:hover{background:var(--sun)}
.menu-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:700;letter-spacing:.08em}

/* ==========================================================
   HERO
   ========================================================== */
.hero{position:relative;isolation:isolate;overflow:hidden;color:#fff;min-height:max(100svh,860px);display:flex;flex-direction:column;
  background:
    radial-gradient(60% 70% at 78% 32%,rgba(82,194,245,.28),transparent 70%),
    radial-gradient(50% 60% at 8% 100%,rgba(39,125,193,.32),transparent 70%),
    linear-gradient(140deg,#071427 0%,#0c2443 48%,#123f6a 100%)}
.hb{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hb-dots{background-image:radial-gradient(rgba(255,255,255,.16) 1px,transparent 1.5px);background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse 55% 60% at 72% 42%,#000 20%,transparent 72%);mask-image:radial-gradient(ellipse 55% 60% at 72% 42%,#000 20%,transparent 72%)}
.hb-hatch{background-image:repeating-linear-gradient(-45deg,rgba(82,194,245,.07) 0 1px,transparent 1px 18px);
  -webkit-mask-image:linear-gradient(200deg,transparent 45%,#000 85%);mask-image:linear-gradient(200deg,transparent 45%,#000 85%)}
.hb-grid{background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:104px 104px;
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 60%);mask-image:linear-gradient(90deg,#000,transparent 60%)}
.glow{position:absolute;border-radius:50%;filter:blur(80px)}
.glow.g-teal{width:520px;height:520px;right:-120px;top:-80px;background:rgba(29,202,211,.28);animation:drift 16s ease-in-out infinite alternate}
.glow.g-coral{width:380px;height:380px;left:-140px;bottom:-60px;background:rgba(238,62,85,.22);animation:drift 19s ease-in-out infinite alternate-reverse}
.glow.g-sun{width:260px;height:260px;right:30%;bottom:6%;background:rgba(255,196,45,.14);animation:drift 14s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(40px,-30px,0) scale(1.08)}}
.hb-noise{opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* logo-inspired ribbons */
.ribbons{position:absolute;inset:0;width:100%;height:100%}
.ribbons path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.6s var(--ease) forwards}
.ribbons .r1{stroke:var(--coral);stroke-width:22;opacity:.20;animation-delay:.2s}
.ribbons .r2{stroke:var(--teal);stroke-width:22;opacity:.22;animation-delay:.45s}
.ribbons .r3{stroke:var(--sun);stroke-width:22;opacity:.18;animation-delay:.7s}
.ribbons .thin{stroke:rgba(255,255,255,.18);stroke-width:1.2;stroke-dasharray:1;animation-delay:1s}
@keyframes draw{to{stroke-dashoffset:0}}

/* floating diamonds + plus marks */
.shape{position:absolute;pointer-events:none}
.diamond{width:var(--s,26px);height:var(--s,26px);border:2px solid var(--c,var(--teal));border-radius:5px;transform:rotate(45deg);animation:float 9s ease-in-out infinite}
.plus{width:14px;height:14px;animation:float 11s ease-in-out infinite}
.plus::before,.plus::after{content:'';position:absolute;inset:6px 0;background:var(--c,#fff);border-radius:2px;opacity:.6}
.plus::after{inset:0 6px}
.ring{width:var(--s,120px);height:var(--s,120px);border-radius:50%;border:1px dashed rgba(255,255,255,.18);animation:spin 50s linear infinite}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -16px}}
@keyframes spin{to{transform:rotate(360deg)}}

.hero-inner>*{min-width:0}
.hero-inner{flex:1;display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center;padding:150px 0 70px}
.hero-pill{display:inline-flex;align-items:center;gap:12px;padding:8px 16px 8px 10px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px);font-size:12px;font-weight:600;letter-spacing:.08em;color:#d3e3f1;text-transform:uppercase}
.hero-pill .tri{padding:6px 8px;border-radius:999px;background:linear-gradient(120deg,#1a4f86,#2470b4)}
.hero h1{font-size:clamp(50px,6.5vw,104px);margin:30px 0 26px;line-height:1.02}
.hero h1 .line{display:block}
.hero h1 em{background:linear-gradient(95deg,var(--teal) 0%,var(--azure) 45%,var(--sun) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.08em}
.hero h1 .dot{color:var(--coral)}

/* design-tool selection box around a word */
.sel{position:relative;display:inline-block;padding:0 .1em;margin:0 -.1em}
.sel-box{position:absolute;inset:.06em -.02em .02em;border:1.5px solid var(--teal);border-radius:2px;opacity:0;animation:fadeIn .6s 1.3s forwards}
.sel-box i{position:absolute;width:9px;height:9px;background:#fff;border:1.5px solid var(--teal);border-radius:1px}
.sel-box i:nth-child(1){left:-5px;top:-5px}.sel-box i:nth-child(2){right:-5px;top:-5px}.sel-box i:nth-child(3){left:-5px;bottom:-5px}.sel-box i:nth-child(4){right:-5px;bottom:-5px}
.sel-size{position:absolute;left:-1.5px;top:-27px;font:600 10px/1 var(--body);letter-spacing:.06em;background:var(--teal);color:var(--navy-900);padding:5px 8px;border-radius:4px;white-space:nowrap}
.cursor{position:absolute;right:-118px;top:38%;display:flex;align-items:flex-start;gap:2px;opacity:0;animation:fadeIn .6s 1.7s forwards,cursorBob 5s 2.3s ease-in-out infinite}
.cursor svg{width:20px;height:20px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.35))}
.cursor span{margin-top:14px;font:700 11px/1 var(--body);letter-spacing:.02em;color:#fff;background:var(--coral);padding:6px 10px;border-radius:0 8px 8px 8px;white-space:nowrap}
@keyframes fadeIn{to{opacity:1}}
@keyframes cursorBob{0%,100%{translate:0 0}50%{translate:-10px -6px}}

.hero-lead{max-width:540px;font-size:17.5px;line-height:1.8;color:#bdd0e1}
.hero-acts{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.proof{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:46px;padding-top:26px;border-top:1px solid rgba(255,255,255,.12);max-width:700px}
.proof div{display:flex;align-items:center;gap:10px;font-size:13px;color:#c9d9e7}
.proof b{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:12px;color:var(--navy-900)}
.proof div:nth-child(1) b{background:var(--teal)}.proof div:nth-child(2) b{background:var(--sun)}.proof div:nth-child(3) b{background:var(--coral);color:#fff}

/* ---------- collage stage ---------- */
.stage{position:relative;width:100%;max-width:620px;aspect-ratio:1/1.02;justify-self:end}
.layer{position:absolute;transition:transform .5s var(--ease);will-change:transform}
.card{border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 40px 80px -30px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.08)}
.card img{width:100%;height:100%;object-fit:cover}
.c-web{left:9%;top:11%;width:80%}
.c-web .card{transform:rotate(-2deg)}
.browser{display:flex;align-items:center;gap:6px;padding:11px 14px;background:#f1f5f9;border-bottom:1px solid #e3eaf1}
.browser i{width:9px;height:9px;border-radius:50%}
.browser i:nth-child(1){background:var(--coral)}.browser i:nth-child(2){background:var(--sun)}.browser i:nth-child(3){background:var(--teal)}
.browser span{margin-left:10px;flex:1;max-width:260px;font-size:10.5px;color:#6b7f93;background:#fff;border-radius:6px;padding:5px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-web .shot{aspect-ratio:2/1}
.c-book{left:-2%;bottom:5%;width:42%}
.c-book .card{transform:rotate(-7deg);aspect-ratio:2/1.15}
.c-brand{right:-1%;bottom:12%;width:46%}
.c-brand .card{transform:rotate(5deg);aspect-ratio:2/1.05}
.tag{position:absolute;display:flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;background:rgba(9,26,47,.82);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);font-size:11.5px;font-weight:600;color:#fff;white-space:nowrap;box-shadow:0 12px 30px -12px rgba(0,0,0,.6)}
.tag i{width:8px;height:8px;border-radius:50%}
.c-book .tag{left:12%;bottom:-16px}
.c-brand .tag{right:10%;bottom:-16px}
.c-web .tag{left:18px;top:-16px}
/* palette swatch card */
.swatch{right:-2%;top:0;width:150px;padding:14px;border-radius:16px;background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 30px 60px -24px rgba(0,0,0,.6);transform:rotate(4deg)}
.swatch h4{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#7d8fa2;margin-bottom:10px;font-weight:700}
.sw{display:flex;align-items:center;gap:9px;font-size:10.5px;font-weight:600;margin-top:7px}
.sw b{width:30px;height:20px;border-radius:5px;display:block}
.sw small{display:block;color:#8a9bad;font-weight:500;font-size:9px}
/* rotating badge */
.badge{left:-4%;top:30%;width:122px;height:122px;--logo-ink:transparent;--logo-ink2:transparent}
.badge .ring-text{position:absolute;inset:0;animation:spin 22s linear infinite}
.badge .ring-text text{font:700 8.4px var(--body);letter-spacing:.08em;fill:#e2edf7}
.badge .core{position:absolute;inset:24px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 18px 40px -12px rgba(0,0,0,.6)}
.badge .core .logo-svg{width:52px;height:42px;margin-top:6px}
/* pen tool path */
.pen{left:4%;top:-3%;width:40%;opacity:.95}
.pen path{fill:none;stroke:var(--sun);stroke-width:1.6;stroke-dasharray:5 5}
.pen rect{fill:#fff;stroke:var(--sun);stroke-width:1.5}
.pen circle{fill:var(--sun)}
.pen line{stroke:var(--sun);stroke-width:1}
/* play chip */
.motion{left:30%;top:2%;display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--coral);color:#fff;font-size:11.5px;font-weight:700;box-shadow:0 16px 34px -12px rgba(238,62,85,.7)}
.motion b{width:28px;height:28px;border-radius:50%;background:#fff;display:grid;place-items:center}
.motion b::before{content:'';border-left:8px solid var(--coral);border-top:5px solid transparent;border-bottom:5px solid transparent;margin-left:2px}

.hero-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 0 30px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#87a5bd}
.scroll{display:flex;align-items:center;gap:12px}
.mouse{width:22px;height:34px;border:1.5px solid rgba(255,255,255,.35);border-radius:12px;position:relative}
.mouse::after{content:'';position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--teal);animation:wheel 1.8s ease-in-out infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(-3px)}40%{opacity:1}100%{opacity:0;transform:translateY(9px)}}

/* hero entrance */
.hero .enter{opacity:0;transform:translateY(28px);animation:enter 1s var(--ease) forwards}
.hero .enter.d1{animation-delay:.1s}.hero .enter.d2{animation-delay:.22s}.hero .enter.d3{animation-delay:.36s}.hero .enter.d4{animation-delay:.5s}.hero .enter.d5{animation-delay:.64s}
@keyframes enter{to{opacity:1;transform:none}}
.stage .pop{opacity:0;animation:pop 1.1s var(--ease) forwards}
@keyframes pop{from{opacity:0;scale:.92}to{opacity:1;scale:1}}

/* ==========================================================
   MARQUEE
   ========================================================== */
.marquee{position:relative;color:#b9d8ee;overflow:hidden;white-space:nowrap;padding:18px 0;
  background:radial-gradient(30% 140% at 15% 50%,rgba(29,202,211,.30),transparent 70%),radial-gradient(30% 140% at 85% 50%,rgba(82,194,245,.35),transparent 70%),linear-gradient(90deg,#123a66,#1b5a94 50%,#16477c);
  border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.08)}
.marquee::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.05) 0 1px,transparent 1px 14px);pointer-events:none}
.marquee-track{display:flex;width:max-content;gap:44px;align-items:center;animation:marquee 34s linear infinite;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(15px,1.45vw,20px);letter-spacing:.01em}
.marquee-track span:nth-of-type(odd){color:#fff}
.marquee-track .star{width:11px;height:11px;border-radius:3px!important;border-radius:5px;transform:rotate(45deg);flex:none}
.star.t{background:var(--teal)}.star.c{background:var(--coral)}.star.s{background:var(--sun)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ==========================================================
   INTRO
   ========================================================== */
.intro{background:#fff;overflow:hidden}
.intro-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:8%;align-items:start}
.intro h2{font-size:clamp(42px,5.4vw,80px)}
.intro h2 em{color:var(--blue)}
.intro-lead{font-size:18px;line-height:1.85;color:var(--muted);margin-top:26px;max-width:520px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.chip{padding:10px 16px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:600;color:#33506b;background:#fff}
.chip::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:9px;background:var(--c);vertical-align:1px}
.intro-cards{display:grid;gap:16px}
.icard{position:relative;padding:28px 30px 28px 84px;border-radius:20px;background:var(--paper);border:1px solid var(--line);transition:transform .4s var(--ease),box-shadow .4s}
.icard:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(15,39,68,.45)}
.icard .num{position:absolute;left:26px;top:28px;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font:800 13px var(--display);color:#fff;background:var(--c)}
.icard h3{font-family:var(--display);font-size:19px;letter-spacing:-.02em;margin-bottom:8px}
.icard p{color:var(--muted);line-height:1.75;font-size:15px}
.intro-deco{position:absolute;right:-60px;top:40px;width:340px;opacity:.08;pointer-events:none}

/* ==========================================================
   SERVICES
   ========================================================== */
.services{background:var(--paper);overflow:hidden}
.services::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(39,125,193,.12) 1px,transparent 1.5px);background-size:24px 24px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 40%);mask-image:linear-gradient(180deg,#000,transparent 40%);pointer-events:none}
.service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;position:relative}
.scard{--c:var(--teal);display:flex;flex-direction:column;background:#fff;border-radius:20px;overflow:hidden;border:1px solid var(--line);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s}
.scard:nth-child(3n+2){--c:var(--coral)}.scard:nth-child(3n+3){--c:var(--sun)}
.scard:hover{transform:translateY(-8px);box-shadow:0 30px 60px -32px rgba(15,39,68,.5);border-color:transparent}
.smedia{position:relative;aspect-ratio:4/3;overflow:hidden;background:#e9f0f6}
.smedia img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.scard:hover .smedia img{transform:scale(1.07)}
.smedia::after{content:'';position:absolute;inset:auto 0 0;height:4px;background:var(--c);transform:scaleX(.25);transform-origin:left;transition:transform .5s var(--ease)}
.scard:hover .smedia::after{transform:scaleX(1)}
.snum{position:absolute;left:12px;top:12px;font:800 11px var(--display);letter-spacing:.06em;padding:6px 9px;border-radius:8px;background:rgba(255,255,255,.92);color:var(--ink)}
.sbody{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
.sbody h3{font-family:var(--display);font-size:17px;letter-spacing:-.02em;line-height:1.3}
.sbody p{font-size:13.5px;line-height:1.65;color:var(--muted);margin-top:8px}
.slink{margin-top:auto;padding-top:18px;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:var(--ink)}
.slink b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--paper);transition:.35s var(--ease)}
.scard:hover .slink b{background:var(--c);color:#fff;transform:rotate(45deg)}
.scard:nth-child(3n+3):hover .slink b{color:var(--navy-900)}

/* ==========================================================
   WORK
   ========================================================== */
.work{background:#fff}
.work-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:auto auto;gap:20px}
.wcard{position:relative;display:block;border-radius:22px;overflow:hidden;background:var(--navy-900);min-height:280px;isolation:isolate}
.wcard:first-child{grid-row:span 2;min-height:600px}
.wcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.wcard::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(6,16,29,.55) 60%,rgba(6,16,29,.94));z-index:1}
.wcard:hover img{transform:scale(1.05)}
.wcap{position:absolute;left:24px;right:24px;bottom:22px;z-index:2;color:#fff}
.wcap span{display:inline-block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--navy-900);background:var(--teal);padding:5px 9px;border-radius:6px;font-weight:800}
.wcard:nth-child(3n+2) .wcap span{background:var(--sun)}.wcard:nth-child(3n+3) .wcap span{background:var(--coral);color:#fff}
.wcap h3{font-family:var(--display);font-size:clamp(18px,1.7vw,26px);letter-spacing:-.02em;margin-top:8px;line-height:1.25}
.wopen{position:absolute;right:18px;top:18px;z-index:2;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--navy-900);display:grid;place-items:center;transform:scale(.8);opacity:0;transition:.4s var(--ease)}
.wcard:hover .wopen{opacity:1;transform:none}
.platforms{margin-top:20px;display:grid;grid-template-columns:.9fr 2.1fr;gap:30px;align-items:center;padding:30px;border-radius:22px;background:var(--paper);border:1px solid var(--line)}
.platforms h3{font-family:var(--display);font-size:24px;letter-spacing:-.03em;line-height:1.2}
.platforms h3 em{font-family:var(--serif);font-weight:400;color:var(--blue)}
.plist{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pitem{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;transition:.35s var(--ease)}
.pitem img{width:64px;height:48px;border-radius:9px;object-fit:cover;flex:none}
.pitem:hover{transform:translateY(-3px);box-shadow:0 18px 40px -26px rgba(15,39,68,.5)}

/* ==========================================================
   TECHNOLOGY / AI
   ========================================================== */
.tech{background:linear-gradient(150deg,var(--navy-900),#0f2f55);color:#fff;overflow:hidden}
.tech::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.03) 0 1px,transparent 1px 22px);pointer-events:none}
.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;position:relative}
.tech .eyebrow{color:var(--teal)}
.tech h2 em{color:var(--sun)}
.tech-lead{color:#b8cbdc;line-height:1.85;font-size:16.5px;margin-top:24px;max-width:520px}
.benefits{margin-top:34px;display:grid;gap:12px}
.benefit{display:flex;gap:16px;align-items:flex-start;padding:18px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);transition:.35s}
.benefit:hover{background:rgba(255,255,255,.08)}
.benefit i{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-style:normal;font-size:17px;background:var(--c);color:var(--navy-900)}
.benefit b{display:block;font-size:15px;margin-bottom:4px}
.benefit small{color:#9fb6ca;font-size:13.5px;line-height:1.6}
.tech-link{display:inline-flex;gap:10px;margin-top:28px;font-weight:700;font-size:14px;color:var(--teal);border-bottom:1px solid currentColor;padding-bottom:4px}
.orbit{position:relative;aspect-ratio:1;max-width:520px;width:100%;justify-self:center}
.orbit .o{position:absolute;border-radius:50%;border:1px solid rgba(82,194,245,.22)}
.orbit .o1{inset:0;animation:spin 40s linear infinite}
.orbit .o2{inset:13%;border-style:dashed;border-color:rgba(255,196,45,.3);animation:spin 30s linear infinite reverse}
.orbit .o3{inset:26%;border-color:rgba(238,62,85,.3)}
.orbit .o::before{content:'';position:absolute;top:-6px;left:50%;width:12px;height:12px;border-radius:50%;background:var(--c,var(--teal));box-shadow:0 0 18px var(--c,var(--teal))}
.orbit .o1{--c:var(--teal)}.orbit .o2{--c:var(--sun)}.orbit .o3{--c:var(--coral)}
.orbit .core{position:absolute;inset:34%;border-radius:28px;background:linear-gradient(140deg,rgba(29,202,211,.25),rgba(82,194,245,.08));border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);display:grid;place-items:center;transform:rotate(45deg);box-shadow:0 0 80px rgba(29,202,211,.25)}
.orbit .core span{transform:rotate(-45deg);font:800 clamp(22px,3vw,34px) var(--display);letter-spacing:-.03em;text-align:center;line-height:1}
.orbit .core small{display:block;font:600 9px var(--body);letter-spacing:.2em;color:var(--teal);margin-top:8px}
.glass{position:absolute;padding:14px 16px;border-radius:14px;background:rgba(10,26,47,.75);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.glass small{display:block;font-size:11px;letter-spacing:0;text-transform:none;font-weight:500;color:#9fb6ca;margin-top:4px}
.glass.g1{left:-4%;top:14%}.glass.g2{right:-4%;bottom:16%}
.glass i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--teal);margin-right:8px;box-shadow:0 0 10px var(--teal)}
.glass.g2 i{background:var(--sun);box-shadow:0 0 10px var(--sun)}

/* ==========================================================
   ABOUT / WHY
   ========================================================== */
/* --p = scroll progress through the section (-1 → 1), set by JS
   .is-in toggles on enter/leave so the entrance replays both ways */
.about{background:#fff;overflow:hidden;--p:0;--rx:0deg;--ry:0deg}
.about::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(39,125,193,.10) 1px,transparent 1.5px);background-size:24px 24px;-webkit-mask-image:radial-gradient(ellipse 40% 60% at 22% 50%,#000,transparent 70%);mask-image:radial-gradient(ellipse 40% 60% at 22% 50%,#000,transparent 70%)}
.about-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:9%;align-items:center;position:relative}
.about-visual{position:relative;isolation:isolate;max-width:520px;width:100%;justify-self:center;perspective:1100px}

/* teal offset outline */
.ab-outline{position:absolute;inset:-22px 22px 22px -22px;border-radius:30px;border:2px solid var(--teal);z-index:-1;translate:0 calc(var(--p) * 30px);
  opacity:0;transform:translate(-26px,26px);transition:opacity .8s var(--ease),transform 1.1s var(--ease)}
.about.is-in .ab-outline{opacity:1;transform:none;transition-delay:.35s}

/* main frame — wipe reveal, inner image parallax, 3D hover tilt */
.ab-frame{display:block;position:relative;border-radius:26px;overflow:hidden;aspect-ratio:4/5;background:var(--navy-900);box-shadow:0 40px 80px -40px rgba(15,39,68,.6);
  transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s var(--ease),box-shadow .5s;
  clip-path:inset(100% 0 0 0 round 26px)}
.about.is-in .ab-frame{clip-path:inset(0 0 0 0 round 26px);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1),transform .5s var(--ease),box-shadow .5s}
.ab-frame img{position:absolute;left:0;top:-5%;width:100%;height:110%;object-fit:cover;translate:0 calc(var(--p) * -4.5%);
  transform:scale(1.25);transition:transform 1.6s var(--ease)}
.about.is-in .ab-frame img{transform:scale(1)}
.about.is-in .ab-frame:hover img{transform:scale(1.06);transition-duration:.8s}
.ab-frame:hover{box-shadow:0 50px 90px -40px rgba(15,39,68,.7)}
.ab-frame::after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);transform:translateX(-100%);transition:transform 1s var(--ease);pointer-events:none}
.ab-frame:hover::after{transform:translateX(100%)}
.ab-frame::before{content:'';position:absolute;inset:0;z-index:1;background:rgba(6,16,29,.35);opacity:0;transition:opacity .45s}
.ab-frame:hover::before{opacity:1}
.ab-tag{position:absolute;z-index:2;left:50%;top:50%;display:flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;background:var(--coral);color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;box-shadow:0 16px 34px -12px rgba(238,62,85,.7);
  opacity:0;transform:translate(-50%,-30%) scale(.9);transition:.45s var(--ease)}
.ab-tag i{width:7px;height:7px;border-radius:50%;background:#fff}
.ab-frame:hover .ab-tag{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* floating blog cards — fly in, parallax at their own speed, straighten on hover */
.ab-mini{position:absolute;z-index:2;width:36%;display:block}
.ab-mini.m1{right:-14%;top:7%;translate:0 calc(var(--p) * -70px);rotate:calc(var(--p) * 4deg)}
.ab-mini.m2{left:-12%;bottom:-6%;width:32%;translate:0 calc(var(--p) * 55px);rotate:calc(var(--p) * -4deg)}
.ab-card{display:block;border-radius:16px;overflow:hidden;aspect-ratio:4/5;border:5px solid #fff;box-shadow:0 30px 60px -24px rgba(15,39,68,.55);
  opacity:0;transition:opacity .7s var(--ease),transform 1s var(--ease),box-shadow .4s}
.ab-card img{width:100%;height:100%;object-fit:cover}
.m1 .ab-card{transform:translate(60px,-30px) rotate(18deg)}
.m2 .ab-card{transform:translate(-60px,40px) rotate(-18deg)}
.about.is-in .m1 .ab-card{opacity:1;transform:rotate(6deg);transition-delay:.55s}
.about.is-in .m2 .ab-card{opacity:1;transform:rotate(-7deg);transition-delay:.75s}
.about.is-in .ab-mini .ab-card:hover{transform:rotate(0) scale(1.08) translateY(-6px);box-shadow:0 40px 70px -24px rgba(15,39,68,.7);transition-delay:0s;transition-duration:.45s}
.ab-mini:hover{z-index:4}
.ab-mini .lbl{position:absolute;left:50%;bottom:-14px;transform:translate(-50%,6px);white-space:nowrap;padding:6px 11px;border-radius:999px;font-size:10.5px;font-weight:700;color:var(--navy-900);background:var(--c);opacity:0;transition:.35s var(--ease)}
.ab-mini:hover .lbl{opacity:1;transform:translate(-50%,0)}

/* quote stamp */
.ab-stamp{position:absolute;right:-26px;bottom:40px;z-index:3;padding:18px 20px;border-radius:18px;background:var(--navy-900);color:#fff;max-width:230px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);translate:0 calc(var(--p) * -24px);
  opacity:0;transform:translateX(50px);transition:opacity .7s var(--ease),transform 1s var(--ease),background .35s}
.about.is-in .ab-stamp{opacity:1;transform:none;transition-delay:.9s}
.about.is-in .ab-stamp:hover{transform:translateY(-5px) rotate(-2deg);background:#0d2440;transition-delay:0s}
.ab-stamp b{display:block;font-family:var(--serif);font-style:italic;font-weight:400;font-size:20px;line-height:1.3}
.ab-stamp small{display:block;margin-top:8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--sun)}

/* copy column — masked line reveals + staggered fade-up */
.about h2 em{color:var(--coral)}
.about h2 .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.about h2 .ln>span{display:inline-block;transform:translateY(110%);transition:transform 1s var(--ease)}
.about.is-in h2 .ln>span{transform:none}
.about.is-in h2 .ln:nth-child(2)>span{transition-delay:.12s}
.about.is-in h2 .ln:nth-child(3)>span{transition-delay:.24s}
.about p{color:var(--muted);line-height:1.9;font-size:16px;margin-top:20px}
.ab-up{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .9s var(--ease)}
.about.is-in .ab-up{opacity:1;transform:none;transition-delay:var(--d,0s)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:32px}
.pillar{position:relative;overflow:hidden;padding:18px;border-radius:16px;background:var(--paper);border-top:3px solid var(--c);cursor:default;
  transition:opacity .8s var(--ease),transform .5s var(--ease),box-shadow .4s}
.pillar::before{content:'';position:absolute;inset:0;background:var(--c);opacity:.12;transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease);z-index:0}
.pillar>*{position:relative;z-index:1}
.about.is-in .pillar:hover{transform:translateY(-6px);box-shadow:0 24px 40px -24px rgba(15,39,68,.45);transition-delay:0s}
.pillar:hover::before{transform:scaleY(1)}
.pillar b{display:block;font-family:var(--display);font-size:15px}
.pillar small{color:var(--muted);font-size:12.5px;line-height:1.55;display:block;margin-top:6px}

/* ==========================================================
   SPECIALIZED
   ========================================================== */
.special{background:var(--paper)}
.special-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.sp{--c:var(--teal);position:relative;display:flex;flex-direction:column;gap:30px;padding:22px;border-radius:18px;background:#fff;border:1px solid var(--line);overflow:hidden;transition:.4s var(--ease)}
.sp:nth-child(3n+2){--c:var(--coral)}.sp:nth-child(3n+3){--c:var(--sun)}
.sp::before{content:'';position:absolute;inset:auto -30% -60% auto;width:160px;height:160px;border-radius:50%;background:var(--c);opacity:0;transition:.5s var(--ease)}
.sp:hover{transform:translateY(-5px);border-color:var(--c)}
.sp:hover::before{opacity:.12}
.sp .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:20px;background:color-mix(in srgb,var(--c) 16%,#fff);color:var(--ink)}
.sp span{font-family:var(--display);font-weight:700;font-size:15.5px;letter-spacing:-.01em;position:relative}
.sp small{position:absolute;right:20px;top:22px;font-size:11px;color:#9aabbb;font-weight:700}

/* ==========================================================
   PANTONE
   ========================================================== */
.pantone{background:#f3f1ec;padding:clamp(80px,9vw,120px) 0}
.pantone-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:8%;align-items:center}
.pantone-photo{border-radius:24px;overflow:hidden;aspect-ratio:16/11;box-shadow:0 40px 80px -46px rgba(60,50,30,.55)}
.pantone-photo img{width:100%;height:100%;object-fit:cover}
.pantone .eyebrow{color:#8a7c69}
.pantone h2 em{color:#9b8a72}
.pantone p{color:#6f6a62;line-height:1.85;margin-top:18px}
.pantone .btn{margin-top:30px}
.ptone-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:56px}
.ptone{border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 18px 40px -30px rgba(60,50,30,.5);transition:.4s var(--ease)}
.ptone:hover{transform:translateY(-5px)}
.ptone div{height:84px;background:var(--p)}
.ptone p{margin:0;padding:12px 14px;font-size:12px;color:#4d4a44;line-height:1.4}
.ptone p b{display:block;font-size:13px;color:#24221f}

/* ==========================================================
   FAQ
   ========================================================== */
.faq{overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#f3f8fc 0%,#fff 60%)}
.faq-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.faq-bg .blob{position:absolute;border-radius:50%;filter:blur(70px)}
.faq-bg .b1{width:420px;height:420px;left:-120px;top:10%;background:rgba(29,202,211,.20)}
.faq-bg .b2{width:360px;height:360px;right:-100px;top:-60px;background:rgba(238,62,85,.13)}
.faq-bg .b3{width:300px;height:300px;right:20%;bottom:-120px;background:rgba(255,196,45,.18)}
.faq-bg .dots{position:absolute;inset:0;background-image:radial-gradient(rgba(39,125,193,.14) 1px,transparent 1.5px);background-size:24px 24px;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 80% 30%,#000,transparent 70%);mask-image:radial-gradient(ellipse 50% 50% at 80% 30%,#000,transparent 70%)}
.faq-bg .qmark{position:absolute;right:-30px;bottom:-140px;font:800 560px/1 var(--display);color:transparent;-webkit-text-stroke:2px rgba(39,125,193,.08)}
.faq-bg svg{position:absolute;left:0;top:0;width:100%;height:100%}
.faq-bg path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:16}
.faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:7%;align-items:start}
.faq-side{position:sticky;top:110px}
.faq h2 em{background:linear-gradient(95deg,var(--blue),var(--teal));-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
.faq-side>p{color:var(--muted);line-height:1.85;margin-top:20px;max-width:440px}
.faq-topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.faq-topics span{padding:7px 13px;border-radius:999px;font-size:12px;font-weight:700;background:color-mix(in srgb,var(--c) 15%,#fff);color:var(--ink);border:1px solid color-mix(in srgb,var(--c) 35%,#fff)}
.faq-visual{position:relative;margin-top:34px;max-width:440px}
.faq-photo{display:block;border-radius:24px;overflow:hidden;aspect-ratio:4/3.2;box-shadow:0 40px 70px -40px rgba(15,39,68,.6);transform:rotate(-2deg);transition:transform .5s var(--ease)}
.faq-photo img{width:100%;height:100%;object-fit:cover;object-position:center 78%;transition:transform .8s var(--ease)}
.faq-photo:hover{transform:rotate(0)}
.faq-photo:hover img{transform:scale(1.06)}
.faq-visual::before{content:'';position:absolute;inset:16px -16px -16px 16px;border-radius:26px;background:linear-gradient(135deg,var(--teal),var(--azure));z-index:-1;transform:rotate(-2deg)}
.faq-bubble{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:16px;font-size:12.5px;font-weight:700;box-shadow:0 20px 40px -18px rgba(15,39,68,.5);animation:float 7s ease-in-out infinite}
.faq-bubble.q{left:-18px;top:-18px;background:#fff;color:var(--ink);border-radius:16px 16px 16px 4px}
.faq-bubble.q b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--coral);color:#fff;font-size:14px}
.faq-bubble.a{right:-14px;bottom:26px;background:linear-gradient(120deg,#123a66,#1d5c98);color:#fff;border-radius:16px 16px 4px 16px;animation-delay:-3s}
.faq-bubble.a b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--sun);color:var(--navy-900);font-size:13px}
.faq-help{display:flex;align-items:center;gap:14px;margin-top:40px;padding:16px 16px 16px 20px;border-radius:20px;background:linear-gradient(120deg,#123a66,#1d5c98);color:#fff;max-width:440px;box-shadow:0 24px 50px -30px rgba(18,58,102,.8)}
.faq-help div{flex:1;font-size:13px;color:#bcd6ea;line-height:1.5}
.faq-help div b{display:block;color:#fff;font-size:15px}
.faq-help a{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:var(--navy-900);transition:transform .35s var(--ease)}
.faq-help a:hover{transform:rotate(45deg) scale(1.05)}
.faq-list{display:grid;gap:12px;counter-reset:q}
.faq-item{--c:var(--teal);counter-increment:q;position:relative;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px -26px rgba(15,39,68,.45);transition:transform .35s var(--ease),box-shadow .35s,border-color .35s,background .35s;overflow:hidden}
.faq-item:nth-child(3n+2){--c:var(--coral)}.faq-item:nth-child(3n+3){--c:var(--sun)}
.faq-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c);transform:scaleY(0);transition:transform .4s var(--ease)}
.faq-item:hover{transform:translateX(6px);border-color:color-mix(in srgb,var(--c) 50%,#fff);box-shadow:0 20px 40px -28px rgba(15,39,68,.5)}
.faq-item:hover::before,.faq-item[open]::before{transform:scaleY(1)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 20px;font-weight:700;font-size:15.5px;line-height:1.45}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:counter(q,decimal-leading-zero);flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font:800 12px var(--display);background:color-mix(in srgb,var(--c) 16%,#fff);color:var(--ink);transition:.35s}
.faq-item .qt{flex:1}
.faq-item .plus-ic{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:18px;font-weight:400;background:var(--paper);color:var(--blue);transition:.35s var(--ease)}
.faq-item:hover .plus-ic{background:var(--c);color:#fff}
.faq-item[open]{background:radial-gradient(60% 120% at 100% 0%,rgba(29,202,211,.28),transparent 70%),linear-gradient(130deg,#123a66,#1d5c98);border-color:transparent;color:#fff;box-shadow:0 30px 60px -30px rgba(18,58,102,.8)}
.faq-item[open]:hover{transform:none}
.faq-item[open] summary::before{background:var(--c);color:var(--navy-900)}
.faq-item[open] .plus-ic{transform:rotate(45deg);background:#fff;color:var(--coral)}
.faq-item p{color:#c7dcec;line-height:1.8;font-size:15px;padding:0 64px 22px 74px;animation:faqIn .5s var(--ease)}
@keyframes faqIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ==========================================================
   CLIENTS
   ========================================================== */
.clients{background:var(--paper);padding:clamp(80px,9vw,110px) 0}
.clients-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px}
.clients-head p{max-width:460px;color:var(--muted);line-height:1.8}
.clients h2 em{color:var(--teal)}
.logo-wall{display:grid;gap:16px;border-radius:24px;background:#fff;border:1px solid var(--line);padding:26px 0;overflow:hidden;box-shadow:0 30px 60px -48px rgba(15,39,68,.5);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.lrow{overflow:hidden}
.ltrack{display:flex;gap:16px;width:max-content;animation:marquee 70s linear infinite}
.ltrack.rev{animation-direction:reverse}
.logo-wall:hover .ltrack{animation-play-state:paused}
.ltrack img{height:96px;width:auto;border-radius:12px;border:1px solid var(--line);filter:grayscale(1);opacity:.75;transition:.35s}
.ltrack img:hover{filter:none;opacity:1}

/* ==========================================================
   JOURNAL
   ========================================================== */
.journal{background:#fff}
.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.jcard{display:flex;flex-direction:column;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#fff;transition:.4s var(--ease)}
.jcard:hover{transform:translateY(-6px);box-shadow:0 30px 60px -36px rgba(15,39,68,.5)}
.jphoto{aspect-ratio:16/10;overflow:hidden}
.jphoto img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.jcard:hover .jphoto img{transform:scale(1.05)}
.jbody{padding:22px 24px 26px}
.jbody span{font-size:11px;letter-spacing:.16em;font-weight:700;text-transform:uppercase;color:var(--c,var(--teal))}
.jcard:nth-child(2){--c:var(--coral)}.jcard:nth-child(3){--c:#d79c00}
.jbody h3{font-family:var(--display);font-size:19px;letter-spacing:-.02em;line-height:1.35;margin-top:10px}
.more-link{display:inline-flex;align-items:center;gap:10px;margin-top:34px;font-weight:700;color:var(--blue);border-bottom:1px solid currentColor;padding-bottom:4px}

/* ==========================================================
   CTA
   ========================================================== */
.cta{position:relative;overflow:hidden;isolation:isolate;color:#fff;padding:clamp(90px,10vw,130px) 0;background:radial-gradient(60% 80% at 85% 20%,rgba(29,202,211,.25),transparent 70%),linear-gradient(135deg,var(--navy-900),#134574)}
.cta .ribbons{z-index:-1}
.cta-inner{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:end}
.cta .eyebrow{color:var(--sun)}
.cta h2{font-size:clamp(44px,6vw,92px);margin-top:20px}
.cta h2 em{color:var(--teal)}
.cta p{color:#bad0e3;line-height:1.85;margin-top:24px;max-width:620px;font-size:16.5px}
.contact-card{padding:28px;border-radius:22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px)}
.contact-card a,.contact-card div{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:14.5px}
.contact-card div:last-of-type{border:0;align-items:flex-start;line-height:1.6;color:#bad0e3}
.contact-card i{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-style:normal;background:var(--c);color:var(--navy-900);font-size:15px}
.contact-card a.btn{margin-top:18px;width:100%;justify-content:space-between;padding:8px 8px 8px 24px;border:0;font-size:14px}

/* ==========================================================
   FOOTER
   ========================================================== */
.footer{color:#a9c2d6;padding:76px 0 28px;position:relative;overflow:hidden;isolation:isolate;
  background:radial-gradient(45% 70% at 92% 0%,rgba(29,202,211,.26),transparent 70%),radial-gradient(40% 70% at 0% 100%,rgba(82,194,245,.22),transparent 70%),linear-gradient(160deg,#0e2a4e 0%,#14406f 55%,#103561 100%)}
.footer::after{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(rgba(255,255,255,.10) 1px,transparent 1.5px);background-size:26px 26px;-webkit-mask-image:linear-gradient(200deg,#000,transparent 55%);mask-image:linear-gradient(200deg,#000,transparent 55%)}
.footer::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--coral) 0 33.3%,var(--teal) 33.3% 66.6%,var(--sun) 66.6%)}
.footer-upper{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:50px;padding-bottom:56px}
.footer p{line-height:1.8;font-size:14px;margin-top:20px;max-width:340px}
.footer h4{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#fff;margin-bottom:18px}
.footer-links a{display:block;font-size:14px;margin:12px 0;transition:color .25s}
.footer-links a:hover{color:var(--teal)}
.socials{display:flex;gap:10px;margin-top:24px}
.social-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#cfe0ee;transition:.3s}
.social-icon svg{width:17px;height:17px;fill:currentColor}
.social-icon:hover{background:var(--teal);color:var(--navy-900);transform:translateY(-3px)}
.footer-lower{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.14);padding-top:24px;font-size:12px}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width:1240px){
  .navlinks{gap:20px}
  .service-grid{grid-template-columns:repeat(3,1fr)}
  .special-grid{grid-template-columns:repeat(3,1fr)}
  .footer-upper{grid-template-columns:1fr 1fr;gap:40px}
}
@media (max-width:1060px){
  .hero-inner{grid-template-columns:1fr;padding-top:130px;gap:70px}
  .stage{justify-self:center;max-width:600px}
  .work-grid{grid-template-columns:1fr 1fr}
  .wcard:first-child{grid-column:1/-1;grid-row:auto;min-height:420px}
  .platforms{grid-template-columns:1fr}
}
@media (max-width:900px){
  .container{width:min(100% - 40px,720px)}
  .menu-toggle{display:block}
  .nav-cta{display:none}
  .navlinks{position:fixed;inset:72px 0 auto;flex-direction:column;align-items:stretch;gap:4px;padding:18px 20px 26px;background:linear-gradient(160deg,rgba(14,42,78,.98),rgba(24,72,124,.98));backdrop-filter:blur(16px);transform:translateY(-12px);opacity:0;visibility:hidden;transition:.35s var(--ease);font-size:16px}
  .navlinks a{padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.08)}
  .navlinks.show{transform:none;opacity:1;visibility:visible}
  .nav,.scrolled .nav{height:72px}
  .section-head,.clients-head{flex-direction:column;align-items:flex-start;gap:18px}
  .intro-grid,.tech-grid,.about-grid,.pantone-grid,.faq-grid,.cta-inner{grid-template-columns:1fr;gap:50px}
  .about-visual{max-width:440px;margin:10px auto 40px}
  .ab-stamp{right:-10px}
  .journal-grid{grid-template-columns:1fr 1fr}
  .ptone-row{grid-template-columns:repeat(2,1fr)}
  .plist{grid-template-columns:1fr}
}
@media (max-width:640px){
  .ltrack img{height:70px}
  .hero{min-height:auto}
  .hero-inner{padding:118px 0 40px;gap:56px}
  .hero h1{font-size:clamp(42px,12.5vw,60px)}
  .hero-lead{font-size:16px}
  .cursor,.sel-size{display:none}
  .hb .shape{display:none}
  .hero-acts .btn{width:100%;justify-content:space-between}
  .proof{gap:12px}
  .swatch{width:118px;padding:10px;right:0;top:-4%}
  .sw b{width:22px;height:16px}
  .badge{width:92px;height:92px;left:-2%}
  .badge .core{inset:18px}
  .badge .core .logo-svg{width:38px;height:32px}
  .motion{left:22%;top:0;font-size:10.5px}
  .tag{font-size:10px;padding:6px 10px}
  .hero-foot .loc{display:none}
  .hero-foot{justify-content:center}
  .service-grid,.special-grid{grid-template-columns:1fr 1fr;gap:12px}
  .sbody{padding:16px}
  .sbody p{display:none}
  .work-grid,.journal-grid{grid-template-columns:1fr}
  .wcard{min-height:260px}
  .wcard:first-child{min-height:320px}
  .pillars{grid-template-columns:1fr}
  .about-visual{max-width:300px}
  .ab-mini.m1{right:-18%}.ab-mini.m2{left:-14%}
  .ab-stamp{max-width:190px;padding:14px 16px;right:-14px;bottom:24px}
  .ab-stamp b{font-size:16px}
  .faq-item p{padding:0 20px 20px 20px}
  .faq-side{position:static}
  .faq-visual{max-width:none}
  .faq-bubble.q{left:-6px}.faq-bubble.a{right:-6px}
  .faq-bg .qmark{font-size:320px}
  .footer-upper{grid-template-columns:1fr}
  .footer-lower{flex-direction:column}
  .glass{display:none}
}
@media (max-width:400px){
  .service-grid,.special-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}
  .reveal,.hero .enter,.stage .pop{opacity:1;transform:none}
  .ribbons path{stroke-dashoffset:0}
}

/* ==========================================================
   ABOUT PAGE
   ========================================================== */
.page-hero{min-height:auto}
.ph-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;padding:150px 0 150px}
.crumbs{display:flex;gap:10px;align-items:center;font-size:12.5px;color:#9fbbd3;margin-bottom:22px}
.crumbs a:hover{color:#fff}.crumbs span{opacity:.5}.crumbs b{color:var(--teal);font-weight:700}
.page-hero h1{font-size:clamp(46px,6vw,92px);margin:26px 0 24px;line-height:1.02}
.page-hero h1 em{display:block;font-size:.72em;margin-top:8px;background:linear-gradient(95deg,var(--teal),var(--azure) 45%,var(--sun));-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.1em}
.page-hero h1 .dot{color:var(--coral)}
.ph-mark{position:relative;aspect-ratio:1;max-width:440px;width:100%;justify-self:center}
.pm-ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.16)}
.pm-ring.r-a{inset:0;border-style:dashed;animation:spin 60s linear infinite}
.pm-ring.r-b{inset:12%;border-color:rgba(29,202,211,.35)}
.pm-ring.r-c{inset:24%;border-color:rgba(255,196,45,.3);animation:spin 40s linear infinite reverse}
.pm-ring.r-b::before,.pm-ring.r-c::before{content:'';position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:var(--teal);box-shadow:0 0 14px var(--teal)}
.pm-ring.r-c::before{background:var(--sun);box-shadow:0 0 14px var(--sun)}
.pm-ring.r-b{animation:spin 30s linear infinite}
.pm-card{position:absolute;inset:31%;border-radius:32px;background:#fff;display:grid;place-items:center;box-shadow:0 40px 80px -30px rgba(0,0,0,.6),0 0 0 10px rgba(255,255,255,.06);--logo-ink:#5E5F5F;--logo-ink2:#909294;animation:float 8s ease-in-out infinite}
.pm-card .logo-svg{width:78%;height:auto}
.pm-chip{position:absolute;display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:rgba(14,42,78,.85);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.16);font-size:12px;font-weight:700;color:#fff;box-shadow:0 14px 30px -14px rgba(0,0,0,.6);animation:float 7s ease-in-out infinite}
.pm-chip i{width:8px;height:8px;border-radius:50%}
.pm-chip.c1{left:-2%;top:22%}.pm-chip.c2{right:-4%;top:46%;animation-delay:-2.5s}.pm-chip.c3{left:10%;bottom:10%;animation-delay:-5s}

/* mission / vision — overlaps hero */
.mv{position:relative;z-index:2;margin-top:-90px}
.mv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mv-card{position:relative;overflow:hidden;padding:34px 30px 32px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 30px 60px -36px rgba(15,39,68,.5);transition:transform .45s var(--ease),box-shadow .45s}
.mv-card::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:var(--c)}
.mv-card::after{content:'';position:absolute;right:-50px;bottom:-50px;width:160px;height:160px;border-radius:50%;background:var(--c);opacity:.08;transition:transform .6s var(--ease)}
.mv-card:hover{transform:translateY(-8px);box-shadow:0 40px 70px -36px rgba(15,39,68,.6)}
.mv-card:hover::after{transform:scale(1.6)}
.mv-ic{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 16%,#fff);color:var(--ink)}
.mv-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mv-card small{position:absolute;right:28px;top:30px;font:800 13px var(--display);color:#a5b4c3}
.mv-card h3{font-family:var(--display);font-size:22px;letter-spacing:-.02em;margin:22px 0 12px}
.mv-card p{color:var(--muted);line-height:1.8;font-size:15px;position:relative;z-index:1}

/* story */
.story-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:8%;align-items:center}
.story-visual{position:relative;max-width:520px;width:100%;padding:0 12% 10% 0;isolation:isolate}
.story-visual::before{content:'';position:absolute;left:-22px;top:-22px;width:60%;height:60%;border-radius:28px;background:radial-gradient(rgba(39,125,193,.25) 1.2px,transparent 1.6px);background-size:16px 16px;z-index:-1}
.sv-main{display:block;border-radius:24px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 40px 80px -40px rgba(15,39,68,.6)}
.sv-main img,.sv-side img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.sv-main:hover img,.sv-side:hover img{transform:scale(1.05)}
.sv-side{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:4/5;border-radius:20px;overflow:hidden;border:6px solid #fff;box-shadow:0 30px 60px -24px rgba(15,39,68,.55);transform:rotate(4deg);transition:transform .45s var(--ease)}
.sv-side:hover{transform:rotate(0) translateY(-6px)}
.sv-badge{position:absolute;left:-18px;bottom:16%;padding:16px 18px;border-radius:18px;background:linear-gradient(130deg,#123a66,#1d5c98);color:#fff;box-shadow:0 24px 50px -24px rgba(18,58,102,.8);animation:float 8s ease-in-out infinite}
.sv-badge b{display:block;font:800 26px/1 var(--display);color:var(--sun)}
.sv-badge small{display:block;margin-top:6px;font-size:11px;letter-spacing:.08em;color:#bcd6ea}
.story h2 em{color:var(--blue)}
.story p{color:var(--muted);line-height:1.9;font-size:16px;margin-top:18px}
.story .story-lead{font-size:17.5px;color:#41566c;margin-top:24px}
.story-quote{margin:28px 0 0;padding:22px 24px;border-radius:18px;background:var(--paper);border-left:4px solid var(--coral);font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.5;color:var(--ink)}
.story-quote span{display:block;margin-top:8px;font-family:var(--body);font-style:normal;font-size:14px;font-weight:700;color:var(--coral)}
.story-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.story-tags span{padding:8px 14px;border-radius:999px;font-size:12.5px;font-weight:700;background:color-mix(in srgb,var(--c) 15%,#fff);border:1px solid color-mix(in srgb,var(--c) 35%,#fff)}

/* band */
.band{position:relative;overflow:hidden;color:#fff;padding:64px 0;background:radial-gradient(40% 120% at 90% 0%,rgba(29,202,211,.3),transparent 70%),linear-gradient(110deg,#123a66,#1d5c98 60%,#174c82)}
.band::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.05) 0 1px,transparent 1px 16px)}
.band-inner{position:relative;display:flex;justify-content:space-between;align-items:center;gap:40px}
.band .eyebrow{color:var(--sun)}
.band h2{font-size:clamp(34px,4vw,58px);margin-top:14px}
.band h2 em{color:var(--teal)}

/* objectives */
.objectives{background:var(--paper);overflow:hidden}
.objectives::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(39,125,193,.12) 1px,transparent 1.5px);background-size:24px 24px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 45%);mask-image:linear-gradient(180deg,#000,transparent 45%);pointer-events:none}
.obj-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.obj{position:relative;overflow:hidden;padding:28px 24px;border-radius:22px;background:#fff;border:1px solid var(--line);transition:transform .45s var(--ease),box-shadow .45s,background .45s,color .45s}
.obj::after{content:'';position:absolute;inset:auto 0 0;height:4px;background:var(--c);transform:scaleX(.2);transform-origin:left;transition:transform .5s var(--ease)}
.obj:hover{transform:translateY(-8px);box-shadow:0 30px 60px -34px rgba(15,39,68,.55)}
.obj:hover::after{transform:scaleX(1)}
.obj-ic{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:var(--c);color:var(--navy-900);transition:transform .45s var(--ease)}
.obj:hover .obj-ic{transform:rotate(-8deg) scale(1.08)}
.obj-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.obj small{position:absolute;right:22px;top:26px;font:800 12px var(--display);color:#a5b4c3}
.obj h3{font-family:var(--display);font-size:18px;letter-spacing:-.02em;margin:22px 0 10px;line-height:1.3}
.obj p{color:var(--muted);font-size:14px;line-height:1.7}
.obj-wide{grid-column:span 2;background:linear-gradient(130deg,#123a66,#1d5c98);border-color:transparent;color:#fff}
.obj-wide p{color:#bcd6ea}.obj-wide small{color:#7fa3c2}

/* logo designs marquee */
.logos-made{background:#fff;overflow:hidden;padding-top:clamp(56px,6vw,84px)}
.lm-rows{display:grid;gap:16px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.lm-rows .ltrack img{height:120px;filter:none;opacity:1;border-radius:16px;box-shadow:0 14px 30px -24px rgba(15,39,68,.5)}
.lm-rows .ltrack img:hover{transform:translateY(-4px)}

/* profile QR */
.profile-card{display:flex;align-items:center;gap:16px;padding:12px 20px 12px 12px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:0 20px 40px -30px rgba(15,39,68,.5);max-width:380px}
.profile-card img{width:92px;height:92px;border-radius:12px}
.profile-card div{font-size:13px;color:var(--muted);line-height:1.5}
.profile-card b{display:block;font-family:var(--display);font-size:16px;color:var(--ink);margin-bottom:4px}

@media (max-width:1060px){
  .ph-inner{grid-template-columns:1fr;padding:130px 0 140px}
  .ph-mark{max-width:340px}
  .obj-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .mv-grid,.story-grid{grid-template-columns:1fr}
  .band-inner{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  .ph-inner{padding:116px 0 120px;gap:40px}
  .ph-mark{max-width:270px}
  .pm-chip{font-size:10.5px;padding:7px 11px}
  .obj-grid{grid-template-columns:1fr}
  .obj-wide{grid-column:auto}
  .lm-rows .ltrack img{height:84px}
  .band .btn{width:100%;justify-content:space-between}
  .sv-badge{left:-6px}
}

/* ==========================================================
   ABOUT — SCROLL-DRIVEN DESIGN ELEMENTS
   ========================================================== */
/* top progress + design-app zoom chip */
.sprog{position:fixed;left:0;right:0;top:0;height:3px;z-index:80;background:linear-gradient(90deg,var(--coral),var(--teal) 50%,var(--sun));transform-origin:left;transform:scaleX(var(--sp,0))}
.vruler{position:fixed;right:0;top:0;bottom:0;width:22px;z-index:70;pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(15,39,68,.35) 0 1px,transparent 1px 10px) right/6px 100% no-repeat,repeating-linear-gradient(180deg,rgba(15,39,68,.5) 0 1px,transparent 1px 50px) right/12px 100% no-repeat;
  background-color:rgba(255,255,255,.55);backdrop-filter:blur(6px);border-left:1px solid rgba(15,39,68,.12)}
.vr-mark{position:absolute;right:0;top:calc(var(--sp,0) * (100% - 24px));width:22px;height:24px;display:block}
.vr-mark::before{content:'';position:absolute;right:0;top:4px;border-right:12px solid var(--coral);border-top:8px solid transparent;border-bottom:8px solid transparent}
.vr-mark b{position:absolute;right:26px;top:2px;padding:3px 7px;border-radius:6px;background:var(--coral);color:#fff;font:700 10.5px var(--body);font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:1100px){.vruler{display:none}}
/* parallax floaters */
.story,.logos-made{overflow:hidden}
.story>.container,.objectives>.container,.logos-made>.container,.logos-made .lm-rows{position:relative;z-index:1}
.dz{position:absolute;z-index:0;pointer-events:none;will-change:transform}
.dz-cmyk{width:120px;height:110px}
.dz-cmyk i{position:absolute;width:70px;height:70px;border-radius:50%;mix-blend-mode:multiply;opacity:.85}
.dz-cmyk i:nth-child(1){left:0;top:0;background:#00b7eb}.dz-cmyk i:nth-child(2){left:44px;top:0;background:#ec008c}.dz-cmyk i:nth-child(3){left:22px;top:38px;background:#ffe600}
.dz-fan{width:150px;height:150px}
.dz-fan i{position:absolute;left:60px;top:10px;width:34px;height:130px;border-radius:8px;transform-origin:50% 92%;box-shadow:0 10px 20px -10px rgba(15,39,68,.5);border:3px solid #fff;border-bottom-width:22px}
.dz-fan i:nth-child(1){background:var(--coral);transform:rotate(-36deg)}.dz-fan i:nth-child(2){background:var(--sun);transform:rotate(-12deg)}.dz-fan i:nth-child(3){background:var(--teal);transform:rotate(12deg)}.dz-fan i:nth-child(4){background:var(--blue);transform:rotate(36deg)}
.dz-type{padding:14px 18px;border-radius:16px;background:#fff;box-shadow:0 24px 50px -26px rgba(15,39,68,.55);border:1px solid var(--line)}
.dz-type b{display:block;font:italic 400 54px/1 var(--serif);color:var(--ink)}
.dz-type small{display:block;margin-top:6px;font:700 9.5px var(--body);letter-spacing:.16em;color:#8a9bad;text-transform:uppercase}
.dz-type em{display:flex;gap:4px;margin-top:8px}.dz-type em i{width:14px;height:14px;border-radius:4px}
.dz-bez{width:220px;height:120px}
.dz-bez path{fill:none;stroke:var(--blue);stroke-width:2.5}
.dz-bez line{stroke:#9fb3c8;stroke-width:1.2}
.dz-bez rect{fill:#fff;stroke:var(--blue);stroke-width:2}
.dz-bez circle{fill:var(--coral)}
.dz-cursor{display:flex;align-items:flex-start;gap:2px}
.dz-cursor svg{width:22px;height:22px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25))}
.dz-cursor span{margin-top:15px;font:700 11px var(--body);color:#fff;padding:6px 10px;border-radius:0 8px 8px 8px;background:var(--c,var(--coral))}
.dz-ruler{width:260px;height:30px;border-radius:6px;background:repeating-linear-gradient(90deg,#9fb3c8 0 1px,transparent 1px 10px) bottom/100% 8px no-repeat,repeating-linear-gradient(90deg,#6b8199 0 1px,transparent 1px 50px) bottom/100% 15px no-repeat,#fff;box-shadow:0 14px 30px -18px rgba(15,39,68,.5);border:1px solid var(--line)}
.dz-pen{width:64px;height:64px}

/* scroll-drawn pen path in story */
.drawpath{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.drawpath .trail{fill:none;stroke:url(#penGrad);stroke-width:3;stroke-linecap:round}
.drawpath .ghost{fill:none;stroke:rgba(39,125,193,.12);stroke-width:1.5;stroke-dasharray:6 8}
.drawpath .anchor{fill:#fff;stroke:var(--blue);stroke-width:2}
.drawpath .nib path{fill:var(--navy-900)}
.drawpath .nib circle{fill:var(--sun)}

/* pinned horizontal process */
.process{position:relative;height:calc(100vh + 1700px);background:linear-gradient(160deg,#0e2a4e,#14406f 60%,#103561)}
.pr-pin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:34px;color:#fff;isolation:isolate}
.pr-pin::before{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(rgba(255,255,255,.13) 1px,transparent 1.5px);background-size:22px 22px}
.pr-pin::after{content:'';position:absolute;z-index:-1;width:600px;height:600px;right:-150px;top:-200px;border-radius:50%;background:rgba(29,202,211,.18);filter:blur(90px)}
.pr-count{font:800 15px var(--display);color:#9fbbd3;display:flex;align-items:center;gap:14px}
.pr-count b{font-size:42px;color:#fff;letter-spacing:-.03em}
.pr-bar{width:160px;height:4px;border-radius:4px;background:rgba(255,255,255,.15);overflow:hidden}
.pr-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--sun));transform-origin:left;transform:scaleX(var(--pp,0))}
.pr-track{display:flex;gap:34px;padding-left:max(48px,calc((100vw - 1360px)/2));will-change:transform}
.artboard{flex:none;width:400px}
.ab-name{display:flex;justify-content:space-between;font:600 11.5px var(--body);color:#9fbbd3;margin:0 0 8px 2px}
.ab-name b{color:#fff}
.ab-canvas{position:relative;height:430px;border-radius:6px;background:#fff;color:var(--ink);padding:26px;display:flex;flex-direction:column;box-shadow:0 40px 80px -40px rgba(0,0,0,.7);outline:1.5px solid transparent;outline-offset:4px;transition:outline-color .4s,transform .5s var(--ease)}
.artboard.on .ab-canvas{outline-color:var(--teal);transform:translateY(-8px)}
.ab-canvas .crop{position:absolute;width:14px;height:14px;border-color:#b7c6d4;border-style:solid}
.crop.tl{left:-12px;top:-12px;border-width:0 1.5px 1.5px 0}.crop.tr{right:-12px;top:-12px;border-width:0 0 1.5px 1.5px}.crop.bl{left:-12px;bottom:-12px;border-width:1.5px 1.5px 0 0}.crop.br{right:-12px;bottom:-12px;border-width:1.5px 0 0 1.5px}
.ab-ill{flex:1;border-radius:4px;background:var(--paper);display:grid;place-items:center;overflow:hidden;position:relative}
.ab-ill svg{width:78%;height:78%}
.ab-canvas h3{font-family:var(--display);font-size:22px;letter-spacing:-.02em;margin-top:20px;display:flex;align-items:center;gap:10px}
.ab-canvas h3 i{width:10px;height:10px;border-radius:3px;background:var(--c);transform:rotate(45deg)}
.ab-canvas p{color:var(--muted);font-size:14px;line-height:1.65;margin-top:8px}
.pr-tools span{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;color:#9fbbd3;transition:.3s}
.pr-tools span svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pr-tools span.on{background:var(--teal);color:var(--navy-900)}


@media (max-width:900px){
  .process{height:auto}
  .pr-pin{position:relative;height:auto;padding:90px 0}
  .pr-head{flex-direction:column;align-items:flex-start}
  .pr-count,.pr-tools{display:none}
  .pr-track{flex-direction:column;padding:0 20px;transform:none!important;gap:44px}
  .artboard{width:100%}
  .ab-canvas{height:auto;min-height:400px}
  .ab-ill{min-height:200px}
  .dz-type,.dz-ruler,.dz-bez{display:none}
}
@media (prefers-reduced-motion:reduce){
  .dz,.pr-track{transform:none!important}
}

/* continuous pen line through the light sections */
.draw-zone{position:relative;isolation:isolate}
.dz-svg{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.draw-zone>section>*:not(.dz):not(.dz-svg):not(.pr-pin):not(.ribbons):not(.lor-guy):not(.lg-say):not(.lg-floor){position:relative;z-index:2}
.draw-zone .pr-pin{z-index:2}
.dz-svg .trail{fill:none;stroke:url(#penGradV);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.dz-svg .ghost{fill:none;stroke:url(#ghostGradV);stroke-width:1.5;stroke-dasharray:6 8}
.dz-svg .anchor{fill:#fff;stroke:var(--blue);stroke-width:2;opacity:.35;transition:opacity .4s,fill .4s}
.dz-svg .anchor.hit{opacity:1;fill:var(--sun);stroke:var(--navy-900)}
.dz-svg .nib path{fill:var(--navy-900)}
.dz-svg .nib circle{fill:var(--sun)}

/* ---- About hero v3: bright blue, clean ---- */
.page-hero{background:linear-gradient(118deg,#071a33 0%,#0b2a52 40%,#12498a 72%,#1d6fc0 100%)}
.ph-bg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.ph-glow{position:absolute;border-radius:50%;filter:blur(90px)}
.ph-glow.g1{width:640px;height:640px;right:-140px;top:-160px;background:rgba(82,194,245,.42)}
.ph-glow.g2{width:460px;height:460px;left:-180px;bottom:-240px;background:rgba(29,202,211,.16)}
.page-hero .ph-inner{grid-template-columns:1fr 1.05fr;gap:64px}
.page-hero .crumbs{color:#cfe6fb}.page-hero .crumbs b{color:#fff}
.page-hero .hero-pill{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff}
.page-hero .hero-pill .tri{background:rgba(255,255,255,.9)}
.page-hero h1 em{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--sun)}
.page-hero .hero-lead{color:#e3f1fc}
.page-hero .btn-primary{background:#fff;color:var(--navy-900);box-shadow:0 16px 34px -14px rgba(6,30,70,.55)}
.page-hero .btn-primary .arr{background:var(--coral)}
.page-hero .btn-ghost{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.08)}
.ph-figure{position:relative;margin:0;align-self:center}
.ph-figure img{display:block;width:100%;aspect-ratio:16/10.5;object-fit:cover;border-radius:24px;box-shadow:0 40px 80px -30px rgba(4,26,64,.65);border:6px solid rgba(255,255,255,.18)}
.ph-caption{position:absolute;left:-28px;bottom:-24px;display:flex;align-items:center;gap:12px;padding:14px 20px 14px 14px;border-radius:18px;background:#fff;box-shadow:0 24px 50px -22px rgba(4,26,64,.6)}
.ph-caption .tri{padding:8px 9px;border-radius:12px;background:var(--paper)}
.ph-caption b{display:block;font:700 15px var(--display);color:var(--ink)}
.ph-caption small{display:block;font-size:10.5px;letter-spacing:.12em;color:var(--muted);margin-top:3px;text-transform:uppercase}
@media (max-width:1060px){.page-hero .ph-inner{grid-template-columns:1fr}.ph-figure{max-width:640px}}
@media (max-width:640px){.page-hero .ph-inner{padding-bottom:160px}.ph-caption{left:12px;bottom:-22px;padding:10px 14px 10px 10px}.ph-caption b{font-size:13px}}

/* ---- Mission cards v2: photo cards ---- */
.mv-card{padding:0}
.mv-card::after{display:none}
.mv-photo{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:#dfe8f0}
.mv-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.mv-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,29,54,.55))}
.mv-card:hover .mv-photo img{transform:scale(1.07)}
.mv-tag{position:absolute;z-index:1;left:16px;top:16px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--ink);font:700 11px var(--body);letter-spacing:.14em;text-transform:uppercase}
.mv-body{position:relative;padding:0 28px 30px}
.mv-body .mv-ic{position:relative;margin-top:-27px;background:var(--c);color:var(--navy-900);box-shadow:0 0 0 6px #fff,0 14px 24px -10px rgba(15,39,68,.4)}
.mv-card small{top:auto;right:26px;margin-top:0}
.mv-body small{position:absolute;right:26px;top:22px}
.mv-card h3{margin-top:18px}
.mv-card::before{z-index:2}

/* ---- Story visual v2 ---- */
.story-visual{max-width:600px;padding:0 0 18% 0}
.sv-main{position:relative;aspect-ratio:4/3;border-radius:24px}
.sv-chip{position:absolute;left:16px;top:16px;display:flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;background:rgba(10,29,54,.8);backdrop-filter:blur(8px);color:#fff;font:700 11.5px var(--body)}
.sv-chip i{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(29,202,211,.25)}
.sv-side{width:40%;right:-4%;bottom:0}
.sv-badge{bottom:6%}

@media (max-width:900px){
}
@media (max-width:640px){.sv-side{right:0}}

/* ruler marker adapts on dark/blue sections */
.vruler{transition:background-color .35s}
.vr-mark::before,.vr-mark b{transition:background .35s,border-color .35s,color .35s}
.vruler.on-dark{background:repeating-linear-gradient(180deg,rgba(255,255,255,.45) 0 1px,transparent 1px 10px) right/6px 100% no-repeat,repeating-linear-gradient(180deg,rgba(255,255,255,.75) 0 1px,transparent 1px 50px) right/12px 100% no-repeat;background-color:rgba(10,29,54,.25);border-left-color:rgba(255,255,255,.18)}
.vruler.on-dark .vr-mark::before{border-right-color:var(--sun);filter:drop-shadow(0 0 6px rgba(255,196,45,.7))}
.vruler.on-dark .vr-mark b{background:linear-gradient(90deg,var(--sun),var(--teal));color:var(--navy-900);box-shadow:0 6px 16px -6px rgba(255,196,45,.6)}
.dz-svg .nib path,.dz-svg .nib circle{transition:fill .3s}
.dz-svg .nib.dark path{fill:var(--sun)}
.dz-svg .nib.dark circle{fill:var(--navy-900)}
.dz-svg .nib.dark{filter:drop-shadow(0 0 8px rgba(255,196,45,.7))}


/* hero video card */
.ph-figure{padding-left:15%}
.ph-video{position:absolute;left:0;top:50%;transform:translateY(-46%);width:31%;aspect-ratio:9/16;border-radius:22px;overflow:hidden;background:#0b2a52;border:5px solid #fff;box-shadow:0 34px 70px -24px rgba(2,14,34,.75);z-index:2}
.ph-video video{width:100%;height:100%;object-fit:cover;display:block}
.pv-live{position:absolute;left:10px;top:10px;display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:rgba(7,26,51,.75);backdrop-filter:blur(6px);color:#fff;font:700 10.5px var(--body);letter-spacing:.04em}
.pv-live i{width:7px;height:7px;border-radius:50%;background:var(--coral);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(238,62,85,.6)}50%{box-shadow:0 0 0 5px rgba(238,62,85,0)}}
.pv-toggle{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;border:0;display:grid;place-items:center;background:rgba(255,255,255,.9);color:var(--navy-900);transition:transform .25s}
.pv-toggle:hover{transform:scale(1.08)}
.pv-toggle svg{width:14px;height:14px;fill:currentColor}
.ph-figure .ph-caption{left:auto;right:-18px}
@media (max-width:640px){.ph-figure{padding-left:24%}.ph-video{width:40%;border-width:4px;border-radius:16px}.ph-figure .ph-caption{right:8px}}

/* ---- LOR character (stands on the footer's top colour strip) ---- */
.draw-zone{z-index:3}
.cta{padding-bottom:40px;--lift:0px}
.lg-floor{display:none!important}
.lg-floor{position:absolute;bottom:calc(var(--lift) - 2px);z-index:3;width:300px;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 7px,transparent 7px 13px);pointer-events:none}
.lg-floor::before,.lg-floor::after{content:"";position:absolute;top:-4px;width:9px;height:9px;border:1.5px solid rgba(255,255,255,.5);background:#14406f}
.lg-floor::before{left:-5px}.lg-floor::after{right:-5px}
.cta .cta-inner{grid-template-columns:1fr}
.cta .cta-inner>div{max-width:620px}
.lor-guy{position:absolute;bottom:var(--lift);z-index:4;width:107px;height:190px;pointer-events:none;--a:0deg;--bob:0px;--rot:0deg;--fx:1;will-change:left}
.lg-flip{position:relative;width:100%;height:100%;transform-origin:50% 100%;transform:translateY(var(--bob)) rotate(var(--rot)) scaleX(var(--fx))}
.lor-guy.face-left .lg-flip{--fx:-1}
.lg-img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.lg-flip{filter:drop-shadow(0 10px 8px rgba(0,0,0,.25))}
.lg-leg{transform-origin:54.2% 63.4%}
.lg-leg.b{transform:rotate(var(--a,0deg))}
.lg-leg.f{transform:rotate(calc(var(--a,0deg) * -1))}
.lg-bulb{position:absolute;left:29.6px;top:-47px;width:52px;height:45.5px;overflow:visible}
.g-glass{fill:rgba(255,255,255,.14);stroke:#d6e2ec;stroke-width:2;transition:stroke .35s}
.g-lit,.g-halo{opacity:0;transition:opacity .35s}
.g-rays{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.6);transition:opacity .35s,transform .45s cubic-bezier(.3,1.6,.5,1)}
.lor-guy.lit .g-lit,.lor-guy.lit .g-halo{opacity:1}
.lor-guy.lit .g-glass{stroke:#ffe08a}
.lor-guy.lit .g-rays{opacity:1;transform:scale(1);animation:rays 1.6s ease-in-out .45s infinite}
@keyframes rays{50%{transform:scale(1.12)}}
.lor-guy.lit{animation:hop .55s ease-out}
@keyframes hop{40%{translate:0 -12px}}
@media (max-width:640px){.cta{padding-bottom:300px;--lift:0px}.lg-floor{display:none}}

/* typing speech bubble in front of the character */
.cta .lg-say{position:absolute;bottom:calc(92px + var(--lift));z-index:4;margin:0;max-width:300px;padding:14px 18px;border-radius:18px 18px 18px 4px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);color:#fff;font:700 21px/1.3 var(--display);letter-spacing:-.02em;opacity:0;transform:translateY(8px) scale(.96);transform-origin:0 100%;transition:opacity .3s,transform .35s cubic-bezier(.3,1.4,.5,1);pointer-events:none}
.cta .lg-say.show{opacity:1;transform:none}
.lg-say em{font-family:var(--serif);font-weight:400;font-style:italic;color:var(--sun)}
.lg-caret{display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.15em;background:var(--sun);animation:caret .8s steps(1) infinite}
.lg-say.done .lg-caret{animation:caret .8s steps(1) 3 forwards}
@keyframes caret{50%{opacity:0}}
@media (max-width:640px){.cta .lg-say{font-size:15px;bottom:calc(70px + var(--lift));padding:11px 13px;border-radius:16px 16px 4px 16px}}

/* smooth turn to face the audience: side view narrows + fades while front view widens + fades in */
.lg-side,.lg-front{position:absolute;inset:0;transform-origin:50% 100%}
.lg-side{transition:transform .7s cubic-bezier(.45,0,.25,1),opacity .55s ease .1s}
.lg-front{width:100%;height:100%;opacity:0;transform:scaleX(.55) translateX(6%);transition:transform .75s cubic-bezier(.25,.9,.3,1) .12s,opacity .5s ease .12s}
.lor-guy.lit.has-front .lg-side{transform:scaleX(.55) translateX(-4%);opacity:0}
.lor-guy.lit.has-front .lg-front{transform:none;opacity:1}

.lg-cta{display:flex;align-items:center;gap:8px;width:max-content;max-height:0;margin-top:0;overflow:hidden;opacity:0;padding:0 14px;border-radius:999px;background:var(--sun);color:var(--navy-900);font:700 13px/1 var(--body);letter-spacing:0;transition:max-height .35s,margin .35s,padding .35s,opacity .3s .1s}
.cta .lg-say.done{pointer-events:auto}
.lg-say.done .lg-cta{max-height:40px;margin-top:12px;padding:9px 14px;opacity:1}
.lg-cta:hover{background:#fff}

/* ---- About hero: floating elements, hovers, replayable entrance ---- */
.hf{position:absolute;pointer-events:none}
.hf-dots{right:4%;bottom:12%;width:180px;height:120px;background-image:radial-gradient(rgba(255,255,255,.35) 1.4px,transparent 1.8px);background-size:18px 18px;opacity:.6;animation:hfFloat 9s ease-in-out infinite}
.hf-ring{left:42%;top:14%;width:150px;height:150px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.22);animation:spin 40s linear infinite}
.hf-ring::after{content:'';position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:var(--teal);box-shadow:0 0 12px var(--teal)}
.hf-dia{width:var(--s);height:var(--s);border:2px solid var(--c);border-radius:4px;transform:rotate(45deg);animation:hfFloat 7s ease-in-out infinite}
.hf-dia.d1{--s:16px;--c:var(--sun);left:30%;bottom:9%}
.hf-dia.d2{--s:22px;--c:var(--coral);left:38%;bottom:16%;animation-delay:-2s}
.hf-dia.d3{--s:12px;--c:var(--teal);right:46%;top:62%;animation-delay:-4s}
.hf-plus{width:14px;height:14px;animation:hfFloat 8s ease-in-out infinite}
.hf-plus::before,.hf-plus::after{content:'';position:absolute;background:rgba(255,255,255,.55);border-radius:2px}
.hf-plus::before{inset:6px 0}.hf-plus::after{inset:0 6px}
.hf-plus.p1{left:28%;top:16%}.hf-plus.p2{right:6%;top:20%;animation-delay:-3s}
.hf-chip{display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px);color:#e6f2fc;font:700 11px var(--body);letter-spacing:.04em;animation:hfFloat 8s ease-in-out infinite;box-shadow:0 14px 30px -16px rgba(0,0,0,.5)}
.hf-chip b{font:italic 400 15px var(--serif);color:var(--sun)}
.hf-chip i{width:9px;height:9px;border-radius:50%}
.hf-chip svg{width:14px;height:14px;fill:var(--teal)}
.hf-chip.c1{right:24%;top:13%;animation-delay:-1s}
.hf-chip.c2{right:4%;top:13%;animation-delay:-3.5s}
.hf-chip.c3{left:47%;bottom:22%;animation-delay:-5.5s}
@keyframes hfFloat{0%,100%{translate:0 0}50%{translate:0 -14px}}
/* hero entrance (replays via .replay class) */
.page-hero .hf{opacity:0;transition:opacity .8s ease}
.page-hero.in-view .hf{opacity:1}
.page-hero.in-view .hf:nth-child(n+5){transition-delay:.6s}
.page-hero.replay .enter{animation:none;opacity:0;transform:translateY(28px)}
/* hero hovers */
.ph-figure img{transition:transform .6s var(--ease),box-shadow .6s}
.ph-figure:hover>img{transform:translateY(-6px) scale(1.015);box-shadow:0 50px 90px -30px rgba(2,14,34,.8)}
.ph-video{transition:transform .5s var(--ease)}
.ph-video:hover{transform:translateY(-50%) rotate(-2deg) scale(1.04)}
.ph-caption{transition:transform .45s var(--ease)}
.ph-figure:hover .ph-caption{transform:translate(-6px,6px)}
.page-hero .hero-pill{transition:background .3s,transform .3s}
.page-hero .hero-pill:hover{background:rgba(255,255,255,.22);transform:translateY(-2px)}
.page-hero .crumbs a{transition:color .25s}
.page-hero h1 em{transition:letter-spacing .5s var(--ease)}
.page-hero h1:hover em{letter-spacing:.01em}
@media (max-width:1060px){.hf-chip,.hf-ring{display:none}}
@media (prefers-reduced-motion:reduce){.hf{animation:none!important}}

.lg-front{display:block}
.lg-wink{opacity:0}
.lor-guy.winking .lg-wink{animation:wink 1.1s ease-in-out 1}
@keyframes wink{0%,100%{opacity:0}18%,62%{opacity:1}}

/* ---- Mission cards v3: full-image floating cards with text overlay ---- */
.mv-card{padding:0;background:#0a1d36;border:0;min-height:440px;display:flex;align-items:flex-end;border-radius:26px;
  box-shadow:0 40px 60px -30px rgba(6,24,52,.55),0 18px 30px -22px rgba(6,24,52,.35);animation:mvFloat 6s ease-in-out infinite}
.mv-card:nth-child(2){animation-delay:-2s}.mv-card:nth-child(3){animation-delay:-4s}
@keyframes mvFloat{0%,100%{translate:0 0}50%{translate:0 -12px}}
.mv-card:hover{transform:none;box-shadow:0 55px 80px -30px rgba(6,24,52,.7),0 18px 30px -22px rgba(6,24,52,.4)}
.mv-card.reveal.in:hover{transform:translateY(-6px)}
.mv-card::before{z-index:3;height:5px}
.mv-photo{position:absolute;inset:0;aspect-ratio:auto;z-index:0}
.mv-photo::after{background:linear-gradient(180deg,rgba(7,24,48,0) 18%,rgba(7,24,48,.55) 46%,rgba(7,24,48,.94) 78%,#071830 100%)}
.mv-body{position:relative;z-index:1;padding:0 28px 30px;pointer-events:none}
.mv-body small{position:static;display:block;font:800 12px var(--display);letter-spacing:.14em;color:var(--c)}
.mv-card h3{color:#fff;margin:8px 0 10px;font-size:24px}
.mv-card p{color:#cfe0ee;font-size:14.5px;line-height:1.7}
.mv-tag{z-index:2}
@media (max-width:900px){.mv-card{min-height:400px}}
@media (prefers-reduced-motion:reduce){.mv-card{animation:none}}

/* ---- Process v2: inside a laptop ---- */
.process{height:calc(100vh + 1600px)}
.pr-pin{justify-content:center}
.pr-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:56px;align-items:center}
.pr-copy .eyebrow{color:var(--teal)}
.pr-copy h2{font-size:clamp(34px,3.8vw,56px);margin:14px 0 26px}
.pr-copy h2 em{color:var(--sun)}
.pr-steps{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:8px}
.ps{display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:14px;border:1px solid transparent;color:#9fbbd3;transition:background .4s,border-color .4s,color .4s,transform .4s var(--ease)}
.ps b{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font:800 12px var(--display);background:rgba(255,255,255,.08);color:#cfe0ee;transition:background .4s,color .4s}
.ps strong{display:block;font:700 15px var(--display);color:inherit}
.ps small{display:block;font-size:12.5px;opacity:.8;margin-top:2px}
.ps.on{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff;transform:translateX(6px)}
.ps.on b{background:var(--c);color:var(--navy-900)}
.pr-count{display:flex}
/* laptop */
.laptop{position:relative;perspective:1600px;width:94%;max-width:720px;justify-self:center}
.lt-lid{transform-origin:50% 100%;transform:rotateX(-82deg);opacity:.2;transition:transform 1.3s cubic-bezier(.2,.8,.2,1),opacity .6s}
.laptop.open .lt-lid{transform:none;opacity:1}
.lt-screen{position:relative;border-radius:18px 18px 4px 4px;padding:14px 14px 18px;background:linear-gradient(#1b1f27,#0d1016);box-shadow:0 0 0 2px #2c323d inset,0 40px 80px -30px rgba(0,0,0,.7);overflow:hidden}
.lt-screen::before{content:'';position:absolute;left:50%;top:5px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#2f3744}
.lt-glare{position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.07),transparent 40%);pointer-events:none}
.lt-app{border-radius:6px;overflow:hidden;background:#1e2430;aspect-ratio:16/10;display:flex;flex-direction:column}
.lt-top{display:flex;align-items:center;gap:12px;height:28px;padding:0 10px;background:#262d3a;color:#9aa8b8;font:600 10.5px var(--body);border-bottom:1px solid #12161d}
.lt-dots{display:flex;gap:5px}.lt-dots i{width:8px;height:8px;border-radius:50%}
.lt-dots i:nth-child(1){background:#ff5f57}.lt-dots i:nth-child(2){background:#febc2e}.lt-dots i:nth-child(3){background:#28c840}
.lt-file{flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lt-file b{color:#fff;font-weight:700}
.lt-zoom{padding:2px 7px;border-radius:5px;background:#1a2029;color:#cfe0ee;font-variant-numeric:tabular-nums}
.lt-body{flex:1;display:flex;min-height:0}
.lt-tools{width:40px;flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 0;background:#232a36;border-right:1px solid #12161d}
.lt-tools span{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;color:#8e9db0;transition:background .3s,color .3s}
.lt-tools span svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lt-tools span.on{background:var(--teal);color:var(--navy-900)}
.lt-canvas{position:relative;flex:1;overflow:hidden;background:#3a4252;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1.2px);background-size:14px 14px}
.lt-track{position:absolute;inset:0;display:flex;transition:transform .8s cubic-bezier(.65,0,.25,1)}
.lt-board{position:relative;flex:none;width:100%;height:100%;padding:7% 9%;display:flex;flex-direction:column}
.lt-board>.lt-ill,.lt-board>.lt-txt{background:#fff}
.lt-board::after{content:'';position:absolute;inset:7% 9%;border-radius:3px;box-shadow:0 18px 40px -16px rgba(0,0,0,.6);outline:1.5px solid transparent;outline-offset:3px;transition:outline-color .4s .3s;pointer-events:none}
.lt-board.on::after{outline-color:var(--teal)}
.lt-ill{flex:1;min-height:0;border-radius:3px 3px 0 0;display:grid;place-items:center;background:var(--paper)!important}
.lt-ill svg{width:62%;height:86%;transform:scale(.8);opacity:0;transition:transform .7s cubic-bezier(.3,1.5,.5,1) .35s,opacity .4s .35s}
.lt-board.on .lt-ill svg{transform:none;opacity:1}
.lt-txt{padding:10px 14px 12px;border-radius:0 0 3px 3px}
.lt-txt h3{display:flex;align-items:center;gap:8px;font:800 clamp(12px,1.25vw,17px) var(--display);color:var(--ink);letter-spacing:-.02em;margin:0}
.lt-txt h3 i{width:8px;height:8px;border-radius:2px;background:var(--c);transform:rotate(45deg)}
.lt-txt p{margin:4px 0 0;color:var(--muted);font-size:clamp(9.5px,.85vw,12px);line-height:1.5;opacity:0;transform:translateY(6px);transition:.5s .55s}
.lt-board.on .lt-txt p{opacity:1;transform:none}
.lt-board .crop{position:absolute;width:10px;height:10px;border-color:#7b8799;border-style:solid}
.lt-board .crop.tl{left:calc(9% - 13px);top:calc(7% - 13px);border-width:0 1.5px 1.5px 0}.lt-board .crop.tr{right:calc(9% - 13px);top:calc(7% - 13px);border-width:0 0 1.5px 1.5px}
.lt-board .crop.bl{left:calc(9% - 13px);bottom:calc(7% - 13px);border-width:1.5px 1.5px 0 0}.lt-board .crop.br{right:calc(9% - 13px);bottom:calc(7% - 13px);border-width:1.5px 0 0 1.5px}
.lt-cursor{position:absolute;left:60%;top:40%;display:flex;align-items:flex-start;gap:2px;z-index:3;transition:left .9s cubic-bezier(.5,0,.2,1),top .9s cubic-bezier(.5,0,.2,1);pointer-events:none}
.lt-cursor svg{width:16px;height:16px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.4))}
.lt-cursor em{margin-top:12px;font:700 9.5px var(--body);font-style:normal;color:#fff;background:var(--coral);padding:4px 7px;border-radius:0 6px 6px 6px;white-space:nowrap}
.lt-layers{list-style:none;margin:0;padding:8px 0;width:22%;max-width:150px;flex:none;background:#232a36;border-left:1px solid #12161d;font:600 10px var(--body);color:#8e9db0}
.lt-layers li{display:flex;align-items:center;gap:7px;padding:6px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .3s,color .3s}
.lt-layers li i{flex:none;width:9px;height:9px;border-radius:2px}
.lt-layers li.on{background:rgba(29,202,211,.16);color:#fff}
.lt-layers .lt-lh{color:#cfe0ee;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:9px;padding-bottom:8px}
.lt-base{position:relative;height:16px;margin:0 -5%;border-radius:2px 2px 14px 14px;background:linear-gradient(#d7dde5,#9aa5b3);box-shadow:0 30px 40px -18px rgba(0,0,0,.65)}
.lt-base span{position:absolute;left:50%;top:0;width:16%;height:6px;margin-left:-8%;border-radius:0 0 8px 8px;background:#aab3bf}
@media (max-width:900px){
  .process{height:auto}
  .pr-grid{grid-template-columns:1fr;gap:34px}
  .pr-steps{display:none}
  .lt-layers{display:none}
  .lt-top{font-size:9px}
}
@media (prefers-reduced-motion:reduce){.lt-lid{transform:none;opacity:1}}

/* two-frame walk cycle */
.lg-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 100%}
.lg-frame.fb{opacity:0}
.lor-guy.step-b .lg-frame.fa{opacity:0}
.lor-guy.step-b .lg-frame.fb{opacity:1}
.lg-bulb{top:-53px!important}
/* objectives appear in step with the pen line */
.obj.pen-hide{opacity:0;transform:translateY(26px) scale(.96);transition:opacity .5s ease,transform .6s cubic-bezier(.3,1.3,.5,1),box-shadow .45s,background .45s,color .45s}
.obj.pen-hide.pen-in{opacity:1;transform:none}
.obj.pen-hide.pen-in:hover{transform:translateY(-8px)}

/* ==================== SERVICES PAGE ==================== */
.svc-hero .ph-inner{grid-template-columns:1fr 1.05fr}
.svc-hero h1 em{display:block}
.sv-bento{position:relative;display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:1fr 1fr;gap:16px;height:440px}
.sb{position:relative;margin:0;border-radius:20px;overflow:hidden;background:#0b2a52;box-shadow:0 30px 60px -28px rgba(2,14,34,.75);border:4px solid rgba(255,255,255,.14);animation:hfFloat 7s ease-in-out infinite;transition:transform .5s var(--ease),box-shadow .5s}
.sb img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.sb:hover{box-shadow:0 44px 80px -28px rgba(2,14,34,.9)}
.sb:hover img{transform:scale(1.07)}
.sb1{grid-row:span 2;animation-delay:-1s}
.sb1 figcaption{top:10px;bottom:auto}.sb2{animation-delay:-3s}.sb3{animation-delay:-5s}
.sb4{position:absolute;width:44%;left:-14%;bottom:-34px;height:150px;animation-delay:-2s;z-index:2;border-color:#fff}
.sb figcaption{position:absolute;left:10px;bottom:10px;display:flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:rgba(7,26,51,.78);backdrop-filter:blur(6px);color:#fff;font:700 11px var(--body)}
.sb figcaption i{width:8px;height:8px;border-radius:50%}
.sb-chip{position:absolute;right:-12px;top:-18px;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:16px;background:#fff;color:var(--ink);font:700 12.5px var(--body);box-shadow:0 20px 40px -18px rgba(2,14,34,.6);animation:hfFloat 6s ease-in-out infinite}
.sb-chip b{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--sun);font:800 17px var(--display)}

.sv-trust{background:#fff;border-bottom:1px solid var(--line)}
.sv-trust-in{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:30px 0}
.sv-trust-in>div{display:flex;align-items:center;gap:14px}
.sv-trust-in b{flex:none;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 18%,#fff);color:var(--ink);font-size:18px}
.sv-trust-in strong{display:block;font:700 15px var(--display);color:var(--ink)}
.sv-trust-in span{font-size:13px;color:var(--muted)}

.svc{background:var(--paper)}
.svc h2 em{color:var(--blue)}
.svc-filters{display:flex;flex-wrap:wrap;gap:8px;margin:-20px 0 34px}
.svc-filters button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 18px;border-radius:999px;font:700 13px var(--body);transition:.3s}
.svc-filters button:hover{border-color:var(--blue);color:var(--blue)}
.svc-filters button.on{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.svc-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:start}
.growth{position:sticky;top:96px}
.gr-card{border-radius:26px;padding:24px 24px 20px;color:#fff;background:radial-gradient(60% 70% at 100% 0%,rgba(29,202,211,.25),transparent 70%),linear-gradient(150deg,#0b2a52,#12498a);box-shadow:0 40px 70px -40px rgba(6,24,52,.8)}
.gr-top{display:flex;justify-content:space-between;align-items:center;font:700 11.5px var(--body);letter-spacing:.08em;color:#9fc3e3;text-transform:uppercase}
.gr-live{display:flex;align-items:center;gap:8px}
.gr-live i{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(29,202,211,.25);animation:pulse 1.8s infinite}
.gr-count b{color:#fff;font-size:15px}
.gr-card h4{margin:12px 0 8px;font:800 clamp(20px,2vw,26px)/1.2 var(--display);letter-spacing:-.02em;min-height:2.4em;transition:opacity .25s}
.gr-card h4.swap{opacity:0}
.gr-chart{width:100%;height:auto;display:block;overflow:visible}
.gr-grid path{stroke:rgba(255,255,255,.1);stroke-width:1;stroke-dasharray:4 6}
.gr-bar{fill:rgba(255,255,255,.08);transition:fill .4s,height .6s var(--ease),y .6s var(--ease)}
.gr-bar.on{fill:rgba(82,194,245,.32)}
.gr-bar.cur{fill:var(--sun)}
.gr-area{fill:url(#grArea)}
.gr-ghost{fill:none;stroke:rgba(255,255,255,.18);stroke-width:2;stroke-dasharray:5 7}
.gr-line{fill:none;stroke:url(#grLine);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 6px 10px rgba(29,202,211,.45))}
.gr-dot circle{fill:#fff}
.gr-dot .halo{fill:rgba(255,196,45,.35);animation:dotPulse 1.6s ease-in-out infinite}
@keyframes dotPulse{50%{r:18}}
.gr-ticks text{fill:#7fa3c2;font:700 10px var(--body)}
.gr-kpis{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.gr-kpis span{display:flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.08);font:700 11px var(--body);color:#d6e7f5}
.gr-kpis span::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--c)}

.svc-list{display:grid;gap:22px}
.svc-item{display:grid;grid-template-columns:.9fr 1.1fr;border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 20px 40px -34px rgba(15,39,68,.5);opacity:.55;transform:scale(.97);transition:opacity .5s,transform .5s var(--ease),box-shadow .5s,border-color .5s}
.svc-item.cur{opacity:1;transform:none;border-color:color-mix(in srgb,var(--c) 55%,#fff);box-shadow:0 40px 70px -40px rgba(15,39,68,.6)}
.svc-item.hide{display:none}
.svc-img{position:relative;display:block;min-height:250px;overflow:hidden;background:#e9f0f6}
.svc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.svc-item:hover .svc-img img{transform:scale(1.07)}
.svc-no{position:absolute;left:14px;top:14px;padding:6px 10px;border-radius:9px;background:#fff;font:800 12px var(--display);color:var(--ink)}
.svc-img::after{content:'';position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--c);transform:scaleX(.25);transform-origin:left;transition:transform .6s var(--ease)}
.svc-item.cur .svc-img::after,.svc-item:hover .svc-img::after{transform:none}
.svc-body{padding:24px 24px 22px;display:flex;flex-direction:column}
.svc-tag{align-self:flex-start;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 16%,#fff);font:800 10.5px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.svc-body h3{margin:12px 0 8px;font:800 21px/1.25 var(--display);letter-spacing:-.02em}
.svc-body h3 a:hover{color:var(--blue)}
.svc-body p{color:var(--muted);font-size:14.5px;line-height:1.7}
.svc-subs{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.svc-subs li{padding:5px 10px;border-radius:8px;background:var(--paper);border:1px solid var(--line);font:600 12px var(--body);color:#41566c;transition:background .3s,border-color .3s}
.svc-item:hover .svc-subs li{border-color:color-mix(in srgb,var(--c) 40%,#fff)}
.svc-subs li.more{background:transparent;border-style:dashed;color:var(--muted)}
.svc-link{margin-top:auto;padding-top:18px;display:flex;align-items:center;justify-content:space-between;font:700 13px var(--body);color:var(--ink)}
.svc-link b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--paper);transition:.35s var(--ease)}
.svc-item:hover .svc-link b{background:var(--c);color:#fff;transform:rotate(45deg)}

.sv-cta{padding:clamp(80px,9vw,120px) 0}
.sv-cta-in{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}
.sv-cta-in p{max-width:560px}
.sv-cta-acts{display:flex;flex-direction:column;gap:12px;flex:none}

@media (max-width:1060px){.sv-bento{height:380px;max-width:640px}.sb4{left:-6%}}
@media (max-width:900px){
  .sv-trust-in{grid-template-columns:1fr 1fr}
  .svc-layout{grid-template-columns:1fr}
  .growth{position:sticky;top:72px;z-index:5}
  .gr-card{padding:12px 16px;border-radius:18px;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center}
  .gr-card .gr-chart{grid-row:1/3;grid-column:1;width:120px}
  .gr-card .gr-ticks,.gr-card .gr-kpis,.gr-card .gr-bars{display:none}
  .gr-card h4{margin:0;font-size:16px;min-height:0}
  .svc-item{grid-template-columns:1fr;opacity:1;transform:none}
  .svc-img{min-height:200px}
  .sv-cta-in{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){.sv-bento{height:300px}.sb4{display:none}.sb-chip{right:0}.sv-trust-in{grid-template-columns:1fr}}



.pg-hero-h1 em{display:block}
.page-hero h1 em{display:block}

/* ==================== CONTACT ==================== */
.ct-hero .ph-inner{grid-template-columns:1.05fr .95fr}
.ct-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ctc{display:flex;align-items:center;gap:14px;padding:18px;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);backdrop-filter:blur(10px);color:#fff;text-align:left;font:inherit;cursor:pointer;transition:transform .4s var(--ease),background .3s;animation:hfFloat 8s ease-in-out infinite}
.ctc:nth-child(2){animation-delay:-2s}.ctc:nth-child(3){animation-delay:-4s}.ctc:nth-child(4){animation-delay:-6s}
.ctc:hover{background:rgba(255,255,255,.16);transform:translateY(-4px)}
.ctc b{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--c);color:var(--navy-900);font-size:19px}
.ctc small{display:block;font:700 11px var(--body);letter-spacing:.12em;text-transform:uppercase;color:#9fc3e3}
.ctc strong{display:block;font:700 15px var(--display);margin-top:3px;word-break:break-word}
.ct-form-sec{background:var(--paper);overflow:hidden}
.plane-path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}
#ppGhost{fill:none;stroke:rgba(39,125,193,.18);stroke-width:1.6;stroke-dasharray:6 8}
#ppLine{fill:none;stroke:url(#none);stroke:#1DCAD3;stroke-width:2.2;stroke-dasharray:4 7;stroke-linecap:round}
#plane{filter:drop-shadow(0 6px 8px rgba(15,39,68,.3));transition:opacity .3s}
.plane-path.flyaway #plane{transition:transform 1.2s cubic-bezier(.5,0,.7,.3),opacity 1.2s}
.ct-form-sec .container{position:relative;z-index:1}
.ct-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
.ct-copy h2 em{color:var(--blue)}
.ct-copy p{color:var(--muted);line-height:1.8;margin-top:18px}
.ct-steps{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:10px}
.ct-steps li{display:flex;align-items:center;gap:12px;font:600 14.5px var(--body);color:var(--ink)}
.ct-steps b{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--navy-900);color:#fff;font:800 12px var(--display)}
.ct-form{display:grid;gap:16px;padding:clamp(22px,3vw,36px);border-radius:26px;background:#fff;border:1px solid var(--line);box-shadow:0 40px 70px -46px rgba(15,39,68,.6)}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ct-form label{display:grid;gap:7px;font:700 12.5px var(--body);color:var(--ink);letter-spacing:.02em}
.ct-form input,.ct-form select,.ct-form textarea{width:100%;padding:13px 15px;border-radius:13px;border:1.5px solid var(--line);background:var(--paper);font:500 14.5px var(--body);color:var(--ink);outline:0;transition:border-color .25s,background .25s,box-shadow .25s;resize:vertical}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(29,202,211,.15)}
.ct-form .bad{border-color:var(--coral)!important}
.cf-chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.cf-chips legend{font:700 12.5px var(--body);color:var(--ink);margin-bottom:7px;width:100%}
.cf-chips label{display:block}
.cf-chips input{position:absolute;opacity:0;width:1px;height:1px}
.cf-chips span{display:block;padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);font:600 13px var(--body);cursor:pointer;transition:.25s}
.cf-chips input:checked+span{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.cf-chips input:focus-visible+span{box-shadow:0 0 0 3px rgba(29,202,211,.4)}
.cf-send{justify-self:start;border:0}
.cf-err{margin:0;color:var(--coral);font:600 13px var(--body)}
.cf-ok{margin:0;color:#1a8f6b;font:700 13.5px var(--body)}
.ct-visit{background:#fff;padding:clamp(70px,8vw,110px) 0}
.ct-visit-in{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:center}
.ct-map{border-radius:26px;overflow:hidden;height:420px;box-shadow:0 40px 70px -46px rgba(15,39,68,.6);border:1px solid var(--line)}
.ct-map iframe{width:100%;height:100%;border:0}
.ct-addr h2{font-size:clamp(34px,3.6vw,52px);margin:14px 0}
.ct-addr h2 em{color:var(--coral)}
.ct-addr p{color:var(--muted);line-height:1.85;font-size:16px}
.ct-addr-acts{margin-top:22px}
.ct-social{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:26px}
.ct-social span{font:800 11px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.ct-social a{padding:8px 13px;border-radius:999px;border:1px solid var(--line);font:600 13px var(--body);transition:.25s}
.ct-social a:hover{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}
.ct-faq{background:var(--paper);padding:70px 0}
.ct-faq-in{display:flex;justify-content:space-between;align-items:center;gap:30px}
.ct-faq h2{font-size:clamp(28px,3vw,42px);margin-top:12px}
.ct-faq h2 em{color:var(--blue)}
@media (max-width:1060px){.ct-hero .ph-inner{grid-template-columns:1fr}}
@media (max-width:900px){.ct-grid,.ct-visit-in{grid-template-columns:1fr;gap:34px}.ct-faq-in{flex-direction:column;align-items:flex-start}.plane-path{display:none}}
@media (max-width:640px){.ct-cards,.cf-row{grid-template-columns:1fr}.ct-map{height:320px}}

/* ---- LOR chat assistant ---- */
.ai-fab{position:fixed;left:20px;bottom:20px;z-index:150;display:flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;border:0;border-radius:999px;background:linear-gradient(110deg,#0b2a52,#1466c2);color:#fff;font:700 13px var(--body);box-shadow:0 18px 40px -14px rgba(6,24,52,.7),0 0 0 1px rgba(255,255,255,.12) inset;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s}
.ai-fab:hover{transform:translateY(-3px)}
.ai-fab b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--teal),var(--sun));color:var(--navy-900);font-size:16px;animation:aiPulse 2.4s ease-in-out infinite;transition:transform .35s}
.lc.open~.ai-fab b,.lc.open .ai-fab b{transform:rotate(135deg)}
@keyframes aiPulse{0%,100%{box-shadow:0 0 0 0 rgba(29,202,211,.55)}50%{box-shadow:0 0 0 8px rgba(29,202,211,0)}}
.lc-panel{position:fixed;left:20px;bottom:84px;z-index:149;width:min(400px,calc(100vw - 40px));height:min(640px,calc(100vh - 120px));display:flex;flex-direction:column;border-radius:24px;overflow:hidden;background:#f3f6fa;box-shadow:0 40px 90px -30px rgba(4,18,40,.65),0 0 0 1px rgba(15,39,68,.08);
  opacity:0;visibility:hidden;transform:translateY(20px) scale(.96);transform-origin:0 100%;transition:opacity .3s,transform .4s cubic-bezier(.3,1.3,.5,1),visibility .3s}
.lc.open .lc-panel{opacity:1;visibility:visible;transform:none}
.lc-head{position:relative;padding:16px 16px 0;color:#fff;background:radial-gradient(70% 140% at 100% 0%,rgba(29,202,211,.35),transparent 70%),linear-gradient(120deg,#0b2a52,#14549a)}
.lc-head::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--coral),var(--teal),var(--sun))}
.lc-top{display:flex;align-items:center;gap:12px}
.lc-logo{position:relative;flex:none;width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center}
.lc-logo .logo-svg{width:30px;height:24px}
.lc-logo::after{content:'';position:absolute;right:0;bottom:1px;width:10px;height:10px;border-radius:50%;background:#28c840;border:2px solid #0f3a6c}
.lc-top strong{display:block;font:800 16px var(--display)}
.lc-top small{display:block;font-size:12px;color:#cfe3f4}
.lc-top>div{flex:1;min-width:0}
.lc-top button{width:34px;height:34px;border-radius:10px;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:grid;place-items:center;font-size:15px}
.lc-top button:hover{background:rgba(255,255,255,.24)}
.lc-tabs{display:flex;gap:4px;margin-top:12px}
.lc-tab{flex:1;padding:10px 8px 12px;border:0;background:none;color:#a9c8e4;font:700 12.5px var(--body);cursor:pointer;border-bottom:2px solid transparent}
.lc-tab.on{color:#fff;border-bottom-color:var(--sun)}
.lc-log{flex:1;overflow-y:auto;padding:16px 14px 8px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}
.lc-msg{display:flex;gap:8px;align-items:flex-end;max-width:100%;animation:lcIn .35s cubic-bezier(.3,1.3,.5,1)}
@keyframes lcIn{from{opacity:0;transform:translateY(10px)}}
.lc-msg.me{justify-content:flex-end}
.lc-av{flex:none;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--sun))}
.lc-av::before{content:'✦';display:grid;place-items:center;height:100%;font-size:12px;color:var(--navy-900)}
.lc-bub{max-width:86%;padding:11px 14px;border-radius:18px;font:500 13.5px/1.55 var(--body);color:var(--ink);background:#fff;border-bottom-left-radius:5px;box-shadow:0 6px 16px -12px rgba(15,39,68,.45);min-width:0}
.lc-msg.me .lc-bub{background:linear-gradient(110deg,#1466c2,#1d86dc);color:#fff;border-radius:18px 18px 5px 18px}
.lc-bub p{margin:0 0 6px}.lc-bub p:last-child{margin:0}
.lc-bub a{color:var(--blue);font-weight:700}
.lc-ar{font-weight:700;color:var(--blue)}
.lc-typing .lc-bub{display:flex;gap:4px;padding:14px}
.lc-typing i{width:7px;height:7px;border-radius:50%;background:#9fb3c8;animation:dotb 1s infinite}
.lc-typing i:nth-child(2){animation-delay:.15s}.lc-typing i:nth-child(3){animation-delay:.3s}
@keyframes dotb{50%{transform:translateY(-4px);opacity:.5}}
.lc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.lc-chips button{padding:7px 11px;border-radius:999px;border:1.5px solid #cfe0ee;background:#f4f8fc;color:var(--ink);font:700 12px var(--body);cursor:pointer;transition:.2s}
.lc-chips button:hover{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.lc-cards{display:flex;gap:10px;overflow-x:auto;margin:10px -4px 4px;padding:2px 4px 8px;scroll-snap-type:x mandatory}
.lc-card{flex:none;width:150px;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--line);scroll-snap-align:start;color:var(--ink)!important;text-decoration:none;transition:transform .3s}
.lc-card:hover{transform:translateY(-3px)}
.lc-card img{width:100%;height:96px;object-fit:cover;display:block;background:#eef3f8}
.lc-card span{display:block;padding:8px 10px;font:700 11.5px/1.35 var(--display);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lc-more{display:inline-block;margin-top:4px;font:700 12.5px var(--body)}
.lc-sum{display:grid;gap:6px;margin:8px 0 12px;padding:10px 12px;border-radius:12px;background:#f4f8fc;border:1px solid var(--line)}
.lc-sum span{font-size:12.5px;line-height:1.4}.lc-sum b{display:block;font:800 10px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.lc-btn{display:inline-flex;padding:10px 16px;border-radius:999px;background:linear-gradient(110deg,var(--teal),var(--azure));color:var(--navy-900)!important;font:800 13px var(--body);text-decoration:none}
.lc-note{font-size:12px;color:var(--muted);margin-top:8px!important}
.lc-form{display:flex;gap:8px;padding:10px 12px 12px;background:#fff;border-top:1px solid var(--line)}
.lc-in{flex:1;min-width:0;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:#f4f8fc;font:500 14px var(--body);color:var(--ink);outline:0}
.lc-in:focus{border-color:var(--teal);background:#fff}
.lc-send{flex:none;width:44px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--teal),var(--azure));color:var(--navy-900);cursor:pointer;display:grid;place-items:center}
.lc-send svg{width:16px;height:16px}
.lc-gen{position:relative;flex:1;display:none;overflow:hidden;background:#f4f6f9}
.lc-gen iframe{position:absolute;left:0;top:-56px;width:100%;height:calc(100% + 56px);border:0}
.lc-gen .ai-load{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted);font:600 13px var(--body);transition:opacity .4s}
.lc-gen .ai-load i{width:38px;height:38px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--teal);animation:spin .9s linear infinite}
.lc-gen.ready .ai-load{opacity:0;pointer-events:none}
.lc.gen .lc-log,.lc.gen .lc-form{display:none}.lc.gen .lc-gen{display:block}
@media (max-width:640px){.ai-fab span{display:none}.ai-fab{padding:8px}.lc-panel{left:8px;right:8px;bottom:76px;width:auto;height:calc(100vh - 96px)}}
@media (prefers-reduced-motion:reduce){.lc-msg{animation:none}}

/* LOR AI content generator inside the chat panel ([lor_ai_assistant]) */
.lc-gen{overflow-y:auto;padding:14px 16px 18px;background:#f4f8fc}
.lc-gen iframe{display:none}
.lc-gen-intro{padding:12px 14px;margin-bottom:12px;border-radius:14px;background:#fff;border:1px solid var(--line);font:500 12.5px/1.5 var(--body);color:var(--muted)}
.lc-gen-intro strong{display:block;font:800 14px var(--display);color:var(--ink);margin-bottom:2px}
.lc-gen form{display:grid;gap:10px;margin:0}
.lc-gen label{display:block;font:700 12px var(--body);color:var(--ink);margin:0 0 5px}
.lc-gen input[type=text],.lc-gen select,.lc-gen textarea{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font:500 13.5px var(--body);color:var(--ink);outline:0}
.lc-gen input:focus,.lc-gen select:focus,.lc-gen textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(29,202,211,.15)}
.lc-gen button[type=submit],.lc-gen .lor-ai-copy-btn{border:0;border-radius:999px;padding:11px 18px;background:linear-gradient(110deg,var(--teal),var(--azure));color:#0a1a2f;font:800 13px var(--body);cursor:pointer}
.lc-gen #lor-ai-result{margin-top:12px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid var(--line);font:500 13.5px/1.6 var(--body);color:var(--ink);white-space:pre-wrap}
.lc-gen-off{font:600 13px var(--body);color:var(--muted)}

/* WordPress admin bar */
.admin-bar .nav-shell{top:32px}.admin-bar .sprog{top:32px}
@media (max-width:782px){.admin-bar .nav-shell{top:46px}.admin-bar .sprog{top:46px}}
html{margin-top:0!important}
