:root { --ink:#07070a; --paper:#f6f4f9; --violet:#7047eb; --violet-light:#aa8bff; --muted:#756f7b; --line:rgba(255,255,255,.16); --content-max:1320px; --page-pad:max(clamp(22px,4vw,64px),calc((100% - var(--content-max))/2)); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ink); color:#fff; font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }

.site-header { position:fixed; z-index:30; inset:0 0 auto; height:76px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 var(--page-pad); border-bottom:1px solid var(--line); background:rgba(7,7,10,.66); backdrop-filter:blur(18px); transition:height .3s ease,background .3s ease,box-shadow .3s ease; }
.site-header.is-scrolled { height:70px; background:rgba(7,7,10,.9); box-shadow:0 14px 44px rgba(0,0,0,.24); }
.brand img { width:168px; height:auto; display:block; }
.desktop-nav { display:flex; gap:4px; padding:5px; border:1px solid rgba(255,255,255,.13); border-radius:999px; color:#d8d4e3; background:rgba(255,255,255,.055); box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 34px rgba(0,0,0,.18); }
.desktop-nav a { position:relative; display:flex; align-items:center; gap:9px; min-height:38px; padding:0 16px; overflow:hidden; border-radius:999px; font-size:12px; font-weight:750; letter-spacing:.01em; transition:color .25s ease,background .25s ease,transform .25s ease; }
.desktop-nav a::before { content:''; position:absolute; inset:0; opacity:0; background:linear-gradient(135deg,rgba(139,96,255,.4),rgba(92,45,215,.2)); transition:opacity .25s ease; }
.desktop-nav a i { position:relative; z-index:1; width:5px; height:5px; border-radius:50%; background:#81798a; transition:.25s ease; }
.desktop-nav a span { position:relative; z-index:1; }
.desktop-nav a:hover,.desktop-nav a.is-active { color:#fff; transform:translateY(-1px); }
.desktop-nav a:hover::before,.desktop-nav a.is-active::before { opacity:1; }
.desktop-nav a:hover i,.desktop-nav a.is-active i { background:#c5b1ff; box-shadow:0 0 12px #9d77ff; }
.header-tools { justify-self:end; display:flex; align-items:center; gap:10px; }
.language-switch { display:flex; padding:3px; border:1px solid rgba(255,255,255,.14); border-radius:999px; background:rgba(255,255,255,.055); }
.language-switch button { width:34px; height:32px; padding:0; border:0; border-radius:999px; color:#88818f; background:transparent; font-size:10px; font-weight:900; letter-spacing:.06em; cursor:pointer; transition:.25s ease; }
.language-switch button:hover { color:#fff; }
.language-switch button.is-active { color:#fff; background:linear-gradient(135deg,#8559fb,#5c31d7); box-shadow:0 7px 18px rgba(112,71,235,.38); }
.header-cta { display:flex; align-items:center; gap:10px; min-height:42px; padding:0 18px; border:1px solid rgba(255,255,255,.24); border-radius:999px; font-size:13px; font-weight:800; transition:.25s ease; }
.header-cta .ui-strong { color:var(--violet-light); transition:transform .25s ease; }
.header-cta:hover { border-color:var(--violet-light); background:rgba(112,71,235,.14); box-shadow:0 0 28px rgba(112,71,235,.16); }
.header-cta:hover .ui-strong { transform:translate(3px,-3px); }
.menu-toggle,.mobile-menu { display:none; }
.scroll-ember { position:fixed; z-index:29; top:50%; right:18px; width:2px; height:118px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.1); transform:translateY(-50%); pointer-events:none; }
.scroll-ember i { position:absolute; inset:0; border-radius:inherit; background:linear-gradient(#cbbaff,#7047eb,#ff7a55); box-shadow:0 0 16px rgba(137,91,255,.75); transform:scaleY(var(--page-progress,0)); transform-origin:top; }

.hero { position:relative; min-height:100svh; overflow:hidden; isolation:isolate; padding:132px var(--page-pad) 70px; display:flex; align-items:center; }
.hero::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#07070a 0%,rgba(7,7,10,.95) 41%,rgba(7,7,10,.48) 74%,rgba(7,7,10,.18)); }
.hero-media { position:absolute; z-index:-3; inset:-3% -2% -3% 34%; background-image:image-set(url('./volcano-hero-v81.webp') type('image/webp'),url('./volcano-hero-v61.png') type('image/png')); background-position:center; background-size:cover; background-repeat:no-repeat; filter:saturate(.78) contrast(1.08); transform:translate3d(var(--hero-x,0),var(--hero-y,0),0) scale(1.035); transition:transform .12s linear; animation:volcanoDrift 12s ease-in-out infinite alternate; will-change:transform,background-position; }
.hero-glow { position:absolute; z-index:-2; width:620px; height:620px; right:2%; top:12%; border-radius:50%; background:radial-gradient(circle,rgba(112,71,235,.4),transparent 64%); filter:blur(25px); mix-blend-mode:screen; transform:translate3d(var(--glow-x,0),var(--glow-y,0),0); animation:breathe 6s ease-in-out infinite alternate; will-change:transform,opacity; }
.hero-orbits { position:absolute; z-index:-1; inset:76px -13% -16% 44%; pointer-events:none; transform:translate3d(var(--orbit-x,0),var(--orbit-y,0),0); transition:transform .18s linear; opacity:.62; }
.hero-orbits i { position:absolute; inset:12% 2%; border:1px solid rgba(174,145,255,.28); border-radius:50%; transform:rotate(-13deg); animation:orbitPulse 7s ease-in-out infinite alternate; }
.hero-orbits i:nth-child(2){inset:22% 12%;border-color:rgba(138,91,255,.25);animation-delay:-2.2s}.hero-orbits i:nth-child(3){inset:32% 22%;border-color:rgba(255,117,219,.2);animation-delay:-4s}
.hero-embers { position:absolute; z-index:-1; inset:76px 0 0 43%; overflow:hidden; pointer-events:none; mask-image:linear-gradient(90deg,transparent,#000 18%,#000 88%,transparent); }
.hero-embers i { position:absolute; left:var(--ember-x); bottom:-20px; width:var(--ember-size); height:var(--ember-size); border-radius:50%; background:#c19cff; box-shadow:0 0 10px #8b5fff,0 0 24px rgba(139,95,255,.7); opacity:0; animation:emberRise var(--ember-time) linear infinite; animation-delay:var(--ember-delay); }
.hero-embers i:nth-child(1){--ember-x:8%;--ember-size:3px;--ember-time:8s;--ember-delay:-2s}.hero-embers i:nth-child(2){--ember-x:17%;--ember-size:2px;--ember-time:11s;--ember-delay:-8s}.hero-embers i:nth-child(3){--ember-x:27%;--ember-size:4px;--ember-time:9s;--ember-delay:-5s}.hero-embers i:nth-child(4){--ember-x:36%;--ember-size:2px;--ember-time:12s;--ember-delay:-1s}.hero-embers i:nth-child(5){--ember-x:46%;--ember-size:3px;--ember-time:10s;--ember-delay:-7s}.hero-embers i:nth-child(6){--ember-x:55%;--ember-size:2px;--ember-time:8.5s;--ember-delay:-4s}.hero-embers i:nth-child(7){--ember-x:64%;--ember-size:4px;--ember-time:13s;--ember-delay:-10s}.hero-embers i:nth-child(8){--ember-x:72%;--ember-size:2px;--ember-time:9.5s;--ember-delay:-3s}.hero-embers i:nth-child(9){--ember-x:81%;--ember-size:3px;--ember-time:11.5s;--ember-delay:-6s}.hero-embers i:nth-child(10){--ember-x:89%;--ember-size:2px;--ember-time:8s;--ember-delay:-5s}.hero-embers i:nth-child(11){--ember-x:41%;--ember-size:2px;--ember-time:14s;--ember-delay:-12s}.hero-embers i:nth-child(12){--ember-x:69%;--ember-size:3px;--ember-time:10.5s;--ember-delay:-9s}
.hero-light-sweep { position:absolute; z-index:-1; top:-35%; right:5%; width:13%; height:175%; pointer-events:none; background:linear-gradient(90deg,transparent,rgba(179,142,255,.08),rgba(255,255,255,.14),rgba(143,91,255,.05),transparent); filter:blur(16px); transform:translateX(-650%) rotate(17deg); animation:lightSweep 9s ease-in-out infinite; }
.hero-content { width:min(780px,67vw); position:relative; z-index:2; }
.eyebrow { display:flex; align-items:center; gap:11px; margin:0 0 22px; color:#cabdff; font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow > span:not(.ui-strong) { width:27px; height:1px; background:var(--violet-light); }
.hero-title { margin:0; max-width:880px; font-size:clamp(58px,6.7vw,104px); line-height:.96; letter-spacing:-.06em; }
.hero-title span { display:block; }
.hero-title .headline-solid { color:#fff; }
.hero-title .headline-outline { margin-top:.1em; color:transparent; -webkit-text-stroke:1.5px #ae91ff; text-shadow:0 0 45px rgba(112,71,235,.2); }
.hero-copy { max-width:630px; margin:28px 0 0; color:#d3cedc; font-size:clamp(18px,1.45vw,22px); line-height:1.5; }
.hero-actions { display:flex; gap:12px; margin-top:34px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:13px; min-height:52px; padding:0 23px; border:0; border-radius:999px; font-weight:800; cursor:pointer; transition:.25s ease; }
.button-primary { position:relative; overflow:hidden; isolation:isolate; color:#fff; background:linear-gradient(135deg,#865aff,#5d30dd); box-shadow:0 16px 45px rgba(112,71,235,.34); }
.button-primary::before { content:''; position:absolute; z-index:-1; top:-80%; bottom:-80%; left:-42%; width:25%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent); transform:rotate(18deg); animation:ctaShine 4.8s ease-in-out infinite; }
.button-primary:hover { transform:translateY(-2px); box-shadow:0 20px 55px rgba(112,71,235,.48); }
.button-ghost { border:1px solid var(--line); }
.button-ghost:hover { border-color:var(--violet-light); background:rgba(112,71,235,.12); }
.proof-strip { display:flex; align-items:center; gap:14px; margin-top:38px; color:#b9b3c1; font-size:12px; }
.proof-strip i { width:3px; height:3px; border-radius:50%; background:var(--violet-light); }
.hero-card { position:absolute; right:var(--page-pad); bottom:74px; width:248px; padding:18px; border:1px solid rgba(255,255,255,.2); border-radius:21px; background:rgba(14,12,22,.76); box-shadow:0 24px 80px rgba(0,0,0,.42); backdrop-filter:blur(20px); transform:none; animation:cardFloat 5.5s ease-in-out infinite alternate; }
.card-top { display:flex; align-items:center; gap:8px; color:#d9d3e6; font-size:10px; }
.status-dot { width:7px; height:7px; border-radius:50%; background:#67efad; box-shadow:0 0 16px #67efad; }
.hero-card>p { margin:20px 0 6px; color:#938aa4; font-size:8px; letter-spacing:.14em; }
.hero-card>.hero-metric { font-size:23px; }
.mini-chart { height:49px; margin:17px 0; display:flex; align-items:end; gap:7px; }
.mini-chart span { flex:1; border-radius:4px 4px 1px 1px; background:linear-gradient(#aa8bff,#5932d2); animation:bars 2.8s ease-in-out infinite alternate; transform-origin:bottom; }
.mini-chart span:nth-child(1){height:27%}.mini-chart span:nth-child(2){height:43%;animation-delay:.2s}.mini-chart span:nth-child(3){height:34%;animation-delay:.4s}.mini-chart span:nth-child(4){height:62%;animation-delay:.15s}.mini-chart span:nth-child(5){height:76%;animation-delay:.3s}.mini-chart span:nth-child(6){height:100%;animation-delay:.5s}
.card-bottom { display:flex; justify-content:space-between; padding-top:13px; border-top:1px solid var(--line); color:#aaa3b5; font-size:10px; }
.card-bottom .ui-strong { color:#fff; }

.ticker { overflow:hidden; background:var(--violet); white-space:nowrap; }
.ticker-track { display:flex; width:max-content; will-change:transform; animation:ticker 27s linear infinite; }
.ticker-segment { flex:none; padding:15px 0; font-size:12px; font-weight:900; letter-spacing:.14em; }
.ticker i { padding:0 22px; color:#d8cdff; font-style:normal; }
.section-light { background:var(--paper); color:#151219; }
.section-intro { max-width:1320px; margin:0 auto 48px; }
.section-label { margin:0; color:var(--violet); font-size:10px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.section-label.light { color:#bba7ff; }
.section-intro h2,.impact h2,.contact h2 { margin:16px 0 0; font-size:clamp(44px,5.1vw,74px); line-height:.96; letter-spacing:-.055em; }
.section-intro h2 em,.impact h2 em,.contact h2 em { color:var(--violet); font-style:normal; }
.section-intro>p:last-child { margin:17px 0 0; color:var(--muted); font-size:17px; }

.services { padding:48px var(--page-pad) 40px; }
.service-grid { max-width:1320px; margin:auto; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.service-card { position:relative; min-height:330px; padding:25px; overflow:hidden; border:1px solid #dfdae4; border-radius:20px; background:rgba(255,255,255,.52); transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .3s ease,box-shadow .3s ease,background .3s ease; }
.service-card::after { content:''; position:absolute; width:150px; height:150px; right:-90px; bottom:-90px; border-radius:50%; background:var(--violet); filter:blur(25px); opacity:0; transition:.35s ease; }
.service-card:hover { z-index:2; transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-7px); background:#fff; box-shadow:0 24px 65px rgba(41,24,78,.12); }
.service-card:hover::after { opacity:.14; }
.service-top { display:flex; align-items:center; justify-content:space-between; }
.service-top small { color:#aaa3af; font-size:10px; }
.service-icon { display:grid; place-items:center; width:43px; height:43px; border-radius:13px; color:#fff; background:var(--ink); font-size:18px; transition:.25s ease; }
.service-card:hover .service-icon { background:var(--violet); transform:rotate(-7deg); }
.service-card h3 { margin:52px 0 14px; font-size:27px; letter-spacing:-.04em; }
.service-card>p { margin:0; color:#746d79; font-size:14px; line-height:1.55; }
.tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:24px; }
.tags span { padding:6px 9px; border:1px solid #ddd7e2; border-radius:999px; color:#716a76; font-size:9px; text-transform:uppercase; letter-spacing:.06em; }
.service-arrow { position:absolute; right:22px; bottom:20px; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#ece8f1; color:var(--violet); transition:.25s ease; }
.service-card:hover .service-arrow { color:#fff; background:var(--violet); transform:rotate(45deg); }
@media (hover:none), (pointer:coarse) {
  .service-grid { touch-action:pan-x pan-y pinch-zoom; overscroll-behavior:auto !important; scroll-snap-type:x proximity !important; overflow-y:hidden; }
  .service-card,.service-card:hover { transform:none; box-shadow:none; touch-action:pan-x pan-y pinch-zoom; }
  .service-card:hover::after { opacity:0; }
  .service-card:hover .service-icon,.service-card:hover .service-arrow { transform:none; }
}
.swipe-hint { display:none; }

.work { padding:40px var(--page-pad); }
.work-intro { display:grid; grid-template-columns:1fr 350px; gap:54px; align-items:end; }
.work-intro>p { margin:0 0 4px; color:var(--muted); font-size:16px; line-height:1.6; }
.work-grid { max-width:1320px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.work-grid figure { margin:0; min-width:0; }
.project-image { position:relative; overflow:hidden; border-radius:4px; background:#111; }
.project-image picture { display:block; }
.work-grid img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; display:block; transition:transform .5s ease,filter .5s ease; }
.work-grid figure:hover img { transform:scale(1.055); filter:saturate(1.08) brightness(.72); }
.project-open { position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:space-between; width:100%; padding:22px; border:0; color:#fff; background:linear-gradient(180deg,transparent 35%,rgba(5,4,8,.82)); opacity:0; cursor:pointer; transition:opacity .35s ease; }
.project-open span:not(.ui-strong) { padding:9px 13px; border:1px solid rgba(255,255,255,.3); border-radius:999px; background:rgba(10,8,14,.38); font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; backdrop-filter:blur(10px); transform:translateY(9px); transition:transform .35s ease,background .25s ease; }
.project-open .ui-strong { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--violet); font-size:18px; transform:translateY(9px) rotate(-12deg); transition:transform .35s ease; }
.work-grid figure:hover .project-open,.project-open:focus-visible { opacity:1; }
.work-grid figure:hover .project-open span:not(.ui-strong),.project-open:focus-visible span:not(.ui-strong) { transform:none; }
.work-grid figure:hover .project-open .ui-strong,.project-open:focus-visible .ui-strong { transform:none; }
.work-grid figcaption { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 2px; font-size:12px; }
.work-grid figcaption span:not(.ui-strong) { color:#817a86; }
.work-grid figcaption .ui-strong { color:#29242f; text-align:right; }
.carousel-dots { display:none; }

.reviews-preview { padding:14px var(--page-pad) 40px; }
.reviews-shell { position:relative; max-width:1440px; margin:auto; padding:62px 0 34px; overflow:hidden; border:1px solid rgba(112,71,235,.2); border-radius:34px; color:#fff; background:radial-gradient(circle at 50% -15%,rgba(133,84,255,.36),transparent 38%),linear-gradient(145deg,#09070d,#151020 64%,#09070d); box-shadow:0 28px 90px rgba(34,18,70,.2); }
.reviews-shell::before { content:''; position:absolute; inset:-42% 22% auto; height:420px; border:1px solid rgba(174,145,255,.16); border-radius:50%; transform:rotate(-8deg); pointer-events:none; }
.reviews-head { position:relative; z-index:1; display:grid; justify-items:center; max-width:880px; margin:0 auto 40px; padding:0 38px; text-align:center; }
.reviews-head h2 { margin:14px 0 0; font-size:clamp(40px,4.8vw,70px); line-height:.96; letter-spacing:-.055em; }
.reviews-head h2 em { color:#aa87ff; font-style:normal; }
.reviews-intro { max-width:650px; margin:20px auto 0; color:#aaa3b2; font-size:16px; line-height:1.6; }
.reviews-score { display:grid; grid-template-columns:auto auto; align-items:center; gap:1px 10px; margin-top:24px; padding:12px 17px; border:1px solid rgba(197,175,255,.24); border-radius:999px; background:rgba(255,255,255,.055); backdrop-filter:blur(14px); transition:.25s ease; }
.reviews-score:hover { border-color:rgba(174,145,255,.72); background:rgba(112,71,235,.14); transform:translateY(-2px); }
.reviews-score>span { grid-row:1/3; font-size:27px; font-weight:900; letter-spacing:-.055em; }
.reviews-score>div,.review-stars { color:#a77cff; letter-spacing:.11em; }
.reviews-score small { color:#bdb5c8; font-size:10px; }
.reviews-grid { position:relative; z-index:1; display:flex; gap:18px; width:100%; padding:8px clamp(28px,4vw,58px) 22px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:clamp(28px,4vw,58px); scrollbar-width:none; overscroll-behavior-inline:contain; mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%); }
.reviews-grid::-webkit-scrollbar { display:none; }
.review-card { position:relative; display:flex; flex:0 0 clamp(310px,31vw,410px); flex-direction:column; min-height:320px; padding:29px 28px 25px; overflow:hidden; border:1px solid rgba(196,174,255,.2); border-radius:24px; background:linear-gradient(145deg,rgba(111,70,234,.18),rgba(255,255,255,.05)); box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 18px 48px rgba(0,0,0,.16); scroll-snap-align:center; transition:transform .3s ease,border-color .3s ease,background .3s ease; }
.review-card::before { content:'“'; position:absolute; top:2px; right:19px; color:rgba(169,135,255,.13); font-family:Georgia,serif; font-size:112px; line-height:1; pointer-events:none; }
.review-card:hover { border-color:rgba(174,145,255,.48); background:linear-gradient(145deg,rgba(111,70,234,.24),rgba(255,255,255,.06)); }
.review-stars { position:relative; font-size:14px; }
.review-card>p { position:relative; flex:1; margin:24px 0 30px; color:#f0ebf6; font-size:17px; font-style:italic; line-height:1.55; }
.review-footer { position:relative; display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:12px; padding-top:20px; border-top:1px solid rgba(255,255,255,.11); }
.review-avatar { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; color:#fff; font-size:11px; font-weight:900; background:linear-gradient(135deg,#b596ff,#6335e5); box-shadow:0 8px 24px rgba(98,52,224,.28); }
.review-footer strong { display:block; color:#fff; font-size:13px; }.review-footer small { display:block; margin-top:4px; color:#92899d; font-size:10px; }.google-mark { display:grid; place-items:center; width:34px; height:34px; border:1px solid rgba(255,255,255,.12); border-radius:50%; color:#cab8ff; background:rgba(255,255,255,.045); font-size:16px; font-weight:900; transition:.2s ease; }.google-mark:hover { border-color:#9f7cff; color:#fff; background:#7047eb; }
.reviews-marquee { position:relative; overflow:hidden; padding:8px 0 16px; mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent); }
.reviews-track { display:flex; width:max-content; animation:reviews-flow 65s linear infinite; }
.review-set { display:flex; flex-shrink:0; gap:14px; padding-right:14px; }
.reviews-marquee .review-card { flex:0 0 300px; width:300px; min-height:0; padding:20px; border-radius:19px; }
.reviews-marquee .review-card>p { margin:16px 0 20px; font-size:16px; line-height:1.5; }
.reviews-marquee .review-footer { grid-template-columns:34px 1fr auto; gap:9px; padding-top:14px; }
.reviews-marquee .review-avatar { width:34px; height:34px; }
.reviews-marquee .review-footer strong { font-size:13px; }
.reviews-marquee .review-footer small { font-size:12px; }
.reviews-marquee .review-card::before { font-size:80px; }
@keyframes reviews-flow { to { transform:translateX(-50%); } }
@media(max-width:760px) { .reviews-marquee .review-card { flex-basis:270px; width:270px; padding:18px; } .reviews-marquee { mask-image:none; } }
@media(prefers-reduced-motion:reduce) { .reviews-marquee { overflow-x:auto; } .reviews-track { animation:none; } .review-set[aria-hidden="true"] { display:none; } }

.project-dialog { width:min(1080px,calc(100% - 36px)); max-height:min(780px,calc(100svh - 36px)); padding:0; overflow:hidden; border:1px solid #443a50; border-radius:26px; background:#0d0b11; color:#fff; box-shadow:0 40px 140px rgba(0,0,0,.8); }
.project-dialog[open] { display:grid; grid-template-columns:1.05fr .95fr; animation:dialogIn .38s cubic-bezier(.2,.8,.2,1); }
.project-dialog::backdrop { background:rgba(5,4,8,.78); backdrop-filter:blur(10px); }
.dialog-close { position:absolute; z-index:3; top:16px; right:16px; display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.22); border-radius:50%; color:#fff; background:rgba(8,6,12,.7); font-size:24px; cursor:pointer; backdrop-filter:blur(12px); transition:.25s ease; }
.dialog-close:hover { border-color:var(--violet-light); background:var(--violet); transform:rotate(8deg); }
.dialog-media { min-height:560px; background:#15121a; }
.dialog-media img { width:100%; height:100%; object-fit:cover; display:block; }
.dialog-copy { padding:52px 42px 40px; overflow:auto; }
.dialog-copy h3 { margin:12px 0 30px; font-size:clamp(40px,5vw,64px); letter-spacing:-.055em; }
.dialog-details { display:grid; gap:0; margin-bottom:30px; }
.dialog-details div { display:grid; grid-template-columns:32px 100px 1fr; gap:12px; padding:17px 0; border-top:1px solid #302a37; align-items:start; }
.dialog-details span { color:var(--violet-light); font-size:9px; }
.dialog-details strong { font-size:12px; }
.dialog-details p { margin:0; color:#a9a2b0; font-size:13px; line-height:1.55; }

.impact { position:relative; min-height:480px; padding:44px var(--page-pad); display:grid; grid-template-columns:1fr .8fr; gap:clamp(48px,6vw,108px); align-items:center; overflow:hidden; background:radial-gradient(circle at 75% 50%,rgba(112,71,235,.17),transparent 33%),#09080d; }
.impact::before { content:''; position:absolute; inset:0; opacity:.17; background-image:linear-gradient(#736b7e11 1px,transparent 1px),linear-gradient(90deg,#736b7e11 1px,transparent 1px); background-size:34px 34px; }
.impact-copy,.impact-points { position:relative; z-index:2; }
.impact h2 { color:#fff; }
.impact-copy>p:nth-of-type(2) { max-width:610px; margin:24px 0 0; color:#aaa3b2; font-size:18px; line-height:1.6; }
.text-link { display:inline-flex; align-items:center; gap:14px; margin-top:30px; padding-bottom:7px; border-bottom:1px solid #6044b2; font-weight:800; }
.text-link span:not(.ui-strong) { color:var(--violet-light); }
.impact-points { display:grid; gap:14px; }
.impact-points div { display:grid; grid-template-columns:44px 1fr; grid-template-rows:auto auto; align-items:center; column-gap:16px; row-gap:3px; min-height:94px; padding:17px 28px; border:1px solid rgba(187,167,255,.18); border-radius:20px; background:linear-gradient(120deg,rgba(112,71,235,.17),rgba(255,255,255,.035)); box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 18px 48px rgba(0,0,0,.12); backdrop-filter:blur(10px); transition:transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease; }
.impact-points div:hover { transform:translateX(-6px); border-color:rgba(187,167,255,.38); background:linear-gradient(120deg,rgba(112,71,235,.25),rgba(255,255,255,.055)); box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 22px 58px rgba(0,0,0,.2); }
.impact-points span { grid-row:1 / 3; align-self:center; color:var(--violet-light); font-size:11px; font-weight:900; letter-spacing:.06em; }
.impact-points strong { grid-column:2; align-self:end; font-size:22px; }
.impact-points small { grid-column:2; align-self:start; color:#918a98; line-height:1.35; }
.impact-orbit { position:absolute; right:10%; top:50%; width:330px; height:330px; margin-top:-165px; border:1px solid rgba(169,138,255,.14); border-radius:50%; animation:orbit 18s linear infinite; }
.impact-orbit::before,.impact-orbit::after { content:''; position:absolute; inset:45px; border:1px solid rgba(169,138,255,.12); border-radius:50%; }
.impact-orbit::after { inset:95px; background:rgba(112,71,235,.08); box-shadow:0 0 80px rgba(112,71,235,.2); }
.impact-orbit span { position:absolute; top:-18px; left:50%; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; color:#fff; background:var(--violet); font-weight:900; }

.contact { padding:44px var(--page-pad); display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,6vw,108px); align-items:center; background:radial-gradient(circle at 10% 90%,rgba(112,71,235,.3),transparent 34%),#08070b; }
.contact h2 { color:#fff; }
.contact-copy>p:nth-of-type(2) { max-width:540px; margin:23px 0; color:#aaa3b2; font-size:17px; line-height:1.6; }
.contact-note { display:inline-flex; gap:11px; color:#dcd6e4; font-size:13px; font-weight:800; }
.contact-note span:not(.ui-strong) { color:var(--violet-light); }
.contact form { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:30px; border:1px solid #37313f; border-radius:22px; background:rgba(20,17,26,.84); }
.contact label { color:#a9a2b0; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.contact input:not([type=checkbox]),.contact textarea { width:100%; margin-top:7px; padding:12px 0; border:0; border-bottom:1px solid #4b4452; outline:0; resize:vertical; background:transparent; color:#fff; }
.contact input:focus,.contact textarea:focus { border-color:#9b78ff; }
.contact .full { grid-column:1/-1; }
.privacy { display:flex; align-items:center; gap:9px; font-size:9px!important; font-weight:500!important; letter-spacing:0!important; text-transform:none!important; }
.privacy input { accent-color:var(--violet); }
.contact form .button { width:100%; }

footer { padding:42px var(--page-pad) 28px; display:grid; grid-template-columns:1fr .75fr 1.7fr; gap:34px; align-items:center; border-top:1px solid #29252e; background:#08070b; color:#8f8896; }
footer .brand img { width:145px; }
footer p { font-size:12px; }
.footer-primary { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px 22px; color:#c7c1cb; font-size:12px; }
.footer-primary a { transition:color .2s ease; }
.footer-primary a:hover { color:var(--violet-light); }
.footer-legal { grid-column:1/-1; width:100%; display:grid; justify-items:center; gap:12px; padding:18px 0 0; border-top:1px solid #29252e; }
.footer-legal>span { color:#716b78; font-size:9px; font-weight:900; letter-spacing:.14em; text-align:center; text-transform:uppercase; }
.footer-legal nav { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; }
.footer-legal a,.footer-legal button { padding:7px 11px; border:1px solid rgba(255,255,255,.08); border-radius:999px; color:#aaa3b0; background:rgba(255,255,255,.025); font-size:10px; text-decoration:none; cursor:pointer; transition:color .2s ease,border-color .2s ease,background .2s ease,transform .2s ease; }
.footer-legal a:hover,.footer-legal button:hover { border-color:rgba(170,139,255,.45); color:#ddd2ff; background:rgba(112,71,235,.09); transform:translateY(-1px); }
.footer-legal .legal-cookie-link { padding:7px 12px; border:1px solid #55456c; border-radius:999px; color:#d3c3ff; background:rgba(112,71,235,.12); text-decoration:none; }
footer small { grid-column:1/-1; font-size:10px; }

@keyframes ticker { to { transform:translateX(-50%); } }
@keyframes breathe { to { opacity:.72; filter:blur(31px); } }
@keyframes volcanoDrift { from{background-position:50% 47%} to{background-position:51.5% 53%} }
@keyframes orbitPulse { from{opacity:.3;transform:rotate(-13deg) scale(.97)} to{opacity:1;transform:rotate(-9deg) scale(1.035)} }
@keyframes emberRise { 0%{opacity:0;transform:translate3d(0,0,0) scale(.7)} 12%{opacity:.8} 76%{opacity:.4} 100%{opacity:0;transform:translate3d(42px,-92vh,0) scale(1.4)} }
@keyframes lightSweep { 0%,58%{opacity:0;transform:translateX(-650%) rotate(17deg)} 68%{opacity:1} 88%,100%{opacity:0;transform:translateX(550%) rotate(17deg)} }
@keyframes cardFloat { to{transform:translateY(-8px);box-shadow:0 34px 95px rgba(50,20,115,.5)} }
@keyframes bars { to { transform:scaleY(.72); filter:brightness(1.25); } }
@keyframes orbit { to { transform:rotate(360deg); } }
@keyframes ctaShine { 0%,58% { transform:translateX(0) rotate(18deg); opacity:0; } 68% { opacity:1; } 86%,100% { transform:translateX(620%) rotate(18deg); opacity:0; } }
@keyframes dialogIn { from { opacity:0; transform:translateY(20px) scale(.975); } }

.motion-ready [data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.75,.2,1),transform .7s cubic-bezier(.2,.75,.2,1); transition-delay:var(--reveal-delay,0ms); }
.motion-ready [data-reveal="left"] { transform:translateX(-28px); }
.motion-ready [data-reveal="scale"] { transform:scale(.965); }
.motion-ready [data-reveal].is-visible { opacity:1; transform:none; }
.services,.work,.contact { position:relative; }
.services::before,.work::before { content:''; position:absolute; inset:0 auto auto var(--page-pad); width:min(32%,420px); height:1px; background:linear-gradient(90deg,transparent,rgba(112,71,235,.24),transparent); }

@media(max-width:1020px){.service-grid{grid-template-columns:repeat(2,1fr)}.impact{grid-template-columns:1fr 1fr}.hero-content{width:min(610px,63vw)}.hero-title{font-size:clamp(54px,6.8vw,70px);line-height:.98}}
@media(max-width:760px){
  .site-header,.site-header.is-scrolled{height:70px;grid-template-columns:1fr auto;padding:0 22px}.brand img{width:126px}.desktop-nav,.header-cta{display:none}.header-tools{gap:8px}.language-switch{padding:2px}.language-switch button{width:31px;height:30px}.menu-toggle{position:relative;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;background:rgba(255,255,255,.065);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);cursor:pointer;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}.menu-toggle:hover,.site-header.menu-open .menu-toggle{border-color:rgba(170,139,255,.72);background:rgba(112,71,235,.18);box-shadow:0 0 24px rgba(112,71,235,.2),inset 0 1px 0 rgba(255,255,255,.1)}.menu-icon{position:relative;display:block;width:18px;height:14px}.menu-icon i{position:absolute;left:0;width:18px;height:1.5px;border-radius:999px;background:#d8cbff;transition:top .25s ease,transform .25s ease,opacity .2s ease}.menu-icon i:nth-child(1){top:0}.menu-icon i:nth-child(2){top:6px}.menu-icon i:nth-child(3){top:12px}.menu-toggle em{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.site-header.menu-open .menu-icon i:nth-child(1){top:6px;transform:rotate(45deg)}.site-header.menu-open .menu-icon i:nth-child(2){opacity:0;transform:scaleX(.25)}.site-header.menu-open .menu-icon i:nth-child(3){top:6px;transform:rotate(-45deg)}.scroll-ember{top:70px;right:0;left:0;width:100%;height:2px;transform:none;border-radius:0}.scroll-ember i{transform:scaleX(var(--page-progress,0));transform-origin:left}
  .mobile-menu{position:absolute;display:grid;top:78px;left:16px;right:16px;padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(13,11,18,.96);box-shadow:0 26px 80px rgba(0,0,0,.56);backdrop-filter:blur(22px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px) scale(.98);transform-origin:top;transition:.25s ease}.site-header.menu-open .mobile-menu{opacity:1;visibility:visible;pointer-events:auto;transform:none}.mobile-menu a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:16px 14px;border-bottom:1px solid rgba(255,255,255,.09);border-radius:14px;color:#fff}.mobile-menu a:last-child{border-bottom:0}.mobile-menu a:hover{background:rgba(112,71,235,.18)}.mobile-menu small{color:#8f79d0;font-size:9px}.mobile-menu span:not(.ui-strong){font-size:17px;font-weight:800}.mobile-menu .ui-strong{color:#aa8bff}
  .hero{min-height:auto;padding:108px 22px 36px;align-items:flex-start}.hero::before{background:linear-gradient(180deg,rgba(7,7,10,.42) 0%,rgba(7,7,10,.78) 52%,#07070a 84%)}.hero-media{inset:0;opacity:.76;background-position:60% center;animation-duration:16s}.hero-glow{width:360px;height:360px;top:20%;right:-35%}.hero-orbits{inset:70px -75% -4% 12%;opacity:.42}.hero-embers{inset:70px 0 0 20%;opacity:.58}.hero-embers i:nth-child(n+8){display:none}.hero-light-sweep{width:22%;animation-duration:12s}.hero-content{width:100%}.eyebrow{margin-bottom:18px;font-size:9px}.hero-title{font-size:clamp(44px,12.5vw,60px);line-height:1;letter-spacing:-.052em}.hero-title .headline-outline{margin-top:.1em}.hero-copy{max-width:440px;margin-top:22px;font-size:16px;line-height:1.48}.hero-actions{margin-top:26px}.button{min-height:49px;padding:0 18px;font-size:14px}.proof-strip{margin-top:26px;font-size:10px}.hero-card{display:none}
  .ticker-track{animation-duration:21s}.ticker-segment{padding:13px 0;font-size:10px}.services,.work,.impact,.contact{padding-left:22px;padding-right:22px}.services,.work{padding-top:24px;padding-bottom:24px}.section-intro{margin-bottom:18px}.section-intro h2,.impact h2,.contact h2{margin-top:13px;font-size:clamp(39px,11.5vw,52px)}.section-intro>p:last-child{margin-top:12px;font-size:15px}
  .service-grid,.work-grid{width:calc(100% + 22px);display:flex;gap:12px;overflow-x:auto;padding:2px 22px 18px 0;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}.service-grid::-webkit-scrollbar,.work-grid::-webkit-scrollbar{display:none}.service-card{flex:0 0 82vw;min-height:286px;scroll-snap-align:start}.service-card h3{margin-top:40px}.swipe-hint{display:flex;align-items:center;gap:9px;margin:7px 0 0;color:#8a838f;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.swipe-hint .ui-strong{color:var(--violet);font-size:17px}
  .work-intro{display:block}.work-intro>p{margin-top:16px;max-width:330px;font-size:15px}.work-grid figure{flex:0 0 88vw;scroll-snap-align:start}.work-grid figcaption{padding:13px 2px;font-size:11px}.project-open{opacity:1;padding:14px;background:linear-gradient(180deg,transparent 55%,rgba(5,4,8,.72))}.project-open span:not(.ui-strong){padding:8px 11px;transform:none}.project-open .ui-strong{width:38px;height:38px;transform:none}.carousel-dots{display:flex;align-items:center;justify-content:center;gap:2px;margin:0 auto 3px}.carousel-dots button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;background:transparent;cursor:pointer}.carousel-dots button::before{content:'';width:7px;height:7px;border-radius:999px;background:#c5beca;transition:width .3s ease,background .3s ease,box-shadow .3s ease,transform .3s ease}.carousel-dots button:hover::before{background:#9a81df;transform:scale(1.15)}.carousel-dots button.is-active::before{width:23px;background:linear-gradient(90deg,#7047eb,#a88aff);box-shadow:0 4px 13px rgba(112,71,235,.28);transform:none}.carousel-dots button:focus-visible{outline:2px solid #7047eb;outline-offset:-4px;border-radius:999px}
  .reviews-preview{padding:8px 12px 24px}.reviews-shell{padding:34px 0 24px;border-radius:24px}.reviews-head{margin-bottom:24px;padding:0 20px}.reviews-head h2{font-size:clamp(36px,10.5vw,48px)}.reviews-intro{margin-top:16px;font-size:14px}.reviews-score{margin-top:20px}.reviews-grid{gap:12px;padding:2px 18px 18px;scroll-padding-inline:18px;mask-image:none}.review-card{flex:0 0 min(82vw,340px);min-height:292px;padding:24px 22px 21px;scroll-snap-align:start}.review-card>p{margin:20px 0 24px;font-size:15px}.review-card:hover{transform:none}.reviews-dots{display:flex}.reviews-disclosure{line-height:1.45}.impact{min-height:0;padding-top:26px;padding-bottom:26px;grid-template-columns:1fr;gap:24px}.impact-copy>p:nth-of-type(2){margin-top:16px;font-size:16px}.impact-points{gap:9px}.impact-points div{grid-template-columns:34px 1fr;min-height:78px;padding:13px 18px;border-radius:16px;column-gap:12px;row-gap:2px}.impact-points div:hover{transform:none}.impact-points strong{font-size:20px}.impact-points small{grid-column:2;margin:0}.impact-orbit{right:-145px;top:29%;opacity:.65}
  .contact{padding-top:26px;padding-bottom:32px;grid-template-columns:1fr;gap:24px}.contact-copy>p:nth-of-type(2){font-size:15px}.contact form{grid-template-columns:1fr;padding:23px}.project-dialog[open]{display:block}.project-dialog{width:calc(100% - 24px);max-height:calc(100svh - 24px);border-radius:22px}.dialog-media{height:230px;min-height:0}.dialog-copy{padding:28px 22px 26px}.dialog-copy h3{margin:9px 0 20px;font-size:42px}.dialog-details div{grid-template-columns:27px 86px 1fr;padding:14px 0}.dialog-close{top:12px;right:12px}footer{grid-template-columns:1fr;gap:16px;padding:36px 22px 26px;text-align:center}footer>.brand{justify-self:center}footer .brand img{width:145px}footer p{display:none}.footer-primary{justify-self:center;justify-content:center;max-width:500px;gap:10px 20px}.footer-primary a{padding:3px 0}.footer-legal{width:100%;max-width:520px;justify-self:center;gap:12px;padding:18px 0 0}.footer-legal nav{max-width:100%;justify-content:center;gap:8px}.footer-legal a,.footer-legal button{white-space:nowrap}footer small{justify-self:center;width:100%;padding-top:2px;text-align:center;color:#77717e}
}
@media(max-width:440px){.site-header{padding:0 22px}.brand img{width:115px}.language-switch button{width:29px}.hero{min-height:auto;padding-bottom:28px}.hero-title{font-size:clamp(40px,12vw,52px)}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}.proof-strip{display:none}.service-card{flex-basis:85vw}.work-grid figure{flex-basis:87vw}.dialog-media{height:190px}.dialog-details div{grid-template-columns:25px 1fr}.dialog-details p{grid-column:2}.footer-primary{max-width:340px;gap:8px 17px}.footer-primary a[href^="mailto:"]{flex-basis:100%}.footer-legal nav{gap:7px}.footer-legal a,.footer-legal button{padding:7px 10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.ui-strong,.hero-metric{font-weight:700}

/* SEO heading hierarchy; shorter line lengths keep the full headline readable. */
.hero-content{width:min(780px,calc(100% - 292px))}
.hero-services{font-size:13px;line-height:1.6;letter-spacing:.065em;text-transform:none}.hero-services>span:first-child{flex-shrink:0}.hero-services .ui-strong{min-width:0;overflow-wrap:normal}
.hero-title{font-size:clamp(44px,5.45vw,82px);line-height:1.01;letter-spacing:-.05em;text-wrap:balance;overflow-wrap:break-word;font-weight:700}.hero-title .headline-outline{-webkit-text-stroke:1px #ae91ff}
@media(max-width:1020px) and (min-width:761px){.hero-content{width:calc(100% - 270px)}.hero-title{font-size:clamp(34px,4.2vw,44px)}}
@media(max-width:760px){.hero-content{width:100%}.hero-services{font-size:12px;line-height:1.45;letter-spacing:.025em}.hero-title{font-size:clamp(40px,11.6vw,60px);line-height:1.03}.hero-services>span:first-child{width:16px}
  .hero-title .headline-outline { color:#b497ff; -webkit-text-stroke:0; text-shadow:0 0 32px rgba(112,71,235,.24); margin-top:.18em; }
  .hero-actions .button-primary { min-height:54px; box-shadow:0 9px 30px rgba(112,71,235,.3); }
}

/* A compact strip of social proof, secondary to the hero. */
.reviews-shell { padding:28px 0 16px; border-radius:24px; }
.reviews-head { grid-template-columns:1fr auto; justify-items:start; align-items:center; column-gap:24px; max-width:1100px; margin:0 auto 18px; padding:0 28px; text-align:left; }
.reviews-head .section-label { grid-column:1; margin:0; font-size:12px; }
.reviews-head h2 { grid-column:1; margin:8px 0 0; font-size:clamp(26px,2.7vw,36px); line-height:1.08; letter-spacing:-.04em; }
.reviews-head .reviews-score { grid-column:2; grid-row:1 / 3; margin:0; padding:10px 14px; }
.reviews-score>span { font-size:24px; }
.reviews-score small { font-size:12px; }
.reviews-marquee { padding:5px 0 10px; }
.reviews-marquee .review-card { flex-basis:284px; width:284px; padding:15px 16px; border-radius:16px; }
.reviews-marquee .review-card>p { margin:10px 0 14px; font-size:16px; line-height:1.4; }
.reviews-marquee .review-footer { padding-top:10px; grid-template-columns:28px 1fr auto; }
.reviews-marquee .review-avatar { width:28px; height:28px; font-size:10px; }
.reviews-marquee .review-footer small { margin-top:2px; }
.reviews-marquee .google-mark { width:30px; height:30px; }
@media(max-width:760px) {
  .reviews-preview { padding:8px 12px 20px; }
  .reviews-shell { padding:22px 0 12px; border-radius:20px; }
  .reviews-head { grid-template-columns:1fr; justify-items:center; gap:0; margin-bottom:14px; padding:0 18px; text-align:center; }
  .reviews-head h2 { font-size:26px; line-height:1.1; margin-top:7px; }
  .reviews-head .reviews-score { grid-column:1; grid-row:auto; grid-template-columns:auto auto auto; gap:8px; margin-top:12px; padding:7px 12px; }
  .reviews-score>span { grid-row:auto; font-size:20px; }
  .reviews-score>div { font-size:12px; }
  .reviews-marquee .review-card { flex-basis:270px; width:270px; padding:14px 15px; }
}
