:root {
  color-scheme: dark;
  --bg: #0b0e0b;
  --surface: #111611;
  --raised: #192019;
  --text: #f2f5ee;
  --muted: #a6afa2;
  --faint: #84937d;
  --line: #2a3427;
  --accent: #a6ff83;
  --accent2: #65df93;
  --ink: #14200d;
  --header: rgba(11, 14, 11, .92)
}

:root[data-theme=light] {
  color-scheme: light;
  --bg: #f6f8f1;
  --surface: #fff;
  --raised: #e9efdf;
  --text: #182016;
  --muted: #515f49;
  --faint: #5a6c50;
  --line: #c8d1be;
  --accent2: #197e42;
  --header: rgba(246, 248, 241, .94)
}

* {
  box-sizing: border-box
}

html {
  scroll-behavior: auto;
  scroll-padding-top: 112px
}

html.js {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 16px/1.6 Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased
}

body:has(dialog[open]) {
  overflow: hidden
}

a {
  color: inherit;
  text-decoration: none
}

button,
input {
  font: inherit
}

button {
  color: inherit;
  cursor: pointer
}

a,
button,
summary,
label {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent
}

p,
h1,
h2,
h3,
figure {
  margin: 0
}

img {
  max-width: 100%;
  display: block
}

svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--accent2);
  outline-offset: 5px
}

::selection {
  background: var(--accent);
  color: var(--ink)
}

[hidden] {
  display: none !important
}

.wrap {
  width: min(1200px, calc(100% - 80px));
  margin-inline: auto
}

.svg-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap
}

.skip-link {
  position: fixed;
  left: 16px;
  top: 0;
  z-index: 100;
  padding: 12px;
  background: var(--accent);
  color: var(--ink);
  transform: translateY(-110%)
}

.skip-link:focus {
  transform: none
}

.header {
  position: sticky;
  top: 0;
  z-index: 30;
  border-bottom: 1px solid var(--line);
  background: var(--header);
  backdrop-filter: blur(18px)
}

.nav-shell {
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.4px;
  line-height: 1.2
}

.brand img {
  border-radius: 10px
}

.nav {
  display: flex;
  align-items: center;
  gap: 28px;
  color: var(--muted);
  font-size: 14px
}

.nav a {
  padding-block: 15px
}

.nav a:hover {
  color: var(--text)
}

.nav-actions {
  display: flex;
  gap: 12px;
  align-items: center
}

.language,
.icon-button {
  width: 44px;
  min-width: 44px;
  height: 44px;
  display: grid;
  place-content: center
}

.language {
  font-size: 14px;
  font-weight: 700
}

.icon-button {
  background: none;
  border: 1px solid var(--line);
  border-radius: 50%
}

.icon-button svg {
  width: 18px;
  height: 18px
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  min-height: 56px;
  padding: 16px 24px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: var(--accent);
  color: var(--ink);
  font-size: 16px;
  font-weight: 700;
  transition: transform .25s, background .25s, border-color .25s
}

.button svg {
  width: 20px;
  height: 20px
}

.button:hover {
  transform: translateY(-2px);
  background: #c1ffa8
}

.button-small {
  min-height: 44px;
  font-size: 14px;
  padding: 11px 16px;
  gap: 14px
}

.button-outline {
  border-color: var(--faint);
  background: transparent;
  color: var(--text)
}

.button-outline:hover {
  background: var(--raised);
  border-color: var(--accent2)
}

.menu-toggle {
  display: none
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  font-weight: 600;
  min-height: 44px
}

.text-link svg {
  width: 18px;
  height: 18px;
  transition: transform .25s
}

.text-link:hover svg {
  transform: translateX(4px)
}

h2 {
  font-size: 42px;
  line-height: 1.15;
  letter-spacing: -1.7px;
  font-weight: 500
}

h3 {
  font-size: 22px;
  line-height: 1.3;
  letter-spacing: -.5px;
  font-weight: 500
}

.hero {
  padding-block: 86px 90px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center
}

