/* ─────────────────────────────────────────────────────────────
   HiSiriCommands — shared styles
   Apple-support-guide visual language: white, hairline rules,
   system font stack (renders as real SF Pro on Apple devices).
   ───────────────────────────────────────────────────────────── */
:root{
  --ink:#1d1d1f; --ink2:#6e6e73; --ink3:#86868b;
  --link:#0066cc; --rule:#d2d2d7; --rule2:#e8e8ed;
  --bg:#fff; --bg2:#f5f5f7; --tint:#0071e3;
  --ok:#248a3d; --warn:#b25000;
  --f:-apple-system,BlinkMacSystemFont,'SF Pro Text','SF Pro Display','Helvetica Neue',Helvetica,Arial,sans-serif;
  --wrap:980px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:118px}
body{
  margin:0;background:var(--bg);color:var(--ink);font-family:var(--f);
  font-size:17px;line-height:1.55;letter-spacing:-.012em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto}

/* ── header ── */
.site-head{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--rule2);
}
.site-head .wrap{display:flex;align-items:center;gap:14px;height:54px}
.logo{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:600;
  letter-spacing:-.015em;color:var(--ink)}
.logo:hover{text-decoration:none}
/* the hero orb again, small enough to sit on a 54px bar */
.logo .glyph{
  position:relative;width:24px;height:24px;border-radius:50%;flex-shrink:0;overflow:hidden;
  box-shadow:0 1px 5px rgba(126,107,245,.35);
}
.logo .glyph svg{display:block;width:100%;height:100%}
.logo .name{display:flex;gap:.32em}
.logo .name .hi{color:var(--ink)}
.site-nav{margin-left:auto;display:flex;gap:20px;align-items:center}
.site-nav a{color:var(--ink2);font-size:14.5px}
.site-nav a:hover,.site-nav a[aria-current]{color:var(--ink);text-decoration:none}
@media(max-width:760px){.site-nav{display:none}}

/* ── search ── */
.find{position:relative;flex:0 1 250px;margin-left:auto}
.site-nav+.find{margin-left:18px}
.find input{
  width:100%;height:33px;padding:0 12px 0 31px;font-family:var(--f);font-size:14.5px;
  color:var(--ink);background:var(--bg2);border:1px solid transparent;border-radius:8px;outline:none;
  transition:border-color .18s,background .18s;
}
.find input:focus{background:#fff;border-color:var(--tint)}
.find svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);
  width:14px;height:14px;stroke:var(--ink3);fill:none;stroke-width:2}

/* ── hero ── */
.hero{padding:60px 0 34px}
.hero.center{text-align:center}
.kicker{font-size:15px;color:var(--ink2);margin:0 0 10px}
h1{margin:0 0 16px;font-size:clamp(34px,5.2vw,54px);line-height:1.07;
  font-weight:700;letter-spacing:-.028em}
.lede{font-size:19px;color:var(--ink2);line-height:1.55;max-width:660px;margin:0}
.hero.center .lede{margin:0 auto}
.stats{display:flex;gap:40px;margin-top:28px;flex-wrap:wrap}
.hero.center .stats{justify-content:center}
.stats b{display:block;font-size:25px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
.stats span{font-size:13px;color:var(--ink3)}

/* ── generic prose ── */
.prose{padding:14px 0 40px;max-width:720px}
.prose h2{margin:40px 0 12px;font-size:clamp(24px,3.2vw,32px);font-weight:700;letter-spacing:-.022em}
.prose h3{margin:28px 0 8px;font-size:19px;font-weight:600;letter-spacing:-.015em}
.prose p{margin:0 0 15px;color:var(--ink2)}
.prose ul,.prose ol{margin:0 0 15px;padding-left:22px;color:var(--ink2)}
.prose li{margin-bottom:7px}
.prose strong{color:var(--ink);font-weight:600}
.prose .updated{font-size:14px;color:var(--ink3);margin-bottom:26px}
.callout{background:var(--bg2);border-radius:14px;padding:18px 20px;margin:0 0 22px}
.callout p{margin:0;color:var(--ink)}
.callout p+p{margin-top:10px}

/* ── answer box (the short definition search engines like) ── */
.answer{border:1px solid var(--rule);border-radius:16px;padding:22px 24px;margin:8px 0 6px}
.answer h2{margin:0 0 8px;font-size:20px;font-weight:600;letter-spacing:-.015em}
.answer p{margin:0;color:var(--ink2)}

/* ── activation cards ── */
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:26px 0 0}
@media(max-width:760px){.two{grid-template-columns:1fr}}
.dev{border:1px solid var(--rule);border-radius:16px;padding:20px 22px}
.dev h3{margin:0 0 10px;font-size:18px;font-weight:600;letter-spacing:-.015em;
  display:flex;align-items:center;gap:8px}
