@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;700;900&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap');
/* VEILBOUND LAUNCHPAD — the design system. Loaded after style.css; every rule is scoped to html[data-brand="veil"].
   Built on the launchpad skin santa-site wore on its second door (its structure is battle-tested against app.js's launchpad layout), re-cut for
   Veilbound: near-black void, bone-silver text, veilglass teal (#4FE0D0) for what is alive, spectral violet for depth, ember gold for what you
   press. Cinzel is the carved display face (headings, figures in heroes), Inter the body, JetBrains Mono every number. Real Veilbound art only
   (public/assets/veil, built by tools/brand/build_assets.mjs from the owner's own files); no logo is drawn here, the wordmark is the game's own. */
/* <base href="/"> is set, so every url() is root-relative (valhalla/…). Keyframes are global, so the new ones are vh-prefixed; the Santa ones (tkUp, rowUp, chipRise, sparkFly, smSheen, actIn…) are kept and recoloured through the classes that use them. */

/* ---- tokens: the browns become iron, the OSRS yellow becomes heading gold, the gold family stays so the literal house-gold values in style.css read as hoard gold for free */
html[data-brand="veil"]{--bg:#05070A;--ink:#080A0F;--panel:#10131B;--panel2:#0A0D13;--wood:#151925;--wood2:#202637;--edge:#232A3A;--frame:#2E3648;--frame2:#46506A;--gold:#E8B04B;--gold1:#FFE2A0;--gold2:#D99A2B;--gold3:#8A5E14;--gold-txt:#F4CC7A;--yel:#F4CC7A;--frost:#4FE0D0;--cyan:#4FE0D0;--aurora:#4FE0D0;--violet:#8B6CF6;--violet2:#5B3FD0;--bone:#E9E4D8;--ember:#FF7A45;--grn:#3EE6A5;--red:#FF5C6C;--txt:#E9E4D8;--dim:#9AA2B4;--mute:#5E6678;--line:rgba(233,228,216,.07);--hover:rgba(79,224,208,.07);--glass:rgba(8,10,15,.74);--ring:rgba(79,224,208,.38);--hi:rgba(200,215,235,.10);--ring-out:#03040A;--row-top:linear-gradient(90deg,rgba(79,224,208,.14),transparent 55%);--bifrost:linear-gradient(90deg,var(--violet),var(--frost) 55%,var(--gold));--ease:cubic-bezier(.2,.7,.2,1);--sans:'Inter',-apple-system,'Segoe UI',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,Menlo,monospace;--disp:'Cinzel',Georgia,serif;--insc:'Cinzel',serif;
  --font-ui:var(--sans);--font-display:var(--disp);--font-mono:var(--mono);--num:#fff;--border:var(--frame);--border-strong:var(--frame2);--fill:rgba(255,255,255,.03);--fill-2:rgba(255,255,255,.06);--panel-bg:linear-gradient(180deg,var(--panel),var(--panel2));--accent:var(--gold);--accent-grad:linear-gradient(180deg,var(--gold1),var(--gold2) 55%,#B97A18);--on-accent:#140D02;--accent-soft:rgba(232,176,75,.12);--focus:var(--frost);--shadow-pop:0 18px 48px rgba(0,0,0,.7); /* design tokens */
  --grain:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .62 0 0 0 0 .68 0 0 0 0 .78 .08 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")} /* 4% hammered-iron grain, no asset */
html[data-brand="veil"]{scrollbar-color:var(--wood2) var(--bg)}
html[data-brand="veil"]::-webkit-scrollbar,html[data-brand="veil"] ::-webkit-scrollbar{width:10px;height:10px}html[data-brand="veil"]::-webkit-scrollbar-track,html[data-brand="veil"] ::-webkit-scrollbar-track{background:var(--bg)}html[data-brand="veil"]::-webkit-scrollbar-thumb,html[data-brand="veil"] ::-webkit-scrollbar-thumb{background:var(--wood2);border:2px solid var(--bg);border-radius:6px}html[data-brand="veil"] ::-webkit-scrollbar-thumb:hover{background:var(--frame2)}
html[data-brand="veil"] ::selection{background:rgba(79,224,208,.35);color:#fff}

/* ---- ground: the longhall at night behind everything; the snow is gone and one warm glow sits at the top, like the fire behind the header */
html[data-brand="veil"]{background:var(--bg)}html[data-brand="veil"]::before{content:'';position:fixed;inset:0;z-index:-1;background:var(--bg) url('assets/veil/bg.webp') center top/cover no-repeat;transform:translateZ(0);will-change:transform;pointer-events:none} /* the hall sits on its own GPU layer: background-attachment:fixed repainted the whole page on every scroll frame */
html[data-brand="veil"] body{background:transparent;color:var(--txt);font:400 16px/1.45 var(--sans)}
html[data-brand="veil"] body::before{background:radial-gradient(ellipse at 50% 0%,rgba(79,224,208,.06),transparent 45%),radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%)}
html[data-brand="veil"] body::after{animation:none;inset:0;opacity:1;background:radial-gradient(60% 40% at 50% 0%,rgba(79,224,208,.10),transparent 70%)}
html[data-brand="veil"] a{color:var(--gold-txt)}
html[data-brand="veil"] button,html[data-brand="veil"] input,html[data-brand="veil"] select,html[data-brand="veil"] textarea{font-family:var(--sans);font-size:15px}
html[data-brand="veil"] input,html[data-brand="veil"] select,html[data-brand="veil"] textarea{font-size:16px} /* iOS zooms any input under 16px */
html[data-brand="veil"] .note{color:var(--dim);font-size:15px}
html[data-brand="veil"] footer{font-size:13px;color:var(--mute);opacity:1}
html[data-brand="veil"] section.on{animation:vhIn .16s var(--ease) backwards} /* backwards, not both: a transform left on the section made it the box for position:fixed, and the phone Launch button stopped floating */
@keyframes vhIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
html[data-brand="veil"] header img,html[data-brand="veil"] .ge-title img,html[data-brand="veil"] .ca-head img,html[data-brand="veil"] .card img,html[data-brand="veil"] .ic{image-rendering:auto}

/* ---- hidden on this host (the markup stays in the DOM so app.js's top-level lookups never throw) */
html[data-brand="veil"] #s-plaza,html[data-brand="veil"] #s-todt,html[data-brand="veil"] #s-advent,html[data-brand="veil"] #s-index,html[data-brand="veil"] #s-quests,html[data-brand="veil"] #s-pfp,html[data-brand="veil"] #s-lore,html[data-brand="veil"] #s-art{display:none!important}
html[data-brand="veil"] nav a[data-s=plaza],html[data-brand="veil"] nav a[data-s=advent],html[data-brand="veil"] nav a[data-s=todt],html[data-brand="veil"] nav a[data-s=index],html[data-brand="veil"] nav a[data-s=quests],html[data-brand="veil"] nav a[data-s=art],html[data-brand="veil"] nav a[data-s=lore]{display:none}
html[data-brand="veil"] #lq-yield,html[data-brand="veil"] .lp2-create,html[data-brand="veil"] [data-fw=todt],html[data-brand="veil"] .hero{display:none} /* "Any wallet's yield" is $SANTA holder lore (hats, Nice/Naughty); the plaza hero is the Santa vault */

/* ---- type: every Press Start 2P and VT323 selector in style.css re-declared (Cinzel caps at the metric-matched size, Inter, or mono); display in Cinzel expanded; numbers in JetBrains Mono */
html[data-brand="veil"] .pix,html[data-brand="veil"] .ge-row .it b,html[data-brand="veil"] .cup-row b,html[data-brand="veil"] .pod-sym,html[data-brand="veil"] .claim .t,html[data-brand="veil"] .sw-tok b,html[data-brand="veil"] .ge-ic{font-family:var(--insc);font-weight:700;font-size:13px;letter-spacing:1.2px;text-transform:uppercase}
html[data-brand="veil"] .ge-row .rk{font:700 12px var(--insc);letter-spacing:1px;color:var(--mute)}html[data-brand="veil"] .ge-row.base .rk{font-size:11px;color:var(--gold-txt)}html[data-brand="veil"] .ge-row.gp .rk{font-size:11px;color:var(--gold2)}
html[data-brand="veil"] .tr-chip{font:700 11px/1 var(--insc);letter-spacing:1px}
html[data-brand="veil"] .cup-clock b{font:700 15px var(--insc);letter-spacing:1.2px;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 12px rgba(79,224,208,.5),0 1px 0 #000}
html[data-brand="veil"] .lp-risk-h{font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
html[data-brand="veil"] .hero h1,html[data-brand="veil"] .card .name,html[data-brand="veil"] .count,html[data-brand="veil"] .row .rk,html[data-brand="veil"] .todt-bar .hint .big,html[data-brand="veil"] .home-h{font-family:var(--disp)} /* Santa-only pages, hidden above; re-declared anyway so no pixel face can surface */
html[data-brand="veil"] .po-timer,html[data-brand="veil"] .ca-addr,html[data-brand="veil"] .pod-medal,html[data-brand="veil"] .medal{font-family:var(--mono);font-variant-numeric:tabular-nums}
html[data-brand="veil"] .cd-chart .lbl,html[data-brand="veil"] .sn b u,html[data-brand="veil"] .tr-snipe .th b em,html[data-brand="veil"] .gp-m b em{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-txt)}
html[data-brand="veil"] .dd-list,html[data-brand="veil"] .ge-mode,html[data-brand="veil"] .ge-soon,html[data-brand="veil"] .ge-warn,html[data-brand="veil"] .ge-island,html[data-brand="veil"] .ge-isle,html[data-brand="veil"] .king-id b em,html[data-brand="veil"] .sm-crest{font-family:var(--sans)}
html[data-brand="veil"] header .brand{font:900 20px/1 var(--disp);font-stretch:125%;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-txt);text-shadow:0 1px 0 #000,0 2px 8px rgba(0,0,0,.6)}
html[data-brand="veil"] .ge-title b{display:block;font:900 26px/1.1 var(--disp);font-stretch:125%;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(180deg,var(--gold1) 0%,#ffd06a 40%,var(--gold2) 65%,var(--gold3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 2px 0 #000)}
html[data-brand="veil"] .ge-title i{font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);vertical-align:middle}html[data-brand="veil"] .ge-title span{font:400 13px var(--sans);color:var(--dim)}
html[data-brand="veil"] .ge-title img{width:32px;height:32px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
html[data-brand="veil"] .lq-title{font:900 clamp(28px,4vw,40px)/1 var(--disp);font-stretch:125%;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-txt);text-shadow:0 2px 0 #000,0 0 24px rgba(79,224,208,.2);margin:0 0 8px}
html[data-brand="veil"] .lq-title[data-eyebrow]::before{content:attr(data-eyebrow);display:block;font:900 12px/1 var(--insc);letter-spacing:.22em;color:var(--dim);margin-bottom:10px;text-shadow:none} /* the Cinzel eyebrow ("THE WELLS") comes from the brand dictionary via data-eyebrow */
html[data-brand="veil"] .panel h2,html[data-brand="veil"] .vb-modal h3{font:800 15px/1.2 var(--disp);font-stretch:125%;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 0 #000}html[data-brand="veil"] .vb-modal h3{font-size:18px}
html[data-brand="veil"] .cup-title b,html[data-brand="veil"] .cup-name b,html[data-brand="veil"] .king-strip .king-id b,html[data-brand="veil"] .ld-card .ld-name,html[data-brand="veil"] .ld-addh,html[data-brand="veil"] .tr-head b,html[data-brand="veil"] .lq-card h3,html[data-brand="veil"] .ge-sec b,html[data-brand="veil"] .lf-card-sym,html[data-brand="veil"] .ldsum-hero span,html[data-brand="veil"] .cd-card h4{font-family:var(--disp);font-stretch:125%;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-txt);text-shadow:0 2px 0 #000}
html[data-brand="veil"] .cup-title b,html[data-brand="veil"] .cup-name b{font-size:20px}html[data-brand="veil"] .king-strip .king-id b{font-size:18px}html[data-brand="veil"] .ld-card .ld-name{font-size:15px}html[data-brand="veil"] .tr-head b{font-size:13px;letter-spacing:.08em}html[data-brand="veil"] .ge-sec b{font-size:12px;letter-spacing:.12em;text-shadow:none}html[data-brand="veil"] .lf-card-sym{font-size:22px}
html[data-brand="veil"] .lq-card h3,html[data-brand="veil"] .cd-card h4,html[data-brand="veil"] .ldsum-hero span{font-size:11px;letter-spacing:.14em;color:var(--dim);text-shadow:none}html[data-brand="veil"] .cd-card h4 small{font:400 13px var(--sans);letter-spacing:0;text-transform:none}
html[data-brand="veil"] .ge-tok-id>b{font:900 26px/1.1 var(--disp);font-stretch:125%;letter-spacing:.02em;color:var(--txt);text-shadow:none}html[data-brand="veil"] .ge-tok-id span{font:400 14px var(--sans);color:var(--dim)}
html[data-brand="veil"] .stat b,html[data-brand="veil"] .po-big,html[data-brand="veil"] .po-mid,html[data-brand="veil"] .sw-amt,html[data-brand="veil"] .ldsum-hero b,html[data-brand="veil"] .lq-tile b,html[data-brand="veil"] .vb-rows b,html[data-brand="veil"] .tt-rk,html[data-brand="veil"] .ge-tok-px>b,html[data-brand="veil"] .ge-tok-px span,html[data-brand="veil"] .ge-stats b,html[data-brand="veil"] .ycell b,html[data-brand="veil"] .pb-top b,html[data-brand="veil"] .lp-risk-g b,html[data-brand="veil"] .poolbox b,html[data-brand="veil"] .earn b,html[data-brand="veil"] .cup-prize b,html[data-brand="veil"] .pod-perf,html[data-brand="veil"] .pod-prize,html[data-brand="veil"] .ldsum-tiles b,html[data-brand="veil"] .ld-metrics b,html[data-brand="veil"] .king-mini b,html[data-brand="veil"] .king-bar span,html[data-brand="veil"] .king-bar em,html[data-brand="veil"] .cd-id b,html[data-brand="veil"] .cd-px b,html[data-brand="veil"] .cd-claim b,html[data-brand="veil"] .cd-kv dd,html[data-brand="veil"] .cd-snipebig em,html[data-brand="veil"] .ref-stats b,html[data-brand="veil"] .tt-usd,html[data-brand="veil"] .rb em,html[data-brand="veil"] .ge-tape .tp,html[data-brand="veil"] .ge-ca code,html[data-brand="veil"] .ref-link code,html[data-brand="veil"] .walletline code,html[data-brand="veil"] .ge-tok-id code,html[data-brand="veil"] .cup-row .cp,html[data-brand="veil"] .cup-row .cm,html[data-brand="veil"] .cup-row .cz,html[data-brand="veil"] .gs-pos-big,html[data-brand="veil"] .th em,html[data-brand="veil"] .sn em,html[data-brand="veil"] .ge-grad span,html[data-brand="veil"] .vh-stat b,html[data-brand="veil"] .ge-sched b,html[data-brand="veil"] .ge-row .r,html[data-brand="veil"] .sw-lines b,html[data-brand="veil"] .ge-dev b,html[data-brand="veil"] .ldsum-row em,html[data-brand="veil"] .lsum b,html[data-brand="veil"] .mono{font-family:var(--mono);font-variant-numeric:tabular-nums;text-shadow:none}
html[data-brand="veil"] .stat b{font-weight:700;font-size:24px;color:var(--gold-txt)}html[data-brand="veil"] .stat span{font-size:13px;color:var(--dim)}html[data-brand="veil"] .stat span:first-child{font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
html[data-brand="veil"] .ge-tok-px>b{font-weight:700;font-size:28px;color:var(--gold-txt)}html[data-brand="veil"] .ge-tok-px span{font-size:13px;font-weight:500;color:var(--dim)}
html[data-brand="veil"] .sw-amt{font-weight:700;font-size:28px;color:var(--txt)}html[data-brand="veil"] .sw-amt::placeholder{color:var(--mute)}
html[data-brand="veil"] .vb-rows b{font-weight:700;font-size:15px;color:var(--gold-txt)}html[data-brand="veil"] .vb-rows span{font:600 11px var(--sans);letter-spacing:.14em;color:var(--dim)}
html[data-brand="veil"] h1,html[data-brand="veil"] h2,html[data-brand="veil"] h3{text-wrap:balance}

/* ---- header: sticky blurred iron, 56px, a gold hairline; nav pills become text tabs; the wallet button is an iron pill with the avatar when signed in */
html[data-brand="veil"] header{position:sticky;top:0;z-index:20;min-height:56px;padding:0 18px;gap:12px;background:var(--grain),linear-gradient(180deg,rgba(14,16,22,.92),rgba(10,12,16,.88));background-blend-mode:overlay,normal;backdrop-filter:none;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(79,224,208,.28);box-shadow:0 8px 24px rgba(0,0,0,.45)}
html[data-brand="veil"] header img{width:28px;height:28px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
html[data-brand="veil"] header a.home:hover .brand{filter:brightness(1.1)}
html[data-brand="veil"] nav{gap:2px}html[data-brand="veil"] nav a{background:none;border:0;border-radius:6px;padding:8px 12px;color:var(--dim);font:600 14px/1.25 var(--sans);box-shadow:none;transition:color .12s var(--ease),background .12s var(--ease)}
html[data-brand="veil"] nav a:hover{transform:none;color:var(--txt);background:rgba(255,255,255,.04);box-shadow:none}
html[data-brand="veil"] nav a.on{color:var(--gold-txt);background:rgba(79,224,208,.08);box-shadow:inset 0 -2px 0 var(--gold);border-color:transparent;font-weight:600;text-shadow:none}
html[data-brand="veil"] #connectBtn{background:linear-gradient(180deg,var(--wood2),var(--wood));color:var(--txt);border:1px solid var(--frame);font:600 14px/1 var(--sans);box-shadow:inset 0 1px 0 var(--hi),0 1px 0 #000;text-shadow:none;font-variant-numeric:tabular-nums}
html[data-brand="veil"] #connectBtn:hover{border-color:var(--frame2);filter:none}
html[data-brand="veil"] .btn.me-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px 0 6px;border-radius:999px}html[data-brand="veil"] .me-btn .av{width:24px;height:24px;font-size:12px;border-color:var(--gold3)}html[data-brand="veil"] .me-btn span{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- strips: the High Seat (#kingBar) and the airdrop bar */
html[data-brand="veil"] .king-bar{padding:8px 18px;background:linear-gradient(90deg,rgba(79,224,208,.14),rgba(79,224,208,.04) 60%,transparent),var(--ink);border-bottom:1px solid rgba(79,224,208,.25);font:500 14px var(--sans)}
html[data-brand="veil"] .king-bar b{font:800 14px var(--disp);font-stretch:125%;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-txt);transition:opacity .3s}html[data-brand="veil"] .king-bar span,html[data-brand="veil"] .king-bar em{font-size:13px;color:var(--dim);transition:opacity .3s}html[data-brand="veil"] .king-bar em{color:var(--txt)}
html[data-brand="veil"] .king-bar .kb-go{color:var(--gold-txt);border:1px solid var(--gold3);border-radius:999px;padding:2px 10px;font:600 12px var(--sans)}html[data-brand="veil"] .king-bar img{border-radius:50%;box-shadow:0 0 0 1px var(--gold3)}
html[data-brand="veil"] .kb-crown .ic{width:18px;height:18px;vertical-align:-3px}html[data-brand="veil"] .king-bar.vh-new .kb-crown .ic{animation:vhCrown .4s var(--ease) 1} /* a new High Seat: the circlet beats once */
@keyframes vhCrown{50%{transform:scale(1.15)}}
html[data-brand="veil"] .air-bar{padding:8px 18px;background:linear-gradient(90deg,rgba(61,240,106,.14),rgba(61,240,106,.03) 60%,transparent),var(--ink);border-bottom:1px solid rgba(61,240,106,.3);font:500 14px var(--sans)}html[data-brand="veil"] .air-bar .ab-tag{background:var(--grn);color:#04210A;border-radius:4px;font:700 11px/1.6 var(--sans);letter-spacing:.12em}html[data-brand="veil"] .air-bar b,html[data-brand="veil"] .air-bar i{color:#B9FFC6}

/* ---- buttons: gold leaf primary, iron secondary, ghost, danger */
html[data-brand="veil"] .btn{background:linear-gradient(180deg,var(--gold1),var(--gold2) 55%,#C98A1E);color:#1A1204;border:1px solid #7A5612;border-radius:8px;padding:7px 14px;font:600 15px/1.2 var(--sans);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 1px 0 #5C3F0C,0 6px 16px rgba(79,224,208,.18);text-shadow:none;cursor:pointer;transition:filter .15s var(--ease),transform .08s,box-shadow .15s var(--ease)}
html[data-brand="veil"] .btn:hover{transform:none;filter:brightness(1.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 1px 0 #5C3F0C,0 8px 20px rgba(79,224,208,.26)}
html[data-brand="veil"] .btn:active{transform:translateY(1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 0 #5C3F0C}
html[data-brand="veil"] .btn:disabled{opacity:.4;box-shadow:none;filter:none;transform:none}
html[data-brand="veil"] .btn.sec{background:linear-gradient(180deg,var(--wood2),var(--wood));color:var(--txt);border-color:var(--frame);box-shadow:inset 0 1px 0 var(--hi),0 1px 0 #000;text-shadow:none}html[data-brand="veil"] .btn.sec:hover{border-color:var(--frame2);filter:none;box-shadow:inset 0 1px 0 var(--hi),0 1px 0 #000}
html[data-brand="veil"] .btn[data-ld=stop],html[data-brand="veil"] .btn[data-ld=hide],html[data-brand="veil"] .btn[data-lp2remove],html[data-brand="veil"] .btn.danger{background:transparent;border-color:rgba(255,92,92,.5);color:var(--red);box-shadow:none}html[data-brand="veil"] .btn[data-ld=stop]:hover,html[data-brand="veil"] .btn[data-ld=hide]:hover,html[data-brand="veil"] .btn[data-lp2remove]:hover{background:rgba(255,92,92,.08);border-color:var(--red)}
html[data-brand="veil"] .btn.ghost,html[data-brand="veil"] .linkbtn{background:none;border-color:transparent;color:var(--dim);box-shadow:none}html[data-brand="veil"] .linkbtn{color:var(--gold-txt)}
html[data-brand="veil"] .ge-acts .btn{font-size:15px}
html[data-brand="veil"] .cg-big{animation:vhRing .7s ease-out 1} /* "Claim the spoils" lands with one gold ring pulse */
@keyframes vhRing{0%{box-shadow:0 0 0 0 rgba(79,224,208,.55)}100%{box-shadow:0 0 0 8px rgba(79,224,208,0)}}

/* ---- the panel: gold hairline along the top of black iron, 4% grain, drop shadow (one construction, repeated); the Hall Shield before every heading, the gold inlay rule after it */
html[data-brand="veil"] .panel,html[data-brand="veil"] .stat,html[data-brand="veil"] .vb-modal,html[data-brand="veil"] .lq-tile,html[data-brand="veil"] .ldsum,html[data-brand="veil"] .lc-box,html[data-brand="veil"] .sc-box,html[data-brand="veil"] .ge-cup,html[data-brand="veil"] .earn,html[data-brand="veil"] .payout,html[data-brand="veil"] .ca,html[data-brand="veil"] .cd-coin,html[data-brand="veil"] .lf-card,html[data-brand="veil"] .pod,html[data-brand="veil"] .ld-card{background:var(--grain),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal;border:1px solid var(--frame);border-radius:10px;box-shadow:inset 0 1px 0 rgba(79,224,208,.22),inset 0 0 0 1px rgba(255,255,255,.02),0 12px 32px rgba(0,0,0,.55)}
html[data-brand="veil"] .panel h2::before{width:16px;height:16px;background-image:url('assets/veil/emblem-256.png')}html[data-brand="veil"] .vb-modal h3::before{width:18px;height:18px;background-image:url('assets/veil/emblem-256.png')}
html[data-brand="veil"] .panel h2::after{height:1px;margin-left:8px;background:linear-gradient(90deg,transparent 40%,rgba(255,233,168,.6) 50%,transparent 60%) no-repeat,linear-gradient(90deg,rgba(79,224,208,.5),transparent);background-size:50% 100%,100% 100%;background-position:-100% 0,0 0;animation:vhGlint 12s linear infinite} /* the inlay glints once per 12 s: one pass, opacity and position only */
@keyframes vhGlint{0%,80%{background-position:-100% 0,0 0}100%{background-position:200% 0,0 0}}
html[data-brand="veil"] .gallery .panel:hover{transform:none;box-shadow:inset 0 1px 0 rgba(79,224,208,.22),0 16px 36px rgba(0,0,0,.6)}
html[data-brand="veil"] .stat::after{background:radial-gradient(circle,rgba(79,224,208,.14),transparent 65%)}
html[data-brand="veil"] .badge{background:var(--wood);border:1px solid var(--edge);border-radius:4px;color:var(--gold-txt);font:600 11px/1.6 var(--sans);letter-spacing:.06em;box-shadow:none}

/* ---- ink wells: the inner surfaces, a frost ring when something inside has focus */
html[data-brand="veil"] .ge-table,html[data-brand="veil"] .sw-box,html[data-brand="veil"] .claim,html[data-brand="veil"] .ge-stats div,html[data-brand="veil"] .ge-trust,html[data-brand="veil"] .ge-ref,html[data-brand="veil"] .ge-posts,html[data-brand="veil"] .ge-dev,html[data-brand="veil"] .payback,html[data-brand="veil"] .ycell,html[data-brand="veil"] .ylist,html[data-brand="veil"] .vb-rows,html[data-brand="veil"] .vb-steps,html[data-brand="veil"] .gs-box,html[data-brand="veil"] .ld-metrics div,html[data-brand="veil"] .ldsum-tiles>div,html[data-brand="veil"] .king-mini div,html[data-brand="veil"] .cup-rows,html[data-brand="veil"] .me-id,html[data-brand="veil"] .al-h,html[data-brand="veil"] .vh,html[data-brand="veil"] .ld-addrow,html[data-brand="veil"] .lf-short,html[data-brand="veil"] .walletline code{background:var(--ink);border:1px solid var(--edge);border-radius:8px;box-shadow:inset 0 1px 0 rgba(0,0,0,.6)}
html[data-brand="veil"] .ge-table{border-radius:10px}
html[data-brand="veil"] .sw-box:focus-within,html[data-brand="veil"] .ge-check:focus-within input,html[data-brand="veil"] .gp-form:focus-within input{border-color:var(--frost);box-shadow:0 0 0 2px var(--ring)}
html[data-brand="veil"] .lp-risk{border-left:2px solid var(--ember)}html[data-brand="veil"] .lp-risk-g b{font-weight:700;font-size:18px;color:var(--gold-txt)}html[data-brand="veil"] .lp-risk-g span,html[data-brand="veil"] .poolbox span,html[data-brand="veil"] .ycell span,html[data-brand="veil"] .ge-stats span,html[data-brand="veil"] .ldsum-tiles span,html[data-brand="veil"] .ld-metrics span,html[data-brand="veil"] .king-mini span,html[data-brand="veil"] .lq-tile span,html[data-brand="veil"] .pb-top span,html[data-brand="veil"] .cd-claim span,html[data-brand="veil"] .gs-h,html[data-brand="veil"] .lc-next span,html[data-brand="veil"] .ge-tape-h,html[data-brand="veil"] .cup-bar .cup-clock,html[data-brand="veil"] .po-label,html[data-brand="veil"] .ge-tools label{font:600 11px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
html[data-brand="veil"] .poolbox b,html[data-brand="veil"] .ycell b,html[data-brand="veil"] .pb-top b,html[data-brand="veil"] .ge-stats b{font-weight:700;font-size:18px;color:var(--gold-txt)}html[data-brand="veil"] .ge-stats div[title*="burn"] b{color:var(--ember)}
html[data-brand="veil"] .lf-short{border-color:var(--gold3);background:rgba(79,224,208,.06)}html[data-brand="veil"] .lf-short b{color:var(--gold-txt)}

/* ---- inputs, selects, the custom dropdowns (glass) and segmented controls */
html[data-brand="veil"] .lf-fields input,html[data-brand="veil"] .lf-fields textarea,html[data-brand="veil"] .lf-seed input,html[data-brand="veil"] .ge-tools select,html[data-brand="veil"] .ge-tools input,html[data-brand="veil"] .ge-check input,html[data-brand="veil"] .form input,html[data-brand="veil"] .form textarea,html[data-brand="veil"] .lf-tax input,html[data-brand="veil"] .ge-dev input,html[data-brand="veil"] .ge-devlinks input,html[data-brand="veil"] .ge-devlinks textarea,html[data-brand="veil"] .cd-manage input,html[data-brand="veil"] .cd-manage select,html[data-brand="veil"] .cd-manage textarea,html[data-brand="veil"] .ld-new select,html[data-brand="veil"] .ld-new input,html[data-brand="veil"] .ld-addrow input,html[data-brand="veil"] .gp-form input,html[data-brand="veil"] .id-row input,html[data-brand="veil"] .lp-amt-row input,html[data-brand="veil"] select,html[data-brand="veil"] .sw-tok select,html[data-brand="veil"] .lf-pair select{background:var(--ink);color:var(--txt);border:1px solid var(--edge);border-radius:8px;padding:9px 12px;font:500 16px/1.3 var(--sans);box-shadow:inset 0 1px 0 rgba(0,0,0,.6)}
html[data-brand="veil"] .lf-fields input,html[data-brand="veil"] .lf-fields textarea,html[data-brand="veil"] .lf-seed input{min-height:44px}
html[data-brand="veil"] input[type=number],html[data-brand="veil"] .ge-ca code,html[data-brand="veil"] .walletline code{font-family:var(--mono);font-variant-numeric:tabular-nums}
html[data-brand="veil"] input::placeholder,html[data-brand="veil"] textarea::placeholder{color:var(--mute)}
html[data-brand="veil"] input:focus,html[data-brand="veil"] textarea:focus,html[data-brand="veil"] select:focus{outline:none;border-color:var(--frost)!important;box-shadow:0 0 0 2px var(--ring)} /* style.css L109 sets the warm ring with !important; the frost ring has to out-rank it */
html[data-brand="veil"] .lf-fields input.missing,html[data-brand="veil"] .lf-img.missing{border-color:var(--red);box-shadow:0 0 0 2px rgba(255,92,92,.25)}
html[data-brand="veil"] .lf-check input{accent-color:var(--gold)}
html[data-brand="veil"] .dd-btn{background:var(--ink);color:var(--txt);border:1px solid var(--edge);border-radius:8px;padding:9px 12px;font:500 15px/1.3 var(--sans);box-shadow:inset 0 1px 0 rgba(0,0,0,.6)}html[data-brand="veil"] .dd-btn:hover{border-color:var(--frame2);color:var(--txt)}
html[data-brand="veil"] .dd.open .dd-btn{border-color:var(--frost);color:var(--txt);box-shadow:0 0 0 2px var(--ring)}html[data-brand="veil"] .dd-btn:focus-visible{outline:2px solid var(--frost);outline-offset:1px}html[data-brand="veil"] .dd-caret{border-top-color:var(--gold)}
html[data-brand="veil"] .dd-list{background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--frame);border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.6),inset 0 1px 0 rgba(79,224,208,.18);padding:4px;font:500 15px/1.3 var(--sans);color:var(--txt);scrollbar-color:var(--wood2) transparent}
html[data-brand="veil"] .dd-opt{min-height:40px;display:flex;align-items:center;padding:0 12px 0 28px;border-radius:6px}html[data-brand="veil"] .dd-opt.kb{background:var(--hover);color:var(--txt)}html[data-brand="veil"] .dd-opt.on{color:var(--gold-txt)}
html[data-brand="veil"] .dd-opt.on::before{width:6px;height:6px;margin-top:-3px;background:var(--gold);transform:none;border-radius:1px;box-shadow:0 0 6px rgba(79,224,208,.6)} /* a gold square, not the diamond */
html[data-brand="veil"] .dd-list::-webkit-scrollbar-thumb{background:var(--wood2);border-color:transparent}html[data-brand="veil"] .dd-list::-webkit-scrollbar-track{background:transparent}
html[data-brand="veil"] .sw-tok .dd-btn,html[data-brand="veil"] .cd-manage .dd-btn,html[data-brand="veil"] .lf-pair .dd-btn,html[data-brand="veil"] .sw-tok select,html[data-brand="veil"] .lf-pair select{background:var(--wood);padding:5px 10px;font-size:14px}html[data-brand="veil"] .lf-pair .dd:has(select.on) .dd-btn,html[data-brand="veil"] .lf-pair select.on{border-color:var(--gold3);color:var(--gold-txt)}
html[data-brand="veil"] .ge-tabs{background:var(--ink);border:1px solid var(--edge);border-radius:8px;padding:3px;gap:2px}html[data-brand="veil"] .ge-tabs button{color:var(--dim);font:600 14px/1.3 var(--sans);padding:6px 12px;border-radius:6px;transition:color .12s var(--ease),background .12s var(--ease)}html[data-brand="veil"] .ge-tabs button:hover{color:var(--txt)}
html[data-brand="veil"] .ge-tabs button.on{background:rgba(79,224,208,.08);color:var(--gold-txt);box-shadow:inset 0 -2px 0 var(--gold)}html[data-brand="veil"] .ge-tabs i{font-size:12px;color:var(--mute)}html[data-brand="veil"] .ge-tabs button.dead{color:var(--mute)}
html[data-brand="veil"] .sw-slip button,html[data-brand="veil"] .tt-tabs button,html[data-brand="veil"] .sw-max button{background:var(--ink);border:1px solid var(--edge);border-radius:999px;color:var(--dim);font:600 12px/1.4 var(--sans);padding:3px 10px}
html[data-brand="veil"] .sw-slip button.on,html[data-brand="veil"] .tt-tabs button.on,html[data-brand="veil"] .sw-max button:hover{background:rgba(79,224,208,.1);color:var(--gold-txt);border-color:var(--gold3)}html[data-brand="veil"] .sw-slip span{font-size:13px}
html[data-brand="veil"] .ge-chart-src button.on{color:#1A1204}

/* ---- board: ink table, hairline dividers, no stripes, a left rail per tier, the Bifröst bar under every Trenches name */
html[data-brand="veil"] .ge-th{background:#0E1117;color:var(--dim);font:600 11px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--edge);padding:9px 10px}
html[data-brand="veil"] .ge-row{min-height:52px;border-bottom:1px solid var(--line);transition:background .12s var(--ease)}html[data-brand="veil"] .ge-row:nth-child(even){background:transparent}html[data-brand="veil"] .ge-row:hover{background:var(--hover)}
html[data-brand="veil"] .ge-row.base,html[data-brand="veil"] .ge-row.gp{background:rgba(79,224,208,.03);border-left:2px solid var(--gold3);padding-left:8px}
html[data-brand="veil"] .ge-row.isle{border-left:2px solid var(--frost);padding-left:8px}html[data-brand="veil"] .ge-row.chosen{border-left:2px solid var(--gold);padding-left:8px}
html[data-brand="veil"] .ge-row.isle .it>span{flex:1 1 auto}html[data-brand="veil"] .ge-row.isle .it>span::after{content:'';display:block;height:3px;margin-top:4px;border-radius:2px;background:var(--bifrost) 0 0/var(--grad,0%) 100% no-repeat,rgba(79,224,208,.15);transition:background-size .7s var(--ease)} /* renderBoard sets style="--grad:NN%" on Trenches rows */
html[data-brand="veil"] .ge-row .it small{font:400 12px var(--sans);color:var(--dim)}html[data-brand="veil"] .ge-row .it b{color:var(--yel);line-height:1.25}html[data-brand="veil"] .lp-inline{color:var(--dim)}
html[data-brand="veil"] .ge-row .r{font-size:13px;font-weight:500}html[data-brand="veil"] .ge-row .r b{font-weight:700;font-size:13px}html[data-brand="veil"] .ge-row .r small{font-size:11px;color:var(--dim)}html[data-brand="veil"] .ge-row .r .na{color:var(--mute)}
html[data-brand="veil"] .ge-row .go{color:var(--gold3);font-size:22px}html[data-brand="veil"] .ge-row:hover .go{color:var(--gold)}
html[data-brand="veil"] .ge-ic{border:1px solid var(--edge);background:var(--panel2);color:var(--yel)}html[data-brand="veil"] .ge-ic.sm{font-size:10px}html[data-brand="veil"] .ge-ic.big{border-color:var(--frame2)}
html[data-brand="veil"] .ge-sec{border-top-color:var(--line)}html[data-brand="veil"] .ge-sec span{font-size:12px}html[data-brand="veil"] .ge-sec a{color:var(--gold-txt)}
html[data-brand="veil"] #ecoHead [data-sort]:hover{color:var(--txt)}html[data-brand="veil"] #ecoHead [data-sort].on{color:var(--gold-txt)}html[data-brand="veil"] #ecoHead [data-sort].on::after{border-top-color:var(--gold);transition:transform .15s var(--ease)}html[data-brand="veil"] #ecoHead [data-sort].on.asc::after{border-top:6px solid var(--gold);border-bottom:0;transform:rotate(180deg)}
html[data-brand="veil"] .ge-row.sm-top,html[data-brand="veil"] .ge-row.sm-top:nth-child(even){background:var(--row-top),transparent;border-top:1px solid rgba(79,224,208,.35);border-bottom:1px solid rgba(79,224,208,.2);box-shadow:inset 2px 0 0 var(--gold),inset 0 0 28px rgba(79,224,208,.06)} /* a coin forged here that sits in the Hall top 10: gold sweep, no red */
html[data-brand="veil"] .ge-row.sm-top:hover{background:linear-gradient(90deg,rgba(79,224,208,.22),transparent 55%),var(--hover)}
html[data-brand="veil"] .ge-row.sm-top::after{background:linear-gradient(105deg,transparent 43%,rgba(255,233,168,.22) 50%,transparent 57%);background-size:260% 100%;background-repeat:no-repeat;animation:smSheen 6s linear infinite} /* smSheen stays on, brighter than Santa's .14 */
html[data-brand="veil"] .ge-row.sm-top .rk{color:var(--gold-txt);text-shadow:0 0 9px rgba(79,224,208,.6)}html[data-brand="veil"] .ge-row.sm-top .ge-ic{box-shadow:0 0 0 2px var(--gold),0 0 16px rgba(79,224,208,.5)}html[data-brand="veil"] .ge-row.sm-top .mc b{color:var(--gold1)}
html[data-brand="veil"] .sm-crest{font:700 10px/1 var(--insc);letter-spacing:.08em;text-transform:uppercase;color:#1A1204;background:linear-gradient(180deg,#ffe9a6,#e0a534);border:1px solid #fff3c4;border-radius:999px;padding:3px 8px 3px 5px;box-shadow:0 1px 0 rgba(0,0,0,.55),0 0 12px rgba(79,224,208,.3)}
html[data-brand="veil"] .sm-crest.plain{background:none;color:var(--gold-txt);border-color:var(--gold3);box-shadow:none}html[data-brand="veil"] .sm-note{color:var(--gold-txt)}
/* the board grid: Valhalla uses style.css's tracks and breakpoints (design v2, 10-24) — its own copies dropped columns at other widths than the cells, so rows and the header fell out of line */
@container (max-width:520px){html[data-brand="veil"] .ge-wide .ge-th,html[data-brand="veil"] .ge-wide .ge-row{grid-template-columns:28px minmax(0,1fr) 86px 60px 16px;gap:6px;padding:6px 6px}html[data-brand="veil"] .ge-wide .ge-row.base,html[data-brand="veil"] .ge-wide .ge-row.gp,html[data-brand="veil"] .ge-wide .ge-row.isle,html[data-brand="veil"] .ge-wide .ge-row.chosen{padding-left:4px}html[data-brand="veil"] .ge-wide .ge-row .it b{font-size:11px;letter-spacing:.5px}html[data-brand="veil"] .ge-wide .ge-row .it small{font-size:11px}html[data-brand="veil"] .ge-wide .ge-row .it b .ge-mode{display:block;width:max-content;max-width:100%;margin-top:3px}} /* the name column is ~50px after the icon here: Cinzel caps at 11px fit what the 10px pixel face fitted, the tax pill takes its own line */

/* ---- pills and tags: iron capsules, Inter 600 11px caps; the Trenches tag is frost, tax modes ember / green / frost, warnings red */
html[data-brand="veil"] .lq-tag,html[data-brand="veil"] .king-id b em,html[data-brand="veil"] .king-strip .king-id em,html[data-brand="veil"] .ge-mode,html[data-brand="veil"] .ge-soon,html[data-brand="veil"] .ge-warn,html[data-brand="veil"] .ge-island,html[data-brand="veil"] .ge-isle,html[data-brand="veil"] .lf-card-tags i,html[data-brand="veil"] .gp-dev,html[data-brand="veil"] .gp-hold,html[data-brand="veil"] .og{background:#11141B;border:1px solid var(--edge);border-radius:999px;font:600 11px/1.5 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;color:var(--dim);vertical-align:middle;text-shadow:none}
html[data-brand="veil"] .ge-mode{display:inline-block;max-width:100%;letter-spacing:.04em}html[data-brand="veil"] .ge-mode.m-burn{color:var(--ember);border-color:rgba(255,106,61,.5);background:rgba(255,106,61,.08)}html[data-brand="veil"] .ge-mode.m-rewards{color:var(--grn);border-color:rgba(61,240,106,.45);background:rgba(61,240,106,.08)}html[data-brand="veil"] .ge-mode.m-buyback{color:var(--frost);border-color:rgba(79,224,208,.45);background:rgba(79,224,208,.08)}
html[data-brand="veil"] .ge-warn{color:var(--red);border-color:rgba(255,92,92,.5);background:rgba(255,92,92,.08)}html[data-brand="veil"] .ge-soon,html[data-brand="veil"] .lq-tag,html[data-brand="veil"] .king-id b em,html[data-brand="veil"] .king-strip .king-id em{color:var(--gold-txt);border-color:var(--gold3)}
html[data-brand="veil"] .ge-island,html[data-brand="veil"] .ge-isle{color:var(--frost);border-color:rgba(79,224,208,.4);background:rgba(79,224,208,.06);border-radius:4px;padding:1px 6px}
html[data-brand="veil"] .ge-island.rep-good{color:var(--grn);border-color:rgba(61,240,106,.45)}html[data-brand="veil"] .ge-island.rep-mid{color:var(--gold-txt);border-color:var(--gold3)}html[data-brand="veil"] .ge-island.rep-bad{color:var(--red);border-color:rgba(255,92,92,.5)}
html[data-brand="veil"] .gp-dev{color:var(--frost);border-color:rgba(79,224,208,.45)}html[data-brand="veil"] .gp-hold{color:var(--grn);border-color:rgba(61,240,106,.35);background:rgba(61,240,106,.08)}html[data-brand="veil"] .gp-hold.gp-out{color:var(--dim);border-color:var(--edge);background:#11141B}
html[data-brand="veil"] .og{text-transform:none;letter-spacing:0;font-size:12px;font-weight:500;color:var(--txt);gap:5px}html[data-brand="veil"] .og b{color:var(--dim)}html[data-brand="veil"] .og-top{border-color:var(--gold3)}html[data-brand="veil"] .og-top b{color:var(--gold-txt)}
html[data-brand="veil"] .live{color:var(--grn);border-color:var(--grn);border-radius:4px;font:700 11px/1.6 var(--sans);letter-spacing:.16em;animation:vhLive 1.6s ease-in-out infinite}
@keyframes vhLive{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(61,240,106,.6)}50%{opacity:.75;box-shadow:0 0 0 6px rgba(61,240,106,0),0 0 10px rgba(61,240,106,.35)}} /* livepulse in the house green, a touch wider */
html[data-brand="veil"] .gp-burnt,html[data-brand="veil"] .cd-burned b,html[data-brand="veil"] .cd-burned em,html[data-brand="veil"] .ge-issuer,html[data-brand="veil"] #lfPairNote b{color:var(--ember)}

/* ---- token page: ghost back, Cinzel name, mono price, ink stat tiles, the Bifröst graduation bar, The Oath, the tape, the Bench */
html[data-brand="veil"] .ge-back{background:transparent;border:0;color:var(--dim);font-size:28px;border-radius:8px;transition:color .12s var(--ease),background .12s var(--ease)}html[data-brand="veil"] .ge-back:hover{color:var(--txt);background:rgba(255,255,255,.05)}
html[data-brand="veil"] .ge-banner{border:1px solid var(--frame);border-radius:10px;background:var(--ink) url('assets/veil/banner.webp') center/cover no-repeat}
html[data-brand="veil"] .ge-chart,html[data-brand="veil"] .ge-ownchart{border:1px solid var(--edge);border-radius:10px}
html[data-brand="veil"] .ge-stats div{box-shadow:inset 0 1px 0 rgba(79,224,208,.14)}
html[data-brand="veil"] .ge-grad .bar{height:8px;background:rgba(79,224,208,.12);border:1px solid var(--edge);border-radius:4px}html[data-brand="veil"] .ge-grad .bar i{position:relative;background:var(--bifrost);box-shadow:0 0 10px rgba(79,224,208,.25);transition:width .7s var(--ease)}
html[data-brand="veil"] .ge-grad .bar i::after{content:'';position:absolute;right:0;top:0;bottom:0;width:2px;background:var(--gold1);box-shadow:0 0 6px var(--gold1)} /* the gold cap at the fill edge */
html[data-brand="veil"] .ge-grad.full .bar i{background:var(--gold);box-shadow:0 0 14px rgba(79,224,208,.5)}html[data-brand="veil"] .ge-grad span{font-size:13px;font-weight:500;color:var(--dim)}
html[data-brand="veil"] .vh-sweep{position:relative;overflow:hidden}html[data-brand="veil"] .vh-sweep::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 40%,rgba(255,233,168,.35) 50%,transparent 60%) no-repeat;background-size:200% 100%;animation:vhSweep .5s ease-out 1 both} /* chosen: one gold light sweep across the row or the coin header, added by app.js */
@keyframes vhSweep{from{background-position:200% 0}to{background-position:-100% 0}}
html[data-brand="veil"] .vh-pop{animation:vhPop .2s var(--ease) 1 both}
@keyframes vhPop{from{transform:scale(.8);opacity:0}to{transform:none;opacity:1}}
html[data-brand="veil"] .ge-trust{font:400 15px/1.45 var(--sans)}html[data-brand="veil"] .tr-grid{gap:0 14px}html[data-brand="veil"] .tr-grid>div{padding:6px 0;border-bottom:1px solid var(--line)}html[data-brand="veil"] .tr-warn,html[data-brand="veil"] .tr-fee{color:var(--gold-txt)}html[data-brand="veil"] .tr-na{color:var(--mute)}
html[data-brand="veil"] .th i,html[data-brand="veil"] .sn i{background:var(--gold3);opacity:1}html[data-brand="veil"] .th.lab b{color:var(--gold-txt)}html[data-brand="veil"] .sn em.sold{color:var(--red)}html[data-brand="veil"] .tip{border-color:var(--edge);color:var(--mute)}
html[data-brand="veil"] .ge-devsold,html[data-brand="veil"] .tr-devsold{background:rgba(255,92,92,.08);border:1px solid rgba(255,92,92,.4);border-radius:8px;color:#FFB3B3}html[data-brand="veil"] .ge-devsold b{color:var(--red)}
html[data-brand="veil"] .ge-sched{background:rgba(79,224,208,.08);border:1px solid var(--gold3);border-radius:8px}html[data-brand="veil"] .ge-sched b{color:var(--gold-txt);font-size:16px}html[data-brand="veil"] .tr-curve{border-color:rgba(61,240,106,.35);color:#9FE3A8}
html[data-brand="veil"] .ge-tape .tp{background:var(--ink);border-color:var(--line);font-size:13px;font-weight:500;color:var(--txt)}html[data-brand="veil"] .ge-tape .tp:first-of-type{border-top-color:var(--line);border-radius:8px 8px 0 0}html[data-brand="veil"] .ge-tape .tp:last-child{border-radius:0 0 8px 8px}html[data-brand="veil"] .ge-tape .tp b{color:var(--gold-txt)}html[data-brand="veil"] .ge-tape .tp:hover{background:var(--hover)}html[data-brand="veil"] .ge-tape .tp i{font-size:12px}
html[data-brand="veil"] .ge-ca code{background:var(--ink);border:1px solid var(--edge);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--txt)}
html[data-brand="veil"] .ge-links a{background:var(--wood);border:1px solid var(--edge);border-radius:999px;font:500 13px/1.6 var(--sans);padding:4px 12px}html[data-brand="veil"] .ge-links a:hover{background:var(--wood2);border-color:var(--frame2)}
html[data-brand="veil"] .ge-ref{font-size:14px}html[data-brand="veil"] .ref-link code{background:var(--wood);border-color:var(--edge);border-radius:6px;font-size:12px;color:var(--gold-txt)}html[data-brand="veil"] .ref-stats div{background:var(--wood);border-color:var(--edge);border-radius:8px}html[data-brand="veil"] .ref-stats b{color:var(--gold-txt);font-weight:700}html[data-brand="veil"] .ref-stats span,html[data-brand="veil"] .ref-stats i{font-size:12px}
html[data-brand="veil"] .ge-dev{font-size:14px}html[data-brand="veil"] .ge-dev b{color:var(--gold-txt)}html[data-brand="veil"] .ge-dev input{width:72px;padding:5px 8px;font-size:14px}
html[data-brand="veil"] .ge-launcher{color:var(--gold-txt);border-bottom-color:var(--gold3)}html[data-brand="veil"] .ge-launcher i.rep-mid{color:var(--gold-txt)}html[data-brand="veil"] .ge-launcher i.rep-bad{color:var(--red)}
html[data-brand="veil"] .ge-watch.on{border-color:var(--gold3);color:var(--gold-txt)}html[data-brand="veil"] .ge-tok-px .ge-watch{font-size:13px;padding:5px 10px}
html[data-brand="veil"] .ge-taxline{font-size:14px}
html[data-brand="veil"] .gp-m{background:rgba(255,255,255,.03);border-radius:6px;font-size:15px}html[data-brand="veil"] .gp-m b{color:var(--gold-txt)}html[data-brand="veil"] .gp-m.dev b{color:var(--frost)}html[data-brand="veil"] .gp-m small{font-size:12px}
html[data-brand="veil"] .gs-meter{background:linear-gradient(90deg,#3A1A1A,#5A1F1F);border-color:var(--edge)}html[data-brand="veil"] .gs-meter i{background:linear-gradient(90deg,var(--gold3),var(--gold));box-shadow:0 0 10px rgba(79,224,208,.45)} /* Horns up in gold against Horns down in red */
html[data-brand="veil"] .gs-btn{background:var(--wood);border:1px solid var(--edge);border-radius:8px;font:600 14px/1.3 var(--sans);color:var(--txt)}html[data-brand="veil"] .gs-bull.on,html[data-brand="veil"] .gs-bull:hover{border-color:var(--gold3);color:var(--gold-txt)}html[data-brand="veil"] .gs-bear.on,html[data-brand="veil"] .gs-bear:hover{border-color:rgba(255,92,92,.6);color:#FF8A80}
html[data-brand="veil"] .gs-vrow,html[data-brand="veil"] .gs-pos-f,html[data-brand="veil"] .gs-l li small,html[data-brand="veil"] .tt-foot{font-size:13px}html[data-brand="veil"] .gs-l li{font-size:15px}
html[data-brand="veil"] .gs-pos{background:linear-gradient(90deg,rgba(79,224,208,.12),var(--ink) 60%);border-color:var(--gold3)}html[data-brand="veil"] .gs-pos-big{font-weight:700;font-size:30px}html[data-brand="veil"] .gs-pos-big.up{color:var(--grn)}html[data-brand="veil"] .gs-pos-big.dn{color:var(--red)}

/* ---- swap: an ink well with the mono amount; Buy stays the gold primary, Sell goes iron with red text */
html[data-brand="veil"] .sw-box{padding:10px 12px}html[data-brand="veil"] .sw-arrow{color:var(--gold)}html[data-brand="veil"] .sw-px,html[data-brand="veil"] .sw-bal{font-size:13px}html[data-brand="veil"] .sw-bal b{font-family:var(--mono)}
html[data-brand="veil"] .sw-lines{background:var(--panel2);border-color:var(--edge);border-radius:8px}html[data-brand="veil"] .sw-lines div{border-bottom-color:var(--line);font-size:13px}html[data-brand="veil"] .sw-lines b{font-size:13px}
html[data-brand="veil"] .sw-go{font-size:16px;padding:10px}html[data-brand="veil"] .sw-go.sell{background:linear-gradient(180deg,var(--wood2),var(--wood));color:var(--red);border-color:rgba(255,92,92,.5);box-shadow:none}html[data-brand="veil"] .sw-st{font-size:14px}

/* ---- the aside: Berserkers, Skalds, the Feast; rank discs gold / cold silver / bronze; avatars ringed in old gold */
html[data-brand="veil"] .ge-side{top:66px}
html[data-brand="veil"] .tt-row{min-height:44px;border-top-color:var(--line)}html[data-brand="veil"] .tt-rk{font-weight:700;font-size:12px;background:rgba(255,255,255,.05);color:var(--mute)}
html[data-brand="veil"] .tt-1 .tt-rk{background:linear-gradient(180deg,#FFE9A8,#E8B04B);color:#1A1204}html[data-brand="veil"] .tt-2 .tt-rk{background:linear-gradient(180deg,#E6EBF2,#C7CDD8);color:#151A22}html[data-brand="veil"] .tt-3 .tt-rk{background:linear-gradient(180deg,#D9955E,#B9773F);color:#1A1204}
html[data-brand="veil"] .tt-who{font:600 14px/1.3 var(--sans)}html[data-brand="veil"] .tt-who small,html[data-brand="veil"] .tt-usd small{font:400 12px var(--sans)}html[data-brand="veil"] .tt-usd{font-weight:700;font-size:14px;color:var(--gold-txt)}html[data-brand="veil"] .tt-usd em.up{color:var(--grn)}html[data-brand="veil"] .tt-usd em.dn{color:var(--red)}
html[data-brand="veil"] .tt-claim{border:1px dashed var(--gold3);background:rgba(79,224,208,.06);color:var(--gold-txt);border-radius:8px;font:600 13px/1.3 var(--sans)}html[data-brand="veil"] .tt-claim:hover{background:rgba(79,224,208,.12)}html[data-brand="veil"] .tt-foot{border-top-color:var(--line)}
html[data-brand="veil"] .rb{background:rgba(255,255,255,.03);border-radius:6px;font-size:14px;min-height:36px;align-items:center}html[data-brand="veil"] .rb b{color:var(--txt);font-weight:600}html[data-brand="veil"] .rb i{font-size:12px}html[data-brand="veil"] .rb em{color:var(--gold-txt);font-weight:700;font-size:13px}html[data-brand="veil"] .rb span{font-family:var(--mono);color:var(--mute);font-size:12px}
html[data-brand="veil"] .av{border-color:var(--gold3);background:var(--panel2)}html[data-brand="veil"] .av-gen{font-family:var(--sans)}
html[data-brand="veil"] .earn{padding:10px 12px;margin-bottom:8px}html[data-brand="veil"] .earn span{font:600 11px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}html[data-brand="veil"] .earn b{font-weight:700;font-size:28px;color:var(--gold-txt)}html[data-brand="veil"] .earn-parts i,html[data-brand="veil"] .earn-open{font-size:13px}html[data-brand="veil"] .earn-parts em{font-family:var(--mono)}
html[data-brand="veil"] .claim{padding:10px 12px}html[data-brand="veil"] .claim .t{color:var(--yel)}html[data-brand="veil"] .claim .st,html[data-brand="veil"] #claims .st{font-size:13px}html[data-brand="veil"] .claim .st b{font-family:var(--mono);color:var(--txt)}html[data-brand="veil"] .claim .mine{color:var(--grn);font-size:14px}html[data-brand="veil"] .claim .btn{font-size:14px}
html[data-brand="veil"] .cg-all{border-color:var(--gold3);box-shadow:inset 0 1px 0 rgba(79,224,208,.35),inset 0 1px 0 rgba(0,0,0,0)}html[data-brand="veil"] .cg-big{font-size:15px;padding:11px 12px}html[data-brand="veil"] .claims-hist summary{font-size:13px}
html[data-brand="veil"] .ge-check input{padding:7px 10px;font-size:14px}html[data-brand="veil"] .ge-check .btn{font-size:14px}

/* ---- Yggdrasil (#vhTree, the flywheel in the aside) and the Plaza flywheel classes it reuses */
html[data-brand="veil"] .fw-head{gap:8px}html[data-brand="veil"] .fw-head .note{font-size:13px}html[data-brand="veil"] .fw-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
html[data-brand="veil"] .fw-grid .stat{padding:8px 10px;border-radius:8px;box-shadow:inset 0 1px 0 rgba(79,224,208,.16),0 4px 12px rgba(0,0,0,.35)}html[data-brand="veil"] .fw-grid .stat b{font-size:18px}html[data-brand="veil"] .fw-grid .stat span{font-size:12px}html[data-brand="veil"] .fw-grid .stat span:first-child{font-size:10px}
html[data-brand="veil"] .ge-tree[hidden]{display:none}

/* ---- the command band at the top of the Hall (.vh-hero, app.js fills the four live tiles): the open doors of the hall behind a left dark gradient */
html[data-brand="veil"] .vh-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:center;min-height:120px;margin:0 0 10px;padding:18px 22px;position:relative;overflow:hidden;border:1px solid var(--frame);border-radius:10px;background:linear-gradient(90deg,var(--panel2) 0%,rgba(13,16,22,.94) 42%,rgba(13,16,22,.55) 70%,rgba(13,16,22,.2) 100%),url('assets/veil/arena-2400.webp') right 40%/cover no-repeat var(--panel2);box-shadow:inset 0 1px 0 rgba(79,224,208,.22),0 12px 32px rgba(0,0,0,.55)}
html[data-brand="veil"] .vh-hero[hidden]{display:none}
html[data-brand="veil"] .vh-eyebrow{display:block;font:900 12px/1 var(--insc);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
html[data-brand="veil"] .vh-title{margin:0 0 6px;font:900 clamp(30px,4.6vw,46px)/1 var(--disp);font-stretch:125%;text-transform:uppercase;letter-spacing:.04em;background:linear-gradient(180deg,var(--gold1) 0%,#ffd06a 40%,var(--gold2) 65%,var(--gold3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000)}
html[data-brand="veil"] .vh-sub{margin:0 0 12px;max-width:68ch;color:var(--txt);font-size:15px;text-shadow:0 1px 2px rgba(0,0,0,.8)}
html[data-brand="veil"] .vh-cta{display:flex;gap:8px;flex-wrap:wrap}
html[data-brand="veil"] .vh-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
html[data-brand="veil"] .vh-stat{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;background:rgba(10,12,16,.72);border:1px solid var(--edge);border-radius:8px;box-shadow:inset 0 1px 0 rgba(79,224,208,.14);backdrop-filter:none;-webkit-backdrop-filter:blur(4px)}
html[data-brand="veil"] .vh-stat span{font:600 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}html[data-brand="veil"] .vh-stat b{font-weight:700;font-size:22px;line-height:1.1;color:var(--gold-txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html[data-brand="veil"] .vh-stat small{font-size:12px;color:var(--dim)}

/* ---- the High Seat panel and the Valhalla Cup: podium with gold / silver / bronze top hairlines, the horn, the cup rows */
html[data-brand="veil"] .ge-king{background:var(--grain),linear-gradient(90deg,rgba(79,224,208,.10),transparent 60%),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal,normal}
html[data-brand="veil"] .king-strip .kb-crown{filter:drop-shadow(0 0 8px rgba(79,224,208,.5))}html[data-brand="veil"] .king-strip .king-ic{box-shadow:0 0 0 2px var(--ring-out),0 0 0 3px rgba(79,224,208,.55),0 0 14px rgba(79,224,208,.3)}
html[data-brand="veil"] .king-strip .king-id span{font-size:13px}html[data-brand="veil"] .king-mini div{border-radius:6px;box-shadow:none}html[data-brand="veil"] .king-mini b{font-weight:700;font-size:14px}html[data-brand="veil"] .king-mini span{font-size:10px;letter-spacing:.1em}
html[data-brand="veil"] .ge-cup{background:var(--grain),radial-gradient(60% 40% at 50% 0%,rgba(79,224,208,.08),transparent 70%),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal,normal;box-shadow:inset 0 1px 0 rgba(79,224,208,.35),0 12px 32px rgba(0,0,0,.55)}
html[data-brand="veil"] .cup-trophy{filter:drop-shadow(0 0 10px rgba(79,224,208,.65))}html[data-brand="veil"] .cup-title span,html[data-brand="veil"] .cup-name span,html[data-brand="veil"] .cup-prize span{font-size:13px}html[data-brand="veil"] .cup-name em,html[data-brand="veil"] .cup-title b em{color:var(--gold2)}
html[data-brand="veil"] .cup-prize b{font-weight:700}html[data-brand="veil"] .shimmer{background:linear-gradient(100deg,var(--gold-txt) 0%,#FFF6D8 40%,var(--gold2) 55%,var(--gold-txt) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 8px rgba(79,224,208,.35));animation:shimmer 3.2s linear infinite}
html[data-brand="veil"] .cup-bar .cup-clock{border-left-color:var(--line)}html[data-brand="veil"] .cup-open{border-color:rgba(79,224,208,.3);border-radius:8px;font-size:13px}html[data-brand="veil"] .cup-how summary{color:var(--gold2)}html[data-brand="veil"] .cup-how summary::before{color:var(--gold)}
html[data-brand="veil"] .pod{border-radius:10px;--pod-c:transparent;box-shadow:inset 0 2px 0 var(--pod-c),inset 0 0 0 1px rgba(255,255,255,.02),0 12px 32px rgba(0,0,0,.55)}html[data-brand="veil"] .pod:hover{transform:translateY(-1px)}
html[data-brand="veil"] .pod.first{--pod-c:#E8B04B;border-color:var(--frame);box-shadow:inset 0 2px 0 var(--pod-c),0 0 22px rgba(79,224,208,.18),0 12px 32px rgba(0,0,0,.55);background:var(--grain),radial-gradient(80% 60% at 50% 0%,rgba(79,224,208,.12),transparent 70%),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal,normal}
html[data-brand="veil"] .pod.second{--pod-c:#C7CDD8;border-color:var(--frame)}html[data-brand="veil"] .pod.third{--pod-c:#B9773F;border-color:var(--frame)}html[data-brand="veil"] .pod.empty{border-style:dashed}
html[data-brand="veil"] .pod-medal{font-weight:700;font-size:13px;border-color:var(--ring-out);box-shadow:0 0 10px rgba(79,224,208,.4)}html[data-brand="veil"] .pod.first .pod-medal{background:#E8B04B}html[data-brand="veil"] .pod.second .pod-medal{background:#C7CDD8}html[data-brand="veil"] .pod.third .pod-medal{background:#B9773F}html[data-brand="veil"] .pod.empty .pod-medal{background:var(--wood2);color:var(--dim)}
html[data-brand="veil"] .pod-sym{color:var(--yel)}html[data-brand="veil"] .pod-perf{font-weight:700;font-size:22px}html[data-brand="veil"] .pod.first .pod-perf{font-size:28px}html[data-brand="veil"] .pod-prize{color:var(--gold-txt);font-size:13px;font-weight:500}html[data-brand="veil"] .pod-note{font-size:12px}
html[data-brand="veil"] .ge-ic.pod{border-color:var(--frame2)}html[data-brand="veil"] .pod.first .ge-ic.pod{box-shadow:0 0 16px rgba(79,224,208,.4)}
html[data-brand="veil"] .pod-share,html[data-brand="veil"] .toq,html[data-brand="veil"] .ld-bar,html[data-brand="veil"] .ldsum-bar,html[data-brand="veil"] .bar,html[data-brand="veil"] .pb-bar{background:var(--ink);border-color:var(--edge)}
html[data-brand="veil"] .pod-share i,html[data-brand="veil"] .toq i,html[data-brand="veil"] .ld-bar i,html[data-brand="veil"] .ldsum-bar i,html[data-brand="veil"] .bar i,html[data-brand="veil"] .pb-bar i{background:var(--bifrost);box-shadow:0 0 8px rgba(79,224,208,.3)}html[data-brand="veil"] .bar.bad i{background:linear-gradient(90deg,#7A1F1F,var(--red))}
html[data-brand="veil"] .ge-cup .cup-rows,html[data-brand="veil"] .ge-cup .cup-open{background:rgba(10,12,16,.8)} /* the ink well was solid and hid the cup-fx motes behind the rows; Santa's is .85 */
html[data-brand="veil"] .cup-row{border-bottom-color:var(--line)}html[data-brand="veil"] .cup-row:hover{background:var(--hover)}html[data-brand="veil"] .cup-row.podium{background:rgba(79,224,208,.05)}html[data-brand="veil"] .ge-cup .cup-row:nth-child(odd){border-right-color:var(--line)}
html[data-brand="veil"] .cup-row b{color:var(--yel)}html[data-brand="veil"] .cup-row .cr{font-family:var(--mono);font-size:12px;color:var(--mute)}html[data-brand="veil"] .cup-row .cp{font-weight:700;font-size:14px}html[data-brand="veil"] .cup-row .cm{font-size:13px}html[data-brand="veil"] .cup-row .cz{font-size:12px}html[data-brand="veil"] .cup-row .cz em{color:var(--gold-txt);font-size:13px}html[data-brand="veil"] .cup-foot{font-size:12px}
html[data-brand="veil"] .medal{font-weight:700;font-size:10px;box-shadow:0 0 6px rgba(79,224,208,.5)}html[data-brand="veil"] .medal.m1{background:#E8B04B}html[data-brand="veil"] .medal.m2{background:#C7CDD8}html[data-brand="veil"] .medal.m3{background:#B9773F}

/* ---- the Gjallarhorn rail (.act-strip): a 36px chip rail on ink, every chip with a coloured dot (green buy, red sell, gold chosen / High Seat, frost forged); actIn keeps the gold glow */
html[data-brand="veil"] .act-strip{min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--ink)}html[data-brand="veil"] .act-track{padding:7px 0} /* the track clips (overflow:hidden), so the actIn glow needs room inside it */
html[data-brand="veil"] .act-new{animation:vhActIn 9s ease-out}
@keyframes vhActIn{0%,45%{border-color:#FFD56A;background-color:rgba(79,224,208,.14);box-shadow:0 0 14px 2px rgba(79,224,208,.65)}100%{box-shadow:0 0 0 0 rgba(79,224,208,0)}} /* actIn in hoard gold, plus a gold wash on the chip */
html[data-brand="veil"] .act{background:#11141B;border:1px solid var(--edge);border-radius:999px;font:500 13px/1.4 var(--sans);padding:4px 10px 4px 8px;color:var(--txt);gap:6px}html[data-brand="veil"] .act::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--dim);flex:none}
html[data-brand="veil"] .act b{color:var(--gold-txt)}html[data-brand="veil"] .act span{color:var(--dim)}html[data-brand="veil"] .act:hover{border-color:var(--gold3)}
html[data-brand="veil"] .act-buy{border-color:rgba(61,240,106,.35)}html[data-brand="veil"] .act-buy::before{background:var(--grn)}html[data-brand="veil"] .act-buy b:first-of-type{color:var(--grn)}
html[data-brand="veil"] .act-sell{border-color:rgba(255,92,92,.35)}html[data-brand="veil"] .act-sell::before{background:var(--red)}html[data-brand="veil"] .act-sell b:first-of-type{color:#FF8A80}
html[data-brand="veil"] .act-launch{border-color:rgba(79,224,208,.45);background:rgba(79,224,208,.08)}html[data-brand="veil"] .act-launch::before{background:var(--frost)}
html[data-brand="veil"] .act-graduate{border-color:var(--gold3);background:rgba(79,224,208,.1)}html[data-brand="veil"] .act-graduate::before,html[data-brand="veil"] .act-king::before{background:var(--gold)}html[data-brand="veil"] .act-king{border-color:var(--gold3)}html[data-brand="veil"] .act-post{border-color:rgba(79,224,208,.35)}html[data-brand="veil"] .act-post::before{background:var(--frost)}
html[data-brand="veil"] .tr-chip.buy{color:#06210D;background:linear-gradient(180deg,#8DFFAA,var(--grn));border-color:#D6FFE0;box-shadow:0 0 16px rgba(61,240,106,.7)}html[data-brand="veil"] .tr-chip.sell{color:#2A0606;background:linear-gradient(180deg,#FFB0B0,var(--red));border-color:#FFE0E0;box-shadow:0 0 14px rgba(255,92,92,.6)}
html[data-brand="veil"] .tr-spark{background:var(--gold1);box-shadow:0 0 6px var(--gold),0 0 2px #fff}html[data-brand="veil"] .tr-spark:nth-of-type(3n){background:var(--ember);box-shadow:0 0 6px var(--ember)} /* sparkFly keeps its path: gold, ember at the tail */
/* ---- live-effect parity with Santa (owner 10-05): the chart FX canvas sits on top, sells flash red on the tape, the price pop glows, the Berserkers board flashes in hoard gold and the rank lift in the house green */
html[data-brand="veil"] .ge-fx{z-index:4} /* the coin shower, ring and +BUY splash draw over the chart and its source toggle (z 3) */
html[data-brand="veil"] .ge-tape .tp.sell.fresh{animation:sellpop 1.2s ease-out} /* Santa flashes every fresh tape row green, sells included */
html[data-brand="veil"] .ge-tok-px.buy-pop>b{animation:vhPxPop .9s ease-out;transform-origin:right center;display:block}
@keyframes vhPxPop{0%{transform:scale(1)}20%{transform:scale(1.18);color:#3DF06A;text-shadow:0 0 16px rgba(61,240,106,.85),0 0 3px #fff}100%{transform:scale(1);text-shadow:0 0 0 rgba(61,240,106,0)}} /* pxpop plus a green glow */
html[data-brand="veil"] .tt-flash{animation:vhTtFlash 1.6s ease-out}html[data-brand="veil"] .tt-flash.tt-up .tt-rk{animation:vhTtUp 1.2s ease-out}
@keyframes vhTtFlash{0%{background:rgba(79,224,208,.26)}100%{background:transparent}}@keyframes vhTtUp{0%{transform:translateY(6px) scale(1.25);box-shadow:0 0 14px rgba(61,240,106,.85)}100%{transform:none}} /* ttFlash / ttUp: the mint glow becomes #3DF06A */

/* ---- the Forge: the three-step wizard and the live card (forge heat at its base, gold on the last step); the launch box */
html[data-brand="veil"] .lf-stepper{position:relative;gap:8px}html[data-brand="veil"] .lf-stepper::before{content:'';position:absolute;left:12%;right:12%;top:50%;height:1px;background:var(--edge)}
html[data-brand="veil"] .lf-stepper button{position:relative;background:linear-gradient(180deg,var(--wood2),var(--wood));border:1px solid var(--frame);border-radius:999px;color:var(--dim);font:600 14px/1.3 var(--sans);box-shadow:inset 0 1px 0 var(--hi)}html[data-brand="veil"] .lf-stepper button b{background:rgba(255,255,255,.06);color:var(--dim);font:700 12px var(--mono);width:22px;height:22px}
html[data-brand="veil"] .lf-stepper button.on{background:linear-gradient(180deg,var(--gold1),var(--gold2));color:#1A1204;border-color:#7A5612;box-shadow:0 0 16px rgba(79,224,208,.3),inset 0 1px 0 rgba(255,255,255,.35)}html[data-brand="veil"] .lf-stepper button.on b{background:#1A1204;color:var(--gold-txt)}
html[data-brand="veil"] .lf-stepper button.done{color:var(--gold-txt);border-color:var(--gold3);background:var(--ink)}html[data-brand="veil"] .lf-stepper button.done b{background:rgba(79,224,208,.12);color:var(--gold-txt)}
html[data-brand="veil"] .lf-card{border-radius:12px;background:var(--grain),radial-gradient(60% 50% at 50% 100%,rgba(255,106,61,.18),transparent),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal,normal;transition:background .3s}
html[data-brand="veil"] .ge-launchbox[data-step="3"] .lf-card{background:var(--grain),radial-gradient(60% 50% at 50% 100%,rgba(79,224,208,.2),transparent),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal,normal;box-shadow:inset 0 1px 0 rgba(79,224,208,.35),0 0 28px rgba(79,224,208,.12),0 12px 32px rgba(0,0,0,.55)}
html[data-brand="veil"] .lf-card-ic{background:var(--ink);border:2px solid var(--gold);box-shadow:0 0 0 4px rgba(79,224,208,.12),0 0 28px rgba(79,224,208,.3)}html[data-brand="veil"] .lf-card-ic span{color:var(--gold-txt);font-family:var(--disp)}html[data-brand="veil"] .lf-card-name{font-size:14px}html[data-brand="veil"] .lf-card-where{font-size:12px}html[data-brand="veil"] .lf-card-tags i{text-transform:none;letter-spacing:0;color:var(--txt)}
html[data-brand="veil"] .lf-img{border:1px dashed var(--frame2);border-radius:10px;background-color:var(--ink);font-size:14px}
html[data-brand="veil"] .lf-facts span::before{content:'';display:inline-block;width:4px;height:4px;background:var(--gold);margin:0 6px 2px 0;vertical-align:middle} /* bullets are a 4px gold square */
html[data-brand="veil"] .lf-facts,html[data-brand="veil"] .lf-hint,html[data-brand="veil"] .lf-check i{font-size:13px}html[data-brand="veil"] .lf-seed,html[data-brand="veil"] .lf-mode,html[data-brand="veil"] .lf-check{font-size:14px}
html[data-brand="veil"] .lf-venues .ge-tabs{background:none;border:0;padding:0}html[data-brand="veil"] .lf-venues .ge-tabs button{background:linear-gradient(180deg,var(--wood2),var(--wood));border:1px solid var(--frame);border-radius:10px;color:var(--txt);box-shadow:inset 0 1px 0 var(--hi)}html[data-brand="veil"] .lf-venues .ge-tabs button small{color:var(--dim);font-size:12px;opacity:1}
html[data-brand="veil"] .lf-venues .ge-tabs button.on{background:linear-gradient(180deg,var(--wood2),var(--wood));color:var(--txt);box-shadow:inset 3px 0 0 var(--gold),0 0 0 1px var(--gold3),0 0 18px rgba(79,224,208,.18)} /* an iron card with a gold left rail when chosen */
html[data-brand="veil"] .ge-launchbox .vb-rows b{font-size:14px}html[data-brand="veil"] .lf-devout b{color:var(--gold-txt);font-family:var(--mono)}html[data-brand="veil"] .lf-liq b{color:var(--gold-txt)}html[data-brand="veil"] .ge-taxline.ge-venue{font-size:13px}

/* ---- modals (glass + blur), the step dots, the share-card (saga) dialog, the profile sheet */
html[data-brand="veil"] .vb-overlay{background:rgba(4,5,8,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
html[data-brand="veil"] .vb-modal{border-radius:12px;padding:18px 20px 16px}html[data-brand="veil"] .vb-modal p{font-size:15px}html[data-brand="veil"] .vb-modal .note{font-size:14px}
html[data-brand="veil"] .vb-step b{font-size:15px}html[data-brand="veil"] .vb-step span{font-size:13px}html[data-brand="veil"] .vb-dot{border-color:var(--edge)}html[data-brand="veil"] .vb-step.on b{color:var(--gold-txt)}html[data-brand="veil"] .vb-step.on .vb-dot{border-color:var(--gold);background:var(--gold);box-shadow:0 0 8px rgba(79,224,208,.6)}
html[data-brand="veil"] .vb-step.done .vb-dot{border-color:var(--grn);background:var(--grn)}html[data-brand="veil"] .vb-step.done span,html[data-brand="veil"] .vb-pmsg.ok{color:#9FE3A8}html[data-brand="veil"] .vb-pmsg{font-size:14px}
html[data-brand="veil"] .vb-overlay.lc-ov{background:var(--glass)}
html[data-brand="veil"] .lc-box{width:min(520px,92vw);border-radius:14px;padding:28px 24px 22px;border-color:var(--gold);box-shadow:inset 0 1px 0 rgba(79,224,208,.35),0 0 60px rgba(79,224,208,.38),0 24px 64px rgba(0,0,0,.6)}
html[data-brand="veil"] .lc-fx{z-index:3} /* the text and buttons below are position:relative here, which painted them over the confetti canvas; pointer-events stay off */
html[data-brand="veil"] .lc-box::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 40%,rgba(255,233,168,.22) 50%,transparent 60%) no-repeat;background-size:200% 100%;animation:vhSweep .6s ease-out .3s 1 both} /* FORGED: one gold light sweep */
html[data-brand="veil"] .lc-coin{background:conic-gradient(from 0deg,var(--gold3),var(--gold1),var(--gold2),var(--frost),var(--gold3))}html[data-brand="veil"] .lc-coin img{background:var(--ink)}
html[data-brand="veil"] .lc-box h2{font:900 34px/1 var(--disp);font-stretch:125%;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-txt);text-shadow:0 2px 0 #000;position:relative}html[data-brand="veil"] .lc-box p{font-size:15px;position:relative}
html[data-brand="veil"] .lc-acts,html[data-brand="veil"] .lc-next{position:relative}html[data-brand="veil"] .lc-next{border-top-color:var(--line)}html[data-brand="veil"] .lc-next button{background:var(--ink);border:1px solid var(--edge);border-radius:8px;font:500 15px/1.3 var(--sans);color:var(--txt)}html[data-brand="veil"] .lc-next button:hover{border-color:var(--gold3);color:var(--gold-txt)}
html[data-brand="veil"] .vb-overlay.sc-ov{background:rgba(4,5,8,.78)}html[data-brand="veil"] .sc-box{border-radius:14px;box-shadow:inset 0 1px 0 rgba(79,224,208,.35),0 24px 64px rgba(0,0,0,.6)}
html[data-brand="veil"] .sc-img{background:var(--ink);border:1px solid var(--frame);border-radius:10px;box-shadow:inset 0 1px 0 rgba(79,224,208,.3)}html[data-brand="veil"] .sc-load{font-size:14px}html[data-brand="veil"] .sc-load i{border-color:rgba(79,224,208,.25);border-top-color:var(--gold)}html[data-brand="veil"] .sc-x:hover,html[data-brand="veil"] .sc-id{color:var(--gold-txt)}html[data-brand="veil"] .sc-note,html[data-brand="veil"] .sc-id{font-size:13px}
html[data-brand="veil"] .id-step{border-top-color:var(--line)}html[data-brand="veil"] .id-n{border-color:var(--gold3);color:var(--gold-txt);font:700 13px var(--mono)}html[data-brand="veil"] .id-step.done .id-n{background:rgba(61,240,106,.12);border-color:var(--grn)}html[data-brand="veil"] .id-t{font:600 16px/1.3 var(--sans)}html[data-brand="veil"] .id-ok{color:var(--grn);font-size:14px}
html[data-brand="veil"] .me-id span,html[data-brand="veil"] .al-h span,html[data-brand="veil"] .al-kinds{font-size:13px}html[data-brand="veil"] .al-kinds input{accent-color:var(--gold)}
html[data-brand="veil"] .vh-t{color:var(--gold-txt)}html[data-brand="veil"] .vh-hint,html[data-brand="veil"] .vh-alt,html[data-brand="veil"] .vh-what{font-size:13px}html[data-brand="veil"] .vh-hint code{color:var(--yel);font-family:var(--mono)}html[data-brand="veil"] #mePanel.flash{box-shadow:0 0 0 2px var(--gold)}

/* ---- the Forge dashboard (/creator) */
html[data-brand="veil"] .cd-coin{padding:12px}html[data-brand="veil"] .cd-id b{font-weight:700;font-size:24px;color:var(--gold-txt)}html[data-brand="veil"] .cd-px b{font-weight:700;font-size:20px;color:var(--gold-txt)}html[data-brand="veil"] .cd-id small,html[data-brand="veil"] .cd-px small,html[data-brand="veil"] .cd-totals small,html[data-brand="veil"] .cd-claim small,html[data-brand="veil"] .cd-kv dd small,html[data-brand="veil"] .cd-card .note,html[data-brand="veil"] .cd-legend,html[data-brand="veil"] .cd-snipebig em small{font-size:13px}
html[data-brand="veil"] .cd-claim{background:var(--panel2);border:1px solid var(--edge);border-radius:8px}html[data-brand="veil"] .cd-claim b{font-weight:700;font-size:22px;color:var(--grn)}html[data-brand="veil"] .cd-claim .btn,html[data-brand="veil"] .cd-head .btn,html[data-brand="veil"] .cd-manage .btn,html[data-brand="veil"] .cd-refresh{font-size:14px}
html[data-brand="veil"] .cd-kv{font-size:14px}html[data-brand="veil"] .cd-kv dd b,html[data-brand="veil"] .cd-hover b{color:var(--gold-txt)}html[data-brand="veil"] .cd-hover{font-size:14px}html[data-brand="veil"] .cd-st{color:var(--gold-txt);font-size:14px}
html[data-brand="veil"] .cd-chart .bar{fill:var(--gold3)}html[data-brand="veil"] .cd-chart g.on .bar,html[data-brand="veil"] .cd-chart g:hover .bar{fill:var(--gold)}html[data-brand="veil"] .cd-chart .axis{stroke:var(--edge)}html[data-brand="veil"] .cd-chart .grid{stroke:var(--edge)}html[data-brand="veil"] .cd-chart .lbl{fill:var(--dim);text-transform:none;letter-spacing:0}
html[data-brand="veil"] .cd-chart .bar.snipe{fill:#4F7FD0}html[data-brand="veil"] .cd-chart g.on .bar.snipe,html[data-brand="veil"] .cd-chart g:hover .bar.snipe{fill:var(--frost)}html[data-brand="veil"] .cd-legend .sw{background:var(--gold3)}html[data-brand="veil"] .cd-legend .sw.snipe{background:var(--frost)}html[data-brand="veil"] .cd-snipebig b,html[data-brand="veil"] .cd-snipebig em{color:var(--frost)}
html[data-brand="veil"] .cd-manage .cd-row{font-size:14px}html[data-brand="veil"] .cd-manage input,html[data-brand="veil"] .cd-manage select,html[data-brand="veil"] .cd-manage textarea,html[data-brand="veil"] .ld-new select,html[data-brand="veil"] .ld-new input,html[data-brand="veil"] .ld-addrow input,html[data-brand="veil"] .ge-devlinks input,html[data-brand="veil"] .ge-devlinks textarea{background:var(--wood);padding:6px 10px;font-size:14px}
html[data-brand="veil"] .cd-managecard summary h4::before{color:var(--mute)}html[data-brand="veil"] .cd-bridge .br-short{color:var(--gold-txt);font-family:var(--mono)}html[data-brand="veil"] .cd-empty p{font-size:15px}html[data-brand="veil"] .ge-devtg code{background:var(--ink);color:var(--gold-txt);font-family:var(--mono)}

/* ---- sell ladders: the summary plaque, the tiles, the Bifröst fill under the existing sheen */
html[data-brand="veil"] .ldsum{padding:16px 18px 12px}html[data-brand="veil"] .ldsum:before{border-color:rgba(79,224,208,.16);border-radius:8px}
html[data-brand="veil"] .ldsum-hero b{font-weight:700;font-size:48px;background:linear-gradient(180deg,var(--gold1) 0%,#ffd06a 38%,var(--gold2) 62%,var(--gold3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 16px rgba(79,224,208,.22))}html[data-brand="veil"] .ldsum-hero b i{font-size:18px;letter-spacing:.04em}html[data-brand="veil"] .ldsum-hero small{font-size:13px}
html[data-brand="veil"] .ldsum-tiles>div{box-shadow:inset 0 1px 0 rgba(79,224,208,.12)}html[data-brand="veil"] .ldsum-tiles b{font-weight:700;font-size:20px;color:var(--gold-txt)}html[data-brand="veil"] .ldsum-tiles small{font-size:12px}html[data-brand="veil"] .ldsum-tiles .btn{font-size:13px;padding:4px 10px}
html[data-brand="veil"] .ldsum-coins{border-top-color:var(--line)}html[data-brand="veil"] .ldsum-row{border-bottom-color:var(--line);font-size:14px}html[data-brand="veil"] .ldsum-row img{box-shadow:0 0 0 1px var(--gold3),0 1px 3px #000}html[data-brand="veil"] .ldsum-row em{color:var(--gold-txt)}html[data-brand="veil"] .ldsum-row small,html[data-brand="veil"] .ldsum-tg{font-size:13px}html[data-brand="veil"] .ldsum-tg b{color:var(--gold-txt)}
html[data-brand="veil"] .ld-card{padding:10px 12px}html[data-brand="veil"] .ld-card .ld-ic{box-shadow:0 0 0 2px var(--ring-out),0 0 0 3px var(--gold3);background:var(--ink)}html[data-brand="veil"] .ld-metrics b{font-weight:700;font-size:16px}html[data-brand="veil"] .ld-metrics span,html[data-brand="veil"] .ld-metrics small{font-size:11px}
html[data-brand="veil"] .ld-grid{font-size:14px}html[data-brand="veil"] .ld-grid b{font-family:var(--mono)}html[data-brand="veil"] .ld-warn{border-color:rgba(255,92,92,.5);border-radius:8px;background:rgba(255,92,92,.06)}html[data-brand="veil"] .ld-offstat{font-size:13px}
html[data-brand="veil"] .ld-xp .fill{background:var(--bifrost);box-shadow:0 0 8px rgba(79,224,208,.35)}html[data-brand="veil"] .ld-xp.gain{box-shadow:0 0 18px rgba(79,224,208,.4),0 -1px 10px rgba(79,224,208,.25)}html[data-brand="veil"] .ld-xp.gain .fill{box-shadow:0 0 16px rgba(79,224,208,.6),0 0 34px rgba(79,224,208,.35)}html[data-brand="veil"] .ld-xp .label{color:var(--gold1)}

/* ---- Liquidity: the hero is a panel with the open doors behind a left dark gradient; Public pools wear the gold, the Shieldwall stays iron */
html[data-brand="veil"] .lq-hero{margin:0 0 12px;padding:20px 22px 18px;position:relative;overflow:hidden;border:1px solid var(--frame);border-radius:10px;background:linear-gradient(90deg,var(--panel2) 0%,rgba(13,16,22,.94) 42%,rgba(13,16,22,.6) 70%,rgba(13,16,22,.25) 100%),url('assets/veil/arena-2400.webp') right 40%/cover no-repeat var(--panel2);box-shadow:inset 0 1px 0 rgba(79,224,208,.22),0 12px 32px rgba(0,0,0,.55)}
html[data-brand="veil"] .lq-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px} /* public pools lead, ladders second, the SANTA/GP floor last */
html[data-brand="veil"] .lq-tile[data-jump="lpPools"]{order:1}html[data-brand="veil"] .lq-tile[data-jump="lq-meteora"]{order:2}html[data-brand="veil"] .lq-tile[data-jump="lq-sg"]{order:3}
html[data-brand="veil"] #s-lp.on{display:flex;flex-direction:column}html[data-brand="veil"] #s-lp>.lq-hero{order:0}html[data-brand="veil"] #s-lp>#lpPools{order:1}html[data-brand="veil"] #s-lp>#lq-meteora{order:2}html[data-brand="veil"] #s-lp>#lq-sg{order:3}html[data-brand="veil"] #s-lp>.lq-close{order:4}
html[data-brand="veil"] .lq-tile{padding:14px 16px;border-radius:10px;transition:transform .15s var(--ease),border-color .15s var(--ease),box-shadow .15s var(--ease)}html[data-brand="veil"] .lq-tile:hover,html[data-brand="veil"] .lq-tile:focus-visible{transform:translateY(-1px);border-color:var(--frame2);box-shadow:inset 0 1px 0 rgba(79,224,208,.22),0 16px 36px rgba(0,0,0,.6)}
html[data-brand="veil"] .lq-tile b{font-weight:700;font-size:22px;color:var(--gold-txt)}html[data-brand="veil"] .lq-tile small{font-size:12px}
html[data-brand="veil"] .lq-tile.gold{border-color:var(--frame);background:var(--grain),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal} /* the markup's gold class sits on the ladders tile: iron here */
html[data-brand="veil"] .lq-tile[data-jump="lpPools"]{border-color:var(--gold3);box-shadow:inset 0 1px 0 rgba(79,224,208,.55),0 0 0 1px rgba(79,224,208,.12),0 12px 32px rgba(0,0,0,.55);background:var(--grain),radial-gradient(120% 160% at 0% 0%,rgba(79,224,208,.14),transparent 60%),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal,normal}
html[data-brand="veil"] .lq-trust,html[data-brand="veil"] .lq-close p{color:var(--dim);font-size:14px;max-width:68ch}html[data-brand="veil"] .lq-trust[hidden],html[data-brand="veil"] .lq-close[hidden]{display:none}
html[data-brand="veil"] .lq-card{padding:0}html[data-brand="veil"] .lq-pool-h h2{flex:1 1 220px}html[data-brand="veil"] .lp-pool{font-size:15px}
html[data-brand="veil"] .poolbox div{padding:8px 10px}
/* Design v2 structure (owner 10-24), Valhalla's iron: a pool's figures one strip, "before you add" one well, the add form and position columns of the panel, a dashboard coin's groups a well — never a box in a box */
html[data-brand="veil"] .poolbox,html[data-brand="veil"] .lp-risk,html[data-brand="veil"] .cd-card{background:var(--ink);border:1px solid var(--edge);border-radius:8px;box-shadow:inset 0 1px 0 rgba(0,0,0,.6)}html[data-brand="veil"] .poolbox div{box-shadow:-1px 0 0 var(--edge)}html[data-brand="veil"] .lp-risk-g>div{border-color:var(--edge)}html[data-brand="veil"] .lq-pool-h{border-bottom-color:var(--edge)}html[data-brand="veil"] .panel .lq-pool-h h2{margin:0;padding:0;border:0} /* the header row draws the one divider (two lines showed: under the title, then under the row) */html[data-brand="veil"] .lp-risk-g small,html[data-brand="veil"] .ycell small,html[data-brand="veil"] .pb-note,html[data-brand="veil"] .ychain{font-size:13px}html[data-brand="veil"] .pb-days{font-size:15px}html[data-brand="veil"] .ychain b{color:var(--gold-txt)}html[data-brand="veil"] .ylist{font-size:14px}html[data-brand="veil"] .ylist div{border-bottom-color:var(--line)}html[data-brand="veil"] .ylist .gldx{color:var(--gold-txt)}
html[data-brand="veil"] .payback.done{border-color:var(--grn)}html[data-brand="veil"] .payback.done .pb-bar i{background:linear-gradient(90deg,#1C7A2C,var(--grn))}

/* ---- the painted icons: the Hall Shield replaces the hat, the circlet the crown, the horn the trophy, the longship the whale; new classes for the new concepts */
html[data-brand="veil"] .ic-hat,html[data-brand="veil"] .ic-shield{background-image:url('assets/icons/shield.png')}
html[data-brand="veil"] .ic-crown,html[data-brand="veil"] .ic-circlet{background-image:url('assets/icons/crown.png')}
html[data-brand="veil"] .ic-trophy,html[data-brand="veil"] .ic-horn{background-image:url('assets/icons/alert.png')}
html[data-brand="veil"] .ic-whale{background-image:url('assets/icons/rocket.png')}
html[data-brand="veil"] .ic-raven{background-image:url('assets/icons/chat.png')}html[data-brand="veil"] .ic-forge{background-image:url('assets/icons/burn.png')}html[data-brand="veil"] .ic-well{background-image:url('assets/icons/rewards.png')}html[data-brand="veil"] .ic-gjallar{background-image:url('assets/icons/alert.png')}html[data-brand="veil"] .ic-bifrost{background-image:url('assets/icons/pulse.png')}
html[data-brand="veil"] .soc-b{background:radial-gradient(circle at 35% 30%,var(--wood2),var(--ink) 75%);border-color:var(--frame);box-shadow:inset 0 1px 0 var(--hi),0 1px 3px #000}html[data-brand="veil"] .soc-b:hover,html[data-brand="veil"] .soc-b:focus-visible{border-color:var(--gold-txt);box-shadow:inset 0 1px 0 var(--hi),0 0 10px rgba(79,224,208,.5),0 1px 3px #000}html[data-brand="veil"] .soc.big .soc-b{background:radial-gradient(circle at 35% 30%,#2E3442,var(--ink) 72%)}

/* ---- toast: an iron pill with the shield mark; bottom-right on desktop */
html[data-brand="veil"] #toast{left:auto;right:16px;bottom:16px;transform:none;background:linear-gradient(180deg,var(--wood2),var(--wood));border:1px solid var(--frame);border-radius:999px;color:var(--txt);font:500 14px/1.3 var(--sans);padding:10px 18px 10px 40px;text-align:left;box-shadow:inset 0 1px 0 var(--hi),0 12px 32px rgba(0,0,0,.55);animation:vhToast .16s var(--ease)}
html[data-brand="veil"] #toast::before{content:'';position:absolute;left:14px;top:50%;width:16px;height:16px;margin-top:-8px;background:url('assets/veil/emblem-256.png') center/contain no-repeat}
html[data-brand="veil"] #toast.ok{border-color:rgba(61,240,106,.5)}html[data-brand="veil"] #toast.bad{border-color:rgba(255,92,92,.5)}
@keyframes vhToast{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---- phones: the command band stacks, 16px gutters. Design v2 (owner 10-24): the sideways nav and the floating Forge button are gone — the
   bottom tab bar (app.js tabBar, skinned below) is the phone's nav and holds Forge; the header is logo + horn + wallet */
@media(max-width:980px){html[data-brand="veil"] .ge-side{position:static}}
@media(max-width:820px){
  html[data-brand="veil"] header .brand{font-size:18px}
  html[data-brand="veil"] #wallet .btn{padding:6px 12px;font-size:14px}
  html[data-brand="veil"] main{padding:10px 16px}
  html[data-brand="veil"] .vh-hero{grid-template-columns:minmax(0,1fr);min-height:0;padding:16px;gap:12px;background-position:right 30%}
  html[data-brand="veil"] .vh-title{font-size:30px}html[data-brand="veil"] .vh-cta .btn.sec{display:none}
  html[data-brand="veil"] .lq-hero{padding:16px}html[data-brand="veil"] .lq-tiles{grid-template-columns:minmax(0,1fr)}html[data-brand="veil"] .lq-tile b{font-size:20px}
  html[data-brand="veil"] #toast{left:50%;right:auto;transform:translateX(-50%);bottom:calc(16px + var(--tabbar-h));max-width:calc(100vw - 32px)}
  html[data-brand="veil"] .ge-social{grid-template-columns:minmax(0,1fr)}
  html[data-brand="veil"] .ge-title b{font-size:20px}html[data-brand="veil"] .ge-title img{width:28px;height:28px}
}
@media(max-width:640px){html[data-brand="veil"] .king-bar{gap:8px;padding:8px 16px}html[data-brand="veil"] .king-bar b{font-size:12px;letter-spacing:.02em;flex:none}html[data-brand="veil"] .king-bar em{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:12px}html[data-brand="veil"] .king-bar .kb-go{flex:none;padding:2px 8px}}
@media(max-width:480px){html[data-brand="veil"] body{font-size:15px}html[data-brand="veil"] .lc-box h2{font-size:28px}html[data-brand="veil"] .ldsum-hero b{font-size:34px}html[data-brand="veil"] .stat b{font-size:20px}html[data-brand="veil"] .ge-tok-id>b{font-size:22px}html[data-brand="veil"] .ge-tok-px>b{font-size:24px}html[data-brand="veil"] .vh-stat b{font-size:18px}}
/* ---- motion is for things that happened: the new loops die under reduced motion like the Santa ones do */
@media(prefers-reduced-motion:reduce){html[data-brand="veil"] .panel h2::after,html[data-brand="veil"] .lc-box::before,html[data-brand="veil"] section.on,html[data-brand="veil"] .cg-big,html[data-brand="veil"] .vh-sweep::after,html[data-brand="veil"] .vh-pop,html[data-brand="veil"] .king-bar.vh-new .kb-crown .ic,html[data-brand="veil"] #toast,html[data-brand="veil"] .act-new,html[data-brand="veil"] .tt-flash,html[data-brand="veil"] .tt-flash.tt-up .tt-rk,html[data-brand="veil"] .lc-box{animation:none}html[data-brand="veil"] .ge-grad .bar i,html[data-brand="veil"] .ge-row.isle .it>span::after,html[data-brand="veil"] .lq-tile,html[data-brand="veil"] .pod{transition:none}}

/* FALLBACK (Longhall path), kept commented: if a board step still wraps or clips after the +4px widenings, restore the pixel face for the DATA columns only and keep Inter on prose, headings and buttons (VT323 would then have to return to the @import on line 1):
html[data-brand="veil"] .ge-row small,html[data-brand="veil"] .ge-row .nm,html[data-brand="veil"] .tr-row,html[data-brand="veil"] .poolbox{font-family:'VT323',monospace;font-size:22px;line-height:1.25} */

/* scroll smoothness: no per-panel noise blend over the moving page, no blur behind the sticky header or the hero tiles */
html[data-brand="veil"]{--grain:none}html[data-brand="veil"] header{background:linear-gradient(180deg,rgba(14,16,22,.97),rgba(10,12,16,.95));-webkit-backdrop-filter:none;backdrop-filter:none}html[data-brand="veil"] .vh-stat{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(10,12,16,.82)}
html[data-brand="veil"] .src-tag{color:var(--gold-txt);background:rgba(212,175,95,.10);border-color:rgba(212,175,95,.28)}html[data-brand="veil"] .src-tag.src-fomo{color:#e9b38a;background:rgba(233,179,138,.10);border-color:rgba(233,179,138,.3)}

/* ==== NORDIC PASS (10-06, after LudwigDelta: "what if you make a snowfall in the background?") ==== */
/* ground: the longhall seen from outside on a frozen fjord under the aurora; darkened toward the bottom so every panel still reads */
html[data-brand="veil"]::before{background:linear-gradient(180deg,rgba(6,7,10,.12) 0%,rgba(6,7,10,.42) 34%,rgba(6,7,10,.74) 70%,rgba(6,7,10,.9) 100%),url('assets/veil/veil-960.webp') 62% top/cover no-repeat var(--bg)}
@media(max-width:900px){html[data-brand="veil"]::before{background:linear-gradient(180deg,rgba(6,7,10,.16) 0%,rgba(6,7,10,.5) 34%,rgba(6,7,10,.8) 70%,rgba(6,7,10,.92) 100%),url('assets/veil/veil-960.webp') 74% top/cover no-repeat var(--bg)}}
/* the falling snow (valhalla/fx.js) and the living aurora sit between the painting and the page */
html[data-brand="veil"] #vhSnow{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}html[data-brand="veil"] #vhSnowFront{position:fixed;inset:0;width:100%;height:100%;z-index:15;pointer-events:none} /* above the panels, under the sticky header (20) and every modal (100+) */
html[data-brand="veil"] #vhAurora{position:fixed;left:0;right:0;top:0;height:70vh;z-index:-1;pointer-events:none;overflow:hidden;opacity:.7}
html[data-brand="veil"] #vhAurora i{position:absolute;left:-25%;width:150%;height:62%;top:-6%;background:radial-gradient(ellipse 42% 38% at 52% 62%,rgba(139,108,246,.2),rgba(139,108,246,.06) 45%,transparent 70%);animation:vhAur1 23s ease-in-out infinite alternate;will-change:transform,opacity}
html[data-brand="veil"] #vhAurora i+i{top:2%;background:radial-gradient(ellipse 30% 26% at 38% 48%,rgba(79,224,208,.14),transparent 70%),radial-gradient(ellipse 22% 20% at 70% 40%,rgba(139,108,246,.12),transparent 70%);animation:vhAur2 34s ease-in-out infinite alternate}
@keyframes vhAur1{0%{transform:translate3d(-7%,0,0) scaleY(.82) skewX(-9deg);opacity:.55}50%{opacity:1}100%{transform:translate3d(9%,3%,0) scaleY(1.16) skewX(7deg);opacity:.75}}
@keyframes vhAur2{0%{transform:translate3d(6%,2%,0) scaleX(1.1);opacity:.4}100%{transform:translate3d(-8%,-2%,0) scaleX(.9);opacity:1}}
/* panels: forged-iron corner brackets with a gold rivet on every corner */
html[data-brand="veil"] .panel{background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg transform=''%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='2'/%3E%3Cpath d='M4.5 19V7.5Q4.5 4.5 7.5 4.5H19' fill='none' stroke='%233A2C14' stroke-width='1'/%3E%3Ccircle cx='5.2' cy='5.2' r='1.7' fill='%23F0B23E'/%3E%3C/g%3E%3C/svg%3E") 4px 4px/20px no-repeat,url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg transform='translate(20 0) scale(-1 1)'%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='2'/%3E%3Cpath d='M4.5 19V7.5Q4.5 4.5 7.5 4.5H19' fill='none' stroke='%233A2C14' stroke-width='1'/%3E%3Ccircle cx='5.2' cy='5.2' r='1.7' fill='%23F0B23E'/%3E%3C/g%3E%3C/svg%3E") right 4px top 4px/20px no-repeat,url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg transform='translate(0 20) scale(1 -1)'%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='2'/%3E%3Cpath d='M4.5 19V7.5Q4.5 4.5 7.5 4.5H19' fill='none' stroke='%233A2C14' stroke-width='1'/%3E%3Ccircle cx='5.2' cy='5.2' r='1.7' fill='%23F0B23E'/%3E%3C/g%3E%3C/svg%3E") left 4px bottom 4px/20px no-repeat,url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg transform='translate(20 20) scale(-1 -1)'%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='2'/%3E%3Cpath d='M4.5 19V7.5Q4.5 4.5 7.5 4.5H19' fill='none' stroke='%233A2C14' stroke-width='1'/%3E%3Ccircle cx='5.2' cy='5.2' r='1.7' fill='%23F0B23E'/%3E%3C/g%3E%3C/svg%3E") right 4px bottom 4px/20px no-repeat,linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:normal;border-color:#3A4152;box-shadow:inset 0 1px 0 rgba(79,224,208,.22),inset 0 0 0 1px rgba(255,255,255,.02),inset 0 0 40px rgba(79,224,208,.035),0 12px 32px rgba(0,0,0,.6)}
/* carved knotwork: under the hero band, over the footer, atop every modal */
html[data-brand="veil"] .vh-hero,html[data-brand="veil"] .lq-hero{margin-bottom:22px;overflow:visible}
html[data-brand="veil"] .vh-hero::after,html[data-brand="veil"] .lq-hero::after{content:'';position:absolute;left:50%;bottom:-13px;width:min(520px,70%);height:26px;transform:translateX(-50%);background:url('assets/veil/emblem-256.png') center/contain no-repeat;filter:drop-shadow(0 3px 6px rgba(0,0,0,.8));pointer-events:none;z-index:2}
html[data-brand="veil"] footer{position:relative;padding-top:46px}html[data-brand="veil"] footer::before{content:'';position:absolute;left:50%;top:10px;width:min(420px,80%);height:24px;transform:translateX(-50%);background:url('assets/veil/emblem-256.png') center/contain no-repeat;opacity:.85}
html[data-brand="veil"] .vb-modal{background-image:url('assets/veil/emblem-256.png'),linear-gradient(180deg,var(--panel),var(--panel2));background-size:min(300px,60%) auto,auto;background-position:center 6px,0 0;background-repeat:no-repeat}html[data-brand="veil"] .vb-modal>*:first-child{margin-top:18px}
/* header: a frost line and a faint gold inlay under it */
html[data-brand="veil"] header{border-bottom:1px solid rgba(79,224,208,.3);box-shadow:0 1px 0 rgba(79,224,208,.12),0 8px 24px rgba(0,0,0,.5)}
/* the war-drum horn: iron disc, gold when the drums are playing, a ring that pulses on the beat (66 bpm) */
html[data-brand="veil"] .vh-music{display:inline-grid;place-items:center;width:38px;height:38px;flex:none;padding:0;margin-left:auto;border-radius:50%;border:1px solid var(--frame2);background:radial-gradient(circle at 35% 30%,#2A303C,#0D1016 70%);cursor:pointer;position:relative;transition:border-color .2s,box-shadow .2s}
html[data-brand="veil"] .vh-music img{width:24px;height:24px;filter:grayscale(.7) brightness(.75);transition:filter .2s,transform .2s}
html[data-brand="veil"] .vh-music:hover{border-color:var(--gold3)}html[data-brand="veil"] .vh-music:hover img{filter:grayscale(.2) brightness(.95);transform:rotate(-8deg)}
html[data-brand="veil"] .vh-music:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
html[data-brand="veil"] .vh-music.on{border-color:var(--gold);box-shadow:0 0 0 3px rgba(79,224,208,.14),0 0 18px rgba(79,224,208,.35)}html[data-brand="veil"] .vh-music.on img{filter:none}
html[data-brand="veil"] .vh-music.on::after{content:'';position:absolute;inset:-1px;border-radius:50%;border:2px solid rgba(79,224,208,.55);animation:vhBeat .909s ease-out infinite;pointer-events:none}
html[data-brand="veil"] .vh-music .vm-x{position:absolute;right:-2px;bottom:-2px;width:14px;height:14px;border-radius:50%;background:#0D1016;border:1px solid var(--frame2);display:grid;place-items:center}html[data-brand="veil"] .vh-music .vm-x::before{content:'';width:8px;height:1.5px;background:var(--mute);transform:rotate(-45deg)}html[data-brand="veil"] .vh-music.on .vm-x{display:none}
@keyframes vhBeat{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.55);opacity:0}}
html[data-brand="veil"] #wallet{margin-left:0}
@media(prefers-reduced-motion:reduce){html[data-brand="veil"] #vhAurora i,html[data-brand="veil"] .vh-music.on::after{animation:none}}
/* foreign coins */
html[data-brand="veil"] .lq-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}html[data-brand="veil"] .lq-tile[data-jump="lq-any"]{order:3}html[data-brand="veil"] .lq-tile[data-jump="lq-sg"]{order:4}
html[data-brand="veil"] .any-pool,html[data-brand="veil"] .any-pos,html[data-brand="veil"] .any-plan,html[data-brand="veil"] .any-stats div{border-color:var(--edge);background:rgba(10,12,16,.55)}html[data-brand="veil"] .any-chip{border-color:var(--frame);background:#11141B}html[data-brand="veil"] .any-chip:hover{border-color:var(--gold)}
html[data-brand="veil"] .any-liq{border-color:rgba(255,106,61,.45);background:linear-gradient(90deg,rgba(255,106,61,.12),rgba(10,12,16,.4))}html[data-brand="veil"] .any-liq .btn.danger{background:linear-gradient(#FF8A5C,#B8401F);border-color:#FFB08A;color:#0A0C10;font-weight:800}
html[data-brand="veil"] .any-venue.v-site{color:var(--gold-txt);border-color:var(--gold3)}html[data-brand="veil"] .any-head b{font-family:var(--display,inherit)}
@media(max-width:900px){html[data-brand="veil"] .lq-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
html[data-brand="veil"] #s-lp>#lq-any{order:2}html[data-brand="veil"] #s-lp>#lq-meteora{order:3}html[data-brand="veil"] #s-lp>#lq-sg{order:4}html[data-brand="veil"] #s-lp>#lq-yield{order:5}html[data-brand="veil"] #s-lp>.lq-close{order:6} /* the Wells first, then foreign coins, then the ladders and the Shieldwall */

html[data-brand="veil"] #s-term .term-wrap{border:1px solid var(--frame);box-shadow:inset 0 0 0 1px rgba(79,224,208,.12)}html[data-brand="veil"] #s-term .term-h h2{margin:0}
html[data-brand="veil"] .yl-ov,html[data-brand="veil"] .yl-card-wrap{border-color:var(--edge);background:rgba(10,12,16,.6)}html[data-brand="veil"] .yl-ov>div,html[data-brand="veil"] .yl-row,html[data-brand="veil"] .yl-proj,html[data-brand="veil"] .yl-proj>div,html[data-brand="veil"] .yl-bk{border-color:var(--edge)}html[data-brand="veil"] .yl-ov b.big,html[data-brand="veil"] .yl-proj b,html[data-brand="veil"] .yl-bk-total b{color:var(--gold-txt)}html[data-brand="veil"] .yl-row.best{border-color:rgba(139,108,246,.45)}html[data-brand="veil"] .yl-row .rank,html[data-brand="veil"] .yl-ov .best b,html[data-brand="veil"] .yl-row .v.up b{color:var(--aurora)}html[data-brand="veil"] .yl-row .rank{background:rgba(139,108,246,.12)}
html[data-brand="veil"] .yl-hero{margin-bottom:22px}html[data-brand="veil"] .yl-title{margin-top:0}
html[data-brand="veil"] .hdr-bal{border-color:var(--frame2);background:#11141B;color:var(--gold-txt)}html[data-brand="veil"] .hdr-bal i{color:var(--mute)}
html[data-brand="veil"] .pick,html[data-brand="veil"] .stepper{border-color:var(--frame2);background:#11141B}html[data-brand="veil"] .pick.on{background:var(--gold);color:#0A0C10;border-color:var(--gold)}html[data-brand="veil"] .pick:hover{border-color:var(--gold)}html[data-brand="veil"] .stepper b,html[data-brand="veil"] .slide-row b{color:var(--gold-txt)}html[data-brand="veil"] .yl-switch input:checked+i{background:var(--gold)}html[data-brand="veil"] input[type=range]#ylAddSlide{background:linear-gradient(90deg,var(--gold) 0,var(--gold) var(--p,0%),rgba(255,255,255,.12) var(--p,0%))}html[data-brand="veil"] input[type=range]#ylAddSlide::-webkit-slider-thumb{border-color:var(--gold)}
html[data-brand="veil"] #nav{display:flex}html[data-brand="veil"] #nav a[data-s="eco"]{order:1}html[data-brand="veil"] #nav a[data-s="term"]{order:2}html[data-brand="veil"] #nav a[data-s="lp"]{order:3}html[data-brand="veil"] #nav a[data-s="yields"]{order:4}html[data-brand="veil"] #nav a[data-s="pulse"]{order:5}html[data-brand="veil"] #nav a[data-s="calls"]{order:6}html[data-brand="veil"] #nav a.nav-dev{order:7} /* owner 10-06: The Hall, Terminal, Liquidity, Yields, Developers; 10-07: Pulse and FNF right before Developers */

/* ================= DESIGN PASS 10-06 (Valhalla) ================= */
html[data-brand="veil"] .nav-group .nav-drop{background:none;border:0;border-radius:6px;padding:8px 12px;color:var(--dim);font:600 14px/1.25 var(--sans);box-shadow:none;transition:color .12s var(--ease),background .12s var(--ease)}html[data-brand="veil"] .nav-group .nav-drop:hover,html[data-brand="veil"] .nav-group.open .nav-drop{transform:none;color:var(--txt);background:rgba(255,255,255,.04);box-shadow:none}html[data-brand="veil"] .nav-group.on .nav-drop{color:var(--gold-txt);background:rgba(79,224,208,.08);box-shadow:inset 0 -2px 0 var(--gold);text-shadow:none}html[data-brand="veil"] .nav-menu{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--frame);box-shadow:0 14px 34px rgba(0,0,0,.6)}html[data-brand="veil"] .nav-menu a small{color:var(--mute);font-size:12px}
/* type scale: 13 captions · 15 body · 17 panel titles · 24/28 numbers · 44 hero */
html[data-brand="veil"] body{line-height:1.5}html[data-brand="veil"] .note{font-size:13px;line-height:1.45}
html[data-brand="veil"] .panel h2{font-size:17px;letter-spacing:.14em;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--edge)}html[data-brand="veil"] .panel h2::after{display:none}
html[data-brand="veil"] .stat span,html[data-brand="veil"] .yl-ov span,html[data-brand="veil"] .any-stats span,html[data-brand="veil"] .ge-th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}html[data-brand="veil"] .stat b{font-size:22px;line-height:1.05;margin-top:4px}
/* rhythm */
html[data-brand="veil"] .panel{padding:16px 18px;margin-bottom:12px}html[data-brand="veil"] .panel .panel{margin-bottom:0}html[data-brand="veil"] .stat{padding:12px 14px}html[data-brand="veil"] .ycard,html[data-brand="veil"] .lq-tiles,html[data-brand="veil"] .poolbox,html[data-brand="veil"] .ge-stats,html[data-brand="veil"] .any-stats,html[data-brand="veil"] .yl-ov{gap:8px}
/* buttons: 38px, one primary per group, a real pressed state */
html[data-brand="veil"] .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:7px 16px;font-size:14px;line-height:1;white-space:nowrap;transition:transform .12s var(--ease),box-shadow .12s var(--ease),filter .12s var(--ease)}html[data-brand="veil"] .btn:hover{filter:brightness(1.06);transform:translateY(-1px)}html[data-brand="veil"] .btn:active{transform:translateY(1px)}html[data-brand="veil"] .btn:disabled{opacity:.45;transform:none;filter:none}html[data-brand="veil"] .btn.sm,html[data-brand="veil"] .lp-max,html[data-brand="veil"] .ge-acts .btn,html[data-brand="veil"] .cg-btns .btn{min-height:32px;padding:4px 12px;font-size:13px}
html[data-brand="veil"] .btn:focus-visible,html[data-brand="veil"] nav a:focus-visible,html[data-brand="veil"] .nav-drop:focus-visible,html[data-brand="veil"] .pick:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* inputs */
html[data-brand="veil"] input:not([type=checkbox]):not([type=radio]):not([type=range]),html[data-brand="veil"] select{min-height:38px;padding:7px 11px;border-radius:8px;border:1px solid var(--frame);background:#0A0C10;color:var(--txt);box-shadow:inset 0 1px 2px rgba(0,0,0,.5)}
/* rows: hover, dividers, tabular numbers */
html[data-brand="veil"] .ge-row:hover,html[data-brand="veil"] .tt-row:hover,html[data-brand="veil"] .yl-row:hover,html[data-brand="veil"] .claim:hover{background:rgba(79,224,208,.05)}html[data-brand="veil"] .ge-row,html[data-brand="veil"] .yl-row,html[data-brand="veil"] .tt-usd,html[data-brand="veil"] .stat b,html[data-brand="veil"] .yl-ov b,html[data-brand="veil"] .any-stats b{font-variant-numeric:tabular-nums}
/* quieter chrome: nested tiles lose their second border and keep a tint */
html[data-brand="veil"] .panel .stat,html[data-brand="veil"] .panel .ycell{border-color:rgba(255,255,255,.06)}
html[data-brand="veil"] #toast{border-radius:10px;padding:10px 18px 10px 40px;font-size:14px;box-shadow:0 14px 34px rgba(0,0,0,.6)}
html[data-brand="veil"] footer{padding:28px 14px 40px}
html[data-brand="veil"] .ldsum-row small{font-size:12px}

/* LAUNCH FORM READABILITY 10-06 (Valhalla) */
html[data-brand="veil"] .lf-mode{color:#C3CAD6}html[data-brand="veil"] .lf-mode>span:first-child{color:var(--txt)}
html[data-brand="veil"] .lf-mode .ge-tabs button:not(.on){color:#C3CAD6}
html[data-brand="veil"] .lf-hint,html[data-brand="veil"] .lf-check i{font-size:14px;line-height:1.5;color:#C3CAD6}html[data-brand="veil"] .lf-hint b{color:var(--txt)}
html[data-brand="veil"] .lf-venues .ge-tabs button small{font-size:13px;line-height:1.45;color:#C3CAD6}
html[data-brand="veil"] .lf-card-where{font-size:13px;color:#C3CAD6;line-height:1.45}

/* PROJECTION + BUNDLE (Valhalla) 10-06 */
html[data-brand="veil"] #ylProjChart{background:var(--ink);border-color:var(--edge)}
html[data-brand="veil"] .yl-ct i{background:rgba(255,255,255,.06)}html[data-brand="veil"] .yl-ct i b{background:var(--bifrost)}html[data-brand="veil"] .yl-ct em{color:var(--grn)}
html[data-brand="veil"] .bb-add{border-color:var(--gold3);background:var(--ink);color:var(--gold-txt)}html[data-brand="veil"] .bb-add.in{background:var(--gold);color:#1A1204}
html[data-brand="veil"] .bb-pill{background:var(--grain),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal;border-color:var(--gold3);border-radius:12px;box-shadow:0 18px 48px rgba(0,0,0,.7),inset 0 1px 0 rgba(79,224,208,.22)}
html[data-brand="veil"] .bb-row{background:var(--ink);border-color:var(--edge)}html[data-brand="veil"] .bb-head b{font:600 14px var(--sans)}
html[data-brand="veil"] .bb-toggle.on{border-color:var(--gold3);color:var(--gold-txt)}

/* HOOKED RULES (Valhalla) 10-06 */
html[data-brand="veil"] .lf-rules{border-color:var(--gold3);background:rgba(10,12,16,.5);border-radius:10px}
html[data-brand="veil"] .rule-tile{background:var(--ink);border-color:var(--edge);border-radius:8px}html[data-brand="veil"] .rule-tile b{font:600 14px var(--sans)}html[data-brand="veil"] .rule-tile small{color:#C3CAD6;font-size:12px}html[data-brand="veil"] .rule-tile.on{border-color:var(--gold3);background:rgba(79,224,208,.1);box-shadow:inset 3px 0 0 var(--gold)}html[data-brand="veil"] .rule-tile em{color:var(--gold-txt)}
html[data-brand="veil"] .rule-form{background:var(--ink);border-color:var(--edge)}html[data-brand="veil"] .rule-form-h b{font:700 15px var(--sans)}html[data-brand="veil"] .rule-form-h small{color:#C3CAD6}
html[data-brand="veil"] .rule-p-h b{color:var(--gold-txt)}html[data-brand="veil"] .rule-slide input[type=range]::-webkit-slider-thumb{border-color:var(--gold)}
html[data-brand="veil"] .rule-sum{border-left-color:var(--gold);background:rgba(79,224,208,.06)}html[data-brand="veil"] .rule-sum b{color:var(--gold-txt)}
html[data-brand="veil"] .ge-rule{border-color:var(--gold3);background:rgba(79,224,208,.05);border-radius:10px}html[data-brand="veil"] .ge-rule small a{color:var(--gold-txt)}
html[data-brand="veil"] .ge-rule-tag{border-color:var(--gold3);color:var(--gold-txt);font:600 10px var(--sans);letter-spacing:.08em}
html[data-brand="veil"] .lf-card-tags i.rule{border-color:var(--gold3);color:var(--gold-txt)}

/* round two (Valhalla) */
html[data-brand="veil"] .sw-limit{background:var(--ink);border-color:var(--edge)}html[data-brand="veil"] .sw-limit .sw-lhead b{color:var(--gold-txt)}html[data-brand="veil"] .sw-orders div{background:var(--panel2);border-color:var(--edge)}
html[data-brand="veil"] .rpc-banner{background:#2a1a10;color:#ffcf9e;border-color:#5a3418}
/* the three-step header never wraps a step's name on a phone */
html[data-brand="veil"] .lf-stepper button{white-space:nowrap}@media(max-width:700px){html[data-brand="veil"] .lf-stepper button{font-size:12px;padding:6px 6px;gap:5px}html[data-brand="veil"] .lf-stepper button b{width:18px;height:18px;font-size:11px}}

/* TRENCHER FEATURES (Valhalla) 10-06 */
html[data-brand="veil"] .q-up{border-color:var(--gold3);background:var(--grain),linear-gradient(180deg,rgba(79,224,208,.08),var(--panel2));background-blend-mode:overlay,normal;border-radius:12px}
html[data-brand="veil"] .q-h b{font:700 15px var(--sans);color:var(--gold-txt);letter-spacing:.06em;text-transform:uppercase}
html[data-brand="veil"] .q-card,html[data-brand="veil"] .tc-box,html[data-brand="veil"] .ex-sheet,html[data-brand="veil"] .cq-q{background:var(--ink);border-color:var(--edge)}
html[data-brand="veil"] .fl-btn{border-color:var(--gold3);color:var(--gold-txt)}html[data-brand="veil"] .fl-btn.on{background:var(--gold);color:#1A1204}
html[data-brand="veil"] .tc-h{color:var(--gold-txt)}html[data-brand="veil"] .tc-big b,html[data-brand="veil"] .q-s b,html[data-brand="veil"] .tc-box a{color:var(--gold-txt)}
html[data-brand="veil"] .fl-toast{background:var(--panel);border-color:var(--gold3)}html[data-brand="veil"] .cq-q.done{border-color:var(--gold3)}
html[data-brand="veil"] .lf-crew textarea{background:var(--ink);border-color:var(--edge);border-radius:8px}

html[data-brand="veil"] .yl-style{border-color:var(--edge)}html[data-brand="veil"] .yl-style.on{border-color:#E8B04B;box-shadow:0 0 0 1px #E8B04B,0 4px 14px rgba(79,224,208,.2)}html[data-brand="veil"] .yl-style.on span{color:#E8B04B}


/* growth features + KOL marks on the Valhalla door (10-07) */
html[data-brand="veil"] .gw-appchip{background:linear-gradient(180deg,#151a24,#0b0d12);border-color:var(--gold3)}
html[data-brand="veil"] .gw-box{background:linear-gradient(180deg,rgba(79,224,208,.05),rgba(0,0,0,.35));border-color:var(--gold3)}
html[data-brand="veil"] .gw-comp:not([hidden]){border-color:var(--gold2)}
html[data-brand="veil"] .lf-pre{border-color:rgba(79,224,208,.3);background:linear-gradient(180deg,rgba(79,224,208,.06),rgba(0,0,0,.3))}
html[data-brand="veil"] .lf-pre.on,html[data-brand="veil"] .lf-pre:hover{border-color:var(--gold2)}
html[data-brand="veil"] .km-strip{background:linear-gradient(180deg,#121620,#0b0d12);border-color:var(--gold3)}

/* Valhalla: Pulse, FNF, Glory and the coin search on the slate panels (they wore Santa's brown) */
html[data-brand="veil"] .pulse-col,html[data-brand="veil"] .pc,html[data-brand="veil"] .cs-tile,html[data-brand="veil"] .fp-hero,html[data-brand="veil"] .ft-card,html[data-brand="veil"] .calls-join,html[data-brand="veil"] .pts-you,html[data-brand="veil"] .pts-board,html[data-brand="veil"] .any-sugg{background:linear-gradient(180deg,#151a24,#0f1218);border-color:var(--gold3)}
html[data-brand="veil"] .pc:hover,html[data-brand="veil"] .ft-card:hover{border-color:var(--gold2)}
html[data-brand="veil"] .fnf-h,html[data-brand="veil"] .py-num{font-family:var(--disp,'Cinzel',sans-serif);letter-spacing:.06em}
html[data-brand="veil"] .stat span,html[data-brand="veil"] .ge-th{color:var(--dim)}
/* hooked-rule holder actions (app.js renderMine) on this door */
html[data-brand="veil"] .hm-row b,html[data-brand="veil"] .pnl-hk-row b{color:var(--gold-txt)}html[data-brand="veil"] .hm-amt input,html[data-brand="veil"] .hm-dn input{background:var(--ink);border-color:var(--line,rgba(200,168,96,.35))}html[data-brand="veil"] .hm-form{border-color:var(--line,rgba(200,168,96,.2))}
/* nav on the page's true centre (owner 10-15, as on Santa): the header holds four things (logo, nav, music, wallet), so the nav is
   centred on the header itself, from 1000 px. fx.js navFit() adds .nav-tight when the centred nav would touch the logo, the music or
   a wide connected wallet, and the header falls back to its normal flow */
@media(min-width:1000px){
  html[data-brand="veil"] header:not(.nav-tight)>nav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
  html[data-brand="veil"] header:not(.nav-tight)>#vhMusic{margin-left:auto}
}
/* ---- $VAL, the official token (owner 10-16): one band under the Hall's command band and at the top of FNF, filled by app.js renderValBand */
html[data-brand="veil"] .vh-val{display:block;margin:0 0 12px;padding:12px 16px;border:1px solid rgba(79,224,208,.45);border-radius:10px;position:relative;overflow:hidden;background:var(--grain),radial-gradient(120% 140% at 0% 50%,rgba(79,224,208,.18),transparent 55%),linear-gradient(180deg,var(--panel),var(--panel2));background-blend-mode:overlay,normal,normal;box-shadow:0 0 0 1px rgba(79,224,208,.12),0 12px 40px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,236,170,.14)}
html[data-brand="veil"] .vh-val[hidden]{display:none}
html[data-brand="veil"] .vh-val::before{content:'';position:absolute;inset:-40% auto auto -10%;width:50%;height:180%;background:linear-gradient(100deg,transparent 40%,rgba(255,236,170,.08) 50%,transparent 60%);pointer-events:none;animation:vvSheen 7s ease-in-out infinite}
@keyframes vvSheen{0%,100%{transform:translateX(-30%)}50%{transform:translateX(220%)}}
html[data-brand="veil"] .vv-top{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"id px stats acts";align-items:center;gap:12px 20px}html[data-brand="veil"] .vv-id{grid-area:id;display:flex;align-items:center;gap:12px;min-width:0}html[data-brand="veil"] .vv-id .vh-eyebrow{margin-bottom:4px;font-size:10px;letter-spacing:.18em}
html[data-brand="veil"] .vv-ic{width:44px;height:44px;border-radius:50%;border:2px solid var(--gold);box-shadow:0 0 18px rgba(79,224,208,.45);object-fit:cover;background:#000;flex:none}
html[data-brand="veil"] .vv-sym{display:block;font:900 clamp(26px,3.4vw,36px)/1 var(--disp);font-stretch:125%;letter-spacing:.04em;background:linear-gradient(180deg,var(--gold1) 0%,#ffd06a 40%,var(--gold2) 65%,var(--gold3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000)}
html[data-brand="veil"] .vv-name{display:block;font:600 11px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
html[data-brand="veil"] .vv-px{grid-area:px;text-align:right}html[data-brand="veil"] .vv-px>b{display:block;font-size:20px;color:var(--gold-txt)}html[data-brand="veil"] .vv-px small b{display:inline;font-size:inherit;font-weight:700}html[data-brand="veil"] .vv-px small{font-size:12px;color:var(--dim)}html[data-brand="veil"] .vv-px small.up{color:#3df06a}html[data-brand="veil"] .vv-px small.dn{color:#ff6b6b}html[data-brand="veil"] .vv-stats{grid-area:stats;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}html[data-brand="veil"] .vv-stats .vh-stat{padding:6px 10px}html[data-brand="veil"] .vv-stats .vh-stat b{font-size:17px}html[data-brand="veil"] .vv-stats .vh-stat small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-brand="veil"] .vv-sub{margin:8px 0 0;color:var(--dim);font-size:13px}html[data-brand="veil"] .vv-sub b{color:var(--gold-txt)}
html[data-brand="veil"] .vv-acts{grid-area:acts;display:flex;gap:8px;flex-wrap:nowrap}
html[data-brand="veil"] .vv-buy{min-height:40px;padding:0 18px;font-size:15px;font-weight:800;background:linear-gradient(180deg,var(--gold1),var(--gold2) 60%,var(--gold3));color:#1a1206;border:0;box-shadow:0 0 22px rgba(79,224,208,.4),inset 0 1px 0 rgba(255,255,255,.5);animation:vvPulse 2.6s ease-in-out infinite}
@keyframes vvPulse{0%,100%{box-shadow:0 0 18px rgba(79,224,208,.35),inset 0 1px 0 rgba(255,255,255,.5)}50%{box-shadow:0 0 34px rgba(79,224,208,.7),inset 0 1px 0 rgba(255,255,255,.5)}}
html[data-brand="veil"] .vv-stats .vv-burn b{color:#ff9a3c}
html[data-brand="veil"] .fnf-val{margin-top:10px}
@media(max-width:1279px){html[data-brand="veil"] .vv-top{grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"id px acts" "stats stats stats"}html[data-brand="veil"] .vv-acts{justify-content:flex-end}}
@media(max-width:760px){html[data-brand="veil"] .vv-stats .vh-stat{padding:6px 8px}html[data-brand="veil"] .vv-stats .vh-stat>span{font-size:10px}html[data-brand="veil"] .vv-stats .vh-stat>b{font-size:16px}html[data-brand="veil"] .vv-stats .vh-stat>small{display:none}html[data-brand="veil"] .vh-val{padding:12px}html[data-brand="veil"] .vv-top{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"id px" "stats stats" "acts acts";gap:10px}html[data-brand="veil"] .vv-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}html[data-brand="veil"] .vv-acts{display:grid;grid-template-columns:1.3fr 1fr 1fr}html[data-brand="veil"] .vv-acts .btn{min-height:44px;padding:0 8px}html[data-brand="veil"] .vv-sym{font-size:24px}}
@media(prefers-reduced-motion:reduce){html[data-brand="veil"] .vh-val::before,html[data-brand="veil"] .vv-buy{animation:none}}
html[data-brand="veil"] #nav a[data-s="perps"]{order:5} /* after Pulse (same order, later in the page) */

/* ---- phones and in-app wallet browsers (owner 10-23): see style.css's matching block */
@media (pointer:coarse){html[data-brand="veil"] input,html[data-brand="veil"] select,html[data-brand="veil"] textarea{font-size:max(16px,1em)!important}}

/* ---- design v2 (owner 10-24): the phone tab bar and its sheets in iron; the header menu a single column (one group here) */
html[data-brand="veil"] header{flex-wrap:wrap}html[data-brand="veil"] #nav{flex-wrap:wrap;margin-left:auto}html[data-brand="veil"] #nav>a{white-space:nowrap} /* the flow this header had before v2 moved the shared header rules (fx.js navFit still centres it when it fits) */
html[data-brand="veil"] .nav-menu{left:0;transform:none;grid-template-columns:1fr;min-width:280px}
html[data-brand="veil"] .tabbar{background:linear-gradient(180deg,rgba(16,19,26,.97),rgba(8,10,14,.985));border-top-color:rgba(79,224,208,.28)}
html[data-brand="veil"] .tabbar button{color:var(--dim);font:600 11px/1.1 var(--sans)}
html[data-brand="veil"] .sw-seg button{min-height:24px;padding:0 7px;border:0;border-radius:5px;background:transparent;color:var(--dim);font:600 12px/1 var(--sans)}html[data-brand="veil"] .sw-seg button.on{background:rgba(79,224,208,.12);color:var(--gold-txt)}
html[data-brand="veil"] input.sw-amt,html[data-brand="veil"] input.sw-amt:focus{min-height:40px;padding:0;border:0!important;background:transparent;box-shadow:none;outline:none;font-size:24px}html[data-brand="veil"] .sw-amt{font-size:24px;line-height:40px}html[data-brand="veil"] .sw-box{padding:6px 10px}html[data-brand="veil"] .tabbar button.on,html[data-brand="veil"] .tabbar button[aria-expanded=true]{color:var(--gold-txt)}
html[data-brand="veil"] .tb-sheet{background:linear-gradient(180deg,rgba(20,23,30,.99),rgba(10,12,16,.99));border-color:var(--frame2)}html[data-brand="veil"] .tb-sheet a.on{background:rgba(79,224,208,.1)}
html[data-brand="veil"] .tb-sheet a[data-s="eco"]::before{background-image:url('assets/icons/shield.png')}html[data-brand="veil"] .tb-sheet a[data-s="lp"]::before{background-image:url('assets/icons/rewards.png')}html[data-brand="veil"] .tb-sheet a[data-s="yields"]::before{background-image:url('assets/icons/crown.png')}html[data-brand="veil"] .tb-sheet a[data-s="term"]::before{background-image:url('assets/icons/pulse.png')}html[data-brand="veil"] .tb-sheet a[data-s="perps"]::before{background-image:url('assets/icons/rocket.png')}html[data-brand="veil"] .tb-sheet a.nav-dev::before{background-image:url('assets/icons/chat.png')}
@media (max-width:760px){
  html[data-brand="veil"] header{position:sticky;min-height:var(--header-h);padding:max(4px,env(safe-area-inset-top)) 12px 4px;gap:8px}
  html[data-brand="veil"] header>#nav{display:none}html[data-brand="veil"] header>#vhMusic{margin-left:auto}
  html[data-brand="veil"] #s-eco #ecoLaunch{display:none} /* Forge lives in the tab bar */
}

/* ---- design v2, the door's pages (owner 10-24: "much cleaner and AAA+", "optimize real estate"): the same structure as Santa, this door's iron and gold.
   Header: one row on every desktop width (it wrapped to two at ~1024px); the wordmark yields to the nav first, the mark stays the home link */
@media (min-width:761px){html[data-brand="veil"] header{flex-wrap:nowrap}html[data-brand="veil"] #nav{flex-wrap:nowrap;min-width:0}}
@media (min-width:761px) and (max-width:1279px){html[data-brand="veil"] #nav>a,html[data-brand="veil"] #nav .nav-drop{padding:8px 8px;font-size:13px}html[data-brand="veil"] header .brand{font-size:17px}}
@media (min-width:761px) and (max-width:1279px){html[data-brand="veil"] header .hdr-bal{display:none}html[data-brand="veil"] .me-btn span{max-width:90px}} /* signed in: the balances chip and a long name leave the nav its room (as on Santa) */
@media (min-width:761px) and (max-width:1023px){html[data-brand="veil"] header .brand{display:none}html[data-brand="veil"] #nav>a,html[data-brand="veil"] #nav .nav-drop{padding:8px 6px}html[data-brand="veil"] .btn.me-btn{padding:0 6px}html[data-brand="veil"] .me-btn span{display:none}}
@media (min-width:761px) and (max-width:859px){html[data-brand="veil"] header{gap:8px;padding:0 12px}html[data-brand="veil"] #nav>a,html[data-brand="veil"] #nav .nav-drop{padding:8px 4px;font-size:12.5px}}
/* the High Seat strip on a phone: the name shortens, the time and Trade never leave the screen */
@media (max-width:640px){html[data-brand="veil"] .king-bar b{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}}
/* the Hall's command band: the four figures as compact tiles (label over value + note), ~150px instead of ~210 */
html[data-brand="veil"] .vh-hero{padding:14px 20px;gap:12px 20px;min-height:0}
html[data-brand="veil"] .vh-title{font-size:clamp(28px,3.4vw,40px);margin-bottom:4px}html[data-brand="veil"] .vh-eyebrow{margin-bottom:6px}html[data-brand="veil"] .vh-sub{margin-bottom:10px;font-size:14px}
html[data-brand="veil"] .vh-hero .vh-stat{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"k k" "v s";align-items:baseline;column-gap:8px;padding:8px 12px}
html[data-brand="veil"] .vh-hero .vh-stat>span{grid-area:k;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html[data-brand="veil"] .vh-hero .vh-stat>b{grid-area:v;font-size:20px}html[data-brand="veil"] .vh-hero .vh-stat>small{grid-area:s;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-brand="veil"] .vv-sym{font-size:clamp(22px,2.2vw,28px)}
@media (max-width:760px){html[data-brand="veil"] .vh-hero .vh-stat{display:flex;flex-direction:column;gap:1px}html[data-brand="veil"] .vh-hero .vh-stat>span{white-space:normal}html[data-brand="veil"] .vh-hero{padding:14px 12px}html[data-brand="veil"] .vh-title{font-size:26px}html[data-brand="veil"] .vh-sub{font-size:13px;margin-bottom:10px}html[data-brand="veil"] .vh-cta .btn{min-height:44px}html[data-brand="veil"] .vh-hero .vh-stat>b{font-size:17px}}
/* perps, pulse and the terminal: this door's panels pad and space like the rest of v2 (the iron panel's own 16/18 padding and 12 bottom margin doubled the grid gap) */
html[data-brand="veil"] .pp-root .panel{margin:0;padding:12px}html[data-brand="veil"] .pp-root .pp-head{padding:12px 16px}html[data-brand="veil"] .pp-root .pp-chart,html[data-brand="veil"] .pp-root .pp-book{padding:10px 12px} /* clear of the panel's corner brackets */
html[data-brand="veil"] .pp-pick b,html[data-brand="veil"] .sp-title b{font-family:var(--sans)}html[data-brand="veil"] .pp-dock{background:linear-gradient(180deg,rgba(16,19,26,.95),rgba(8,10,14,.985));border-top-color:rgba(79,224,208,.28)}
html[data-brand="veil"] #s-pulse .pulse-col{background:linear-gradient(180deg,var(--panel),var(--panel2));border-color:var(--frame)}html[data-brand="veil"] #s-pulse .pulse-col h3{background:var(--panel)}html[data-brand="veil"] .pfx-tape{background:var(--panel2);border-color:var(--frame)}
@media (max-width:760px){html[data-brand="veil"] .pp-root .panel{padding:8px 12px}html[data-brand="veil"] #s-term .term-panel{padding:8px}}
/* the Hall's board head carries the mark (brand.mjs adds it before the title): mark · title · actions on one row, the actions on their own row
   when the board narrows. As three children of the two-track head the mark took the title's track and the title sat far right (10-24 sweep) */
html[data-brand="veil"] #ecoBoard .ge-boardhead>img{grid-row:1;align-self:center}
@media (min-width:761px){html[data-brand="veil"] #ecoBoard .ge-boardhead{grid-template-columns:auto minmax(0,1fr) max-content;column-gap:12px}
  @container geboard (max-width:980px){html[data-brand="veil"] #ecoBoard .ge-boardhead{grid-template-columns:auto minmax(0,1fr)}html[data-brand="veil"] #ecoBoard .ge-boardhead .ge-acts{grid-column:1/-1}}}
@media (max-width:760px){html[data-brand="veil"] #ecoBoard .ge-boardhead{grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:center}html[data-brand="veil"] #ecoBoard .ge-boardhead .ge-acts{grid-column:1/-1}}
/* Yggdrasil in the side rail (two 156px tiles): the sub line reads in sentence case and the label tracks tighter, so "42 COINS · 23 / CHOSEN" and
   "BURNED IN / THE BRAZIER" are one line each (10-24 sweep) */
html[data-brand="veil"] #vhTreeGrid .stat span:first-child{letter-spacing:.04em;white-space:nowrap}html[data-brand="veil"] #vhTreeGrid .stat span:last-child:not(:first-child){text-transform:none;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* a pool's figures strip: this door's 18px figures need wider cells than Santa's 15px ones, or "489,370,2…" and "0.0226 SA…" were cut at 1024 (10-24 sweep) */
@media (min-width:901px){html[data-brand="veil"] .poolbox{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
@media (max-width:560px){html[data-brand="veil"] .cup-name b{font-size:15px;letter-spacing:.02em}} /* "VALHALLA CUP #1" + LIVE ran 5px past a 375px phone's bar and cut the chip (10-24 sweep) */
@media (max-width:560px){html[data-brand="veil"] .vv-id .vh-eyebrow{letter-spacing:.06em;white-space:nowrap}} /* "OFFICIAL FNF / TOKEN" broke beside the price on a phone (10-24 sweep) */

/* =====================================================================================================================================
   VEILBOUND LAUNCHPAD — the home and the GameFi page (bespoke; everything above is the shared launchpad system re-cut for Veilbound)
   Composition after santahat.gold/gamefi: a full-bleed cinematic hero with carved capitals and gold CTAs, a stats strip, "Live in the
   arena", then the board. Palette: void #05070A, bone #E9E4D8, veilglass teal #4FE0D0, spectral violet #8B6CF6, ember gold #E8B04B.
   ===================================================================================================================================== */
html[data-brand="veil"] body{background:var(--bg) url('assets/veil/bg.webp') center top/cover fixed no-repeat}
html[data-brand="veil"] body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(1200px 600px at 75% -10%,rgba(139,108,246,.16),transparent 60%),radial-gradient(900px 500px at 10% 0%,rgba(79,224,208,.08),transparent 60%),linear-gradient(180deg,rgba(5,7,10,.55),rgba(5,7,10,.92) 40%,var(--bg))}
/* header: the sigil and the ticker in carved capitals */
html[data-brand="veil"] header .home img{width:34px;height:34px;border-radius:50%;box-shadow:0 0 0 1px rgba(79,224,208,.35),0 0 18px rgba(79,224,208,.25)}
html[data-brand="veil"] header .home .brand{font-family:var(--disp);font-weight:900;letter-spacing:.06em;color:var(--bone);text-shadow:0 0 18px rgba(79,224,208,.25)}
html[data-brand="veil"] header .home .brand-sub{font-family:var(--disp);font-weight:700;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--frost);margin-left:8px;opacity:.85}
@media (max-width:720px){html[data-brand="veil"] header .home .brand-sub{display:none}}
html[data-brand="veil"] footer .ft-mark{display:inline-flex;align-items:center;gap:6px;font-family:var(--disp);font-weight:700;letter-spacing:.06em;color:var(--bone);margin-right:6px}
html[data-brand="veil"] footer .ft-mark img{border-radius:50%}

/* ---- the home */
html[data-brand="veil"] .vx-home{--vx-line:rgba(79,224,208,.22);--vx-gold:#F4CC7A;margin:calc(-1 * var(--sp-3)) calc(-1 * var(--sp-4)) var(--sp-5);color:var(--txt)}
@media (max-width:700px){html[data-brand="veil"] .vx-home{margin:-10px -10px var(--sp-4)}}
html[data-brand="veil"] .vx-hero{position:relative;min-height:clamp(520px,74vh,720px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--vx-line)}
html[data-brand="veil"] .vx-hero picture{position:absolute;inset:0;z-index:-3;display:block}
html[data-brand="veil"] .vx-hero-art{width:100%;height:100%;object-fit:cover;object-position:68% 38%;display:block;transform:scale(1.04);animation:vxDrift 30s ease-in-out infinite alternate}
@keyframes vxDrift{to{transform:scale(1.1) translate(-1.5%,-1%)}}
html[data-brand="veil"] .vx-hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(5,7,10,.96) 0%,rgba(5,7,10,.82) 30%,rgba(5,7,10,.25) 62%,rgba(5,7,10,.08) 100%),linear-gradient(0deg,rgba(5,7,10,1) 0%,rgba(5,7,10,.35) 38%,transparent 68%)}
/* the veil itself: a slow teal/violet tear drifting across the art */
html[data-brand="veil"] .vx-veil{position:absolute;inset:-20% -10%;z-index:-1;pointer-events:none;mix-blend-mode:screen;opacity:.55;background:radial-gradient(40% 30% at 70% 30%,rgba(79,224,208,.22),transparent 70%),radial-gradient(35% 28% at 30% 20%,rgba(139,108,246,.22),transparent 70%);animation:vxVeil 18s ease-in-out infinite alternate}
@keyframes vxVeil{to{transform:translate(4%,3%) scale(1.08);opacity:.75}}
html[data-brand="veil"] .vx-hero-in{position:relative;width:min(1240px,100%);margin:0 auto;padding:clamp(28px,5vh,56px) clamp(16px,4vw,56px) clamp(28px,5vh,48px)}
html[data-brand="veil"] .vx-logo{display:block;width:clamp(240px,30vw,460px);height:auto;margin:0 0 10px -6px;mix-blend-mode:screen;filter:drop-shadow(0 0 22px rgba(79,224,208,.18))}
html[data-brand="veil"] .vx-kicker{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--frost);padding:6px 12px;border:1px solid var(--vx-line);border-radius:999px;background:rgba(5,7,10,.55);backdrop-filter:blur(6px)}
html[data-brand="veil"] .vx-live,html[data-brand="veil"] .gfx-live{width:9px;height:9px;border-radius:50%;background:var(--frost);box-shadow:0 0 0 0 rgba(79,224,208,.7);animation:vxPulse 1.8s infinite;display:inline-block;flex:none}
@keyframes vxPulse{70%{box-shadow:0 0 0 10px rgba(79,224,208,0)}100%{box-shadow:0 0 0 0 rgba(79,224,208,0)}}
html[data-brand="veil"] .vx-title,html[data-brand="veil"] .gfx-title{font-family:var(--disp);font-weight:900;font-size:clamp(34px,5vw,72px);line-height:1.02;margin:14px 0 12px;color:var(--bone);letter-spacing:.01em;text-transform:uppercase;text-shadow:0 3px 0 #000,0 0 44px rgba(0,0,0,.7);max-width:15ch}
html[data-brand="veil"] .vx-title em,html[data-brand="veil"] .gfx-title em{font-style:normal;display:inline-block;background:linear-gradient(180deg,#B6FFF6 0%,#4FE0D0 45%,#2BA79B 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 22px rgba(79,224,208,.45))}
html[data-brand="veil"] .vx-lead,html[data-brand="veil"] .gfx-lead{font-size:clamp(15px,1.25vw,18px);line-height:1.5;max-width:58ch;color:#D6D2C6;margin:0 0 var(--sp-4);text-shadow:0 1px 0 #000}
html[data-brand="veil"] .vx-ctas,html[data-brand="veil"] .gfx-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
html[data-brand="veil"] .vx-btn,html[data-brand="veil"] .gfx-btn{appearance:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:10px;font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s,background .18s}
html[data-brand="veil"] .vx-btn-main,html[data-brand="veil"] .gfx-btn-main{position:relative;overflow:hidden;color:#170F02;border:1px solid #FFE2A0;background:linear-gradient(180deg,#FFE7A8 0%,#E8B04B 52%,#B97A18 100%);box-shadow:0 10px 30px rgba(232,176,75,.32),inset 0 1px 0 rgba(255,255,255,.65)}
html[data-brand="veil"] .vx-btn-main::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);animation:gfxShine 3.8s ease-in-out infinite}
html[data-brand="veil"] .vx-btn-main:hover,html[data-brand="veil"] .gfx-btn-main:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(232,176,75,.48),inset 0 1px 0 rgba(255,255,255,.65)}
html[data-brand="veil"] .vx-btn-ghost,html[data-brand="veil"] .gfx-btn-ghost{color:var(--bone);border:1px solid var(--vx-line,rgba(79,224,208,.22));background:rgba(5,7,10,.55);backdrop-filter:blur(6px)}
html[data-brand="veil"] .vx-btn-ghost:hover,html[data-brand="veil"] .gfx-btn-ghost:hover{border-color:var(--frost);background:rgba(16,40,44,.55);color:#fff}
html[data-brand="veil"] .vx-btn:focus-visible,html[data-brand="veil"] .gfx-btn:focus-visible{outline:2px solid var(--frost);outline-offset:3px}
html[data-brand="veil"] .vx-btn.vx-sm{min-height:36px;padding:0 14px;font-size:12px}
html[data-brand="veil"] .vx-scroll{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);width:26px;height:42px;border:2px solid rgba(233,228,216,.45);border-radius:16px;display:none}
html[data-brand="veil"] .vx-scroll span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--frost);animation:gfxWheel 1.8s ease-in-out infinite}
@media (min-height:760px) and (min-width:900px){html[data-brand="veil"] .vx-scroll{display:block}}
/* the stats strip: four carved figures on glass, straddling the hero's edge */
html[data-brand="veil"] .vx-stats{position:relative;z-index:2;width:min(1240px,calc(100% - 2 * clamp(16px,4vw,56px)));margin:-38px auto 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--vx-line);border-radius:14px;overflow:hidden;background:var(--vx-line);box-shadow:0 18px 50px rgba(0,0,0,.55)}
html[data-brand="veil"] .vx-stats .vh-stat{background:linear-gradient(180deg,rgba(16,19,27,.94),rgba(8,10,15,.96));backdrop-filter:blur(10px);padding:14px 18px;display:flex;flex-direction:column;gap:3px;min-width:0;border:0;border-radius:0}
html[data-brand="veil"] .vx-stats .vh-stat span{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
html[data-brand="veil"] .vx-stats .vh-stat b{font-family:var(--disp);font-weight:700;font-size:clamp(20px,2vw,30px);color:var(--vx-gold);font-variant-numeric:tabular-nums;line-height:1.1;text-shadow:0 0 20px rgba(232,176,75,.18)}
html[data-brand="veil"] .vx-stats .vh-stat small{font-size:12px;color:#8F98AB;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-brand="veil"] .vx-stats .l-short{display:none}
@media (max-width:760px){html[data-brand="veil"] .vx-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:-26px}html[data-brand="veil"] .vx-stats .l-long{display:none}html[data-brand="veil"] .vx-stats .l-short{display:inline}html[data-brand="veil"] .vx-stats .vh-stat{padding:11px 13px}}
/* "Live in the arena" */
html[data-brand="veil"] .vx-sec{width:min(1240px,calc(100% - 2 * clamp(16px,4vw,56px)));margin:clamp(26px,3.5vw,40px) auto 0;scroll-margin-top:80px}
html[data-brand="veil"] .vx-sech{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:14px}
html[data-brand="veil"] .vx-sech h2,html[data-brand="veil"] .gfx-sech h2{font-family:var(--disp);font-weight:700;font-size:clamp(20px,2vw,28px);margin:0;color:var(--bone);letter-spacing:.04em;text-transform:uppercase;text-shadow:0 2px 0 #000}
html[data-brand="veil"] .vx-count,html[data-brand="veil"] .gfx-count{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#B6FFF6;padding:4px 12px;border:1px solid rgba(79,224,208,.35);border-radius:999px;background:rgba(10,40,40,.35)}
html[data-brand="veil"] .vx-more{margin-left:auto;font-size:13px;font-weight:600;color:var(--frost);text-decoration:none}html[data-brand="veil"] .vx-more:hover{color:#fff}
html[data-brand="veil"] .vx-arena{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:980px){html[data-brand="veil"] .vx-arena{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){html[data-brand="veil"] .vx-arena{grid-template-columns:1fr}}
html[data-brand="veil"] .vx-card{position:relative;display:flex;flex-direction:column;min-height:230px;border-radius:14px;overflow:hidden;border:1px solid var(--vx-line);background:#0B0E14;isolation:isolate;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}
html[data-brand="veil"] .vx-card:hover{transform:translateY(-3px);border-color:rgba(79,224,208,.55);box-shadow:0 18px 44px rgba(0,0,0,.5),0 0 30px rgba(79,224,208,.12)}
html[data-brand="veil"] .vx-card-art{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;transition:transform .7s var(--ease)}
html[data-brand="veil"] .vx-card:hover .vx-card-art{transform:scale(1.05)}
html[data-brand="veil"] .vx-card::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(5,7,10,.97) 8%,rgba(5,7,10,.55) 52%,rgba(5,7,10,.1) 100%)}
html[data-brand="veil"] .vx-card-in{margin-top:auto;padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px}
html[data-brand="veil"] .vx-card h3{margin:0;display:flex;align-items:center;gap:8px;font-family:var(--disp);font-weight:700;font-size:20px;color:var(--bone);letter-spacing:.02em}
html[data-brand="veil"] .vx-card h3 img{border-radius:50%}
html[data-brand="veil"] .vx-card p{margin:0;font-size:14px;line-height:1.45;color:#C8C4B8}
html[data-brand="veil"] .vx-card-coin b{color:var(--vx-gold);font-family:var(--mono)}
html[data-brand="veil"] .vx-card-acts{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
html[data-brand="veil"] .vx-tag{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--frost);padding:4px 9px;border:1px solid rgba(79,224,208,.35);border-radius:6px;background:rgba(5,7,10,.6)}
html[data-brand="veil"] .vx-tag-hot{color:#170F02;border-color:#FFE2A0;background:linear-gradient(180deg,#FFE7A8,#E8B04B)}
html[data-brand="veil"] .vx-open{grid-column:span 1;border-color:rgba(232,176,75,.55);box-shadow:0 0 0 1px rgba(0,0,0,.6),0 0 34px rgba(232,176,75,.12);animation:vxGlow 5s ease-in-out infinite}
@keyframes vxGlow{50%{box-shadow:0 0 0 1px rgba(0,0,0,.6),0 0 46px rgba(232,176,75,.22)}}
/* the board follows the home: a little air, the section title carved */
html[data-brand="veil"] .ge-boardhead b{font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase}

/* ---- the GameFi page, re-coloured (its layout is style.css's) */
html[data-brand="veil"] #s-gamefi.on{--gfx-gold:#F4CC7A;--gfx-gold2:#E8B04B;--gfx-ink:#05070A;--gfx-line:rgba(79,224,208,.24)}
html[data-brand="veil"] .gfx-hero-shade{background:linear-gradient(90deg,rgba(5,7,10,.95) 0%,rgba(5,7,10,.8) 34%,rgba(5,7,10,.2) 66%,rgba(5,7,10,.05) 100%),linear-gradient(0deg,rgba(5,7,10,.98) 0%,rgba(5,7,10,.2) 42%,transparent 70%)}
html[data-brand="veil"] .gfx-kicker{color:var(--frost);background:rgba(5,7,10,.55)}
html[data-brand="veil"] .gfx-stat{background:rgba(8,10,15,.78)}html[data-brand="veil"] .gfx-stat b{color:var(--gfx-gold)}html[data-brand="veil"] .gfx-stat span,html[data-brand="veil"] .gfx-proof>small,html[data-brand="veil"] .gfx-sech p{color:#9AA2B4}
html[data-brand="veil"] .gfx-open{border-color:rgba(232,176,75,.55);background:#0B0E14}html[data-brand="veil"] .gfx-open h3{color:var(--bone)}html[data-brand="veil"] .gfx-open p{color:#C8C4B8}
html[data-brand="veil"] .gfx-ribbon{color:#170F02;background:linear-gradient(180deg,#FFE7A8,#E8B04B)}
html[data-brand="veil"] .gfx-g{background:#0B0E14}html[data-brand="veil"] .gfx-steps i{background:linear-gradient(180deg,#B6FFF6,#4FE0D0);color:#05201D}
html[data-brand="veil"] .gfx-final{border-color:var(--gfx-line)}
@media (prefers-reduced-motion:reduce){html[data-brand="veil"] .vx-hero-art,html[data-brand="veil"] .vx-veil,html[data-brand="veil"] .vx-btn-main::after,html[data-brand="veil"] .vx-open,html[data-brand="veil"] .vx-live{animation:none}}
/* header (Veilbound): sigil + ticker left, the nav after it, the wallet right; one 64px row on desktop, the phone tab bar below 761px */
@media (min-width:761px){
  html[data-brand="veil"] header{display:flex;align-items:center;flex-wrap:nowrap;gap:18px;min-height:64px;padding:0 clamp(14px,2vw,28px)}
  html[data-brand="veil"] header>#nav{position:static;display:flex;align-items:center;gap:2px;flex-wrap:nowrap;margin:0 auto 0 8px;transform:none;min-width:0}
  html[data-brand="veil"] header>#nav>a,html[data-brand="veil"] header>#nav .nav-drop{font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:10px 12px;border-radius:8px;background:none;box-shadow:none}
  html[data-brand="veil"] header>#nav>a:hover,html[data-brand="veil"] header>#nav .nav-drop:hover{color:var(--bone);background:rgba(255,255,255,.04)}
  html[data-brand="veil"] header>#nav>a.on,html[data-brand="veil"] header>#nav .nav-group.on .nav-drop{color:var(--bone);background:rgba(79,224,208,.08);box-shadow:inset 0 -2px 0 var(--frost)}
  html[data-brand="veil"] header>#wallet{margin-left:auto;flex:none}
}
html[data-brand="veil"] .vx-logo{mix-blend-mode:normal}
html[data-brand="veil"] #nav>*{order:0!important} /* the nav reads in its markup order: Board, GameFi, Pulse, Launch, More */
html[data-brand="veil"] .vx-scroll{display:none!important}
/* contrast (owner review): on phones and tablets the art sits behind the whole text column, so the column gets a near-opaque scrim from the
   bottom and left; headline and body read at AAA (bone #E9E4D8 / #E3DFD3 on ≥ 88% void) at 375 and 768 */
@media (max-width:1024px){
  html[data-brand="veil"] .vx-hero-shade,html[data-brand="veil"] .gfx-hero-shade{background:linear-gradient(0deg,rgba(5,7,10,.99) 0%,rgba(5,7,10,.93) 46%,rgba(5,7,10,.72) 72%,rgba(5,7,10,.38) 100%),linear-gradient(90deg,rgba(5,7,10,.7) 0%,rgba(5,7,10,.2) 100%)}
  html[data-brand="veil"] .vx-hero-in,html[data-brand="veil"] .gfx-hero-in{position:relative}
  html[data-brand="veil"] .vx-hero-in::before,html[data-brand="veil"] .gfx-hero-in::before{content:'';position:absolute;inset:-12px -16px -8px;z-index:-1;border-radius:0 0 18px 18px;background:linear-gradient(180deg,rgba(5,7,10,0) 0%,rgba(5,7,10,.78) 22%,rgba(5,7,10,.9) 100%);pointer-events:none}
  html[data-brand="veil"] .vx-lead,html[data-brand="veil"] .gfx-lead{color:#E3DFD3;text-shadow:0 1px 2px #000}
  html[data-brand="veil"] .vx-title,html[data-brand="veil"] .gfx-title{text-shadow:0 2px 0 #000,0 0 24px rgba(0,0,0,.9)}
  html[data-brand="veil"] .vx-kicker{background:rgba(5,7,10,.85)}
  html[data-brand="veil"] .vx-btn-ghost,html[data-brand="veil"] .gfx-btn-ghost{background:rgba(5,7,10,.85)}
}
@media (max-width:700px){html[data-brand="veil"] .vx-title{font-size:clamp(30px,9vw,44px)}html[data-brand="veil"] .vx-hero{min-height:auto;padding-top:120px}html[data-brand="veil"] .vx-hero-art{object-position:60% 20%}}
/* "Live in the arena", one designed set (owner review 10-30): equal heights, the content block anchored to the bottom, one tag / title / body /
   action style for every card, the body clamped to two lines (and holding two lines' room), the same bottom-up scrim on every piece of art */
html[data-brand="veil"] .vx-sech{justify-content:space-between}
html[data-brand="veil"] .vx-arena{align-items:stretch;grid-auto-rows:1fr}
html[data-brand="veil"] .vx-card{min-height:300px;height:100%;justify-content:flex-end}
html[data-brand="veil"] .vx-card::before{background:linear-gradient(0deg,rgba(5,7,10,.98) 0%,rgba(5,7,10,.9) 38%,rgba(5,7,10,.45) 68%,rgba(5,7,10,.08) 100%)}
html[data-brand="veil"] .vx-card-in{margin-top:auto;padding:20px 20px 20px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px}
html[data-brand="veil"] .vx-card .vx-tag{font-size:11px;line-height:1;padding:6px 9px;margin-bottom:2px}
html[data-brand="veil"] .vx-card h3{font-size:20px;line-height:26px;min-height:26px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-brand="veil"] .vx-card .vx-card-body{font-size:14px;line-height:21px;min-height:42px;max-width:40ch;margin:0;color:#D2CEC2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html[data-brand="veil"] .vx-card-acts{display:flex;gap:8px;margin-top:6px;min-height:36px;align-items:center}
html[data-brand="veil"] .vx-card .vx-btn.vx-sm{min-height:36px;padding:0 14px;font-size:12px}
html[data-brand="veil"] .vx-open{animation:none;box-shadow:0 0 0 1px rgba(0,0,0,.6),0 0 34px rgba(232,176,75,.14)}
@media (max-width:620px){html[data-brand="veil"] .vx-card{min-height:260px}}
html[data-brand="veil"] .vx-hero-in .vx-logo{margin-bottom:18px}
/* the hero cinematic (desktop ≥1024px): fills the hero like the key art did; the scrim above it keeps the headline legible. Below 1024px the
   video element is not shown (and never gets a src); the key art shows instead. */
html[data-brand="veil"] .vx-hero-video{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:50% 42%;display:none;background:#05070A;pointer-events:none}
@media (min-width:1024px){html[data-brand="veil"] .vx-hero-video{display:block}html[data-brand="veil"] .vx-hero picture{display:none}
  html[data-brand="veil"] .vx-hero .vx-logo{display:none} /* the cinematic carries the wordmark itself */
  /* full bleed: the hero runs edge to edge past main's 1440px column; the copy stays in its centred 1240px block */
  html[data-brand="veil"] .vx-hero{margin-inline:calc(50% - 50vw)}
  html[data-brand="veil"] .vx-lead{max-width:76ch;text-wrap:balance}
  html[data-brand="veil"] .vx-hero-shade{background:linear-gradient(90deg,rgba(5,7,10,.94) 0%,rgba(5,7,10,.78) 32%,rgba(5,7,10,.25) 62%,rgba(5,7,10,.1) 100%),linear-gradient(0deg,rgba(5,7,10,1) 0%,rgba(5,7,10,.4) 36%,transparent 66%)}}

/* ===== GameFi · "How the bankroll works": a three-stage flow (owner review 10-30: a showpiece, not three stacked boxes).
   Desktop: three tall cards on one glowing veil-teal line that runs through each card's carved medallion, VEIL coins drifting stage 1 → 3.
   Phone (≤768): a vertical timeline, medallions on a glowing line at the left. Motion stops under prefers-reduced-motion. */
html[data-brand="veil"] .bk{position:relative;padding:8px 0 4px}
html[data-brand="veil"] .bk-head{text-align:center;margin:0 auto 34px;max-width:640px}
html[data-brand="veil"] .bk-head h2{font-family:var(--disp);font-weight:900;font-size:clamp(24px,2.6vw,36px);letter-spacing:.08em;text-transform:uppercase;margin:6px 0 8px;background:linear-gradient(180deg,#FFF3D1,#E9E4D8 45%,#C9A35A);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000)}
html[data-brand="veil"] .bk-head p{margin:0;color:#B9C0CC;font-size:15px}
html[data-brand="veil"] .bk-rune{display:inline-flex;align-items:center;gap:12px;color:var(--frost);font-size:18px}html[data-brand="veil"] .bk-rune i{display:block;width:64px;height:1px;background:linear-gradient(90deg,transparent,rgba(232,176,75,.8),transparent)}html[data-brand="veil"] .bk-rune b{font-weight:400;text-shadow:0 0 12px rgba(79,224,208,.7)}
html[data-brand="veil"] .bk-flow{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,34px);padding-top:38px}
/* the line: through the three medallions (their centres sit 38px under the flow's top) */
html[data-brand="veil"] .bk-line{position:absolute;left:3%;right:3%;top:37px;height:2px;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(79,224,208,.15),rgba(79,224,208,.9) 20%,rgba(139,108,246,.8) 50%,rgba(79,224,208,.9) 80%,rgba(79,224,208,.15));box-shadow:0 0 12px rgba(79,224,208,.6),0 0 30px rgba(79,224,208,.25);container-type:size}
/* the coins ride the line on transform alone (sweep 10-31: bkDrift animated `left`, a layout pass every frame for four coins): the line is a size
   container, so 100cqw / 100cqh is its own length and the coin's travel is the same as before */
html[data-brand="veil"] .bk-coin{position:absolute;top:-6px;left:0;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFF3C4,#E8B04B 55%,#8A5E14);box-shadow:0 0 10px rgba(232,176,75,.8);animation:bkDrift 7s linear infinite;opacity:0;will-change:transform,opacity}
html[data-brand="veil"] .bk-coin:nth-child(2){animation-delay:1.75s}html[data-brand="veil"] .bk-coin:nth-child(3){animation-delay:3.5s}html[data-brand="veil"] .bk-coin:nth-child(4){animation-delay:5.25s}
@keyframes bkDrift{0%{opacity:0;transform:translateX(0) scale(.6)}8%{opacity:1}50%{transform:translateX(calc(50cqw - 7px)) scale(1)}92%{opacity:1}100%{opacity:0;transform:translateX(calc(100cqw - 14px)) scale(.7)}}
html[data-brand="veil"] .bk-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:56px 26px 26px;min-height:360px;border:1px solid rgba(232,176,75,.38);border-radius:14px;
  background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg transform=''%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='2'/%3E%3Cpath d='M4.5 19V7.5Q4.5 4.5 7.5 4.5H19' fill='none' stroke='%233A2C14' stroke-width='1'/%3E%3Ccircle cx='5.2' cy='5.2' r='1.7' fill='%23F0B23E'/%3E%3C/g%3E%3C/svg%3E") 4px 4px/20px no-repeat,url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg transform='translate(20 0) scale(-1 1)'%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='2'/%3E%3Cpath d='M4.5 19V7.5Q4.5 4.5 7.5 4.5H19' fill='none' stroke='%233A2C14' stroke-width='1'/%3E%3Ccircle cx='5.2' cy='5.2' r='1.7' fill='%23F0B23E'/%3E%3C/g%3E%3C/svg%3E") right 4px top 4px/20px no-repeat,url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg transform='translate(0 20) scale(1 -1)'%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='2'/%3E%3Cpath d='M4.5 19V7.5Q4.5 4.5 7.5 4.5H19' fill='none' stroke='%233A2C14' stroke-width='1'/%3E%3Ccircle cx='5.2' cy='5.2' r='1.7' fill='%23F0B23E'/%3E%3C/g%3E%3C/svg%3E") left 4px bottom 4px/20px no-repeat,url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg transform='translate(20 20) scale(-1 -1)'%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='2'/%3E%3Cpath d='M4.5 19V7.5Q4.5 4.5 7.5 4.5H19' fill='none' stroke='%233A2C14' stroke-width='1'/%3E%3Ccircle cx='5.2' cy='5.2' r='1.7' fill='%23F0B23E'/%3E%3C/g%3E%3C/svg%3E") right 4px bottom 4px/20px no-repeat,radial-gradient(120% 80% at 50% 0%,rgba(79,224,208,.08),transparent 60%),radial-gradient(circle at 50% 120%,rgba(139,108,246,.1),transparent 55%),var(--grain),linear-gradient(180deg,#0E1119,#07090D);
  box-shadow:inset 0 0 60px rgba(0,0,0,.7),0 18px 44px rgba(0,0,0,.45);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s}
html[data-brand="veil"] .bk-card:hover{transform:translateY(-4px);border-color:rgba(232,176,75,.7);box-shadow:inset 0 0 60px rgba(0,0,0,.7),0 24px 54px rgba(0,0,0,.55),0 0 34px rgba(79,224,208,.16)}
/* the medallion: carved bronze rim, an inner teal glow, a Cinzel numeral, sitting on the line */
html[data-brand="veil"] .bk-med{position:absolute;z-index:3;top:-38px;left:50%;transform:translateX(-50%);width:76px;height:76px;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 45%,rgba(79,224,208,.35),rgba(10,30,32,.95) 58%),radial-gradient(circle at 30% 25%,#FFE7A8,#B97A18 45%,#4A3008 80%);
  box-shadow:0 0 0 3px #1A1208,0 0 0 5px rgba(232,176,75,.85),0 0 0 6px #120C04,inset 0 3px 6px rgba(255,240,200,.35),inset 0 -6px 10px rgba(0,0,0,.65),0 0 26px rgba(79,224,208,.45)}
html[data-brand="veil"] .bk-med::before{content:'';position:absolute;inset:7px;border-radius:50%;border:1px dashed rgba(232,176,75,.55)}
html[data-brand="veil"] .bk-med span{position:relative;font-family:var(--disp);font-weight:900;font-size:24px;letter-spacing:.04em;background:linear-gradient(180deg,#FFF3D1,#E8B04B);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 #000) drop-shadow(0 0 8px rgba(79,224,208,.5))}
html[data-brand="veil"] .bk-ic{width:84px;height:84px;margin:4px 0 2px;filter:drop-shadow(0 0 10px rgba(79,224,208,.25))}html[data-brand="veil"] .bk-ic svg{width:100%;height:100%}
html[data-brand="veil"] .bk-card h3{margin:0;white-space:nowrap;font-family:var(--disp);font-weight:700;font-size:clamp(17px,1.5vw,21px);line-height:1.25;letter-spacing:.03em;background:linear-gradient(180deg,#FFE7A8,#E9E4D8);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-brand="veil"] .bk-card p{margin:0;max-width:36ch;font-size:14.5px;line-height:21px;min-height:42px;color:#C8C4B8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html[data-brand="veil"] .bk-num{margin-top:auto;padding-top:14px;width:100%;border-top:1px solid rgba(232,176,75,.18);display:flex;flex-direction:column;gap:2px}
html[data-brand="veil"] .bk-num b{font-family:var(--disp);font-weight:700;font-size:28px;color:var(--gold-txt);text-shadow:0 0 18px rgba(232,176,75,.25)}html[data-brand="veil"] .bk-num small{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#8F98AB}
html[data-brand="veil"] .bk-cta{display:flex;justify-content:center;margin-top:30px}
html[data-brand="veil"] .gfx-how{display:none}
@media (max-width:768px){
  html[data-brand="veil"] .bk-flow{grid-template-columns:1fr;gap:18px;padding:0 0 0 54px}
  html[data-brand="veil"] .bk-line{left:26px;right:auto;top:20px;bottom:20px;width:2px;height:auto;background:linear-gradient(180deg,rgba(79,224,208,.2),rgba(79,224,208,.9) 20%,rgba(139,108,246,.8) 50%,rgba(79,224,208,.9) 80%,rgba(79,224,208,.2))}
  html[data-brand="veil"] .bk-coin{left:-6px;top:0;animation-name:bkFall}
  @keyframes bkFall{0%{transform:translateY(0);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translateY(calc(100cqh - 14px));opacity:0}}
  html[data-brand="veil"] .bk-card{align-items:flex-start;text-align:left;min-height:0;padding:20px 18px 18px 20px}
  html[data-brand="veil"] .bk-med{top:22px;left:-54px;transform:none;width:56px;height:56px}html[data-brand="veil"] .bk-med span{font-size:18px}
  html[data-brand="veil"] .bk-ic{width:52px;height:52px;margin:0}html[data-brand="veil"] .bk-card h3{font-size:18px}html[data-brand="veil"] .bk-num{flex-direction:row;align-items:baseline;gap:10px;padding-top:10px}html[data-brand="veil"] .bk-num b{font-size:22px}html[data-brand="veil"] .bk-card p{max-width:none}
}
@media (prefers-reduced-motion:reduce){html[data-brand="veil"] .bk-coin{animation:none;opacity:0}html[data-brand="veil"] .bk-card{transition:none}}
/* phone header, signed in: the emblem alone, so the balance pill and the wallet chip never touch the wordmark */
@media (max-width:420px){html[data-brand="veil"] header:has(#hdrBal:not([hidden]), #pnlChip) .home .brand{display:none}}
/* ===== Create a coin — pump.fun 1:1 (owner 10-30). pump.fun's create form, in Veilbound's skin: the fields on the left, a live preview card with
   pump's own launch facts on the right, then pump's "how many do you want to buy" step. Phone: one column, the card under the fields. */
html[data-brand="veil"] .pf-box{width:min(920px,100%);max-width:920px;padding:22px 24px 18px;background-image:var(--grain),radial-gradient(70% 60% at 85% 0%,rgba(79,224,208,.08),transparent 60%),linear-gradient(180deg,var(--panel),var(--panel2))}
html[data-brand="veil"] .pf-head{margin:0 0 16px}html[data-brand="veil"] .pf-head h3{margin:0;font-family:var(--disp);font-weight:900;font-size:26px;letter-spacing:.06em;text-transform:uppercase;background:linear-gradient(180deg,#FFF3D1,#E9E4D8 45%,#C9A35A);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-brand="veil"] .pf-head p{margin:4px 0 0;color:#AEB6C4;font-size:14.5px}html[data-brand="veil"] .pf-head b{color:var(--frost)}
html[data-brand="veil"] .pf-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
html[data-brand="veil"] .pf-fields{display:grid;gap:12px}
html[data-brand="veil"] .pf-fields .lf-lab>span{font-size:13px;font-weight:600;letter-spacing:.04em;color:#C8CEDA}html[data-brand="veil"] .pf-fields .lf-lab>span em{font-style:normal;font-weight:500;color:#7F889A;margin-left:6px}
html[data-brand="veil"] .pf-fields input,html[data-brand="veil"] .pf-fields textarea{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--frame);background:rgba(5,7,10,.7);color:var(--bone);font:500 15px var(--sans)}
html[data-brand="veil"] .pf-fields textarea{min-height:84px;resize:vertical}html[data-brand="veil"] .pf-fields input:focus,html[data-brand="veil"] .pf-fields textarea:focus{outline:none;border-color:var(--frost);box-shadow:0 0 0 3px rgba(79,224,208,.18)}
html[data-brand="veil"] .pf-drop{display:grid;place-items:center;min-height:132px;border:1.5px dashed rgba(232,176,75,.45);border-radius:12px;background:rgba(5,7,10,.55) center/cover no-repeat;cursor:pointer;text-align:center;transition:border-color .2s,background-color .2s}
html[data-brand="veil"] .pf-drop:hover,html[data-brand="veil"] .pf-drop:focus-visible{border-color:var(--gold);background-color:rgba(232,176,75,.06);outline:none}
html[data-brand="veil"] .pf-drop-in{display:grid;gap:4px}html[data-brand="veil"] .pf-drop-in b{font-family:var(--disp);font-size:15px;letter-spacing:.06em;color:var(--gold-txt)}html[data-brand="veil"] .pf-drop-in small{color:#8F98AB;font-size:12.5px}
html[data-brand="veil"] .pf-drop.has{border-style:solid;border-color:var(--gold);min-height:160px}html[data-brand="veil"] .pf-drop.has .pf-drop-in{opacity:0}
html[data-brand="veil"] .pf-drop.missing{border-color:var(--red)}
html[data-brand="veil"] .pf-more{border:1px solid var(--edge);border-radius:10px;padding:0 12px;background:rgba(255,255,255,.02)}html[data-brand="veil"] .pf-more[open]{padding-bottom:12px}
html[data-brand="veil"] .pf-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:#C8CEDA;list-style:none}html[data-brand="veil"] .pf-more summary::-webkit-details-marker{display:none}
html[data-brand="veil"] .pf-more summary::before{content:'+';display:grid;place-items:center;width:20px;height:20px;border-radius:6px;border:1px solid var(--frame2);color:var(--frost);font-weight:700}html[data-brand="veil"] .pf-more[open] summary::before{content:'\2212'}
html[data-brand="veil"] .pf-more summary em{font-style:normal;font-weight:500;color:#7F889A}html[data-brand="veil"] .pf-more .lf-lab{margin-top:8px}
html[data-brand="veil"] .pf-bank summary{color:var(--gold-txt)}
html[data-brand="veil"] .pf-hint{margin:8px 0 0;font-size:13px;line-height:1.5;color:#98A1B3}
/* the preview card: the coin as it will look on the board, and pump's own facts */
html[data-brand="veil"] .pf-card{position:sticky;top:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 18px 16px;border-radius:14px;border:1px solid rgba(232,176,75,.35);text-align:center;
  background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M1.5 19V5Q1.5 1.5 5 1.5H19' fill='none' stroke='%23A8792A' stroke-width='1.4'/%3E%3C/svg%3E") 6px 6px/18px no-repeat,var(--grain),radial-gradient(80% 60% at 50% 0%,rgba(79,224,208,.12),transparent 65%),linear-gradient(180deg,#0E1119,#07090D);box-shadow:inset 0 0 40px rgba(0,0,0,.6)}
html[data-brand="veil"] .pf-coin{width:96px;height:96px;border-radius:50%;overflow:hidden;display:grid;place-items:center;border:2px solid var(--gold);box-shadow:0 0 0 4px rgba(10,13,19,.9),0 0 24px rgba(79,224,208,.25);background:radial-gradient(circle at 50% 40%,#1A2230,#07090D)}
html[data-brand="veil"] .pf-coin img{width:100%;height:100%;object-fit:cover}html[data-brand="veil"] .pf-coin span{font-family:var(--disp);font-weight:900;font-size:36px;color:var(--gold-txt)}
html[data-brand="veil"] .pf-sym{margin-top:6px;font-family:var(--disp);font-weight:900;font-size:22px;letter-spacing:.04em;color:var(--bone);word-break:break-all}html[data-brand="veil"] .pf-name{color:#AEB6C4;font-size:14px;word-break:break-word}
html[data-brand="veil"] .pf-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:6px 0 4px}html[data-brand="veil"] .pf-tags i{font-style:normal;font-size:11.5px;font-weight:600;letter-spacing:.04em;padding:3px 8px;border-radius:999px;border:1px solid var(--frame2);color:#C8CEDA;background:rgba(255,255,255,.03)}
html[data-brand="veil"] .pf-tags i:first-child{color:var(--frost);border-color:rgba(79,224,208,.45)}
html[data-brand="veil"] .pf-facts{width:100%;margin:8px 0 0;padding:10px 0 0;border-top:1px solid rgba(232,176,75,.18);display:grid;gap:7px;text-align:left}
html[data-brand="veil"] .pf-facts div{display:grid;gap:1px}html[data-brand="veil"] .pf-facts dt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#7F889A}html[data-brand="veil"] .pf-facts dd{margin:0;font-size:13.5px;color:var(--bone)}
/* step 2: pump's "how many do you want to buy" */
html[data-brand="veil"] .pf-step[data-pf="2"]{max-width:520px;margin:4px auto 0;display:grid;gap:10px}html[data-brand="veil"] .pf-step[data-pf="2"][hidden]{display:none}
html[data-brand="veil"] .pf-ask{margin:0;font-size:17px;color:var(--bone)}html[data-brand="veil"] .pf-ask b{color:var(--gold-txt)}html[data-brand="veil"] .pf-ask em{font-style:normal;color:#7F889A}
html[data-brand="veil"] .pf-buy{display:flex;align-items:stretch;border:1px solid var(--frame2);border-radius:12px;overflow:hidden;background:rgba(5,7,10,.75)}html[data-brand="veil"] .pf-buy:focus-within{border-color:var(--frost);box-shadow:0 0 0 3px rgba(79,224,208,.18)}
html[data-brand="veil"] .pf-buy input{flex:1;min-width:0;min-height:56px;border:0;background:transparent;color:#fff;font:700 24px var(--mono);padding:0 14px}html[data-brand="veil"] .pf-buy input:focus{outline:none}
html[data-brand="veil"] .pf-unit{min-width:84px;border:0;border-left:1px solid var(--frame2);background:rgba(255,255,255,.04);color:var(--gold-txt);font:700 15px var(--disp);letter-spacing:.06em;cursor:pointer}
html[data-brand="veil"] .pf-switch{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:#98A1B3}html[data-brand="veil"] .pf-link{border:0;background:none;color:var(--frost);font-weight:600;font-size:13.5px;cursor:pointer;padding:6px 0;min-height:32px}
html[data-brand="veil"] .pf-out{padding:12px 14px;border-radius:10px;border:1px solid var(--edge);background:rgba(79,224,208,.05);font-size:14.5px;color:var(--bone)}html[data-brand="veil"] .pf-out b{color:var(--gold-txt);font-family:var(--mono)}
html[data-brand="veil"] .pf-box .vb-actions{margin-top:16px}html[data-brand="veil"] .pf-box .vb-actions .btn{min-height:44px;min-width:120px}
@media (max-width:760px){html[data-brand="veil"] .pf-box{padding:18px 16px 14px}html[data-brand="veil"] .pf-grid{grid-template-columns:1fr}html[data-brand="veil"] .pf-card{position:static;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;text-align:left;gap:4px 12px}
  html[data-brand="veil"] .pf-coin{width:64px;height:64px}html[data-brand="veil"] .pf-card .pf-sym{margin:0}html[data-brand="veil"] .pf-card>b,html[data-brand="veil"] .pf-card>span{flex:1 1 60%}html[data-brand="veil"] .pf-tags{justify-content:flex-start;flex-basis:100%}
  html[data-brand="veil"] .pf-head h3{font-size:22px}}
html[data-brand="veil"] .pf-box{background-color:var(--panel2);background-size:auto,auto,100% 100%;background-position:0 0;background-repeat:repeat,no-repeat,no-repeat} /* the generic modal rule sizes its emblem layer to 300px: these three layers are the whole box */
html[data-brand="veil"] .pf-head h3{display:block;text-shadow:none;filter:drop-shadow(0 2px 0 #000)}html[data-brand="veil"] .pf-head h3::before{display:none}
html[data-brand="veil"] .pf-drop{background-size:contain;background-color:rgba(5,7,10,.75)}
/* ---- the Ecosystem Flywheel (owner 10-31, StonkFun's /flywheel 1:1): three totals, the roster with its weights, the recent buyback burns */
html[data-brand="veil"] .efw-wrap{display:grid;gap:16px}
html[data-brand="veil"] .efw-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
html[data-brand="veil"] .efw-stat{position:relative;padding:18px 20px;border:1px solid var(--frame);border-radius:14px;background:radial-gradient(120% 140% at 0% 0%,rgba(79,224,208,.10),transparent 55%),linear-gradient(180deg,var(--panel),var(--panel2));overflow:hidden}
html[data-brand="veil"] .efw-stat::after{content:'';position:absolute;inset:0 0 auto;height:1px;background:var(--bifrost);opacity:.7}
html[data-brand="veil"] .efw-stat b{display:block;margin:6px 0 2px;font:700 30px/1.1 var(--sans);font-variant-numeric:tabular-nums;color:var(--gold-txt)}
html[data-brand="veil"] .efw-stat small{color:var(--dim);font-size:13px}
html[data-brand="veil"] .efw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
html[data-brand="veil"] .efw-panel{padding:0;overflow:hidden}
html[data-brand="veil"] .efw-ph{padding:18px 20px 12px;border-bottom:1px solid var(--line)}
html[data-brand="veil"] .efw-ph h2{margin:0;font:900 17px/1.2 var(--disp);letter-spacing:.06em;color:var(--txt)}
html[data-brand="veil"] .efw-ph p{margin:4px 0 0;color:var(--dim);font-size:13px;line-height:1.45}
html[data-brand="veil"] .efw-list{list-style:none;margin:0;padding:0;max-height:560px;overflow:auto}
html[data-brand="veil"] .efw-list li+li{border-top:1px solid var(--line)}
html[data-brand="veil"] .efw-list a{display:grid;grid-template-columns:32px 36px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 20px;color:inherit;text-decoration:none;transition:background .15s var(--ease)}
html[data-brand="veil"] .efw-list a:hover{background:var(--hover)}
html[data-brand="veil"] .efw-rank{font:700 13px var(--mono);font-style:normal;color:var(--dim);text-align:center}
html[data-brand="veil"] .efw-list li:first-child .efw-rank{color:var(--gold-txt)}
html[data-brand="veil"] .efw-ic{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--wood);box-shadow:0 0 0 1px var(--frame)}
html[data-brand="veil"] .efw-ph.efw-ic,html[data-brand="veil"] span.efw-ic{display:grid;place-items:center;font:700 15px var(--sans);color:var(--dim)}
html[data-brand="veil"] .efw-nm{min-width:0;display:flex;flex-direction:column}
html[data-brand="veil"] .efw-nm b{font:600 15px var(--sans);color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-brand="veil"] .efw-nm small,html[data-brand="veil"] .efw-num small{color:var(--dim);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-brand="veil"] .efw-num{display:flex;flex-direction:column;align-items:flex-end;min-width:76px;font-variant-numeric:tabular-nums}
html[data-brand="veil"] .efw-num b{font:600 15px var(--sans);color:var(--txt)}
html[data-brand="veil"] .efw-w{position:relative;min-width:64px}
html[data-brand="veil"] .efw-w b{color:var(--frost)}
html[data-brand="veil"] .efw-bar{position:absolute;left:0;right:0;bottom:-5px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--frost) var(--w),rgba(255,255,255,.06) var(--w))}
html[data-brand="veil"] .efw-burns a{grid-template-columns:32px 36px minmax(0,1fr) auto 22px}
html[data-brand="veil"] .efw-burn{font-size:16px;text-align:center}
html[data-brand="veil"] .efw-empty{margin:0;padding:28px 20px;text-align:center;color:var(--dim);font-size:14px}
html[data-brand="veil"] .efw-foot code{font:12px var(--mono)}
@media (max-width:900px){html[data-brand="veil"] .efw-grid{grid-template-columns:minmax(0,1fr)}html[data-brand="veil"] .efw-list{max-height:none}}
@media (max-width:640px){html[data-brand="veil"] .efw-stats{grid-template-columns:minmax(0,1fr)}html[data-brand="veil"] .efw-stat b{font-size:24px}html[data-brand="veil"] .efw-list a{gap:10px;padding:10px 14px}}
/* the launch form's pair picker (owner 10-31): VEIL (in the flywheel) or SOL (pump.fun's plain launch) */
html[data-brand="veil"] .pf-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
html[data-brand="veil"] .pf-pair{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:64px;padding:12px 14px;border:1px solid var(--frame);border-radius:12px;background:var(--panel2);color:var(--txt);text-align:left;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}
html[data-brand="veil"] .pf-pair:hover{border-color:var(--frame2)}
html[data-brand="veil"] .pf-pair.on{border-color:var(--frost);background:radial-gradient(120% 140% at 0% 0%,rgba(79,224,208,.14),transparent 60%),var(--panel2);box-shadow:0 0 0 1px var(--frost) inset}
html[data-brand="veil"] .pf-pair b{font:700 16px var(--sans)}
html[data-brand="veil"] .pf-pair small{font-size:12px;line-height:1.35;color:var(--dim)}
html[data-brand="veil"] .pf-fw{position:absolute;top:10px;right:10px;padding:2px 7px;border-radius:999px;font:700 10px/1.4 var(--sans);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--on-accent);background:var(--accent-grad)}
html[data-brand="veil"] #pfPairHint{margin-top:8px}
html[data-brand="veil"] #pfPairHint a{color:var(--frost)}
/* the launch moment's contract address (owner 10-31: "should show ca and ability to copy when deployed"): the full mint, one tap to copy */
html[data-brand="veil"] .lc-ca{position:relative;display:flex;align-items:center;gap:12px;width:100%;margin:6px 0 18px;padding:12px 12px 12px 14px;border:1px solid rgba(232,176,75,.38);border-radius:14px;background:radial-gradient(120% 160% at 0% 0%,rgba(232,176,75,.12),transparent 60%),linear-gradient(180deg,#0E121A,#090C12);color:var(--txt);text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,226,160,.08),0 10px 28px rgba(0,0,0,.45);transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}
html[data-brand="veil"] .lc-ca:hover{border-color:var(--gold);box-shadow:inset 0 1px 0 rgba(255,226,160,.12),0 0 0 1px rgba(232,176,75,.25),0 14px 34px rgba(0,0,0,.5),0 0 28px rgba(232,176,75,.14)}
html[data-brand="veil"] .lc-ca:active{transform:translateY(1px)}
html[data-brand="veil"] .lc-ca:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
html[data-brand="veil"] .lc-ca-k{flex:none;padding:4px 8px;border-radius:7px;font:800 11px/1 var(--sans);letter-spacing:.14em;color:var(--on-accent);background:var(--accent-grad);box-shadow:0 0 14px rgba(232,176,75,.35)}
html[data-brand="veil"] .lc-ca code{flex:1;min-width:0;font:600 14px/1.35 var(--mono);color:var(--bone);letter-spacing:.01em;overflow-wrap:anywhere;user-select:all}
html[data-brand="veil"] .lc-ca-btn{flex:none;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:9px;border:1px solid var(--frame2);background:rgba(255,255,255,.04);font:600 13px var(--sans);color:var(--gold-txt);transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}
html[data-brand="veil"] .lc-ca-btn em{font-style:normal}
html[data-brand="veil"] .lc-ca-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html[data-brand="veil"] .lc-ca:hover .lc-ca-btn{background:rgba(232,176,75,.12);border-color:rgba(232,176,75,.5)}
html[data-brand="veil"] .lc-ca.done{border-color:var(--frost);box-shadow:0 0 0 1px rgba(79,224,208,.35),0 0 30px rgba(79,224,208,.18)}
html[data-brand="veil"] .lc-ca.done .lc-ca-btn{color:var(--frost);border-color:rgba(79,224,208,.6);background:rgba(79,224,208,.1)}
@media (max-width:560px){html[data-brand="veil"] .lc-ca{flex-wrap:wrap;gap:10px}html[data-brand="veil"] .lc-ca code{flex-basis:calc(100% - 60px);font-size:13px}html[data-brand="veil"] .lc-ca-btn{flex:1;justify-content:center}}
html[data-brand="veil"] .pf-pay{grid-template-columns:repeat(3,minmax(0,1fr))}html[data-brand="veil"] .pf-pay .pf-pair{min-height:58px}
html[data-brand="veil"] .pf-banner{min-height:96px;aspect-ratio:3/1;background-size:cover;background-position:center}html[data-brand="veil"] .pf-banner.has .pf-drop-in{opacity:0}
@media (max-width:560px){html[data-brand="veil"] .pf-pay{grid-template-columns:minmax(0,1fr)}}
/* creator fee and who it goes to (owner 10-31, pump.fun's own options) */
html[data-brand="veil"] .pf-fee{grid-template-columns:repeat(4,minmax(0,1fr))}html[data-brand="veil"] .pf-fee .pf-pair{min-height:56px}
html[data-brand="veil"] .pf-to{margin-top:8px}
@media (max-width:560px){html[data-brand="veil"] .pf-fee{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* site-run games on the launch form (owner 10-31 "build all", lib/games.mjs): the pick, its settings, the game's share — the pair buttons' look */
html[data-brand="veil"] .pf-gpick,html[data-brand="veil"] .pf-gopt{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:58px;padding:11px 13px;border:1px solid var(--frame);border-radius:12px;background:var(--panel2);color:var(--txt);text-align:left;cursor:pointer;font:inherit}
html[data-brand="veil"] .pf-gpick:hover,html[data-brand="veil"] .pf-gopt:hover{border-color:var(--frame2)}
html[data-brand="veil"] .pf-gpick.on,html[data-brand="veil"] .pf-gopt.on{border-color:var(--frost);background:radial-gradient(120% 140% at 0% 0%,rgba(79,224,208,.14),transparent 60%),var(--panel2);box-shadow:0 0 0 1px var(--frost) inset}
html[data-brand="veil"] .pf-gpick b,html[data-brand="veil"] .pf-gopt b{font:700 15px var(--sans)}
html[data-brand="veil"] .pf-gpick small,html[data-brand="veil"] .pf-gopt small{font-size:12px;line-height:1.35;color:var(--dim)}
html[data-brand="veil"] .pf-game{grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-brand="veil"] .pf-gsel{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}html[data-brand="veil"] .pf-gsel .pf-gopt{min-height:46px}
html[data-brand="veil"] .pf-gcfg{display:grid;gap:12px;margin-top:12px;padding:14px;border:1px solid var(--frame);border-radius:12px;background:rgba(0,0,0,.18)}
html[data-brand="veil"] .pf-gcfg .lf-lab small{color:var(--dim);font-size:12px}
@media (max-width:560px){html[data-brand="veil"] .pf-game{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* a site-run game's panel on its coin page (lib/games.mjs) */
html[data-brand="veil"] .ge-game{margin:14px 0;padding:16px 18px;border:1px solid var(--frame);border-radius:14px;background:radial-gradient(120% 140% at 0% 0%,rgba(79,224,208,.10),transparent 55%),var(--panel2);display:grid;gap:10px}
html[data-brand="veil"] .ge-game .gg-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
html[data-brand="veil"] .ge-game h3{margin:0;font:700 18px var(--sans)}
html[data-brand="veil"] .gg-share{font-size:12px;color:var(--frost);border:1px solid var(--frame2);border-radius:999px;padding:2px 9px}
html[data-brand="veil"] .gg-blurb{margin:0;color:var(--dim);font-size:14px;line-height:1.45}
html[data-brand="veil"] .gg-bank{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}html[data-brand="veil"] .gg-bank span{color:var(--dim);font-size:13px}html[data-brand="veil"] .gg-bank b{font:700 20px var(--sans);font-variant-numeric:tabular-nums}html[data-brand="veil"] .gg-bank small{color:var(--dim);font-size:12px}
html[data-brand="veil"] .gg-bar{height:10px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}html[data-brand="veil"] .gg-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--frost),#9cf3e8)}
html[data-brand="veil"] .gg-sub{font-size:13px;color:var(--dim);line-height:1.45}html[data-brand="veil"] .gg-sub b{color:var(--txt)}
html[data-brand="veil"] .gg-board{margin:0;padding:0 0 0 20px;display:grid;gap:4px;font-size:13px}html[data-brand="veil"] .gg-board li{display:flex;justify-content:space-between;gap:10px}html[data-brand="veil"] .gg-board b{font-variant-numeric:tabular-nums}
html[data-brand="veil"] .gg-log{list-style:none;margin:0;padding:0;display:grid;gap:0;font-size:13px}
html[data-brand="veil"] .gg-log li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;align-items:baseline;padding:7px 0;border-top:1px solid var(--line)}
html[data-brand="veil"] .gg-log b{font-variant-numeric:tabular-nums}html[data-brand="veil"] .gg-log time,html[data-brand="veil"] .gg-tx{color:var(--dim);font-size:12px}
html[data-brand="veil"] .gg-combo{display:flex;align-items:center;gap:14px;flex-wrap:wrap}html[data-brand="veil"] .gg-cx{font:800 44px/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--dim);letter-spacing:-.02em}html[data-brand="veil"] .gg-combo.on .gg-cx{color:var(--gold);animation:ggPop .6s ease-out}html[data-brand="veil"] .gg-combo .gg-sub{flex:1;min-width:220px}
@keyframes ggPop{from{transform:scale(1.25)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){html[data-brand="veil"] .gg-combo.on .gg-cx{animation:none}}
html[data-brand="veil"] .gg-badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}html[data-brand="veil"] .gg-badges li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:9px 11px;border:1px solid var(--frame2);border-radius:10px;background:rgba(255,255,255,.03)}html[data-brand="veil"] .gg-badges b{font-size:13px}html[data-brand="veil"] .gg-badges small{grid-column:1;color:var(--dim);font-size:12px;line-height:1.35}html[data-brand="veil"] .gg-badges em{grid-row:1/3;grid-column:2;align-self:center;font:700 18px var(--sans);font-style:normal;color:var(--frost);font-variant-numeric:tabular-nums}html[data-brand="veil"] .gg-lost{text-decoration:line-through;color:var(--dim)}
html[data-brand="veil"] .gg-key{display:inline-block;max-width:100%;overflow-wrap:anywhere;user-select:all}
@media (max-width:560px){html[data-brand="veil"] .gg-log li{grid-template-columns:minmax(0,1fr) auto}html[data-brand="veil"] .gg-log time{display:none}}