.hero h1 {
  font-size: clamp(48px, 5.15vw, 74px);
  font-weight: 700;
  letter-spacing: -3px;
  line-height: 1.03
}

.hero-lead {
  display: block;
  color: var(--muted);
  font-size: 24px;
  letter-spacing: -.4px;
  font-weight: 400;
  margin-bottom: 22px
}

.gradient-text {
  background: linear-gradient(110deg, #c1ff9a, #8bf59a 60%, #58dfaa);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent
}

[data-theme=light] .gradient-text {
  background: linear-gradient(100deg, #377a12, #14703b);
  background-clip: text;
  -webkit-background-clip: text
}

.hero-intro {
  font-size: 17px;
  color: var(--muted);
  max-width: 460px;
  margin-top: 28px;
  line-height: 1.75
}

.hero-actions {
  margin-top: 30px
}

.hero-note {
  font-size: 14px;
  color: var(--faint);
  margin-top: 18px
}

.connection-art {
  background: radial-gradient(ellipse at 50% 45%, #8bf59a0b, transparent 65%), var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 28px 24px;
  position: relative;
  overflow: hidden
}

.connection-art figcaption {
  display: flex;
  gap: 18px;
  align-items: start;
  justify-content: space-between
}

.connection-art h2 {
  font-size: 18px;
  letter-spacing: -.4px;
  line-height: 1.45;
  max-width: 250px
}

.connection-art figcaption>span {
  font-size: 14px;
  color: var(--muted);
  padding: 2px 8px;
  border: 1px solid var(--line);
  border-radius: 4px
}

.connection-flow {
  display: grid;
  grid-template-columns: 1fr 24px 1fr 24px 1fr;
  gap: 5px;
  align-items: center;
  margin: 56px 0 40px
}

.flow-node {
  text-align: center;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 17px
}

.node-icon {
  width: 64px;
  height: 64px;
  border: 1px solid var(--faint);
  border-radius: 14px;
  display: grid;
  place-content: center;
  background: var(--raised)
}

.node-icon>svg {
  width: 28px;
  height: 28px;
  color: var(--text)
}

.flow-vpn>img {
  border-radius: 14px;
  border: 1px solid #5c675a;
  box-shadow: 0 0 32px #a6ff8312
}

.flow-node strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4
}

.flow-node div>span {
  display: block;
  font-size: 14px;
  color: var(--muted);
  margin-top: 7px;
  line-height: 1.4
}

.flow-connector {
  align-self: start;
  margin-top: 20px;
  color: var(--accent2);
  animation: flow 3s ease-in-out infinite
}

.flow-connector:nth-of-type(4) {
  animation-delay: .8s
}

.flow-connector svg {
  width: 24px;
  height: 24px
}

.diagram-path {
  padding: 16px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 14px;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 1.5
}

.diagram-path svg {
  width: 19px;
  height: 19px;
  color: var(--accent2)
}

.diagram-note {
  font-size: 14px;
  color: var(--faint);
  margin-top: 18px;
  line-height: 1.6
}

.everyday {
  border-block: 1px solid var(--line);
  background: var(--surface);
  padding: 28px 0
}

.service-heading {
  font-size: 14px;
  color: var(--muted)
}

.services {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 36px;
  margin: 22px 0
}

.services>a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  font-size: 23px;
  font-weight: 600;
  letter-spacing: -.7px
}

.social-icon {
  width: 27px;
  height: 27px;
  fill: currentColor;
  stroke: none
}

.service-arrow {
  margin-left: auto;
  width: 17px;
  height: 17px;
  color: var(--faint)
}

.services a:hover {
  color: var(--accent2)
}

.service-disclaimer {
  font-size: 14px;
  line-height: 1.6;
  color: var(--faint)
}

.section {
  padding-block: 96px
}

.section-heading {
  margin-bottom: 36px
}

.section-heading p {
  color: var(--muted);
  font-size: 16px;
  margin-top: 18px
}

.pricing-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
  margin-bottom: 36px
}

fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0
}

legend {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 14px;
  padding: 0
}