.dev h3 svg{width:17px;height:17px;stroke:var(--ink);fill:none;stroke-width:1.7}
.dev ul{margin:0;padding-left:19px;color:var(--ink2);font-size:15.5px}
.dev li{margin-bottom:6px}
.dev kbd{
  font-family:var(--f);font-size:12.5px;background:var(--bg2);border:1px solid var(--rule);
  border-radius:5px;padding:1px 6px;color:var(--ink);white-space:nowrap;
}

/* ── filters ── */
.filters{
  position:sticky;top:54px;z-index:55;background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--rule2);margin-top:34px;
}
.filters .row{display:flex;gap:7px;overflow-x:auto;padding:11px 0;scrollbar-width:none;align-items:center}
.filters .row::-webkit-scrollbar{display:none}
.filters .lbl{font-size:12.5px;color:var(--ink3);flex-shrink:0;margin-right:2px}
.chip{
  flex-shrink:0;height:30px;padding:0 13px;border-radius:15px;border:1px solid var(--rule);
  background:#fff;color:var(--ink);font-family:var(--f);font-size:13.5px;letter-spacing:-.01em;
  cursor:pointer;white-space:nowrap;transition:background .16s,color .16s,border-color .16s;
}
.chip:hover{background:var(--bg2)}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ── command sections ── */
.topic{border-top:1px solid var(--rule);padding:44px 0 8px}
.topic:first-of-type{border-top:0}
.topic h2{margin:0 0 6px;font-size:clamp(24px,3.3vw,34px);font-weight:700;letter-spacing:-.024em}
.topic .blurb{margin:0 0 20px;color:var(--ink2);max-width:640px}
.topic .n{font-size:13px;color:var(--ink3);font-weight:400;margin-left:9px;letter-spacing:0}

.cmdlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule2)}
.cmd{
  display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:start;
  padding:15px 0;border-bottom:1px solid var(--rule2);
}
.cmd q{
  quotes:'“' '”';font-size:16.5px;line-height:1.45;letter-spacing:-.012em;
  color:var(--ink);font-weight:500;grid-column:1;
}
.cmd .does{grid-column:1;margin:0;font-size:14.5px;color:var(--ink2);line-height:1.45}
.cmd .meta{grid-column:2;grid-row:1 / span 2;display:flex;align-items:center;gap:7px}
.on{display:flex;gap:5px}
.on i{
  font-style:normal;font-size:11px;letter-spacing:.01em;padding:2px 8px;border-radius:20px;
  border:1px solid var(--rule);color:var(--ink2);white-space:nowrap;background:#fff;
}
/* prefixed so they cannot collide with the .iphone device-mockup rules */
.on i.b-mac{border-color:#cfe0f5;color:#0b5cad;background:#f3f8ff}
.on i.b-iphone{border-color:#d7e9d9;color:#1c6b34;background:#f2fbf4}
.cp{
  flex-shrink:0;width:26px;height:26px;border-radius:7px;border:1px solid var(--rule);
  background:#fff;color:var(--ink3);cursor:pointer;display:flex;align-items:center;
  justify-content:center;transition:color .16s,border-color .16s;
}
.cp:hover{color:var(--ink);border-color:var(--ink3)}
.cp svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}
.cp.ok{color:var(--ok);border-color:var(--ok)}
@media(max-width:620px){
  .cmd{grid-template-columns:1fr}
  .cmd .meta{grid-column:1;grid-row:auto;margin-top:9px}
  /* touch targets need to clear ~44px on a phone; the desktop icon button is too small */
  .cp{width:44px;height:38px;border-radius:9px}
  .cp svg{width:15px;height:15px}
  .on i{padding:5px 10px;font-size:11.5px}
}

/* ── FAQ ── */
.faq{border-top:1px solid var(--rule);padding:46px 0 0}
.faq h2{margin:0 0 20px;font-size:clamp(24px,3.3vw,34px);font-weight:700;letter-spacing:-.024em}
.faq details{border-bottom:1px solid var(--rule2);padding:16px 0}
.faq summary{
  cursor:pointer;font-size:17.5px;font-weight:500;letter-spacing:-.015em;list-style:none;
  display:flex;justify-content:space-between;gap:16px;align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--ink3);font-size:21px;font-weight:400;line-height:1}
