a{color:#F2F2EE;text-decoration:none;transition:color .25s}
a:hover{color:var(--accent,#F5B700)}
a svg{transition:transform .4s cubic-bezier(.2,.8,.2,1)}
a:hover svg:not(.noshift){transform:translateX(5px)}
a[style*="min-height"]{transition:transform .3s cubic-bezier(.2,.8,.2,1),color .25s}
a[style*="min-height"]:hover{transform:translateY(-2px)}
a[style*="border: 1px solid #2E3643"]{transition:border-color .35s,transform .45s cubic-bezier(.2,.8,.2,1)}
a[style*="border: 1px solid #2E3643"]:hover{border-color:var(--accent,#F5B700) !important}
.line{display:block;overflow:hidden;padding-bottom:.06em}
.line>span{display:inline-block}
.ph{position:relative;overflow:hidden}
.ph-in{position:absolute;inset:0;background:#1A2029 repeating-linear-gradient(135deg,transparent 0 22px,rgba(255,255,255,.03) 22px 23px)}
.ph-label{position:relative}
.card{transition:transform .5s cubic-bezier(.2,.8,.2,1),border-color .5s}
.card:hover{transform:translateY(-8px);border-color:var(--accent,#F5B700) !important}
.card .ph-in{transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.card:hover .ph-in{transform:scale(1.07)}
.tile{transition:background-color .35s,color .35s}
.tile:hover{background-color:var(--accent,#F5B700) !important;color:#0E1116 !important}
.tile:hover .tile-num{color:#0E1116 !important}
.row .num{transition:color .3s}
.row:hover .num{color:var(--accent,#F5B700) !important}
.svc-img{transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.svc:hover .svc-img{transform:scale(1.06)}
.svc-shadow{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.svc:hover .svc-shadow{transform:translate(28px,28px) !important}
.svc-rev:hover .svc-shadow{transform:translate(-28px,28px) !important}
.hl{position:relative;display:inline-block}
.hl::after{content:"";position:absolute;left:.04em;right:.04em;bottom:.02em;height:.16em;background:repeating-linear-gradient(-45deg,var(--accent,#F5B700) 0 6px,transparent 6px 12px);transform-origin:left}
.hero-scrim{display:none}
@media (max-width: 1151px){
.hero-photo{position:absolute !important;inset:0;min-height:0 !important;z-index:0}
.hero-photo .ph{right:0 !important;border:0 !important}
.hero-scrim{display:block;position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,17,22,.94) 0%,rgba(14,17,22,.82) 55%,rgba(14,17,22,.55) 100%)}
.hero-badge,.hero-vert,.hero .para{display:none !important}
.hero-copy{z-index:1}
}
.pulse{position:relative}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit}
@media (prefers-reduced-motion: no-preference){
.hero-copy>*{animation:fadeUp .9s cubic-bezier(.2,.8,.2,1) both}
.hero-copy>*:nth-child(1){animation-delay:.05s}
.hero-copy>*:nth-child(2){animation-delay:.15s}
.hero-copy>*:nth-child(4){animation-delay:.6s}
.hero-copy>*:nth-child(5){animation-delay:.72s}
.hero-copy>*:nth-child(6){animation-delay:.86s}
.hero-copy>h1{animation:none}
.hl::after{animation:drawIn .7s cubic-bezier(.7,0,.2,1) 1.15s both}
.line>span{animation:lineUp 1.1s cubic-bezier(.2,.8,.2,1) both}
.line:nth-child(1)>span{animation-delay:.25s}
.line:nth-child(2)>span{animation-delay:.38s}
.wipe{animation:wipe 1.4s cubic-bezier(.75,0,.2,1) .15s both}
.kb{animation:kb 16s ease-in-out infinite alternate}
.spin{animation:spin 20s linear infinite}
.marquee-track{animation:marq 36s linear infinite}
.tape{animation:tape 1.6s linear infinite}
.pulse::after{animation:pulse 1.8s ease-out infinite}
.tiles>*{animation:fadeUp .9s cubic-bezier(.2,.8,.2,1) both}
.tiles>*:nth-child(1){animation-delay:.85s}
.tiles>*:nth-child(2){animation-delay:.95s}
.tiles>*:nth-child(3){animation-delay:1.05s}
@supports (animation-timeline: view()){
.rv,.rv2,.rv3{animation:fadeUp linear both;animation-timeline:view()}
.rv{animation-range:entry 0% cover 24%}
.rv2{animation-range:entry 8% cover 32%}
.rv3{animation-range:entry 16% cover 40%}
.slide-x{animation:slideX linear both;animation-timeline:view();animation-range:entry 0% exit 0%}
.draw{transform-origin:left;animation:draw linear both;animation-timeline:view();animation-range:entry 20% cover 35%}
.svc-clip{animation:clipL linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
.svc-rev .svc-clip{animation-name:clipR}
.svc-img{animation:imgPar linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
.svc-num{animation:fadeUp linear both;animation-timeline:view();animation-range:entry 10% cover 35%}
.para{animation:para linear both;animation-timeline:scroll(root);animation-range:0 900px}
}
}
@keyframes drawIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes lineUp{from{transform:translateY(110%)}to{transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes wipe{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.14) translate(-2%,-1%)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes marq{to{transform:translateX(-50%)}}
@keyframes tape{to{background-position:50.91px 0}}
@keyframes pulse{from{transform:scale(1);opacity:.75}to{transform:scale(3.2);opacity:0}}
@keyframes slideX{from{transform:translateX(-14%)}to{transform:translateX(4%)}}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes clipL{from{clip-path:polygon(10% 0,10% 0,0 100%,0 100%)}to{clip-path:polygon(10% 0,100% 0,90% 100%,0 100%)}}
@keyframes clipR{from{clip-path:polygon(90% 0,90% 0,100% 100%,100% 100%)}to{clip-path:polygon(0 0,90% 0,100% 100%,10% 100%)}}
@keyframes imgPar{from{top:-20%}to{top:0}}
@keyframes para{from{transform:translateY(0)}to{transform:translateY(180px)}}
.alt-map-frame{filter:grayscale(1) invert(.92) contrast(.9);transition:filter .4s}
.alt-map-frame:hover{filter:none}


/* ===== Smartphone ===== */
@media (max-width:760px){
  .tiles{padding:0 20px!important;margin-top:-96px!important}
  .tiles .tile{border-left:1px solid #2E3643!important;padding:22px 24px!important}
  .tiles .tile + .tile{border-top:0!important}
  .hero-copy{padding:48px 0 136px!important}
  .hero-facts{flex-direction:column;gap:0!important}
  .hero-facts > div{padding:12px 0!important;border-left:0!important;border-bottom:1px solid #2E3643;flex:none!important;flex-direction:row!important;align-items:baseline;gap:16px!important}
  .hero-facts dt{min-width:64px}
  .marquee-track{font-size:32px!important}
  .svc{gap:56px 0!important}
  .svc .svc-num{font-size:96px!important}
  .msg-name{left:-8px!important;bottom:20px!important}
  .license-dl dt{padding:18px 20px 0!important;font-size:13px}
  .license-dl dd{padding:4px 20px 18px!important}
  #license [style*="padding: 22px 32px; background"]{padding:18px 20px!important}
  .alt-map-frame{filter:grayscale(1) invert(.92) contrast(.9)!important}
  #access > div:last-child{min-height:360px!important}
  #access > div:last-child > div{margin:12px!important;padding:18px 20px!important}
}
