
:root{
  --ink:#06122B; --navy:#0A2A66; --blue:#1E7BF2; --sky:#E8F1FE; --green:#2FBF4A; --lime:#7BE03C;
  --bg:#F7F9FD; --surface:#FFFFFF; --text:#0B1B3A; --muted:#4F5F7D; --line:#DCE4F2; --tint:#EDF3FC;
  --display:'Bricolage Grotesque','Segoe UI',system-ui,-apple-system,sans-serif;
  --body:'Figtree','Segoe UI',system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#050D1F;--surface:#0C1A36;--text:#EAF0FB;--muted:#9AA8C4;--line:#1D2D50;--tint:#0A1631;--sky:#10244A}
}
:root[data-theme="dark"]{--bg:#050D1F;--surface:#0C1A36;--text:#EAF0FB;--muted:#9AA8C4;--line:#1D2D50;--tint:#0A1631;--sky:#10244A}

*,*::before,*::after{box-sizing:border-box}
html{height:100%;scroll-behavior:smooth;scroll-padding-top:calc(88px + env(safe-area-inset-top,0px))}
body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--display);line-height:1.08;letter-spacing:-.025em;margin:0;font-weight:800}
p{margin:0}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.sec{padding:clamp(64px,9vw,118px) 0}
.h2{font-size:clamp(2rem,4.4vw,3.3rem)}
.lede{font-size:1.125rem;color:var(--muted);max-width:56ch}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;font-weight:600;border:1.5px solid transparent;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s;white-space:nowrap}
.btn.primary{background:linear-gradient(135deg,var(--blue),var(--navy));color:#fff;box-shadow:0 10px 26px -10px rgba(30,123,242,.8)}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px -10px rgba(30,123,242,.9)}
.btn.ghost{border-color:var(--line);background:var(--surface)}
.btn.ghost:hover{border-color:var(--blue);transform:translateY(-2px)}
.btn.green{background:var(--green);color:#04210C}
.btn.green:hover{transform:translateY(-2px);background:var(--lime)}
.btn svg{width:18px;height:18px;transition:transform .25s var(--ease)}
.btn:hover svg{transform:translateX(4px)}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.brand{display:flex;align-items:center;gap:12px}
.brand .mk{width:46px;height:46px;flex:none;background:#fff;border-radius:13px;padding:4px;border:1px solid var(--line);object-fit:contain}
.brand b{font-family:var(--display);font-size:1.18rem;font-weight:800;letter-spacing:-.02em;line-height:1}
.brand small{display:block;font-size:.66rem;letter-spacing:.34em;color:var(--muted);margin-top:4px;font-weight:600}
.links{display:flex;gap:6px;align-items:center}
.links a.lk{padding:9px 15px;border-radius:999px;font-weight:500;color:var(--muted);transition:color .2s,background .2s}
.links a.lk:hover{color:var(--text);background:var(--tint)}
.links a.lk.active{color:var(--text);background:var(--sky)}
.menu-btn{display:none;width:46px;height:46px;border-radius:12px;border:1px solid var(--line);background:var(--surface);align-items:center;justify-content:center}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:18px;height:2px;background:var(--text);border-radius:2px;position:relative;transition:transform .25s,top .25s,background .25s}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0}
.menu-btn span::before{top:-6px}.menu-btn span::after{top:6px}
.menu-btn[aria-expanded="true"] span{background:transparent}
.menu-btn[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
@media (max-width:1200px){
  .menu-btn{display:flex}
  .links{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;padding:14px 20px 22px;background:var(--bg);border-bottom:1px solid var(--line);display:none}
  .links.open{display:flex}
  .links a.lk{padding:14px 16px}
  .links .btn{justify-content:center;margin-top:8px}
}

/* pages */
.page{display:none}
.page.show{display:block;animation:pgin .45s var(--ease)}
@keyframes pgin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* HERO */
.hero{position:relative;overflow:hidden;padding:clamp(40px,7vw,88px) 0 clamp(56px,8vw,100px)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 70% at 70% 40%,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse 70% 70% at 70% 40%,#000 10%,transparent 75%);opacity:.7}
.hero::after{content:"";position:absolute;width:640px;height:640px;right:-160px;top:-140px;background:radial-gradient(circle,rgba(30,123,242,.28),transparent 65%);pointer-events:none}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.02fr 1fr;gap:clamp(28px,4vw,64px);align-items:center}
.hero h1{font-size:clamp(2.7rem,6.4vw,5.2rem);letter-spacing:-.035em}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .ln>span{display:block;transform:translateY(105%)}
.hero .sub{margin-top:24px;font-size:1.18rem;color:var(--muted);max-width:50ch;opacity:0}
.hero .cta{margin-top:32px;display:flex;gap:14px;flex-wrap:wrap;opacity:0}
.hero .checks{margin-top:34px;display:flex;gap:10px 26px;flex-wrap:wrap;color:var(--muted);font-size:.95rem;opacity:0}
.checks span{display:inline-flex;gap:8px;align-items:center}
.checks svg{width:18px;height:18px;color:var(--green)}
.hero.play h1 .ln>span{animation:rise .9s var(--ease) forwards;animation-delay:calc(var(--i)*.11s + .1s)}
.hero.play .sub{animation:fade .8s ease forwards .55s}
.hero.play .cta{animation:fade .8s ease forwards .7s}
.hero.play .checks{animation:fade .8s ease forwards .85s}
@keyframes rise{to{transform:none}}
@keyframes fade{to{opacity:1}}

/* hero browser mock */
.stage{position:relative;padding:18px 0 30px}
.win{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 40px 80px -30px rgba(10,42,102,.45),0 0 0 1px rgba(255,255,255,.04);overflow:hidden;opacity:0;transform:translateY(40px) scale(.97)}
.hero.play .win{animation:winin 1s var(--ease) forwards .3s}
@keyframes winin{to{opacity:1;transform:none}}
.win-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--tint)}
.win-bar i{width:11px;height:11px;border-radius:50%;background:var(--line)}
.win-bar i:nth-child(1){background:#FF6B6B}.win-bar i:nth-child(2){background:#FFC24B}.win-bar i:nth-child(3){background:#3DD56D}
.url{margin-left:12px;flex:1;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 14px;font-size:.8rem;color:var(--muted)}
.win-body{padding:20px;display:grid;gap:16px}
.sk{border-radius:8px;background:var(--tint);opacity:0}
.hero.play .sk{animation:fade .5s ease forwards;animation-delay:calc(var(--d)*1s + .9s)}
.sk-nav{display:flex;gap:10px;align-items:center}
.sk-nav .logo{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--blue),var(--navy))}
.sk-nav .pill{height:10px;width:46px;border-radius:6px;background:var(--line)}
.sk-nav .pill.btnp{margin-left:auto;width:70px;height:24px;border-radius:999px;background:var(--blue)}
.cols{display:grid;grid-template-columns:1fr 1.15fr;gap:16px}
.sk-hero{padding:18px;display:grid;gap:10px;align-content:start;background:var(--sky)}
.sk-hero .l{height:12px;border-radius:6px;background:var(--navy);opacity:.9}
.sk-hero .l.s{background:var(--line);height:8px}
.sk-hero .b{height:26px;width:88px;border-radius:999px;background:var(--green);margin-top:8px}
.chart{padding:14px 14px 8px;background:var(--surface);border:1px solid var(--line)}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.bar{fill:url(#bg1);transform-box:fill-box;transform-origin:bottom;transform:scaleY(0)}
.hero.play .bar{animation:grow .8s var(--ease) forwards;animation-delay:calc(var(--k)*.09s + 1.3s)}
@keyframes grow{to{transform:scaleY(1)}}
.trend{fill:none;stroke:var(--green);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:420;stroke-dashoffset:420}
.hero.play .trend{animation:draw 1.2s var(--ease) forwards 2.1s}
@keyframes draw{to{stroke-dashoffset:0}}
.head{fill:var(--green);opacity:0;transform-box:fill-box;transform-origin:center}
.hero.play .head{animation:pop .5s var(--ease) forwards 3.1s}
@keyframes pop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tile{height:56px}
.chip{position:absolute;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 14px;box-shadow:0 18px 40px -16px rgba(10,42,102,.5);font-size:.84rem;font-weight:600;opacity:0;transform:scale(.8)}
.chip em{font-style:normal;display:block;font-weight:400;color:var(--muted);font-size:.74rem}
.chip .dot{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:#fff;flex:none}
.chip .dot svg{width:17px;height:17px}
.chip.c1{left:-18px;bottom:6px}.chip.c1 .dot{background:var(--blue)}
.chip.c2{right:-12px;top:0}.chip.c2 .dot{background:var(--green)}
.hero.play .chip.c1{animation:pop .6s var(--ease) forwards 3.3s,bob 6s ease-in-out infinite 4s}
.hero.play .chip.c2{animation:pop .6s var(--ease) forwards 3.5s,bob 7s ease-in-out infinite 4.2s}
@keyframes bob{50%{transform:translateY(-8px)}}
.cap{margin-top:14px;font-size:.78rem;color:var(--muted);text-align:center}
@media (max-width:980px){
  .hero .wrap{grid-template-columns:1fr}
  .chip.c1{left:0}.chip.c2{right:0}
}

/* strip */
.strip{border-block:1px solid var(--line);background:var(--surface)}
.strip .wrap{display:flex;flex-wrap:wrap;gap:12px 40px;justify-content:center;padding-top:20px;padding-bottom:20px;color:var(--muted);font-weight:500}
.strip b{color:var(--text)}

/* services rows */
.split{display:grid;grid-template-columns:.8fr 1.4fr;gap:clamp(28px,5vw,80px);align-items:start}
.split .stick{position:sticky;top:calc(110px + env(safe-area-inset-top,0px))}
.split .lede{margin-top:18px}
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:56px 1fr auto;gap:20px;align-items:center;padding:26px 20px;border-bottom:1px solid var(--line);transition:background .35s var(--ease),color .35s,padding .35s var(--ease);margin:0 -20px;border-radius:0}
.row .ic{width:52px;height:52px;border-radius:15px;background:var(--sky);color:var(--blue);display:grid;place-items:center;transition:background .35s,color .35s}
.row .ic svg,.ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.row h3{font-size:1.4rem}
.row p{color:var(--muted);margin-top:4px;font-size:.98rem;transition:color .35s}
.row .go{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:all .35s var(--ease)}
.row .go svg{width:18px;height:18px}
.row:hover{background:linear-gradient(100deg,var(--ink),var(--navy));color:#fff;padding-left:32px;border-radius:18px}
.row:hover p{color:#B8C7E6}
.row:hover .ic{background:rgba(255,255,255,.12);color:var(--lime)}
.row:hover .go{background:var(--green);border-color:var(--green);color:#04210C;transform:rotate(-45deg)}
@media (max-width:900px){.split{grid-template-columns:1fr}.split .stick{position:static}.row{grid-template-columns:48px 1fr;margin:0}.row .go{display:none}}

/* compare */
.band{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;width:700px;height:700px;left:-220px;bottom:-320px;background:radial-gradient(circle,rgba(47,191,74,.22),transparent 65%)}
.band .wrap{position:relative}
.band .lede{color:#A9B9D9}
.cmp-head{display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap;margin-bottom:40px}
.cmp{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;container-type:inline-size;border:1px solid rgba(255,255,255,.14);box-shadow:0 40px 90px -30px #000;--pos:50%;user-select:none;touch-action:pan-y}
.layer{position:absolute;inset:0}
.layer.before{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.tag{position:absolute;top:14px;padding:6px 14px;border-radius:999px;font-size:.8rem;font-weight:600;z-index:3}
.tag.b{left:14px;background:#222;color:#fff}.tag.a{right:14px;background:var(--green);color:#04210C}
.handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;background:#fff;z-index:4;transform:translateX(-50%);pointer-events:none}
.handle::after{content:"";position:absolute;top:50%;left:50%;width:46px;height:46px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 8px 24px rgba(0,0,0,.4);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A2A66' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 7-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E");background-size:24px;background-repeat:no-repeat;background-position:center}
.cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:5;margin:0}
.cmp:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:3px}
/* old site */
.old{background:#fff;color:#000;font-family:"Times New Roman",Times,serif;padding:2.6cqw}
.old .ban{background:#ffe600;border:.3cqw solid red;text-align:center;font-size:3.1cqw;font-weight:700;color:#c00;padding:.8cqw}
.old .nv{margin:1.4cqw 0;font-size:1.8cqw;color:#00e;text-decoration:underline;display:flex;gap:2cqw;flex-wrap:wrap}
.old .tx{font-size:1.5cqw;line-height:1.2;color:#333;max-width:60cqw}
.old .gal{display:flex;gap:1cqw;margin-top:1.6cqw}
.old .gal i{width:12cqw;height:8cqw;background:#bbb;border:.3cqw solid #666}
.old .bt{display:inline-block;margin-top:1.6cqw;background:#ddd;border:.3cqw outset #999;padding:.5cqw 2cqw;font-size:1.7cqw}
.old .vis{position:absolute;right:3cqw;bottom:2.5cqw;font-size:1.4cqw;color:#666}
/* new site */
.neu{background:#fff;color:#0B1B3A;font-family:var(--body)}
.neu .nb{display:flex;align-items:center;gap:2cqw;padding:2cqw 3.4cqw}
.neu .nb .lg{width:3.2cqw;height:3.2cqw;border-radius:1cqw;background:linear-gradient(135deg,#1E7BF2,#0A2A66)}
.neu .nb span{font-size:1.4cqw;color:#51607D}
.neu .nb .nbtn{margin-left:auto;background:#0A2A66;color:#fff;padding:.9cqw 2.2cqw;border-radius:99cqw;font-size:1.4cqw}
.neu .hr{margin:0 3.4cqw;border-radius:2.2cqw;background:linear-gradient(120deg,#06122B,#0A2A66 60%,#1E7BF2);color:#fff;padding:4cqw;display:grid;grid-template-columns:1.3fr 1fr;gap:3cqw;align-items:center;height:21cqw}
.neu .hr h4{font-family:var(--display);font-size:4.4cqw;line-height:1.05;letter-spacing:-.03em}
.neu .hr p{font-size:1.5cqw;margin-top:1.2cqw;color:#BFD0F0}
.neu .hr .gb{display:inline-block;margin-top:1.8cqw;background:#2FBF4A;color:#04210C;padding:1cqw 2.6cqw;border-radius:99cqw;font-size:1.5cqw;font-weight:700}
.neu .pc{display:grid;gap:1.2cqw}
.neu .pc i{display:block;height:4.2cqw;border-radius:1.2cqw;background:rgba(255,255,255,.12)}
.neu .pc i:nth-child(2){width:80%;background:rgba(255,255,255,.2)}
.neu .pc i:nth-child(3){width:60%}
.neu .cd{display:grid;grid-template-columns:repeat(3,1fr);gap:2cqw;margin:2.2cqw 3.4cqw 0}
.neu .cd i{display:block;height:7cqw;border-radius:1.6cqw;background:#EDF3FC}
.neu .cd i:nth-child(2){background:#DDF5E2}

/* process */
.proc{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:56px}
.proc::before{content:"";position:absolute;left:0;right:0;top:19px;height:3px;background:var(--line);border-radius:3px}
.proc .fill{position:absolute;left:0;top:19px;height:3px;width:0;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:3px;transition:width 2.2s var(--ease)}
.proc.on .fill{width:100%}
.step{position:relative;padding-top:56px}
.step .n{position:absolute;top:0;left:0;width:40px;height:40px;border-radius:50%;background:var(--surface);border:3px solid var(--line);display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:.95rem;transition:all .4s var(--ease);transition-delay:calc(var(--s)*.5s)}
.proc.on .step .n{background:var(--blue);border-color:var(--blue);color:#fff}
.proc.on .step:last-child .n{background:var(--green);border-color:var(--green);color:#04210C}
.step h3{font-size:1.3rem;margin-bottom:8px}
.step p{color:var(--muted);font-size:.98rem}
@media (max-width:900px){
  .proc{grid-template-columns:1fr;gap:6px}
  .proc::before,.proc .fill{left:19px;right:auto;top:0;bottom:0;width:3px;height:auto}
  .proc .fill{height:0;width:3px;transition:height 2.2s var(--ease)}
  .proc.on .fill{width:3px;height:100%}
  .step{padding:0 0 30px 62px}
}

/* local points */
.points{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--surface);margin-top:44px}
.pt{padding:34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.pt:nth-child(2n){border-right:0}
.pt:nth-last-child(-n+2){border-bottom:0}
.pt h3{font-size:1.25rem;margin-bottom:8px}
.pt p{color:var(--muted)}
@media (max-width:760px){.points{grid-template-columns:1fr}.pt{border-right:0!important;border-bottom:1px solid var(--line)!important}.pt:last-child{border-bottom:0!important}}

/* CTA */
.cta-band{margin:0 auto;border-radius:32px;background:linear-gradient(120deg,var(--ink),var(--navy) 55%,#1257C4);color:#fff;padding:clamp(36px,6vw,76px);position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.cta-band::after{content:"";position:absolute;right:-60px;top:-60px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(123,224,60,.45),transparent 65%)}
.cta-band h2{font-size:clamp(1.9rem,4vw,3rem);max-width:18ch;position:relative;z-index:1}
.cta-band p{color:#B8C7E6;margin-top:12px;position:relative;z-index:1}
.cta-band .btn{position:relative;z-index:1}

/* footer */
footer{background:var(--ink);color:#B8C7E6;padding:70px 0 30px;margin-top:clamp(60px,8vw,110px)}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px}
footer .brand b{color:#fff}footer .brand small{color:#8DA0C8}
footer h4{color:#fff;font-size:1rem;margin-bottom:16px;letter-spacing:0}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
footer a:hover{color:#fff}
footer .fine{border-top:1px solid rgba(255,255,255,.12);margin-top:50px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.88rem}
@media (max-width:860px){.fg{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fg{grid-template-columns:1fr}}

/* page headers */
.phead{padding:clamp(48px,7vw,96px) 0 clamp(30px,4vw,56px);position:relative;overflow:hidden}
.phead::after{content:"";position:absolute;width:520px;height:520px;right:-140px;top:-200px;background:radial-gradient(circle,rgba(30,123,242,.22),transparent 65%)}
.phead h1{font-size:clamp(2.4rem,5.6vw,4.4rem);max-width:17ch;position:relative;z-index:1}
.phead .lede{margin-top:20px;position:relative;z-index:1}

/* services page */
.sv-layout{display:grid;grid-template-columns:260px 1fr;gap:clamp(24px,4vw,64px);align-items:start}
.sv-nav{position:sticky;top:calc(100px + env(safe-area-inset-top,0px));display:grid;gap:4px;border-left:2px solid var(--line)}
.sv-nav button{text-align:left;background:none;border:0;padding:10px 16px;margin-left:-2px;border-left:2px solid transparent;color:var(--muted);font-weight:500;transition:all .2s}
.sv-nav button:hover{color:var(--text)}
.sv-nav button.on{border-left-color:var(--blue);color:var(--text);font-weight:600}
.sv-list{display:grid;gap:28px}
.sv{background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:clamp(24px,4vw,44px);display:grid;grid-template-columns:1.1fr 1fr;gap:34px}
.sv .ic{width:58px;height:58px;border-radius:17px;background:linear-gradient(135deg,var(--blue),var(--navy));color:#fff;display:grid;place-items:center;margin-bottom:20px}
.sv h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:14px}
.sv p{color:var(--muted)}
.sv .best{margin-top:18px;padding:14px 16px;background:var(--tint);border-radius:14px;font-size:.95rem}
.sv ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;align-content:start}
.sv li{display:flex;gap:12px;align-items:flex-start}
.sv li svg{flex:none;width:22px;height:22px;margin-top:2px;color:var(--green);fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:980px){.sv-layout{grid-template-columns:1fr}.sv-nav{display:none}.sv{grid-template-columns:1fr;gap:22px}}

.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.tier{border:1px solid var(--line);border-radius:26px;padding:34px;background:var(--surface);display:flex;flex-direction:column;gap:16px}
.tier h3{font-size:1.9rem}
.tier .for{color:var(--muted)}
.tier ul{list-style:none;margin:6px 0 10px;padding:0;display:grid;gap:10px}
.tier li{display:flex;gap:10px}
.tier li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--green);margin-top:10px}
.tier .btn{margin-top:auto;justify-content:center}
.tier.hot{background:linear-gradient(160deg,var(--ink),var(--navy));color:#fff;border-color:transparent;transform:translateY(-14px);box-shadow:0 36px 60px -30px rgba(10,42,102,.7)}
.tier.hot .for{color:#B8C7E6}
@media (max-width:900px){.tiers{grid-template-columns:1fr}.tier.hot{transform:none}}

details{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;padding:22px 0;font-family:var(--display);font-weight:700;font-size:1.2rem;display:flex;justify-content:space-between;gap:20px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.7rem;line-height:1;color:var(--blue);transition:transform .3s var(--ease)}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 0 24px;color:var(--muted);max-width:70ch;animation:pgin .35s var(--ease)}
.faq{max-width:860px;margin-top:30px;border-top:1px solid var(--line)}

/* work */
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px}
.fchip{padding:10px 20px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:500;transition:all .2s}
.fchip:hover{border-color:var(--blue)}
.fchip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.work{background:var(--surface);border:1px solid var(--line);border-radius:26px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.work:hover{transform:translateY(-6px);box-shadow:0 34px 60px -34px rgba(10,42,102,.55)}
.work.hide{display:none}
.mini{container-type:inline-size;aspect-ratio:16/10;padding:5cqw 6cqw 0;position:relative;overflow:hidden}
.mini .fr{background:#fff;border-radius:1.6cqw 1.6cqw 0 0;height:100%;box-shadow:0 -1cqw 4cqw rgba(0,0,0,.25);overflow:hidden;color:#111}
.mini .tb{display:flex;gap:1cqw;padding:1.6cqw 2.4cqw;background:#f2f4f8}
.mini .tb i{width:1.5cqw;height:1.5cqw;border-radius:50%;background:#cfd6e3}
.mini .ct{padding:2.6cqw 3cqw}
.mini h5{font-family:var(--display);font-size:4.3cqw;margin:0;letter-spacing:-.02em;line-height:1.05}
.mini .ct p{font-size:1.7cqw;color:#556;margin-top:.8cqw}
.mini .bn{display:inline-block;margin-top:1.4cqw;color:#fff;font-size:1.6cqw;padding:.8cqw 2.4cqw;border-radius:99cqw}
.mini .tl{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6cqw;margin-top:2.4cqw}
.mini .tl i{display:block;height:9cqw;border-radius:1.2cqw}
.mini .tl.ph{grid-template-columns:repeat(3,1fr)}
.mini .tl.ph i{height:12cqw}
.work .info{padding:26px 28px 30px}
.work h3{font-size:1.5rem;display:flex;justify-content:space-between;align-items:center;gap:10px}
.work h3 small{font-family:var(--body);font-size:.72rem;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 10px;letter-spacing:0}
.work p{color:var(--muted);margin-top:8px}
.work .tg{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.work .tg span{background:var(--sky);color:var(--blue);padding:4px 12px;border-radius:999px;font-size:.84rem;font-weight:600}
@media (max-width:760px){.grid2{grid-template-columns:1fr}}

/* about */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.val{padding:30px;border-radius:24px;background:var(--surface);border:1px solid var(--line)}
.val .bigword{font-family:var(--display);font-size:2rem;font-weight:800;background:linear-gradient(90deg,var(--blue),var(--green));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:10px}
.val p{color:var(--muted)}
.story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.story p+p{margin-top:16px}
.story p{color:var(--muted)}
.stackviz{display:grid;gap:12px}
.stackviz div{border-radius:18px;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;font-family:var(--display);font-weight:700;font-size:1.15rem;color:#fff;transition:transform .4s var(--ease)}
.stackviz div:hover{transform:translateX(10px)}
.stackviz div span{font-family:var(--body);font-weight:400;font-size:.9rem;opacity:.8}
.stackviz div:nth-child(1){background:#0A2A66;margin-right:0}
.stackviz div:nth-child(2){background:#1257C4;margin-right:34px}
.stackviz div:nth-child(3){background:#1E7BF2;margin-right:68px}
.stackviz div:nth-child(4){background:#2FBF4A;color:#04210C;margin-right:102px}
@media (max-width:900px){.story{grid-template-columns:1fr}.vals{grid-template-columns:1fr}}

/* contact */
.cgrid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(24px,4vw,60px);align-items:start}
.form{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:clamp(24px,4vw,44px);display:grid;gap:20px}
.fld{display:grid;gap:8px}
.fld label,.fld .lab{font-weight:600;font-size:.95rem}
.fld input,.fld textarea{font:inherit;color:var(--text);background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;width:100%;transition:border-color .2s,box-shadow .2s}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(30,123,242,.18)}
.fld textarea{min-height:130px;resize:vertical}
.fld .err{color:#D6334A;font-size:.85rem;min-height:1em}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.opts{display:flex;flex-wrap:wrap;gap:10px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.opt span{display:block;padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);font-size:.92rem;font-weight:500;transition:all .2s}
.opt input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.opt input:focus-visible+span{outline:3px solid var(--blue);outline-offset:2px}
.info-card{border-radius:28px;background:linear-gradient(160deg,var(--ink),var(--navy));color:#fff;padding:36px;display:grid;gap:26px}
.info-card h3{font-size:1.6rem}
.info-card .it{display:flex;gap:14px}
.info-card .it svg{width:22px;height:22px;flex:none;color:var(--lime);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:3px}
.info-card .it small{display:block;color:#9FB1D6}
.done{display:none;text-align:center;padding:20px 0;gap:16px;justify-items:center}
.done.show{display:grid;animation:pgin .5s var(--ease)}
.done .ok{width:72px;height:72px;border-radius:50%;background:var(--green);display:grid;place-items:center;color:#04210C}
.done .ok svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .7s .2s var(--ease) forwards}
.done .acts{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
@media (max-width:900px){.cgrid{grid-template-columns:1fr}.two{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero h1 .ln>span,.hero .sub,.hero .cta,.hero .checks,.win,.sk,.chip,.head{opacity:1!important;transform:none!important}
  .bar{transform:none!important}.trend{stroke-dashoffset:0!important}
  .proc .fill{width:100%!important}.proc.on .fill{height:100%}
}

.social{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.social a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);color:#fff;transition:background .25s,border-color .25s,transform .25s var(--ease),color .25s}
.social a svg{width:20px;height:20px}
.social a:hover{background:var(--green);border-color:var(--green);color:#04210C;transform:translateY(-3px)}
.info-card .social{margin-top:0}
.info-card .fol{color:#9FB1D6;font-size:.9rem;display:block;margin-bottom:12px}

.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;z-index:100}.skip:focus{left:12px}

.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:.92rem;color:var(--muted);margin-bottom:18px;position:relative;z-index:1}
.crumbs a:hover{color:var(--text);text-decoration:underline}
.prose{max-width:740px;margin:0}
.prose h2{font-size:clamp(1.5rem,3vw,2rem);margin:2em 0 .6em}
.prose p,.prose li{line-height:1.75}
.prose p{margin:0 0 1.1em}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.3em}
.prose li{margin:.45em 0}
.prose a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.prose .meta{color:var(--muted);font-size:.95rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:980px){.grid3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid3{grid-template-columns:1fr}}
.post-card{display:flex;flex-direction:column;gap:14px;padding:30px;border:1px solid var(--line);border-radius:26px;background:var(--surface);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.post-card:hover{transform:translateY(-6px);box-shadow:0 34px 60px -34px rgba(10,42,102,.55)}
.post-card h3{font-size:1.45rem}
.post-card p{color:var(--muted)}
.post-card .tag2{align-self:flex-start;background:var(--sky);color:var(--blue);padding:4px 12px;border-radius:999px;font-size:.84rem;font-weight:600}
.post-card .more{margin-top:auto;font-weight:600;color:var(--blue)}
.nf{text-align:center}
.wa{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;display:inline-flex;align-items:center;gap:10px;background:#25D366;color:#04210C;font-weight:600;padding:14px 20px;border-radius:999px;box-shadow:0 14px 34px -10px rgba(37,211,102,.7);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.wa svg{width:24px;height:24px;flex:none}
.wa:hover{transform:translateY(-3px);box-shadow:0 20px 40px -10px rgba(37,211,102,.85)}
@media (max-width:640px){.wa{padding:15px}.wa span{display:none}}

.mini .fr img{display:block;width:100%;height:calc(100% - 5cqw);object-fit:cover;object-position:top}
.fig{margin:0;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:var(--surface);box-shadow:0 30px 60px -36px rgba(10,42,102,.5)}
.fig img{display:block;width:100%;height:auto}
.fig figcaption{padding:14px 22px;color:var(--muted);font-size:.92rem;border-top:1px solid var(--line)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0 0}
.facts dt{font-size:.85rem;color:var(--muted)}
.facts dd{margin:2px 0 0;font-weight:600}
@media (max-width:560px){.facts{grid-template-columns:1fr}}

.langsw{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--surface);margin:0 6px}
.langsw a{padding:6px 12px;border-radius:999px;font-size:.85rem;font-weight:700;color:var(--muted);transition:background .2s,color .2s}
.langsw a:hover{color:var(--text)}
.langsw a[aria-current="true"]{background:var(--ink);color:#fff}
html[lang="ms"] .links a.lk{padding:9px 11px}
@media (max-width:1200px){.langsw{align-self:flex-start;margin:10px 16px 6px}html[lang="ms"] .links a.lk{padding:14px 16px}}

.brand{flex:none}
.brand b,.links a.lk,.links .btn{white-space:nowrap}
html[lang="ms"] .hero h1{font-size:clamp(2.3rem,4.6vw,3.6rem)}
html[lang="ms"] .phead h1{font-size:clamp(2.1rem,4.6vw,3.6rem)}

html[lang="ms"] .links{gap:2px}
html[lang="ms"] .links .btn{padding:12px 18px;font-size:.95rem}

.share{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:2.2em 0 0;padding-top:1.4em;border-top:1px solid var(--line)}
.share a,.share button{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:600;font-size:.9rem;color:var(--text);text-decoration:none!important;transition:border-color .2s,transform .2s var(--ease)}
.share a:hover,.share button:hover{border-color:var(--blue);transform:translateY(-2px)}
.proc.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.proc.three{grid-template-columns:1fr}}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none}
.quiz{max-width:780px}
.qcard{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:clamp(24px,4vw,44px)}
.qprog{height:6px;background:var(--line);border-radius:6px;overflow:hidden;margin-bottom:24px}
.qprog i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .45s var(--ease)}
.qstep{color:var(--muted);font-size:.92rem;margin-bottom:8px}
.qq{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:10px}
.qhint{color:var(--muted);margin-bottom:16px;font-size:.95rem}
.qopts{display:grid;gap:12px;margin-top:18px}
.qopt{text-align:left;padding:16px 20px;border-radius:16px;border:1.5px solid var(--line);background:var(--bg);font-weight:500;transition:all .2s var(--ease)}
.qopt:hover{border-color:var(--blue)}
.qopt[aria-pressed="true"]{border-color:var(--blue);background:var(--sky);font-weight:600}
.qnav{display:flex;justify-content:space-between;gap:12px;margin-top:28px;flex-wrap:wrap}
.qres{display:grid;gap:14px;margin:22px 0}
.qres a{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:var(--bg);transition:border-color .2s,transform .2s var(--ease)}
.qres a:hover{border-color:var(--blue);transform:translateY(-2px)}
.qres b{display:block;font-family:var(--display);font-size:1.15rem}
.qres a>span{color:var(--text)}
.qres a>span>span{color:var(--muted);font-size:.95rem}
.qplan{padding:16px 20px;border-radius:16px;background:linear-gradient(120deg,var(--ink),var(--navy));color:#fff;margin-bottom:22px}
.qplan a{text-decoration:underline}

/* Checklist page fix: the icon-list rule ".sv li" must not turn numbered checklist items into flex rows,
   and the side card should not stretch its rows to the height of the list. */
.sv ol.prose li{display:list-item}
.sv .info-card{align-content:start;align-self:start}
.sv .info-card>.btn{justify-self:start}
