@font-face{
    font-family:Space;
    src:url('/fonts/space-grotesk-500.ttf') format('truetype');
    font-style:normal;
    font-weight:500;
    font-display:swap
}
@font-face{
    font-family:Manrope;
    src:url('/fonts/manrope-400.ttf') format('truetype');
    font-style:normal;
    font-weight:400;
    font-display:swap
}
@font-face{
    font-family:Manrope;
    src:url('/fonts/manrope-600.ttf') format('truetype');
    font-style:normal;
    font-weight:600;
    font-display:swap
}
:root{
    --lime:#cccc0c;
    --dark:#222222;
    --paper:#f3f2eb;
    --muted:#aaa99f;
    --line:rgba(255,255,255,.15);
    --font:Manrope,Arial,sans-serif;
    --display:Space,Arial,sans-serif
}
*,*::before,*::after{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth;
    scroll-padding-top:105px
}
body{
    margin:0;
    background:var(--dark);
    color:var(--paper);
    font-family:var(--font);
    font-size:15px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased
}
::selection{
    background:var(--lime);
    color:var(--dark)
}
a{
    color:inherit;
    text-decoration:none
}
button{
    font:inherit
}
button,a,summary{
    -webkit-tap-highlight-color:transparent
}
button{
    cursor:pointer
}
a:focus-visible,button:focus-visible,summary:focus-visible{
    outline:2px solid var(--lime);
    outline-offset:6px
}
.section-light :focus-visible,.contact-section :focus-visible{
    outline-color:var(--dark)
}
h1,h2,h3,p{
    margin:0
}
h1,h2,h3{
    font-family:var(--display);
    font-weight:500;
    line-height:1.1
}
h2{
    font-size:clamp(38px,4vw,60px);
    letter-spacing:-2.6px
}
h3{
    letter-spacing:-.6px
}
em{
    font-style:normal
}
svg{
    display:block
}
button{
    color:inherit
}
.wrap{
    width:calc(100% - 112px);
    max-width:1328px;
    margin-inline:auto
}
.mono,.eyebrow{
    font-family:'Courier New',monospace;
    font-size:10px;
    font-weight:400;
    letter-spacing:1.1px;
    line-height:1.5
}
.eyebrow{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:27px;
    font-size:11px;
    letter-spacing:1.8px
}
.section-index{
    opacity:.5
}
.muted{
    color:#8b8b81
}
.section-space{
    padding-block:115px
}
.status-dot{
    display:inline-block;
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--lime);
    box-shadow:0 0 12px #cccc0c44;
    animation:status-pulse 3s ease-in-out infinite
}
.small-cross{
    font-size:22px;
    font-weight:400;
    color:var(--lime);
    font-family:var(--display)
}
.sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.skip-link{
    position:fixed;
    top:-100px;
    left:20px;
    z-index:100;
    background:var(--lime);
    color:var(--dark);
    padding:12px 20px
}
.skip-link:focus{
    top:20px
}
.scroll-progress{
    position:fixed;
    inset:0 0 auto;
    height:2px;
    background:var(--lime);
    transform-origin:left;
    transform:scaleX(0);
    z-index:100;
    pointer-events:none
}
/* A quiet frame for a living signal. */
.site-header{
    position:sticky;
    top:0;
    z-index:50;
    background:#222222f5;
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line)
}
.header-inner{
    height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px
}
.wordmark{
    font-family:var(--display);
    font-size:37px;
    letter-spacing:-2.7px;
    line-height:1
}
.brand-dot{
    color:var(--lime);
    margin-left:1px
}
.desktop-nav{
    display:flex;
    gap:38px;
    margin-left:100px
}
.desktop-nav a{
    font-size:12px;
    color:#d4d3cb;
    position:relative;
    transition:color .2s
}
.desktop-nav a::after{
    content:'';
    position:absolute;
    bottom:-8px;
    left:0;
    width:100%;
    height:1px;
    background:var(--lime);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .3s
}
.desktop-nav a:hover,.desktop-nav a.active{
    color:var(--lime)
}
.desktop-nav a:hover::after,.desktop-nav a.active::after{
    transform:scaleX(1)
}
.header-actions{
    display:flex;
    align-items:center;
    gap:27px
}
.language-link{
    font-family:'Courier New',monospace;
    font-size:11px;
    color:var(--muted);
    padding:8px
}
.header-cta{
    display:flex;
    align-items:center;
    gap:26px;
    border:1px solid #62625a;
    padding:11px 19px;
    font-size:12px;
    transition:background .25s,color .25s,border-color .25s
}
.header-cta:hover{
    background:var(--lime);
    border-color:var(--lime);
    color:var(--dark)
}
.header-cta span{
    font-size:19px;
    line-height:1
}
.menu-toggle{
    display:none;
    background:none;
    border:0;
    padding:10px;
    width:42px;
    height:42px
}
.menu-toggle span{
    display:block;
    background:var(--paper);
    height:1px;
    margin:7px 0;
    transition:transform .3s
}
.menu-toggle[aria-expanded=true] span:first-child{
    transform:translateY(4px) rotate(45deg)
}
.menu-toggle[aria-expanded=true] span:last-child{
    transform:translateY(-4px) rotate(-45deg)
}
.mobile-nav[hidden]{
    display:none
}
.mobile-nav{
    padding:10px 28px 28px
}
.mobile-nav a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-family:var(--display);
    font-size:25px;
    padding:15px 0;
    border-bottom:1px solid var(--line)
}
.mobile-nav a span{
    color:var(--lime);
    font-family:'Courier New',monospace;
    font-size:12px
}
.hero{
    position:relative;
    overflow:hidden;
    background:radial-gradient(ellipse at 85% 35%,#30312744,transparent 50%),var(--dark)
}
.hero-grid{
    min-height:635px;
    display:grid;
    grid-template-columns:1.14fr 1fr;
    gap:0;
    align-items:center
}
.hero-copy{
    position:relative;
    z-index:2;
    padding:57px 0 40px
}
.hero h1{
    font-size:clamp(68px,6.65vw,108px);
    letter-spacing:-5.8px;
    line-height:1.035;
    white-space:nowrap
}
.hero h1 em{
    color:var(--lime)
}
.hero-description{
    max-width:380px;
    color:#b9b9af;
    font-size:14px;
    line-height:1.9;
    margin-top:30px
}
.hero-buttons{
    display:flex;
    align-items:center;
    gap:27px;
    margin-top:31px
}
.button{
    display:inline-flex;
    justify-content:space-between;
    gap:30px;
    align-items:center;
    min-height:51px;
    padding:14px 22px;
    font-size:12px;
    font-weight:600;
    transition:transform .25s,background .25s
}
.button span{
    font-size:22px;
    line-height:1;
    transition:transform .3s
}
.button:hover span{
    transform:translate(3px,-3px)
}
.button-lime{
    background:var(--lime);
    color:var(--dark)
}
.button-lime:hover{
    background:#dfdf3a;
    transform:translateY(-2px)
}
.text-link{
    display:inline-flex;
    align-items:center;
    gap:21px;
    font-size:12px;
    border-bottom:1px solid #ffffff35;
    padding-block:7px;
    transition:border-color .2s
}
.text-link:hover{
    border-color:var(--lime)
}
.text-link span{
    font-size:16px
}
.hero-baseline{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    padding:25px 0 29px;
    border-top:1px solid var(--line);
    color:#8d8d85
}
.scroll-cue{
    font-size:10px;
    display:flex;
    gap:24px;
    align-items:center
}
.scroll-cue span{
    color:var(--lime);
    font-size:17px;
    animation:scroll-nudge 2s ease-in-out infinite
}
.pulse-stage{
    position:relative;
    width:100%;
    height:555px;
    margin-left:12px;
    isolation:isolate
}
#pulse-canvas,.pulse-fallback{
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    pointer-events:none
}
.pulse-stage.canvas-ready .pulse-fallback{
    opacity:0
}
.node-label{
    position:absolute;
    color:#b4b497;
    font-size:8px;
    letter-spacing:1.4px;
    display:flex;
    align-items:center;
    gap:9px
}
.node-label i{
    width:4px;
    height:4px;
    background:var(--lime);
    border-radius:50%
}
.label-data{
    top:125px;
    left:15%
}
.label-devices{
    top:220px;
    right:0
}
.label-systems{
    bottom:128px;
    left:10%
}
.hero-enter{
    animation:enter .9s cubic-bezier(.16,1,.3,1) both
}
.hero-enter:nth-child(2){
    animation-delay:.08s
}
.hero-enter:nth-child(3){
    animation-delay:.16s
}
.ticker{
    overflow:hidden;
    background:var(--lime);
    color:var(--dark);
    padding-block:17px
}
.ticker-track{
    display:flex;
    width:max-content;
    align-items:center;
    animation:ticker var(--ticker-duration,45s) linear infinite
}
.ticker-group{
    display:flex;
    flex-shrink:0
}
.ticker-sequence{
    display:flex;
    align-items:center;
    flex-shrink:0;
    gap:38px;
    padding-right:38px
}
.ticker-track span{
    font-family:var(--display);
    font-size:14px;
    letter-spacing:1px;
    white-space:nowrap
}
.ticker-track b{
    font-size:23px;
    line-height:1;
    font-weight:400
}
.ticker:hover .ticker-track{
    animation-play-state:paused
}
/* Five platforms, a shared visual language. */
.section-light{
    background:var(--paper);
    color:var(--dark)
}
.ecosystem{
    padding:108px 0 30px
}
.section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:50px;
    margin-bottom:52px
}
.section-heading>p{
    max-width:325px;
    font-size:13px;
    color:#747469;
    line-height:1.9;
    padding-bottom:4px
}
.product-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:18px
}
.product-card{
    --card-bg:#eeeee1;
    grid-column:span 3;
    position:relative;
    display:flex;
    flex-direction:column;
    background:var(--card-bg);
    border:1px solid #22222220;
    padding:27px 29px 0;
    overflow:hidden;
    transition:border-color .3s,box-shadow .3s
}
.product-card:hover{
    border-color:#22222266;
    box-shadow:0 12px 30px #22222208
}
.product-cloud{
    --card-bg:#e9ece6
}
.product-assets,.product-chain,.product-archive{
    --card-bg:#eeede5;
    grid-column:span 2;
    padding-inline:24px
}
.product-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:23px;
    gap:10px;
    color:#77776b;
    font-size:9px;
    letter-spacing:.4px
}
.soon{
    font-size:7px;
    letter-spacing:.6px;
    background:#2222220b;
    border:1px solid #22222219;
    padding:4px 6px;
    white-space:nowrap
}
.product-art{
    width:100%;
    height:218px;
    color:#595b21;
    transition:transform .8s cubic-bezier(.16,1,.3,1);
    margin-top:12px
}
.product-cloud .product-art{
    color:#526d62
}
.product-assets .product-art{
    color:#695d87
}
.product-chain .product-art{
    color:#5c706b
}
.product-archive .product-art{
    color:#917d53
}
.product-card:hover .product-art{
    transform:scale(1.06)
}
.product-assets .product-art,.product-chain .product-art,.product-archive .product-art{
    height:160px;
    margin-block:20px 13px
}
.product-copy h3{
    font-size:37px;
    letter-spacing:-1.6px;
    margin-bottom:16px
}
.product-copy p{
    font-size:12px;
    line-height:1.85;
    color:#6a6a60;
    max-width:440px
}
.product-assets h3,.product-chain h3,.product-archive h3{
    font-size:29px;
    letter-spacing:-1px
}
.product-tags{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    padding:0;
    list-style:none;
    margin:22px 0 27px
}
.product-tags li{
    font-size:9px;
    padding:3px 8px;
    border:1px solid #22222220;
    color:#77776a
}
.product-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:11px;
    padding:17px 0;
    border-top:1px solid #22222220;
    margin-top:auto
}
.product-link>span:first-of-type{
    font-size:20px;
    transition:transform .3s
}
.product-link:hover>span:first-of-type{
    transform:translate(3px,-3px)
}
.product-card:has(.product-link:focus-visible){
    border-color:#222
}
.ecosystem-note{
    display:flex;
    align-items:center;
    gap:12px;
    padding-block:28px;
    color:#7e7e70;
    font-size:11px
}
.ecosystem-note .small-cross{
    color:var(--dark)
}
.ecosystem-note .mono{
    margin-left:auto;
    font-size:8px;
    letter-spacing:1px
}
.device-signal{
    opacity:.08;
    animation:device-communicate 4.8s ease-in-out infinite;
    animation-delay:var(--signal-delay,0s)
}
.device-node-2{--signal-delay:-.8s}
.device-node-3{--signal-delay:-1.6s}
.device-node-4{--signal-delay:-2.4s}
.device-node-5{--signal-delay:-3.2s}
.device-node-6{--signal-delay:-4s}
.cloud-orbit{
    animation:cloud-orbit-flow 18s linear infinite
}
.cloud-satellite{
    offset-path:path('M445 120A195 67 0 1 1 55 120A195 67 0 1 1 445 120');
    offset-anchor:50% 50%;
    offset-rotate:0deg;
    transform-box:fill-box;
    animation:cloud-satellite-travel 12s linear infinite
}
.node-halo{
    opacity:0
}
.asset-transfer{
    animation:asset-transfer 2.8s ease-in-out infinite
}
.transfer-to-vault{--transfer-distance:72px}
.transfer-to-asset{
    --transfer-distance:-72px;
    animation-delay:-1.4s
}
.node-halo.is-active{
    animation:genealogy-signal 1.5s ease-in-out both
}
.infinity-tracer{
    offset-path:path('M250 120C200 45 110 45 110 120C110 195 200 195 250 120C300 45 390 45 390 120C390 195 300 195 250 120Z');
    offset-anchor:50% 50%;
    offset-rotate:0deg;
    transform-box:fill-box;
    animation:infinity-travel 10s linear infinite
}
.expertise{
    display:grid;
    grid-template-columns:1fr 1.25fr;
    gap:95px
}
.expertise-intro p{
    max-width:330px;
    color:var(--muted);
    font-size:13px;
    line-height:1.9;
    margin-top:25px
}
.expertise-intro{
    min-width:0
}
.expertise-intro .text-link{
    margin-top:22px
}
.expertise-symbol{
    --expertise-cycle:3.6s;
    width:100%;
    max-width:400px;
    margin-top:50px;
    color:var(--lime)
}
.expertise-symbol svg{
    display:block;
    width:100%;
    height:auto
}
.expertise-pulse{
    stroke-dasharray:1;
    animation:expertise-pulse-travel var(--expertise-cycle) linear infinite
}
.target-echo{
    opacity:0;
    transform-origin:338px 100px;
    animation:expertise-target-hit var(--expertise-cycle) ease-out infinite
}
.echo-middle{animation-delay:.12s}
.echo-outer{animation-delay:.24s}
.service{
    border-top:1px solid var(--line)
}
.service:last-child{
    border-bottom:1px solid var(--line)
}
.service summary{
    display:flex;
    align-items:center;
    gap:25px;
    padding:25px 0;
    list-style:none;
    cursor:pointer
}
.service summary::-webkit-details-marker{
    display:none
}
.service-number{
    color:#72726a;
    font-size:10px
}
.service h3{
    font-size:21px;
    transition:color .2s
}
.service summary:hover h3,.service[open] h3{
    color:var(--lime)
}
.service-toggle{
    display:flex;
    justify-content:center;
    align-items:center;
    border:1px solid #ffffff30;
    border-radius:50%;
    width:28px;
    height:28px;
    margin-left:auto;
    font-size:20px;
    font-weight:400;
    line-height:1;
    flex-shrink:0;
    transition:transform .3s,color .3s
}
.service[open] .service-toggle{
    transform:rotate(45deg);
    color:var(--lime)
}
.service-description{
    padding:0 37px 27px 40px;
    animation:enter .35s ease-out
}
.service-description p{
    color:var(--muted);
    font-size:12px;
    line-height:1.9
}
.service-tags{
    font-size:8px;
    color:#77776e;
    margin-top:16px;
    letter-spacing:.5px
}
.company-intro{
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:100px;
    align-items:end
}
.company-intro .eyebrow{
    grid-column:1/-1
}
.company-intro p{
    max-width:370px;
    margin-left:auto;
    color:#747469;
    font-size:13px;
    line-height:1.9;
    padding-bottom:5px
}
.metrics{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    margin-top:67px;
    border-top:1px solid #22222225;
    border-bottom:1px solid #22222225
}
.metric{
    display:flex;
    flex-direction:column;
    padding:33px 0 36px
}
.metric+.metric{
    border-left:1px solid #22222225;
    padding-left:46px
}
.metric-number{
    font-family:var(--display);
    font-size:clamp(58px,6.7vw,100px);
    line-height:1.25;
    letter-spacing:-5px;
    font-variant-numeric:tabular-nums
}
.metric .mono{
    color:#77776b;
    font-size:9px;
    margin-top:12px;
    letter-spacing:.7px
}
.principles{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:55px;
    margin-top:52px
}
.principle-icon{
    display:block;
    font-family:var(--display);
    font-size:30px;
    height:50px;
    line-height:1
}
.principles h3{
    font-size:20px;
    margin-bottom:14px
}
.principles p{
    font-size:12px;
    color:#77776b;
    line-height:1.9;
    max-width:320px
}
.contact-section{
    position:relative;
    background:var(--lime);
    color:var(--dark);
    padding:75px 0 60px;
    overflow:hidden
}
.contact-section::before{
    content:'';
    position:absolute;
    right:-200px;
    top:-200px;
    width:700px;
    height:700px;
    border:1px solid #2222220c;
    border-radius:50%;
    box-shadow:0 0 0 60px #22222204,0 0 0 120px #22222203;
    pointer-events:none
}
.contact-main{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    position:relative
}
.contact-main h2{
    font-size:clamp(65px,8vw,122px);
    line-height:1.05;
    letter-spacing:-5.5px
}
.contact-main h2 span{
    color:#777711
}
.contact-arrow{
    display:flex;
    align-items:center;
    justify-content:center;
    width:132px;
    height:132px;
    border:1px solid #22222270;
    border-radius:50%;
    font-size:79px;
    font-family:Arial,sans-serif;
    font-weight:400;
    transition:background .3s,color .3s,transform .3s;
    flex-shrink:0;
    margin-right:5px
}
.contact-arrow:hover{
    background:var(--dark);
    color:var(--lime);
    transform:rotate(5deg)
}
.contact-bottom{
    display:flex;
    justify-content:space-between;
    align-items:end;
    margin-top:47px;
    border-top:1px solid #22222230;
    padding-top:26px
}
.contact-bottom p{
    font-size:13px;
    line-height:1.8;
    color:#555510
}
.email-link{
    display:flex;
    align-items:center;
    gap:35px;
    font-family:var(--display);
    font-size:24px;
    letter-spacing:-.6px
}
.email-link:hover{
    text-decoration:underline;
    text-underline-offset:6px
}
.site-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding-block:40px
}
.site-footer .wordmark{
    font-size:31px
}
.site-footer>span,.site-footer>a:not(.wordmark){
    font-size:10px;
    color:#88887e
}
.back-top{
    display:flex;
    align-items:center;
    gap:20px
}
.back-top span{
    font-size:17px;
    color:var(--lime)
}
.site-footer>a:hover{
    color:var(--paper)
}
.back-top-control{
    position:fixed;
    right:20px;
    bottom:17px;
    z-index:40;
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border:1px solid #77775e77;
    background:#222222ed;
    color:var(--lime);
    backdrop-filter:blur(8px);
    transition:border-color .2s,background .2s
}
.back-top-control:hover,.back-top-control:focus-visible{
    border-color:var(--lime);
    background:var(--dark)
}
.motion-paused *, .motion-paused *::before,.motion-paused *::after{
    animation-play-state:paused!important
}
.motion-paused .hero-enter{
    animation:none;
    opacity:1;
    transform:none
}
.cookie-banner{
    position:fixed;
    left:20px;
    bottom:20px;
    z-index:100;
    width:min(560px,calc(100% - 40px));
    max-height:calc(100dvh - 40px);
    overflow:auto;
    padding:28px;
    background:var(--paper);
    color:var(--dark);
    border:1px solid #22222230;
    box-shadow:0 12px 50px #0005
}
.cookie-banner h2,#cookie-preferences h2{
    font-size:28px;
    letter-spacing:-1px;
    margin:12px 0 16px
}
.cookie-banner .eyebrow,#cookie-preferences .eyebrow{color:#64645c}
.cookie-banner p,#cookie-preferences p{
    font-size:13px;
    line-height:1.7;
    margin-bottom:16px;
    color:#55554e
}
.cookie-banner a,#cookie-preferences a{color:var(--dark);text-decoration:underline;text-underline-offset:3px}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.cookie-actions button{
    flex:1;
    min-height:44px;
    padding:10px 14px;
    border:1px solid #22222266;
    background:transparent;
    color:var(--dark);
    font-size:12px;
    white-space:nowrap
}
.cookie-actions [data-cookie-action="accept"],.cookie-actions [data-cookie-action="save"]{
    background:var(--lime);
    border-color:#77770b
}
.cookie-actions button:hover{border-color:var(--dark);box-shadow:inset 0 0 0 1px var(--dark)}
#cookie-preferences{
    width:min(620px,calc(100% - 32px));
    max-height:calc(100dvh - 32px);
    padding:0;
    margin:auto;
    overflow:auto;
    border:1px solid #22222230;
    background:var(--paper);
    color:var(--dark)
}
#cookie-preferences::backdrop{background:#111b;backdrop-filter:blur(5px)}
body:has(#cookie-preferences[open]){overflow:hidden}
.cookie-dialog-content{padding:28px}
.cookie-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.cookie-close{
    width:44px;
    height:44px;
    border:1px solid #22222230;
    background:transparent;
    color:var(--dark);
    font-size:26px;
    line-height:1
}
.cookie-option{border-top:1px solid #22222226;padding:16px 0}
.cookie-option p{margin:6px 0 0!important}
.cookie-option label,.cookie-option-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:44px;font-size:14px;font-weight:600}
.cookie-option label{cursor:pointer}
.cookie-option input{width:22px;height:22px;flex-shrink:0;accent-color:#77770b}
.cookie-option .mono{font-size:8px;color:#64645c;white-space:nowrap}
.cookie-error{color:#a31515!important;margin:16px 0 0!important}
.cookie-settings,.policy-cookie-settings{
    min-height:44px;
    background:transparent;
    color:inherit;
    text-decoration:underline;
    text-underline-offset:4px;
    border:0;
    font-size:inherit
}
.site-footer .cookie-settings{color:#88887e;font-size:10px}
.site-footer .cookie-settings:hover{color:var(--paper)}
.policy ul{padding-left:22px;color:var(--muted);font-size:14px;line-height:1.9}
.policy li{margin-bottom:14px}
.policy a:not(.button),.policy button{text-decoration:underline;text-underline-offset:4px}
.policy-details{display:grid;grid-template-columns:1fr 1.5fr;gap:16px 24px;margin-block:22px;font-size:14px;line-height:1.7}
.policy-details dt{color:var(--paper)}
.policy-details dd{margin:0;color:var(--muted)}
.policy .policy-placeholder{color:#cccc0caa}
@media(max-width:520px){
    .cookie-banner{left:12px;bottom:12px;width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:22px}
    .cookie-actions{display:grid;grid-template-columns:1fr}
    .cookie-actions button{font-size:14px}
    .cookie-banner p,#cookie-preferences p{font-size:14px}
    .cookie-dialog-content{padding:22px}
    .cookie-option-heading{flex-wrap:wrap;gap:8px}
    .policy-details{grid-template-columns:1fr;gap:6px}
    .policy-details dd{margin-bottom:16px}
}
.policy{
    min-height:75vh;
    max-width:800px;
    padding-top:90px
}
.policy h1{
    font-size:clamp(40px,5vw,65px);
    letter-spacing:-2px;
    margin-bottom:30px
}
.policy h2{
    font-size:26px;
    letter-spacing:-.6px;
    margin-top:35px;
    margin-bottom:14px
}
.policy p{
    color:var(--muted);
    font-size:14px;
    line-height:1.9
}
.policy p a{
    text-decoration:underline;
    color:var(--lime)
}
.policy .button{
    margin-top:35px
}
/* Content remains visible when scripts or motion are unavailable. */
.reveal{
    opacity:1;
    transform:none
}
.motion-enabled .reveal.pending{
    opacity:0;
    transform:translateY(24px)
}
.motion-enabled .reveal{
    transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)
}
.motion-enabled .principles article:nth-child(2){
    transition-delay:.08s
}
.motion-enabled .principles article:nth-child(3){
    transition-delay:.16s
}
@keyframes enter{
    from{
        opacity:0;
        transform:translateY(18px)
    }
    to{
        opacity:1;
        transform:translateY(0)
    }
}
@keyframes ticker{
    to{
        transform:translateX(-50%)
    }
}
@keyframes status-pulse{
    50%{
        opacity:.45;
        box-shadow:0 0 3px #cccc0c22
    }
}
@keyframes scroll-nudge{
    50%{
        transform:translateY(4px)
    }
}
@keyframes genealogy-signal{
    0%,100%{opacity:0}
    25%,55%{opacity:.85}
}
@keyframes asset-transfer{
    0%{transform:translateX(0);opacity:0}
    15%,65%{opacity:1}
    90%,100%{transform:translateX(var(--transfer-distance));opacity:0}
}
@keyframes device-communicate{
    0%,10%,30%,100%{opacity:.08}
    16%,22%{opacity:1}
}
@keyframes cloud-orbit-flow{
    to{stroke-dashoffset:-180}
}
@keyframes cloud-satellite-travel{
    to{offset-distance:100%}
}
@keyframes infinity-travel{
    to{offset-distance:100%}
}
@keyframes expertise-pulse-travel{
    0%{stroke-dashoffset:1;opacity:0}
    5%{stroke-dashoffset:1;opacity:1}
    40%,54%{stroke-dashoffset:0;opacity:1}
    72%,100%{stroke-dashoffset:0;opacity:0}
}
@keyframes expertise-target-hit{
    0%,40%{opacity:0;transform:scale(1)}
    44%{opacity:.85;transform:scale(1)}
    76%,100%{opacity:0;transform:scale(1.2)}
}
@media(min-width:1600px){
    .hero-grid{
        min-height:690px
    }
    .pulse-stage{
        height:610px
    }
    .hero h1{
        font-size:110px
    }
}
@media(max-width:1100px){
    .wrap{
        width:calc(100% - 72px)
    }
    .desktop-nav{
        margin-left:0;
        gap:25px
    }
    .hero h1{
        font-size:7.2vw;
        letter-spacing:-4px
    }
    .pulse-stage{
        height:480px
    }
    .hero-grid{
        min-height:590px;
        grid-template-columns:1.14fr 1fr
    }
    .hero-description{
        max-width:330px
    }
    .hero-buttons{
        gap:20px
    }
    .hero-buttons .button{
        padding-inline:17px;
        gap:20px
    }
    .label-devices{
        right:-5px
    }
    .section-heading h2,.company h2{
        font-size:43px;
        letter-spacing:-2px
    }
    .section-heading>p{
        max-width:280px
    }
    .product-card{
        padding-inline:22px
    }
    .product-top{
        font-size:8px
    }
    .soon{
        font-size:6px;
        padding:3px
    }
    .expertise{
        gap:50px
    }
    .expertise h2{
        font-size:42px
    }
    .service h3{
        font-size:18px
    }
    .company-intro{
        column-gap:50px
    }
    .metric+.metric{
        padding-left:30px
    }
    .principles{
        gap:35px
    }
    .contact-main h2{
        font-size:9vw
    }
    .contact-arrow{
        width:110px;
        height:110px;
        font-size:65px
    }
}
@media(max-width:800px){
    .wrap{
        width:calc(100% - 48px)
    }
    .header-inner{
        height:77px;
        gap:20px
    }
    .wordmark{
        font-size:33px
    }
    .desktop-nav{
        display:none
    }
    .header-actions{
        gap:15px
    }
    .menu-toggle{
        display:block
    }
    .header-cta{
        padding:9px 13px;
        gap:16px;
        font-size:11px
    }
    .hero-grid{
        min-height:0;
        grid-template-columns:1fr;
        position:relative
    }
    .hero-copy{
        padding:62px 0 0
    }
    .hero h1{
        font-size:clamp(60px,10.5vw,83px);
        letter-spacing:-4px
    }
    .hero-description{
        max-width:400px
    }
    .pulse-stage{
        width:80%;
        height:430px;
        justify-self:center;
        margin-left:0;
        margin-top:-15px
    }
    .hero-baseline{
        padding-block:21px
    }
    .section-heading{
        align-items:start;
        flex-direction:column;
        gap:26px
    }
    .section-heading>p{
        max-width:480px
    }
    .ecosystem{
        padding-top:75px
    }
    .section-heading h2,.company h2{
        font-size:46px
    }
    .product-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:16px
    }
    .product-card,.product-assets,.product-chain{
        grid-column:span 1
    }
    .product-archive{
        grid-column:span 2;
        display:grid;
        grid-template-columns:1fr 1fr;
        column-gap:30px
    }
    .product-archive .product-top{
        grid-column:1/-1
    }
    .product-archive .product-art{
        grid-column:2;
        grid-row:2/5;
        height:200px
    }
    .product-archive .product-copy{
        grid-column:1;
        grid-row:2
    }
    .product-archive .product-tags{
        grid-column:1;
        grid-row:3
    }
    .product-archive .product-link{
        grid-column:1/-1
    }
    .product-copy h3{
        font-size:28px
    }
    .product-art{
        height:185px
    }
    .product-tags{
        font-size:8px
    }
    .product-top{
        align-items:start;
        min-height:30px
    }
    .product-chain .product-top{
        flex-wrap:wrap
    }
    .soon{
        font-size:7px
    }
    .product-copy p{
        font-size:11px
    }
    .product-tags li{
        font-size:8px
    }
    .expertise{
        grid-template-columns:1fr;
        gap:40px
    }
    .section-space{
        padding-block:75px
    }
    .expertise h2{
        font-size:46px
    }
    .expertise-intro p{
        max-width:440px
    }
    .expertise-symbol{
        margin-top:28px
    }
    .service h3{
        font-size:22px
    }
    .service-description p{
        max-width:500px
    }
    .company-intro{
        grid-template-columns:1fr;
        gap:24px
    }
    .company-intro .eyebrow{
        margin-bottom:0
    }
    .company-intro p{
        max-width:480px;
        margin-left:0
    }
    .metrics{
        margin-top:45px
    }
    .metric-number{
        font-size:64px;
        letter-spacing:-4px
    }
    .metric .mono{
        font-size:8px;
        max-width:155px
    }
    .metric+.metric{
        padding-left:23px
    }
    .principles{
        gap:25px
    }
    .principles h3{
        font-size:17px
    }
    .principles p{
        font-size:11px
    }
    .contact-main h2{
        font-size:11vw;
        letter-spacing:-4px
    }
    .contact-arrow{
        width:87px;
        height:87px;
        font-size:55px
    }
    .email-link{
        font-size:19px;
        gap:20px
    }
    .contact-bottom p{
        font-size:11px
    }
    .site-footer{
        flex-wrap:wrap;
        justify-content:start;
        gap:23px 30px
    }
    .site-footer .wordmark{
        margin-right:auto
    }
    .site-footer .back-top{
        margin-left:auto
    }
    .ecosystem-note .mono{
        display:none
    }
    .ticker-sequence{
        gap:28px;
        padding-right:28px
    }
    .ticker-track span{
        font-size:12px
    }
}
@media(max-width:520px){
    .wrap{
        width:calc(100% - 40px)
    }
    .header-inner{
        height:73px;
        gap:10px
    }
    .header-actions{
        gap:8px
    }
    .language-link{
        padding:5px
    }
    .header-cta{
        font-size:10px;
        padding:8px 11px;
        gap:14px
    }
    .wordmark{
        font-size:30px
    }
    .menu-toggle{
        width:34px;
        padding:5px
    }
    .hero-copy{
        padding-top:43px
    }
    .hero h1{
        font-size:clamp(43px,12.5vw,64px);
        letter-spacing:-3.5px
    }
    .hero-description{
        font-size:12px;
        max-width:335px;
        line-height:1.9;
        margin-top:25px
    }
    .hero-buttons{
        margin-top:25px;
        gap:20px
    }
    .hero-buttons .button{
        font-size:10px;
        gap:18px;
        padding:13px 15px;
        min-height:48px
    }
    .hero-buttons .text-link{
        font-size:10px;
        gap:12px
    }
    .pulse-stage{
        width:100%;
        height:330px;
        margin-top:0
    }
    .node-label{
        font-size:6px;
        gap:6px
    }
    .label-data{
        top:64px;
        left:10%
    }
    .label-devices{
        top:130px;
        right:0
    }
    .label-systems{
        bottom:70px;
        left:2%
    }
    .scroll-cue{
        font-size:8px;
        gap:12px
    }
    .hero-baseline{
        padding:16px 0 19px
    }
    .ticker{
        padding-block:14px
    }
    .ticker-track span{
        font-size:10px
    }
    .ticker-sequence{
        gap:25px;
        padding-right:25px
    }
    .ticker-track b{
        font-size:18px
    }
    .eyebrow{
        font-size:9px;
        letter-spacing:1px;
        margin-bottom:21px
    }
    .ecosystem{
        padding-top:63px
    }
    .section-heading{
        gap:22px;
        margin-bottom:33px
    }
    .section-heading h2,.company h2,.expertise h2{
        font-size:35px;
        letter-spacing:-1.8px
    }
    .section-heading>p{
        font-size:12px
    }
    .product-grid{
        grid-template-columns:1fr;
        gap:16px
    }
    .product-card,.product-assets,.product-chain,.product-archive{
        grid-column:span 1;
        padding:23px 24px 0;
        display:flex
    }
    .product-top{
        font-size:8px;
        min-height:0;
        align-items:center
    }
    .product-chain .product-top{
        flex-wrap:nowrap
    }
    .soon{
        font-size:6px
    }
    .product-art,.product-assets .product-art,.product-chain .product-art,.product-archive .product-art{
        height:180px;
        margin:10px 0 14px
    }
    .product-copy h3,.product-assets h3,.product-chain h3,.product-archive h3{
        font-size:33px;
        letter-spacing:-1.2px;
        margin-bottom:13px
    }
    .product-copy p{
        font-size:12px
    }
    .product-tags li{
        font-size:8px
    }
    .product-tags{
        margin-block:19px 22px
    }
    .ecosystem-note{
        font-size:10px;
        padding-block:23px
    }
    .section-space{
        padding-block:65px
    }
    .expertise{
        gap:32px
    }
    .expertise-intro p{
        font-size:12px
    }
    .service summary{
        gap:15px;
        padding:22px 0
    }
    .service h3{
        font-size:19px;
        letter-spacing:-.5px
    }
    .service-description{
        padding-left:29px;
        padding-right:15px
    }
    .service-toggle{
        width:25px;
        height:25px;
        font-size:18px
    }
    .service-tags{
        font-size:7px
    }
    .company-intro{
        gap:21px
    }
    .company-intro p{
        font-size:12px
    }
    .metrics{
        grid-template-columns:1fr;
        margin-top:35px
    }
    .metric{
        padding:23px 0;
        display:grid;
        grid-template-columns:1fr 1fr;
        align-items:center;
        gap:25px
    }
    .metric+.metric{
        border-left:0;
        border-top:1px solid #22222225;
        padding-left:0
    }
    .metric-number{
        font-size:64px
    }
    .metric .mono{
        font-size:9px;
        max-width:none;
        margin:0
    }
    .principles{
        grid-template-columns:1fr;
        gap:30px;
        margin-top:35px
    }
    .principles article{
        display:grid;
        grid-template-columns:35px 1fr;
        gap:0 18px
    }
    .principle-icon{
        grid-row:1/3;
        font-size:26px;
        height:auto
    }
    .principles h3{
        font-size:20px
    }
    .principles p{
        font-size:12px;
        max-width:none
    }
    .contact-section{
        padding:55px 0 39px
    }
    .contact-main{
        gap:12px
    }
    .contact-main h2{
        font-size:12.5vw;
        letter-spacing:-2.7px
    }
    .contact-arrow{
        width:58px;
        height:58px;
        font-size:36px;
        margin:0
    }
    .contact-bottom{
        flex-direction:column;
        align-items:start;
        gap:25px;
        margin-top:30px;
        padding-top:23px
    }
    .contact-bottom p{
        font-size:12px
    }
    .email-link{
        font-size:23px;
        gap:25px
    }
    .site-footer{
        gap:23px;
        padding-block:33px 55px
    }
    .site-footer .wordmark{
        font-size:30px
    }
    .site-footer>span{
        font-size:9px
    }
    .site-footer>a:not(.wordmark){
        font-size:9px
    }
    .back-top-control{
        bottom:12px;
        right:12px
    }
    .policy h1{
        font-size:39px
    }
    .policy{
        padding-top:60px
    }
}
/* Generous hit areas and readable text on touch screens. */
.section-light .section-heading>p,.company-intro p,.principles p{
    color:#65655c
}
.product-tags li,.product-top,.metric .mono,.ecosystem-note{
    color:#64645c
}
.contact-main h2 span{
    color:#62620d
}
.wordmark{
    display:inline-flex;
    align-items:center;
    min-height:44px
}
.language-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:44px;
    min-height:44px
}
.desktop-nav a{
    display:flex;
    align-items:center;
    min-height:44px
}
.site-footer>a:not(.wordmark){
    display:inline-flex;
    align-items:center;
    min-height:44px
}
@media(max-width:800px){
    .menu-toggle{
        width:44px;
        height:44px;
        flex-shrink:0
    }
    .header-actions{
        gap:8px
    }
    .header-cta{
        min-height:44px
    }
}
@media(max-width:520px){
    .hero-description,.product-copy p,.expertise-intro p,.company-intro p,.principles p,.service-description p{
        font-size:14px
    }
    .section-heading>p{
        font-size:14px
    }
    .hero-buttons .button{
        font-size:12px;
        gap:15px
    }
    .hero-buttons .text-link{
        font-size:12px;
        min-height:44px
    }
    .principles h3{
        font-size:21px
    }
    .hero-baseline .scroll-cue{
        min-height:44px
    }
    .hero-baseline{
        padding-block:5px
    }
    .contact-bottom p{
        font-size:14px
    }
    .mobile-nav a{
        padding-block:18px
    }
    .site-footer>span,.site-footer>a:not(.wordmark){
        font-size:11px
    }
    .site-footer{
        gap:12px 20px
    }
}
@media(max-width:360px){
    .header-cta{
        display:none
    }
    .hero-buttons{
        gap:14px
    }
    .hero-buttons .button{
        font-size:11px;
        padding-inline:13px
    }
    .hero-buttons .text-link{
        font-size:11px
    }
    .hero h1{
        letter-spacing:-2.5px
    }
    .contact-main h2{
        letter-spacing:-2px
    }
    .contact-arrow{
        width:47px;
        height:47px;
        font-size:30px
    }
}
@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto
    }
    body:not(.motion-allowed) *,body:not(.motion-allowed) *::before,body:not(.motion-allowed) *::after{
        animation:none!important;
        transition:none!important
    }
    .motion-enabled .reveal.pending{
        opacity:1;
        transform:none
    }
}
