@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#181124;--panel:#21182f;--ink:#fff;--muted:#b8aec5;--pink:#e599d7;--border:rgba(230,194,241,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.65}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--pink);outline-offset:5px}.wrap{width:min(1320px,calc(100% - 96px));margin:auto}.skip{position:fixed;top:-80px;z-index:100;background:white;color:#181124;padding:15px}.skip:focus{top:0}header{position:sticky;top:0;z-index:30;background:#181124d9;backdrop-filter:blur(22px);border-bottom:1px solid var(--border)}.nav{height:94px;display:flex;align-items:center;gap:40px}.brand{display:flex;align-items:center;gap:10px;letter-spacing:.16em;font-size:23px;font-weight:800}.brand-mark{font-size:29px;transform:skewY(-10deg);color:#e5a0dd;line-height:1}.brand-dot{font-size:10px;align-self:flex-start;letter-spacing:0;margin-top:6px}.nav nav{display:flex;gap:25px;margin-left:auto}.nav nav a{font-size:13px;color:#d4cddc;transition:color .2s}.nav nav a:hover{color:var(--pink)}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d76bc9;background:linear-gradient(120deg,#951ca6,#b52b9a);border-radius:7px;padding:17px 25px;font-weight:700;font-size:14px;color:white;box-shadow:0 6px 24px #951ca62b;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 8px 35px #d936b345}.button.small{padding:12px 20px;white-space:nowrap}.menu-toggle{display:none}.hero{min-height:690px;display:grid;grid-template-columns:1.03fr 1fr;align-items:center;gap:15px;padding-top:85px;padding-bottom:80px;position:relative}.hero:before{content:"";position:absolute;z-index:-1;inset:-90px -48px -20px 30%;background:radial-gradient(ellipse at 75% 45%,#951ca639,transparent 60%)}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:700;color:#d3b9dd;display:flex;align-items:center;gap:10px}.eyebrow>span{height:6px;width:6px;border-radius:50%;background:#d936b3}h1{font-size:clamp(48px,5.3vw,77px);line-height:1.09;letter-spacing:-.058em;margin:29px 0 25px;font-weight:500}em{font-style:normal;background:linear-gradient(100deg,#b05fe0,#ed8ed3);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-lead{font-size:21px;line-height:1.5;letter-spacing:-.02em}.muted{color:var(--muted)}.intro{max-width:465px;font-size:15px}.actions{display:flex;gap:26px;align-items:center;margin-top:32px}.text-link{font-size:14px;font-weight:600;border-bottom:1px solid #6d5377;padding-bottom:4px}.text-link:hover{color:var(--pink)}.hero-note{font-size:12px;color:#958ba3;display:flex;align-items:center;gap:12px;margin-top:43px}.mini-line{width:22px;height:1px;background:#bd69b4}.hero-visual{position:relative;padding-top:45px;perspective:1000px}.visual-label{font-size:10px;letter-spacing:.25em;color:#aa7fae;margin-left:35px;margin-bottom:22px}.dashboard{background:linear-gradient(130deg,#382141e6,#211c33ed);border:1px solid #be7ab849;border-radius:12px;box-shadow:0 30px 80px #0c071757,0 0 100px #951ca618;transform:rotateY(-9deg) rotateX(5deg) rotateZ(-3deg);overflow:hidden}.dash-top{height:51px;display:flex;align-items:center;padding:0 19px;gap:17px;border-bottom:1px solid var(--border)}.dash-logo{font-weight:800;font-size:12px}.demo-pill{margin-left:auto;font-size:10px;color:#c2adc9}.avatar{font-size:10px;background:#82547d;padding:5px;border-radius:50%}.dash-body{display:flex}.dash-body aside{width:115px;flex-shrink:0;display:flex;flex-direction:column;gap:17px;padding:24px 14px;border-right:1px solid var(--border);font-size:10px;color:#ae9ab9}.dash-body aside b{color:#e6d9ed}.selected{background:#ab5d9b24;color:#edb9e1;margin:0 -7px;padding:7px;border-radius:4px}.side-bottom{margin-top:55px;font-size:10px}.side-bottom small{font-size:8px}.dash-main{padding:27px 22px;width:100%;min-width:0}.dash-title{display:flex;align-items:center;justify-content:space-between}.dash-title small{font-size:7px;letter-spacing:.06em;color:#b6a2c2}.dash-title h3{font-size:19px;margin:5px 0 20px;letter-spacing:-.04em}.dash-title>span{font-size:8px;color:#b7a4bf}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stats>div{border:1px solid var(--border);padding:11px;background:#ffffff03;border-radius:6px}.stats small{display:block;font-size:8px;color:#bda9c7}.stats b{font-size:24px;display:block;margin-top:4px}.stats b small{display:inline;font-size:13px}.stats i{font-size:8px;font-style:normal;color:#b8d8c9}.chart{border:1px solid var(--border);border-radius:6px;margin-top:16px;padding:15px;background:#18112433}.chart-title{font-size:10px;display:flex;justify-content:space-between}.chart-title span{color:#af9bba;font-size:8px}.bars{height:115px;display:flex;gap:12px;align-items:flex-end;margin-top:22px;background:repeating-linear-gradient(to top,transparent 0,transparent 28px,#ffffff07 29px,#ffffff07 30px)}.bars i{flex:1;height:var(--h);background:linear-gradient(#ca80c5,#75247788);border-radius:3px 3px 0 0}.chart-months{display:flex;justify-content:space-between;font-size:7px;color:#b7a3c0;margin-top:10px}.dash-row{display:flex;justify-content:space-between;font-size:8px;color:#b9a6c4;margin-top:17px}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#9ec4af;margin-right:4px}.float-card{position:relative;width:315px;margin:-22px 0 0 auto;padding:17px 20px;display:flex;gap:14px;align-items:center;background:#45304edb;border:1px solid #c287be55;backdrop-filter:blur(20px);border-radius:9px;box-shadow:0 14px 50px #0b06194d}.float-card b{display:block;font-size:11px}.float-card small{font-size:10px;color:#c3accb}.integration-icon{font-size:25px;color:#e6b4df}.connected{margin-left:auto;color:#dfb9dc}.visual-caption{font-size:8px;letter-spacing:.08em;color:#917399;display:flex;justify-content:space-between;margin-top:35px}.trust{display:flex;gap:40px;justify-content:space-between;align-items:center;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:33px 0}.trust p{font-size:14px;margin:0 0 8px}.trust small{font-size:8px;letter-spacing:.13em;color:#9887a6}.capabilities{max-width:620px;display:flex;flex-wrap:wrap;gap:12px}.capabilities span,.tag{border:1px solid var(--border);padding:7px 13px;border-radius:5px;font-size:12px;color:#cbbcd6}section.block{padding:105px 0}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:42px}.kicker{font-size:11px;letter-spacing:.17em;color:#cf90c6;text-transform:uppercase;margin:0 0 20px}.section-top h2,h2{font-size:clamp(32px,3.2vw,47px);line-height:1.2;letter-spacing:-.04em;font-weight:500;margin:0}.section-top>p{max-width:340px;font-size:14px;color:var(--muted)}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service{border:1px solid var(--border);border-radius:10px;padding:30px;background:linear-gradient(140deg,#ffffff04,#ffffff01);transition:background .25s,border-color .25s,transform .25s}.service:hover{background:linear-gradient(140deg,#951ca61c,#d936b308);border-color:#b756a369;transform:translateY(-4px)}.service-icon{font-size:25px;line-height:1;color:#db9ed3;display:block;margin-bottom:30px}.service h3{font-size:19px;margin:0 0 12px;letter-spacing:-.03em}.service p{color:var(--muted);font-size:14px;min-height:72px}.service button{border:0;background:none;padding:5px 0;color:#e0b1d9;font-size:12px;border-bottom:1px solid #8e5b8b}.editorial{background:linear-gradient(120deg,#4b105224,#951ca610);border-block:1px solid var(--border)}.editorial-content{display:grid;grid-template-columns:1.2fr 1fr;gap:80px}.editorial h2{font-size:clamp(36px,4.2vw,60px)}.editorial p{color:var(--muted);max-width:500px}.strategy{display:grid;grid-template-columns:repeat(4,1fr);margin-top:65px;gap:30px}.strategy article{border-top:1px solid #a45c9c66;padding-top:23px}.strategy small{color:#cf90c6;font-size:12px}.strategy h3{font-size:18px;font-weight:600}.strategy p{font-size:13px}.enterprise{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.enterprise p{color:var(--muted);font-size:15px;max-width:490px}.tech-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:27px}.system-map{border:1px solid var(--border);border-radius:15px;padding:40px;background:radial-gradient(ellipse,#951ca61b,transparent 70%)}.map-top,.map-bottom{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.map-node{text-align:center;border:1px solid #aa68a552;background:#32243d;padding:16px 8px;font-size:12px;border-radius:7px}.map-center{text-align:center;padding:26px;margin:28px 0;border:1px solid #c381b7;background:linear-gradient(110deg,#4b1052,#6c2169);border-radius:8px;position:relative}.map-center:before,.map-center:after{content:"";position:absolute;height:28px;width:1px;background:#a365a3;left:50%}.map-center:before{top:-29px}.map-center:after{bottom:-29px}.map-center b{display:block;letter-spacing:.15em}.map-center small{font-size:11px;color:#d8b8de}.map-caption{text-align:center;color:#a797b3;font-size:11px;margin-top:25px}.case{display:grid;grid-template-columns:1.3fr 1fr;gap:65px;align-items:center;margin-top:65px}.case:nth-of-type(even){grid-template-columns:1fr 1.3fr}.case:nth-of-type(even) .case-art{order:2}.case-art{padding:35px;border:1px solid var(--border);border-radius:12px;min-height:310px;display:flex;align-items:center;background:linear-gradient(135deg,#45204f,#271b36)}.case-art.blue{background:linear-gradient(135deg,#23364c,#29213d)}.case-art.pink{background:linear-gradient(135deg,#4b2542,#2d1c35)}.mini-browser{background:#211b2e;width:100%;border:1px solid #b383b53b;box-shadow:0 20px 50px #10071a55;border-radius:7px;overflow:hidden}.mini-bar{padding:9px 13px;border-bottom:1px solid var(--border);font-size:9px;color:#a38bac}.mini-page{padding:24px}.mini-page h4{font-size:21px;line-height:1.3;margin:7px 0 18px;letter-spacing:-.03em}.mini-page small{font-size:9px;letter-spacing:.08em;color:#d6a3d0}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mini-grid>div{border:1px solid var(--border);padding:17px 10px;border-radius:5px;font-size:10px;color:#c6b3d0;background:#ffffff04}.mini-grid b{display:block;font-size:20px;color:#e2c7e6;margin-top:9px}.mini-table{font-size:10px;width:100%;border-collapse:collapse}.mini-table td{border-bottom:1px solid var(--border);padding:10px 5px}.case h3{font-size:31px;letter-spacing:-.035em;line-height:1.2;margin:16px 0}.case p{color:var(--muted);font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0}.case-button{border:0;border-bottom:1px solid #8e5b8b;padding:5px 0;background:none;color:#e4bedf;font-size:14px}.demo-label{font-size:10px;color:#ab92b4;letter-spacing:.08em}.process-panel{display:grid;grid-template-columns:1fr 1.5fr;gap:70px;margin-top:44px}.steps{display:flex;flex-direction:column}.step{display:flex;gap:20px;align-items:center;background:none;text-align:left;border:0;border-bottom:1px solid var(--border);color:#b8a6c4;padding:17px 5px;font-size:16px}.step span{font-size:12px;color:#9878a5}.step.active{color:white}.step.active span{color:#e699d5}.step.active:after{content:"●";font-size:7px;color:#df7acc;margin-left:auto}.step-detail{border:1px solid var(--border);border-radius:12px;background:radial-gradient(ellipse at top right,#951ca61f,transparent 70%);padding:50px}.step-number{font-size:80px;line-height:1.1;color:#af5fa569;font-weight:500}.step-detail h3{font-size:28px;margin:25px 0 15px;letter-spacing:-.025em}.step-detail p{color:var(--muted)}.step-deliverable{font-size:13px;margin-top:30px;padding-top:20px;border-top:1px solid var(--border);color:#e4bddf}.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;margin-top:45px}.pillars article{border-top:1px solid var(--border);padding-top:24px}.pillars h3{font-size:19px}.pillars p{font-size:14px;color:var(--muted)}.contact{padding:80px 0 100px;background:radial-gradient(ellipse at 50% 30%,#951ca64d,transparent 70%)}.contact-panel{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;border:1px solid #c47bad3d;border-radius:14px;padding:65px;background:#2c1c35a8;backdrop-filter:blur(20px)}.contact h2{font-size:clamp(34px,4vw,55px)}.contact p{color:#c8b4d0}.contact a{display:block;margin-top:35px;font-size:16px;color:#ebaddf}.contact small{font-size:11px;color:#a991b3}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{font-size:12px;color:#dfc9e5;display:block;margin-bottom:17px}input,textarea,select{display:block;width:100%;margin-top:6px;border:1px solid #ad7aa23d;border-radius:5px;background:#18112466;color:white;padding:12px;font-size:14px}textarea{resize:vertical;min-height:100px}.check-label{display:flex;gap:10px;font-size:11px;color:#bba8c7;align-items:flex-start}.check-label input{width:16px;height:16px;margin:3px 0;accent-color:#d936b3}.form-note{font-size:11px!important}.form-status{font-size:13px!important;color:#f4bee8!important}footer{padding:60px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:50px}.footer-grid p{font-size:13px;color:#a58eaf}.footer-grid h3{font-size:12px;margin:0 0 18px}.footer-grid a:not(.brand),.footer-grid button{display:block;font-size:12px;color:#b4a3c0;margin:8px 0}.footer-grid button{border:0;padding:0;background:none}.footer-bottom{display:flex;justify-content:space-between;margin-top:50px;padding-top:23px;border-top:1px solid var(--border);font-size:10px;color:#9783a3}dialog{width:min(650px,calc(100% - 36px));border:1px solid #976497;background:#24182f;color:white;border-radius:14px;padding:42px;max-height:85vh;box-shadow:0 40px 100px #0009}dialog::backdrop{background:#090510bb;backdrop-filter:blur(8px)}dialog h2{font-size:32px;margin:15px 0 23px}dialog h3{font-size:15px;color:#e0a0d3;margin-top:24px}dialog p{font-size:14px;color:#c1afcc}.close-dialog{position:absolute;top:15px;right:17px;border:0;background:none;color:white;font-size:24px}.reveal{opacity:1}.js-motion .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}.js-motion .reveal.visible{opacity:1;transform:none}
@media(min-width:1550px){.hero{min-height:760px}}@media(max-width:1150px){.wrap{width:calc(100% - 56px)}.nav{gap:22px}.nav nav{gap:14px}.nav nav a{font-size:11px}.brand{font-size:19px}.hero{gap:20px}.hero h1{font-size:58px}.eyebrow{font-size:8px}.dashboard{transform:rotateZ(-3deg)}.dash-body aside{width:85px}.dash-main{padding:20px 13px}.bars{gap:8px}.contact-panel{gap:35px;padding:40px}}@media(max-width:850px){.nav{height:77px}.menu-toggle{display:block;margin-left:auto;background:transparent;color:white;border:1px solid var(--border);padding:8px 12px;border-radius:5px;font-size:12px}.nav nav{display:none;position:absolute;top:76px;left:0;right:0;background:#21182ff5;padding:25px;flex-direction:column;gap:20px;border-bottom:1px solid var(--border)}.nav nav.open{display:flex}.nav nav a{font-size:15px}.hero{grid-template-columns:1fr;padding-top:65px;padding-bottom:55px;gap:45px}.hero h1{font-size:70px}.eyebrow{font-size:10px}.hero-copy{max-width:620px}.hero-visual{width:min(620px,100%);margin:auto;padding-top:0}.dashboard{transform:rotateZ(-2deg)}.dash-body aside{width:120px}.dash-main{padding:25px}.trust{flex-direction:column;align-items:flex-start;gap:25px}.services{grid-template-columns:repeat(2,1fr)}.section-top{gap:25px}.editorial-content,.enterprise{grid-template-columns:1fr;gap:35px}.strategy{gap:20px}.case,.case:nth-of-type(even){grid-template-columns:1fr;gap:25px}.case:nth-of-type(even) .case-art{order:0}.case-art{min-height:320px}.process-panel{gap:30px;grid-template-columns:1fr 1.4fr}.step-detail{padding:30px}.pillars{grid-template-columns:repeat(2,1fr)}.contact-panel{grid-template-columns:1fr}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}section.block{padding:75px 0}}
@media(max-width:520px){.wrap{width:calc(100% - 36px)}.nav{gap:12px}.brand{font-size:17px;gap:6px}.brand-mark{font-size:23px}.nav .button{padding:9px 11px;font-size:11px}.hero h1{font-size:49px;letter-spacing:-.05em}.eyebrow{font-size:8px;letter-spacing:.06em}.hero-lead{font-size:19px}.intro{font-size:14px}.actions{gap:20px}.actions .button{padding:14px 16px;font-size:12px}.text-link{font-size:12px}.hero-note{font-size:10px}.hero-visual{padding-top:0}.visual-label{margin-left:0;font-size:8px}.dash-body aside{display:none}.dash-main{padding:18px}.dash-title h3{font-size:17px}.float-card{width:265px;padding:12px;margin-top:-15px}.visual-caption{font-size:7px}.trust p{font-size:14px}.capabilities{gap:8px}.capabilities span{font-size:11px;padding:6px 10px}.section-top{display:block}.section-top>p{margin-top:22px}.services{grid-template-columns:1fr}.service{padding:25px}.service p{min-height:0}.service-icon{margin-bottom:20px}.strategy{grid-template-columns:repeat(2,1fr);margin-top:35px}.system-map{padding:22px 14px}.map-node{font-size:10px;padding:13px 5px}.case-art{padding:20px;min-height:270px}.process-panel{grid-template-columns:1fr;gap:25px}.steps{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.step{font-size:12px;gap:10px}.step-detail{padding:30px}.step-number{font-size:55px}.pillars{gap:25px}.contact{padding:40px 0}.contact-panel{padding:28px 22px}.field-row{grid-template-columns:1fr;gap:0}.footer-grid{grid-template-columns:repeat(3,1fr);gap:17px}.footer-bottom{gap:20px}.contact h2{font-size:37px}dialog{padding:32px 24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js-motion .reveal{opacity:1;transform:none}}

.client-concepts{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:32px 0 0;color:#95869f}.client-concepts small{font-size:8px;letter-spacing:.13em}.client-concepts span{font-size:22px;font-weight:700;letter-spacing:.08em}.client-concepts span:last-child{letter-spacing:-.05em;font-size:28px}.button[hidden]{display:none}@media(max-width:650px){.client-concepts{flex-wrap:wrap;justify-content:flex-start;gap:18px 28px}.client-concepts small{width:100%}.client-concepts span{font-size:17px}}

@media(max-width:850px){.hero:before{inset:0}.dashboard{transform:none}}

/* Glass surfaces and native motion: no animation runtime required. */
body { isolation: isolate; }
body::before { content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 80% 15%, #951ca638, transparent 45%), radial-gradient(ellipse at 15% 65%, #d936b326, transparent 45%), radial-gradient(ellipse at 70% 90%, #4b105255, transparent 50%); background-size: 140% 140%; animation: ambient-drift 22s ease-in-out infinite alternate; }
header { background: #18112499; backdrop-filter: blur(28px) saturate(150%); box-shadow: 0 1px 0 #f5b9e814, 0 8px 35px #10091a33; }
.hero::before { background: radial-gradient(ellipse at 65% 45%, #d936b343, transparent 65%); animation: halo-breathe 9s ease-in-out infinite alternate; }
em { background-image: linear-gradient(110deg, #a959dc, #ed8ed3, #f2bce8, #a959dc); background-size: 220% 100%; animation: gradient-flow 9s ease-in-out infinite alternate; }
.dashboard, .service, .system-map, .step-detail, .contact-panel, dialog { backdrop-filter: blur(24px) saturate(145%); border-color: #e7aee535; box-shadow: inset 0 1px 0 #fff1, 0 20px 65px #09051140; }
.dashboard { background: linear-gradient(135deg, #a879ad22, #251a367d 50%, #351b4370); border-color: #e6ace65c; box-shadow: inset 0 1px 0 #ffffff26, 0 30px 70px #09051166, 0 0 65px #951ca624; animation: dashboard-float 8s ease-in-out infinite; }
.dash-top { background: #ffffff05; }
.dash-body aside { background: #18112430; }
.stats > div, .chart { background: linear-gradient(130deg, #ffffff09, #18112435); border-color: #f2c2eb22; box-shadow: inset 0 1px 0 #ffffff08; }
.visual-heading { display: flex; gap: 15px; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.visual-heading .visual-label { margin-bottom: 0; }
.float-card { background: linear-gradient(135deg, #b991bd35, #40244977); border-color: #e6a9dd65; backdrop-filter: blur(30px) saturate(160%); box-shadow: inset 0 1px 0 #ffffff2b, 0 20px 45px #10081866; animation: badge-float 6s ease-in-out infinite; }
.bars { overflow: hidden; }
.bars i { transform-origin: center bottom; animation: chart-live 4.8s cubic-bezier(.45,0,.55,1) infinite; box-shadow: 0 0 16px #d936b333; background: linear-gradient(#efb0e3, #ae45b588 65%, #75247744); }
.bars i:nth-child(3n+1) { animation-delay: -1.8s; animation-duration: 5.8s; }
.bars i:nth-child(3n+2) { animation-delay: -3.4s; animation-duration: 4.3s; }
.bars i:nth-child(3n) { animation-delay: -.7s; animation-duration: 6.1s; }
.chart { position: relative; overflow: hidden; }
.chart::after { content: ''; position: absolute; inset: 42px 0 25px; pointer-events: none; background: linear-gradient(100deg, transparent 38%, #f5b6e712 50%, transparent 62%); translate: -100% 0; animation: chart-scan 7s ease-in-out infinite; }
.service { background: linear-gradient(135deg, #e5b4e411, #6e3a8012 55%, #18112455); position: relative; overflow: hidden; transition: translate .3s, border-color .3s, box-shadow .3s; }
.service::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at top right, #d936b326, transparent 65%); opacity: .3; transition: opacity .3s; }
.service:hover, .service:focus-within { translate: 0 -5px; border-color: #e6a9df80; background: linear-gradient(135deg, #d936b31c, #a169b014 55%, #18112466); box-shadow: inset 0 1px 0 #ffffff26, 0 20px 50px #951ca622; }
.service:hover::before, .service:focus-within::before { opacity: 1; }
.service-icon { transition: scale .3s, filter .3s; }
.service:hover .service-icon { scale: 1.12; filter: drop-shadow(0 0 12px #e599d777); }
.editorial { background: linear-gradient(120deg, #4b10521f, #c27ec00a, #951ca616); backdrop-filter: blur(12px); }
.system-map, .step-detail { background: linear-gradient(135deg, #b37dc017, #18112455); }
.map-node { background: #624f7333; backdrop-filter: blur(16px); transition: translate .3s, border-color .3s; }
.map-node:hover { translate: 0 -3px; border-color: #d994cc; }
.map-center { background: linear-gradient(110deg, #4b10526b, #a4459b55); background-size: 200% 100%; animation: gradient-flow 8s ease-in-out infinite alternate; box-shadow: inset 0 1px 0 #fff2, 0 0 35px #951ca622; }
.case-art { background: linear-gradient(135deg, #8e429533, #271b3655); backdrop-filter: blur(20px); box-shadow: inset 0 1px 0 #fff1; transition: border-color .3s; }
.case-art.blue { background: linear-gradient(135deg, #3b678d33, #29213d55); }
.case-art.pink { background: linear-gradient(135deg, #bc467533, #2d1c3555); }
.mini-browser { background: #211b2ea6; backdrop-filter: blur(20px); transition: translate .5s, box-shadow .5s; }
.case:hover .mini-browser { translate: 0 -7px; box-shadow: 0 25px 55px #10071a77; }
.step { transition: background .25s, padding .25s; border-radius: 6px; }
.step:hover, .step.active { background: linear-gradient(90deg, #d936b315, transparent); padding-left: 14px; }
.contact-panel { background: linear-gradient(135deg, #c183b424, #2c1c3566 55%, #951ca618); border-color: #e6a9df55; }
.contact { background-size: 140% 140%; animation: ambient-drift 18s ease-in-out infinite alternate; }
.button { position: relative; overflow: hidden; background-size: 180% 100%; animation: gradient-flow 7s ease-in-out infinite alternate; }
.button::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent, #fff2, transparent); translate: -110% 0; transition: translate .55s; pointer-events: none; }
.button:hover::after { translate: 110% 0; }
@keyframes chart-live { 0%, 100% { transform: scaleY(.72); } 35% { transform: scaleY(1); } 65% { transform: scaleY(.48); } }
@keyframes chart-scan { 0%, 20% { translate: -100% 0; } 80%, 100% { translate: 100% 0; } }
@keyframes dashboard-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
@keyframes badge-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 8px; } }
@keyframes ambient-drift { from { background-position: 0% 15%; } to { background-position: 100% 80%; } }
@keyframes halo-breathe { from { opacity: .55; } to { opacity: 1; } }
@keyframes gradient-flow { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
@media(max-width:850px) { .visual-heading .visual-label { margin-left: 0; } .dashboard { animation-name: badge-float; } }
@media(max-width:520px) { .visual-heading { gap: 8px; } .service, .case-art, .system-map, .step-detail { backdrop-filter: blur(12px); } }
@media(prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Each content block assembles only when it enters the viewport. */
.build-piece { opacity: 0; translate: 0 34px; filter: blur(7px); transition: opacity .85s cubic-bezier(.2,.7,.2,1), translate .85s cubic-bezier(.2,.7,.2,1), filter .85s ease, border-color .3s, box-shadow .3s; transition-delay: var(--build-delay, 0ms); }
.build-piece.assembled, .build-piece:focus-within { opacity: 1; translate: 0 0; filter: blur(0); }
.hero-copy > .build-piece { translate: 0 22px; }
.hero-copy > .assembled { translate: 0 0; }
.hero-visual.build-piece { translate: 24px 25px; }
.hero-visual.assembled { translate: 0 0; }
.service.build-piece { scale: .97; transition: opacity .85s, translate .85s, filter .85s, scale .85s, border-color .3s, box-shadow .3s; transition-delay: var(--build-delay, 0ms); }
.service.assembled { scale: 1; }
.service.assembled:hover, .service.assembled:focus-within { translate: 0 -5px; }
.strategy article, .pillars article { position: relative; }
.strategy article::before, .pillars article::before { content: ''; position: absolute; top: -1px; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, #d936b3, #edb5df, transparent); transform: scaleX(0); transform-origin: left; transition: transform 1.2s ease .25s; }
.strategy article.assembled::before, .pillars article.assembled::before { transform: scaleX(1); }
.system-map.assembled .map-node { animation: node-connect 7s ease-in-out infinite; }
.map-top .map-node:nth-child(2), .map-bottom .map-node:nth-child(1) { animation-delay: -2s; }
.map-top .map-node:nth-child(3), .map-bottom .map-node:nth-child(2) { animation-delay: -4s; }
.map-bottom .map-node:nth-child(3) { animation-delay: -6s; }
.map-center::before, .map-center::after { background: linear-gradient(180deg, #a365a333, #f3addf, #a365a333); background-size: 100% 250%; animation: connection-flow 3s linear infinite; width: 2px; }
.case-art.assembled .mini-browser { animation: preview-rise 1.1s cubic-bezier(.2,.7,.2,1) both; }
.case-art.assembled .mini-grid > div { animation: data-arrive 1.1s ease both; }
.mini-grid > div:nth-child(2) { animation-delay: .18s !important; }
.mini-grid > div:nth-child(3) { animation-delay: .36s !important; }
.capabilities span { transition: background .3s, border-color .3s, translate .3s; }
.capabilities span:hover { background: #d936b320; border-color: #e5a0dd88; translate: 0 -3px; }
.client-concepts > span { transition: opacity .8s, translate .8s, filter .8s, color .3s; transition-delay: var(--build-delay, 0ms); }
.client-concepts > span:hover { color: #e4b8df; }
.contact-panel.assembled, .contact-panel:has(.assembled) { box-shadow: inset 0 1px 0 #ffffff2b, 0 25px 80px #951ca62b; }
@keyframes node-connect { 0%, 100% { border-color: #aa68a552; box-shadow: inset 0 1px 0 #ffffff08; } 45% { border-color: #e9a5dca6; box-shadow: inset 0 1px 0 #ffffff20, 0 0 22px #d936b32b; } }
@keyframes connection-flow { from { background-position: 0 0; } to { background-position: 0 250%; } }
@keyframes preview-rise { from { opacity: .4; transform: perspective(800px) rotateX(7deg) translateY(20px); } to { opacity: 1; transform: perspective(800px) rotateX(0) translateY(0); } }
@keyframes data-arrive { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
@media(max-width:520px) { .build-piece { translate: 0 22px; filter: blur(3px); }.build-piece.assembled { translate: 0 0; filter: blur(0); }.hero-visual.build-piece { translate: 0 22px; }.hero-visual.assembled { translate: 0 0; } }
@media(prefers-reduced-motion: reduce) { .build-piece { opacity: 1; translate: none; filter: none; scale: 1; transition: none; }.strategy article::before, .pillars article::before { transform: none; } }

/* Native page steps; oversized content remains scrollable and accessible. */
html { scroll-snap-type: y mandatory; scroll-padding-top: 94px; }
.hero, section.block, .contact, footer { scroll-snap-align: start; scroll-snap-stop: always; }
.hero, section.block, .contact { min-height: calc(100svh - 94px); }
section.block { padding-top: 65px; padding-bottom: 65px; }
.editorial.block { display: flex; align-items: center; }
#progetti > .section-top { min-height: calc(100svh - 224px); align-items: center; margin-bottom: 0; }
#progetti .case { min-height: calc(100svh - 94px); margin-top: 0; padding: 65px 0; scroll-snap-align: start; scroll-snap-stop: always; }
.contact { display: flex; align-items: center; }
.service { padding: 24px; }
.service-icon { margin-bottom: 20px; }
@media(max-width:850px) { html { scroll-padding-top: 77px; }.hero, section.block, .contact { min-height: calc(100svh - 77px); }#progetti .case { min-height: calc(100svh - 77px); padding: 45px 0; } }
@media(max-width:520px) { section.block { padding-top: 48px; padding-bottom: 48px; }#progetti > .section-top { min-height: calc(100svh - 173px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }.hero { padding-top: 45px; }.contact { padding: 35px 0; } }