.faq details[open] summary::after{content:'–'}
.faq details p{margin:11px 0 0;color:var(--ink2);font-size:16px}

/* ── forms ── */
.field{margin-bottom:16px}
.field label{display:block;font-size:14px;font-weight:500;margin-bottom:6px}
.field input,.field textarea{
  width:100%;padding:11px 13px;font-family:var(--f);font-size:16px;color:var(--ink);
  background:#fff;border:1px solid var(--rule);border-radius:10px;outline:none;
  transition:border-color .16s;
}
.field input:focus,.field textarea:focus{border-color:var(--tint)}
.field textarea{min-height:130px;resize:vertical}
.btn{
  display:inline-block;padding:11px 22px;border:0;border-radius:980px;background:var(--tint);
  color:#fff;font-family:var(--f);font-size:16px;font-weight:400;cursor:pointer;
  transition:background .16s;
}
.btn:hover{background:#0077ed;text-decoration:none}

.none{text-align:center;padding:70px 20px;color:var(--ink2)}
.none .chip{margin-top:14px}

/* ── footer ── */
.site-foot{border-top:1px solid var(--rule);margin-top:64px;padding:34px 0 48px;
  background:var(--bg2);font-size:14px;color:var(--ink2)}
.foot-grid{display:flex;flex-wrap:wrap;gap:14px 34px;margin-bottom:20px}
.foot-grid a{color:var(--ink2)}
.foot-grid a:hover{color:var(--ink)}
.legal{font-size:12.5px;color:var(--ink3);line-height:1.65;max-width:760px}
.legal p{margin:0 0 8px}

.toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:99;
  background:rgba(29,29,31,.93);color:#fff;padding:9px 18px;border-radius:999px;font-size:14px;
  backdrop-filter:blur(10px);animation:pop .22s ease;
}
@keyframes pop{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:9px;z-index:99;background:#fff;padding:8px 14px;border-radius:8px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;
  scroll-behavior:auto!important}}

/* ═══════════════════════════════════════════════════════════════
   DEVICE ILLUSTRATIONS
   Both are cropped by their figure rather than drawn short, so the
   device keeps true proportions and runs off the bottom edge — the
   composition Apple's own guides use.
   ═══════════════════════════════════════════════════════════════ */
.shot{
  overflow:hidden;display:flex;justify-content:center;align-items:flex-start;
  height:330px;padding-top:6px;
}
@media(max-width:820px){.shot{height:270px}}
/* the laptop is shown complete rather than cut off — it reads as a device, not a crop */
.shot.mac{height:auto;overflow:visible;padding-top:0}
@media(max-width:820px){.shot.mac{height:auto}}

