/* Devphant site theme: tokens, light/dark, gradient, scroll-to-dark, motion */
.dp{
  --bg:#FFFFFF; --bg2:#F3F5F9; --ink:#0A0B0D; --muted:#4E5562; --line:#E2E5EB;
  --card:#FFFFFF; --chip:#EAF1FE; --chip-ink:#1B4BC0; --accent:#2F6FED;
  --btn:#2F6FED; --btn-hover:#1E4FC2; --night:#05060A; --night-ink:#F4F6FA;
  --glow:rgba(47,111,237,.22);
  --grad:linear-gradient(100deg,#1E4FC2 0%,#2F6FED 40%,#0369A1 100%);
  --blob:.30;
  font-family:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
  background:var(--bg); color:var(--ink); width:100%;
  -webkit-font-smoothing:antialiased;
  transition:background-color .45s ease,color .45s ease;
}
.dp.dp-dark{
  --bg:#05060A; --bg2:#0B0D12; --ink:#F4F6FA; --muted:#A2A9B6; --line:#1D2129;
  --card:#0C0E13; --chip:#13203B; --chip-ink:#A9C7FF; --accent:#6FA4FF;
  --glow:rgba(79,163,255,.28);
  --grad:linear-gradient(100deg,#4F8DFF 0%,#7FB0FF 45%,#67E8F9 100%);
  --blob:.55;
}
.dp *{box-sizing:border-box}
.dp a{color:var(--accent)}
.dp a:focus-visible,.dp button:focus-visible,.dp input:focus-visible,.dp select:focus-visible,.dp textarea:focus-visible,.dp summary:focus-visible{outline:2px solid #5B95F9;outline-offset:3px}
.dp img{max-width:100%}

/* layout + type */
.dp-wrap{max-width:1240px;margin:0 auto;padding-left:24px;padding-right:24px}
.dp-section{padding-top:clamp(72px,9vw,128px);padding-bottom:clamp(72px,9vw,128px);position:relative}
.dp-display{font-family:'Bricolage Grotesque','Geist',sans-serif;font-weight:700;letter-spacing:-.035em;line-height:1;margin:0;text-wrap:balance}
.dp-title{font-family:'Bricolage Grotesque','Geist',sans-serif;font-weight:700;letter-spacing:-.02em;margin:0}
.dp-eyebrow{font-family:'Geist Mono',ui-monospace,monospace;font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;display:inline-flex;align-items:center;gap:10px}
.dp-eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--grad)}
.dp-mono{font-family:'Geist Mono',ui-monospace,monospace}
.dp-muted{color:var(--muted)}
.dp-lead{font-size:clamp(17px,1.5vw,21px);line-height:1.55;color:var(--muted);margin:0;text-wrap:pretty}
.dp-bg2{background:var(--bg2)}
.dp-pill{display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 8px;border-radius:999px;border:1px solid var(--line);background:color-mix(in oklab,var(--card) 80%,transparent);font-size:14px;font-weight:500;color:var(--ink);backdrop-filter:blur(8px)}
.dp-pill-tag{background:var(--grad);color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}

/* gradient text */
.dp-grad-text{background:var(--grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:dpShimmer 9s ease-in-out infinite alternate}

/* buttons */
.dp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-family:inherit;font-weight:600;font-size:16px;text-decoration:none;background:var(--btn);color:#FFFFFF !important;border:0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;box-shadow:0 10px 28px -10px rgba(47,111,237,.7)}
.dp-btn:hover{background:var(--btn-hover);transform:translateY(-2px);box-shadow:0 16px 36px -12px rgba(47,111,237,.8)}
.dp-btn-ghost{background:transparent;color:inherit !important;border:1px solid color-mix(in oklab,currentColor 24%,transparent);box-shadow:none}
.dp-btn-ghost:hover{background:color-mix(in oklab,currentColor 6%,transparent);border-color:var(--accent);box-shadow:none}
.dp-btn-dark{background:#05060A;box-shadow:none}
.dp-btn-dark:hover{background:#151821;box-shadow:none}
.dp-link{font-weight:600;font-size:16px;text-decoration:none;color:var(--accent);display:inline-flex;align-items:center;gap:8px;min-height:44px}
.dp-link:hover{gap:12px}

/* cards + chips */
.dp-card{background:var(--card);border:1px solid var(--line);border-radius:22px;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;position:relative}
a.dp-card{color:inherit;text-decoration:none;display:flex}
.dp-card:hover{transform:translateY(-4px);border-color:color-mix(in oklab,var(--accent) 60%,var(--line));box-shadow:0 28px 56px -28px var(--glow)}
.dp-chip{font-size:14px;padding:8px 14px;background:var(--chip);color:var(--chip-ink);border-radius:999px;display:inline-flex;align-items:center}
.dp-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--chip);color:var(--accent);flex:none}

/* hero background: gradient mesh + grid */
.dp-mesh{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.dp-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:var(--blob);animation:dpDrift 16s ease-in-out infinite alternate}
.dp-blob.b1{width:560px;height:560px;background:#3B82F6;top:-200px;right:-120px}
.dp-blob.b2{width:420px;height:420px;background:#22D3EE;bottom:-180px;left:30%;animation-duration:20s;animation-delay:-6s}
.dp-blob.b3{width:380px;height:380px;background:#1E40AF;top:20%;left:-160px;animation-duration:24s;animation-delay:-12s}
.dp-gridbg{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 at 50% 35%,#000 20%,transparent 72%);mask-image:radial-gradient(ellipse at 50% 35%,#000 20%,transparent 72%);opacity:.8}

/* gradient band */
.dp-grad-band{background:linear-gradient(115deg,#0F2E8A 0%,#2F6FED 50%,#0B6FB8 100%);color:#FFFFFF;position:relative;overflow:hidden}
.dp-grad-band::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 85% 10%,rgba(125,211,252,.35),transparent 70%),radial-gradient(500px 300px at 10% 100%,rgba(255,255,255,.12),transparent 70%);pointer-events:none}

/* dark ("dusk") sections: in light theme they fade from white to night as they scroll in */
.dp-dusk{background:var(--night);color:var(--night-ink);
  --muted:color-mix(in oklab,currentColor 68%,transparent);
  --line:color-mix(in oklab,currentColor 13%,transparent);
  --card:color-mix(in oklab,currentColor 4%,transparent);
  --chip:color-mix(in oklab,#4F8DFF 20%,transparent);
  --chip-ink:#A9C7FF; --accent:#7FB0FF;
  --grad:linear-gradient(100deg,#4F8DFF 0%,#7FB0FF 45%,#67E8F9 100%);
}
.dp-dusk .dp-pill{color:inherit}

/* console (hero UI) */
.dp-console{background:#0A0C11;color:#E6EAF2;border:1px solid #1E2330;border-radius:20px;box-shadow:0 50px 100px -40px rgba(15,40,110,.55);overflow:hidden;font-size:13px;position:relative}
.dp-console-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #1A1F2A}
.dp-dot{width:10px;height:10px;border-radius:50%;background:#2A3040;flex:none}
.dp-url{margin-left:12px;flex:1;background:#12161F;border-radius:8px;padding:6px 12px;color:#8A93A6;font-family:'Geist Mono',ui-monospace,monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp-console-body{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);min-height:380px}
.dp-steps{list-style:none;margin:0;padding:14px 10px;border-right:1px solid #1A1F2A;display:flex;flex-direction:column;gap:6px}
.dp-step{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;border:1px solid transparent;color:#7D8596;animation:dpStep 12s infinite}
.dp-step b{font-family:'Geist Mono',ui-monospace,monospace;font-size:11px;font-weight:500;letter-spacing:.06em}
.dp-step span{font-size:13px;font-weight:600}
.dp-stage-area{position:relative;min-height:380px}
.dp-scene{position:absolute;inset:0;padding:20px;opacity:0;animation:dpScene 12s infinite;display:flex;flex-direction:column;gap:14px}
.dp-scene-h{font-family:'Geist Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#7FB0FF}
.dp-prog{height:3px;background:#141924}
.dp-prog span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#2F6FED,#67E8F9);transform-origin:left;animation:dpProg 12s linear infinite}
.dp-wf{border:1.5px dashed #2E3546;border-radius:8px}
.dp-note{background:#14213D;color:#CFE0FF;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.35;box-shadow:0 8px 20px -8px rgba(0,0,0,.6)}
.dp-code{font-family:'Geist Mono',ui-monospace,monospace;font-size:12.5px;line-height:1.75;margin:0;white-space:pre;overflow:hidden}
.dp-code > span{display:block;clip-path:inset(0 100% 0 0);animation:dpTypeLine 12s steps(28) infinite}
.dp-k{color:#7FB0FF}.dp-s{color:#67E8F9}.dp-c{color:#5C6578}.dp-f{color:#E6EAF2}
.dp-check{display:flex;align-items:center;gap:10px;font-size:13px;color:#C9D2E3;opacity:0;animation:dpPop 12s infinite}
.dp-node{position:absolute;background:#121826;border:1px solid #26314A;color:#CFE0FF;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:600;white-space:nowrap}
.dp-live{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#A7F3D0;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.35);padding:4px 10px;border-radius:999px}
.dp-live i{width:7px;height:7px;border-radius:50%;background:#34D399;box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:dpPing 1.6s infinite}
.dp-bar{flex:1;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#5B95F9,#2F6FED);transform-origin:bottom;animation:dpGrow 2.4s ease-in-out infinite alternate}
.dp-floatcard{position:absolute;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 24px 48px -20px rgba(10,20,60,.35);animation:dpFloat 6s ease-in-out infinite;z-index:2}

/* avatars */
.dp-avatars{display:flex}
.dp-avatar{width:40px;height:40px;border-radius:50%;border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;margin-left:-10px;font-family:'Bricolage Grotesque',sans-serif}
.dp-avatar:first-child{margin-left:0}

/* marquee */
.dp-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.dp-track{display:flex;gap:24px;width:max-content;animation:dpMarquee 60s linear infinite;padding:6px 0}
.dp-track.rev{animation-direction:reverse;animation-duration:70s}
.dp-marquee:hover .dp-track{animation-play-state:paused}

/* project "screenshots" (stylised placeholders until real screenshots are added) */
.dp-shot{width:400px;aspect-ratio:16/10;border-radius:16px;overflow:hidden;position:relative;flex:none;border:1px solid var(--line);display:flex;flex-direction:column}
.dp-shot-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 14px}
.dp-shot-nav i{display:block;height:8px;border-radius:4px}
.dp-shot-body{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:6px 14px 14px}
.dp-shot-copy{display:flex;flex-direction:column;gap:7px;justify-content:center}
.dp-shot-copy i{display:block;height:9px;border-radius:4px}
.dp-shot-art{border-radius:10px}
.dp-shot-img{background:#FFFFFF;text-decoration:none;display:block}
.dp-shot-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .5s ease}
.dp-shot-img:hover img{transform:scale(1.03)}
.dp-logo-chip{background:#FFFFFF;border:1px solid #E2E5EB;border-radius:12px;padding:8px 14px;display:inline-flex;align-items:center}
.dp-shot-label{z-index:1;position:absolute;left:12px;bottom:12px;background:rgba(5,6,10,.78);color:#fff;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;backdrop-filter:blur(6px)}
.dp-shot.v1{background:#0B1430}.dp-shot.v1 .dp-shot-nav i,.dp-shot.v1 .dp-shot-copy i{background:#3B5BA8}.dp-shot.v1 .dp-shot-art{background:radial-gradient(circle at 30% 30%,#7FB0FF,#2F6FED 45%,#0B1430 75%)}
.dp-shot.v2{background:#F6F1E9}.dp-shot.v2 .dp-shot-nav i,.dp-shot.v2 .dp-shot-copy i{background:#C9B79C}.dp-shot.v2 .dp-shot-art{background:linear-gradient(135deg,#E07A3F,#F3C969)}
.dp-shot.v3{background:#EAF7F1}.dp-shot.v3 .dp-shot-nav i,.dp-shot.v3 .dp-shot-copy i{background:#9CCFB8}.dp-shot.v3 .dp-shot-art{background:repeating-linear-gradient(90deg,#1F8A5B 0 18%,transparent 18% 24%),#CDEBDD}
.dp-shot.v4{background:#111111}.dp-shot.v4 .dp-shot-nav i,.dp-shot.v4 .dp-shot-copy i{background:#444}.dp-shot.v4 .dp-shot-art{background:conic-gradient(from 200deg,#F5D061,#E85D75,#7C5CFF,#F5D061)}
.dp-shot.v5{background:#FFFFFF}.dp-shot.v5 .dp-shot-nav i,.dp-shot.v5 .dp-shot-copy i{background:#D7DCE5}.dp-shot.v5 .dp-shot-art{background:linear-gradient(180deg,#EAF1FE 0 30%,#2F6FED 30% 34%,#EAF1FE 34% 64%,#5B95F9 64% 68%,#EAF1FE 68%)}
.dp-shot.v6{background:#1A1033}.dp-shot.v6 .dp-shot-nav i,.dp-shot.v6 .dp-shot-copy i{background:#4B3A7A}.dp-shot.v6 .dp-shot-art{background:radial-gradient(circle at 70% 40%,#C084FC,#6D28D9 50%,#1A1033 80%)}

/* logo strip */
.dp-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px 56px}
.dp-logo-word{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:26px;letter-spacing:-.02em;color:var(--muted);opacity:.85;transition:opacity .2s,color .2s}
.dp-logo-word:hover{opacity:1;color:var(--ink)}

/* service illustration stage */
.dp-stage{position:relative;aspect-ratio:5/4;border-radius:28px;background:#0A0C11;border:1px solid #1E2330;overflow:hidden;color:#E6EAF2;box-shadow:0 50px 100px -40px rgba(15,40,110,.5)}
.dp-stage::before{content:"";position:absolute;inset:0;background-image:linear-gradient(#141925 1px,transparent 1px),linear-gradient(90deg,#141925 1px,transparent 1px);background-size:32px 32px;opacity:.9}
.dp-stage::after{content:"";position:absolute;width:70%;height:70%;right:-20%;top:-25%;background:radial-gradient(circle,rgba(59,130,246,.45),transparent 65%);filter:blur(20px)}
.dp-stage > *{position:absolute;z-index:1}
.dp-mini{position:relative;height:150px;border-radius:16px;background:#0A0C11;overflow:hidden;color:#E6EAF2}
.dp-mini::before{content:"";position:absolute;inset:0;background-image:linear-gradient(#141925 1px,transparent 1px),linear-gradient(90deg,#141925 1px,transparent 1px);background-size:24px 24px}
.dp-mini > *{position:absolute;z-index:1}
.dp-panel{background:#11151F;border:1px solid #232B3D;border-radius:12px}
.dp-float{animation:dpFloat 6s ease-in-out infinite}
.dp-pulse{animation:dpPulse 2.4s ease-out infinite}
.dp-blink{animation:dpBlink 1s steps(2) infinite}
.dp-spin{animation:dpSpin 18s linear infinite}
.dp-draw{stroke-dasharray:400;stroke-dashoffset:400;animation:dpDraw 4s ease-in-out infinite alternate}
.dp-slide{animation:dpSlide 6s ease-in-out infinite}
.dp-playhead{animation:dpPlay 6s linear infinite}
.dp-cursor{animation:dpCursor 7s ease-in-out infinite}
.dp-morph{animation:dpMorph 7s ease-in-out infinite}

/* timeline that fills as you scroll */
.dp-tl{position:relative;height:3px;background:var(--line);border-radius:3px;overflow:hidden}
.dp-tl span{position:absolute;inset:0;background:linear-gradient(90deg,#2F6FED,#67E8F9);transform-origin:left;transform:scaleX(1)}

/* header (inline on every page, above all content) */
.dp-header{position:relative;z-index:60;background:color-mix(in oklab,var(--bg) 86%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.dp-ico-sun{display:none}.dp.dp-dark .dp-ico-sun{display:block}.dp.dp-dark .dp-ico-moon{display:none}
.dp-dd-panel::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}

/* social */
.dp-social{display:flex;gap:10px}
.dp-social a{width:44px;height:44px;border-radius:12px;display:inline-flex !important;align-items:center;justify-content:center;border:1px solid color-mix(in oklab,currentColor 18%,transparent);color:inherit;padding:0 !important;transition:background-color .2s,border-color .2s,color .2s}
.dp-social a:hover{background:#2F6FED;border-color:#2F6FED;color:#FFFFFF !important}

/* white-to-dark zone: a section that slowly darkens as you scroll through its grid */
.dp-dusk-zone{background:linear-gradient(180deg,var(--bg) 0%,var(--bg) 38%,#E3E7EE 52%,#5B6375 70%,#141821 86%,#05060A 100%)}
.dp.dp-dark .dp-dusk-zone{background:var(--bg)}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .dp:not(.dp-dark) .dp-dusk-zone{background-size:100% 190%;background-position:0 0;animation:dpZone linear both;animation-timeline:view();animation-range:cover 5% exit 100%}
  }
}
@keyframes dpZone{from{background-position:0 0}to{background-position:0 100%}}

/* hand-drawn "paper" scene boards for service illustrations */
.dp-board{position:relative;aspect-ratio:5/4;border-radius:28px;background-color:#F7F8FA;background-image:radial-gradient(#D3D9E3 1px,transparent 1.2px);background-size:18px 18px;border:1px solid #E2E5EB;overflow:hidden;color:#0A0B0D;box-shadow:0 40px 80px -40px rgba(15,40,110,.35)}
.dp-board > *{position:absolute}
.dp-hand{font-family:'Caveat','Bricolage Grotesque',cursive;font-weight:600;color:#1E4FC2;line-height:1.05}
.dp-sticky{background:#FFF4B8;color:#3A3200;font-family:'Caveat',cursive;font-size:20px;line-height:1.05;padding:10px 12px;box-shadow:0 8px 16px -8px rgba(0,0,0,.3)}
.dp-ui{background:#FFFFFF;border:1px solid #E2E5EB;border-radius:14px;box-shadow:0 18px 40px -22px rgba(10,20,60,.35)}
.dp-ui-dark{background:#0F1117;color:#F4F6FA;border:1px solid #232733;border-radius:14px;box-shadow:0 18px 40px -22px rgba(10,20,60,.5)}
.dp-btnmini{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#2F6FED;color:#fff;font-weight:600;font-size:12px;padding:6px 12px}
.dp-typing{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:bottom;animation:dpTypeW 8s steps(48) infinite}
.dp-appear{opacity:0;animation:dpAppear 8s ease infinite}
.dp-ride{offset-rotate:0deg;animation:dpRide 8s ease-in-out infinite}
.dp-sketch{stroke:#5B6375;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.dp-frame-on{animation:dpFrame 9s infinite}
.dp-point{animation:dpPoint 8s ease-in-out infinite;z-index:5}
.dp-ring{width:34px;height:34px;border-radius:50%;border:2px solid #2F6FED;opacity:0;animation:dpRing 8s ease-out infinite}
.dp-rider{transform:translate(-50%,-50%);animation:dpRider 8s linear infinite}
.dp-hide-late{animation:dpHideLate 8s ease infinite}
.dp-fill-loop{transform-origin:left;animation:dpFillLoop 8s ease-in-out infinite}
.dp-wave{display:inline-block;width:3px;border-radius:2px;background:#7FB0FF;transform-origin:center;animation:dpWave 1.2s ease-in-out infinite alternate}
@keyframes dpPoint{0%,8%{left:var(--x0);top:var(--y0)}42%,72%{left:var(--x1);top:var(--y1)}100%{left:var(--x0);top:var(--y0)}}
@keyframes dpRing{0%,44%{opacity:0;transform:translate(-50%,-50%) scale(.4)}48%{opacity:.9;transform:translate(-50%,-50%) scale(.8)}62%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}
@keyframes dpRider{0%{left:20%;top:85%}22%{left:20%;top:60%}50%{left:55%;top:60%}68%{left:55%;top:30%}86%{left:80%;top:30%}100%{left:80%;top:15%}}
@keyframes dpHideLate{0%,58%{opacity:1}64%,94%{opacity:0}100%{opacity:1}}
@keyframes dpFillLoop{0%,48%{transform:scaleX(.5)}62%,94%{transform:scaleX(1)}100%{transform:scaleX(.5)}}
@keyframes dpWave{from{transform:scaleY(.3)}to{transform:scaleY(1)}}
@keyframes dpTypeW{0%,8%{max-width:0}55%,92%{max-width:100%}100%{max-width:0}}
@keyframes dpAppear{0%,58%{opacity:0;transform:translateY(6px)}64%,94%{opacity:1;transform:none}100%{opacity:0}}
@keyframes dpRide{0%,6%{offset-distance:0%}86%,100%{offset-distance:100%}}
@keyframes dpFrame{0%,30%{outline:3px solid #2F6FED;outline-offset:3px}33.4%,100%{outline:3px solid transparent;outline-offset:3px}}

/* header bits */
.dp-nav-link{color:var(--muted);text-decoration:none;font-size:15px;font-weight:500;padding:12px 0;border-bottom:2px solid transparent;transition:color .2s}
.dp-nav-link:hover{color:var(--ink)}
.dp-nav-link.is-active{color:var(--ink);border-bottom-color:var(--accent)}
.dp-dd{position:relative;display:flex}
.dp-dd-panel{position:absolute;top:calc(100% + 12px);left:-24px;z-index:70;display:none;grid-template-columns:repeat(2,minmax(0,240px));gap:4px;padding:12px;border-radius:18px;background:var(--card);border:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(10,20,60,.45)}
.dp-dd:hover .dp-dd-panel,.dp-dd:focus-within .dp-dd-panel{display:grid}
.dp-dd-item{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;text-decoration:none;color:var(--ink) !important}
.dp-dd-item:hover{background:var(--bg2)}
.dp-dd-item small{color:var(--muted);font-size:13px}
.dp-toggle{width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.dp-toggle:hover{border-color:var(--accent)}
.dp-logo-on-light{display:block}.dp-logo-on-dark{display:none}
.dp.dp-dark .dp-logo-on-light{display:none}.dp.dp-dark .dp-logo-on-dark{display:block}

/* footer */
.dp-foot a{color:color-mix(in oklab,currentColor 70%,transparent);text-decoration:none;font-size:15px;padding:6px 0;display:inline-block}
.dp-foot a:hover{color:#FFFFFF}
.dp-foot-h{font-family:'Geist Mono',ui-monospace,monospace;font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#FFFFFF;margin:0 0 8px}

/* faq */
.dp details summary{cursor:pointer;list-style:none}
.dp details summary::-webkit-details-marker{display:none}
.dp details[open] .dp-plus{transform:rotate(45deg)}
.dp-plus{transition:transform .25s ease;flex:none}

/* form */
.dp-field{font-family:inherit;font-size:16px;padding:0 16px;height:52px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);width:100%}
textarea.dp-field{height:auto;padding:14px 16px;resize:vertical}
.dp-field:focus{border-color:var(--accent)}

/* keyframes */
@keyframes dpShimmer{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes dpDrift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,30px) scale(1.08)}100%{transform:translate(-30px,50px) scale(.95)}}
@keyframes dpStep{0%,24%{background:#14213D;color:#FFFFFF;border-color:#2F6FED}25%,100%{background:transparent;color:#7D8596;border-color:transparent}}
@keyframes dpScene{0%{opacity:0;transform:translateY(10px)}3%,22%{opacity:1;transform:none}25%,100%{opacity:0;transform:translateY(-10px)}}
@keyframes dpProg{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes dpTypeLine{0%{clip-path:inset(0 100% 0 0)}6%,24%{clip-path:inset(0 0 0 0)}25%,100%{clip-path:inset(0 100% 0 0)}}
@keyframes dpPop{0%{opacity:0;transform:translateX(-6px)}3%,23%{opacity:1;transform:none}25%,100%{opacity:0}}
@keyframes dpPing{0%{box-shadow:0 0 0 0 rgba(52,211,153,.6)}100%{box-shadow:0 0 0 10px rgba(52,211,153,0)}}
@keyframes dpGrow{from{transform:scaleY(.25)}to{transform:scaleY(1)}}
@keyframes dpFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes dpPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.2);opacity:0}}
@keyframes dpBlink{50%{opacity:0}}
@keyframes dpSpin{to{transform:rotate(360deg)}}
@keyframes dpDraw{to{stroke-dashoffset:0}}
@keyframes dpSlide{0%,40%{transform:translateX(0)}50%,90%{transform:translateX(-50%)}100%{transform:translateX(0)}}
@keyframes dpPlay{from{left:6%}to{left:94%}}
@keyframes dpCursor{0%,100%{transform:translate(0,0)}30%{transform:translate(120px,60px)}60%{transform:translate(40px,140px)}}
@keyframes dpMorph{0%,35%{opacity:0}50%,85%{opacity:1}100%{opacity:0}}
@keyframes dpMarquee{to{transform:translateX(-50%)}}
@keyframes dpDusk{0%{background-color:#FFFFFF;color:#0A0B0D}48%{color:#0A0B0D}52%{color:#F4F6FA}100%{background-color:#05060A;color:#F4F6FA}}
@keyframes dpRise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes dpFillX{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* scroll-driven effects (modern browsers); static fallback elsewhere */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .dp-reveal{animation:dpRise linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
    .dp-tl span{animation:dpFillX linear both;animation-timeline:view();animation-range:entry 40% cover 55%}
  }
}
@media (prefers-reduced-motion:reduce){
  .dp *,.dp *::before,.dp *::after{animation:none !important;transition:none !important}
  .dp-scene.s4{opacity:1}
  .dp-step.s4{background:#14213D;color:#FFFFFF}
  .dp-code > span{clip-path:none}
  .dp-check{opacity:1}
  .dp-appear{opacity:1}
  .dp-ring{display:none}
}
@media (max-width:640px){
  .dp-console-body{grid-template-columns:minmax(0,1fr)}
  .dp-steps{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #1A1F2A}
  .dp-step{flex:none}
  .dp-floatcard{display:none}
  .dp-shot{width:300px}
  .dp-dd-panel{grid-template-columns:minmax(0,1fr);left:0}
}

/* ===== Modern floating header (overrides) ===== */
.dp-header{position:sticky;top:0;z-index:60;background:transparent;border-bottom:0;backdrop-filter:none;-webkit-backdrop-filter:none;padding:14px 16px 0;pointer-events:none}
.dp-header > .dp-wrap{pointer-events:auto;max-width:1200px;border-radius:999px;padding-top:8px !important;padding-bottom:8px !important;padding-left:12px;padding-right:8px;
  background:color-mix(in oklab,var(--card) 72%,transparent);border:1px solid color-mix(in oklab,var(--line) 80%,transparent);
  backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 12px 32px -18px rgba(10,20,60,.35);position:relative;transition:box-shadow .3s ease,background-color .3s ease}
.dp.dp-dark .dp-header > .dp-wrap{box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 12px 32px -18px rgba(0,0,0,.8)}
.dp-header > .dp-wrap::after{content:"";position:absolute;left:12%;right:12%;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,#2F6FED,#67E8F9,transparent);opacity:.7;pointer-events:none}
.dp-header nav{gap:2px !important;padding:4px;border-radius:999px;background:color-mix(in oklab,var(--ink) 4%,transparent)}
.dp-header .dp-nav-link{padding:9px 16px;border-radius:999px;border-bottom:0;font-size:14.5px;color:var(--muted);transition:background-color .2s ease,color .2s ease}
.dp-header .dp-nav-link:hover{background:color-mix(in oklab,var(--ink) 7%,transparent);color:var(--ink)}
.dp-header .dp-nav-link.is-active{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(10,20,60,.12),0 0 0 1px var(--line)}
.dp-header .dp-nav-link.is-active::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,#2F6FED,#67E8F9);margin-right:8px;vertical-align:middle}
.dp-header .dp-nav-link svg{transition:transform .25s ease}
.dp-header .dp-dd:hover .dp-nav-link svg,.dp-header .dp-dd:focus-within .dp-nav-link svg{transform:rotate(180deg)}
.dp-header .dp-dd-panel{display:grid;opacity:0;visibility:hidden;transform:translateY(8px) scale(.98);transform-origin:top left;transition:opacity .22s ease,transform .22s ease,visibility .22s;left:-8px;top:calc(100% + 14px);padding:10px;border-radius:22px;
  background:color-mix(in oklab,var(--card) 92%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 30px 60px -24px rgba(10,20,60,.45)}
.dp-header .dp-dd:hover .dp-dd-panel,.dp-header .dp-dd:focus-within .dp-dd-panel{opacity:1;visibility:visible;transform:none}
.dp-header .dp-dd-item{position:relative;padding:12px 14px 12px 16px;transition:background-color .18s ease}
.dp-header .dp-dd-item::after{content:"→";position:absolute;right:14px;top:50%;transform:translate(-6px,-50%);opacity:0;color:var(--accent);transition:opacity .18s ease,transform .18s ease}
.dp-header .dp-dd-item:hover::after{opacity:1;transform:translate(0,-50%)}
.dp-header .dp-dd-item strong{font-size:14.5px}
.dp-header .dp-btn{background:linear-gradient(110deg,#1E4FC2,#2F6FED 50%,#3B9BF0);background-size:200% 100%;background-position:0 0;transition:background-position .4s ease,transform .2s ease,box-shadow .2s ease}
.dp-header .dp-btn:hover{background-position:100% 0}
.dp-header .dp-toggle{width:40px;height:40px;border-color:transparent;background:color-mix(in oklab,var(--ink) 5%,transparent)}
.dp-header .dp-toggle:hover{background:color-mix(in oklab,var(--ink) 10%,transparent)}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:scroll()){
    .dp-header > .dp-wrap{animation:dpHeadScroll linear both;animation-timeline:scroll(nearest);animation-range:0 240px}
  }
}
@keyframes dpHeadScroll{from{max-width:1240px}to{max-width:1080px;box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 18px 40px -16px rgba(10,20,60,.45)}}
@media (max-width:900px){
  .dp-header > .dp-wrap{border-radius:24px}
  .dp-header nav{order:3;width:100%;overflow-x:auto;justify-content:flex-start}
}

/* paper mini-scene on the services hub */
.dp-paper{position:relative;height:170px;border-radius:16px;background-color:#F7F8FA;background-image:radial-gradient(#D3D9E3 1px,transparent 1.2px);background-size:16px 16px;border:1px solid #E2E5EB;overflow:hidden;color:#0A0B0D;font-size:11px}
.dp-paper > *{position:absolute}

/* client logo marquee */
.dp-logo-tile{flex:none;width:188px;height:88px;background:#FFFFFF;border:1px solid #E2E5EB;border-radius:18px;display:flex;align-items:center;justify-content:center;padding:14px 18px;transition:transform .3s ease,box-shadow .3s ease}
.dp-logo-tile:hover{transform:translateY(-2px);box-shadow:0 14px 28px -18px rgba(10,20,60,.35)}
.dp-logo-tile img{display:block;width:auto;max-width:100%}
.dp-logo-tile img.sm{max-height:30px}.dp-logo-tile img.md{max-height:44px}.dp-logo-tile img.lg{max-height:56px}

/* ===== Header fixes: wide dropdown, no inner nav strip, bar floats over the hero ===== */
.dp-header .dp-dd-panel{width:540px;max-width:calc(100vw - 32px);grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;left:50%;margin-left:-270px}
.dp-header .dp-dd:hover .dp-dd-panel,.dp-header .dp-dd:focus-within .dp-dd-panel{transform:none}
.dp-header .dp-dd-panel{transform:translateY(8px)}
.dp-header .dp-dd-item{white-space:normal;padding-right:34px}
.dp-header .dp-dd-item strong{display:block;line-height:1.3}
.dp-header .dp-dd-item small{display:block;line-height:1.4;margin-top:2px}
.dp-header nav{background:transparent;padding:0}
.dp-header{margin-bottom:-78px}
.dp-header + main > section:first-child > .dp-wrap{padding-top:calc(clamp(48px,6vw,88px) + 78px) !important}
@media (max-width:900px){
  .dp-header{margin-bottom:-132px}
  .dp-header + main > section:first-child > .dp-wrap{padding-top:calc(48px + 132px) !important}
  .dp-header .dp-dd-panel{width:300px;margin-left:-150px;grid-template-columns:minmax(0,1fr)}
}

/* footer buttons: undo the generic footer-link rule */
.dp-foot a.dp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 28px;font-size:16px;line-height:1;color:#FFFFFF}
.dp-foot a.dp-btn-ghost{color:#F4F6FA !important;border-color:#2A3040}
.dp-foot a.dp-btn-ghost:hover{border-color:#2F6FED;background:rgba(47,111,237,.12)}

/* hide header on scroll down, reveal on scroll up */
.dp-header > .dp-wrap{transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .25s ease,box-shadow .3s ease,background-color .3s ease}
html.dp-nav-hidden .dp-header > .dp-wrap{transform:translateY(-140%);opacity:0;pointer-events:none}
.dp-header .dp-dd-panel{transition:opacity .22s ease,transform .22s ease,visibility .22s}
html.dp-nav-hidden .dp-header .dp-dd-panel{opacity:0;visibility:hidden}

/* ===== Header: dark glass in every theme and over every section ===== */
.dp-header > .dp-wrap{
  --ink:#F4F6FA; --muted:#B4BBC8; --card:#141821; --line:#262C38; --bg2:#1A1F2A; --accent:#7FB0FF; color:#F4F6FA;
  background:rgba(8,10,16,.72) !important;border-color:rgba(255,255,255,.10) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 16px 40px -18px rgba(0,0,0,.6) !important}
.dp-header .dp-logo-on-light{display:none !important}.dp-header .dp-logo-on-dark{display:block !important}
.dp-header .dp-nav-link{color:#B4BBC8}
.dp-header .dp-nav-link:hover{background:rgba(255,255,255,.08);color:#FFFFFF}
.dp-header .dp-nav-link.is-active{background:rgba(255,255,255,.12);color:#FFFFFF;box-shadow:0 0 0 1px rgba(255,255,255,.14) inset}
.dp-header .dp-toggle{background:rgba(255,255,255,.08);color:#F4F6FA}
.dp-header .dp-toggle:hover{background:rgba(255,255,255,.16)}
.dp-header .dp-dd-panel{background:rgba(12,14,20,.94) !important;border-color:rgba(255,255,255,.10) !important}
.dp-header .dp-dd-item{color:#F4F6FA !important}
.dp-header .dp-dd-item:hover{background:rgba(255,255,255,.07)}
.dp-header .dp-dd-item small{color:#9AA3B2}
@keyframes dpHeadScroll{from{max-width:1240px}to{max-width:1080px}}

/* ===== Count-up numbers ===== */
@property --n{syntax:'<integer>';initial-value:0;inherits:false}
.dp-count{--n:var(--to);counter-reset:n var(--n)}
.dp-count::before{content:counter(n)}
.dp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@keyframes dpCount{from{--n:0}to{--n:var(--to)}}
@media (prefers-reduced-motion:no-preference){
  .dp-count{animation:dpCount 2s cubic-bezier(.2,.7,.2,1) both}
  @supports (animation-timeline:view()){
    .dp-count{animation:dpCount linear both;animation-timeline:view();animation-range:entry 10% cover 35%}
  }
}

/* header keeps a fixed width while scrolling */
.dp-header > .dp-wrap{animation:none !important;max-width:1200px !important}

/* ===== Header: hero-style blue gradient glass ===== */
.dp-header > .dp-wrap{
  background:linear-gradient(110deg,rgba(15,46,138,.88) 0%,rgba(47,111,237,.86) 45%,rgba(59,155,240,.86) 75%,rgba(15,46,138,.88) 100%) !important;
  background-size:220% 100% !important;animation:dpShimmer 10s ease-in-out infinite alternate !important;
  border-color:rgba(255,255,255,.22) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 18px 40px -18px rgba(15,46,138,.65) !important;
  --muted:#DCE7FF; --line:rgba(255,255,255,.2)}
.dp-header > .dp-wrap::after{display:none}
.dp-header .dp-nav-link{color:#E3ECFF}
.dp-header .dp-nav-link:hover{background:rgba(255,255,255,.16);color:#FFFFFF}
.dp-header .dp-nav-link.is-active{background:rgba(255,255,255,.22);color:#FFFFFF;box-shadow:0 0 0 1px rgba(255,255,255,.3) inset}
.dp-header .dp-nav-link.is-active::before{background:#FFFFFF}
.dp-header .dp-toggle{background:rgba(255,255,255,.16);color:#FFFFFF}
.dp-header .dp-toggle:hover{background:rgba(255,255,255,.26)}
.dp-header .dp-btn{background:#FFFFFF !important;color:#1B4BC0 !important;box-shadow:0 8px 20px -10px rgba(0,0,0,.4)}
.dp-header .dp-btn:hover{background:#EAF1FE !important;color:#0F2E8A !important}
@media (prefers-reduced-motion:reduce){.dp-header > .dp-wrap{animation:none !important}}

/* ===== Header v3: blends into the hero at the top, becomes glass after scrolling ===== */
.dp-header > .dp-wrap{
  background:rgba(255,255,255,.78) !important;background-size:auto !important;
  border-color:rgba(10,20,60,.08) !important;color:#0A0B0D;
  box-shadow:0 10px 30px -20px rgba(10,20,60,.35) !important;
  animation:none !important}
.dp-header > .dp-wrap > a:first-child{position:relative}
.dp-header .dp-logo-on-light{display:block !important}
.dp-header .dp-logo-on-dark{display:block !important;position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:0}
.dp-header .dp-nav-link{color:inherit !important;opacity:.72}
.dp-header .dp-nav-link:hover{opacity:1;background:rgba(127,135,150,.14) !important}
.dp-header .dp-nav-link.is-active{opacity:1;background:rgba(127,135,150,.16) !important;box-shadow:none !important}
.dp-header .dp-nav-link.is-active::before{background:linear-gradient(135deg,#2F6FED,#67E8F9) !important}
.dp-header .dp-toggle{background:rgba(127,135,150,.14) !important;color:inherit !important;border-color:transparent}
.dp-header .dp-toggle:hover{background:rgba(127,135,150,.24) !important}
.dp-header .dp-btn{background:linear-gradient(110deg,#1E4FC2,#2F6FED 50%,#3B9BF0) !important;background-size:200% 100% !important;color:#FFFFFF !important;box-shadow:0 10px 24px -10px rgba(47,111,237,.7) !important}
.dp-header .dp-btn:hover{background-position:100% 0 !important;color:#FFFFFF !important}
/* dark theme: light text and white logo always */
.dp.dp-dark .dp-header > .dp-wrap{background:rgba(8,10,16,.72) !important;border-color:rgba(255,255,255,.10) !important;color:#F4F6FA}
.dp.dp-dark .dp-header .dp-logo-on-light{opacity:0}
.dp.dp-dark .dp-header .dp-logo-on-dark{opacity:1}

@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:scroll()){
    .dp-header > .dp-wrap{animation:dpBarLight linear both !important;animation-timeline:scroll(nearest) !important;animation-range:20px 220px !important}
    .dp-header .dp-logo-on-light{animation:dpFadeOut linear both;animation-timeline:scroll(nearest);animation-range:20px 220px}
    .dp-header .dp-logo-on-dark{animation:dpFadeIn linear both;animation-timeline:scroll(nearest);animation-range:20px 220px}
    .dp.dp-dark .dp-header > .dp-wrap{animation-name:dpBarDark !important}
    .dp.dp-dark .dp-header .dp-logo-on-light,.dp.dp-dark .dp-header .dp-logo-on-dark{animation:none}
  }
}
@keyframes dpBarLight{
  from{background:rgba(255,255,255,0);border-color:rgba(255,255,255,0);box-shadow:0 0 0 rgba(0,0,0,0);color:#0A0B0D;backdrop-filter:blur(0)}
  to{background:rgba(8,10,16,.78);border-color:rgba(255,255,255,.10);box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 16px 40px -18px rgba(0,0,0,.6);color:#F4F6FA;backdrop-filter:blur(18px)}}
@keyframes dpBarDark{
  from{background:rgba(8,10,16,0);border-color:rgba(255,255,255,0);box-shadow:0 0 0 rgba(0,0,0,0);color:#F4F6FA}
  to{background:rgba(8,10,16,.78);border-color:rgba(255,255,255,.10);box-shadow:0 16px 40px -18px rgba(0,0,0,.6);color:#F4F6FA}}
@keyframes dpFadeOut{from{opacity:1}to{opacity:0}}
@keyframes dpFadeIn{from{opacity:0}to{opacity:1}}

/* ===== Dark theme mirror: dark -> white on scroll ===== */
.dp.dp-dark .dp-dusk-zone{background:linear-gradient(180deg,var(--bg) 0%,var(--bg) 38%,#161B26 52%,#7A8396 70%,#E6EAF1 86%,#FFFFFF 100%)}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .dp.dp-dark .dp-dusk-zone{background-size:100% 190%;background-position:0 0;animation:dpZone linear both;animation-timeline:view();animation-range:cover 5% exit 100%}
  }
}
.dp.dp-dark .dp-dusk{
  background:#FFFFFF;color:#0A0B0D;
  --ink:#0A0B0D; --muted:#4E5562; --line:#E2E5EB; --card:#FFFFFF; --bg2:#F3F5F9;
  --chip:#EAF1FE; --chip-ink:#1B4BC0; --accent:#2F6FED;
  --grad:linear-gradient(100deg,#1E4FC2 0%,#2F6FED 40%,#0369A1 100%);
  --glow:rgba(47,111,237,.22)}
.dp.dp-dark .dp-dusk dl > div{background:#FFFFFF !important}
.dp.dp-dark .dp-dusk .dp-card:hover{box-shadow:0 28px 56px -28px rgba(47,111,237,.3)}
.dp.dp-dark .dp-dusk .dp-logo-on-light{display:block}
.dp.dp-dark .dp-dusk .dp-logo-on-dark{display:none}

.dp-dashflow{animation:dpDashFlow 1.6s linear infinite}
@keyframes dpDashFlow{to{stroke-dashoffset:-6.4}}

/* header CTA: white button */
.dp-header .dp-btn{background:#FFFFFF !important;color:#0A0B0D !important;border:1px solid rgba(10,20,60,.12) !important;box-shadow:0 6px 16px -10px rgba(10,20,60,.45) !important}
.dp-header .dp-btn:hover{background:#F3F5F9 !important;color:#1B4BC0 !important;transform:translateY(-1px)}

/* header: switch quickly so logo/text never sit half-faded on a light background */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:scroll()){
    .dp-header > .dp-wrap,.dp-header .dp-logo-on-light,.dp-header .dp-logo-on-dark{animation-range:10px 90px !important}
  }
}
@keyframes dpBarLight{
  0%,42%{background:rgba(255,255,255,0);border-color:rgba(255,255,255,0);box-shadow:0 0 0 rgba(0,0,0,0);color:#0A0B0D}
  58%,100%{background:rgba(8,10,16,.9);border-color:rgba(255,255,255,.12);box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 16px 40px -18px rgba(0,0,0,.6);color:#F4F6FA}}
@keyframes dpBarDark{
  0%,42%{background:rgba(8,10,16,0);border-color:rgba(255,255,255,0);box-shadow:0 0 0 rgba(0,0,0,0);color:#F4F6FA}
  58%,100%{background:rgba(8,10,16,.9);border-color:rgba(255,255,255,.12);box-shadow:0 16px 40px -18px rgba(0,0,0,.6);color:#F4F6FA}}
@keyframes dpFadeOut{0%,42%{opacity:1}58%,100%{opacity:0}}
@keyframes dpFadeIn{0%,42%{opacity:0}58%,100%{opacity:1}}

/* ===== Header v4: class-driven (html.dp-scrolled), no scroll timelines ===== */
.dp-header > .dp-wrap{animation:none !important;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease,transform .35s cubic-bezier(.2,.7,.2,1),opacity .25s ease !important;
  background:transparent !important;border-color:transparent !important;box-shadow:none !important;color:#0A0B0D}
.dp-header .dp-logo-on-light,.dp-header .dp-logo-on-dark{animation:none !important;transition:opacity .2s ease}
.dp-header .dp-logo-on-light{opacity:1}.dp-header .dp-logo-on-dark{opacity:0}
html.dp-scrolled .dp-header > .dp-wrap{background:rgba(8,10,16,.92) !important;border-color:rgba(255,255,255,.12) !important;box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 16px 40px -18px rgba(0,0,0,.6) !important;color:#F4F6FA}
html.dp-scrolled .dp-header .dp-logo-on-light{opacity:0}
html.dp-scrolled .dp-header .dp-logo-on-dark{opacity:1}
/* dark theme */
.dp.dp-dark .dp-header > .dp-wrap{background:transparent !important;border-color:transparent !important;color:#F4F6FA}
.dp.dp-dark .dp-header .dp-logo-on-light{opacity:0}.dp.dp-dark .dp-header .dp-logo-on-dark{opacity:1}
html.dp-scrolled .dp.dp-dark .dp-header > .dp-wrap{background:rgba(8,10,16,.92) !important;border-color:rgba(255,255,255,.12) !important;box-shadow:0 16px 40px -18px rgba(0,0,0,.6) !important}

/* Portfolio case grid: last row stretches so there are no empty slots */
.dp-casegrid{display:flex !important;flex-wrap:wrap}
.dp-casegrid sc-if{display:contents}
.dp-casegrid li{flex:1 1 340px;min-width:0}
@media (min-width:760px){.dp-casegrid li{max-width:calc(50% - 12px)}}

/* Phone screenshots inside landscape cards: shown as a phone rising from the bottom, never cropped sideways */
.dp-shot-img.dp-shot-phone{background:radial-gradient(circle at 50% 120%,#2F6FED 0%,#0F2E8A 45%,#05060A 100%)}
.dp-shot-img.dp-shot-phone img{inset:auto;left:50%;top:9%;width:auto;height:150%;max-width:none;object-fit:contain;object-position:top center;transform:translateX(-50%);border-radius:22px;border:5px solid #0A0B0D;box-shadow:0 24px 48px -16px rgba(0,0,0,.6)}
.dp-shot-img.dp-shot-phone:hover img{transform:translateX(-50%) translateY(-6px)}

/* Story stats: staggered rise, light sweep, glowing numbers, accent line */
@keyframes dpStatRise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes dpStatSweep{0%,55%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
@keyframes dpStatLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes dpStatGlow{0%,100%{text-shadow:0 0 0 rgba(79,141,255,0)}50%{text-shadow:0 0 28px rgba(79,141,255,.45)}}
.dp-stats-fx > div{position:relative;overflow:hidden;transition:background-color .3s ease;animation:dpStatRise .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 120ms)}
.dp-stats-fx > div::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#2F6FED,#67E8F9);transform-origin:left;animation:dpStatLine 1.1s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 120ms + .3s)}
.dp-stats-fx > div::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,rgba(127,176,255,.14) 50%,transparent 65%);animation:dpStatSweep 6s ease-in-out infinite;animation-delay:calc(var(--i,0) * .5s)}
.dp-stats-fx dd{animation:dpStatGlow 4s ease-in-out infinite;animation-delay:calc(var(--i,0) * .4s)}
.dp-stats-fx > div:hover{background:#0B1222 !important}
@supports (animation-timeline:view()){
  .dp-stats-fx > div{animation-timeline:view();animation-range:entry 0% entry 60%;animation-duration:auto}
  .dp-stats-fx > div::before{animation-timeline:view();animation-range:entry 20% cover 40%;animation-duration:auto}
}
@media (prefers-reduced-motion:reduce){.dp-stats-fx > div,.dp-stats-fx > div::before,.dp-stats-fx > div::after,.dp-stats-fx dd{animation:none !important}}
