.page-loader{position:fixed;inset:0;z-index:100;background:#050000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;pointer-events:none;animation:loader-failsafe .5s 5s forwards;transition:opacity .45s,visibility .45s}.page-loader.is-leaving{opacity:0;visibility:hidden}.page-loader__brand{font-family:var(--font-display);font-size:34px;letter-spacing:.08em}.loader-bow{width:240px;height:144px;overflow:visible;fill:var(--text-red)}.loader-bow__string{fill:none;stroke:var(--text-red);stroke-width:2;animation:draw-string 1.3s steps(5) infinite}.loader-bow__arrow{animation:shoot-arrow 1.3s steps(8) infinite}.page-loader__caption{font-size:14px;letter-spacing:.2em}.page-loader__track{width:210px;height:4px;background:#391019}.page-loader__track span{display:block;height:100%;background:var(--text-red);transform-origin:left;animation:loader-progress 1.5s steps(12) both}.wallet-dialog{background:#080000;color:var(--text-red);border:2px solid currentColor;max-width:450px;padding:35px;font-family:var(--font-mono)}.wallet-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.wallet-dialog h2{font:36px/1.1 var(--font-display);margin:20px 0}.wallet-dialog p{margin-bottom:20px}.wallet-dialog a{display:inline-block;border:1px solid;padding:8px 12px}.wallet-dialog__close{position:absolute;right:10px;top:5px;background:none;border:0;color:inherit;font-size:30px}.wallet-dialog__eyebrow{font-size:12px;letter-spacing:.1em}

/* Wallet panel shares the page's red and black palette. */
.wallet-dialog { width: min(460px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); overflow-y: auto; padding: 32px; box-shadow: 10px 10px 0 #ff30482b; }
.wallet-dialog [hidden] { display: none !important; }
.wallet-dialog h2 { margin: 20px 0 16px; }
.wallet-dialog #walletStatus { font-size: 18px; line-height: 1.25; margin: 16px 0 20px; }
.wallet-network { display: flex; align-items: center; gap: 9px; font-size: 16px; }
.wallet-network__dot { width: 7px; height: 7px; background: var(--text-red); opacity: .45; flex-shrink: 0; }
.wallet-dialog[data-connected='true'] .wallet-network__dot { opacity: 1; box-shadow: 0 0 10px #ff304866; }
.wallet-account { border: 1px solid #ff304866; padding: 14px; margin: 20px 0; }
.wallet-account__label { display: block; font-size: 13px; letter-spacing: .15em; margin-bottom: 8px; }
.wallet-account code { display: block; font-size: 13px; overflow-wrap: anywhere; line-height: 1.5; user-select: all; }
.wallet-account__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.wallet-account__links button, .wallet-dialog .wallet-account__links a { background: none; color: inherit; font: inherit; border: 0; border-bottom: 1px solid #ff304866; padding: 2px 0; font-size: 15px; }
.wallet-action, .wallet-dialog a.wallet-action { display: block; width: 100%; border: 1px solid var(--text-red); background: var(--text-red); color: #050000; padding: 12px 16px; text-align: center; font: 20px var(--font-mono); }
.wallet-action:hover { background: #ffa3ac; }
.wallet-action:disabled { opacity: .6; cursor: wait; }
.wallet-disconnect { display: block; margin: 15px auto 0; border: 0; padding: 5px; background: none; color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.wallet-dialog .wallet-dialog__note { font-size: 14px; opacity: .65; margin: 20px 0 0; }
.wallet-dialog .wallet-error { padding: 10px 12px; border-left: 2px solid currentColor; background: #ff304817; font-size: 17px; line-height: 1.25; }
@media (max-width: 700px) { .wallet-dialog { padding: 24px; } .wallet-dialog h2 { font-size: 32px; } }