.segmented {
  display: flex;
  gap: 6px;
  background: var(--surface);
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 8px;
  width: fit-content
}

.segmented label,
.traffic-choices label {
  position: relative;
  cursor: pointer
}

.segmented input,
.traffic-choices input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none
}

.segmented label>span {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 108px;
  min-height: 44px;
  padding: 10px 17px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 14px;
  color: var(--muted);
  transition: background .25s, color .25s
}

.segmented input:checked+span {
  background: var(--accent);
  color: var(--ink)
}

.segmented input:focus-visible+span,
.traffic-choices input:focus-visible+span {
  outline: 2px solid var(--accent2);
  outline-offset: 3px
}

.traffic-choices {
  display: flex;
  gap: 10px
}

.traffic-choices label {
  flex: 1
}

.traffic-choices label>span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  padding: 12px 16px;
  border: 1px solid var(--faint);
  border-radius: 6px;
  background: var(--surface);
  font-size: 14px
}

.traffic-choices strong {
  font-weight: 500
}

.traffic-choices label>span>span {
  color: var(--muted);
  white-space: nowrap
}

.traffic-choices input:checked+span {
  border-color: var(--accent2);
  background: var(--raised)
}

.traffic-field>p {
  font-size: 14px;
  color: var(--muted);
  margin-top: 9px
}

.no-js-update {
  grid-column: 1/-1;
  width: fit-content
}

html.js .no-js-update {
  display: none
}

.plan-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px
}

.plan-card {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  position: relative;
  min-width: 0;
  transition: border-color .25s, background .25s;
  display: flex;
  flex-direction: column
}

.plan-card:hover {
  border-color: var(--faint)
}

.plan-card.is-selected {
  border-color: var(--accent2);
  background: linear-gradient(150deg, #a6ff830b, var(--surface) 65%)
}

.plan-title {
  margin-bottom: 30px
}

.plan-title h3 {
  font-size: 24px
}

.plan-title>span {
  color: var(--muted);
  font-size: 14px;
  display: block;
  margin-top: 6px
}

.price-reference {
  font-size: 14px;
  color: var(--faint);
  height: 24px;
  margin-bottom: 6px
}

.price-reference[hidden] {
  display: block !important;
  visibility: hidden
}

.price {
  display: flex;
  align-items: baseline;
  gap: 7px;
  white-space: nowrap;
  letter-spacing: -1px
}

.price>strong {
  font-size: 48px;
  line-height: 1.05;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: -2.3px
}

.price>span:last-child {
  font-size: 14px;
  color: var(--muted);
  letter-spacing: 0
}

.approx {
  font-size: 23px;
  color: var(--muted);
  letter-spacing: 0
}

.term-price {
  font-size: 14px;
  margin-top: 14px;
  color: var(--muted);
  line-height: 1.6
}

.term-price>strong {
  font-weight: 500;
  color: var(--text)
}

.saving {
  font-size: 14px;
  color: var(--accent2);
  margin-top: 12px;
  min-height: 24px
}

.saving[hidden] {
  display: block !important;
  visibility: hidden
}

.plan-includes {
  list-style: none;
  padding: 22px 0 0;
  margin: 22px 0 28px;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 14px;
  color: var(--muted);
  font-size: 14px
}

.plan-includes li {
  display: flex;
  align-items: center;
  gap: 9px;
  line-height: 1.5
}

.plan-includes svg {
  width: 17px;
  height: 17px;
  color: var(--accent2)
}

.plan-select {
  width: 100%;
  justify-content: space-between;
  margin-top: auto
}

.pricing-notes {
  font-size: 14px;
  color: var(--faint);
  margin-top: 22px;
  max-width: 880px;
  line-height: 1.7
}

.pricing-notes p+p {
  margin-top: 6px
}

.features-section {
  padding: 64px 0;
  background: var(--surface);
  border-block: 1px solid var(--line)
}

.features-section h2 {
  font-size: 34px;
  letter-spacing: -1.2px
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 42px;
  margin-top: 42px
}

.feature-card {
  min-width: 0
}

.feature-card>svg {
  width: 28px;
  height: 28px;
  color: var(--accent2);
  margin-bottom: 20px
}

.feature-card h3 {
  font-size: 21px;
  line-height: 1.35
}

.feature-card p {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.8;
  margin-top: 14px
}

.subscription-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start
}

