@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--blue:#0063ed;--navy:#071d36;--ink:#10253d;--muted:#667587;--line:#dfe6ee;--pale:#f3f7fb;--font:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.65;background:#fff}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #5d9eff;outline-offset:6px}button:disabled{cursor:default}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Manrope',Arial,sans-serif;line-height:1.13;letter-spacing:-.055em}h2{font-size:clamp(2.5rem,4.1vw,4rem);font-weight:650}h3{letter-spacing:-.035em}p{color:var(--muted)}em{font-style:normal;color:var(--blue)}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.section{padding-block:112px}.header{height:96px;padding:0 4%;display:flex;align-items:center;gap:40px;background:#fffffff2;backdrop-filter:blur(18px);position:sticky;top:0;z-index:50;border-bottom:1px solid #e4eaf1;transition:height .3s}.header.scrolled{height:76px}.logo{font-family:Arial,sans-serif;font-size:33px;font-weight:800;line-height:1;letter-spacing:-2px;display:block}.logo>span{color:var(--blue)}.logo small{display:block;font-size:8px;letter-spacing:2px;margin-top:7px}.header nav{display:flex;gap:30px;margin-left:auto;font-size:14px;font-weight:550}.header nav a{position:relative}.header nav a:after{content:'';position:absolute;left:0;bottom:-5px;width:0;height:2px;background:var(--blue);transition:width .2s}.header nav a:hover:after{width:100%}.button{border:0;border-radius:7px;background:var(--blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:17px 26px;font-size:14px;font-weight:650;transition:transform .2s,background .2s,box-shadow .2s}.button:hover{background:#0053ca;transform:translateY(-3px);box-shadow:0 9px 25px #0063ed25}.button.small{padding:12px 25px}.menu-toggle{display:none}.hero{min-height:max(760px,calc(100svh - 96px));position:relative;background:#071c34;overflow:hidden;color:white}.hero-image{position:absolute;inset:-12% 0;background:url('assets/journey-hero.jpg') 65% center/cover;will-change:transform}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#04182feb 0%,#051d34b8 36%,#031c3140 70%),linear-gradient(0deg,#051b32 0%,transparent 34%,#041a3235)}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(90deg,#ffffff07 1px,transparent 1px);background-size:25% 100%;pointer-events:none}.hero-content{position:relative;padding-top:78px;padding-bottom:90px;z-index:2}.eyebrow{font-size:12px;font-weight:650;letter-spacing:2px;color:var(--blue);display:block}.eyebrow.light{color:#c1ddf9}.mini-line{display:inline-block;width:25px;height:2px;background:#65b2ff;vertical-align:middle;margin-right:12px}.hero h1{font-size:clamp(4.5rem,7.5vw,7.5rem);font-weight:600;line-height:1.02;margin-top:25px;letter-spacing:-.065em}.hero h1 em{color:#6caeff}.hero p{color:#ccdae8;font-size:17px;line-height:1.7;margin-top:26px}.hero-actions{display:flex;gap:30px;align-items:center;margin-top:32px}.text-link{font-size:14px;font-weight:500}.play-icon{border:1px solid #ffffff70;border-radius:50%;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;margin-left:10px}.hero-tag{position:absolute;right:7%;top:58%;padding:17px 22px;border:1px solid #ffffff38;background:#071d366b;backdrop-filter:blur(18px);border-radius:8px;display:flex;align-items:center;gap:13px;font-size:10px;letter-spacing:1.5px}.hero-tag small{display:block;color:#c2d1df;font-size:12px;letter-spacing:0;margin-top:4px}.signal{width:10px;height:10px;background:#7dbdff;border:3px solid #d9ebff;border-radius:50%;box-shadow:0 0 0 7px #95c7ff22;animation:signal 3s infinite}.hero-bottom{position:absolute;bottom:30px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:2px;color:#aec2d7}.scroll-cue{display:flex;gap:12px;align-items:center}.mouse{height:27px;width:17px;border:1px solid #abc1d5;border-radius:10px;position:relative}.mouse:after{content:'';position:absolute;top:5px;left:7px;width:1px;height:6px;background:#fff;animation:mouse 1.8s infinite}.value-strip{border-bottom:1px solid var(--line);padding:28px 0;font-size:14px;color:#627185}.value-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}.value-strip span:first-child{color:var(--ink);font-weight:650}.value-strip i{width:4px;height:4px;border-radius:50%;background:#b3c3d4}.section-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:1.8px;font-weight:600;color:var(--blue);margin-bottom:40px}.section-label span:nth-child(2){color:#8391a1;font-size:10px}.split{display:grid;grid-template-columns:1.1fr 1fr;gap:100px}.muted{color:#8997a7}.large-copy{font-size:23px;line-height:1.5;color:var(--ink);letter-spacing:-.5px;margin-bottom:21px}.challenge-copy>p+p{margin-top:20px}.blue-copy{color:var(--blue);font-weight:600}.connection-demo{margin-top:60px;padding:30px 36px 20px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(160deg,#f9fbfe,#fff)}.demo-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:1.5px;color:#718299}.icon{display:inline-flex;align-items:center;justify-content:center}.icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.journey-sticky{position:sticky;top:75px;min-height:690px;height:calc(100svh - 75px);max-height:1000px;display:flex;align-items:center;overflow:hidden}.journey-sticky>.wrap{padding-block:40px}.journey-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px}.journey-heading p{font-size:14px}.journey-stage{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;position:relative;align-items:center;margin-top:50px;padding:36px 0}.stage-number{position:absolute;left:-15px;top:-20px;font-family:'Manrope',sans-serif;font-size:230px;line-height:1;font-weight:700;letter-spacing:-20px;color:#dce9f9;opacity:.7}.stage-content{position:relative;padding-left:90px;max-width:540px}.stage-content h3{font-size:32px;margin-block:15px}.stage-content p{font-size:15px;max-width:350px}.stage-tags{display:flex;gap:8px;margin-top:22px}.stage-tags span{font-size:10px;letter-spacing:.3px;border:1px solid #ccdaec;border-radius:4px;padding:5px 10px;color:#526c8c}.stage-record{background:#fff;border:1px solid #e0e9f4;border-radius:10px;box-shadow:0 25px 50px #244f8010;transform:rotate(-2deg);padding:25px;transition:transform .4s}.stage-record:hover{transform:rotate(0)}.record-header{display:flex;gap:13px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:1px;color:var(--blue)}.record-header>.icon{background:#eaf3ff;padding:12px;border-radius:7px}.record-header small{display:block;font-size:11px;letter-spacing:0;color:#8493a7;margin-top:4px}.record-plus{margin-left:auto;font-size:24px;font-weight:300}.record-row{display:flex;justify-content:space-between;font-size:12px;margin-top:15px;gap:15px}.record-row>span{color:#8b99aa}.record-row strong{font-weight:500}.record-bottom{font-size:11px;background:#f5f9ff;padding:10px;margin-top:20px;color:#547298;display:flex;gap:16px}.trace-dots{color:var(--blue);letter-spacing:2px}.journey-track{display:flex;justify-content:space-between;position:relative;margin-top:40px;border-top:2px solid #d4dfed}.track-fill{position:absolute;top:-2px;left:0;background:var(--blue);height:2px;width:0;transition:width .4s}.journey-track button{border:0;background:transparent;text-align:left;position:relative;padding:24px 0 0;font-size:12px;color:#8c9caf;min-width:50px}.journey-track button:before{content:'';position:absolute;top:-6px;left:0;width:10px;height:10px;border-radius:50%;border:2px solid #c9d9ec;background:#f1f6fc;transition:all .3s}.journey-track button.active{color:var(--blue);font-weight:600}.journey-track button.active:before{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 5px #0063ed10}.journey-track button small{display:block;font-size:10px;margin-bottom:4px}.platform-section{background:var(--navy);color:white;overflow:hidden}.platform-section .section-label{color:#8dbbfa}.platform-heading{display:flex;justify-content:space-between;gap:50px;align-items:flex-end}.platform-heading h2{font-size:clamp(2.3rem,3.7vw,3.6rem)}.platform-heading h2 span{color:#84a6cc}.platform-heading p{max-width:330px;font-size:15px;color:#94a8c0}.platform-window{margin-top:50px;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 35px 70px #0003;color:var(--ink);border:1px solid #4c6380}.window-top{display:flex;justify-content:space-between;padding:14px 20px;background:#edf2f8;font-size:9px;letter-spacing:1.5px;color:#7b8b9e;border-bottom:1px solid #d7e0ec}.window-dots{letter-spacing:4px;color:#a6b4c4}.sample-label{font-size:8px}.dashboard{display:grid;grid-template-columns:215px 1fr;min-height:410px}.dashboard aside{background:#f9fbfe;border-right:1px solid var(--line);padding:25px 14px;position:relative}.dashboard-logo{font-family:Arial,sans-serif;font-weight:800;font-size:23px;letter-spacing:-1px;padding-inline:10px}.dashboard-logo span{display:block;font-family:var(--font);font-size:8px;color:#8493a4;letter-spacing:2px;margin-top:5px}.dashboard-tabs{margin-top:30px;display:flex;flex-direction:column;gap:7px}.dashboard-tabs button{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:12px 10px;border-radius:5px;color:#7b8999;font-size:11px;text-align:left}.dashboard-tabs button .icon svg{width:17px;height:17px}.dashboard-tabs button[aria-selected=true]{background:#e6f0ff;color:var(--blue);font-weight:600}.sidebar-bottom{position:absolute;bottom:22px;left:24px;display:flex;gap:8px;align-items:center;font-size:9px;color:#9ba6b3}.sidebar-bottom svg{width:16px}.dashboard-main{padding:30px 34px;min-width:0}.dash-title{display:flex;justify-content:space-between;align-items:center}.dash-title h3{font-size:21px;letter-spacing:-.8px}.dash-title p{font-size:11px;margin-top:5px}.dash-badge{border:1px solid #d9e5f3;border-radius:5px;padding:5px 10px;font-size:9px;color:#6b80a0}.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:25px}.dash-stat{border:1px solid #e2e9f1;border-radius:7px;padding:15px}.dash-stat span{display:block;font-size:10px;color:#8a98aa}.dash-stat strong{font-family:'Manrope',sans-serif;font-size:22px;font-weight:600;letter-spacing:-1px}.dash-route{display:flex;justify-content:space-between;position:relative;margin-top:33px;padding-bottom:25px;border-bottom:1px solid #e6edf4}.dash-route:before{content:'';position:absolute;top:13px;left:6%;right:6%;height:2px;background:#b6d3f8}.dash-stop{position:relative;text-align:center;font-size:10px;color:#6b7e93}.dash-stop i{display:flex;width:28px;height:28px;justify-content:center;align-items:center;background:#eef5fe;color:#1876e9;border:1px solid #a8c9f5;border-radius:50%;font-style:normal;margin:0 auto 8px}.dash-stop:last-child i{background:var(--blue);color:#fff;border-color:var(--blue)}.dash-event{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:10px;margin-top:20px}.dash-event span{color:#7c8ca0}.event-check{display:inline-flex;border-radius:50%;background:#eaf5ef;color:#358763;width:24px;height:24px;align-items:center;justify-content:center;margin-right:8px}.benefits-intro{max-width:350px;align-self:end}.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:55px}.benefit-grid article{padding:10px 30px 5px;border-right:1px solid var(--line)}.benefit-grid article:first-child{padding-left:0}.benefit-grid article:last-child{border:0;padding-right:0}.benefit-grid .icon{color:var(--blue);margin-bottom:30px}.benefit-grid .icon svg{width:32px;height:32px}.benefit-grid h3{font-size:19px;letter-spacing:-.7px}.benefit-grid p{font-size:14px;margin-top:16px}.solutions{background:#f2f6fa}.integration-tags{display:flex;flex-wrap:wrap;gap:10px;margin-block:25px}.integration-tags span{border:1px solid var(--line);padding:8px 14px;border-radius:5px;font-size:12px}.fine-print{font-size:12px}.faq{background:#f7f9fc}.faq-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}.faq h2{font-size:44px;margin-top:22px}.faq-layout>div>p{margin-top:25px;font-size:14px}.faq-list details{border-bottom:1px solid #dce4ee;padding:22px 0}.faq-list details:first-child{padding-top:0}.faq-list summary{cursor:pointer;list-style:none;font-size:16px;display:flex;justify-content:space-between;gap:20px;line-height:1.5}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:var(--blue);font-size:22px;line-height:1;transition:transform .3s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{font-size:14px;padding-top:15px;max-width:92%;line-height:1.8}.cta-section{background:#075dda;color:white;position:relative;overflow:hidden;text-align:center;padding-top:85px}.cta-content{position:relative}.cta-section .eyebrow{color:#b6d3ff}.cta-section h2{font-size:clamp(3rem,5.5vw,5.5rem);margin-top:28px;font-weight:550}.cta-section h2 em{color:#94c2ff}.cta-section p{color:#c9dfff;font-size:15px;margin-top:24px}.button.white{background:#fff;color:#0957c5;margin-top:30px}.button.white:hover{background:#e3efff}footer{display:flex;gap:40px;align-items:center;padding-block:40px}footer .logo{font-size:28px}footer .logo small{font-size:6px}footer p{font-size:12px;margin-right:auto}footer>span,footer>a:last-child{font-size:11px;color:#7d8b9e}dialog{border:0;border-radius:16px;padding:42px;max-width:520px;width:calc(100% - 32px);max-height:90svh;overflow:auto;color:var(--ink);box-shadow:0 35px 100px #00102044}dialog::backdrop{background:#04172caa;backdrop-filter:blur(8px)}dialog h2{font-size:34px;margin-top:14px}dialog>p{font-size:14px;margin-top:17px}.close-dialog{position:absolute;right:18px;top:12px;font-size:28px;border:0;background:none}form{display:grid;gap:14px;margin-top:24px}form label{font-size:12px;font-weight:600;display:grid;gap:5px}input,textarea{width:100%;border:1px solid #d7e1ee;border-radius:6px;padding:11px 13px;outline-color:var(--blue);font-size:14px;background:#f9fbfd;color:var(--ink)}textarea{resize:vertical}.form-note{font-size:11px;text-align:center}.form-status{font-size:13px;color:#0063ed}.skip{position:fixed;left:20px;top:-100px;background:#fff;padding:10px 20px;z-index:100}.skip:focus{top:10px}.reveal{transition:opacity .8s,transform .8s}.js-motion .reveal:not(.visible){opacity:0;transform:translateY(25px)}.inventory-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:25px}.inventory-table th{text-align:left;font-weight:500;color:#8291a5;padding:10px;background:#f5f8fc}.inventory-table td{padding:15px 10px;border-bottom:1px solid #e9eef5}.inventory-table td:last-child{color:#267c62}.product-passport{display:flex;align-items:center;gap:30px;margin-top:30px;background:#f5f9ff;padding:25px;border:1px solid #e0ebfa;border-radius:8px}.passport-symbol{padding:25px;background:#fff;border:1px solid #dbe8f7;border-radius:12px;color:var(--blue)}.passport-symbol svg{width:65px;height:65px}.product-passport h4{font-size:18px;margin:0 0 10px}.product-passport p{font-size:12px}.passport-tags{display:flex;gap:8px;margin-top:15px}.passport-tags span{font-size:9px;border:1px solid #d5e3f7;padding:5px;border-radius:4px;color:#49719e}@keyframes signal{50%{box-shadow:0 0 0 12px #95c7ff00}}@keyframes mouse{to{transform:translateY(7px);opacity:0}}@keyframes travel{from{left:0}to{left:100%}}
@media(min-width:1600px){.hero-content{padding-top:100px}.hero h1{font-size:120px}.hero p{font-size:20px}.hero-actions{margin-top:40px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.header{gap:24px}.header nav{gap:20px;font-size:12px}.split{gap:50px}.hero-tag{right:5%;top:65%}.hero h1{font-size:90px}.journey-stage{gap:35px}.stage-content{padding-left:50px}.platform-heading{gap:30px}.dashboard{grid-template-columns:185px 1fr}.dashboard-main{padding:25px}.faq-layout{gap:45px}.benefit-grid article{padding-inline:20px}.section{padding-block:90px}}
@media(max-width:760px){html{scroll-padding-top:80px}.wrap{width:calc(100% - 40px)}.header,.header.scrolled{height:76px;padding:0 20px;gap:20px}.header .logo{font-size:29px}.header .logo small{font-size:6px}.header>.button{margin-left:auto;padding:10px 16px;font-size:12px}.menu-toggle{display:flex;flex-direction:column;gap:5px;width:25px;border:0;padding:0;background:none}.menu-toggle span{height:1px;width:24px;background:var(--ink)}.header nav{display:none;position:absolute;top:76px;left:0;right:0;margin:0;background:white;padding:25px;box-shadow:0 10px 20px #071d3610;font-size:16px}.header nav.open{display:flex;flex-direction:column}.hero{min-height:max(680px,calc(100svh - 76px))}.hero-content{padding-top:55px}.hero .eyebrow{font-size:8px;letter-spacing:1.4px}.hero h1{font-size:clamp(60px,13.5vw,85px);margin-top:28px}.hero p{font-size:15px;margin-top:24px}.hero-actions{gap:20px;align-items:flex-start;flex-direction:column;margin-top:25px}.hero-actions .button{padding:14px 20px;font-size:13px}.hero-image{background-position:59% center}.hero-shade{background:linear-gradient(90deg,#04182fea,#051d3490),linear-gradient(0deg,#051b32,transparent 50%)}.hero-tag{display:none}.hero-bottom{font-size:8px;letter-spacing:1px;bottom:23px}.coordinate{display:none}.value-strip{padding:22px 0}.value-strip .wrap{flex-wrap:wrap;justify-content:center;gap:7px 15px;font-size:11px}.value-strip span:first-child{width:100%;text-align:center;font-size:14px;margin-bottom:5px}.value-strip i{width:3px;height:3px}.section{padding-block:68px}.section-label{font-size:9px;letter-spacing:1.3px;margin-bottom:28px}.section-label span:nth-child(2){display:none}h2{font-size:38px}.split{grid-template-columns:1fr;gap:28px}.large-copy{font-size:21px}.challenge-copy>p+p{margin-top:15px}.connection-demo{padding:20px 15px;margin-top:35px}.demo-heading{align-items:flex-start;gap:12px}.demo-heading>span{font-size:8px;max-width:130px}.journey-section{height:280vh;min-height:1750px}.journey-sticky{top:76px;height:calc(100svh - 76px);min-height:600px;max-height:900px}.journey-sticky>.wrap{padding-block:24px}.journey-sticky .section-label{margin-bottom:20px}.journey-heading{display:block}.journey-heading h2{font-size:34px}.journey-heading p{font-size:12px;margin-top:14px}.journey-heading p br{display:none}.journey-stage{grid-template-columns:1fr;gap:22px;margin-top:18px;padding:15px 0 0}.stage-content{padding-left:48px;max-width:100%}.stage-number{font-size:150px;top:0;left:-5px}.stage-content .eyebrow{font-size:9px}.stage-content h3{font-size:26px;margin-block:8px}.stage-content p{font-size:12px;max-width:100%}.stage-tags{margin-top:13px}.stage-tags span{font-size:8px;padding:4px 8px}.stage-record{padding:16px 20px;transform:none;margin-left:40px}.record-header{padding-bottom:10px;font-size:8px}.record-header>.icon{padding:6px}.record-header small{font-size:9px}.record-row{font-size:10px;margin-top:8px}.record-bottom{margin-top:10px;font-size:9px;padding:7px}.journey-track{margin-top:30px}.journey-track button{font-size:8px;min-width:0;padding-top:15px}.journey-track button small{font-size:8px}.platform-heading{display:block}.platform-heading h2{font-size:34px}.platform-heading p{margin-top:25px;font-size:14px;max-width:100%}.platform-window{margin-top:30px}.window-top{padding:10px;font-size:7px;letter-spacing:.7px}.window-dots{font-size:7px;letter-spacing:2px}.sample-label{font-size:6px}.dashboard{display:flex;flex-direction:column;min-height:380px}.dashboard aside{padding:10px;border-right:0;border-bottom:1px solid var(--line)}.dashboard-logo,.sidebar-bottom{display:none}.dashboard-tabs{flex-direction:row;gap:5px;margin:0;justify-content:space-between}.dashboard-tabs button{font-size:9px;padding:8px 6px;gap:4px}.dashboard-tabs button .icon svg{width:13px;height:13px}.dashboard-main{padding:20px 15px}.dash-title h3{font-size:18px}.dash-title p{font-size:9px}.dash-badge{font-size:7px;padding:4px}.dash-stats{gap:7px;margin-top:20px}.dash-stat{padding:10px}.dash-stat span{font-size:8px}.dash-stat strong{font-size:19px}.dash-stop{font-size:8px}.dash-event{font-size:8px;gap:8px}.dash-route{margin-top:25px}.benefit-grid{grid-template-columns:1fr 1fr;gap:30px 20px;margin-top:35px}.benefit-grid article,.benefit-grid article:first-child,.benefit-grid article:last-child{padding:0;border:0}.benefit-grid .icon{margin-bottom:18px}.benefit-grid h3{font-size:18px}.benefit-grid p{font-size:12px;margin-top:11px}.integration-tags{gap:7px}.integration-tags span{font-size:10px;padding:7px 10px}.faq-layout{grid-template-columns:1fr;gap:35px}.faq h2{font-size:37px;margin-top:15px}.faq-list summary{font-size:14px}.faq-list details p{font-size:13px}.cta-section{padding-top:65px}.cta-section h2{font-size:42px}.cta-section .eyebrow{font-size:9px}.cta-section p{font-size:13px}footer{gap:25px;flex-wrap:wrap;padding-block:30px}footer p{font-size:10px}footer>span{margin-right:auto}dialog{padding:32px 24px}.product-passport{gap:15px;padding:15px}.passport-symbol{padding:14px}.passport-symbol svg{width:35px;height:35px}.product-passport h4{font-size:15px}.passport-tags{flex-wrap:wrap;gap:4px}}
@media(max-width:380px){.hero h1{font-size:57px}.hero .eyebrow{font-size:7px}.hero-bottom{font-size:7px}.record-bottom{font-size:8px}.stage-record{margin-left:20px}.journey-heading h2{font-size:30px}.dashboard-tabs button{font-size:8px}.wrap{width:calc(100% - 32px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-image{transform:none!important}.js-motion .reveal:not(.visible){opacity:1;transform:none}}
/* Scroll-directed 3D experience */
.hero-3d{position:absolute;right:0;top:2%;width:57%;height:91%;z-index:1;pointer-events:none}.hero-3d canvas{width:100%;height:100%;display:block}.hero:has(.hero-3d.ready) .hero-image{opacity:.35}.hero:has(.hero-3d.ready) .hero-shade{background:linear-gradient(90deg,#04182ff5,#051d3490)}.hero-tag{z-index:3;top:auto;bottom:100px}.hero-content{pointer-events:none}.hero-content a{pointer-events:auto}.journey-section{height:440vh;min-height:2800px;background:#071d36;color:white}.journey-sticky{min-height:690px}.journey-sticky>.wrap{position:relative;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-block:42px}.journey-heading{position:relative;z-index:2;pointer-events:none}.journey-heading h2{font-size:clamp(2.3rem,3.5vw,3.6rem)}.journey-heading h2 em{color:#72afff}.journey-heading p{color:#95b0cc;max-width:310px}.journey-section .section-label{margin-bottom:20px;color:#85b7fa}.journey-3d{position:absolute;inset:130px -40px 80px 29%;z-index:0}.journey-3d canvas{display:block;width:100%;height:100%}.scene-caption{position:absolute;bottom:20px;left:21%;right:7%;display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1.6px;color:#6c94bd}.scene-fallback{position:absolute;inset:35% 15%;color:#91b4dd;font-size:16px;text-align:center}.journey-3d.ready .scene-fallback{display:none}.journey-stage{display:block;position:relative;z-index:1;margin-block:auto;padding:35px 0 0;width:37%;pointer-events:none}.stage-number{color:#193d65;font-size:180px;top:-25px;left:-5px;opacity:.5;letter-spacing:-14px}.stage-content{padding-left:0;padding-top:20px}.stage-content .eyebrow{color:#84b8ff;font-size:10px}.stage-content h3{font-size:32px}.stage-content p{color:#a2b9d1;font-size:14px;max-width:310px}.stage-tags span{color:#8cb4e2;border-color:#28496d;background:#0c2946}.stage-record{display:none}.journey-track{position:relative;z-index:3;margin-top:20px;border-color:#2b4663}.journey-track button{color:#7b96b2;padding-top:18px}.journey-track button.active{color:#8abcff}.journey-track button:before{background:#0a2340;border-color:#3a5b7f}.journey-track button.active:before{background:#7dbaff;border-color:#7dbaff;box-shadow:0 0 15px #529aff88}.track-fill{background:#70afff}.journey-section.no-webgl .stage-record{display:block;margin-top:20px;color:#10253d;pointer-events:auto}.journey-section.no-webgl .journey-stage{width:55%}.journey-section.no-webgl .journey-3d{display:none}
@media(max-width:1100px) and (min-width:761px){.hero-3d{width:52%;right:-3%}.hero h1{font-size:76px}.journey-3d{left:30%;right:-40px}.stage-content h3{font-size:28px}.stage-content p{font-size:13px}.journey-heading p{max-width:240px;font-size:12px}}
@media(max-width:760px){.hero:has(.hero-3d.ready){min-height:800px}.hero-3d{top:auto;bottom:40px;right:-22px;width:74%;height:340px;opacity:.95}.hero-content{z-index:2}.hero:has(.hero-3d.ready) .hero-content{padding-top:35px}.hero:has(.hero-3d.ready) h1{font-size:58px}.hero:has(.hero-3d.ready) p{font-size:13px;margin-top:18px}.hero:has(.hero-3d.ready) .hero-actions{margin-top:20px}.hero:has(.hero-3d.ready) .hero-actions .text-link{font-size:12px}.hero-tag{display:none}.journey-section{height:450vh;min-height:2900px}.journey-sticky{min-height:660px}.journey-sticky>.wrap{padding-block:25px}.journey-heading h2{font-size:32px}.journey-heading p{font-size:11px;margin-top:10px;max-width:100%}.journey-3d{inset:165px -25px 175px -25px}.scene-caption{left:12%;right:12%;bottom:5px;font-size:6px;letter-spacing:1px}.journey-stage{width:100%;margin-top:auto;margin-bottom:0;padding:0;min-height:130px}.stage-content{padding:0 0 0 42px;max-width:100%}.stage-number{font-size:88px;letter-spacing:-7px;top:0;left:-3px}.stage-content .eyebrow{font-size:8px}.stage-content h3{font-size:23px;margin-block:7px}.stage-content p{font-size:11px;max-width:100%;line-height:1.6}.stage-tags{margin-top:9px}.stage-tags span{font-size:8px}.journey-track{margin-top:18px}.journey-track button{font-size:8px;padding-top:12px}.journey-section.no-webgl .journey-stage{width:100%}.journey-section.no-webgl .stage-record{margin:20px 0}.journey-section.no-webgl .journey-sticky{min-height:800px}}
@media(prefers-reduced-motion:reduce){.journey-section{height:180vh;min-height:1500px}}
.scene-caption{bottom:45px}
@media(max-width:760px){.scene-caption{display:none}}
@media(max-width:760px) and (max-height:740px){.journey-sticky{min-height:550px}.journey-sticky>.wrap{padding-block:18px}.journey-heading h2{font-size:27px}.journey-heading p{display:none}.journey-section .section-label{margin-bottom:12px}.journey-3d{top:115px;bottom:175px}.stage-content h3{font-size:21px}.stage-content p{font-size:10px}.journey-track{margin-top:10px}.journey-stage{min-height:125px}}
/* Actual iTRACE platform screen */
.real-platform{border-color:#536d8a}.expand-platform{border:1px solid #dce5ef;border-radius:5px;padding:8px 12px;background:#fff;font-size:11px;display:flex;gap:10px;align-items:center;white-space:nowrap}.expand-platform:hover{background:#f0f5fc}.expand-platform span{font-size:19px;line-height:1}.platform-image-panel{width:100%;aspect-ratio:2048/1014;overflow:hidden;background:#f0f4f8;position:relative}#platform-dialog{max-width:1400px;width:calc(100vw - 64px);padding:22px;border-radius:12px;overflow:hidden}#platform-dialog h2{font-size:22px;letter-spacing:-.6px;margin-top:8px}.platform-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.close-platform{font-size:30px;background:#edf3fb;border:0;border-radius:50%;width:40px;height:40px;flex-shrink:0;line-height:1}.platform-pan-hint{font-size:12px;margin-block:12px}.platform-full-image{overflow:auto;max-height:70svh;border:1px solid #dfe7f1;border-radius:6px;overscroll-behavior:contain}.platform-full-image img{display:block;width:100%;min-width:1250px;height:auto}.platform-full-image:focus-visible{outline:2px solid #0063ed;outline-offset:3px}
@media(max-width:760px){.expand-platform{font-size:10px;padding:6px 9px;margin-left:auto}#platform-dialog{width:calc(100vw - 24px);padding:16px}#platform-dialog h2{font-size:17px;line-height:1.4}.platform-dialog-header .eyebrow{font-size:9px}.platform-full-image{max-height:65svh}}

/* Consumer QR scan animation */
.scan-section {
  --scan-time: 18s;
  --scan-green: #18a058;
  background: var(--pale);
  overflow: hidden;
}
.qr-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.scan-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: center; }
.scan-copy .large-copy { margin-top: 26px; max-width: 440px; }
.scan-steps { list-style: none; margin: 34px 0 0; padding: 0; display: grid; gap: 4px; }
.scan-steps li {
  position: relative;
  display: flex;
  gap: 18px;
  padding: 16px 18px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  overflow: hidden;
}
.scan-steps li:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 0;
  background: var(--blue);
}
.scan-steps li > span { font-size: 11px; font-weight: 650; letter-spacing: 1.5px; color: var(--blue); padding-top: 3px; }
.scan-steps strong { display: block; font-family: 'Manrope', Arial, sans-serif; font-size: 17px; letter-spacing: -.3px; }
.scan-steps small { display: block; color: var(--muted); font-size: 14px; line-height: 1.5; margin-top: 2px; }
.scan-pause {
  margin-top: 22px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 0;
  padding: 6px 0;
  background: none;
  font-size: 13px;
}
.scan-pause span { width: 10px; height: 12px; border-inline: 3px solid var(--blue); }
.scan-pause[aria-pressed='true'] span {
  border: 0;
  border-left: 10px solid var(--blue);
  border-block: 6px solid transparent;
  height: 0;
}

.scan-stage {
  --stage-w: 35;
  margin: 0;
  container-type: inline-size;
  position: relative;
  border-radius: 18px;
  background: radial-gradient(circle at 30% 45%, #fff 0, #eaf1f9 60%, #dfe8f2 100%);
  border: 1px solid var(--line);
  overflow: hidden;
}
.scan-stage > * { font-size: min(18px, calc(100cqw / var(--stage-w))); }
.scan-stage:before {
  content: '';
  display: block;
  font-size: min(18px, calc(100cqw / var(--stage-w)));
  height: 34em;
}
.scan-stage figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  font-size: 10px;
  letter-spacing: 1.4px;
  font-weight: 600;
  color: #8391a1;
}

.scan-pack { position: absolute; left: 2.5em; top: 8.5em; width: 11em; transform: rotate(-3deg); }
.pack-body {
  position: relative;
  height: 16em;
  padding: 1.8em 1.3em 1em;
  border-radius: 1.4em 1.4em 1em 1em;
  background: linear-gradient(160deg, #e84a5f 0%, #c81d3a 55%, #9d1230 100%);
  box-shadow: 0 1.8em 3em #7d10283a, inset 0 0 0 .35em #f6c75c;
  color: #fff;
}
.pack-body:before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(105deg, transparent 40%, #ffffff30 48%, transparent 56%);
}
.pack-flavour { font-size: .55em; font-weight: 700; letter-spacing: .15em; color: #ffe7a6; }
.pack-body strong {
  display: block;
  margin-top: .2em;
  font-family: 'Manrope', Arial, sans-serif;
  font-size: 2em;
  line-height: 1;
  letter-spacing: -.04em;
}
.pack-weight { position: absolute; right: 1.6em; top: 2.4em; font-size: .7em; opacity: .85; }
.pack-qr {
  position: absolute;
  left: 50%;
  bottom: 2.5em;
  width: 5em;
  transform: translateX(-50%);
  padding: .3em;
  border-radius: .5em;
  background: #fff;
}
.pack-qr svg { display: block; width: 100%; height: auto; }
.pack-qr-pulse { position: absolute; inset: -.2em; border-radius: .7em; border: .2em solid var(--scan-green); opacity: 0; }
.pack-qr-label { position: absolute; left: 0; right: 0; bottom: 1.6em; font-size: .5em; font-weight: 700; letter-spacing: .14em; text-align: center; }

.scan-beam {
  position: absolute;
  left: 10.3em;
  top: 14.5em;
  width: 4.4em;
  height: 10em;
  background: linear-gradient(90deg, #4f9cff55, #4f9cff10);
  clip-path: polygon(0 38%, 100% 0, 100% 100%, 0 62%);
  opacity: 0;
}

.scan-phone {
  position: absolute;
  right: 3.2em;
  top: 3em;
  width: 16.5em;
  padding: .55em;
  border-radius: 2.4em;
  background: #0d1a29;
  box-shadow: 0 2.5em 4em #071d3640, inset 0 0 0 .12em #3a4a5c;
  transform-origin: 50% 80%;
}
.phone-screen { position: relative; height: 26.7em; border-radius: 1.9em; overflow: hidden; background: #fff; }
.phone-screen:before { content: ''; position: absolute; left: 0; right: 0; top: 0; z-index: 1; height: 1.6em; background: #fff; }
.phone-status {
  position: relative;
  z-index: 3;
  height: 1.6em;
  padding: 0 1.4em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 1em;
  color: var(--ink);
}
.phone-status span:not(.phone-island) { font-size: .55em; font-weight: 700; letter-spacing: .05em; }
.phone-island { width: 4.2em; height: 1.05em; border-radius: 1em; background: #0d1a29; }
.phone-page { position: absolute; left: 0; right: 0; top: 1.6em; }
.phone-page img { display: block; width: 100%; height: auto; }
.phone-page .page-details { position: absolute; left: 0; top: 7.06em; }
.page-focus {
  position: absolute;
  left: 4.6%;
  width: 90.8%;
  top: 55.6%;
  height: 7.8%;
  border-radius: .5em;
  box-shadow: 0 0 0 .15em var(--blue), 0 0 0 .5em #0063ed22;
  opacity: 0;
}
.page-tap {
  position: absolute;
  left: 34%;
  top: 95.6%;
  width: 2.4em;
  height: 2.4em;
  margin: -1.2em 0 0 -1.2em;
  border-radius: 50%;
  background: #e0506f40;
  box-shadow: 0 0 0 .2em #e0506f30;
  opacity: 0;
}
.phone-camera {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 50%, #b8283f 0, #6c1626 38%, #121b26 75%);
  opacity: 0;
}
.camera-frame {
  position: relative;
  width: 9.5em;
  padding: 1.2em;
  --corner: #fff;
  background:
    linear-gradient(var(--corner), var(--corner)) 0 0 / 1.6em .22em,
    linear-gradient(var(--corner), var(--corner)) 0 0 / .22em 1.6em,
    linear-gradient(var(--corner), var(--corner)) 100% 0 / 1.6em .22em,
    linear-gradient(var(--corner), var(--corner)) 100% 0 / .22em 1.6em,
    linear-gradient(var(--corner), var(--corner)) 0 100% / 1.6em .22em,
    linear-gradient(var(--corner), var(--corner)) 0 100% / .22em 1.6em,
    linear-gradient(var(--corner), var(--corner)) 100% 100% / 1.6em .22em,
    linear-gradient(var(--corner), var(--corner)) 100% 100% / .22em 1.6em;
  background-repeat: no-repeat;
}
.camera-frame svg { display: block; width: 100%; height: auto; border-radius: .3em; }
.camera-line {
  position: absolute;
  left: .6em;
  right: .6em;
  top: 1.2em;
  height: .18em;
  border-radius: 1em;
  background: #4f9cff;
  box-shadow: 0 0 1em .3em #4f9cff99;
}
.camera-toast {
  position: absolute;
  left: 50%;
  bottom: 3.4em;
  padding: .55em 1em;
  border-radius: 2em;
  background: var(--scan-green);
  color: #fff;
  font-size: .72em;
  font-weight: 650;
  white-space: nowrap;
  transform: translate(-50%, 1em);
  opacity: 0;
}

.phone-history {
  position: absolute;
  left: 0;
  right: 0;
  top: 1.6em;
  bottom: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  border-radius: 1.2em 1.2em 0 0;
  background: #f3f3f3;
  box-shadow: 0 -1em 3em #071d3633;
  overflow: hidden;
  transform: translateY(105%);
}
.history-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: .9em 1.1em .7em;
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.history-header strong { font-family: 'Manrope', Arial, sans-serif; font-size: .85em; letter-spacing: -.02em; }
.history-header span { font-size: .6em; color: var(--muted); }
.history-scroll { flex: 1; overflow: hidden; }
.history-scroll img { display: block; width: 100%; height: auto; }

/* One shared timeline: scan (0–30%), view and scroll (30–52%), open trace (52–60%), journey (60–97%). */
.scan-steps li,
.scan-steps li:after,
.scan-phone,
.scan-beam,
.pack-qr-pulse,
.phone-camera,
.camera-frame,
.camera-line,
.camera-toast,
.phone-page,
.page-focus,
.page-tap,
.phone-history,
.history-scroll img {
  animation: var(--scan-time) cubic-bezier(.45, 0, .25, 1) infinite both;
}
.scan-steps li:nth-child(1) { animation-name: scan-step-1; }
.scan-steps li:nth-child(2) { animation-name: scan-step-2; }
.scan-steps li:nth-child(3) { animation-name: scan-step-3; }
.scan-steps li:nth-child(4) { animation-name: scan-step-4; }
.scan-steps li:after { animation-timing-function: linear; }
.scan-steps li:nth-child(1):after { animation-name: scan-bar-1; }
.scan-steps li:nth-child(2):after { animation-name: scan-bar-2; }
.scan-steps li:nth-child(3):after { animation-name: scan-bar-3; }
.scan-steps li:nth-child(4):after { animation-name: scan-bar-4; }
.scan-phone { animation-name: scan-phone; }
.scan-beam { animation-name: scan-beam; }
.pack-qr-pulse { animation-name: scan-pulse; }
.phone-camera { animation-name: scan-camera; }
.camera-frame { animation-name: scan-corners; animation-timing-function: steps(1, end); }
.camera-line { animation-name: scan-line; animation-timing-function: ease-in-out; }
.camera-toast { animation-name: scan-toast; }
.phone-page { animation-name: scan-page; }
.page-focus { animation-name: scan-focus; }
.page-tap { animation-name: scan-tap; }
.phone-history { animation-name: scan-history; }
.history-scroll img { animation-name: scan-history-scroll; animation-timing-function: ease-in-out; }
.scan-section.is-paused *,
.scan-section.is-offscreen * { animation-play-state: paused !important; }

@keyframes scan-phone {
  0% { transform: translate(.6em, .6em) rotate(4deg); }
  7%, 26% { transform: translate(-.8em, .3em) rotate(-6deg); }
  33%, 100% { transform: none; }
}
@keyframes scan-beam {
  0%, 8% { opacity: 0; }
  11%, 23% { opacity: 1; }
  27%, 100% { opacity: 0; }
}
@keyframes scan-pulse {
  0%, 22% { opacity: 0; transform: scale(1); }
  24% { opacity: 1; transform: scale(1); }
  30%, 100% { opacity: 0; transform: scale(1.35); }
}
@keyframes scan-camera {
  0%, 28% { opacity: 1; }
  32%, 98% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes scan-corners {
  0% { --corner: #fff; }
  23%, 100% { --corner: #3ddc84; }
}
@keyframes scan-line {
  0%, 8% { transform: translateY(0); opacity: 0; }
  9% { opacity: 1; }
  15% { transform: translateY(8em); }
  21% { transform: translateY(0); opacity: 1; }
  23%, 100% { transform: translateY(4em); opacity: 0; }
}
@keyframes scan-toast {
  0%, 23% { opacity: 0; transform: translate(-50%, 1em); }
  25%, 29% { opacity: 1; transform: translate(-50%, 0); }
  32%, 100% { opacity: 0; transform: translate(-50%, 0); }
}
@keyframes scan-page {
  0%, 29% { transform: scale(1.06); filter: blur(4px); }
  34%, 45% { transform: none; filter: none; }
  52%, 98% { transform: translateY(-8.2em); filter: none; }
  100% { transform: scale(1.06); filter: blur(4px); }
}
@keyframes scan-focus {
  0%, 34% { opacity: 0; top: 55.6%; height: 7.8%; }
  36%, 39% { opacity: 1; top: 55.6%; height: 7.8%; }
  41%, 43% { opacity: 1; top: 65.7%; height: 5.4%; }
  45%, 52% { opacity: 0; top: 92.3%; height: 6.6%; }
  54%, 58% { opacity: 1; top: 92.3%; height: 6.6%; }
  60%, 100% { opacity: 0; top: 92.3%; height: 6.6%; }
}
@keyframes scan-tap {
  0%, 57% { opacity: 0; transform: scale(.4); }
  58% { opacity: 1; transform: scale(.8); }
  61%, 100% { opacity: 0; transform: scale(2.2); }
}
@keyframes scan-history {
  0%, 60% { transform: translateY(105%); }
  64%, 95% { transform: none; }
  99%, 100% { transform: translateY(105%); }
}
@keyframes scan-history-scroll {
  0%, 68% { transform: none; }
  88%, 100% { transform: translateY(calc(-100% + 22em)); }
}
@keyframes scan-step-1 { 0%, 29% { opacity: 1; } 31%, 98% { opacity: .5; } 100% { opacity: 1; } }
@keyframes scan-step-2 { 0%, 29% { opacity: .5; } 31%, 51% { opacity: 1; } 53%, 100% { opacity: .5; } }
@keyframes scan-step-3 { 0%, 51% { opacity: .5; } 53%, 59% { opacity: 1; } 61%, 100% { opacity: .5; } }
@keyframes scan-step-4 { 0%, 59% { opacity: .5; } 61%, 96% { opacity: 1; } 98%, 100% { opacity: .5; } }
@keyframes scan-bar-1 { 0% { width: 0; } 30% { width: 100%; opacity: 1; } 31%, 100% { width: 100%; opacity: 0; } }
@keyframes scan-bar-2 { 0%, 30% { width: 0; opacity: 1; } 52% { width: 100%; opacity: 1; } 53%, 100% { width: 100%; opacity: 0; } }
@keyframes scan-bar-3 { 0%, 52% { width: 0; opacity: 1; } 60% { width: 100%; opacity: 1; } 61%, 100% { width: 100%; opacity: 0; } }
@keyframes scan-bar-4 { 0%, 60% { width: 0; opacity: 1; } 97% { width: 100%; opacity: 1; } 98%, 100% { width: 100%; opacity: 0; } }

@property --corner { syntax: '<color>'; inherits: true; initial-value: #fff; }

@media (max-width: 1100px) {
  .scan-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .scan-stage { max-width: 640px; }
}
@media (max-width: 760px) {
  .scan-stage { --stage-w: 28; }
  .scan-pack { left: .8em; top: 12em; width: 9em; }
  .pack-body { height: 13em; padding: 1.4em 1em 1em; }
  .pack-body strong { font-size: 1.6em; }
  .pack-qr { width: 4.4em; bottom: 2.2em; }
  .scan-beam { left: 7.3em; top: 16.5em; width: 3.4em; height: 8em; }
  .scan-phone { right: .8em; top: 2.2em; }
  .scan-stage:before { height: 35em; }
  .scan-stage figcaption { font-size: 8px; letter-spacing: 1px; padding: 10px 14px; }
  .scan-stage figcaption span:last-child { display: none; }
  .scan-steps li { padding: 14px; gap: 14px; }
  .scan-steps strong { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .scan-pause { display: none; }
  .scan-beam, .pack-qr-pulse, .phone-camera, .page-focus, .page-tap { opacity: 0; }
}

/* Platform tour */
.platform-tour { display: grid; grid-template-columns: minmax(280px, .78fr) 1.7fr; gap: 48px; align-items: start; margin-top: 56px; }
.platform-modules { display: flex; flex-direction: column; gap: 6px; }
.platform-modules button {
  position: relative;
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 0 10px;
  padding: 18px 20px 20px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: #8fa6c2;
  text-align: left;
  overflow: hidden;
  transition: background .35s, border-color .35s, color .35s;
}
.platform-modules button:hover { background: #ffffff08; color: #c9dcf3; }
.platform-modules button[aria-selected=true] { background: #ffffff0d; border-color: #2c4a6e; color: #fff; }
.module-index { padding-top: 5px; font-size: 11px; font-weight: 650; letter-spacing: 1.5px; color: #5b82ad; }
.platform-modules button[aria-selected=true] .module-index { color: #6fb2ff; }
.module-body strong { display: block; font-family: 'Manrope', Arial, sans-serif; font-size: 19px; font-weight: 650; letter-spacing: -.3px; }
.module-detail {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition: grid-template-rows .45s cubic-bezier(.22, .68, 0, 1), opacity .35s;
}
.module-detail > span { overflow: hidden; }
.platform-modules button[aria-selected=true] .module-detail { grid-template-rows: 1fr; opacity: 1; }
.module-detail small { display: block; margin-top: 8px; font-size: 13.5px; line-height: 1.6; color: #a9bdd4; }
.module-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.module-tags i {
  padding: 4px 9px;
  border: 1px solid #0063ed55;
  border-radius: 20px;
  background: #0063ed26;
  color: #9cc6f2;
  font-size: 10.5px;
  font-style: normal;
}
.module-progress { position: absolute; left: 20px; right: 20px; bottom: 0; height: 2px; border-radius: 2px; background: #ffffff12; overflow: hidden; opacity: 0; }
.module-progress:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #3d8bff, #8fd0ff); transform: scaleX(0); transform-origin: left; }
.platform-modules button[aria-selected=true] .module-progress { opacity: 1; }
.platform-tour.is-playing button[aria-selected=true] .module-progress:after { animation: module-progress var(--tour-time, 7s) linear forwards; }
.platform-tour.is-held button[aria-selected=true] .module-progress:after { animation-play-state: paused; }
@keyframes module-progress { to { transform: scaleX(1); } }

.platform-stage { position: relative; }
.platform-stage:before {
  content: '';
  position: absolute;
  inset: 6% -3% -4%;
  background: radial-gradient(closest-side, #0063ed50, transparent);
  filter: blur(30px);
  pointer-events: none;
}
.platform-tour .platform-window { position: relative; margin-top: 0; border-radius: 14px; }
.platform-image-panel img {
  position: absolute;
  inset: 0 0 auto;
  display: block;
  width: 100%;
  height: auto;
  opacity: 0;
  transform: scale(1.025);
  transition: opacity .7s ease, transform 1.2s cubic-bezier(.22, .68, 0, 1);
}
.platform-image-panel img.is-active { opacity: 1; transform: none; }
.platform-image-panel .expand-platform {
  position: absolute;
  right: 14px;
  bottom: 14px;
  background: #ffffffe6;
  backdrop-filter: blur(6px);
  box-shadow: 0 6px 18px #071d3626;
}
.platform-stage-foot {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
  font-size: 9px;
  letter-spacing: 1.2px;
  color: #7f97b4;
}
.platform-autoplay { display: inline-flex; align-items: center; gap: 10px; padding: 4px 0; border: 0; background: none; color: #c9dcf3; font-size: 12px; letter-spacing: 0; }
.platform-autoplay span { width: 10px; height: 12px; border-inline: 3px solid #6fb2ff; }
.platform-autoplay[aria-pressed=true] span { height: 0; border: 0; border-left: 10px solid #6fb2ff; border-block: 6px solid transparent; }
@media (max-width: 1100px) {
  .platform-tour { grid-template-columns: 1fr; gap: 24px; }
  .platform-stage { order: -1; }
  .platform-modules { display: grid; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .platform-tour { margin-top: 32px; }
  .platform-modules { grid-template-columns: 1fr; gap: 4px; }
  .platform-modules button { padding: 14px 16px 16px; }
  .module-body strong { font-size: 16px; }
  .platform-image-panel .expand-platform { right: 8px; bottom: 8px; padding: 5px 8px; }
  .platform-stage-foot { font-size: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .platform-autoplay { display: none; }
}

/* Company logo */
.logo, footer .logo { display: flex; align-items: center; gap: 12px; font-size: 0; letter-spacing: 0; }
.logo img { display: block; width: auto; height: 54px; }
.logo small, footer .logo small { margin: 0; padding-left: 12px; border-left: 1px solid var(--line); font-family: var(--font); font-size: 8px; font-weight: 650; line-height: 1.5; letter-spacing: 1.8px; color: #6c7d92; }
.header.scrolled .logo img { height: 46px; }
footer .logo img { height: 48px; }
@media (max-width: 760px) {
  .logo img, .header.scrolled .logo img { height: 44px; }
  .logo small, footer .logo small { display: none; }
  footer .logo img { height: 42px; }
}
@media (max-width: 760px) {
  .platform-image-panel { aspect-ratio: 4 / 3; }
  .platform-image-panel img { width: 175%; max-width: none; }
}

/* Hero network globe */
.globe-labels { position: absolute; inset: 0; pointer-events: none; }
.globe-labels span {
  position: absolute;
  left: 0;
  top: 0;
  padding: 3px 9px;
  border: 1px solid #ffffff30;
  border-radius: 20px;
  background: #071d36e0;
  color: #d6e9ff;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  transition: opacity .3s;
}
.globe-labels span.hub { border-color: #5d9eff; background: var(--blue); color: #fff; }
.globe-note { position: absolute; right: 8%; top: 4%; font-size: 9px; font-weight: 600; letter-spacing: 1.6px; color: #8fb2d8; }
.hero-globe { opacity: 0; transition: opacity 1.2s ease; }
.hero-globe.ready { opacity: 1; }
@media (max-width: 760px) {
  .globe-labels span { padding: 2px 7px; font-size: 9px; }
  .globe-note { display: none; }
}

/* Platform login links */
.header nav { align-items: center; }
.header nav a.nav-login { padding: 9px 16px; border: 1px solid #c9d7e8; border-radius: 7px; color: var(--blue); transition: background .2s, border-color .2s; }
.header nav a.nav-login:hover { border-color: var(--blue); background: #f0f6ff; }
.header nav a.nav-login:after { display: none; }
.platform-intro { max-width: 330px; }
.platform-login { margin-top: 24px; gap: 8px; }
.footer-login { font-size: 12px; font-weight: 600; color: var(--blue); }
@media (max-width: 760px) {
  .header nav.open { align-items: flex-start; }
  .platform-intro { max-width: none; }
  .platform-login { margin-top: 20px; }
  .footer-login { font-size: 11px; }
}

/* Polish pass */
.cta-section { padding-bottom: 90px; }
@media (max-width: 760px) { .cta-section { padding-bottom: 70px; } }

/* Closing section: round ripples and slow waves */
.cta-ripples { position: absolute; left: 50%; top: 60px; width: 0; height: 0; pointer-events: none; }
.cta-ripples span {
  position: absolute;
  left: -600px;
  top: -600px;
  width: 1200px;
  height: 1200px;
  border: 1px solid #ffffff2e;
  border-radius: 50%;
  box-shadow: inset 0 0 60px #ffffff0d;
  opacity: 0;
  animation: cta-ripple 14s cubic-bezier(.22, .6, .36, 1) infinite;
}
.cta-ripples span:nth-child(2) { animation-delay: -3.5s; }
.cta-ripples span:nth-child(3) { animation-delay: -7s; }
.cta-ripples span:nth-child(4) { animation-delay: -10.5s; }
@keyframes cta-ripple {
  0% { transform: scale(.25); opacity: 0; }
  15% { opacity: 1; }
  100% { transform: scale(1.35); opacity: 0; }
}
.cta-waves { position: absolute; left: 0; right: 0; bottom: 0; height: 240px; overflow: hidden; pointer-events: none; }
.cta-wave { position: absolute; left: 0; bottom: 0; width: 200%; fill: #fff; animation: cta-wave linear infinite; }
.cta-wave-1 { height: 220px; opacity: .05; animation-duration: 64s; animation-direction: reverse; }
.cta-wave-2 { height: 160px; opacity: .07; bottom: -10px; animation-duration: 46s; animation-delay: -12s; }
.cta-wave-3 { height: 110px; opacity: .09; bottom: -14px; animation-duration: 36s; animation-delay: -20s; }
@keyframes cta-wave { to { transform: translateX(-50%); } }
.cta-content { z-index: 1; }
@media (max-width: 760px) {
  .cta-waves { height: 160px; }
  .cta-wave-1 { height: 150px; }
  .cta-wave-2 { height: 110px; }
  .cta-wave-3 { height: 80px; }
}

/* SVG line icons (replacing text symbols) */
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ui-icon { display: inline-block; flex-shrink: 0; width: 1em; height: 1em; vertical-align: -.14em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nav-login .ui-icon, .platform-login .ui-icon, .footer-login .ui-icon { width: 1.15em; height: 1.15em; margin-left: 2px; stroke-width: 2.2; }
.play-icon .ui-icon { width: 15px; height: 15px; }
.expand-platform .ui-icon { width: 16px; height: 16px; }
.industry-prev .ui-icon, .industry-next .ui-icon { width: 18px; height: 18px; }
.close-dialog, .close-platform { display: grid; place-items: center; }
.close-dialog .ui-icon, .close-platform .ui-icon { width: 20px; height: 20px; }
.window-dots { display: inline-flex; gap: 6px; align-items: center; }
.window-dots i { width: 8px; height: 8px; border-radius: 50%; background: #c3cfdc; }
.trace-dots { width: 52px; height: 7px; margin-right: 6px; vertical-align: middle; fill: var(--blue); stroke: var(--blue); stroke-width: 1.6; }
.phone-signal { width: 1.6em; height: .65em; fill: currentColor; }
@media (max-width: 760px) {
  .window-dots { gap: 4px; }
  .window-dots i { width: 6px; height: 6px; }
}

/* Recognition and partners */
.partners-section { background: #fff; border-top: 1px solid var(--line); }
.partners-head { text-align: center; }
.partners-head h2 { margin-top: 14px; font-size: clamp(2rem, 3.4vw, 3rem); }
.partner-group { margin-top: 56px; }
.partner-group h3 {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 26px;
  font-family: var(--font);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: #6c7d92;
}
.partner-group h3:after { content: ''; flex: 1; height: 1px; background: var(--line); }
.partner-group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 30px 34px; }
.partner-group li img { display: block; width: auto; height: 56px; max-width: 150px; object-fit: contain; mix-blend-mode: multiply; filter: grayscale(1); opacity: .72; transition: filter .3s, opacity .3s; }
.partner-group li:hover img { filter: none; opacity: 1; }
.partner-group.awards ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.partner-group.awards li { display: flex; align-items: center; gap: 18px; padding: 18px 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--pale); }
.partner-group.awards li img { height: 96px; max-width: 72px; filter: none; opacity: 1; }
.partner-group.awards strong { display: block; font-family: 'Manrope', Arial, sans-serif; font-size: 15px; letter-spacing: -.2px; }
.partner-group.awards span { display: block; margin-top: 4px; font-size: 13px; line-height: 1.45; color: var(--muted); }
.partner-row { display: grid; grid-template-columns: 1.7fr 1fr; gap: 0 56px; }
@media (max-width: 1100px) {
  .partner-group.awards ul { grid-template-columns: 1fr; }
  .partner-row { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .partner-group { margin-top: 40px; }
  .partner-group ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px 18px; }
  .partner-group li img { height: 42px; max-width: 100%; margin-inline: auto; filter: none; opacity: 1; }
  .partner-group.awards ul { grid-template-columns: 1fr; }
  .partner-group.awards li img { height: 76px; margin: 0; }
}
@media (hover: none) {
  .partner-group li img { filter: none; opacity: 1; }
}
.partner-group li a { display: block; border-radius: 8px; }
.partner-group li a:focus-visible { outline: 3px solid #5d9eff; outline-offset: 6px; }
.partner-group li a:focus-visible img { filter: none; opacity: 1; }
@media (min-width: 1101px) {
  .partner-group.collaborators ul { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 24px; justify-items: center; }
  .partner-group.collaborators li img { max-width: 100%; }
}

/* Industries carousel */
.industry-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.industry-controls { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.industry-count { margin-right: 8px; font-size: 12px; font-weight: 600; letter-spacing: 1.5px; color: #6c7d92; }
.industry-prev, .industry-next { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #d3deea; border-radius: 50%; background: #fff; color: var(--ink); transition: border-color .2s, background .2s, color .2s; }
.industry-prev:hover, .industry-next:hover { border-color: var(--blue); background: var(--blue); color: #fff; }
.industry-prev .ui-icon, .industry-next .ui-icon { width: 18px; height: 18px; }
.industry-carousel { margin-top: 48px; }
.industry-stage { position: relative; height: clamp(420px, 40vw, 560px); border-radius: 24px; overflow: hidden; background: var(--navy); box-shadow: 0 30px 60px -30px #071d3666; touch-action: pan-y; user-select: none; }
.industry-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1s ease; }
.industry-slide img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1.2s cubic-bezier(.22, .68, 0, 1); }
.industry-slide.is-active { opacity: 1; }
.industry-slide.is-active img { transform: scale(1); }
.is-playing .industry-slide.is-active img { animation: industry-zoom 9s ease-out forwards; }
.is-held .industry-slide.is-active img { animation-play-state: paused; }
@keyframes industry-zoom { from { transform: scale(1); } to { transform: scale(1.09); } }
.industry-shade { position: absolute; inset: 0; background: linear-gradient(90deg, #071d36e6 0%, #071d36a8 34%, #071d3610 66%), linear-gradient(0deg, #071d3699, transparent 45%); pointer-events: none; }
.industry-copy { position: absolute; left: clamp(28px, 5vw, 64px); bottom: clamp(28px, 4.5vw, 56px); width: min(500px, calc(100% - 56px)); color: #fff; opacity: 0; visibility: hidden; transition: opacity .4s, visibility 0s .4s; }
.industry-copy.is-active { opacity: 1; visibility: visible; transition: opacity .6s .25s, visibility 0s; }
.industry-copy > * { transform: translateY(18px); transition: transform .7s cubic-bezier(.22, .68, 0, 1); }
.industry-copy.is-active > * { transform: none; }
.industry-copy.is-active > :nth-child(2) { transition-delay: .3s; }
.industry-copy.is-active > :nth-child(3) { transition-delay: .38s; }
.industry-copy.is-active > :nth-child(4) { transition-delay: .46s; }
.industry-meta { display: flex; align-items: center; gap: 12px; }
.industry-meta .icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--blue); color: #fff; box-shadow: 0 8px 20px #0063ed55; }
.industry-meta .icon svg, .industry-tab .icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.industry-meta .eyebrow { margin: 0; color: #a9d0ff; text-shadow: 0 1px 8px #071d36cc; font-size: 11px; letter-spacing: 1.8px; text-transform: uppercase; }
.industry-copy h3 { margin-top: 18px; color: #fff; font-size: clamp(28px, 3.1vw, 42px); line-height: 1.1; letter-spacing: -1px; }
.industry-copy p { margin-top: 14px; color: #d5e1ee; font-size: 16px; line-height: 1.65; }
.industry-flow { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.industry-flow span { padding: 6px 12px; border: 1px solid #ffffff33; border-radius: 20px; background: #ffffff14; backdrop-filter: blur(8px); color: #fff; font-size: 12px; font-weight: 550; }
.industry-number { position: absolute; top: 26px; right: 30px; color: #ffffffb0; text-shadow: 0 2px 12px #071d36aa; font-size: 13px; font-weight: 600; letter-spacing: 1.5px; }
.industry-number b { color: #fff; font-size: 30px; font-weight: 700; letter-spacing: -.5px; }
.industry-tabs { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; margin-top: 16px; padding: 2px; }
.industry-tab { position: relative; display: flex; align-items: center; gap: 10px; min-width: 0; padding: 14px 14px 17px; border: 1px solid #dfe7f1; border-radius: 14px; background: #fff; color: #526d8c; font-size: 13px; font-weight: 600; text-align: left; overflow: hidden; transition: border-color .25s, color .25s, box-shadow .25s, background .25s; }
.industry-tab:hover { border-color: #9cc3f5; color: var(--ink); }
.industry-tab:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.industry-tab .icon { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: #eef4fb; color: var(--blue); transition: background .25s, color .25s; }
.industry-tab .icon svg { width: 17px; height: 17px; }
.industry-tab-name { line-height: 1.25; white-space: nowrap; }
.industry-tab.is-active { border-color: #9cc3f5; background: #f5f9ff; color: var(--ink); box-shadow: 0 10px 22px -12px #0063ed55; }
.industry-tab.is-active .icon { background: var(--blue); color: #fff; }
.industry-progress { position: absolute; left: 14px; right: 14px; bottom: 8px; height: 3px; border-radius: 3px; background: transparent; overflow: hidden; }
.industry-progress:after { content: ''; position: absolute; inset: 0; background: var(--blue); transform: scaleX(0); transform-origin: left; }
.industry-tab.is-active .industry-progress { background: #dde8f5; }
.industry-tab.is-active .industry-progress:after { transform: scaleX(1); }
.is-playing .industry-tab.is-active .industry-progress:after { animation: industry-progress 6s linear forwards; }
.is-held .industry-tab.is-active .industry-progress:after { animation-play-state: paused; }
@keyframes industry-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (min-width: 1101px) {
  .industry-tab { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px 16px 20px; }
}
@media (max-width: 1100px) {
  .industry-tabs { display: flex; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
  .industry-tabs::-webkit-scrollbar { display: none; }
  .industry-tab { flex: none; scroll-snap-align: center; }
}
@media (max-width: 760px) {
  .industry-head { flex-direction: column; align-items: flex-start; gap: 20px; }
  .industry-controls { width: 100%; }
  .industry-count { margin-right: auto; }
  .industry-prev, .industry-next { width: 40px; height: 40px; }
  .industry-carousel { margin-top: 28px; }
  .industry-stage { height: auto; display: grid; border-radius: 18px; }
  .industry-slide { position: relative; grid-area: 1 / 1; aspect-ratio: 3 / 2; inset: auto; }
  .industry-shade { grid-area: 1 / 1; inset: 0; background: linear-gradient(0deg, #071d36 0%, #071d36d9 24%, transparent 62%); }
  .industry-copy { position: relative; grid-area: 2 / 1; left: auto; bottom: auto; width: auto; margin-top: -20px; padding: 0 22px 26px; }
  .industry-copy h3 { margin-top: 14px; font-size: 25px; }
  .industry-copy p { font-size: 14px; }
  .industry-number { top: 16px; right: 18px; }
  .industry-number b { font-size: 24px; }
  .industry-tab { padding: 12px 12px 15px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .industry-slide, .industry-slide img, .industry-copy, .industry-copy > * { transition: none; }
}

/* Stage 07 link to the consumer experience */
.stage-cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; padding: 10px 16px; border-radius: 8px; background: var(--blue); color: #fff; font-size: 13px; font-weight: 650; transition: background .2s, transform .2s; }
.stage-cta[hidden] { display: none; }
.stage-cta:hover { background: #0053ca; transform: translateY(-2px); }
.phone-hint {
  position: absolute;
  left: 0;
  top: 0;
  padding: 5px 11px;
  border: 1px solid #ffffff40;
  border-radius: 20px;
  background: #0063ede6;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s;
}
.phone-hint.visible { opacity: 1; }
@media (max-width: 760px) {
  .stage-cta { margin-top: 14px; padding: 8px 13px; font-size: 12px; }
  .phone-hint { font-size: 10px; padding: 4px 9px; }
}

/* Section 04 link back to the platform */
.scan-to-platform { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 16px; margin-top: 24px; padding: 16px 18px; border: 1px solid #cfdcec; border-radius: 12px; background: #fff; transition: border-color .2s, transform .2s, box-shadow .2s; }
.scan-to-platform:hover { border-color: var(--blue); transform: translateY(-2px); box-shadow: 0 10px 22px -12px #0063ed55; }
.scan-to-platform span { grid-column: 1; font-size: 12px; color: var(--muted); }
.scan-to-platform strong { grid-column: 1; font-family: 'Manrope', Arial, sans-serif; font-size: 16px; letter-spacing: -.2px; color: var(--ink); }
.scan-to-platform b { grid-column: 2; grid-row: 1 / span 2; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--blue); color: #fff; }
.scan-to-platform b .ui-icon { width: 17px; height: 17px; }

/* Platform polish: facts, workflow steps, address bar, integration cards */
.platform-facts { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); margin: 48px 0 0; padding: 0; border-block: 1px solid #ffffff17; }
.platform-facts li { display: flex; align-items: center; gap: 18px; padding: 24px 28px; }
.platform-facts li + li { border-left: 1px solid #ffffff17; }
.platform-facts li:first-child { padding-left: 0; }
.platform-facts strong { font-family: 'Manrope', Arial, sans-serif; font-size: 34px; font-weight: 700; letter-spacing: -1px; line-height: 1; color: #6fb2ff; }
.platform-facts span { font-size: 13px; line-height: 1.5; color: #a9bdd4; }
.platform-tour { grid-template-columns: minmax(300px, .8fr) 1.9fr; margin-top: 56px; }
.platform-modules { position: relative; gap: 4px; }
.platform-modules:before { content: ''; position: absolute; left: 41px; top: 40px; bottom: 40px; width: 2px; background: linear-gradient(#0063ed80, #ffffff14); }
.platform-modules button { grid-template-columns: 44px 1fr; gap: 0 16px; }
.platform-modules .module-index { position: relative; z-index: 1; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid #2c4a6e; border-radius: 50%; background: #0b2a4d; color: #8fb2d8; transition: background .35s, border-color .35s, color .35s, box-shadow .35s; }
.platform-modules .module-index .icon { display: grid; place-items: center; }
.platform-modules .module-index svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.platform-modules button[aria-selected=true] .module-index { border-color: #5d9eff; background: var(--blue); color: #fff; box-shadow: 0 0 0 6px #0063ed26; }
.module-step { display: block; margin-bottom: 2px; font-size: 10px; font-weight: 650; letter-spacing: 1.6px; color: #5b82ad; }
.platform-modules button[aria-selected=true] .module-step { color: #6fb2ff; }
.window-top { align-items: center; }
.window-address { display: inline-flex; align-items: center; gap: 6px; padding: 5px 14px; border-radius: 7px; background: #fff; color: #5b6b80; font-size: 11px; letter-spacing: .2px; }
.window-address .ui-icon { width: 11px; height: 11px; }
@media (max-width: 1100px) {
  .platform-tour { grid-template-columns: 1fr; }
  .platform-modules:before { display: none; }
}
@media (max-width: 760px) {
  .platform-facts { grid-template-columns: 1fr; margin-top: 32px; }
  .platform-facts li, .platform-facts li:first-child { padding: 16px 0; }
  .platform-facts li + li { border-left: 0; border-top: 1px solid #ffffff17; }
  .platform-facts strong { min-width: 64px; font-size: 28px; }
  .window-address { padding: 3px 8px; font-size: 9px; }
  .platform-modules .module-index { width: 38px; height: 38px; }
}
@media (max-width: 760px) {
  .platform-tour .sample-label { display: none; }
}

/* Section 01: before / after comparison */
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.compare-card { display: flex; flex-direction: column; padding: 36px; border: 1px solid #e6ecf3; border-radius: 28px; }
.compare-card.is-today { background: #f7f9fc; }
.compare-card.is-itrace { border-color: #cfe0fb; background: linear-gradient(180deg, #f1f6ff, #fff 60%); box-shadow: 0 30px 60px -40px #0063ed59; }
.compare-tag { display: inline-flex; align-self: flex-start; align-items: center; gap: 8px; padding: 6px 14px 6px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; }
.compare-tag:before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: .8; }
.is-today .compare-tag { background: #fdeff1; color: #b5525f; }
.is-itrace .compare-tag { background: #e3eeff; color: var(--blue); }
.compare-card h3 { margin: 14px 0 0; font-family: 'Manrope', Arial, sans-serif; font-size: 26px; font-weight: 700; letter-spacing: -.6px; line-height: 1.25; color: var(--ink); }
.compare-points { display: grid; gap: 14px; list-style: none; margin: 26px 0 0; padding: 0; }
.compare-points li { display: flex; align-items: center; gap: 14px; }
.point-icon { display: grid; flex-shrink: 0; place-items: center; width: 32px; height: 32px; border-radius: 10px; }
.point-icon .ui-icon { width: 15px; height: 15px; stroke-width: 2.4; }
.is-today .point-icon { background: #fdeff1; color: #c25563; }
.is-itrace .point-icon { background: #e3f6ea; color: #1f9d55; }
.compare-points strong { display: block; font-family: 'Manrope', Arial, sans-serif; font-size: 16px; letter-spacing: -.3px; color: var(--ink); }
.compare-points p { margin-top: 2px; font-size: 14px; line-height: 1.55; }
.compare-visual { margin-top: auto; padding-top: 32px; }
.chain-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; list-style: none; margin: 0; padding: 28px 0 0; border-top: 1px solid #e6ecf3; }
.chain-row li { display: flex; flex-direction: column; align-items: center; text-align: center; }
.chain-row .icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; }
.chain-row .icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chain-row strong { margin-top: 8px; font-family: 'Manrope', Arial, sans-serif; font-size: 13px; letter-spacing: -.2px; line-height: 1.3; color: var(--ink); }
.chain-row small { margin-top: 2px; font-size: 11.5px; line-height: 1.35; color: #7d8ea2; }
.chain-row li:after { content: ''; width: 2px; height: 22px; margin-top: 10px; }
.is-today .chain-row .icon { border: 1px solid #e1e7ef; background: #fff; color: #8a97a7; }
.is-today .chain-row small { color: #b5525f; }
.is-today .chain-row li:after { height: 10px; background: repeating-linear-gradient(#d3dbe5 0 3px, transparent 3px 6px); }
.is-itrace .chain-row .icon { --tint: #e8f1ff; --tone: var(--blue); border: 3px solid #fff; background: var(--tint); color: var(--tone); box-shadow: 0 10px 22px -14px #071d3659; }
.is-itrace .chain-row .icon[data-icon=leaf] { --tint: #e3f6ea; --tone: #1f9d55; }
.is-itrace .chain-row .icon[data-icon=box] { --tint: #fff2dc; --tone: #c77a0a; }
.is-itrace .chain-row .icon[data-icon=truck] { --tint: #efe9ff; --tone: #6d4fd8; }
.is-itrace .chain-row .icon[data-icon=scan] { --tint: #def5f5; --tone: #0f8a8a; }
.is-itrace .chain-row li:after { background: linear-gradient(var(--blue) 50%, #b9d4fb 50%) 0 0 / 2px 6px; animation: record-flow .8s linear infinite; }
@keyframes record-flow { to { background-position: 0 6px; } }
.record-bar { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 8px 16px; border-radius: 16px; font-size: 14px; font-weight: 600; text-align: center; }
.is-today .record-bar { margin-top: 12px; border: 2px dashed #d3dbe5; color: #8391a1; }
.is-itrace .record-bar { background: var(--blue); color: #fff; box-shadow: 0 14px 28px -16px #0063ed; }
.record-logo { display: grid; place-items: center; width: 40px; height: 32px; border-radius: 9px; background: #fff; }
.record-logo img { width: 30px; height: auto; }
@media (max-width: 1100px) {
  .compare { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .compare { gap: 16px; }
  .compare-card { padding: 24px 18px; border-radius: 22px; }
  .compare-card h3 { font-size: 21px; }
  .compare-points { gap: 14px; margin-top: 20px; }
  .compare-points li { gap: 12px; }
  .compare-points strong { font-size: 15px; }
  .compare-points p { font-size: 13px; }
  .compare-visual { padding-top: 22px; }
  .chain-row { gap: 4px; padding-top: 20px; }
  .chain-row .icon { width: 38px; height: 38px; border-radius: 12px; }
  .chain-row .icon svg { width: 17px; height: 17px; }
  .chain-row strong, .chain-row small { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .chain-row li:after { height: 16px; margin-top: 8px; }
  .is-today .chain-row li:after { height: 8px; }
  .record-bar { font-size: 13px; }
}
/* Section 01: spacing, entrance and idle animations */
.compare { position: relative; gap: 40px; margin-top: 80px; }
.compare.reveal { transform: none; transition: opacity .4s; }
.compare-card { --d: 0s; position: relative; transition: transform .35s cubic-bezier(.22, .68, 0, 1), box-shadow .35s; }
.compare-card.is-itrace { --d: .25s; }
.compare-card:hover { transform: translateY(-6px); box-shadow: 0 34px 60px -38px #071d3659; }
.compare-card.is-itrace:hover { box-shadow: 0 40px 70px -36px #0063ed80; }
.compare:after { content: '→'; position: absolute; left: 50%; top: 50%; z-index: 2; display: grid; place-items: center; width: 52px; height: 52px; margin: -26px 0 0 -26px; border: 1px solid #cfe0fb; border-radius: 50%; background: #fff; font-size: 22px; font-weight: 700; color: var(--blue); box-shadow: 0 12px 26px -12px #0063ed80; }
.compare.visible:after { animation: pop-in .5s .55s cubic-bezier(.34, 1.56, .64, 1) backwards, nudge 2.4s 1.8s ease-in-out infinite; }
.compare.visible .compare-card { animation: card-in .8s var(--d) cubic-bezier(.22, .68, 0, 1) backwards; }
.compare.visible .compare-tag { animation: pop-in .5s calc(var(--d) + .3s) cubic-bezier(.34, 1.56, .64, 1) backwards; }
.compare.visible .compare-card h3 { animation: rise-in .6s calc(var(--d) + .35s) cubic-bezier(.22, .68, 0, 1) backwards; }
.compare.visible .compare-points li { animation: slide-in .55s calc(var(--d) + var(--i) * .1s + .45s) cubic-bezier(.22, .68, 0, 1) backwards; }
.compare.visible .compare-points .point-icon { animation: pop-in .45s calc(var(--d) + var(--i) * .1s + .6s) cubic-bezier(.34, 1.56, .64, 1) backwards; }
.compare-points li:nth-child(1), .chain-row li:nth-child(1) { --i: 0; }
.compare-points li:nth-child(2), .chain-row li:nth-child(2) { --i: 1; }
.compare-points li:nth-child(3), .chain-row li:nth-child(3) { --i: 2; }
.chain-row li:nth-child(4) { --i: 3; }
.chain-row li:nth-child(5) { --i: 4; }
.compare.visible .chain-row li { animation: rise-in .5s calc(var(--d) + var(--i) * .08s + .8s) cubic-bezier(.22, .68, 0, 1) backwards; }
.compare.visible .chain-row .icon { animation: pop-in .5s calc(var(--d) + var(--i) * .08s + .85s) cubic-bezier(.34, 1.56, .64, 1) backwards; }
.chain-row .icon { transition: transform .3s cubic-bezier(.34, 1.56, .64, 1); }
.chain-row li:hover .icon { transform: translateY(-4px) rotate(-6deg); }
.chain-row li:after { transform-origin: top; }
.compare.visible .is-today .chain-row li:after { animation: fade-in .4s calc(var(--d) + var(--i) * .08s + 1.1s) backwards; }
.compare.visible .is-itrace .chain-row li:after { animation: link-draw .45s calc(var(--d) + var(--i) * .08s + 1.15s) cubic-bezier(.22, .68, 0, 1) backwards, record-flow .8s linear infinite; }
.compare.visible .is-today .record-bar { animation: fade-in .6s 1.4s backwards; }
.is-itrace .record-bar { position: relative; overflow: hidden; }
.is-itrace .record-bar:after { content: ''; position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; background: linear-gradient(100deg, transparent, #ffffff59, transparent); transform: skewX(-20deg); }
.compare.visible .is-itrace .record-bar { animation: bar-in .7s 1.65s cubic-bezier(.22, .68, 0, 1) backwards, bar-glow 3s 2.4s ease-in-out infinite; }
.compare.visible .is-itrace .record-bar:after { animation: shine 4s 2.4s ease-in-out infinite; }
.compare.visible .record-logo { animation: pop-in .5s 2s cubic-bezier(.34, 1.56, .64, 1) backwards; }
@keyframes card-in { from { opacity: 0; transform: translateY(44px) scale(.97); } }
@keyframes rise-in { from { opacity: 0; transform: translateY(14px); } }
@keyframes slide-in { from { opacity: 0; transform: translateX(-16px); } }
@keyframes pop-in { from { opacity: 0; transform: scale(.4); } }
@keyframes fade-in { from { opacity: 0; } }
@keyframes link-draw { from { transform: scaleY(0); } }
@keyframes bar-in { from { opacity: 0; transform: scaleX(.3); } }
@keyframes bar-glow { 50% { box-shadow: 0 16px 34px -12px #0063edcc, 0 0 0 6px #0063ed1f; } }
@keyframes shine { 0% { left: -40%; } 45%, 100% { left: 130%; } }
@keyframes nudge { 50% { transform: translateX(5px); } }
@media (max-width: 1100px) {
  .compare { gap: 20px; }
  .compare:after { display: none; }
}
@media (max-width: 760px) {
  .compare { gap: 16px; margin-top: 48px; }
  .compare-card:hover { transform: none; }
}
/* Trust strip under the hero */
.trust-strip { border-bottom: 1px solid var(--line); background: #fff; }
.trust-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 24px 48px; padding-block: 26px; }
.trust-award { display: flex; align-items: center; gap: 14px; padding-right: 48px; border-right: 1px solid var(--line); }
.trust-award img { width: auto; height: 56px; }
.trust-award strong { display: block; font-family: 'Manrope', Arial, sans-serif; font-size: 15px; letter-spacing: -.2px; color: var(--ink); }
.trust-award span { display: block; font-size: 13px; line-height: 1.4; color: var(--blue); font-weight: 600; }
.trust-group { display: flex; align-items: center; gap: 16px; }
.trust-group > span { font-size: 12px; line-height: 1.3; color: var(--muted); max-width: 80px; }
.trust-group ul { display: flex; align-items: center; gap: 22px; list-style: none; margin: 0; padding: 0; }
.trust-group img { display: block; width: auto; height: 44px; max-width: 96px; object-fit: contain; }
.trust-link { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-size: 13px; font-weight: 600; color: var(--blue); }
.trust-link .ui-icon { width: 14px; height: 14px; }
@media (max-width: 1100px) {
  .trust-award { padding-right: 0; border-right: 0; flex-basis: 100%; }
}
@media (max-width: 760px) {
  .trust-inner { gap: 18px 24px; padding-block: 22px; }
  .trust-award img { height: 48px; }
  .trust-group { gap: 12px; }
  .trust-group ul { gap: 16px; }
  .trust-group img { height: 36px; max-width: 80px; }
  .trust-link { margin-left: 0; flex-basis: 100%; }
}

/* Language switch */
.lang-toggle { flex: none; border: 1px solid #c9d7e8; border-radius: 7px; background: transparent; color: var(--blue); padding: 10px 14px; font-size: 13px; font-weight: 650; line-height: 1; transition: background .2s, border-color .2s; }
.lang-toggle:hover { border-color: var(--blue); background: #f0f6ff; }
@media (max-width: 760px) {
  .header, .header.scrolled { gap: 10px; }
  .lang-toggle { padding: 9px 11px; font-size: 12px; }
}
@media (max-width: 360px) {
  .header .logo small { display: none; }
  .header > .button { padding-inline: 11px; }
}

/* Simplified Chinese typography */
html:lang(zh) body, html:lang(zh) body * { font-family: 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans SC', 'Noto Sans CJK SC', sans-serif; }
html:lang(zh) h1, html:lang(zh) h2, html:lang(zh) h3, html:lang(zh) .large-copy, html:lang(zh) strong { letter-spacing: 0; line-height: 1.3; }
html:lang(zh) .hero h1, html:lang(zh) .hero:has(.hero-3d.ready) h1 { font-size: clamp(2.5rem, 6vw, 6rem); line-height: 1.3; }
html:lang(zh) .eyebrow, html:lang(zh) .section-label, html:lang(zh) .logo small { letter-spacing: .08em; }
html:lang(zh) .hero p br, html:lang(zh) .cta-section p br, html:lang(zh) .faq-layout p br, html:lang(zh) .large-copy br { display: none; }
html:lang(zh) p { line-height: 1.85; }

/* Header actions: one height, font size and radius for Log in, Let's talk and the language switch */
.header nav a.nav-login, .header > .button, .lang-toggle { box-sizing: border-box; height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 18px; border-radius: 8px; font-size: 13px; font-weight: 650; line-height: 1; white-space: nowrap; }
.header > .button { border: 1px solid var(--blue); }
.lang-toggle { min-width: 56px; padding: 0 14px; }
.header > .button:hover { transform: none; box-shadow: 0 6px 18px #0063ed25; }
@media (min-width: 761px) {
  .header { gap: 12px; }
  .header nav a.nav-login { margin-left: 6px; }
}
@media (max-width: 760px) {
  .header > .button, .lang-toggle { height: 36px; font-size: 12px; }
  .header > .button { padding: 0 14px; }
  .lang-toggle { min-width: 48px; padding: 0 10px; }
}
@media (max-width: 360px) {
  .header > .button { padding: 0 11px; }
}

/* Journey progress steps: larger dots, line and labels */
.journey-track { border-top-width: 3px; }
.track-fill { top: -3px; height: 3px; }
.journey-track button { padding-top: 30px; font-size: 16px; font-weight: 600; min-width: 70px; }
.journey-track button small { font-size: 12px; font-weight: 700; letter-spacing: 1px; margin-bottom: 6px; }
.journey-track button:before { top: -10.5px; width: 18px; height: 18px; border-width: 3px; }
.journey-track button.active:before { box-shadow: 0 0 0 6px #529aff33, 0 0 18px #529aff88; }
.journey-track button:hover { color: #b8d6ff; }
@media (min-width: 761px) {
  .scene-caption { display: none; }
}
/* Phones: numbers on every step, the name only under the active one, so labels never collide. */
@media (max-width: 760px) {
  .journey-track { align-items: flex-start; }
  .journey-track button { padding-top: 20px; font-size: 0; min-width: 0; white-space: nowrap; }
  .journey-track button small { font-size: 11px; margin-bottom: 3px; }
  .journey-track button.current { font-size: 11px; }
  .journey-track button:last-child { text-align: right; }
  .journey-track button:last-child:before { left: auto; right: 0; }
  .journey-track button:before { top: -8.5px; width: 14px; height: 14px; border-width: 2px; }
}
@media (max-width: 760px) and (max-height: 740px) {
  .journey-track button { padding-top: 16px; }
}

/* Consumer experience: a more lifelike stand-up pouch and phone */
.scan-pack:after { content: ''; position: absolute; left: 8%; right: 8%; bottom: -1.6em; height: 1.4em; border-radius: 50%; background: radial-gradient(closest-side, #0a1f3a40, transparent); filter: blur(2px); z-index: -1; }
.pack-body {
  padding-top: 2.6em;
  border-radius: .7em .7em 1.6em 1.6em / .7em .7em 1em 1em;
  background:
    radial-gradient(120% 50% at 50% 104%, #00000040, transparent 60%),
    linear-gradient(90deg, #00000030, transparent 12%, transparent 88%, #00000038),
    linear-gradient(160deg, #ef5a6d 0%, #c81d3a 52%, #8f0f2a 100%);
  box-shadow: 0 1.8em 3em #7d10283a, inset 0 0 0 .3em #f6c75c, inset 0 -.9em 1.2em -.6em #5a0a1c;
}
.pack-seal {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1.3em;
  border-radius: .7em .7em 0 0;
  background: repeating-linear-gradient(90deg, #f8d27a 0 .18em, #d9a640 .18em .36em);
  box-shadow: inset 0 -.12em 0 #b07f22;
}
.pack-seal:before { content: ''; position: absolute; left: 50%; top: .35em; width: 1.6em; height: .5em; margin-left: -.8em; border-radius: 1em; background: #dfe8f2; box-shadow: inset 0 .08em .15em #0003; }
.pack-seal:after { content: ''; position: absolute; right: -.01em; top: .45em; border: .28em solid transparent; border-right-color: #dfe8f2; }
.pack-fruit { position: absolute; right: .3em; top: 1.2em; width: 4.4em; height: 4.4em; transform: scale(.72); transform-origin: top right; }
.scan-pack .pack-body { height: 16.8em; }
.scan-pack .pack-body strong { font-size: 1.75em; }
.scan-pack .pack-qr { width: 4.5em; bottom: 2.4em; }
.scan-pack .pack-flavour { display: block; max-width: 12.5em; }
.pack-fruit i { position: absolute; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #ffd9df 0 8%, #f25c74 30%, #b0122f 75%), #c81d3a; box-shadow: 0 .25em .5em #5a0a1c66; }
.pack-fruit i:after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(circle, #ffffff30 .08em, transparent .1em) 0 0 / .42em .42em; }
.pack-fruit i:nth-child(1) { left: .4em; top: .9em; width: 2.7em; height: 2.7em; }
.pack-fruit i:nth-child(2) { left: 2.3em; top: 1.9em; width: 2em; height: 2em; }
.pack-fruit i:nth-child(3) { left: .1em; top: 2.9em; width: 1.6em; height: 1.4em; border-radius: 50% 50% 45% 45%; background: radial-gradient(circle at 50% 40%, #fffaf2, #f1e6cf 60%, #d9c7a3); }
.pack-fruit b { position: absolute; width: 1.7em; height: .75em; border-radius: 0 100% 0 100%; background: linear-gradient(135deg, #8fd16a, #3f8f2c); }
.pack-fruit b:nth-of-type(1) { left: 2.2em; top: .2em; transform: rotate(-18deg); }
.pack-fruit b:nth-of-type(2) { left: 3.2em; top: .9em; width: 1.3em; transform: rotate(32deg); }
.pack-body strong { text-shadow: 0 .08em .2em #5a0a1c55; }
.pack-weight { position: static; display: inline-block; margin-top: .7em; padding: .3em .7em; border-radius: 1em; background: #ffffff26; border: 1px solid #ffffff40; font-size: .55em; font-weight: 700; letter-spacing: .04em; opacity: 1; }
.scan-pack .pack-qr { box-shadow: 0 .3em .8em #5a0a1c55; }
/* Phone: metal frame, side buttons, home indicator, glass sheen and a floor shadow */
.scan-phone {
  background: linear-gradient(135deg, #3a4a5c, #0d1a29 30%, #0d1a29 70%, #3a4a5c);
  box-shadow: 0 2.5em 4em #071d3640, inset 0 0 0 .12em #5d7088, inset 0 0 0 .22em #0d1a29;
}
.scan-phone:after { content: ''; position: absolute; left: 10%; right: 10%; bottom: -1.8em; height: 1.4em; border-radius: 50%; background: radial-gradient(closest-side, #0a1f3a38, transparent); filter: blur(3px); z-index: -1; }
.phone-buttons, .phone-buttons:before, .phone-buttons:after { position: absolute; width: .22em; border-radius: .2em; background: linear-gradient(90deg, #5d7088, #26364a); }
.phone-buttons { right: -.18em; top: 6.2em; height: 3.4em; }
.phone-buttons:before, .phone-buttons:after { content: ''; left: -16.5em; }
.phone-buttons:before { top: -1.2em; height: 1.6em; }
.phone-buttons:after { top: 1.2em; height: 2.6em; }
.phone-home { position: absolute; left: 50%; bottom: .5em; z-index: 6; width: 5.5em; height: .28em; margin-left: -2.75em; border-radius: 1em; background: #10253d; opacity: .75; }
.phone-sheen { position: absolute; inset: 0; z-index: 7; border-radius: inherit; background: linear-gradient(115deg, #ffffff24 0%, transparent 28%, transparent 62%, #ffffff12 74%, transparent 82%); pointer-events: none; }
@media (max-width: 760px) {
  .pack-body { padding-top: 2.1em; }
  .pack-seal { height: 1.1em; }
  .pack-fruit { top: 1em; right: .2em; transform: scale(.6); }
  .scan-pack .pack-body { height: 15.4em; }
  .scan-pack .pack-body strong { font-size: 1.45em; }
  .scan-pack .pack-qr { width: 3.8em; bottom: 2.1em; }
  .scan-pack .pack-flavour { max-width: 11em; }
  .pack-weight { margin-top: .5em; }
}

/* A restrained route line complements the architectural scale models. */
.journey-track { border-top-width: 1px; }
.journey-track .track-fill { height: 1px; }
.journey-track button:before { width: 12px; height: 12px; top: -7px; border-width: 1px; }
.journey-track button.active:before { box-shadow: none; background: #6d9ec6; border-color: #6d9ec6; }
.journey-track button.current:before { background: #91c3ed; outline: 3px solid #91c3ed20; outline-offset: 3px; }

/* Product showcase */
.showcase-section { background: #f5f8fb; }
.showcase-section .section-label { display: flex; justify-content: space-between; gap: 20px; }
.showcase-head { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 7%; align-items: end; margin: 30px 0 42px; }
.showcase-head h2 { max-width: 760px; }
.showcase-head h2 em { color: var(--blue); }
.showcase-lede { max-width: 620px; margin-top: 24px; font-size: 18px; color: var(--ink); }
.showcase-intro { max-width: 390px; padding-bottom: 5px; font-size: 15px; line-height: 1.8; }
.product-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 22px; }
.product-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.product-filters button { border: 1px solid #c9d7e7; border-radius: 999px; background: #fff; color: #33506b; padding: 9px 17px; font-size: 12px; font-weight: 650; transition: background .2s, color .2s, border-color .2s; }
.product-filters button:hover, .product-filters button.is-active { color: #fff; background: #0a3768; border-color: #0a3768; }
.product-filters button:focus-visible, .product-open:focus-visible, .product-copy-link:focus-visible { outline: 3px solid #5d9eff; outline-offset: 3px; }
.product-count { color: #6b7f94; font-size: 12px; white-space: nowrap; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.product-card { min-width: 0; overflow: hidden; border: 1px solid #e0e9f1; border-radius: 11px; background: #fff; box-shadow: 0 12px 30px #0c355c0b; }
.product-card-image { aspect-ratio: 1 / 1; overflow: hidden; background: #e9ecee; }
.product-card-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s; }
.product-card:hover img { transform: scale(1.045); }
.product-card-info { min-height: 180px; display: flex; flex-direction: column; align-items: flex-start; padding: 19px 20px 20px; }
.product-card-category { color: #0063ed; font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.product-card h3 { margin: 9px 0 4px; font-size: 18px; line-height: 1.35; letter-spacing: -.025em; }
.product-card p { font-size: 12px; }
.product-open { margin-top: auto; padding: 13px 0 0; background: none; border: 0; color: #005fcf; font-size: 12px; font-weight: 700; }
.product-open:hover, .product-copy-link:hover { text-decoration: underline; }
.showcase-note { margin-top: 18px; max-width: 880px; font-size: 11px; color: #738397; }
#product-dialog { width: min(980px, calc(100% - 30px)); max-height: min(88vh, 850px); padding: 0; border: 0; border-radius: 14px; box-shadow: 0 30px 100px #001b3866; color: var(--ink); }
#product-dialog::backdrop { background: #051b35c9; backdrop-filter: blur(5px); }
.product-dialog-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); min-height: 480px; }
.product-dialog-image { background: #eceae5; }
.product-dialog-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.product-dialog-copy { padding: 50px 42px 36px; overflow-y: auto; }
.product-dialog-copy h2 { margin: 14px 0 12px; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.product-dialog-copy > p { font-size: 14px; }
.product-dialog-copy dl { margin: 25px 0; border-block: 1px solid #e4ebf1; }
.product-dialog-copy dl div { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 13px 0; border-bottom: 1px solid #e4ebf1; font-size: 12px; }
.product-dialog-copy dl div:last-child { border: 0; }
.product-dialog-copy dt { color: #6f8091; }
.product-dialog-copy dd { margin: 0; font-weight: 600; }
.product-dialog-identity { display: flex; align-items: flex-start; gap: 18px; padding: 16px; background: #eff5fb; border-radius: 10px; }
.product-dialog-identity img { width: 112px; height: 112px; flex: none; }
.product-dialog-identity strong { font-size: 14px; }
.product-dialog-identity p { margin: 5px 0 7px; font-size: 11px; line-height: 1.55; }
.product-copy-link { padding: 0; border: 0; background: none; color: #0063ed; font-size: 12px; font-weight: 700; }
.product-copy-status { display: block; overflow-wrap: anywhere; margin-top: 4px; font-size: 10px; }
.close-product { position: absolute; top: 14px; right: 14px; z-index: 1; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #e0e8ef; border-radius: 50%; background: #fff; color: #173450; }
.close-product .ui-icon { width: 18px; height: 18px; }

/* Halal Twin Parks */
@media (max-width: 1250px) and (min-width: 761px) { .header { gap: 15px; padding-inline: 2%; } .header nav { gap: 15px; font-size: 12px; } .header nav a.nav-login, .header > .button, .lang-toggle { padding-inline: 11px; font-size: 12px; } }
@media (max-width: 1050px) and (min-width: 761px) { .header nav { gap: 10px; font-size: 11px; } .header { gap: 9px; } }
@media (max-width: 1000px) { .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .showcase-head { gap: 35px; } }
@media (max-width: 760px) {
  .showcase-section .section-label { flex-wrap: wrap; }
  .showcase-head { display: block; margin-block: 27px 30px; }
  .showcase-head h2 { font-size: clamp(2.2rem, 9vw, 3rem); }
  .showcase-lede { font-size: 16px; }
  .showcase-intro { max-width: 100%; margin-top: 20px; }
  .product-toolbar { display: block; }
  .product-filters { gap: 7px; }
  .product-filters button { padding: 8px 12px; font-size: 11px; }
  .product-count { display: block; margin-top: 12px; }
  .product-grid { gap: 12px; }
  .product-card-info { padding: 14px; min-height: 166px; }
  .product-card h3 { font-size: 15px; }
  .product-card-category { font-size: 9px; }
  .product-card p, .product-open { font-size: 10px; }
  #product-dialog { max-height: 90vh; }
  .product-dialog-layout { display: block; }
  .product-dialog-image { height: 260px; }
  .product-dialog-copy { padding: 26px 22px; }
  .product-dialog-copy dl div { grid-template-columns: 95px 1fr; gap: 10px; }
}
@media (max-width: 380px) {
  .product-grid { gap: 10px; }
  .product-card-info { min-height: 0; padding: 12px; }
  .product-card h3 { font-size: 14px; }
  .product-dialog-identity { gap: 10px; }
  .product-dialog-identity img { width: 84px; height: 84px; }
}

#product-dialog { max-width: 980px; }
@media (min-width: 761px) and (max-width: 950px) {
  .header, .header.scrolled { height: 76px; padding: 0 20px; gap: 18px; }
  .header > .button { margin-left: auto; }
  .menu-toggle { display: flex; flex-direction: column; gap: 5px; width: 25px; border: 0; padding: 0; background: none; }
  .menu-toggle span { height: 1px; width: 24px; background: var(--ink); }
  .header nav { display: none; position: absolute; top: 76px; left: 0; right: 0; margin: 0; padding: 24px; background: #fff; box-shadow: 0 10px 20px #071d361c; font-size: 15px; }
  .header nav.open { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
}
@media (max-width: 760px) { #product-dialog { max-width: calc(100% - 20px); } }

@media (min-width: 761px) and (max-width: 900px) {
  .showcase-head { display: block; }
  .showcase-intro { margin-top: 24px; max-width: 640px; }
}

.showcase-invite { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 36px; padding: 24px 28px; border: 1px solid #d4e3f1; border-radius: 10px; background: #fff; }
.showcase-invite strong { color: #183652; font-size: 18px; }
.showcase-invite p { max-width: 700px; margin-top: 4px; font-size: 13px; }
.showcase-invite .button { flex: none; }
@media (max-width: 760px) { .showcase-invite { display: block; padding: 22px; } .showcase-invite .button { margin-top: 18px; } }

/* Condensed page: benefits inside the challenge, showcase inside the platform, Twin Parks card under industries */
.benefit-block { margin-top: 88px; padding-top: 56px; border-top: 1px solid var(--line); }
.benefit-title { font-size: 34px; letter-spacing: -1px; line-height: 1.15; }
.benefit-title em { color: var(--blue); }
.benefit-block .benefit-grid { margin-top: 36px; }
.showcase-panel { margin-top: 80px; padding: 48px; border-radius: 28px; background: #f5f8fb; color: var(--muted); }
.platform-section .showcase-panel .section-label { color: #5b7088; }
.showcase-panel .showcase-head { margin: 24px 0 32px; }
.showcase-panel .showcase-head h3 { font-size: clamp(2rem, 3.4vw, 3rem); letter-spacing: -1.2px; line-height: 1.1; color: var(--ink); }
.showcase-panel .showcase-head h3 em { color: var(--blue); }
.showcase-panel .showcase-lede { margin-top: 0; }
.showcase-panel .showcase-invite { background: #fff; }
.showcase-panel .product-card h3, .showcase-panel .showcase-invite strong { color: var(--ink); }
.twin-card { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 48px; padding: 32px 36px; border: 1px solid #d9e5f0; border-radius: 20px; background: #fff; }
.twin-card h3 { margin-top: 12px; font-size: 26px; letter-spacing: -.6px; }
.twin-card h3 em { color: var(--blue); }
.twin-card p { max-width: 720px; margin-top: 10px; font-size: 15px; }
.twin-card .twin-card-note { font-size: 11px; line-height: 1.65; color: #738397; }
.twin-card a { color: #005fcf; text-decoration: underline; text-underline-offset: 3px; }
.twin-card .button { flex: none; }
@media (max-width: 760px) {
  .benefit-block { margin-top: 56px; padding-top: 40px; }
  .benefit-title { font-size: 28px; }
  .benefit-block .benefit-grid { margin-top: 28px; }
  .showcase-panel { margin-top: 56px; padding: 28px 18px; border-radius: 20px; }
  .showcase-panel .showcase-lede { margin-top: 16px; }
  .twin-card { display: block; margin-top: 32px; padding: 24px 20px; }
  .twin-card h3 { font-size: 22px; }
  .twin-card .button { margin-top: 20px; }
}
