/* Mobile is a reading and touch experience, with the same content as desktop. */
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.mobile-dock, .menu-scrim, .mobile-carousel-intro, .plan-switch, .compare-toggle { display:none; }
.menutoggle svg { width:23px; height:23px; }
.close-symbol { display:none; }
.menutoggle[aria-expanded=true] .menu-symbol { display:none; }
.menutoggle[aria-expanded=true] .close-symbol { display:block; }
.fan-dots button { display:grid; place-items:center; width:32px; height:40px; padding:0; border:0; background:transparent; }
.fan-dots button::after { content:''; width:4px; height:4px; background:#7DB294; border-radius:9px; transition:width .25s,background .25s; }
.fan-dots button.active::after { width:15px; background:var(--brand); }
.all-resources { display:flex; align-items:center; justify-content:center; gap:12px; margin:20px auto 0; min-height:48px; color:#D5E9DD; font-size:14px; }
.all-resources svg { width:18px; height:18px; }
.resource-search { display:flex; align-items:center; gap:12px; max-width:620px; margin:0 auto; padding:4px 18px; border:1px solid #CADBD1; background:#fff; border-radius:16px; }
.resource-search:focus-within { outline:2px solid #24B060; outline-offset:3px; }
.resource-search svg { width:22px; height:22px; color:#34654A; flex-shrink:0; }
.resource-search input { border:0; background:transparent; outline:none; margin:0; width:100%; min-height:50px; font-size:16px; padding:8px 0; }
.resource-count { margin:14px 0 32px; text-align:center; color:#647067; font-size:14px; }
.resource-catalog .card[hidden] { display:none; }
:where(a,button,input,select,textarea,summary) { -webkit-tap-highlight-color:transparent; }
:where(button,a,summary) { touch-action:manipulation; }
@media (max-width:1100px) {
  header, header.scrolled { z-index:120; }
  header:has(nav.open) { backdrop-filter:none; background:#fff; box-shadow:0 8px 30px #163C2B0A; }
  #site-navigation { position:fixed; inset:92px 4% auto; width:auto; max-height:calc(100dvh - 112px); padding:14px 20px 24px; border:1px solid #DFE8E2; box-shadow:0 20px 50px #163C2B18; overscroll-behavior:contain; }
  #site-navigation.open { animation:menu-arrive .26s cubic-bezier(.2,.8,.2,1); }
  #site-navigation > .dropdown { border-bottom:1px solid #E7EEE9; }
  #site-navigation .dropdown summary { min-height:62px; font-size:20px; font-weight:600; letter-spacing:-.5px; }
  #site-navigation .dropdown summary > span { transition:transform .2s; }
  #site-navigation .dropdown[open] summary > span { transform:rotate(180deg); }
  #site-navigation .dropdownpanel { padding:4px 0 12px; background:transparent; }
  #site-navigation .menu-links { gap:4px; }
  #site-navigation .menu-links > a { border-radius:12px; background:var(--support); padding:14px; min-height:70px; }
  #site-navigation .menu-links > a > svg { width:23px; height:23px; flex-shrink:0; }
  #site-navigation .menu-links b { font-size:14px; }
  #site-navigation .menu-links small { color:#647067; line-height:1.45; }
  #site-navigation > a:not(.button) { min-height:54px; font-size:16px; }
  #site-navigation .button { min-height:54px; }
  .menu-scrim:not([hidden]) { display:block; position:fixed; z-index:115; inset:0; width:100%; height:100%; border:0; background:#102B204D; animation:veil-arrive .2s; }
  @keyframes menu-arrive { from { opacity:0; transform:translateY(-12px); } to { opacity:1; transform:translateY(0); } }
  @keyframes veil-arrive { from { opacity:0; } to { opacity:1; } }
}
@media (max-width:760px) {
  html { scroll-padding-top:100px; }
  body { padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
  header, header.scrolled { inset:max(12px, env(safe-area-inset-top)) 16px auto; height:60px; width:calc(100% - 32px); padding:0 10px 0 20px; border-radius:32px; gap:10px; background:#FFFFFFF5; border:1px solid #EBF0ED; }
  header .wordmark { font-size:23px; }
  .menutoggle { width:44px; height:44px; flex-basis:44px; border:0; }
  #site-navigation { inset:84px 12px auto; padding:10px 18px 24px; max-height:calc(100dvh - 100px - env(safe-area-inset-bottom)); border-radius:24px; }
  #site-navigation .menu-links { grid-template-columns:1fr; }
  .mobile-dock { position:fixed; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; z-index:100; inset:auto 16px max(10px, env(safe-area-inset-bottom)); height:66px; max-height:none; width:auto; padding:5px 7px; overflow:visible; background:#FFFFFFF5; border:1px solid #DEE9E2; border-radius:24px; box-shadow:0 7px 35px #0B33231C; backdrop-filter:blur(16px); }
  .mobile-dock .dock-item { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; min-height:54px; height:54px; padding:6px; gap:3px; margin:0; border:0; border-radius:17px; background:transparent; color:#65736B; font-size:10px; line-height:1.2; font-weight:600; }
  .mobile-dock svg { width:22px; height:22px; stroke-width:1.8; transition:transform .2s; }
  .mobile-dock .is-current { background:#E9F5ED; color:#166F3D; }
  .dock-item:active svg { transform:scale(.88); }
  body.menu-is-open .mobile-dock { visibility:hidden; }
  .ref-wrap { padding-inline:24px; }
  .reference-home h2 { font-size:36px; line-height:1.12; letter-spacing:-1.4px; text-wrap:balance; }
  .reference-home p { line-height:1.65; }
  .ref-hero { min-height:0; display:flex; flex-direction:column; align-items:stretch; padding-top:112px; padding-bottom:48px; gap:0; }
  .ref-hero-copy { display:contents; }
  .ref-hero h1 { order:1; font-size:clamp(41px,11.5vw,62px); letter-spacing:-2px; line-height:1.05; margin-bottom:20px; }
  .ref-hero-copy > p { order:2; font-size:16px; line-height:1.6; margin:0; max-width:510px; }
  .ref-hero-action { order:3; margin-top:24px; display:block; }
  .ref-hero-action > span { display:block; margin-bottom:10px; font-size:12px; color:#647067; }
  .ref-hero-action .button { width:100%; min-height:54px; justify-content:space-between; font-size:15px; }
  .hero-objects { order:4; width:100%; max-width:380px; margin:32px auto 10px; height:310px; }
  .hero-object-front { width:190px; height:295px; }
  .hero-object-back { width:185px; height:287px; }
  .token-portrait .token-bottom strong { font-size:23px; }
  .ref-facts { order:5; display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:26px 0 0; padding-top:23px; border-top:1px solid #E3EBE6; }
  .ref-facts strong { font-size:28px; }
  .ref-facts strong span { font-size:15px; }
  .ref-facts small { font-size:12px; line-height:1.5; max-width:155px; }
  .ref-heading { margin-bottom:32px; }
  .ref-kicker { font-size:10px; letter-spacing:1.5px; }
  .ref-choice { padding-top:34px; padding-bottom:64px; }
  .ref-choice .ref-heading h2 { font-size:34px; }
  .ref-choice .ref-heading p { font-size:15px; }
  .choice-grid { grid-template-columns:1fr; gap:12px; }
  .choice-card { display:grid; grid-template-columns:64px 1fr; gap:0 20px; padding:26px 22px 20px; border-color:#E3EBE6; border-radius:22px; }
  .choice-card:hover { transform:none; }
  .choice-object { grid-row:1/4; width:64px; height:42px; margin:7px 0 0; }
  .choice-card h3 { font-size:23px; margin-bottom:8px; }
  .choice-card p { font-size:14px; line-height:1.6; margin-bottom:8px; }
  .choice-link { grid-column:2; font-size:14px; min-height:44px; }
  .choice-premium { border-color:#163C2B; }
  .ref-phone { grid-template-columns:1fr; padding-top:8px; padding-bottom:72px; gap:36px; }
  .phone-copy { order:1; }
  .phone-visual { order:2; }
  .phone-copy h2 { font-size:36px; }
  .phone-copy > p { font-size:16px; }
  .phone-benefit { gap:16px; margin-bottom:25px; }
  .phone-benefit > span { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; background:#F0F7F2; border-radius:13px; }
  .phone-benefit h3 { font-size:17px; line-height:1.3; }
  .phone-benefit p { font-size:14px; }
  .phone-copy .button { width:100%; min-height:52px; justify-content:space-between; }
  .phone-device { width:268px; height:532px; }
  .visual-caption { font-size:11px; margin-top:18px; }
  /* Real horizontal scrolling lets the browser handle momentum and interrupted gestures. */
  .ref-carousel { padding:60px 0 52px; overflow:hidden; }
  .ref-carousel .ref-heading { padding-inline:24px; margin-bottom:25px; }
  .ref-carousel h2 { font-size:35px; }
  .ref-carousel .ref-heading p { font-size:15px; }
  .mobile-carousel-intro { display:flex; justify-content:space-between; padding:0 24px 16px; font-size:12px; color:#BDD9C7; }
  .fan-counter { font-variant-numeric:tabular-nums; }
  .fan-stage { display:flex; position:relative; gap:14px; height:auto; width:100%; max-width:none; margin:0; padding:8px 24px 30px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-padding-inline:24px; scrollbar-width:none; perspective:none; touch-action:pan-x pan-y; overscroll-behavior-x:contain; }
  .fan-stage::-webkit-scrollbar { display:none; }
  .fan-stage .fan-card { position:relative; inset:auto; flex:0 0 calc(100% - 22px); width:auto; height:206px; padding:0; transform:none; border-radius:19px; scroll-snap-align:start; filter:none; transition:opacity .2s; }
  .fan-stage .fan-card .product-token { padding:24px; border-radius:19px; box-shadow:inset 1px 1px 1px #FFFFFF40,0 8px 16px #0002; }
  .fan-stage .token-mark { font-size:31px; }
  .fan-stage .token-top > svg { width:30px; height:30px; }
  .fan-stage .token-bottom { left:24px; right:24px; bottom:23px; }
  .fan-stage .token-bottom strong { font-size:19px; line-height:1.2; letter-spacing:-.5px; }
  .fan-stage .token-bottom small { font-size:8px; letter-spacing:1.1px; margin-bottom:8px; }
  .fan-stage .token-bottom > span { display:flex; font-size:8px; letter-spacing:1.5px; margin-top:16px; }
  .fan-stage .token-bottom i { font-size:18px; }
  .fan-stage .token-engraving { width:170px; height:170px; }
  .fan-stage .fan-card:focus-visible { outline-offset:-4px; }
  .fan-controls { padding:0 24px; gap:14px; align-items:center; }
  .fan-arrow { width:48px; height:48px; flex:0 0 48px; font-size:28px; }
  .fan-arrow:disabled { opacity:.3; cursor:default; }
  .fan-description { max-width:none; }
  .fan-description strong { font-size:17px; line-height:1.3; }
  .fan-description > span { font-size:13px; min-height:44px; margin-top:6px; }
  .fan-link { min-height:48px; font-size:14px; margin:13px 24px 0; }
  .fan-dots { gap:0; margin:0; justify-content:center; }
  .fan-dots button { width:40px; height:44px; }
  .fan-dots button::after { width:5px; height:5px; }
  .fan-dots button.active::after { width:20px; }
  .fan-play { display:none; }
  .all-resources { border-top:1px solid #FFFFFF22; padding-top:20px; margin:10px 24px 0; font-size:14px; }
  .ref-wallet { padding-top:22px; padding-bottom:68px; gap:34px; }
  .wallet-copy h2 { font-size:36px; }
  .wallet-copy p { font-size:16px; }
  .wallet-copy .button { min-height:52px; width:100%; justify-content:space-between; font-size:15px; }
  .wallet-visual { width:100%; max-width:350px; height:265px; }
  .wallet-card { width:205px; height:132px; }
  .wallet-case { height:160px; left:10px; right:6px; bottom:10px; }
  .ref-journey { padding-top:20px; padding-bottom:60px; }
  .journey-step { padding-left:45px; margin-bottom:20px; }
  .journey-steps::before, .journey-number { left:16px; }
  .journey-number { width:32px; height:32px; font-size:13px; }
  .journey-box { padding:24px 20px; border-radius:20px; }
  .journey-box h3 { font-size:22px; }
  .journey-box p { font-size:15px; }
  .ref-benefits { padding-bottom:60px; }
  .ref-benefit-grid { grid-template-columns:1fr; gap:12px; }
  .ref-benefit-card { padding:24px; border-radius:20px; }
  .ref-benefit-card h3 { font-size:20px; }
  .ref-benefit-card p { font-size:15px; }
  .ref-benefit-card > span { margin-bottom:18px; }
  .ref-close { padding-bottom:48px; }
  .ref-close-box { border-radius:24px; padding:34px 24px; }
  .ref-close-box h2 { font-size:33px; }
  .ref-close-box p { font-size:15px; }
  .ref-close-actions .button { min-height:52px; font-size:14px; }
  .ref-marquee { padding-block:22px; }
  .marquee-line > div { animation-duration:40s; }
  .marquee-line span { font-size:38px; }
  .ref-trust > span { font-size:11px; line-height:1.4; }
  .reference-home .footergrid a:not(.wordmark) { font-size:14px; min-height:44px; }
  .reference-home .footergrid b { font-size:12px; }
  .reference-home .footergrid p { font-size:15px; }
  .reference-inner main { padding-top:90px; }
  .reference-inner .pagehero { padding:32px 24px 42px; }
  .pagehero h1, .modulehero h1, .prose h1 { text-wrap:balance; }
  .section { padding-inline:24px; }
  .card { border-radius:20px; }
  .resource-catalog { padding-top:28px; }
  .resource-catalog .card { position:relative; padding:24px; }
  .resource-catalog .card > svg { width:30px; height:30px; }
  .resource-catalog .card h3 { font-size:23px; }
  .resource-catalog .card p { font-size:15px; }
  .resource-search { padding-inline:14px; }
  .resource-count { text-align:left; margin-bottom:24px; font-size:13px; }
  .pricing { padding-top:14px; }
  .mobile-enhanced .plan-switch { display:grid; grid-template-columns:repeat(3,1fr); position:sticky; top:84px; z-index:10; gap:4px; padding:5px; margin:0 auto 20px; max-width:560px; border:1px solid #DFE8E2; border-radius:18px; background:#F8FAF9F5; backdrop-filter:blur(12px); }
  .plan-switch button { min-height:48px; padding:8px; border:0; border-radius:13px; background:transparent; color:#647067; font-size:14px; font-weight:600; }
  .plan-switch [aria-selected=true] { background:#163C2B; color:#fff; box-shadow:0 3px 10px #163C2B16; }
  .mobile-enhanced .plan[hidden], .mobile-enhanced .tablewrap[hidden] { display:none; }
  .plan, .plan.recommended { border-radius:22px; padding:26px; }
  .plan .button { min-height:52px; }
  .plan .limits { font-size:15px; }
  .plan .checklist li { font-size:15px; line-height:1.6; }
  .plan { scroll-margin-top:158px; }
  .mobile-enhanced .compare-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:56px; border:1px solid #CBDCD1; border-radius:16px; background:#fff; padding:14px 18px; color:#163C2B; font-size:15px; margin:0 0 20px; }
  .compare-toggle span { font-size:22px; }
  .tabletitle { font-size:31px; text-align:left; margin:40px 0 20px; }
  .tablewrap { scroll-margin-top:100px; }
  tbody tr { border-radius:14px; }
  tbody th:first-child { font-size:15px; }
  tbody td { font-size:14px; padding-block:16px; }
  tbody td::before { font-size:12px; }
  input,textarea,select { font-size:16px; min-height:50px; }
  form { padding:24px 20px; border-radius:20px; }
  .faqs summary { min-height:48px; font-size:17px; line-height:1.4; }
  .faqs summary > span { flex-shrink:0; }
  .faqs p { font-size:16px; }
  .button:active, .fan-arrow:active { transform:scale(.98); }
  .reveal { transition-duration:.5s; }
}
@media (max-width:360px) {
  .ref-wrap, .section { padding-inline:20px; }
  .ref-hero h1 { font-size:41px; }
  .fan-stage { padding-inline:20px; scroll-padding-inline:20px; }
  .fan-stage .fan-card { height:200px; flex-basis:calc(100% - 14px); }
  .fan-stage .fan-card .product-token { padding:20px; }
  .fan-stage .token-bottom { left:20px; right:20px; }
  .fan-stage .token-bottom strong { font-size:18px; }
  .fan-controls { padding-inline:20px; gap:10px; }
  .fan-description strong { font-size:15px; }
  .mobile-dock { inset-inline:12px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@media (max-width:760px) {
  .reference-home { background:var(--brand-dark); }
  .ref-phone { overflow:clip; }
}
