/* safe.gm design tokens, shared by the landing page and the dashboard.
   Dark mode is a soft "dim" blue, not near-black.
   Identity: river blue with violet accents, set in Bricolage Grotesque + Instrument Sans. */
@font-face{font-family:"Bricolage Grotesque Variable";font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/bricolage-grotesque-latin-wght-normal.woff2) format("woff2-variations")}
@font-face{font-family:"Instrument Sans Variable";font-style:normal;font-display:swap;font-weight:400 700;src:url(/fonts/instrument-sans-latin-wght-normal.woff2) format("woff2-variations")}

:root{
  --ink:#0B1B3A; --ink-2:#4A5873; --paper:#F4F6FB; --surface:#FFFFFF; --line:#DCE2EE;
  --river:#1236C8; --river-deep:#0C2796; --on-river:#FFFFFF; --river-soft:#E5EBFF;
  --bank:#17803C; --bank-soft:#E1F4E7;
  --flag:#D6182E; --flag-soft:#FDE7EA;
  --sun:#9A5B00; --sun-soft:#FFF1D6;
  --radius:14px; --radius-s:9px;
  --display:"Bricolage Grotesque Variable","Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --body:"Instrument Sans Variable","Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ink:#F3F6FF; --ink-2:#C5CFE8; --paper:#1F2C52; --surface:#2A3964; --line:#3E5089;
    --river:#5B79FF; --river-deep:#4562F0; --river-soft:#31447F;
    --bank:#5FDB8C; --bank-soft:#234D39;
    --flag:#FF7F8E; --flag-soft:#55283A;
    --sun:#F5C463; --sun-soft:#4D3E1C;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --ink:#F3F6FF; --ink-2:#C5CFE8; --paper:#1F2C52; --surface:#2A3964; --line:#3E5089;
  --river:#5B79FF; --river-deep:#4562F0; --river-soft:#31447F;
  --bank:#5FDB8C; --bank-soft:#234D39;
  --flag:#FF7F8E; --flag-soft:#55283A;
  --sun:#F5C463; --sun-soft:#4D3E1C;
  color-scheme:dark;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--body);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);margin:0;line-height:1.05;letter-spacing:-.02em;font-weight:700}
p{margin:0}
a{color:var(--river)}
:focus-visible{outline:3px solid var(--river);outline-offset:2px;border-radius:6px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}