.subscription-copy h2 {
  max-width: 440px
}

.subscription-copy>p {
  font-size: 16px;
  color: var(--muted);
  max-width: 420px;
  margin-top: 20px
}

.subscription-copy .subscription-existing {
  font-size: 14px;
  margin-top: 28px;
  line-height: 1.8
}

.selection-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  padding: 28px;
  min-height: 260px
}

.selection-card>h3 {
  font-size: 22px
}

.selection-empty {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.8;
  margin-top: 18px
}

.selection-card>.text-link {
  margin-top: 16px
}

.selection-details dl {
  margin: 26px 0 0;
  display: grid;
  gap: 14px;
  font-size: 14px
}

.selection-details dl>div {
  display: flex;
  justify-content: space-between;
  gap: 16px
}

.selection-details dt {
  color: var(--muted)
}

.selection-details dd {
  margin: 0;
  text-align: right;
  max-width: 68%
}

.selection-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid var(--line);
  margin-top: 24px;
  padding-top: 20px;
  font-size: 14px
}

.selection-total strong {
  font-size: 32px;
  font-weight: 500;
  letter-spacing: -1px;
  font-variant-numeric: tabular-nums
}

.selection-disclaimer {
  font-size: 14px;
  color: var(--faint);
  margin-top: 10px
}

.selection-action {
  width: 100%;
  justify-content: space-between;
  margin-top: 24px
}

.faq-section {
  padding-bottom: 88px;
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 70px
}

.faq-section>h2 {
  max-width: 350px;
  font-size: 36px;
  line-height: 1.2
}

.faq-list details {
  border-top: 1px solid var(--line)
}

.faq-list details:last-child {
  border-bottom: 1px solid var(--line)
}

.faq-list summary {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  list-style: none;
  padding: 22px 0;
  font-size: 17px;
  line-height: 1.5
}

.faq-list summary::-webkit-details-marker {
  display: none
}

.faq-list summary svg {
  width: 20px;
  height: 20px;
  color: var(--muted);
  transition: transform .25s
}

.faq-list details[open] summary svg {
  transform: rotate(45deg)
}

.faq-list details>p {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.8;
  padding: 0 32px 24px 0;
  animation: fade .3s
}

.connect-info {
  padding-bottom: 64px
}

.contact-copy {
  max-width: 650px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  padding: 28px
}

.contact-copy h2 {
  font-size: 30px;
  letter-spacing: -1px;
  line-height: 1.25
}

.contact-copy>p {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.8;
  margin-top: 20px
}

.contact-copy .contact-selection {
  color: var(--text);
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 5px
}

.contact-selection:empty {
  display: none
}

.contact-copy .button {
  margin-top: 24px
}

.contact-copy .text-link {
  display: flex;
  width: fit-content;
  margin-top: 16px
}

.contact-notice {
  border-left: 2px solid var(--faint);
  padding-left: 16px
}

html.has-dialog .connect-info {
  display: none
}

html.has-dialog .connect-info:target {
  display: block
}

.footer {
  padding-bottom: 28px
}

.footer-top {
  border-top: 1px solid var(--line);
  padding: 28px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px
}

.footer-top>div {
  display: flex;
  gap: 28px;
  color: var(--muted);
  font-size: 14px
}

.footer-top>div a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px
}

.footer-top svg {
  width: 15px;
  height: 15px
}

.footer-bottom {
  border-top: 1px solid var(--line);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  gap: 32px;
  font-size: 14px;
  color: var(--faint);
  line-height: 1.7
}

.footer-bottom>p {
  max-width: 480px
}

.footer-bottom>a {
  min-height: 44px
}

