@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:400 700;font-display:swap;src:url(../assets/fonts/bricolage-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/jetbrains-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* BlurMap site. Tokens and rules: docs/DESIGN.md */
:root{
  --bg:#080B11;--bg-2:#0C111A;--surface:#121924;--line:rgba(170,190,220,.12);--line-2:rgba(170,190,220,.22);
  --text:#EAF2FB;--muted:#8E9BB0;--accent:#35C2FF;--on-accent:#04121C;--amber:#FFC46B;--danger:#FF6B6B;
  --display:"Bricolage Grotesque","Segoe UI",system-ui,-apple-system,Arial,sans-serif;
  --body:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","JetBrains Mono",Consolas,Menlo,monospace;
  --gut:clamp(20px,4vw,64px);--max:1280px;--r:12px;--r2:20px;
  --ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);
}
*{box-sizing:border-box;margin:0}
html{color-scheme:dark;scrollbar-color:#2E3A4E var(--bg);background:var(--bg);scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--bg);color:var(--text);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
::selection{background:var(--accent);color:var(--on-accent)}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:var(--r);background:var(--accent);color:var(--on-accent);font-weight:600}
.skip:focus{top:12px}
.wrap{padding-inline:var(--gut);max-width:calc(var(--max) + 2*var(--gut));margin-inline:auto}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.035em;line-height:1.02;text-wrap:balance}
h2{font-size:clamp(36px,5.4vw,72px)}
h3{font-size:clamp(20px,1.9vw,26px);letter-spacing:-.02em;line-height:1.2}
p.lead{color:var(--muted);font-size:clamp(17px,1.5vw,20px);max-width:46ch;text-wrap:pretty}
p{text-wrap:pretty}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:12px 22px;border-radius:99px;font:600 15px/1 var(--body);border:1px solid var(--line-2);background:transparent;color:var(--text);cursor:pointer;
  transition:transform 140ms var(--ease-out),background-color 180ms ease,border-color 180ms ease,color 180ms ease;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}  /* author display rules (.btn, flex rows) must never un-hide an element */
