/* Round 7: a buy action and its result share one open instrument. */
.try-buy{width:calc(100% - 32px);max-width:1800px;margin-inline:auto;scroll-margin-top:112px}
.demo-intro{max-width:60ch;font-size:clamp(18px,2vw,24px);line-height:1.5;margin-bottom:32px}
.buy-instrument{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;padding-block:32px;border-block:1px solid var(--line)}
.buy-action .kicker{margin-bottom:12px}.buy-action .component-caption{margin-top:12px;max-width:44ch}.buy-action>.field-help{margin-top:24px}
.buy-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}
.buy-choice{display:flex;flex-direction:column;align-items:center;justify-content:end;gap:8px;min-height:48px;padding:16px 8px;background:transparent;border:1px solid var(--line);border-radius:18px;color:var(--ink);font:400 14px/1.4 var(--font-body);cursor:pointer;transition:transform 180ms var(--ease),background 180ms var(--ease)}
.buy-choice svg{width:100%;max-width:112px;height:auto;aspect-ratio:1}.buy-choice strong{font-size:14px;font-weight:600}.buy-choice small{font:400 12px/1.5 var(--font-mono);white-space:nowrap}
/* YONDER-specific buy control: a signal-strength bar meter, not the shared coin icon. */
.buy-choice .signal-icon{width:100%;max-width:96px;height:auto;aspect-ratio:64/40}
.signal-icon .bar-on{fill:var(--accent)}
.signal-icon .bar-off{fill:none;stroke:var(--ink-soft);stroke-width:1.5}
.buy-choice:hover .signal-icon .bar-off{stroke:var(--accent-deep)}
.buy-choice:hover{background:var(--tint);transform:translateY(-3px)}.buy-choice:active{transform:scale(.98)}.buy-choice:focus-visible{outline:3px solid var(--accent-deep);outline-offset:3px}.buy-choice:disabled{cursor:progress}.buy-choice[aria-busy=true]{background:var(--tint);opacity:.65}
.buy-session{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;font-size:14px}.buy-session p{font-variant-numeric:tabular-nums}.buy-session .btn{font-size:14px}
.buy-result{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:center;text-align:center}
.buy-result .piece-preview{width:min(100%,280px);min-width:0;margin:0 auto}.buy-result .piece-card{width:100%}
.empty-piece{width:100%;aspect-ratio:100/112;border:1px dashed var(--ink-soft);border-radius:28px;background:var(--tint);opacity:.4}
#fireRead{font:600 clamp(20px,2vw,28px)/1.35 var(--font-display);letter-spacing:-.02em;margin:0}
#resultTraits{font:400 16px/1.6 var(--font-body);margin-top:12px}.buy-result .rarity-read{font-size:clamp(28px,3vw,44px);margin-top:20px}.buy-result #rankRead{margin-top:8px}.buy-result .btn{margin-top:12px;font-size:14px}.buy-result #repeatRead{font-size:14px;line-height:1.5;margin-top:8px}
.buy-proof{margin-top:16px}.buy-proof>summary{width:fit-content;min-height:48px;padding-block:12px;font:400 14px/1.5 var(--font-body);cursor:pointer}.buy-proof>p{max-width:76ch;line-height:1.7;margin-block:16px}
.proof-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-block:24px}.proof-controls label{display:block;margin-bottom:8px}.proof-controls .wallet-row{margin:0}.proof-controls input{font-size:14px}.proof-controls #firePiece{margin-top:8px}.proof-seed{max-width:76ch;border-top:1px solid var(--line);padding-block:24px}.proof-seed#seed-reader{margin-top:0}.proof-seed #seedRead{min-height:0;font-family:var(--font-mono)}
.demo-status{font-size:13px;color:var(--ink-soft);margin-top:8px}.hero-trading{font-size:clamp(16px,1.6vw,21px);line-height:1.55;max-width:40ch;margin:24px auto 0}.buy-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.buy-links p{flex-basis:100%;font-size:14px}
.piece-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line);margin-block:24px}.piece-tabs button{min-height:48px;padding:12px 20px;border:0;border-radius:12px 12px 0 0;background:transparent;color:var(--ink);font:600 16px/1.5 var(--font-body);cursor:pointer}.piece-tabs button[aria-selected=true]{background:var(--glow)}
.lookup-input{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:12px}.lookup-input input{font-size:16px}#walletPanel{padding-top:16px}#lookupStatus{margin-block:24px;line-height:1.6;max-width:72ch}.wallet-pieces{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.wallet-piece{max-width:280px;min-width:0}.wallet-piece .piece-card{width:100%}.wallet-piece>p,.wallet-piece>a{margin-top:12px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.wallet-piece>a{display:inline-flex;min-height:44px;align-items:center}.wallet-piece .tag{margin-left:8px}.wallet-piece code{overflow-wrap:anywhere}.check-panel>header{margin-bottom:24px}
#showAllPieces{margin-top:24px}.buy-links[hidden],.buy-result [hidden],.buy-proof [hidden],.piece-tabs [hidden],#my-pieces [hidden],#showAllPieces[hidden]{display:none}
/* The beam runs once per click, and stays still before and after it. */
.beam-horizontal .beam-dash,.beam-vertical .beam-dash{animation:none;opacity:0}.how-strip.is-firing .beam-horizontal .beam-dash{animation:beam-across 560ms var(--ease) 1;opacity:1}.how-strip.is-firing .beam-vertical .beam-dash{animation:beam-down 560ms var(--ease) 1;opacity:1}
@media(min-width:768px){.try-buy{width:calc(100% - 64px)}}
@media(min-width:1440px){.buy-instrument{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:64px}.buy-result{grid-template-columns:280px minmax(0,1fr);text-align:left}}