dialog {
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 40px;
  width: min(580px, calc(100% - 32px));
  max-height: calc(100dvh - 40px);
  overflow: auto;
  box-shadow: 0 30px 120px #0007
}

dialog::backdrop {
  background: #000b;
  backdrop-filter: blur(8px)
}

dialog .contact-copy {
  padding: 22px 0 0;
  border: 0;
  background: none
}

dialog .dialog-close {
  position: absolute;
  right: 12px;
  top: 12px
}

dialog .dialog-close svg {
  transform: rotate(45deg);
  width: 18px;
  height: 18px
}

html.js .reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .65s, transform .65s
}

html.js .reveal.visible {
  opacity: 1;
  transform: none
}

.plan-card:nth-child(2) {
  transition-delay: .06s
}

.plan-card:nth-child(3) {
  transition-delay: .12s
}

@keyframes flow {
  50% {
    opacity: .35;
    transform: translateX(3px)
  }
}

@keyframes fade {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@media(max-width:1150px) {
  .wrap {
    width: calc(100% - 64px)
  }

  .nav {
    gap: 24px
  }

  .header-connect {
    display: none
  }

  .hero {
    gap: 36px;
    padding-block: 70px
  }

  .hero h1 {
    font-size: 5.5vw
  }

  .connection-art {
    padding: 22px 18px
  }

  .connection-art figcaption {
    flex-direction: column;
    gap: 12px
  }

  .connection-flow {
    margin: 32px 0;
    grid-template-columns: 1fr 18px 1fr 18px 1fr;
    gap: 2px
  }

  .flow-connector svg {
    width: 18px
  }

  .flow-node div>span {
    font-size: 14px
  }

  .plan-card {
    padding: 24px
  }

  .price>strong {
    font-size: 42px
  }

  .pricing-options {
    gap: 32px
  }

  .traffic-choices label>span {
    padding: 12px;
    gap: 8px
  }

  .feature-grid {
    gap: 30px
  }

  .subscription-section {
    gap: 48px
  }

  .faq-section {
    gap: 48px
  }
}

@media(max-width:900px) {
  .hero {
    grid-template-columns: 1fr;
    gap: 42px
  }

  .hero h1 {
    font-size: 64px
  }

  .hero-copy {
    max-width: 620px
  }

  .hero-intro {
    max-width: 510px
  }

  .connection-art {
    padding: 28px
  }

  .connection-art figcaption {
    flex-direction: row
  }

  .connection-art h2 {
    max-width: none
  }

  .connection-flow {
    margin: 38px 0;
    grid-template-columns: 1fr 40px 1fr 40px 1fr;
    gap: 14px
  }

  .flow-connector svg {
    width: 32px
  }

  .flow-node div>span {
    font-size: 14px
  }

  .connection-art {
    max-width: 680px;
    width: 100%
  }

  .services {
    gap: 24px
  }

  .services>a {
    font-size: 21px
  }

  .service-arrow {
    display: none
  }

  .pricing-options {
    grid-template-columns: 1fr;
    gap: 28px
  }

  .traffic-field {
    max-width: 550px
  }

  .plan-grid {
    gap: 12px
  }

  .plan-card {
    padding: 22px 16px
  }

  .plan-title h3 {
    font-size: 22px
  }

  .price>strong {
    font-size: 34px;
    letter-spacing: -1.8px
  }

  .price {
    gap: 5px
  }

  .approx {
    font-size: 18px
  }

  .price>span:last-child {
    font-size: 14px
  }

  .term-price {
    font-size: 14px
  }

  .plan-includes {
    font-size: 14px
  }

  .plan-select {
    padding-inline: 16px;
    font-size: 14px;
    gap: 14px
  }

  .feature-grid {
    gap: 24px
  }

  .feature-card h3 {
    font-size: 20px
  }

  .subscription-section {
    gap: 32px
  }

  .selection-card {
    padding: 24px
  }

  .selection-action {
    font-size: 14px;
    gap: 12px;
    padding-inline: 16px
  }

  .faq-section {
    grid-template-columns: 1fr;
    gap: 36px
  }

  .faq-section>h2 {
    max-width: none
  }

  .footer-bottom {
    flex-wrap: wrap;
    gap: 16px
  }

  .footer-bottom>p {
    order: 3;
    max-width: none;
    width: 100%
  }

  .footer-bottom>a {
    margin-left: auto
  }
}

@media(max-width:650px) {
  .wrap {
    width: calc(100% - 40px)
  }

  .nav-shell {
    height: 76px;
    gap: 12px
  }

  .brand {
    font-size: 16px;
    gap: 10px
  }

  .brand img {
    width: 40px;
    height: 40px
  }

  .nav {
    display: none;
    position: absolute;
    top: 75px;
    left: 0;
    right: 0;
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    padding: 18px 20px;
    flex-direction: column;
    gap: 0;
    align-items: stretch
  }

  .nav.is-open {
    display: flex
  }

  .nav>a {
    font-size: 16px;
    padding-block: 14px
  }

  .nav-actions {
    gap: 2px
  }

  .theme-toggle {
    border: 0
  }

  .menu-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 0
  }

  .menu-toggle span {
    display: block;
    width: 18px;
    height: 1px;
    background: var(--text);
    transition: transform .2s
  }

  .menu-toggle[aria-expanded=true] span:first-child {
    transform: translateY(3px) rotate(45deg)
  }

  .menu-toggle[aria-expanded=true] span:last-child {
    transform: translateY(-3px) rotate(-45deg)
  }

  .hero {
    padding-block: 46px 48px;
    gap: 36px
  }

  .hero h1 {
    font-size: clamp(40px, 11.3vw, 64px);
    letter-spacing: -2.1px;
    line-height: 1.05
  }

  .hero-lead {
    font-size: 22px;
    margin-bottom: 16px
  }

  .hero-intro {
    font-size: 16px;
    margin-top: 24px
  }

  .hero-actions .button {
    width: 100%;
    justify-content: space-between
  }

  .hero-note {
    font-size: 14px;
    line-height: 1.7
  }

  .connection-art {
    padding: 24px 20px
  }

  .connection-art figcaption {
    flex-direction: column;
    gap: 8px
  }

  .connection-art h2 {
    font-size: 18px
  }

  .connection-art figcaption>span {
    border: 0;
    padding: 0;
    color: var(--faint)
  }

  .connection-flow {
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 28px 0
  }

  .flow-node {
    flex-direction: row;
    text-align: left;
    gap: 18px;
    align-items: center
  }

  .flow-node div>span {
    margin-top: 3px
  }

  .node-icon,
  .flow-vpn>img {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 10px
  }

  .node-icon>svg {
    width: 24px;
    height: 24px
  }

  .flow-node strong {
    font-size: 16px
  }

  .flow-connector {
    margin: 0 0 0 12px;
    align-self: center;
    width: 24px;
    height: 20px;
    animation: none;
    transform: rotate(90deg)
  }

  .flow-connector svg {
    width: 24px;
    height: 20px
  }

  .diagram-path {
    font-size: 14px;
    padding: 14px 10px;
    align-items: start
  }

  .diagram-path svg {
    margin-top: 2px
  }

  .diagram-note {
    font-size: 14px
  }

  .everyday {
    padding: 24px 0
  }

  .services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 24px;
    margin: 18px 0
  }

  .services>a {
    font-size: 21px;
    gap: 10px
  }

  .social-icon {
    width: 25px;
    height: 25px
  }

  .service-disclaimer {
    font-size: 14px
  }

  .section {
    padding-block: 60px
  }

  h2 {
    font-size: 34px;
    letter-spacing: -1.2px
  }

  .section-heading {
    margin-bottom: 28px
  }

  .section-heading p {
    margin-top: 16px;
    font-size: 16px
  }

  .pricing-options {
    gap: 24px;
    margin-bottom: 24px
  }

  .segmented {
    width: 100%
  }

  .segmented label {
    flex: 1
  }

  .segmented label>span {
    min-width: 0;
    padding: 10px;
    font-size: 14px
  }

  .traffic-choices {
    gap: 8px
  }

  .traffic-choices label>span {
    flex-direction: column;
    align-items: start;
    gap: 4px;
    padding: 12px
  }

  .traffic-field>p {
    margin-top: 12px
  }

  .plan-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px
  }

  .plan-card {
    padding: 26px
  }

  .plan-title {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    margin-bottom: 24px
  }

  .plan-title h3 {
    font-size: 25px
  }

  .plan-title>span {
    margin: 0
  }

  .price>strong {
    font-size: 49px;
    letter-spacing: -2px
  }

  .price {
    gap: 8px
  }

  .approx {
    font-size: 24px
  }

  .plan-select {
    font-size: 16px;
    padding: 16px 22px
  }

  .plan-includes {
    margin: 20px 0 24px;
    padding-top: 20px
  }

  .pricing-notes {
    font-size: 14px;
    line-height: 1.8
  }

  .features-section {
    padding: 48px 0
  }

  .features-section h2 {
    font-size: 30px
  }

  .feature-grid {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 32px
  }

  .feature-card {
    position: relative;
    padding-left: 44px
  }

  .feature-card>svg {
    position: absolute;
    left: 0;
    top: 0;
    width: 25px;
    height: 25px
  }

  .feature-card h3 {
    font-size: 21px
  }

  .feature-card p {
    margin-top: 10px;
    font-size: 16px
  }

  .subscription-section {
    grid-template-columns: 1fr;
    gap: 28px
  }

  .subscription-copy .subscription-existing {
    margin-top: 18px
  }

  .selection-card {
    padding: 24px
  }

  .selection-action {
    font-size: 15px;
    padding: 16px;
    gap: 12px
  }

  .selection-details dd {
    max-width: 68%
  }

  .selection-total strong {
    font-size: 30px
  }

  .faq-section {
    padding-bottom: 60px;
    gap: 28px
  }

  .faq-section>h2 {
    font-size: 32px
  }

  .faq-list summary {
    font-size: 17px;
    padding-block: 20px
  }

  .faq-list details>p {
    padding-right: 8px;
    font-size: 16px
  }

  .footer-top {
    align-items: start;
    flex-direction: column;
    gap: 16px
  }

  .footer-top>div {
    gap: 24px;
    font-size: 14px
  }

  .footer-bottom {
    font-size: 14px;
    gap: 16px
  }

  .footer-bottom>span {
    font-size: 14px
  }

  .footer-bottom>a {
    font-size: 14px
  }

  .contact-copy {
    padding: 24px
  }

  .contact-copy h2 {
    font-size: 27px
  }

  .contact-copy .button {
    width: 100%;
    font-size: 15px;
    gap: 12px
  }

  dialog {
    padding: 32px 24px
  }

  dialog .contact-copy {
    padding-top: 28px
  }

  .connect-info {
    padding-bottom: 48px
  }
}

