/* Uses an actual Nimbus app screenshot rather than invented benchmark values. */
.hero-cinematic{position:relative;isolation:isolate;display:block;max-width:none;min-height:690px;margin:0;padding:0;overflow:hidden;border-bottom:1px solid #2a2d30;background:#080a0f}
.hero-cinematic:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#07090d 0%,rgba(7,9,13,.82) 39%,rgba(7,9,13,.12) 100%)}
.hero-inner{position:relative;z-index:2;min-height:630px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:58px;align-items:end;padding-top:74px;padding-bottom:72px}
.hero-cinematic .hero-copy{padding-bottom:12px}.hero-kicker{opacity:0;animation:fade-in .45s .1s ease-out forwards}.arrival-headline{margin:0 0 24px!important;max-width:780px;font-size:clamp(48px,6vw,86px)!important;letter-spacing:-.075em!important;line-height:.9!important;color:#f5f2ed}.arrival-headline span{display:block;white-space:nowrap}.arrival-headline .arrive-left{opacity:0;transform:translateX(-90px);animation:slide-left .75s cubic-bezier(.2,.8,.15,1) .25s forwards}.arrival-headline .arrive-right{margin-left:10%;opacity:0;transform:translateX(90px);color:var(--orange2);animation:slide-right .75s cubic-bezier(.2,.8,.15,1) .72s forwards}.arrival-headline .delay-two{animation-delay:1.19s}.hero-lede{opacity:0;max-width:550px;animation:fade-in .6s 1.8s ease-out forwards}.hero-cinematic .actions{opacity:0;animation:fade-in .55s 2s ease-out forwards}.hero-modal{position:relative;z-index:3;align-self:center;width:min(100%,500px);justify-self:end;margin:0;opacity:0;transform:translateX(80px) rotate(3deg);animation:modal-in .75s cubic-bezier(.2,.8,.15,1) 1.58s forwards}.hero-modal:after{content:"LIVE PREVIEW";position:absolute;top:-13px;right:22px;border:1px solid #ff6b2a;background:#121315;color:#ff854d;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:1.3px}.hero-orbit{position:absolute;border:1px solid rgba(255,103,39,.22);border-radius:50%;z-index:-1}.orbit-one{width:680px;height:680px;right:-180px;top:-190px;box-shadow:0 0 90px rgba(255,91,22,.09) inset}.orbit-two{width:980px;height:980px;right:-430px;top:-335px;border-color:rgba(115,179,255,.13)}.hero-stars{position:absolute;inset:0;z-index:-1;opacity:.65;background-image:radial-gradient(circle at 11% 19%,#fff 0 1px,transparent 1.7px),radial-gradient(circle at 74% 11%,#b7e3ff 0 1px,transparent 1.5px),radial-gradient(circle at 87% 43%,#fff 0 1px,transparent 1.6px),radial-gradient(circle at 53% 27%,#ff8f5a 0 1px,transparent 1.6px),radial-gradient(circle at 30% 58%,#fff 0 1px,transparent 1.4px),radial-gradient(circle at 96% 79%,#9bd8ff 0 1px,transparent 1.5px)}.hero-strip{position:absolute;z-index:3;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.16);background:rgba(7,9,13,.65);backdrop-filter:blur(8px)}.hero-strip span{padding:15px 26px;border-right:1px solid rgba(255,255,255,.1);font-size:10px;letter-spacing:1.25px;color:#d9d5cf}.hero-strip span:before{content:"✦";color:var(--orange);padding-right:9px}@keyframes slide-left{to{opacity:1;transform:translateX(0)}}@keyframes slide-right{to{opacity:1;transform:translateX(0)}}@keyframes fade-in{to{opacity:1}}@keyframes modal-in{to{opacity:1;transform:translateX(0) rotate(2deg)}}
.hero-screenshot{margin:0;background:#111315;border:1px solid #383a3c;border-radius:17px;box-shadow:0 30px 100px #000;overflow:hidden;transform:rotate(2deg)}
.hero-screenshot img{display:block;width:100%;height:auto;background:#050505}
.hero-screenshot figcaption{padding:13px 17px;background:#111315;border-top:1px solid #303235}
.hero-screenshot figcaption span{font-size:10px;letter-spacing:1.4px;font-weight:800;color:var(--orange2)}
.hero-screenshot figcaption p{font-size:11px;line-height:1.45;color:#a7a9aa;margin:5px 0 0}
.location-grid{grid-template-columns:repeat(5,1fr)}
.location-grid article{min-height:210px;padding:20px}
.location-grid .secure{grid-column:span 2}
.location-grid h3{font-size:22px;margin:24px 0 5px}
.ipv6-exits{border:1px solid #35383b;background:#131516;border-radius:8px;margin-top:12px;padding:19px 22px}
.ipv6-exits .eyebrow{margin-bottom:7px}
.ipv6-exits>p:last-child{margin:0;color:#bfc0c1;font-size:13px}
.ipv6-exits b{color:#fff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}
@media(max-width:1000px) and (min-width:801px){.location-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.hero-cinematic{min-height:auto}.hero-inner{display:block;min-height:0;padding-top:76px;padding-bottom:96px}.arrival-headline{font-size:clamp(40px,12vw,57px)!important}.arrival-headline span{white-space:normal}.arrival-headline .arrive-right{margin-left:0}.hero-lede{font-size:16px}.hero-modal{max-width:430px;margin:50px auto 0;transform:translateX(0) rotate(0)}.hero-strip{grid-template-columns:1fr 1fr}.hero-strip span{padding:11px 18px}.hero-strip span:nth-child(2){border-right:0}.hero-strip span:nth-child(n+3){border-top:1px solid rgba(255,255,255,.1)}.hero-screenshot{max-width:430px;margin:auto;transform:none}.location-grid{grid-template-columns:1fr}.location-grid .secure{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.hero-kicker,.arrival-headline .arrive-left,.arrival-headline .arrive-right,.hero-lede,.hero-cinematic .actions,.hero-modal{animation:none;opacity:1;transform:none}}

/* The rest of the page carries the same soft, deliberate movement as the hero. */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .72s cubic-bezier(.2,.8,.2,1),transform .72s cubic-bezier(.2,.8,.2,1)}
.reveal.is-visible{opacity:1;transform:none}
.how .steps article,.location-grid article,.fair,.download-card,.secure-diagram{transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.how .steps article:hover{transform:translateY(-7px);border-color:var(--orange)}
.location-grid article:hover{transform:translateY(-5px);border-color:#ff6b2a;box-shadow:0 15px 35px rgba(0,0,0,.24)}
.secure-diagram:hover{transform:translateY(-4px);border-color:#ff6b2a;box-shadow:0 18px 55px rgba(255,91,22,.08)}
.fair:hover{box-shadow:0 22px 60px rgba(0,0,0,.24)}
.download-card:hover{box-shadow:0 16px 35px rgba(255,91,22,.12)}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.how .steps article,.location-grid article,.fair,.download-card,.secure-diagram{transition:none}}

.hero-globe-wrap{position:absolute;z-index:-1;right:-9%;top:50%;width:min(780px,62vw);aspect-ratio:1;transform:translateY(-52%);opacity:0;pointer-events:none;animation:fade-in 1.2s .3s ease-out forwards}
.hero-globe-wrap canvas{width:100%;height:100%;display:block}
@media(max-width:800px){.hero-globe-wrap{width:130vw;right:-45vw;top:62%;opacity:.45;animation:none;opacity:.45}}

/* Comfortable heading spacing */
.arrival-headline{letter-spacing:-.02em!important}
.section-head h2,.secure-story h2,.fair h2,.download h2,.hero h1{letter-spacing:-.03em!important}
.location-grid h3,.steps h3{letter-spacing:-.02em}

/* Icons */
.step-icon svg{width:34px;height:34px;display:block}
.device svg,.server svg{width:34px;height:34px;margin:0 auto}
.download-card>span svg{width:34px;height:34px;display:block}
.secure-story{padding-left:30px;padding-right:30px;gap:70px}
.secure-diagram{padding:40px 44px;gap:0;justify-content:space-between}
.secure-diagram .device,.secure-diagram .server{flex:none}
.secure-diagram .line{flex:1;min-width:60px;margin:0 20px;width:auto}
.secure-diagram .line b{left:50%;transform:translateX(-50%)}
.secure-diagram .line i:nth-of-type(2){display:none}
@media(max-width:800px){.secure-story{padding-left:20px;padding-right:20px}.secure-diagram{padding:32px 20px}.secure-diagram .device,.secure-diagram .server{width:92px;height:92px}.secure-diagram .line{margin:0 10px}}

/* Download arrow + brand icon */
.dl-ico{width:20px;height:20px;flex:none;stroke-width:1.8}
.download-card strong{display:inline-flex;align-items:center;gap:6px}
.download-card strong .dl-ico{color:var(--orange)}
.brand-mark{background:none!important;color:#fff;width:24px;height:24px;border-radius:0}
.brand-mark svg{width:100%;height:100%;display:block}

/* Policy + account + web launcher */
.policy{max-width:780px;padding-top:70px;padding-bottom:100px}
.policy h1{font-size:clamp(34px,5vw,50px);letter-spacing:-.03em;line-height:1.05;margin:0 0 10px}
.policy .meta{color:#8d9091;font-size:13px;margin:0 0 22px}
.policy section{border-top:1px solid #25282a;padding:26px 0 6px;margin-top:26px}
.policy h2{font-size:20px;letter-spacing:-.01em;margin:0 0 12px}
.policy p,.policy li{color:#b9bbbc;font-size:15px;line-height:1.7}
.policy li{margin:6px 0}.policy ul{padding-left:20px}.policy a{color:var(--orange2)}.policy b{color:#fff}
.web{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-top:110px;padding-bottom:110px}
.web h2{font-size:clamp(34px,4.6vw,52px);letter-spacing:-.03em;line-height:1.02;margin:0 0 18px}
.web-copy p:not(.eyebrow){color:var(--muted);max-width:420px}
.web-launch{background:#111315;border:1px solid #2e3132;border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:8px}
.web-launch label{font-size:11px;letter-spacing:1.2px;color:#9a9c9d;font-weight:700;text-transform:uppercase;margin-top:8px}
.web-url{display:flex;align-items:center;gap:10px;background:#0b0c0d;border:1px solid #34383a;border-radius:8px;padding:0 14px;color:#8d9091}
.web-url:focus-within{border-color:var(--orange)}
.web-url svg{width:18px;height:18px;flex:none}
.web-launch input,.web-launch select,.auth-card input{font:inherit;color:#fff;background:transparent;border:0;outline:0;padding:14px 0;width:100%;font-size:15px}
.web-launch select{background:#0b0c0d;border:1px solid #34383a;border-radius:8px;padding:14px;color:#fff}
.web-launch .button{margin-top:16px;justify-content:center;gap:10px;border:0;cursor:pointer;font-family:inherit}
.web-launch .fineprint a{color:var(--orange2)}
.auth{display:grid;place-items:center;min-height:60vh;padding:60px 20px}
.auth-card{width:100%;max-width:400px;background:#111315;border:1px solid #2e3132;border-radius:14px;padding:34px;display:flex;flex-direction:column;gap:8px}
.auth-card h1{font-size:28px;letter-spacing:-.02em;margin:0}.auth-card p{color:var(--muted);margin:0 0 12px;font-size:14px}
.auth-card label{font-size:11px;letter-spacing:1.2px;color:#9a9c9d;font-weight:700;text-transform:uppercase;margin-top:8px}
.auth-card input{background:#0b0c0d;border:1px solid #34383a;border-radius:8px;padding:13px 14px}.auth-card input:focus{border-color:var(--orange)}
.auth-card .button{margin-top:16px;justify-content:center;border:0;cursor:pointer;font-family:inherit}
.auth-card .auth-msg{color:var(--orange2);font-size:13px;margin:10px 0 0}
.status-card{max-width:520px}.status-list{border-top:1px solid #303235;margin:14px 0 4px}.status-line{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #303235;padding:11px 0;font-size:13px}.status-line b{color:#f5f2ed}.status-line span{color:#a9abad}.status-line span:before{content:"●";color:#ff5b16;font-size:10px;padding-right:7px}
@media(max-width:800px){.web{grid-template-columns:1fr;gap:36px;padding-top:80px;padding-bottom:80px}}

/* Abuse report form */
.policy h3{font-size:15px;color:#fff;margin:20px 0 4px}
.abuse-form{display:flex;flex-direction:column;gap:8px;margin:18px 0 20px;text-align:left}
.abuse-form label{font-size:11px;letter-spacing:1.2px;color:#9a9c9d;font-weight:700;text-transform:uppercase;margin-top:8px}
.abuse-form input,.abuse-form select,.abuse-form textarea{font:inherit;font-size:15px;color:#fff;background:#0b0c0d;border:1px solid #34383a;border-radius:8px;padding:13px 14px;width:100%;outline:0;resize:vertical}
.abuse-form input:focus,.abuse-form select:focus,.abuse-form textarea:focus{border-color:var(--orange)}
.abuse-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.abuse-form .button{align-self:flex-start;border:0;cursor:pointer;font-family:inherit;margin-top:12px}
.abuse-msg{color:var(--orange2)!important;font-size:13px!important;margin:6px 0 0!important}
.report{max-width:780px;margin:90px auto 0;padding:32px;background:#111315;border:1px solid #2e3132;border-radius:14px;text-align:left}
.report h3{font-size:22px;letter-spacing:-.01em;margin:0 0 6px}.report>p{color:var(--muted);margin:0}
@media(max-width:800px){.abuse-row{grid-template-columns:1fr}.report{padding:24px 20px}}

.report .eyebrow{margin:0 0 10px}

/* App showcase */
.appshow{padding-top:20px;padding-bottom:100px}
.appshow-head{max-width:560px;margin-bottom:30px}
.appshow-head h2{font-size:clamp(34px,4.6vw,52px);letter-spacing:-.03em;line-height:1.02;margin:0 0 14px}
.appshow-head p:not(.eyebrow){color:var(--muted);margin:0}
.appshow-stage{display:flex;align-items:center;justify-content:center;gap:28px}
.shot{margin:0}
.shot img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid #33373a;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.shot figcaption{margin:0 0 12px;font-size:11px;letter-spacing:1.3px;text-transform:uppercase;color:#8d9091;font-weight:700}
.shot-desktop{width:min(740px,64%)}
.shot-phone{width:min(260px,24%)}
.shot-phone img{border-radius:26px}
@media(max-width:800px){.appshow{padding-top:10px;padding-bottom:70px}.appshow-stage{flex-direction:column;gap:32px}.shot-desktop{width:100%}.shot-phone{width:min(260px,70%)}}
.how{padding-bottom:70px}
.appshow{padding-bottom:30px}
.web{padding-top:50px}
.shot{position:relative;z-index:2}
@media(max-width:800px){.appshow{padding-bottom:20px}.web{padding-top:40px}}
/* Keep these clear of the page-wide dotted overlay */
.web-launch,.location-grid article,.secure-diagram,.download-card,.report{position:relative;z-index:2}
.web{padding-bottom:40px}
.locations{padding-top:70px}
@media(max-width:800px){.web{padding-bottom:30px}.locations{padding-top:60px}}

/* Nav: solid, full-width, above the grain on every page */
.nav{background:var(--bg);box-shadow:0 0 0 100vmax var(--bg);clip-path:inset(0 -100vmax)}

/* Persistent nav */
.nav{position:sticky;top:0;z-index:100}
html{scroll-padding-top:90px}
/* Interactive globe */
.hero-globe-wrap{pointer-events:auto}
.hero-globe-wrap canvas{touch-action:pan-y;-webkit-user-select:none;user-select:none}
.hero-inner{pointer-events:none}
.hero-inner .hero-copy{pointer-events:auto}
.hero-globe-wrap{right:-4%;width:min(760px,60vw)}
.hero-inner .hero-copy{pointer-events:none}
.hero-inner .hero-copy>*{pointer-events:auto;width:fit-content;max-width:100%}
.hero-stars,.hero-cinematic:before{pointer-events:none}
.hero-globe-wrap.hero-globe-labels{z-index:4;pointer-events:none}
.hero-globe-labels canvas{pointer-events:none}

/* Mobile: let the globe become a real visual object rather than a faint backdrop.
   It intentionally hangs off the right edge, leaving roughly half visible. */
@media(max-width:800px){
  .hero-cinematic{overflow:hidden}
  .hero-globe-wrap{width:142vw;max-width:none;right:-72vw;top:55%;transform:translateY(-50%);opacity:.78}
  .hero-globe-wrap.hero-globe-labels{right:-72vw;opacity:1}
}

/* Large monitors: grow the layout instead of leaving empty margins */
@media(min-width:1400px){
.shell{max-width:clamp(1180px,calc(1180px + (100vw - 1300px) * .75),1760px)}
.hero-inner{min-height:clamp(630px,calc(630px + (100vw - 1300px) * .28),860px);padding-top:clamp(74px,calc(74px + (100vw - 1300px) * .05),120px)}
.arrival-headline{font-size:min(6vw,124px)!important}
.hero-lede{font-size:clamp(18px,1.15vw,23px);max-width:clamp(550px,38vw,680px)}
.hero-cinematic .actions .button{font-size:clamp(14px,.9vw,17px);padding:clamp(15px,1.1vw,20px) clamp(19px,1.5vw,28px)}
.hero-globe-wrap{width:min(60vw,1020px);right:-2%}
.hero-cinematic{min-height:clamp(690px,calc(690px + (100vw - 1300px) * .3),900px)}
.section-head h2,.secure-story h2,.web h2,.appshow-head h2,.fair h2,.download h2{font-size:clamp(56px,3.9vw,80px)}
.how{padding-top:clamp(130px,9vw,190px)}
.section-head>p:last-child,.web-copy p:not(.eyebrow),.appshow-head p:not(.eyebrow),.secure-story p:not(.eyebrow){font-size:clamp(16px,1vw,19px);max-width:clamp(340px,28vw,520px)}
.steps h3{font-size:clamp(24px,1.6vw,30px)}
.steps p{font-size:clamp(16px,1vw,18px);max-width:clamp(300px,24vw,400px)}
.location-grid h3{font-size:clamp(22px,1.5vw,28px)}
.location-grid article{min-height:clamp(210px,14vw,280px)}
.shot-desktop{width:min(1000px,64%)}.shot-phone{width:min(340px,24%)}
.download-grid{max-width:clamp(780px,52vw,980px)}
.web-launch{padding:clamp(28px,2vw,40px)}
.report{max-width:clamp(780px,52vw,980px)}
.policy{max-width:clamp(780px,50vw,900px)}
.secure-diagram{min-height:clamp(280px,20vw,380px)}
.device,.server{width:clamp(116px,8vw,150px);height:clamp(116px,8vw,150px)}
}
@media(min-width:1400px){.appshow-head{max-width:clamp(560px,42vw,800px)}}

/* Seamless ticker */
@keyframes tick-loop{to{transform:translateX(-50%)}}
.ticker div{display:flex;width:max-content}
.ticker .tk{display:block;flex:none;white-space:nowrap}