@media(max-width:767px){.buy-instrument{grid-template-columns:minmax(0,1fr);gap:32px}.buy-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.buy-choice{min-height:48px;padding:12px}.buy-choice svg{max-width:80px}.buy-result{grid-template-columns:minmax(0,1fr);text-align:center}.buy-result .piece-preview{grid-row:1}.proof-controls{grid-template-columns:minmax(0,1fr)}.lookup-input{grid-template-columns:minmax(0,1fr) auto}.lookup-input .btn[type=submit]{grid-column:1/-1}.wallet-pieces{grid-template-columns:minmax(0,1fr);justify-items:center}.wallet-piece{width:min(100%,280px)}.hero-trading{max-width:34ch}.demo-intro{font-size:18px}}
@media(prefers-reduced-motion:reduce){.buy-choice{transition:none}.buy-choice:hover,.buy-choice:active{transform:none}.how-strip.is-firing .beam-dash{animation:none;opacity:0}}

/* Round 9: mint share leads, exact-combination odds stay secondary. */
.rarity-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0}
.rarity-heading .tag{flex:none}
.buy-result .rarity-heading{margin-top:20px}
.buy-result .rarity-read{font-size:clamp(22px,2.4vw,32px);line-height:1.2;margin:0;flex:1 1 220px}
.buy-result #rankRead{margin:0}
.exact-mix,.piece-back .exact-mix{font:400 13px/1.5 var(--font-body);color:var(--ink-soft);margin-top:8px}
.piece-back .rarity-summary{font:600 16px/1.3 var(--font-body)}
.piece-back .piece-odds{font:inherit}
#phoneOdds{min-width:0;white-space:normal;overflow-wrap:break-word}

.build-maths>strong{font-size:clamp(24px,3vw,36px);letter-spacing:-.02em}

#phoneOdds .exact-mix{display:block;margin-top:2px}

/* Delivery stays in the existing wallet instrument. Long receipt data wraps on phones. */
#connectPieces,#keepDelivering{min-height:44px;max-width:100%;white-space:normal}
#deliveryProgress{padding-left:24px;margin:20px 0;overflow-wrap:anywhere}
#deliveryProgress li{padding:8px 0;line-height:1.5}
#deliveryProgress a{display:inline-block;min-height:44px;padding:10px 6px}
#deliveryQuiet{margin:12px 0;color:var(--ink-soft)}
#walletPieces .wallet-piece{min-width:0;overflow-wrap:anywhere}