@media(max-width:360px) {
  .brand {
    font-size: 14px;
    gap: 8px
  }

  .brand img {
    width: 34px;
    height: 34px
  }

  .nav-actions {
    gap: 0
  }

  .nav-shell {
    gap: 8px
  }

  .hero h1 {
    font-size: 40px
  }

  .connection-art {
    padding: 22px 16px
  }

  .plan-card {
    padding: 22px
  }

  .plan-title h3 {
    font-size: 23px
  }

  .plan-title {
    gap: 8px
  }

  .plan-title>span {
    font-size: 14px
  }

  .selection-card {
    padding: 20px
  }

  .selection-action {
    font-size: 14px;
    padding-inline: 12px
  }

  .selection-details dl>div {
    gap: 10px
  }

  .services>a {
    font-size: 19px
  }

  .services {
    gap: 16px
  }

  .social-icon {
    width: 23px;
    height: 23px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto
  }

  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important
  }

  html.js .reveal {
    opacity: 1;
    transform: none
  }
}

/* Monthly plans have no duplicate total or empty discount placeholders. */
.price-reference[hidden],
.saving[hidden] {
  display: none !important;
  visibility: hidden
}

/* Keep the longest annual Maximum price inside narrow three-column cards. */
@media (min-width: 651px) and (max-width: 720px) {
  .price {
    gap: 4px;
  }

  .price>strong {
    font-size: 32px;
  }

  .approx {
    font-size: 16px;
  }
}
/* The account entry remains visible on mobile instead of hiding with the old CTA. */
@media(max-width:1150px){.header-connect{display:inline-flex}.nav{gap:16px}}
@media(max-width:720px){.header{padding-bottom:60px}.header-connect{position:absolute;left:20px;right:20px;bottom:12px;min-height:44px;justify-content:center}.header-connect svg{width:18px;height:18px}.nav-shell{height:76px}.nav{top:136px}html{scroll-padding-top:160px}}