/* Brand line: blue to violet. Used as a divider and as the dashboard's top edge. */
.flag{height:14px;background:linear-gradient(90deg,#1236C8,#5B6CFF 50%,#8B5CF6)}
.flag.thin{height:6px}

/* buttons + fields */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 22px;font:600 15px/1 var(--body);cursor:pointer;text-decoration:none;
  background:var(--river);color:var(--on-river);transition:background .15s,transform .1s}
.btn:hover{background:var(--river-deep)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn.ghost:hover{background:var(--river-soft)}
.btn.danger{background:transparent;color:var(--flag);box-shadow:inset 0 0 0 1.5px var(--flag)}
.btn.danger:hover{background:var(--flag-soft)}
.btn.light{background:#fff;color:#0C2796}
.btn.light:hover{background:#E5EBFF}
.btn.red{background:#D6182E;color:#fff}
.btn.red:hover{background:#B8121F}
.btn.small{padding:9px 16px;font-size:14px}
.btn[disabled]{opacity:.55;cursor:default}
input,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius-s);padding:11px 13px;width:100%}
input:focus,textarea:focus{outline:none;border-color:var(--river);box-shadow:0 0 0 3px var(--river-soft)}
::placeholder{color:var(--ink-2);opacity:.75}
.muted{color:var(--ink-2)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* the address bar: the memorable element of the whole product */
.addr{display:flex;align-items:center;gap:6px;background:#fff;color:#0B1B3A;border-radius:999px;padding:7px 7px 7px 18px;
  box-shadow:0 1px 0 rgba(255,255,255,.2),0 10px 30px -12px rgba(5,15,70,.55)}
.addr svg{flex:none;opacity:.7}
.addr input{border:0;background:transparent;color:#0B1B3A;padding:10px 0;min-width:0;font:700 clamp(20px,5vw,30px)/1.1 var(--display);letter-spacing:-.02em;box-shadow:none}
.addr input:focus{box-shadow:none}
.addr input::placeholder{color:#8A96B2;opacity:1}
.addr .suffix{font:700 clamp(20px,5vw,30px)/1.1 var(--display);letter-spacing:-.02em;color:#5B6B91;white-space:nowrap}
.addr .btn{flex:none}
@media (max-width:520px){.addr{padding-left:14px}.addr .btn{padding:12px 16px}}

.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 11px;font-size:13px;font-weight:600}
.pill.ok{background:var(--bank-soft);color:var(--bank)}
.pill.wait{background:var(--sun-soft);color:var(--sun)}
.pill.bad{background:var(--flag-soft);color:var(--flag)}
.pill.off{background:var(--river-soft);color:var(--river)}


/* ---------- landing page art: phone, laptop, desktop and servers ----------
   Lives here so the home page picks it up without editing index.html.
   Only affects .stage and .phone, which exist on the home page only. */
body .stage{min-height:clamp(420px,52vw,560px);isolation:isolate}
body .stage::before{
  content:"";position:absolute;inset:0;width:auto;aspect-ratio:auto;border-radius:0;z-index:0;pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E %3Cpath id='p1' d='M60 330 C 150 250, 250 250, 345 90' fill='none' stroke='%235B79FF' stroke-opacity='.35' stroke-width='2' stroke-dasharray='5 7'/%3E %3Cpath id='p2' d='M70 80 C 150 140, 260 150, 345 110' fill='none' stroke='%238B5CF6' stroke-opacity='.3' stroke-width='2' stroke-dasharray='5 7'/%3E %3Ccircle r='5' fill='%235B79FF'%3E%3CanimateMotion dur='2.6s' repeatCount='indefinite'%3E%3Cmpath href='%23p1'/%3E%3C/animateMotion%3E%3C/circle%3E %3Ccircle cx='-20' cy='-20' r='4' fill='%2352D07F'%3E%3CanimateMotion dur='2.6s' begin='1.3s' repeatCount='indefinite' keyPoints='1;0' keyTimes='0;1' calcMode='linear'%3E%3Cmpath href='%23p1'/%3E%3C/animateMotion%3E%3C/circle%3E %3Ccircle r='4' fill='%238B5CF6'%3E%3CanimateMotion dur='3.4s' repeatCount='indefinite'%3E%3Cmpath href='%23p2'/%3E%3C/animateMotion%3E%3C/circle%3E %3C/svg%3E") center/min(100%,520px) no-repeat,
    radial-gradient(closest-side,color-mix(in srgb,var(--river) 26%,transparent),transparent) center/min(90%,440px) min(90%,440px) no-repeat}
body .stage::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 170 150'%3E %3Crect x='6' y='6' width='158' height='100' rx='9' fill='%231A2547'/%3E %3Crect x='13' y='13' width='144' height='86' rx='4' fill='%230E1838'/%3E %3Cg font-family='Menlo,Consolas,monospace' font-size='8' font-weight='700'%3E %3Ctext x='20' y='28' fill='%238BF0AE'%3E%24 dig shop.safe.gm%3C/text%3E %3Ctext x='20' y='42' fill='%23C5CFE8'%3EA 104.21.7.3%3C/text%3E %3Ctext x='20' y='56' fill='%23C5CFE8'%3ETXT v=spf1 ...%3C/text%3E %3Ctext x='20' y='70' fill='%238FA6FF'%3EHTTPS ok %C2%B7 12 ms%3C/text%3E %3Ctext x='20' y='84' fill='%238BF0AE'%3E%24%3Canimate attributeName='opacity' values='1;0;1' dur='1.1s' repeatCount='indefinite'/%3E%3C/text%3E %3C/g%3E %3Crect x='74' y='106' width='22' height='22' fill='%23AEB9D6'/%3E %3Crect x='48' y='128' width='74' height='8' rx='4' fill='%23C9D2E8'/%3E %3C/svg%3E") right 0 bottom 8%/clamp(100px,9vw,122px) auto no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 172'%3E %3Cdefs%3E%3ClinearGradient id='b' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23DDE3F2'/%3E%3Cstop offset='1' stop-color='%23AEB9D6'/%3E%3C/linearGradient%3E %3ClinearGradient id='c' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%231236C8'/%3E%3Cstop offset='1' stop-color='%237C3AED'/%3E%3C/linearGradient%3E%3C/defs%3E %3Crect x='32' y='6' width='196' height='130' rx='11' fill='%231A2547'/%3E %3Crect x='40' y='14' width='180' height='114' rx='5' fill='%23F4F6FB'/%3E %3Crect x='48' y='21' width='164' height='14' rx='7' fill='%23fff' stroke='%23DCE2EE'/%3E %3Ccircle cx='57' cy='28' r='3' fill='%2317803C'/%3E %3Ctext x='65' y='31.5' font-family='Arial,sans-serif' font-size='9' font-weight='700' fill='%230B1B3A'%3Eamina.safe.gm%3C/text%3E %3Crect x='131' y='23' width='1.4' height='10' fill='%231236C8'%3E%3Canimate attributeName='opacity' values='1;0;1' dur='1s' repeatCount='indefinite'/%3E%3C/rect%3E %3Crect x='48' y='41' width='164' height='34' rx='5' fill='url(%23c)'/%3E %3Ccircle cx='130' cy='75' r='11' fill='%23D6182E' stroke='%23F4F6FB' stroke-width='3'/%3E %3Crect x='92' y='92' width='76' height='6' rx='3' fill='%230B1B3A'/%3E %3Crect x='60' y='104' width='60' height='14' rx='5' fill='%23fff' stroke='%23DCE2EE'/%3E %3Crect x='140' y='104' width='60' height='14' rx='5' fill='%23fff' stroke='%23DCE2EE'/%3E %3Crect x='60' y='104' width='0' height='14' rx='5' fill='%23E5EBFF'%3E%3Canimate attributeName='width' values='0;60;60;0' dur='3s' repeatCount='indefinite'/%3E%3C/rect%3E %3Cpath d='M8 140h244l-14 18c-2 3-5 4-9 4H31c-4 0-7-1-9-4z' fill='url(%23b)'/%3E %3Crect x='108' y='140' width='44' height='5' rx='2.5' fill='%2397A3C4'/%3E %3C/svg%3E") left -10% bottom 0/clamp(150px,16vw,205px) auto no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 210'%3E %3Crect x='4' y='6' width='132' height='170' rx='12' fill='%231A2547'/%3E %3Cg transform='translate(0 14)'%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='%2325335E'/%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='none' stroke='%233E5089'/%3E %3Crect x='22' y='12' width='52' height='4' rx='2' fill='%233E5089'/%3E%3Crect x='22' y='22' width='52' height='4' rx='2' fill='%233E5089'/%3E %3Ccircle cx='96' cy='21' r='4' fill='%2352D07F'%3E%3Canimate attributeName='opacity' values='1;.2;1' dur='0.7s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='108' cy='21' r='4' fill='%235B79FF'%3E%3Canimate attributeName='opacity' values='.3;1;.3' dur='1.3s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='120' cy='21' r='4' fill='%23F5C463'%3E%3Canimate attributeName='opacity' values='1;1;.2;1' dur='2.1s' repeatCount='indefinite'/%3E%3C/circle%3E %3C/g%3E%3Cg transform='translate(0 62)'%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='%2325335E'/%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='none' stroke='%233E5089'/%3E %3Crect x='22' y='12' width='52' height='4' rx='2' fill='%233E5089'/%3E%3Crect x='22' y='22' width='52' height='4' rx='2' fill='%233E5089'/%3E %3Ccircle cx='96' cy='21' r='4' fill='%2352D07F'%3E%3Canimate attributeName='opacity' values='1;.2;1' dur='1.1s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='108' cy='21' r='4' fill='%235B79FF'%3E%3Canimate attributeName='opacity' values='.3;1;.3' dur='0.6s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='120' cy='21' r='4' fill='%23F5C463'%3E%3Canimate attributeName='opacity' values='1;1;.2;1' dur='1.7s' repeatCount='indefinite'/%3E%3C/circle%3E %3C/g%3E%3Cg transform='translate(0 110)'%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='%2325335E'/%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='none' stroke='%233E5089'/%3E %3Crect x='22' y='12' width='52' height='4' rx='2' fill='%233E5089'/%3E%3Crect x='22' y='22' width='52' height='4' rx='2' fill='%233E5089'/%3E %3Ccircle cx='96' cy='21' r='4' fill='%2352D07F'%3E%3Canimate attributeName='opacity' values='1;.2;1' dur='0.9s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='108' cy='21' r='4' fill='%235B79FF'%3E%3Canimate attributeName='opacity' values='.3;1;.3' dur='1.6s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='120' cy='21' r='4' fill='%23F5C463'%3E%3Canimate attributeName='opacity' values='1;1;.2;1' dur='0.8s' repeatCount='indefinite'/%3E%3C/circle%3E %3C/g%3E %3Crect x='30' y='176' width='10' height='22' fill='%231A2547'/%3E%3Crect x='100' y='176' width='10' height='22' fill='%231A2547'/%3E %3Cg fill='%235B79FF'%3E%3Ccircle cx='70' cy='206' r='3'%3E%3Canimate attributeName='cy' values='210;160;110;60;10' dur='2.4s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='0;1;1;1;0' dur='2.4s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E %3C/svg%3E") right 1% top 10%/clamp(95px,11vw,135px) auto no-repeat;
  filter:drop-shadow(0 18px 24px rgba(5,15,70,.28));
  animation:devices 9s ease-in-out infinite}
@keyframes devices{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* smaller phone that twists in 3D, sometimes fast, sometimes slow */
body .phone{z-index:2;width:min(220px,58vw);border-radius:36px;padding:8px;
  transform-style:preserve-3d;animation:twist 11s infinite;will-change:transform}
body .phone .notch{top:14px;width:64px;height:17px}
body .phone .screen{border-radius:29px}
body .phone .screen .bar{margin-top:36px;font-size:11px}
@keyframes twist{
  0%  {transform:perspective(900px) translateY(0)     rotateY(-14deg) rotateZ(-3deg);animation-timing-function:cubic-bezier(.2,.8,.2,1)}
  9%  {transform:perspective(900px) translateY(-8px)  rotateY(26deg)  rotateZ(2deg); animation-timing-function:ease-in-out}
  34% {transform:perspective(900px) translateY(-14px) rotateY(10deg)  rotateZ(-1deg);animation-timing-function:cubic-bezier(.7,0,.3,1)}
  42% {transform:perspective(900px) translateY(-4px)  rotateY(-30deg) rotateZ(-4deg);animation-timing-function:ease-in-out}
  70% {transform:perspective(900px) translateY(-12px) rotateY(-6deg)  rotateZ(1deg); animation-timing-function:cubic-bezier(.3,1.4,.4,1)}
  77% {transform:perspective(900px) translateY(-6px)  rotateY(360deg) rotateZ(-3deg);animation-timing-function:ease-in-out}
  100%{transform:perspective(900px) translateY(0)     rotateY(346deg) rotateZ(-3deg)}
}
@media (min-width:701px){body .stage .phone{margin-left:clamp(0px,10vw,150px)}}
body .float-chip{z-index:3}
body .float-chip.two{bottom:auto;top:48%;right:auto;left:0}
@media (max-width:700px){
  body .stage{min-height:440px}
  body .stage::after{background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 172'%3E %3Cdefs%3E%3ClinearGradient id='b' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23DDE3F2'/%3E%3Cstop offset='1' stop-color='%23AEB9D6'/%3E%3C/linearGradient%3E %3ClinearGradient id='c' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%231236C8'/%3E%3Cstop offset='1' stop-color='%237C3AED'/%3E%3C/linearGradient%3E%3C/defs%3E %3Crect x='32' y='6' width='196' height='130' rx='11' fill='%231A2547'/%3E %3Crect x='40' y='14' width='180' height='114' rx='5' fill='%23F4F6FB'/%3E %3Crect x='48' y='21' width='164' height='14' rx='7' fill='%23fff' stroke='%23DCE2EE'/%3E %3Ccircle cx='57' cy='28' r='3' fill='%2317803C'/%3E %3Ctext x='65' y='31.5' font-family='Arial,sans-serif' font-size='9' font-weight='700' fill='%230B1B3A'%3Eamina.safe.gm%3C/text%3E %3Crect x='131' y='23' width='1.4' height='10' fill='%231236C8'%3E%3Canimate attributeName='opacity' values='1;0;1' dur='1s' repeatCount='indefinite'/%3E%3C/rect%3E %3Crect x='48' y='41' width='164' height='34' rx='5' fill='url(%23c)'/%3E %3Ccircle cx='130' cy='75' r='11' fill='%23D6182E' stroke='%23F4F6FB' stroke-width='3'/%3E %3Crect x='92' y='92' width='76' height='6' rx='3' fill='%230B1B3A'/%3E %3Crect x='60' y='104' width='60' height='14' rx='5' fill='%23fff' stroke='%23DCE2EE'/%3E %3Crect x='140' y='104' width='60' height='14' rx='5' fill='%23fff' stroke='%23DCE2EE'/%3E %3Crect x='60' y='104' width='0' height='14' rx='5' fill='%23E5EBFF'%3E%3Canimate attributeName='width' values='0;60;60;0' dur='3s' repeatCount='indefinite'/%3E%3C/rect%3E %3Cpath d='M8 140h244l-14 18c-2 3-5 4-9 4H31c-4 0-7-1-9-4z' fill='url(%23b)'/%3E %3Crect x='108' y='140' width='44' height='5' rx='2.5' fill='%2397A3C4'/%3E %3C/svg%3E") left -6% bottom 0/150px auto no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 210'%3E %3Crect x='4' y='6' width='132' height='170' rx='12' fill='%231A2547'/%3E %3Cg transform='translate(0 14)'%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='%2325335E'/%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='none' stroke='%233E5089'/%3E %3Crect x='22' y='12' width='52' height='4' rx='2' fill='%233E5089'/%3E%3Crect x='22' y='22' width='52' height='4' rx='2' fill='%233E5089'/%3E %3Ccircle cx='96' cy='21' r='4' fill='%2352D07F'%3E%3Canimate attributeName='opacity' values='1;.2;1' dur='0.7s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='108' cy='21' r='4' fill='%235B79FF'%3E%3Canimate attributeName='opacity' values='.3;1;.3' dur='1.3s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='120' cy='21' r='4' fill='%23F5C463'%3E%3Canimate attributeName='opacity' values='1;1;.2;1' dur='2.1s' repeatCount='indefinite'/%3E%3C/circle%3E %3C/g%3E%3Cg transform='translate(0 62)'%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='%2325335E'/%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='none' stroke='%233E5089'/%3E %3Crect x='22' y='12' width='52' height='4' rx='2' fill='%233E5089'/%3E%3Crect x='22' y='22' width='52' height='4' rx='2' fill='%233E5089'/%3E %3Ccircle cx='96' cy='21' r='4' fill='%2352D07F'%3E%3Canimate attributeName='opacity' values='1;.2;1' dur='1.1s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='108' cy='21' r='4' fill='%235B79FF'%3E%3Canimate attributeName='opacity' values='.3;1;.3' dur='0.6s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='120' cy='21' r='4' fill='%23F5C463'%3E%3Canimate attributeName='opacity' values='1;1;.2;1' dur='1.7s' repeatCount='indefinite'/%3E%3C/circle%3E %3C/g%3E%3Cg transform='translate(0 110)'%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='%2325335E'/%3E %3Crect x='10' y='0' width='120' height='42' rx='7' fill='none' stroke='%233E5089'/%3E %3Crect x='22' y='12' width='52' height='4' rx='2' fill='%233E5089'/%3E%3Crect x='22' y='22' width='52' height='4' rx='2' fill='%233E5089'/%3E %3Ccircle cx='96' cy='21' r='4' fill='%2352D07F'%3E%3Canimate attributeName='opacity' values='1;.2;1' dur='0.9s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='108' cy='21' r='4' fill='%235B79FF'%3E%3Canimate attributeName='opacity' values='.3;1;.3' dur='1.6s' repeatCount='indefinite'/%3E%3C/circle%3E %3Ccircle cx='120' cy='21' r='4' fill='%23F5C463'%3E%3Canimate attributeName='opacity' values='1;1;.2;1' dur='0.8s' repeatCount='indefinite'/%3E%3C/circle%3E %3C/g%3E %3Crect x='30' y='176' width='10' height='22' fill='%231A2547'/%3E%3Crect x='100' y='176' width='10' height='22' fill='%231A2547'/%3E %3Cg fill='%235B79FF'%3E%3Ccircle cx='70' cy='206' r='3'%3E%3Canimate attributeName='cy' values='210;160;110;60;10' dur='2.4s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='0;1;1;1;0' dur='2.4s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E %3C/svg%3E") right -2% top 4%/88px auto no-repeat}
}

/* softer dark cards in dark mode */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) body .dev{background:linear-gradient(135deg,#24357A,#2F45A3)}
  :root:not([data-theme="light"]) body .term{background:#1A2A63;border-color:#4057A8}
}
