/* Purple mechanics shown big inside articles (owner, 2026-10-09): a unique mechanic gets its own
   wide stage in the centre of the screen, wider than the text column, with a short caption.
   Markup: <figure class="mech mech--aura"><div class="mech_stage">…</div><figcaption>…</figcaption></figure> */
.mech{--w:min(980px,calc(100vw - 2.5rem));width:var(--w);margin:3rem 0 3.2rem calc((100% - var(--w)) / 2);text-align:center}
.mech_stage{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:clamp(300px,46vw,460px);padding:2.5rem 1.25rem;border-radius:32px;background:#f3eefb;isolation:isolate}
/* the chameleon glow, soft for a light page */
.mech_stage::before{content:"";position:absolute;inset:-20%;z-index:-1;filter:blur(60px);opacity:.55;
  background:radial-gradient(38% 40% at 78% 72%,#ec8fdc,transparent 70%),radial-gradient(36% 38% at 20% 24%,#7fa8ff,transparent 70%),
             radial-gradient(40% 40% at 26% 78%,#9461f0,transparent 70%),radial-gradient(30% 30% at 80% 20%,#ffb98f,transparent 70%);
  animation:mech-drift 14s ease-in-out infinite alternate}
@keyframes mech-drift{to{transform:translate(3%,-2%) rotate(6deg) scale(1.06)}}
.mech figcaption{max-width:560px;margin:1.4rem auto 0;padding:0 .5rem}
.mech_k{display:block;margin:0 0 .5rem;color:#7c3aed;font:700 .72rem/1.2 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.mech_t{display:block;font-family:var(--fh);font-size:clamp(1.7rem,3.6vw,2.4rem);font-weight:500;letter-spacing:-.025em;line-height:1.08;text-wrap:balance;color:var(--ink)}
.mech_d{display:block;margin-top:.55rem;color:var(--sub);font-size:1.02rem;line-height:1.5;text-wrap:pretty}

/* shared bits */
.mech_card{background:#fff;border-radius:24px;box-shadow:0 18px 50px rgba(60,30,110,.12);padding:1.4rem 1.5rem;text-align:left;width:min(400px,100%)}
.mech_who{display:flex;align-items:center;gap:.75rem;font:600 1rem/1.25 system-ui,sans-serif;color:#19171d}
.mech_who img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.mech_who small{display:block;font-weight:400;color:#7a7383;font-size:.86rem}

/* 1. the hello: one big hand, nothing else in the way */
.mech--hello .mech_hand{width:clamp(150px,22vw,220px);filter:drop-shadow(0 22px 40px rgba(124,58,237,.28));transform-origin:70% 85%;animation:mech-wave 3.2s ease-in-out infinite}
.mech--hello .mech_card{position:absolute;right:clamp(1rem,7%,5rem);bottom:clamp(1rem,9%,3.5rem);width:auto;padding:.8rem 1.1rem .8rem .8rem;border-radius:999px}
.mech--hello .mech_who img{width:40px;height:40px}
@keyframes mech-wave{0%,55%,100%{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%,40%{transform:rotate(-7deg)}}

/* 2. the rules */
.mech .mech_rules{list-style:none;margin:1.1rem 0 1.2rem;padding:0;display:grid;gap:.7rem}
.mech .mech_rules li{margin:0;display:flex;align-items:center;gap:.7rem;font:500 1.05rem/1.3 system-ui,sans-serif;color:#19171d}
.mech_rules li::before{content:"";flex:none;width:26px;height:26px;border-radius:50%;background:#7c3aed url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/15px no-repeat}
.mech_btn{display:block;width:100%;padding:.85rem;border-radius:999px;background:#19171d;color:#fff;font:600 1rem/1 system-ui,sans-serif;text-align:center}

/* 3. the aura question: plus or minus, nothing else */
.mech_q{margin:1.1rem 0 1.3rem;font:600 1.25rem/1.3 system-ui,sans-serif;color:#19171d;text-wrap:balance}
.mech_pm{display:flex;gap:.8rem}
.mech_pm span{flex:1;display:flex;align-items:center;justify-content:center;height:64px;border-radius:20px;background:#f3eefb;color:#5b2bc4;font:500 2rem/1 system-ui,sans-serif}
.mech_pm span:last-child{background:#7c3aed;color:#fff;animation:mech-pulse 2.8s ease-in-out infinite}
@keyframes mech-pulse{0%,100%{box-shadow:0 0 0 0 rgba(124,58,237,.35)}50%{box-shadow:0 0 0 12px rgba(124,58,237,0)}}

/* 4. aura: the organic glow, never a number */
.mech--aura .mech_aura{width:clamp(220px,34vw,340px);animation:mech-breathe 6s ease-in-out infinite}
@keyframes mech-breathe{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.06) rotate(8deg)}}

/* 5. people a little further ahead */
.mech_row{display:flex;align-items:center;justify-content:center;gap:clamp(.5rem,2vw,1.4rem);flex-wrap:nowrap}
.mech_row figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:.5rem;font:600 .85rem/1 system-ui,sans-serif;color:#4a4458}
.mech_row img{width:clamp(48px,8vw,92px);height:clamp(48px,8vw,92px);border-radius:50%;object-fit:cover;box-shadow:0 10px 30px rgba(60,30,110,.15);border:3px solid #fff}
.mech_row .is-you img{width:clamp(60px,10vw,112px);height:clamp(60px,10vw,112px);border-color:#7c3aed}
.mech_row .is-far img{filter:blur(5px) saturate(.6);opacity:.55}
.mech_row .is-next img{animation:mech-open 5s ease-in-out infinite}
@keyframes mech-open{0%,20%{filter:blur(5px) saturate(.6);opacity:.55}45%,100%{filter:none;opacity:1}}
.mech_arrow{color:#9a7fe0;font-size:1.4rem}

@media (max-width:560px){
  .mech{--w:calc(100vw - 1.5rem);margin-top:2.4rem;margin-bottom:2.6rem}
  .mech_stage{border-radius:24px;min-height:300px}
  .mech--hello .mech_card{left:50%;right:auto;transform:translateX(-50%);white-space:nowrap}
  .mech_row{gap:.4rem}.mech_arrow{display:none}
}
@media (prefers-reduced-motion:reduce){.mech *,.mech_stage::before{animation:none!important}}

/* 6. the first photo: blurred until you say yes (owner, 2026-10-09) */
.mech--photo .mech_card{width:min(380px,100%)}
.mech_pic{position:relative;height:190px;margin:1rem 0 .9rem;border-radius:18px;overflow:hidden}
.mech_pic::before{content:"";position:absolute;inset:-12px;filter:blur(14px);
  background:radial-gradient(40% 50% at 30% 35%,#ffd1a6,transparent 70%),radial-gradient(45% 55% at 72% 60%,#c9a7ff,transparent 70%),linear-gradient(160deg,#8fb8ff,#f3b7d8)}
.mech_pic img{position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%);opacity:.9}
.mech_ask{margin:0 0 .8rem;font:500 .98rem/1.35 system-ui,sans-serif;color:#19171d}
.mech_ask small{display:block;margin-bottom:.2rem;color:#7c3aed;font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.mech_yn{display:flex;gap:.6rem}
.mech_yn span{flex:1;padding:.75rem;border-radius:999px;background:#f3eefb;color:#5b2bc4;font:600 1rem/1 system-ui,sans-serif;text-align:center}
.mech_yn span:first-child{background:#19171d;color:#fff}

/* 7. two-step verification: a new device asks for the code (2026-10-14) */
.mech--code .mech_who img{border-radius:0;object-fit:contain;width:44px;height:44px}
.mech_code{display:flex;gap:.45rem;margin:1.2rem 0}
.mech_code span{flex:1;display:flex;align-items:center;justify-content:center;height:58px;border-radius:14px;background:#f2f2f4;color:#19171d;font:600 1.5rem/1 system-ui,sans-serif}

/* 8. per token: the value over the dashed floor (2026-10-15) */
.mech--value .mech_who img{border-radius:0;object-fit:contain;width:44px;height:44px}
.mech_big{margin:1rem 0 .4rem;font:600 2.4rem/1 system-ui,sans-serif;letter-spacing:-.02em;color:#19171d}
.mech_line{display:block;width:100%;height:80px;margin:0 0 .8rem}
.mech_rowkv{display:flex;justify-content:space-between;font:500 .95rem/1.3 system-ui,sans-serif;color:#7a7383}
.mech_rowkv b{color:#19171d;font-weight:600}

/* 9. boxes: three prices in tokens (2026-10-15) */
.mech--boxes .mech_who img{border-radius:0;object-fit:contain;width:44px;height:44px}
.mech_boxes{display:grid;gap:.7rem;margin:1.2rem 0}
.mech_boxes .mech_rowkv{font-size:1.05rem;align-items:center;gap:.6rem}
.mech_boxes .mech_rowkv span{display:flex;align-items:center;gap:.6rem}
.mech_sh{width:22px;height:22px;flex:none}
.mech_rare{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#7c3aed}
.mech_boxes .mech_rowkv b,.mech--boxes .mech_btn{white-space:nowrap}
@media (max-width:560px){.mech--boxes .mech_card{padding:1.2rem 1rem}.mech_boxes .mech_rowkv{font-size:.9rem}.mech_boxes .mech_rowkv span{gap:.45rem}}

/* 10. boxes drawn live with the app's code, each on its own rhythm (2026-10-15) */
.mech--boxes .mech_stage{padding:2rem 1.25rem}
.mech_bx{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;width:min(860px,100%)}
.mech_b{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:1rem .8rem 1.1rem;border-radius:22px;background:#fff;box-shadow:0 18px 50px rgba(60,30,110,.12)}
.mech_b canvas{display:block;width:100%;aspect-ratio:1}
.mech_b b{margin-top:.4rem;font:600 1.02rem/1.2 system-ui,sans-serif;color:#19171d}
.mech_b span{font:500 .9rem/1.2 system-ui,sans-serif;color:#7a7383}
.mech_b.is-black{background:#111}
.mech_b.is-black b{color:#fff}
.mech_b.is-black span{color:#a59fb0}
@media (max-width:560px){.mech_bx{grid-template-columns:repeat(2,1fr);gap:.7rem}.mech_b{padding:.8rem .6rem .9rem;border-radius:18px}}

/* 11. one form on its own (2026-10-15) */
.mech_bx.is-one{grid-template-columns:minmax(0,300px);justify-content:center}