.selection-card{background:radial-gradient(ellipse at 100% 0,#a2ff7b0c,transparent 70%),var(--surface);padding:32px;border-radius:12px}.selection-heading{display:flex;align-items:center;gap:16px}.selection-heading h3{font-size:26px;line-height:1.2;margin:4px 0 0;letter-spacing:-.03em}.selection-heading p{font-size:14px;letter-spacing:.07em;color:var(--muted);margin:0}.selection-spark{font-size:28px;color:var(--green);width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;flex-shrink:0}.selection-check{margin-left:auto;color:var(--mint);font-size:20px}.selection-details dl{font-size:16px;gap:18px;margin-top:28px}.selection-total{font-size:16px;margin-top:28px;padding-top:24px}.selection-total strong{font-size:36px}.selection-action{min-height:56px;border-radius:8px}.selection-edit{display:flex!important;justify-content:space-between;min-height:52px;border:1px solid var(--line);padding:14px 18px;border-radius:8px;font-size:16px!important;text-decoration:none;width:100%}.selection-disclaimer{line-height:1.6}.page-leaving{opacity:0;transform:translateY(-8px);transition:opacity .18s,transform .18s}@media(max-width:480px){.selection-card{padding:24px 20px}.selection-heading{gap:12px}.selection-heading h3{font-size:24px}.selection-heading p{letter-spacing:.02em}.selection-details dd{max-width:60%}}@media(prefers-reduced-motion:reduce){.page-leaving{opacity:1;transform:none;transition:none}}

/* Selected subscription is a single, stable card, not two competing CTAs. */
.subscription-section{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}.selection-card{min-width:0;min-height:0;padding:28px;background:var(--surface);border-radius:12px}.selection-heading{gap:12px}.selection-heading h3{font-size:24px}.selection-spark{width:40px;height:40px;border:0;background:none}.selection-heading>div{min-width:0}.selection-heading p{font-size:14px;letter-spacing:.03em}.selection-details dl{font-size:16px;gap:12px;margin-top:24px}.selection-details dl>div{align-items:baseline;min-width:0}.selection-details dd{min-width:0;overflow-wrap:anywhere}.selection-total{margin-top:24px;padding-top:20px;flex-wrap:wrap}.selection-total strong{font-size:32px;white-space:nowrap}.selection-action{margin-top:24px;min-height:52px;gap:16px;font-size:16px;line-height:1.4;text-align:left}.selection-action>span{min-width:0}.selection-action svg,.selection-edit svg{width:20px;height:20px;flex:0 0 20px}.selection-edit{border:0;border-radius:0;padding:12px 0 0;min-height:44px;margin-top:4px!important;font-size:14px!important;width:fit-content;gap:12px}.selection-edit svg{width:16px;height:16px;flex-basis:16px}.selection-card:focus-visible{outline:2px solid var(--green);outline-offset:5px}
@media(max-width:800px){.subscription-section{grid-template-columns:1fr;gap:28px}.selection-card{width:100%}}@media(max-width:480px){.selection-card{padding:24px 20px}.selection-heading h3{font-size:22px}.selection-heading{gap:8px}.selection-details dl{font-size:14px}.selection-total strong{font-size:30px}.selection-action{font-size:15px}.selection-details dd{max-width:65%}}