/* Delivery route: wallet, announcer, masked stealth address. A schematic, not a card. */
.route-map{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;margin:20px 0 24px;padding:20px 0;border-block:1px solid var(--line)}
.route-stage{display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 0 auto;min-width:92px;max-width:140px;text-align:center}
.route-icon{width:30px;height:30px;fill:none;stroke:var(--ink-soft);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:stroke 240ms var(--ease)}
.route-label{font:400 12px/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.route-value{display:block;margin-top:2px;font:400 13px/1.4 var(--font-mono);color:var(--ink);min-height:18px;overflow-wrap:anywhere}
.route-link{flex:1 1 32px;min-width:20px;height:12px;display:flex;align-items:center;color:var(--line);transition:color 240ms var(--ease)}
.route-link svg{width:100%;height:12px;fill:none;stroke:currentColor;stroke-width:1.4}
.route-stage-stealth .route-icon{stroke:var(--accent-deep)}
.route-stage-stealth .route-label{color:var(--ink)}
.route-note{max-width:56ch;font-size:14px;line-height:1.6;color:var(--ink-soft);margin:0 0 24px}
.route-note strong{color:var(--ink);font-weight:600}
/* Firing state: the path lights step by step, wallet then announcer then stealth address,
   while a buy is in flight; the stealth node stays lit once a piece is actually delivered. */
.route-map.is-routing .route-stage,.route-map.is-routing .route-link{opacity:.3;animation:route-step 240ms var(--ease) forwards}
.route-map.is-routing .route-link{color:var(--glow)}
.route-map.is-routing .route-stage .route-icon{stroke:var(--glow);filter:drop-shadow(0 0 4px var(--glow))}
.route-map.is-routing .route-stage:nth-of-type(1){animation-delay:0ms}
.route-map.is-routing .route-link:nth-of-type(2){animation-delay:100ms}
.route-map.is-routing .route-stage:nth-of-type(3){animation-delay:200ms}
.route-map.is-routing .route-link:nth-of-type(4){animation-delay:300ms}
.route-map.is-routing .route-stage:nth-of-type(5){animation-delay:400ms}
.route-map.is-delivered .route-stage-stealth .route-icon{stroke:var(--glow)}
@keyframes route-step{0%{opacity:.3}100%{opacity:1}}
@media(max-width:767px){.route-map{gap:8px 0;justify-content:center}.route-stage{min-width:74px}.route-link{flex-basis:16px}}
@media(prefers-reduced-motion:reduce){.route-map.is-routing .route-stage,.route-map.is-routing .route-link{animation:none;opacity:1}.route-map.is-routing .route-stage .route-icon{filter:none}}

/* --- privacy indicators, 2026-09-27: nav pill, hero pill, why-private band, public/private scanner, route and claim markers, footer strip --- */
.nav-privacy-pill{order:-1;display:inline-flex;align-items:center;gap:5px;padding:3px 9px;margin-bottom:4px;border:1px solid var(--line);border-radius:999px;font:400 10px/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.nav-privacy-pill svg{width:10px;height:10px;flex:none;fill:none;stroke:var(--accent-deep);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:479px){.nav-privacy-pill{display:none}}
.nav-sheet-privacy{display:flex;align-items:center;gap:8px;margin:0 0 16px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:400 13px/1.4 var(--font-body);color:var(--ink-soft)}
.nav-sheet-privacy svg{width:14px;height:14px;flex:none;fill:none;stroke:var(--accent-deep);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hero-cta-pill{margin:0 0 4px;padding:5px 12px;font-size:12px}

.why-private{width:min(100% - (var(--gutter) * 2),var(--maxw));margin:0 auto var(--space-64);padding:var(--space-24);background:color-mix(in srgb, var(--accent) 8%, var(--ground));border:1px solid var(--accent-deep);border-radius:16px}
.why-private-steps{list-style:none;margin:var(--space-16) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-24)}
.why-private-steps li{display:flex;gap:var(--space-12);align-items:flex-start}
.why-private-step-index{flex:none;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--accent-deep);border-radius:50%;font:400 13px/1 var(--font-mono);color:var(--accent)}
.why-private-steps strong{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}
.why-private-steps p{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.5}
@media(max-width:1023px){.why-private-steps{grid-template-columns:minmax(0,1fr)}}

.route-privacy-notes,.claim-privacy-notes{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:10px}
.route-privacy-notes li,.claim-privacy-notes li{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--ink-soft)}
.route-privacy-notes strong,.claim-privacy-notes strong{color:var(--ink);font-weight:600}
.route-privacy-icon{width:16px;height:16px;flex:none;margin-top:1px;fill:none;stroke:var(--accent-deep);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.public-private .scanner-frame{position:relative;margin-top:var(--space-24);padding:var(--space-32) var(--space-24);background:var(--stage-ground);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.scanner-corner{position:absolute;width:20px;height:20px;border:0 solid var(--accent-deep);opacity:.65;pointer-events:none}
.scanner-corner-tl{top:12px;left:12px;border-top-width:2px;border-left-width:2px}
.scanner-corner-tr{top:12px;right:12px;border-top-width:2px;border-right-width:2px}
.scanner-corner-bl{bottom:12px;left:12px;border-bottom-width:2px;border-left-width:2px}
.scanner-corner-br{bottom:12px;right:12px;border-bottom-width:2px;border-right-width:2px}
.scanner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-32)}
.scanner-col-label{margin:0 0 12px;font:400 12px/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.scanner-col-private .scanner-col-label{color:var(--accent)}
.scanner-row{padding:12px 0;border-top:1px solid var(--line)}
.scanner-row:first-of-type{border-top:0}
.scanner-row dt{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--ink)}
.scanner-row dd{margin:0;font-size:13px;line-height:1.5;color:var(--ink-soft)}
.scanner-honest{margin:var(--space-16) 0 0;max-width:64ch;font-size:13px;line-height:1.6;color:var(--ink-soft)}
@media(max-width:767px){.scanner-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-24)}}

.privacy-strip{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px var(--gutter);border-top:1px solid var(--line);background:var(--band);text-align:center}
.privacy-strip svg{width:14px;height:14px;flex:none;fill:none;stroke:var(--accent-deep);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.privacy-strip p{margin:0;font:400 12px/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}
@media(max-width:600px){.privacy-strip{flex-wrap:wrap;padding:14px 16px}.privacy-strip p{font-size:11px}}