/* ── iPhone ── */
.iphone{
  width:246px;flex-shrink:0;border-radius:44px;padding:9px;position:relative;
  background:linear-gradient(160deg,#3a3c42,#0f1114 24%,#26282d 54%,#0a0b0e 78%,#33353b);
  box-shadow:0 1px 2px rgba(0,0,0,.3),0 14px 36px rgba(0,0,0,.26);
}
.iphone .glass{
  border-radius:36px;overflow:hidden;position:relative;aspect-ratio:9/19.5;
  display:flex;flex-direction:column;
  background:
    radial-gradient(85% 52% at 20% 74%, #8ceccd 0%, transparent 62%),
    radial-gradient(95% 60% at 86% 58%, #6aa8f7 0%, transparent 64%),
    radial-gradient(70% 44% at 52% 30%, #b9d4fb 0%, transparent 70%),
    linear-gradient(170deg,#eef3fb 0%,#cfe0f5 38%,#a9d9e8 66%,#9fe6cd 100%);
}
.iphone .notch{
  position:absolute;top:9px;left:50%;transform:translateX(-50%);
  width:33%;height:15px;background:#0b0b0f;border-radius:99px;z-index:6;
}
.iphone .sbar{
  display:flex;justify-content:space-between;align-items:center;padding:11px 15px 0;
  font-size:9px;font-weight:600;color:#1d1d1f;z-index:5;letter-spacing:-.01em;
}
.iphone .sbar .ic{display:flex;gap:3px;align-items:center}
.iphone .sbar svg{width:10px;height:10px;fill:#1d1d1f}
.iphone .wallclock{
  position:absolute;top:19%;left:0;right:0;text-align:center;font-size:54px;font-weight:590;
  color:rgba(255,255,255,.6);letter-spacing:-.03em;z-index:0;
}
.iphone .face{flex:1;display:flex;flex-direction:column;padding:10px 12px 0;gap:7px;overflow:hidden}

/* ── Mac: a MacBook, as in Apple's macOS guide figures ── */
.macbook{
  width:430px;flex-shrink:0;position:relative;
  border-radius:18px;padding:11px 11px 0;
  background:linear-gradient(160deg,#3c3e44,#111316 30%,#2a2c31 55%,#0b0c0f 80%,#34363c);
  box-shadow:0 1px 2px rgba(0,0,0,.3),0 18px 40px rgba(0,0,0,.28);
}
@media(max-width:820px){.macbook{width:340px}}
.macbook .lid{
  border-radius:9px;overflow:hidden;position:relative;height:300px;
  display:flex;flex-direction:column;background:#0c1418;
}
.macbook .notch{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:76px;height:11px;background:#0c1418;border-radius:0 0 7px 7px;z-index:8;
}
.macbook .desktop{
  flex:1;position:relative;display:flex;flex-direction:column;
  background:
    radial-gradient(120% 60% at 10% 4%, #cfe6f2 0%, transparent 55%),
    radial-gradient(100% 70% at 84% 30%, #2e7fbe 0%, transparent 60%),
    linear-gradient(155deg,#8fd0e8 0%,#3f92cd 34%,#2b6fae 62%,#5fc4c9 88%,#a7e4dc 100%);
}
/* menu bar: app menus left, status icons and clock right */
.macbook .mbar{
  display:flex;align-items:center;gap:7px;padding:3px 8px;
  font-size:6.5px;font-weight:500;color:#fff;background:rgba(255,255,255,.16);
  backdrop-filter:blur(6px);
}
.macbook .mbar .apple{width:7px;height:8px;flex-shrink:0}
.macbook .mbar b{font-weight:700}
.macbook .mbar .right{margin-left:auto;display:flex;align-items:center;gap:5px}
.macbook .mbar svg{width:8px;height:8px;fill:#fff}
/* the app window */
.macbook .win{
  position:absolute;left:8%;top:12%;width:64%;height:78%;border-radius:7px;overflow:hidden;
  background:#fbfcfe;box-shadow:0 8px 26px rgba(0,0,0,.28);display:flex;
}
.macbook .win .side{width:30%;background:#eef1f6;padding:5px 4px;border-right:.5px solid #dfe3ea}
.macbook .win .dots{display:flex;gap:2.5px;margin-bottom:5px}
.macbook .win .dots i{width:4px;height:4px;border-radius:50%;display:block}
.macbook .win .row{height:4px;border-radius:2px;background:#d6dbe4;margin-bottom:4px}
.macbook .win .row.s{width:60%}
.macbook .win .row.m{width:80%}
.macbook .win .body{flex:1;padding:5px 6px}
.macbook .win .line{height:3px;border-radius:2px;background:#e3e7ee;margin-bottom:3.5px}
.macbook .win .line.t{background:#c9cfda;width:45%;height:4px;margin-bottom:5px}
/* Siri panel, top right */
.macbook .siri{
  position:absolute;right:5%;top:9%;width:34%;z-index:5;
  display:flex;flex-direction:column;gap:4px;
}
.macbook .siri .ask{
  display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:99px;
  background:linear-gradient(100deg,rgba(255,222,240,.95),rgba(226,224,255,.95) 55%,rgba(214,240,255,.95));
  box-shadow:0 1px 5px rgba(0,0,0,.16);font-size:6px;color:#38383c;
}
.macbook .siri .ask .dotmic{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-left:auto;
  background:rgba(255,255,255,.9);
}
.macbook .siri .ans{
  background:rgba(255,255,255,.93);border-radius:8px;padding:6px 7px;
  box-shadow:0 3px 12px rgba(0,0,0,.2);font-size:6px;line-height:1.5;color:#1d1d1f;
}
.macbook .siri .ans b{display:block;margin-bottom:3px;font-size:6.5px}
.macbook .siri .ans .step{display:flex;gap:3px;margin-bottom:2px}
.macbook .siri .ans .step span:first-child{color:#86868b;flex-shrink:0}

/* shared glass pieces inside the iPhone */
.said-bub{
  align-self:flex-end;max-width:86%;background:rgba(255,255,255,.72);
  border:.5px solid rgba(255,255,255,.9);border-radius:15px;padding:7px 11px;
  font-size:10.5px;line-height:1.35;color:#1d1d1f;z-index:2;
  box-shadow:0 1px 6px rgba(0,0,0,.07);
}
.pane{
  background:rgba(255,255,255,.78);border:.5px solid rgba(255,255,255,.92);
  border-radius:15px;padding:10px 11px;z-index:2;
  box-shadow:0 2px 12px rgba(0,0,0,.08);
}
.pane .cap{font-size:8px;color:#6e6e73;letter-spacing:.02em;text-transform:uppercase;font-weight:600}
.pane .reply{font-size:10.5px;line-height:1.4;color:#1d1d1f;margin-top:3px}
.pane .big{font-size:26px;font-weight:600;letter-spacing:-.03em;line-height:1.15;margin-top:4px}
.pane .sub{font-size:9px;color:#6e6e73;margin-top:1px}
.iphone .glow{
  position:absolute;left:-6%;right:-6%;bottom:-16px;height:74px;pointer-events:none;z-index:3;
  background:conic-gradient(from 200deg at 50% 100%,#4fc3f7,#7e6bf5,#f45b9c,#ff9a3e,#4fc3f7);
  filter:blur(18px);opacity:.9;border-radius:50%;
}

/* ── topic row (alternating, like Apple's guide) ── */
.topicrow{
  display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:56px 0 0;
}
.topicrow.flip .shot{order:2}
@media(max-width:820px){
  .topicrow{grid-template-columns:1fr;gap:24px;padding-top:42px}
  .topicrow.flip .shot{order:0}
}
.topicrow h2,.topicrow h3{margin:0 0 10px;font-size:clamp(24px,3.4vw,34px);
  font-weight:700;letter-spacing:-.024em;line-height:1.12}
.topicrow p{margin:0 0 14px;color:var(--ink2);font-size:17px}
.topicrow .go{display:inline-flex;align-items:center;gap:5px;font-size:17px}
.topicrow .go svg{width:7px;height:11px;stroke:currentColor;fill:none;stroke-width:2.2}

/* ── breadcrumbs ── */
.crumbs{padding:18px 0 0;font-size:14px;color:var(--ink3)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0}
.crumbs li::after{content:'›';margin-left:7px;color:var(--rule)}
.crumbs li:last-child::after{content:''}
.crumbs a{color:var(--ink2)}

/* ── hub cards ── */
.hubgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:8px}
.hubcard{
  display:block;border:1px solid var(--rule);border-radius:16px;padding:19px 20px;color:var(--ink);
  transition:border-color .16s,transform .16s;
}
.hubcard:hover{border-color:var(--ink3);text-decoration:none;transform:translateY(-2px)}
.hubcard h3{margin:0 0 5px;font-size:17.5px;font-weight:600;letter-spacing:-.015em}
.hubcard p{margin:0 0 9px;font-size:14.5px;color:var(--ink2);line-height:1.45}
.hubcard .cnt{font-size:12.5px;color:var(--link)}
.devpick{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:26px 0 0}
@media(max-width:680px){.devpick{grid-template-columns:1fr}}
.related{border-top:1px solid var(--rule);margin-top:44px;padding-top:30px}
.related h2{margin:0 0 16px;font-size:22px;font-weight:700;letter-spacing:-.02em}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills a{
  padding:7px 14px;border:1px solid var(--rule);border-radius:20px;font-size:14px;color:var(--ink);
}
.pills a:hover{background:var(--bg2);text-decoration:none}

.logo .name .siri{
  background:linear-gradient(96deg,#ff2d92 0%,#f0399c 18%,#a855f7 48%,#6aa6ff 78%,#4fc3f7 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-fill-color:transparent;font-weight:700;
}
.siri-word{
  background:linear-gradient(96deg,#ff2d92 0%,#f0399c 18%,#a855f7 48%,#6aa6ff 78%,#4fc3f7 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-fill-color:transparent;
}

/* ── hero: the Siri orb, breathing like the assistant listening ── */
.siri-hero{display:flex;justify-content:center;margin:0 0 26px}
.orb-wrap{position:relative;width:112px;height:112px;display:grid;place-items:center}
/* three offset conic gradients drifting at different speeds read as motion
   without ever resolving into a fixed shape — the way the real orb behaves */
.orb-wrap i{
  position:absolute;inset:-9px;border-radius:50%;
  background:conic-gradient(from 0deg,#4fc3f7,#7e6bf5,#f45b9c,#ff9a3e,#4fc3f7);
  filter:blur(15px);opacity:.5;
  animation:orbspin 7s linear infinite;
}
.orb-wrap i:nth-child(2){
  inset:-4px;filter:blur(11px);opacity:.34;
  background:conic-gradient(from 140deg,#ff9a3e,#f45b9c,#7e6bf5,#4fc3f7,#ff9a3e);
  animation:orbspin 5s linear infinite reverse;
}
.orb-wrap i:nth-child(3){display:none}
/* the orb itself: overlapping translucent lobes around a lit core, drawn in SVG so it
   scales cleanly and each lobe can drift on its own timing */
.orb-wrap .bead{
  position:relative;z-index:1;width:104px;height:104px;border-radius:50%;overflow:hidden;
  box-shadow:0 8px 26px rgba(126,107,245,.32),inset 0 0 0 .5px rgba(255,255,255,.18);
  animation:orbpulse 3.2s ease-in-out infinite;
}
.orb-wrap .bead svg{display:block;width:100%;height:100%}
.bloom-petal{transform-origin:50% 50%;animation:petal 6s ease-in-out infinite}
g:nth-of-type(2) .bloom-petal{animation-duration:7.5s;animation-delay:-1.2s}
g:nth-of-type(3) .bloom-petal{animation-duration:9s;animation-delay:-2.4s}
g:nth-of-type(4) .bloom-petal{animation-duration:8s;animation-delay:-3.6s}
g:nth-of-type(5) .bloom-petal{animation-duration:6.8s;animation-delay:-4.8s}
@keyframes petal{
  0%,100%{transform:rotate(0deg) scale(1)}
  50%{transform:rotate(9deg) scale(1.06)}
}
@keyframes orbspin{to{transform:rotate(360deg)}}
@keyframes orbpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}

/* the waveform under it, as Siri shows while listening */
.wave{display:flex;align-items:center;justify-content:center;gap:4px;height:22px;margin-top:4px}
.wave span{
  width:3px;border-radius:2px;background:linear-gradient(180deg,#7e6bf5,#4fc3f7);
  animation:bounce 1.15s ease-in-out infinite;
}
.wave span:nth-child(1){height:8px;animation-delay:0s}
.wave span:nth-child(2){height:15px;animation-delay:.1s}
.wave span:nth-child(3){height:21px;animation-delay:.2s}
.wave span:nth-child(4){height:13px;animation-delay:.3s}
.wave span:nth-child(5){height:18px;animation-delay:.4s}
.wave span:nth-child(6){height:9px;animation-delay:.5s}
@keyframes bounce{0%,100%{transform:scaleY(.45)}50%{transform:scaleY(1)}}

/* Motion is decorative here: with reduced-motion the orb still reads as an orb,
   it simply stops moving. */
@media(prefers-reduced-motion:reduce){
  .orb-wrap i,.orb-wrap .bead,.wave span,.bloom-petal{animation:none}
  .wave span{transform:scaleY(.8)}
}