.danger-zone{margin-top:56px;padding:24px;border:1px solid rgba(255,107,107,.28);border-radius:var(--r2);background:rgba(255,107,107,.04)}
.doc .danger-zone h2{margin:0 0 8px;font-size:22px}
.danger-zone .meta{margin:0 0 18px}
.danger-zone p:last-child{margin-bottom:0}
.danger-zone .confirm p{margin:0 0 14px}
.danger-zone .row{display:flex;flex-wrap:wrap;gap:10px}
.danger-zone label{display:block;font-size:14px;font-weight:500;color:#C3CBD8;margin-bottom:6px}
.danger-zone input{width:100%;max-width:360px;height:48px;font:500 16px var(--body);color:var(--text);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);padding:0 14px}
.danger-zone input:focus{outline:none;border-color:var(--danger);box-shadow:0 0 0 3px rgba(255,107,107,.18)}
.btn.danger{color:var(--danger);border-color:rgba(255,107,107,.45)}
.btn.danger:hover{background:rgba(255,107,107,.1);border-color:var(--danger)}
.btn.danger.solid{background:var(--danger);border-color:var(--danger);color:#1A0606}
.btn.danger.solid:hover{background:#FF8585}
.btn:active{transform:scale(.97)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.big{min-height:52px;padding:16px 28px;font-size:16px}
.btn[aria-busy=true]{opacity:.6;cursor:progress}
@media(hover:hover) and (pointer:fine){
  .btn:hover{border-color:var(--muted)}
  .btn.pri:hover{background:#5CCFFF;border-color:#5CCFFF}
}

/* nav */
nav.top{position:fixed;top:0;inset-inline:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px var(--gut);
  background:rgba(8,11,17,.72);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px);border-bottom:1px solid transparent;transition:border-color 180ms ease}
nav.top.scrolled{border-bottom-color:var(--line)}
.logo{display:flex;align-items:center;gap:9px;font:700 19px/1 var(--display);letter-spacing:-.03em;text-transform:lowercase}
.logo i{width:26px;height:26px;border-radius:32%;background:linear-gradient(100deg,#35C2FF,#7FDBFF 50%,#CFF4FF);position:relative;flex:none}  /* same as the iPhone app icon */
.logo i::after{content:"";position:absolute;inset:0;background:#fff;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E") center/62% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5 7 13 7 13s7-8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E") center/62% no-repeat}
nav.top ul{display:flex;gap:6px;list-style:none;font-size:16.5px;font-weight:500;letter-spacing:-.005em;color:#C3CBD8;padding:0}
nav.top ul a{display:block;padding:8px 14px;border-radius:99px;transition:color 180ms ease,background-color 180ms ease}
nav.top ul a:hover{color:#fff;background:rgba(170,190,220,.10)}
nav.top ul a[aria-current="page"]{color:#fff;background:rgba(170,190,220,.14)}
nav.top .btn{min-height:40px;padding:10px 18px;font-size:14px}

/* hero: the map fills it, the text sits on a scrim to its left */
.hero{position:relative;min-height:100svh;display:grid;align-content:center;overflow:hidden;isolation:isolate;padding-block:120px 140px}
#globe{position:absolute;inset:0;width:100%;height:100%;z-index:-2;opacity:0;transition:opacity 1.2s var(--ease-out)}
#globe.ready{opacity:1}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,var(--bg) 0%,rgba(8,11,17,.88) 30%,rgba(8,11,17,0) 58%),linear-gradient(0deg,var(--bg) 0%,rgba(8,11,17,.6) 14%,rgba(8,11,17,0) 38%),linear-gradient(180deg,rgba(8,11,17,.7) 0%,rgba(8,11,17,0) 18%)}
.hero .wrap{width:100%}
.hero h1{font-size:clamp(52px,7.8vw,116px);max-width:6.6em;letter-spacing:-.045em;line-height:.95}
.hero .sub{margin:28px 0 36px;max-width:34ch;font-size:clamp(18px,1.6vw,21px);color:#B4C0D2}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.btn.ghost{background:rgba(8,11,17,.4)}
.fine{margin-top:16px;color:var(--muted);font-size:14px}
.hud{position:absolute;right:var(--gut);bottom:36px;text-align:right;display:grid;gap:4px;font:500 13px/1.3 var(--mono);color:var(--muted)}
.hud [data-place]{color:var(--accent);font-size:14px}
.hud b{font:500 clamp(22px,2.4vw,34px)/1.1 var(--mono);color:var(--text);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.hud small{font-size:12px}
/* sections */
.pad{padding-block:clamp(96px,12vw,176px)}
.sechead{display:grid;gap:20px;margin-bottom:clamp(48px,6vw,88px)}

/* the app tour: the phone pins in the middle of the window while the captions scroll past it, --step apart.
   The list is padded so the first caption is centered on the phone just as it pins and the last one just as it
   lets go. main.js fades each caption by its distance from the middle and swaps the screen as one arrives. */
.app{--ph:min(720px,calc(100svh - 160px));--gap:clamp(48px,8vw,128px)}
/* the heading and the tour share one centered column, so the heading lines up with the phone's left edge */
.app .sechead,.tour{max-width:calc(var(--ph) / 2.1 + var(--gap) + 460px);margin-inline:auto}
.app .sechead{margin-bottom:clamp(24px,3vw,40px)}
.tour{--step:45svh;display:grid;grid-template-columns:calc(var(--ph) / 2.1) minmax(0,460px);gap:var(--gap);align-items:start}
.tour-phone{position:sticky;top:calc(50svh - var(--ph) / 2)}
.device{position:relative;border-radius:13.5% / 6.4%;padding:3.2%;background:#05070B;box-shadow:inset 0 0 0 1.5px rgba(170,190,220,.16),0 50px 100px -40px rgba(0,0,0,.9)}
.device img{border-radius:11.5% / 5.4%;width:100%}
.tour-phone .device{display:grid}
.tour-phone .device img{grid-area:1/1;opacity:0;transition:opacity 280ms ease}
.tour-phone .device img.on{opacity:1}
.tour-steps{list-style:none;padding:calc((var(--ph) - var(--step)) / 2) 0;display:grid}
.tour-steps li{height:var(--step);display:grid;align-content:center;gap:14px}
.tour-steps h3{font-size:clamp(28px,3.2vw,44px);letter-spacing:-.03em}
.tour-steps p{color:var(--muted);font-size:clamp(17px,1.4vw,19px);max-width:38ch}
.tour-steps .device.sm{display:none}

/* works with */
.works{background:var(--bg-2);border-block:1px solid var(--line)}
.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:center}
.works-copy .lead{margin-top:20px}
/* App icons orbit in a ring, pull into one point (one location), ping, then spread out again. */
@property --k{syntax:"<number>";inherits:true;initial-value:1}
@property --spin{syntax:"<angle>";inherits:true;initial-value:0deg}
.orbit{--icon:clamp(56px,6vw,80px);position:relative;width:min(440px,100%);aspect-ratio:1;margin-inline:auto 0;container-type:inline-size}
.apps{--R:calc(50cqw - var(--icon) / 2);list-style:none;padding:0;margin:0;position:absolute;inset:0;z-index:1}
.apps li{--i:0;--a:calc(var(--i) * 60deg + var(--spin));position:absolute;left:50%;top:50%;width:var(--icon);margin:calc(var(--icon) / -2);font-size:0;
  transform:rotate(var(--a)) translateX(calc(var(--k) * var(--R))) rotate(calc(-1 * var(--a))) scale(calc(.7 + .3 * var(--k)))}
.apps li:nth-child(2){--i:1}.apps li:nth-child(3){--i:2}.apps li:nth-child(4){--i:3}.apps li:nth-child(5){--i:4}.apps li:nth-child(6){--i:5}
.apps img{width:100%;border-radius:23%;box-shadow:0 0 0 1px rgba(170,190,220,.1),0 16px 30px -12px rgba(0,0,0,.8);filter:drop-shadow(0 0 calc((1 - var(--k)) * 22px) rgba(53,194,255,calc((1 - var(--k)) * .9))) brightness(calc(1 + (1 - var(--k)) * .35))}
.apps li{opacity:clamp(0,calc(var(--k) * 3),1)}  /* the stack hands over to the pin as it merges */
.orbit.in,.orbit:has(.apps.in){animation:spin 18s linear infinite,gather 7s cubic-bezier(.65,0,.35,1) infinite}  /* :has: a cached older main.js marks the list instead */
@keyframes spin{to{--spin:360deg}}
@keyframes gather{0%,40%{--k:1}58%,70%{--k:0}88%,100%{--k:1}}
/* Effects layered on the orbit: a faint track, a glow that builds as the icons pull in, then a flash, two shockwaves, sparks and a pin where they meet. */
.fx{position:absolute;inset:0;pointer-events:none}
.fx i{position:absolute;left:50%;top:50%;translate:-50% -50%;opacity:0}
.fx .track{width:calc(100% - var(--icon));aspect-ratio:1;border-radius:50%;opacity:calc(var(--k) * .9);background:rgba(170,190,220,.12);-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 1.5px),#000 calc(100% - 1.5px));mask:radial-gradient(farthest-side,#0000 calc(100% - 1.5px),#000 calc(100% - 1.5px))}
.fx .core{width:calc(var(--icon) * 2.8);aspect-ratio:1;border-radius:50%;opacity:calc(1 - var(--k));background:radial-gradient(closest-side,rgba(53,194,255,.5),rgba(53,194,255,.14) 55%,transparent);filter:blur(4px)}
.fx .flash{width:var(--icon);aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,#fff,rgba(120,215,255,.7) 35%,transparent 72%)}
.fx .wave{width:var(--icon);aspect-ratio:1;border-radius:50%;border:2px solid var(--accent);box-shadow:0 0 18px rgba(53,194,255,.55),inset 0 0 12px rgba(53,194,255,.35)}
.fx .sparks{width:calc(var(--icon) * 3.4);aspect-ratio:1;background:radial-gradient(circle at 94.0% 50.0%,#CFF2FF 0 3px,transparent 4.5px),radial-gradient(circle at 75.5% 75.5%,#CFF2FF 0 2px,transparent 3.5px),radial-gradient(circle at 72.0% 88.1%,#CFF2FF 0 3px,transparent 4.5px),radial-gradient(circle at 40.7% 84.8%,#CFF2FF 0 2px,transparent 3.5px),radial-gradient(circle at 28.0% 88.1%,#CFF2FF 0 3px,transparent 4.5px),radial-gradient(circle at 15.2% 59.3%,#CFF2FF 0 2px,transparent 3.5px),radial-gradient(circle at 6.0% 50.0%,#CFF2FF 0 3px,transparent 4.5px),radial-gradient(circle at 24.5% 24.5%,#CFF2FF 0 2px,transparent 3.5px),radial-gradient(circle at 28.0% 11.9%,#CFF2FF 0 3px,transparent 4.5px),radial-gradient(circle at 59.3% 15.2%,#CFF2FF 0 2px,transparent 3.5px),radial-gradient(circle at 72.0% 11.9%,#CFF2FF 0 3px,transparent 4.5px),radial-gradient(circle at 84.8% 40.7%,#CFF2FF 0 2px,transparent 3.5px)}
.fx .pin{width:calc(var(--icon) * .85);aspect-ratio:1;filter:drop-shadow(0 0 10px rgba(53,194,255,.85)) drop-shadow(0 6px 14px rgba(0,0,0,.6))}
.fx .pin::before{content:"";position:absolute;inset:0;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat}
.orbit.in .flash,.orbit:has(.apps.in) .flash{animation:fx-flash 7s ease-out infinite}
.orbit.in .wave,.orbit:has(.apps.in) .wave{animation:fx-wave 7s cubic-bezier(.2,.7,.3,1) infinite}
.orbit.in .w2,.orbit:has(.apps.in) .w2{animation-delay:.22s}
.orbit.in .sparks,.orbit:has(.apps.in) .sparks{animation:fx-sparks 7s cubic-bezier(.15,.8,.3,1) infinite}
.orbit.in .pin,.orbit:has(.apps.in) .pin{animation:fx-pin 7s cubic-bezier(.3,1.5,.5,1) infinite}
@keyframes fx-flash{0%,56%{opacity:0;scale:.3}59%{opacity:1;scale:1.5}70%,100%{opacity:0;scale:2.2}}
@keyframes fx-wave{0%,58%{opacity:0;scale:1}60%{opacity:.95;scale:1}84%,100%{opacity:0;scale:4.4}}
@keyframes fx-sparks{0%,58%{opacity:0;scale:.25;rotate:0deg}61%{opacity:1}82%,100%{opacity:0;scale:1.5;rotate:30deg}}
@keyframes fx-pin{0%,57%{opacity:0;scale:.3;translate:-50% -20%}62%{opacity:1;scale:1.12;translate:-50% -50%}66%,74%{opacity:1;scale:1;translate:-50% -50%}82%,100%{opacity:0;scale:.5;translate:-50% -50%}}

/* setup */
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);counter-reset:s}
.steps li{counter-increment:s;padding-top:24px;border-top:1px solid var(--line-2);display:grid;gap:10px;align-content:start}
.steps li::before{content:counter(s);font:500 15px var(--mono);color:var(--accent)}
.steps p{color:var(--muted);max-width:34ch}
.msg-err{margin-top:20px;color:var(--danger);font-size:15px}
.msg-err:empty{display:none}
.needs{margin-top:clamp(40px,5vw,64px);color:var(--muted);font-size:15px}

/* privacy */
.priv{background:var(--bg-2);border-block:1px solid var(--line)}
.priv-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(40px,6vw,96px);align-items:end}
.priv h2{max-width:11ch;margin-bottom:24px}
.ledger{display:grid;gap:0}
.ledger div{display:grid;gap:6px;padding:22px 0;border-top:1px solid var(--line-2)}
.ledger div:last-child{border-bottom:1px solid var(--line-2)}
.ledger dt{font:600 15px var(--display);color:var(--muted)}
.ledger dd{font:500 clamp(20px,2vw,26px)/1.25 var(--display);letter-spacing:-.02em;margin:0}

/* pricing */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.plan{padding:32px;border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);display:grid;gap:14px;align-content:start}
.plan h3{display:flex;align-items:center;gap:10px;font-size:20px}
.plan .amt{font:600 clamp(44px,4.6vw,60px)/1 var(--display);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.plan .amt small{font:400 16px var(--body);color:var(--muted);letter-spacing:0;margin-left:4px}
.plan p{color:var(--muted);font-size:15px;margin-bottom:10px}
.plan.best{border-color:var(--accent)}
.plan{grid-template-rows:auto auto auto 1fr auto}
.feat{list-style:none;margin:0 0 10px;padding:14px 0 0;border-top:1px solid var(--line);display:grid;gap:10px;align-content:start;font-size:15px;line-height:1.4}
.feat li{position:relative;padding-left:26px}
.feat li::before{position:absolute;left:2px;top:0;content:"\2713";content:"\2713"/"";color:var(--accent);font-weight:700}
.feat li.no{color:var(--muted)}
.feat li.no::before{content:"\2013";content:"\2013"/"";color:var(--muted)}
.feat li.no b{font-weight:400;text-decoration:line-through;text-decoration-color:var(--muted)}
.feat small{display:block;font-size:13px}
.tag{font:600 12px/1 var(--body);padding:6px 10px;border-radius:99px;background:rgba(53,194,255,.14);color:var(--accent);letter-spacing:0}

/* faq */
.faq-grid{display:grid;grid-template-columns:1fr 2fr;gap:clamp(32px,6vw,96px);align-items:start}
.faq h2{position:sticky;top:110px}
details{border-bottom:1px solid var(--line)}
details:first-child{border-top:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:22px 0;font:500 clamp(18px,1.7vw,21px)/1.3 var(--display);letter-spacing:-.015em;display:flex;justify-content:space-between;gap:20px;transition:color 180ms ease}
summary::-webkit-details-marker{display:none}
summary::after{content:"";flex:none;width:12px;height:12px;margin-top:6px;background:linear-gradient(var(--muted),var(--muted)) center/12px 1.5px no-repeat,linear-gradient(var(--muted),var(--muted)) center/1.5px 12px no-repeat;transition:transform 200ms var(--ease-out)}
details[open] summary::after{transform:rotate(45deg)}
@media(hover:hover) and (pointer:fine){summary:hover{color:var(--accent)}}
details p{color:var(--muted);padding-bottom:24px;max-width:62ch}
details a,.doc a:not(.btn){color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* closing */
.final{padding-block:clamp(120px,16vw,220px);text-align:center;border-top:1px solid var(--line)}
.final h2{font-size:clamp(48px,8vw,112px);letter-spacing:-.045em;margin-bottom:40px}

footer{border-top:1px solid var(--line);padding:40px var(--gut);display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;color:var(--muted);font-size:14px}
footer nav{display:flex;gap:24px;flex-wrap:wrap}
footer a{transition:color 180ms ease}
footer a:hover{color:var(--text)}

/* subpages */
.doc{max-width:760px;padding:140px var(--gut) 100px;margin:auto}
.doc h1{font-size:clamp(36px,6vw,60px);margin-bottom:12px}
.doc h2{font-size:clamp(20px,2.4vw,26px);margin:44px 0 12px;letter-spacing:-.02em}
.doc p,.doc li{color:#C3CBD8;margin-bottom:12px}
.doc ul,.doc ol{padding-left:22px;margin-bottom:12px}
.doc .meta{color:var(--muted);margin-bottom:30px}
.doc code{font-family:var(--mono);background:var(--surface);padding:2px 7px;border-radius:6px;font-size:.88em}
.doc .box{border:1px solid var(--line);background:var(--surface);border-radius:var(--r2);padding:22px 26px;margin:14px 0}
.doc .dl{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}
.doc .dl-note{color:var(--muted);font-size:14px;margin:-4px 0 14px}
.dlvideo{margin:6px 0 20px}
.dlvideo video{display:block;width:100%;aspect-ratio:16/9;border-radius:var(--r);border:1px solid var(--line);background:#000}
.dlvideo figcaption{color:var(--muted);font-size:14px;margin-top:8px}
.doc .dl a[aria-disabled=true]{opacity:.45;pointer-events:none}

/* download: three numbered steps, edge cases folded away */
.dsteps{list-style:none;padding:0!important;counter-reset:d;margin-top:8px}
.dsteps>li{counter-increment:d;position:relative;padding:0 0 36px 36px;margin:0 0 0 15px;border-left:1px solid var(--line-2)}
.dsteps>li:last-child{border-left-color:transparent}
.dsteps>li::before{content:counter(d);position:absolute;left:-16px;top:-2px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line-2);font:500 14px var(--mono);color:var(--accent)}
.dsteps h2{margin:0 0 14px;font-size:clamp(20px,2.4vw,26px)}
.dsteps details{border:0;border-top:1px solid var(--line)}
.dsteps details:last-child{border-bottom:1px solid var(--line)}
.dsteps summary{padding:14px 0;font-size:16px}
.dsteps details ol,.dsteps details p{padding-bottom:12px}
/* login, reset, confirm: one centered column in the middle of the window; login adds the app on a panel */
.doc.auth{max-width:calc(520px + 2 * var(--gut));min-height:100svh;display:grid;align-content:center;padding-block:112px 64px}
.doc.auth:has(.auth-art){max-width:calc(1280px + 2 * var(--gut));grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:clamp(48px,7vw,112px);align-items:center}
.auth h1{font-size:clamp(38px,4.6vw,60px);margin-bottom:12px}
.auth .meta{margin-bottom:32px;font-size:clamp(16px,1.3vw,19px)}
.auth form{display:grid;gap:8px;margin:0 0 24px}
.auth label{font-size:15px;font-weight:500;color:#C3CBD8;margin-top:10px}
.auth .label-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:10px}
.auth .label-row label{margin-top:0}
.auth .label-row a{font-size:13px;color:var(--muted);text-decoration:none;transition:color 180ms ease}
.auth .label-row a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.auth input{width:100%;height:56px;font:500 17px var(--body);color:var(--text);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);padding:0 16px;transition:border-color 180ms ease,box-shadow 180ms ease}
.auth input:hover{border-color:rgba(170,190,220,.32)}
.auth input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(53,194,255,.18)}
.auth textarea{width:100%;min-height:180px;resize:vertical;font:500 16px/1.5 var(--body);color:var(--text);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);padding:12px 16px;transition:border-color 180ms ease,box-shadow 180ms ease}
.auth textarea:hover{border-color:rgba(170,190,220,.32)}
.auth textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(53,194,255,.18)}
.auth input::placeholder,.auth textarea::placeholder{color:#6B778A}
.auth .hint{margin:0;font-size:13px;color:var(--muted)}
.auth .sent{margin:0 0 24px;padding:24px;border:1px solid var(--line-2);border-radius:var(--r2);background:var(--surface)}
.auth .sent h2{font-size:24px;margin:0 0 8px}.auth .sent p{color:var(--muted);margin:0 0 16px}.auth .sent .btn{width:auto}
.auth .btn{width:100%;min-height:56px;margin-top:10px;font-size:17px}
.auth .agree{display:flex;gap:12px;align-items:flex-start;margin-top:14px;font-size:14.5px;line-height:1.5;color:var(--muted)}
.auth .agree[hidden]{display:none}
.auth .agree input{appearance:none;flex:none;width:20px;height:20px;margin:1px 0 0;padding:0;border:1.5px solid var(--line-2);border-radius:6px;background:var(--surface);display:grid;place-content:center;cursor:pointer}
.auth .agree input::before{content:"";width:11px;height:11px;background:var(--on-accent);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%);transform:scale(0);transition:transform 120ms ease}
.auth .agree input:checked{background:var(--accent);border-color:var(--accent)}
.auth .agree input:checked::before{transform:scale(1)}
.auth .agree input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}
.auth .agree{cursor:pointer}
.auth .agree a{color:var(--text);text-decoration:underline}
.auth .btn:disabled{opacity:.5;cursor:wait}
.auth .msg{margin:6px 0 0;font-size:14.5px}
.auth .msg:empty{display:none}
.auth .msg.err{color:var(--danger)}.auth .msg.ok{color:var(--accent)}
.auth .switch{padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:15px;margin:0}
.auth-art{display:grid;place-items:center}
.auth-art .device{width:min(420px,88%,calc((100svh - 150px) / 2.17))}  /* the whole phone fits the window */
.auth .pw{position:relative;display:block}
.auth .pw input{padding-right:52px}
.auth .pw-eye{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:10px;background:none;color:var(--muted);cursor:pointer;transition:color 180ms ease,background-color 180ms ease}
.auth .pw-eye:hover{color:var(--text);background:var(--bg-2)}
.auth .pw-eye:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.auth .pw-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:899px){
  .doc.auth:has(.auth-art){max-width:calc(520px + 2 * var(--gut));grid-template-columns:1fr}
  .auth-art{display:none}
}
/* phones: start near the top so the keyboard doesn't cover the form */
@media(max-width:599px){.doc.auth{align-content:start;padding-top:104px}}

/* Signed-in-only pages (html.gate) stay blank until auth.js confirms the session, so they never flash before the redirect. */
html.gate:not(.signed-in) body{visibility:hidden}

/* tablet and down */
@media(max-width:1023px){
  nav.top ul{display:none}
  .tour{grid-template-columns:1fr;max-width:none}
  .app .sechead{max-width:none}
  .tour-phone{display:none}
  .tour-steps{padding:0;gap:clamp(56px,10vw,88px)}
  .tour-steps li{height:auto;gap:12px}
  .tour-steps .device.sm{display:block;width:min(300px,72%);margin-bottom:8px}
  .priv-grid,.faq-grid{grid-template-columns:1fr}
  .faq h2{position:static}
}
@media(max-width:767px){
  .hero{align-content:start;padding-top:112px}
  .hero::before{background:linear-gradient(180deg,var(--bg) 0%,rgba(8,11,17,.85) 42%,rgba(8,11,17,0) 62%),linear-gradient(0deg,var(--bg) 0%,rgba(8,11,17,0) 26%)}
  .hero .sub{margin:20px 0 28px}
  .hud{left:var(--gut);right:auto;text-align:left;bottom:28px}
  .steps,.price-grid,.works-grid{grid-template-columns:1fr}
  .orbit{margin-inline:auto}
  .tour-steps .device.sm{width:min(280px,78%)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:0s!important;animation:none!important}
}
.demo{display:block;width:100%;max-width:960px;margin-inline:auto;height:auto;margin-top:clamp(48px,6vw,96px);border-radius:var(--r2);border:1px solid var(--line);background:#000}

/* Web control (/app): a full-screen map with a floating control card; on phones the card is a bottom sheet */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wc{--nav:69px;--glass:rgba(12,17,26,.86);--ok:#3DDC97;position:relative;isolation:isolate;height:100svh;padding-top:var(--nav);overflow:hidden}
#map{position:absolute;inset:var(--nav) 0 0 0;z-index:0;background:var(--bg-2)}
.wc [hidden]{display:none!important}
html:not(.ready) .wc-ui{display:none!important}
.wc-ui{position:absolute;z-index:1000;top:calc(var(--nav) + 16px);left:16px;width:380px;max-width:calc(100% - 32px);max-height:calc(100% - var(--nav) - 32px);display:flex;flex-direction:column;
  background:var(--glass);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--line-2);border-radius:22px;box-shadow:0 24px 64px rgba(0,0,0,.55)}
.wc-top{display:grid;grid-template-columns:1fr auto;grid-template-areas:"title help" "stat stat";align-items:center;gap:10px 12px;padding:18px 18px 14px}
.wc-title{grid-area:title;font:600 24px/1.1 var(--display);letter-spacing:-.03em}
.wc-help-btn{grid-area:help;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:rgba(255,255,255,.06);color:#fff;font:600 19px/1 var(--display);cursor:pointer;transition:background-color 180ms ease,border-color 180ms ease}
.wc-help-btn:hover,.wc-help-btn[aria-expanded=true]{background:rgba(53,194,255,.18);border-color:var(--accent)}
.wc-stat{grid-area:stat}
.wc-status{display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:6px 14px 6px 12px;border-radius:99px;background:rgba(255,255,255,.07);border:1px solid var(--line);font:600 14.5px/1.2 var(--body);color:#fff}
.wc-status i{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:none}
.wc-status[data-s=on] i{background:var(--ok);box-shadow:0 0 0 4px rgba(61,220,151,.2)}
.wc-status[data-s=lock] i{background:var(--amber);box-shadow:0 0 0 4px rgba(255,196,107,.2)}
.wc-status[data-s=lock]{color:var(--amber)}
.wc-live{color:var(--muted);font-size:13px;line-height:1.45;margin:8px 2px 0}
.wc-body{overflow-y:auto;overscroll-behavior:contain;padding:0 18px 18px;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-content:start;scrollbar-width:thin;scrollbar-color:#3A475C transparent}
.wc-search{position:relative}
.wc-search svg{position:absolute;left:15px;top:25px;transform:translateY(-50%);width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;pointer-events:none}
.wc-search input{display:block;width:100%;height:50px;font:500 16px var(--body);color:var(--text);background:rgba(255,255,255,.06);border:1px solid var(--line-2);border-radius:14px;padding:0 16px 0 44px;appearance:none;-webkit-appearance:none}
.wc-search input::placeholder{color:#9AA6B9}
.wc-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(53,194,255,.2)}
/* suggestions open inside the card (it scrolls, so an overlay would be cut off) */
.wc-results{position:static;margin-top:6px;max-height:min(320px,42svh);overflow:auto;list-style:none;padding:6px;background:var(--surface);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.5)}
.wc-results button{width:100%;text-align:left;min-height:44px;padding:8px 12px;border:0;border-radius:9px;background:none;color:var(--text);font:400 15px/1.35 var(--body);cursor:pointer}
.wc-results button:hover,.wc-results button:focus-visible{background:rgba(53,194,255,.14)}
.wc-results button b{display:block;font-weight:600}.wc-results button span{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.wc-results li.none{padding:10px 12px;color:var(--muted);font-size:14px}
.wc-pickcard{display:flex;gap:12px;align-items:center;min-height:60px;padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.wc-pickcard svg{flex:none;width:22px;height:22px;color:var(--amber)}
.wc-pickcard small{display:block;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.wc-pick{font-size:15px;line-height:1.35;margin:1px 0 0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wc-pick.empty{color:#A8B3C5}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border:0;border-radius:14px;background:rgba(255,255,255,.07)}
.seg>button,.seg label span{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:10px;border:0;background:none;color:#C3CBD8;font:600 15px var(--body);cursor:pointer;transition:background-color 180ms ease,color 180ms ease}
.seg>button:hover,.seg label:hover span{color:#fff}
.seg>button[aria-selected=true],.seg input:checked+span{background:var(--accent);color:var(--on-accent)}
.seg label{display:block}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.wc-pane{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.wc .btn{width:100%;min-height:48px;margin:0;font-size:15px;background:rgba(255,255,255,.06)}
.wc .btn.pri{background:var(--accent)}
.wc .btn.big{min-height:56px;font-size:17px}
.wc .btn:disabled{opacity:.4;cursor:not-allowed}
@media(hover:hover) and (pointer:fine){.wc .btn:hover:not(:disabled){background:rgba(255,255,255,.12)}.wc .btn.pri:hover:not(:disabled){background:#5CCFFF}}
.wc-row{display:grid;gap:8px}.wc-row.two{grid-template-columns:1fr 1fr}.wc-row.three{grid-template-columns:1.3fr 1fr 1fr}
.wc-hint{color:var(--muted);font-size:14px;line-height:1.5}
.wc-back{width:100%;margin-top:10px}
.wc-eta{margin:4px 0 10px;font-weight:600;font-size:15px;color:var(--text)}
.wc-stops{list-style:none;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;counter-reset:s}
.wc-stops:empty{display:none}
.wc-stops li{counter-increment:s;display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 6px 4px 10px;border-radius:12px;background:rgba(255,255,255,.05);font-size:14.5px;line-height:1.3}
.wc-stops li::before{content:counter(s);flex:none;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--on-accent);font:700 13px/24px var(--body);text-align:center}
.wc-stops .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wc-link{background:none;border:0;color:var(--accent);font:600 14px var(--body);cursor:pointer;padding:8px 10px;min-height:44px;border-radius:10px}
.wc-link:hover{text-decoration:underline;text-underline-offset:3px}
.wc-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 4px 0 2px;font-size:15px;cursor:pointer}
.wc-switch input{order:2;appearance:none;-webkit-appearance:none;position:relative;flex:none;width:50px;height:30px;margin:0;border-radius:99px;background:rgba(255,255,255,.18);cursor:pointer;transition:background-color 180ms ease}
.wc-switch input::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform 180ms var(--ease-out)}
.wc-switch input:checked{background:var(--accent)}.wc-switch input:checked::after{transform:translateX(20px)}
.wc-msg{position:absolute;z-index:1300;top:calc(var(--nav) + 16px);left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 32px));white-space:pre-line;font-size:14.5px;line-height:1.45;padding:12px 16px;border:1px solid var(--danger);border-radius:14px;background:#2A1519;color:#FFD9D9;box-shadow:0 12px 40px rgba(0,0,0,.5)}
/* No plan: a paywall over the (blurred) map; nothing behind it can be used */
.wc-paywall{position:absolute;z-index:1400;inset:var(--nav) 0 0 0;display:grid;place-items:center;padding:16px;background:rgba(8,11,17,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.wc-paywall[hidden]{display:none}
.wc-paywall-card{width:min(440px,100%);padding:28px;border:1px solid var(--line-2);border-radius:24px;background:rgba(12,17,26,.96);box-shadow:0 24px 64px rgba(0,0,0,.55)}
.wc-paywall-card h2{font-size:clamp(24px,3vw,30px);letter-spacing:-.02em;margin-bottom:8px}
.wc-paywall-card>p{color:#C3CBD8;font-size:15.5px;line-height:1.5;margin-bottom:14px;white-space:pre-line}
.wc-paywall-card ul{margin:0 0 20px;padding-left:20px;color:var(--text);font-size:15px;line-height:1.9}
.wc-paywall-card .btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;text-decoration:none}
.wc-paywall-card .btn+.btn{margin-top:10px}
.wc-paywall-card .btn[hidden]{display:none}
.wc-paywall-card .btn[hidden]+.btn{margin-top:0}
.wc-paywall-card .wc-fine{text-align:center;margin-top:10px}
.wc-plan{margin:0 18px 14px;padding:16px;border:1px solid var(--line-2);border-radius:16px;background:rgba(255,196,107,.08)}
.wc-plan h2{font-size:19px;line-height:1.2;letter-spacing:-.02em;margin-bottom:8px}
.wc-plan p{color:#C3CBD8;font-size:14.5px;line-height:1.5;margin-bottom:12px;white-space:pre-line}
.wc-plan .btn{display:flex;align-items:center;justify-content:center;text-decoration:none}
.wc input:disabled{opacity:.45;cursor:not-allowed}
.wc-help{position:absolute;z-index:1200;top:calc(var(--nav) + 16px);left:408px;width:min(360px,calc(100% - 424px));max-height:calc(100% - var(--nav) - 32px);overflow:auto;padding:20px;border:1px solid var(--line-2);border-radius:22px;background:rgba(12,17,26,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 24px 64px rgba(0,0,0,.55)}
.wc-help-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.wc-help h2{font-size:22px;letter-spacing:-.025em}
.wc-help .wc-help-btn{font-size:24px}
.wc-help ul{padding-left:20px;margin-bottom:18px}.wc-help li{color:#C3CBD8;font-size:14.5px;line-height:1.5;margin-bottom:8px}
/* map: markers, controls, credits (required, but quiet) */
.wc-live-dot i{display:block;width:22px;height:22px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 0 rgba(53,194,255,.65);animation:wcpulse 2s ease-out infinite}
.wc-live-dot.real i{background:#0A84FF;animation:none;box-shadow:0 0 0 6px rgba(10,132,255,.2)}  /* the iPhone's real spot: steady, like Maps */
@keyframes wcpulse{70%,100%{box-shadow:0 0 0 22px rgba(53,194,255,0)}}
.wc-pin svg{display:block;width:32px;height:40px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.5))}
.wc-stop{width:24px;height:24px;border-radius:50%;background:var(--accent);border:2px solid #fff;color:var(--on-accent);font:700 12px/20px var(--body);text-align:center}
.wc .leaflet-bar{border:1px solid var(--line-2);border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.wc .leaflet-bar a{width:44px;height:44px;line-height:44px;background:var(--glass);color:#fff;border-color:var(--line);font-size:20px}
.wc .leaflet-bar a:hover{background:#1B2638;color:#fff}
.wc .leaflet-bottom{bottom:var(--sheet,0)}
.wc .leaflet-control-attribution{background:transparent!important;color:rgba(170,184,204,.5);font-size:10px;padding:0 6px 2px;box-shadow:none}
.wc .leaflet-control-attribution a{color:inherit;text-decoration:none}
.wc .leaflet-control-attribution a:hover{text-decoration:underline}
@media(max-width:899px){
  .wc-ui{display:contents}
  .wc-top{position:absolute;z-index:1000;top:calc(var(--nav) + 12px);left:12px;right:12px;display:flex;justify-content:space-between;align-items:flex-start;padding:0;pointer-events:none}
  .wc-top>*{pointer-events:auto}
  .wc-title,.wc-live{display:none}
  .wc-status{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 24px rgba(0,0,0,.45);min-height:44px}
  .wc-help-btn{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 24px rgba(0,0,0,.45)}
  .wc-body{position:absolute;z-index:1000;left:0;right:0;bottom:0;max-height:58svh;padding:26px 16px max(18px,env(safe-area-inset-bottom));background:var(--glass);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--line-2);border-bottom:0;border-radius:24px 24px 0 0;box-shadow:0 -16px 48px rgba(0,0,0,.5)}
  .wc-body::before{content:"";position:absolute;top:9px;left:50%;width:40px;height:5px;margin-left:-20px;border-radius:3px;background:rgba(170,190,220,.35)}
  .wc-msg{top:calc(var(--nav) + 68px)}
  .wc-help{left:0;right:0;top:auto;bottom:0;width:auto;max-height:80svh;border-radius:24px 24px 0 0;border-bottom:0;padding-bottom:max(20px,env(safe-area-inset-bottom))}
}

/* Brand eyebrow inside the home H1 */
.hero h1 .eyebrow{display:block;margin-bottom:clamp(14px,1.6vw,22px);font:600 clamp(14px,1.3vw,17px)/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
/* Guides: list cards (home + hub), crumbs, CTA box */
.glist{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.doc ul.glist{padding:0;list-style:none}
.glist li,.doc .glist li{margin:0}
.glist a,.doc .glist a:not(.btn){display:flex;flex-direction:column;gap:8px;height:100%;padding:20px 22px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r2);color:var(--text);text-decoration:none;transition:border-color 180ms ease}
.glist a:hover{border-color:var(--accent)}
.glist b{font:600 18px/1.25 var(--display);letter-spacing:-.02em}
.glist span{color:var(--muted);font-size:14px}
.guides .sechead{max-width:none;margin-inline:0}
.doc .crumbs{color:var(--muted);font-size:14px;margin-bottom:18px}
.doc .cta-box{margin-top:40px}
.doc .cta-box h2{margin-top:0}
.doc .fine{font-size:14px;color:var(--muted);margin-bottom:0}
.doc ul.more{padding-left:22px}
/* Windows: Edge/Chrome show their own reveal/clear buttons inside password fields; we draw our own eye */
.auth input::-ms-reveal,.auth input::-ms-clear{display:none}
/* Windows High Contrast: author backgrounds are dropped, so draw checks/knobs with system colors */
@media(forced-colors:active){
  .auth .agree input::before{background:CanvasText}
  .wc-switch input{border:1px solid ButtonText}.wc-switch input::after{background:ButtonText}
  .wc-status i{background:CanvasText;forced-color-adjust:none}
}
footer .social{display:inline-flex;gap:14px;margin-left:18px;vertical-align:middle}
footer .social a{display:block;padding:2px}
footer .social svg{width:18px;height:18px;display:block}
