/* ==========================================================
   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}
}


.sp-ring{position:relative;height:calc(100vh + 1500px);background:linear-gradient(180deg,#0e2a4e,#14406f)}
.ring-pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;gap:10px;overflow:hidden;color:#fff;isolation:isolate}
.ring-pin::before{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1.5px);background-size:22px 22px}
.ring-head{display:flex;justify-content:space-between;align-items:end;gap:30px;padding-top:70px}
.ring-head .eyebrow{color:var(--teal)}
.ring-head h2{font-size:clamp(34px,3.8vw,56px);margin-top:12px}
.ring-head h2 em{color:var(--sun)}
.ring-now{text-align:right}
.ring-now small{display:block;font:800 13px var(--display);letter-spacing:.12em;color:#9fc3e3}
.ring-now strong{display:block;font:800 clamp(22px,2.4vw,34px) var(--display);color:#fff;transition:opacity .2s}
.ring-stage{position:relative;height:min(58vh,480px);perspective:1400px;display:grid;place-items:center}
.ring3d{position:relative;width:290px;height:350px;transform-style:preserve-3d;transform:translateZ(-560px) rotateY(var(--ry,0deg))}
.rc{position:absolute;inset:0;border-radius:22px;overflow:hidden;background:#fff;transform:rotateY(calc(var(--i) * 36deg)) translateZ(560px);box-shadow:0 30px 60px -30px rgba(0,0,0,.7);transition:filter .4s,opacity .4s;backface-visibility:hidden}
.rc img{width:100%;height:76%;display:block;background:#f2f5f9}
.rc span{position:absolute;left:0;right:0;bottom:0;height:24%;display:flex;align-items:center;gap:10px;padding:0 16px;font:800 16px var(--display);color:var(--ink);border-top:4px solid var(--c)}
.rc span i{font-style:normal;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 22%,#fff);font-size:15px}
.rc.dim{filter:brightness(.55) saturate(.7)}

@media (max-width:900px){.sp-ring{height:auto}.ring-pin{position:relative;height:auto;padding:80px 0}.ring-head{flex-direction:column;align-items:flex-start;padding-top:0}.ring-now{text-align:left}
  .ring-stage{height:auto;perspective:none;display:block;margin-top:24px}.ring3d{width:auto;height:auto;transform:none!important;display:flex;gap:14px;overflow-x:auto;padding:0 20px 10px;scroll-snap-type:x mandatory}
  .rc{position:relative;flex:none;width:220px;height:260px;transform:none;scroll-snap-align:center}.rc.dim{filter:none}}
.ring-all{display:inline-block;margin-bottom:10px;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.25);color:#fff;font:700 12px var(--body);transition:.3s}.ring-all:hover{background:#fff;color:var(--navy-900)}

/* ---- 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}}

/* ===== Homepage hero v2: clean bright-navy + directional entrance + running cat ===== */
.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)}
.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}
@keyframes hfFloat{0%,100%{translate:0 0}50%{translate:0 -14px}}
.hf-dia.d1{left:44%;top:16%}.hf-plus.p1{left:30%;top:13%}
.hx{opacity:0;transition:opacity .8s ease var(--d,0s),translate 1s cubic-bezier(.2,.8,.2,1) var(--d,0s),scale 1s cubic-bezier(.2,.8,.2,1) var(--d,0s),rotate 1s cubic-bezier(.2,.8,.2,1) var(--d,0s)}
.hx.from-left{translate:-70px 0}.hx.from-right{translate:80px 0}.hx.from-down{translate:0 50px}.hx.from-up{translate:0 -60px}
.hx.zoom{scale:.82}.hx.spin{scale:.4;rotate:-140deg}
.hero.in-view .hx{opacity:1;translate:0 0;scale:1;rotate:0deg}
.hero h1 .line{overflow:hidden;padding-bottom:.06em}
.hero h1 .ln-in{display:inline-block;translate:0 110%;transition:translate 1s cubic-bezier(.2,.8,.2,1)}
.hero h1 .line:nth-child(2) .ln-in{transition-delay:.12s}.hero h1 .line:nth-child(3) .ln-in{transition-delay:.24s}
.hero.in-view h1 .ln-in{translate:0 0}
.hero h1 .line:first-child{overflow:visible}
.hero h1 .line:first-child .ln-in{translate:0 0;opacity:0;transition:opacity .8s .1s}
.hero.in-view h1 .line:first-child .ln-in{opacity:1}
.c-web:hover .card,.c-book:hover .card,.c-brand:hover .card{transform:rotate(0) scale(1.03);transition:transform .5s var(--ease)}
.card{transition:transform .5s var(--ease)}
/* running cat */
.cat-track{position:absolute;left:0;right:0;bottom:66px;height:84px;z-index:3;pointer-events:none}
.cat-line{position:absolute;left:4%;right:4%;bottom:4px;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.28) 0 8px,transparent 8px 16px)}
.cat{position:absolute;bottom:0;left:0;width:118px;height:71px;will-change:transform}
.cat-svg{width:100%;height:100%;overflow:visible;transition:transform .25s}
.cat.left .cat-svg{transform:scaleX(-1)}
.cl{transform-box:view-box}
.cl-fn,.cl-ff{transform-origin:86px 48px}.cl-bn,.cl-bf{transform-origin:44px 48px}
.cl-fn{rotate:var(--a,0deg)}.cl-ff{rotate:calc(var(--a,0deg) * -.7)}
.cl-bn{rotate:calc(var(--a,0deg) * -1)}.cl-bf{rotate:calc(var(--a,0deg) * .7)}
.cat-body{translate:0 var(--bob,0px)}
.cat-tail{transform-box:view-box;transform-origin:30px 40px;animation:tail 1.6s ease-in-out infinite}
.cat.run .cat-tail{animation-duration:.45s}
@keyframes tail{50%{rotate:-18deg}}
.cat-eye{animation:blink 4s infinite}
@keyframes blink{0%,94%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.cat-eye{transform-box:fill-box;transform-origin:center}
.yarn{position:absolute;bottom:2px;left:0;width:30px;height:30px;will-change:transform}
.yarn-svg{width:100%;height:100%;display:block}
.yarn-thread{position:absolute;right:24px;bottom:1px;width:46px;height:2px;background:#EE3E55;border-radius:2px;opacity:.8}
.yarn.left .yarn-thread{right:auto;left:24px}
@media (max-width:640px){.cat-track{bottom:56px;height:62px}.cat{width:84px;height:51px}.yarn{width:22px;height:22px}}
@media (prefers-reduced-motion:reduce){.hx,.hero h1 .ln-in{opacity:1!important;translate:0 0!important;scale:1!important;rotate:0deg!important}.cat-tail,.cat-eye{animation:none}}
.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}}

.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}}
/* 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)}
/* homepage pen line */
.pen-main{position:relative}
.hl-svg{position:absolute;left:0;top:0;width:100%;height:100%;z-index:6;pointer-events:none;overflow:visible}
.hl-svg .trail{fill:none;stroke:url(#hlGrad);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.hl-svg .ghost{fill:none;stroke:url(#hlGhostG);stroke-width:1.5;stroke-dasharray:6 8}
.hl-svg .anchor{fill:#fff;stroke:var(--blue);stroke-width:2;opacity:.35;transition:opacity .4s,fill .4s}
.hl-svg .anchor.hit{opacity:1;fill:var(--sun);stroke:var(--navy-900)}
.hl-svg .nib path{fill:var(--navy-900);transition:fill .3s}.hl-svg .nib circle{fill:var(--sun)}
.hl-svg .nib.dark path{fill:var(--sun)}.hl-svg .nib.dark circle{fill:var(--navy-900)}
.hl-svg .nib.dark{filter:drop-shadow(0 0 8px rgba(255,196,45,.7))}
/* footer cat */
.cta{padding-bottom:clamp(150px,14vw,190px)}
.fcat-track{position:absolute;left:0;right:0;bottom:0;height:80px;z-index:7;pointer-events:none}
.fcat{bottom:0}
.fcat .cat-svg{display:none}
.fcat.run .cat-svg{display:block}
.fcat .cat-sit{position:absolute;left:24px;bottom:0;width:58px;height:67px;overflow:visible}
.fcat.run .cat-sit{display:none}
.sit-tail{transform-box:view-box;transform-origin:62px 96px;animation:tail 2.2s ease-in-out infinite}
.sit-eyes{transform-box:fill-box;transform-origin:center;animation:blink 4.5s infinite}
.fcat-pop{position:absolute;left:-2px;bottom:64px;font-size:22px;color:var(--sun);opacity:0;scale:.3;transition:opacity .3s,scale .45s cubic-bezier(.3,1.8,.5,1);text-shadow:0 0 12px rgba(255,196,45,.8)}
.fcat.caught .fcat-pop{opacity:1;scale:1}
.fcat.caught .cat-sit{animation:pounce .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes pounce{40%{translate:0 -22px}}
@media (max-width:640px){.fcat .cat-sit{width:46px;height:53px}}

/* boxes appear one by one as the pen line passes */
.pen-box{opacity:0;translate:0 34px;scale:.96;transition:opacity .55s ease,translate .7s cubic-bezier(.2,.8,.2,1),scale .7s cubic-bezier(.2,.8,.2,1),transform .45s var(--ease),box-shadow .45s,border-color .45s,background .45s}
.pen-box.pen-in{opacity:1;translate:0 0;scale:1}
@media (prefers-reduced-motion:reduce){.pen-box{opacity:1;translate:0 0;scale:1}}

/* pen tip: header/footer blue */
.hl-svg .nib path,.dz-svg .nib path,.drawpath .nib path{fill:url(#nibGrad)!important;stroke:#fff;stroke-width:1.4;stroke-linejoin:round}
.hl-svg .nib circle,.dz-svg .nib circle,.drawpath .nib circle{fill:#1DCAD3!important}
.hl-svg .nib.dark,.dz-svg .nib.dark{filter:drop-shadow(0 0 8px rgba(82,194,245,.75))!important}
.hl-svg .anchor.hit,.dz-svg .anchor.hit{fill:#1DCAD3!important;stroke:#0b2a52!important}

/* ===== LOR Journal v2 ===== */
.jx{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#f5faff 0%,#e9f4fd 55%,#f3f9ff 100%)}
.jx h2 em{color:var(--blue)}
.jx-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.jx-blob{position:absolute;border-radius:50%;filter:blur(70px)}
.jx-blob.b1{width:460px;height:460px;left:-140px;top:-80px;background:rgba(82,194,245,.30)}
.jx-blob.b2{width:380px;height:380px;right:-100px;top:30%;background:rgba(29,202,211,.22)}
.jx-blob.b3{width:320px;height:320px;left:40%;bottom:-160px;background:rgba(39,125,193,.18)}
.jx-lines{position:absolute;inset:0;background-image:repeating-linear-gradient(180deg,transparent 0 31px,rgba(39,125,193,.07) 31px 32px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent)}
.jx-word{position:absolute;right:-20px;top:40px;font:italic 400 clamp(120px,16vw,240px)/1 var(--serif);color:transparent;-webkit-text-stroke:1.5px rgba(39,125,193,.14);letter-spacing:-.03em}
.jx-float{position:absolute;display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:#fff;color:var(--ink);font:700 12px var(--body);box-shadow:0 16px 30px -18px rgba(15,39,68,.5);animation:hfFloat 7s ease-in-out infinite}
.jx-float i{width:9px;height:9px;border-radius:50%}
.jx-float i:nth-child(1){background:var(--coral)}.jx-float i:nth-child(2){background:var(--teal)}.jx-float i:nth-child(3){background:var(--sun)}
.jx-float.f1{left:44%;top:70px}.jx-float.f2{right:6%;bottom:60px;animation-delay:-3s}
.jx-paper{position:absolute;left:3%;bottom:40px;width:90px;rotate:-12deg;opacity:.9;animation:hfFloat 9s ease-in-out infinite;filter:drop-shadow(0 16px 20px rgba(15,39,68,.15))}
.jx-dia{position:absolute;width:16px;height:16px;border:2px solid var(--blue);border-radius:4px;rotate:45deg;opacity:.45;animation:hfFloat 8s ease-in-out infinite}
.jx-dia.d1{left:52%;bottom:80px}.jx-dia.d2{right:30%;top:120px;border-color:var(--teal);animation-delay:-4s}
@keyframes hfFloat{0%,100%{translate:0 0}50%{translate:0 -14px}}
.jx-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:stretch}
.jx-feat{position:relative;display:flex;flex-direction:column;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 40px 70px -44px rgba(15,39,68,.6);border:1px solid rgba(207,227,244,.9)}
.jx-fimg{position:relative;flex:1;min-height:300px;overflow:hidden;background:#e9f4fd}
.jx-fimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .9s var(--ease)}
.jx-feat:hover .jx-fimg img{transform:scale(1.05)}
.jx-fbody{display:flex;flex-direction:column;gap:12px;padding:24px 28px 26px;border-top:4px solid var(--blue)}
.jx-meta{display:flex;align-items:center;gap:12px;font:600 12.5px var(--body);color:var(--muted)}
.jx-meta i{font-style:normal;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--c,var(--teal)) 18%,#fff);color:var(--ink);font:800 10.5px var(--body);letter-spacing:.08em;text-transform:uppercase}
.jx-fbody strong{font:800 clamp(22px,2.2vw,30px)/1.2 var(--display);letter-spacing:-.025em;color:var(--ink)}
.jx-ex{color:var(--muted);font-size:15px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jx-read{display:flex;align-items:center;gap:12px;font:700 14px var(--body);color:var(--ink)}
.jx-read b,.jx-go,.jx-all b{flex:none;display:grid;place-items:center;border-radius:50%;transition:transform .35s var(--ease),background .3s}
.jx-read b{width:38px;height:38px;background:linear-gradient(135deg,#1466c2,#1d86dc);color:#fff}
.jx-feat:hover .jx-read b{transform:rotate(45deg)}
.jx-list{display:grid;gap:12px;align-content:start}
.jx-item{display:flex;align-items:center;gap:14px;padding:10px 12px 10px 10px;border-radius:18px;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border:1px solid rgba(207,227,244,.9);box-shadow:0 14px 30px -26px rgba(15,39,68,.6);transition:transform .4s var(--ease),box-shadow .4s,background .3s}
.jx-item:hover{transform:translateX(6px);background:#fff;box-shadow:0 24px 40px -28px rgba(15,39,68,.6)}
.jx-thumb{flex:none;width:92px;height:92px;border-radius:13px;overflow:hidden;background:#e9f4fd}
.jx-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .8s var(--ease)}
.jx-item:hover .jx-thumb img{transform:scale(1.08)}
.jx-it{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.jx-it .jx-meta{font-size:11.5px;gap:8px}
.jx-it strong{font:800 15px/1.35 var(--display);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jx-go{width:32px;height:32px;background:#eef6fd;color:var(--blue)}
.jx-item:hover .jx-go{background:var(--blue);color:#fff;transform:rotate(45deg)}
.jx-all{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 18px 22px;border-radius:18px;color:#fff;background:radial-gradient(70% 140% at 100% 0%,rgba(29,202,211,.35),transparent 70%),linear-gradient(120deg,#0b2a52,#14549a);box-shadow:0 20px 40px -26px rgba(11,42,82,.8)}
.jx-all span{font:800 16px var(--display)}.jx-all small{display:block;font:700 11px var(--body);letter-spacing:.12em;text-transform:uppercase;color:#9fc3e3;margin-bottom:3px}
.jx-all b{width:40px;height:40px;background:var(--teal);color:var(--navy-900)}
.jx-all:hover b{transform:rotate(45deg)}
@media (max-width:900px){.jx-grid{grid-template-columns:1fr}.jx-fimg{min-height:240px}.jx-float,.jx-paper{display:none}}
@media (max-width:640px){.jx-thumb{width:72px;height:72px}.jx-it strong{font-size:14px}}

.hl-svg .nib path,.dz-svg .nib path,.drawpath .nib path{fill:url(#nibGrad2)!important}

.jx-pins-head{display:flex;align-items:center;gap:12px;margin:46px 0 18px}
.jx-star{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--sun),#ffdf7a);color:var(--navy-900);font-size:15px;box-shadow:0 10px 20px -10px rgba(255,196,45,.8)}
.jx-pins-head strong{font:800 18px var(--display);color:var(--ink)}
.jx-rule{flex:1;height:1px;background:linear-gradient(90deg,rgba(39,125,193,.35),transparent)}
.jx-pins{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.jx-pin{display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:#fff;border:1px solid rgba(207,227,244,.9);box-shadow:0 24px 46px -36px rgba(15,39,68,.6);transition:transform .45s var(--ease),box-shadow .45s}
.jx-pin:hover{transform:translateY(-6px);box-shadow:0 34px 60px -36px rgba(15,39,68,.7)}
.jx-pimg{position:relative;aspect-ratio:16/10;overflow:hidden;background:#e9f4fd}
.jx-pimg img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.jx-pin:hover .jx-pimg img{transform:scale(1.06)}
.jx-pimg em{position:absolute;left:12px;top:12px;font-style:normal;padding:5px 11px;border-radius:999px;background:var(--sun);color:var(--navy-900);font:800 10.5px var(--body);letter-spacing:.08em;text-transform:uppercase;box-shadow:0 8px 16px -8px rgba(0,0,0,.4)}
.jx-pbody{display:flex;flex-direction:column;gap:10px;padding:18px 20px 22px;border-top:4px solid var(--c)}
.jx-pbody strong{font:800 17px/1.35 var(--display);color:var(--ink)}
.jx-pbody .jx-meta i{background:color-mix(in srgb,var(--c) 20%,#fff)}
@media (max-width:900px){.jx-pins{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.jx-pins{grid-template-columns:1fr}}

/* 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}
