/* AUTO-GENERATED by scripts/build-private-archive-css.mjs.
 * Do not edit this bundle directly. */
/* source: app.css */
:root{--bg:#070808;--panel:#101111;--panel2:#151616;--line:#28261f;--line2:#3c3522;--text:#f4f2eb;--muted:#93938e;--gold:#d7b64f;--gold2:#f1d77c;--green:#4be1a0;--red:#ff6673;--shadow:0 24px 70px rgba(0,0,0,.42);--sidebar:0px;--top:72px;--nav-radius:10px;color-scheme:dark;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable","Segoe UI",sans-serif}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-width:320px;background:radial-gradient(circle at 70% -10%,rgba(215,182,79,.07),transparent 33%),var(--bg);color:var(--text);font-size:15px}
button,input,select,textarea{font:inherit}
button,a{outline-offset:3px}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{color:inherit}
.boot-screen{min-height:100vh;display:grid;place-items:center;align-content:center;gap:18px;background:#080909}
.boot-mark,.brand-mark{display:grid;place-items:center;border:1px solid var(--gold);color:var(--gold2);font-family:PVDisplay;font-weight:800;box-shadow:inset 0 0 0 3px #111,0 0 24px rgba(215,182,79,.15)}
.boot-mark{width:72px;height:72px;border-radius:18px;font-size:27px;animation:pulse 1.4s ease-in-out infinite}
.boot-screen p{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:11px}
@keyframes pulse{50%{opacity:.55;transform:scale(.97)}}
.shell{min-height:100vh}
.nav-drawer{display:none}
.brand{display:flex;align-items:center;gap:10px;min-height:38px;margin-bottom:34px}
.brand-mark{width:31px;height:31px;border-radius:7px;font-size:12px}
.brand-name{font-family:PVDisplay;font-size:15px;letter-spacing:.035em;color:#e8cf78;white-space:nowrap}
.nav-label{padding:0 9px;margin:8px 0 10px;color:#53544f;font-size:9px;letter-spacing:.28em;text-transform:uppercase}
.nav{display:grid;gap:5px}
.nav-link{display:flex;align-items:center;gap:12px;border-radius:10px;padding:11px 10px;color:#9d9e99;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:.2s}
.nav-link:hover{background:#121313;color:#f2e5b5}
.nav-link.is-active{background:linear-gradient(90deg,rgba(215,182,79,.12),transparent);color:var(--gold2);box-shadow:inset 2px 0 var(--gold)}
.nav-icon{width:18px;text-align:center;color:#797872;font-size:16px}
.nav-badge{margin-left:auto;border-radius:4px;background:var(--gold);padding:2px 6px;color:#080808;font-size:8px;letter-spacing:.1em}
.side-status{margin-top:auto;border-top:1px solid #181919;padding:20px 9px 0}
.status-line{display:flex;align-items:center;gap:9px;color:#d8c169;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 11px var(--green)}
.status-copy{margin-top:11px;color:#51534e;font-size:8px;letter-spacing:.19em;text-transform:uppercase}
.topbar{position:fixed;inset:0 0 auto 0;z-index:45;height:var(--top);display:flex;align-items:center;gap:14px;background:rgba(7,8,8,.9);padding:0 28px;backdrop-filter:blur(18px)}
.mobile-menu{display:none;border:0;background:none;font-size:22px;cursor:pointer}
.demo-badge{border:1px solid #5c4d18;border-radius:999px;background:#d7b64f;color:#080808;padding:5px 8px;font-size:8px;font-weight:850;letter-spacing:.17em}
.ticker{display:flex;align-items:center;gap:12px;color:#868680;font-size:9px;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap}
.ticker b{color:#dad2b8;font-weight:600}
.top-spacer{flex:1}
.balance-pill{display:flex;align-items:center;gap:8px;border:1px solid #39331f;border-radius:999px;padding:9px 13px;background:#10100d;color:#d9c16b;font-size:12px;font-weight:700}
.avatar-button,.outline-button,.gold-button,.ghost-button,.danger-button{border-radius:999px;cursor:pointer;font-weight:750;transition:transform .18s,filter .18s,background .18s;border:1px solid transparent}
.avatar-button{width:39px;height:39px;background:linear-gradient(145deg,#e6cc75,#83691d);color:#080808;text-transform:uppercase}
.outline-button{border-color:#4a401e;background:#0d0d0b;color:#ead886;padding:11px 18px}
.gold-button{background:linear-gradient(#fff2ae 0%,#d7ad2a 55%,#80600f 100%);box-shadow:0 9px 24px rgba(215,182,79,.23);color:#090909;padding:12px 20px}
.gold-button:hover,.outline-button:hover{filter:brightness(1.08);transform:translateY(-1px)}
.gold-button:disabled,.outline-button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.ghost-button{border-color:#2c2d2b;background:#171818;color:#d8d7d1;padding:10px 16px}
.danger-button{border-color:#5a292f;background:#231113;color:#ff9ca4;padding:10px 16px}
.content{padding:calc(var(--top) + 30px) 32px 56px;min-height:100vh}
.page{max-width:1420px;margin:0 auto}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:4px 0 26px}
.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 9px;color:var(--gold);font-size:9px;letter-spacing:.27em;text-transform:uppercase}
.eyebrow:before{content:"";width:21px;height:1px;background:var(--gold)}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:PVDisplay;letter-spacing:-.025em}
h1{margin-bottom:7px;font-size:clamp(32px,4vw,58px);line-height:.98}
h2{font-size:clamp(25px,3vw,42px);line-height:1.03}
h3{font-size:18px}
.page-sub{margin:0;color:var(--muted);max-width:720px;line-height:1.65}
.card{border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,rgba(24,24,23,.88),rgba(10,11,11,.92));box-shadow:var(--shadow)}
.hero{min-height:570px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);align-items:center;gap:22px;padding:46px 46px 34px;overflow:hidden;position:relative}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 42%,rgba(215,182,79,.12),transparent 27%),linear-gradient(120deg,rgba(255,255,255,.025),transparent 40%);pointer-events:none}
.hero-copy{position:relative;z-index:2;max-width:640px}
.hero h1{font-size:clamp(44px,5.5vw,82px);max-width:680px}
.gold-text{display:block;background:linear-gradient(90deg,#f8e59c,#c29a27);background-clip:text;color:transparent}
.hero-copy p{max-width:570px;color:#a9a9a4;font-size:17px;line-height:1.6}
.hero-actions{display:flex;align-items:center;gap:12px;margin-top:27px;flex-wrap:wrap}
.proof-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid #2c2a20;border-radius:999px;padding:8px 11px;color:#77786f;font-family:ui-monospace,monospace;font-size:9px;max-width:100%;overflow:hidden}
.machine-wrap{min-height:480px;display:grid;place-items:center;perspective:1200px;position:relative}
.machine-halo{position:absolute;width:82%;height:70%;border-radius:50%;background:radial-gradient(ellipse,rgba(215,182,79,.18),transparent 68%);filter:blur(12px)}
.machine-stage{position:relative;z-index:2;width:min(100%,520px);height:525px;filter:drop-shadow(-24px 32px 42px rgba(0,0,0,.55));touch-action:none;isolation:isolate}
.machine-stage canvas{position:relative;z-index:1;display:block;width:100%;height:100%;outline:0;cursor:grab}
.machine-stage canvas:active{cursor:grabbing}
.machine-stage:before{content:"";position:absolute;z-index:3;inset:9%;border-radius:50%;background:radial-gradient(circle at 50% 74%,rgba(183,145,78,.28) 0,rgba(112,87,50,.1) 16%,rgba(80,65,44,0) 48%);opacity:0;pointer-events:none}
.machine-stage.is-dispensing .machine-stage-label{opacity:0;transform:translate(-50%,8px)}
.machine-stage-label{position:absolute;z-index:4;left:50%;bottom:2px;display:flex;align-items:center;gap:9px;transform:translateX(-50%);border:1px solid #3d351d;border-radius:999px;background:rgba(8,9,9,.84);padding:6px 10px;color:#74756d;font-size:6px;letter-spacing:.2em;white-space:nowrap;pointer-events:none;backdrop-filter:blur(9px);transition:opacity .35s,transform .45s}
.machine-stage-label span{color:var(--gold2)}
.machine-stage.is-webgl-unavailable>canvas{opacity:0!important;visibility:hidden;pointer-events:none}
.machine-stage.is-unavailable{display:none}
.machine-fallback{display:none}
.machine-stage.is-unavailable~.machine-fallback{display:block}
.vault-machine{position:relative;width:min(100%,410px);aspect-ratio:.72;border:1px solid #665626;border-radius:24px;background:linear-gradient(140deg,#242321 0%,#090a0a 50%,#171612 100%);box-shadow:inset 0 0 0 5px #0b0c0c,inset 0 0 50px rgba(215,182,79,.07),-28px 38px 64px rgba(0,0,0,.48);transform:rotateY(-7deg) rotateX(2deg);transform-style:preserve-3d;transition:transform .22s ease;padding:18px}
.vault-machine:hover{transform:rotateY(-3deg) rotateX(1deg) translateY(-4px)}
.machine-head{height:52px;display:flex;align-items:center;gap:10px;padding:0 5px;color:var(--gold2)}
.machine-head .brand-mark{width:29px;height:29px;font-size:10px}
.machine-head strong{font-family:PVDisplay;font-size:13px;letter-spacing:.09em}
.machine-live{margin-left:auto;font:8px/1 PVText;letter-spacing:.14em;color:var(--green)}
.machine-glass{position:relative;height:calc(100% - 121px);border:1px solid #4e472e;border-radius:14px;background:linear-gradient(145deg,rgba(70,71,74,.18),rgba(3,4,4,.78));box-shadow:inset 0 0 40px #000;overflow:hidden;padding:14px 13px 20px}
.machine-glass:after{content:"";position:absolute;inset:-20% 46% -20% 33%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);transform:rotate(12deg);pointer-events:none}
.machine-grid{height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:10px 7px}
.machine-slot{position:relative;border:1px solid #403a27;border-bottom:2px solid #776423;border-radius:7px;background:#0c0d0d;overflow:hidden;cursor:pointer;transition:.18s;padding:4px}
.machine-slot:hover,.machine-slot.is-selected{border-color:#dbbd58;box-shadow:0 0 17px rgba(215,182,79,.19);transform:translateZ(12px)}
.machine-slot img{width:100%;height:100%;object-fit:contain;filter:saturate(.92) contrast(1.02);transition:.25s}
.machine-slot:hover img{transform:scale(1.04)}
.slot-code{position:absolute;left:5px;bottom:3px;border-radius:3px;background:rgba(0,0,0,.74);padding:2px 4px;color:#e4c85f;font-size:6px;letter-spacing:.12em}
.machine-console{position:absolute;right:-7px;top:108px;z-index:3;width:49px;border:1px solid #594c25;border-radius:8px;background:#0a0b0b;padding:6px;box-shadow:8px 10px 18px rgba(0,0,0,.5);transform:translateZ(12px)}
.console-screen{height:22px;border:1px solid #405340;background:#173529;color:#57dc97;font:6px/20px ui-monospace;text-align:center}
.console-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:6px 0}
.console-keys i{height:7px;border:1px solid #3a3a37;background:#171818}
.console-card{height:5px;background:var(--gold);margin:4px}
.machine-tray{height:49px;margin-top:9px;border:1px solid #26271f;border-radius:7px;background:#060707;display:grid;place-items:center;overflow:hidden;position:relative}
.machine-tray:before{content:"";width:58%;height:6px;border-radius:5px;background:#020202;border:1px solid #342f1d;box-shadow:0 3px 0 #111}
.dispensed-pack{position:absolute;z-index:5;left:50%;top:52%;width:72px;height:104px;object-fit:contain;opacity:0;transform:translate(-50%,-140%) rotate(-9deg) scale(.82);pointer-events:none}
.vault-machine.is-dispensing .dispensed-pack{animation:dispense 1.5s cubic-bezier(.2,.8,.25,1) forwards}
@keyframes dispense{0%{opacity:0;transform:translate(-50%,-160%) rotate(-14deg) scale(.7)}18%{opacity:1}72%{opacity:1;transform:translate(-50%,210%) rotate(9deg) scale(.95)}100%{opacity:0;transform:translate(-50%,270%) rotate(4deg) scale(.86)}}
.machine-foot{height:34px;display:flex;align-items:flex-end;justify-content:center;color:#665b36;font-size:6px;letter-spacing:.24em}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 32px}
.metric{padding:20px 22px}
.metric-label{color:#777871;font-size:9px;letter-spacing:.17em;text-transform:uppercase}
.metric-value{margin-top:7px;font-family:PVDisplay;font-size:24px;color:#f1e3af}
.section{margin-top:46px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:19px}
.section-head h2{margin:0}
.pack-grid,.market-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.pack-card{overflow:hidden;cursor:pointer;transition:.22s;position:relative}
.pack-card:hover{transform:translateY(-5px);border-color:#635529}
.pack-art{height:275px;display:grid;place-items:center;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.08),transparent 52%),#090a0a;padding:20px;overflow:hidden}
.pack-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(0,0,0,.55));transition:.25s}
.pack-card:hover .pack-art img{transform:scale(1.035)}
.pack-body{padding:17px 18px 19px}
.pack-series,.rarity{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.pack-card h3{margin:8px 0 6px;font-size:17px}
.pack-copy{min-height:42px;color:#878883;font-size:12px;line-height:1.5}
.pack-meta,.market-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;border-top:1px solid #24241f;padding-top:13px}
.price{font-family:PVDisplay;color:#f3df95;font-size:17px}
.stock{color:#74756f;font-size:9px;text-transform:uppercase;letter-spacing:.11em}
.market-card{overflow:hidden;transition:.2s}
.market-card:hover{transform:translateY(-4px);border-color:#544a2b}
.item-art{height:300px;background:radial-gradient(circle,rgba(215,182,79,.08),transparent 58%),#090a0a;padding:16px;display:grid;place-items:center;overflow:hidden}
.item-art img{height:100%;width:100%;object-fit:contain}
.item-body{padding:16px}
.item-body h3{font-family:PVText;font-weight:700;font-size:14px;line-height:1.35;margin:8px 0 4px}
.item-sub{color:#797a75;font-size:11px}
.rarity.common{color:#a7aaa4}.rarity.rare{color:#66a8ff}.rarity.epic{color:#bf86ff}.rarity.mythic{color:#f6c758}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 22px}
.field{border:1px solid #2c2d2a;border-radius:12px;background:#101111;color:#eee;padding:12px 13px;min-height:44px}
.field:focus{border-color:#786628;outline:none;box-shadow:0 0 0 3px rgba(215,182,79,.08)}
.search-field{min-width:min(100%,320px);flex:1}
select.field{cursor:pointer}
.empty{grid-column:1/-1;border:1px dashed #35342c;border-radius:18px;padding:56px 24px;text-align:center;color:#777}
.vault-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.vault-card{overflow:hidden}
.vault-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.vault-actions button{padding:8px 11px;font-size:10px}
.leaderboard{overflow:hidden}
.leader-row{display:grid;grid-template-columns:54px minmax(0,1fr) 120px 120px;align-items:center;gap:12px;border-bottom:1px solid #242522;padding:15px 18px}
.leader-row:last-child{border-bottom:0}
.leader-row.is-top{background:linear-gradient(90deg,rgba(215,182,79,.08),transparent)}
.rank{font-family:PVDisplay;color:#b19a4b;font-size:18px}
.collector{font-weight:700}.leader-label{color:#74756f;font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.feed{display:grid;gap:8px}
.feed-row{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #22231f;border-radius:12px;background:#0e0f0f;padding:9px 12px}
.feed-image{width:42px;height:42px;border-radius:8px;background:#080909;padding:3px;object-fit:contain}
.feed-copy{font-size:12px}.feed-copy b{color:#e7d58f}.feed-time{color:#656660;font-size:9px}
.detail-layout{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr);gap:20px}
.detail-art{min-height:610px;display:grid;place-items:center;padding:42px;background:radial-gradient(circle,rgba(215,182,79,.1),transparent 56%),#090a0a}
.detail-art img{max-height:560px;filter:drop-shadow(0 30px 28px rgba(0,0,0,.6))}
.detail-copy{padding:35px}
.detail-copy h1{font-size:47px}
.price-line{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #292a26;border-bottom:1px solid #292a26;padding:18px 0;margin:24px 0}
.price-line .price{font-size:29px}
.odds{display:grid;gap:8px;margin:20px 0}
.odds-row{display:grid;grid-template-columns:90px 1fr 70px;align-items:center;gap:10px;font-size:11px}
.odds-track{height:6px;border-radius:6px;background:#222;overflow:hidden}.odds-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#806515,#e6c75e)}
.open-box{border:1px solid #3b3421;border-radius:15px;background:#0c0d0d;padding:18px;margin-top:24px}
.seed-input{width:100%;margin:8px 0 12px;font-family:ui-monospace,monospace;font-size:12px}
.open-note{margin:10px 0 0;color:#65665f;font-size:10px;line-height:1.55}
.fairness{margin-top:22px;border-top:1px solid #2b2b27;padding-top:18px;color:#777;font-size:11px;line-height:1.6}.fairness code{display:block;margin-top:5px;color:#ae9b57;overflow-wrap:anywhere}
.profile-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:17px}.profile-card{padding:24px}
.ledger{display:grid;gap:1px;background:#242522;border:1px solid #242522;border-radius:14px;overflow:hidden}.ledger-row{display:grid;grid-template-columns:1fr 110px 120px;gap:10px;background:#101111;padding:13px}.positive{color:var(--green)}.negative{color:#ff9b9b}
.modal-backdrop{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.82);backdrop-filter:blur(12px)}
.modal{width:min(100%,530px);max-height:calc(100vh - 36px);overflow:auto;border:1px solid #4b4126;border-radius:22px;background:#111212;box-shadow:0 28px 100px #000;padding:25px}
.modal-wide{width:min(100%,820px)}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.modal-head h2{margin:0;font-size:28px}.close-button{border:0;background:#252624;width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:20px}
.form{display:grid;gap:12px}.form label{display:grid;gap:6px;color:#aaa;font-size:11px}.form .field{width:100%}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.auth-tabs{display:flex;border:1px solid #292a27;border-radius:12px;padding:3px;margin-bottom:17px}.auth-tabs button,.auth-tabs a{flex:1;border:0;border-radius:9px;background:none;padding:9px;cursor:pointer;color:#777;text-align:center;white-space:nowrap}.auth-tabs button.is-active,.auth-tabs a.is-active{background:#26251f;color:#f0d77d}
.reveal{text-align:center}.reveal-art{height:min(52vh,470px);padding:18px;display:grid;place-items:center;position:relative}.reveal-art img{height:100%;object-fit:contain;animation:revealIn .65s cubic-bezier(.2,.9,.2,1)}
@keyframes revealIn{from{opacity:0;transform:scale(.78) rotateY(75deg)}to{opacity:1;transform:none}}
.reveal h2{margin:5px 0 8px}.reveal-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:18px}
.proof-grid{margin-top:20px;text-align:left;border:1px solid #2a2a27;border-radius:12px;padding:13px;font:10px/1.55 ui-monospace,monospace;color:#807761;overflow-wrap:anywhere}
.toast-stack{position:fixed;right:20px;bottom:20px;z-index:300;display:grid;gap:9px;width:min(390px,calc(100vw - 40px))}
.toast{border:1px solid #48402a;border-radius:13px;background:#171817;box-shadow:0 16px 50px #000;padding:14px 16px;color:#eee;animation:toastIn .25s ease}.toast.error{border-color:#6b3036}.toast strong{display:block;margin-bottom:3px}.toast span{color:#8e8e88;font-size:12px}
@keyframes toastIn{from{opacity:0;transform:translateY(12px)}}
.mobile-overlay{display:none}
@media(max-width:1180px){.pack-grid,.market-grid,.vault-grid{grid-template-columns:repeat(3,1fr)}.hero{grid-template-columns:1fr 410px;padding:36px}.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1080px){:root{--sidebar:0px;--top:64px}.nav-drawer{position:fixed;inset:0 auto 0 0;z-index:50;display:flex;flex-direction:column;width:min(300px,86vw);background:#080908;padding:20px 16px 26px;transform:translateX(-101%);transition:transform .28s cubic-bezier(.22,.61,.36,1)}.shell.menu-open .nav-drawer{transform:none}.mobile-overlay{position:fixed;inset:0;z-index:48;background:rgba(0,0,0,.7)}.shell.menu-open .mobile-overlay{display:block}.topbar{left:0;padding:0 14px}.mobile-menu{display:block}.ticker{display:none}.content{padding:calc(var(--top) + 20px) 17px 45px}.hero{grid-template-columns:1fr;min-height:auto}.machine-wrap{order:-1;min-height:470px}.machine-stage{height:490px}.vault-machine{width:330px}.pack-grid,.market-grid,.vault-grid{grid-template-columns:repeat(2,1fr)}.detail-layout,.profile-grid{grid-template-columns:1fr}.detail-art{min-height:470px}.detail-copy{padding:25px}}
@media(max-width:600px){body{font-size:14px}.topbar{gap:7px;padding:0 10px}.topbar .outline-button{display:none}.topbar>.gold-button{padding:10px 13px;font-size:11px;white-space:nowrap}.demo-badge{padding:4px 6px}.balance-pill{padding:8px 10px;font-size:10px}.content{padding-left:12px;padding-right:12px}.page-head{align-items:flex-start;flex-direction:column}.page-head>:first-child{min-width:0;max-width:100%}.page-head h1{overflow-wrap:anywhere}.hero{padding:21px 18px 27px;border-radius:16px}.hero h1{font-size:43px}.hero-copy p{font-size:14px}.machine-wrap{min-height:335px}.machine-stage{height:345px;width:100%}.machine-stage-label{display:none}.vault-machine{width:250px;padding:13px;border-radius:18px}.machine-head{height:40px}.machine-glass{height:calc(100% - 98px);padding:10px}.machine-console{right:-5px;top:85px;width:42px}.machine-tray{height:40px}.machine-foot{height:26px}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{padding:15px}.metric-value{font-size:19px}.pack-grid,.market-grid,.vault-grid{grid-template-columns:1fr}.pack-art{height:330px}.item-art{height:360px}.section{margin-top:34px}.leader-row{grid-template-columns:38px 1fr 82px}.leader-row>*:last-child{display:none}.feed-row{grid-template-columns:44px 1fr}.feed-time{display:none}.detail-art{min-height:390px;padding:22px}.detail-copy h1{font-size:36px}.form-grid{grid-template-columns:1fr}.ledger-row{grid-template-columns:1fr 90px}.ledger-row>*:last-child{display:none}.modal{padding:19px}.reveal-art{height:390px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* ══════════════════════════════════════════════════════════════════════════
   HERO REFINEMENT
   The headline was breaking to three lines ("What's in the / vault?"), the
   machine read small against a lot of empty panel, and the stage had no depth
   behind it. Bigger stage, balanced headline, and a real pool of light.
   ══════════════════════════════════════════════════════════════════════════ */
.hero {
  min-height: 640px;
  grid-template-columns: minmax(0, 1fr) minmax(400px, 600px);
  gap: 30px;
  padding: 54px 52px 44px;
}

.hero h1 {
  /* at 70px the second line is wider than the copy column, and `balance`
     then split it into three even lines. Sized so it sets as two. */
  font-size: clamp(38px, 3.5vw, 55px);
  line-height: 1.0;
  letter-spacing: -.03em;
  max-width: 22ch;
  text-wrap: pretty;
}

.hero-copy p { font-size: 17.5px; line-height: 1.62; color: #b3b3ad; }

/* a pool of light the machine stands in, rather than a flat panel */
.hero:before {
  background:
    radial-gradient(58% 62% at 74% 46%, rgba(215,182,79,.16), transparent 62%),
    radial-gradient(40% 44% at 74% 88%, rgba(215,182,79,.07), transparent 70%),
    linear-gradient(118deg, rgba(255,255,255,.03), transparent 44%);
}

.machine-wrap { min-height: 560px; }
.machine-halo {
  width: 78%; height: 62%;
  background: radial-gradient(ellipse, rgba(215,182,79,.22), transparent 66%);
  filter: blur(18px);
}
.machine-stage {
  width: min(100%, 600px);
  height: 600px;
  filter: drop-shadow(-18px 34px 48px rgba(0,0,0,.72));
}

@media (max-width: 1180px) {
  .hero { grid-template-columns: 1fr; }
  .machine-stage { height: 520px; }
}

@media (max-width: 600px) {
  .machine-wrap { min-height: 335px; }
  .machine-stage { width: 100%; height: 345px; filter: drop-shadow(-10px 20px 28px rgba(0,0,0,.65)); }
}

@media (prefers-reduced-motion: reduce) {
  .machine-stage:before { display: none; }
  .machine-stage-label { transition: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
   SEAMLESS PASS
   Brief: no reflections, no lines and borders everywhere, nothing noisy — it
   should read as written, not generated. Surfaces are separated by TONE, not
   by outlines. Every hairline that was doing decorative work is removed; the
   few that carry real meaning (focus rings, control affordances) stay.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── typography ────────────────────────────────────────────────────────────
   PVText was Space Grotesk — the single most over-used face on generated
   sites. Body/UI moves to the platform grotesk (SF Pro on macOS, Segoe on
   Windows), which is neutral, modern and doesn't announce itself. The display
   face is kept for headlines only, where the character earns its place. */
:root {
  --pv-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter",
           "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
}
body, button, input, select, textarea, p, li, td, th, label, span, a {
  font-family: var(--pv-ui);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, .hero h1 { font-family: PVDisplay, var(--pv-ui); }
p, li { letter-spacing: -.004em; }

/* ── no outlines: separate by tone ─────────────────────────────────────── */
.card, .panel, .tile, .stat, .stat-tile, .drop-card, .machine-slot,
.machine-glass, .machine-console, .machine-tray, .list-row, .row,
.sidebar, .topbar, .modal, .machine-stage-label, .chip, .pill, .tag {
  border-color: transparent !important;
}
.card, .panel, .tile, .stat, .stat-tile, .drop-card {
  background: rgba(255, 255, 255, .026);
  box-shadow: none;
}
.card:hover, .drop-card:hover, .tile:hover { background: rgba(255, 255, 255, .045); }

/* structural chrome: a tone step, never a line */
.sidebar { border-right: 0 !important; background: #070808; backdrop-filter: none; }
.topbar  { border-bottom: 0 !important; background: rgba(7, 8, 8, .88); }

/* ── no reflections, no sheen, no glare ────────────────────────────────── */
.machine-glass:after,
.machine-halo,
[class*="sheen"], [class*="reflect"], [class*="glare"] { display: none !important; }
.machine-glass { box-shadow: none; background: transparent; }
.machine-stage { filter: none; }

/* the hero keeps one soft pool of light — no gradients stacked on gradients */
.hero:before {
  background: radial-gradient(56% 60% at 73% 48%, rgba(215, 182, 79, .085), transparent 68%);
}

/* ── quieter labels ────────────────────────────────────────────────────── */
.machine-stage-label {
  background: transparent;
  backdrop-filter: none;
  color: #5f6058;
  letter-spacing: .16em;
}

/* dividers only where a list genuinely needs separation, and then barely */
hr, .divider, .sep { border: 0; height: 1px; background: rgba(255, 255, 255, .05); }

/* focus stays visible — this is the one outline that must not go */
:focus-visible { outline: 2px solid var(--gold2, #d7b64f); outline-offset: 2px; }

/* ══════════════════════════════════════════════════════════════════════════
   SYSTEM PASS
   Fixes four faults found in review:
     · 22 hard-coded font sizes with nothing between 24 and 42 — no scale
     · 17 separate tiny-uppercase-tracked label styles doing the same job
     · ~30 unrelated spacing values; 46px between sections reads as one block
     · pack card meta un-pinned, so prices zig-zag 13px across the row
   ══════════════════════════════════════════════════════════════════════════ */

/* ── one type scale (1.25 off 16) ──────────────────────────────────────── */
:root {
  --t-xs: 13px; --t-sm: 14px; --t-base: 16px; --t-md: 20px;
  --t-lg: 25px; --t-xl: 31px; --t-2xl: 39px; --t-3xl: 49px;
  --s-1: 8px; --s-2: 16px; --s-3: 24px; --s-4: 40px; --s-5: 64px; --s-6: 96px;
}

/* ── ONE tracked-caps role. Everything else becomes readable sentence case ─ */
.eyebrow {
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase; font-weight: 600;
}
.metric-label, .pack-series, .side-status, .nav-label, .machine-stage-label,
.status-line, .status-copy, .rarity, .rank, .price-line, .feed-copy time {
  font-size: var(--t-xs) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.nav-label { font-size: 11px !important; letter-spacing: .14em !important; text-transform: uppercase !important; }

/* the lower page was all 9–13px; give it a floor */
.metric-label { color: #83847c; }
.metric-value { font-size: var(--t-2xl); line-height: 1.05; }
.pack-copy, .item-sub, .feed-copy { font-size: var(--t-sm); line-height: 1.5; }
.price { font-size: var(--t-lg); }

/* ── vertical rhythm: sections must read as separate chapters ───────────── */
.section { margin-top: var(--s-6); }
.metrics { gap: var(--s-3); margin: var(--s-3) 0 var(--s-5); }
.section-head { margin-bottom: var(--s-3); }
.pack-grid, .proof-grid, .profile-grid { gap: var(--s-3); }

/* ── pack cards: pin the meta row so prices land on one line ────────────── */
.pack-card { display: flex; flex-direction: column; }
.pack-body { flex: 1; display: flex; flex-direction: column; }
.pack-meta, .price-line { margin-top: auto; }
.pack-copy {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── normalized slab stages ─────────────────────────────────────────────── */
/* Marketplace slabs keep a neutral inspection stage. Pack pouches are
   transparent product cutouts and are intentionally presented frameless. */
.item-art, .detail-art:not(.pack-detail-art) {
  background: #101110 !important;
  position: relative;
}
.pack-art, .pack-detail-art { background: transparent; position: relative; }
.pack-art img, .item-art img {
  mix-blend-mode: normal;
  filter: drop-shadow(0 18px 26px rgba(0,0,0,.75)) contrast(1.06) saturate(1.04);
}
.pack-art::after {
  content: none;
}

/* ── activity feed: real columns instead of a 641px dead gutter ─────────── */
.feed-row {
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) 92px !important;
  align-items: center; gap: var(--s-2);
  padding: 12px 16px;
}
.feed-copy { min-width: 0; }
.feed-row time, .feed-row .rank { text-align: right; color: #6f7069; }

/* ══════════════════════════════════════════════════════════════════════════
   HERO STAGING
   Review: "the machine isn't staged — it's parked in a box, at 19% of screen"
   and "the headline is sized down to fit, so the biggest moment whispers".
   Both came from the same cause: an earlier refinement block of mine capped the
   h1 at 55px inside a column too narrow for it, so it broke to four lines.
   Widen the copy column, give the headline a real display size, and let the
   machine fill its stage by height.
   ══════════════════════════════════════════════════════════════════════════ */
.hero {
  grid-template-columns: minmax(0, 1.22fr) minmax(360px, 520px);
  gap: 28px;
  padding: 56px 44px 48px;
  min-height: 700px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.hero h1 {
  font-size: clamp(46px, 4.6vw, 68px) !important;
  line-height: .96;
  letter-spacing: -.032em;
  max-width: none !important;
  text-wrap: pretty;
}
.hero-copy { max-width: 660px; }
.hero-copy p { font-size: 17px; max-width: 46ch; }

/* The machine IS the hero. It gets the height of the screen, not a 12%-of-frame
   thumbnail floating in black — frameCamera fits the cabinet to whatever stage
   it is given, so growing the stage grows the model. */
.machine-wrap { min-height: min(80vh, 780px); }
.machine-stage { width: min(100%, 640px); height: min(80vh, 780px); }

/* Grounding: one soft ellipse under the base. Not a blanket drop-shadow on the
   whole canvas — that shadows the air around the cabinet as well as the floor. */
.machine-stage:after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  bottom: 4%;
  width: 46%;
  height: 3.4%;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.72) 0, rgba(0,0,0,.4) 45%, transparent 72%);
  pointer-events: none;
}

/* section headings step down so the hero clearly dominates */
.section-head h2 { font-size: clamp(24px, 2.2vw, 31px); letter-spacing: -.02em; }

@media (max-width: 1240px) {
  .hero { grid-template-columns: 1fr; min-height: 0; }
  .machine-wrap, .machine-stage { height: min(72vh, 620px); min-height: 0; }
}
@media (max-width: 600px) {
  .machine-wrap, .machine-stage { height: min(58vh, 420px); min-height: 0; }
}

/* Page heads that carry more than one control keep them on one row. */
.page-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.pack-model-note {
  margin: 9px 0 0;
  color: #bdb18b;
  font-size: 12px;
  line-height: 1.45;
}
.pack-model-note strong { color: #e6ca72; font-weight: 700; }

/* source: refinement.css lines 1-312, 337-342, 441-486, 589-607 */
:root{
  --bg:#0b0d0b;--panel:#151711;--panel2:#1c1f18;--line:rgba(255,255,255,.105);
  --text:#f7f4eb;--muted:#b3b1a8;--gold:#e0bd56;--gold2:#f0d47b;
  --pv-ui:ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable","Segoe UI",sans-serif;
  --vault-world-image:url("/assets/backgrounds/pokemon-vault-fullscreen-v2.webp");
  --vault-world-image-mobile:url("/assets/backgrounds/pokemon-vault-mobile-v2.webp");
  --vault-world-position:center 56%;
  --vault-world-position-mobile:76% top;
  --world-primary:150 98 255;
  --world-secondary:55 221 211;
  --floor-accent:169 140 255;
  font-family:var(--pv-ui)
}
:root[data-vault-background="dragon-ball-z"]{--vault-world-image:url("/assets/backgrounds/dragon-ball-z-vault-fullscreen-v2.webp");--vault-world-image-mobile:url("/assets/backgrounds/dragon-ball-z-vault-mobile-v2.webp");--vault-world-position:54% 55%;--vault-world-position-mobile:78% top;--world-primary:255 137 55;--world-secondary:79 159 255;--floor-accent:89 184 255}
:root[data-vault-background="one-piece"]{--vault-world-image:url("/assets/backgrounds/one-piece-vault-fullscreen-v2.webp");--vault-world-image-mobile:url("/assets/backgrounds/one-piece-vault-mobile-v2.webp");--vault-world-position:54% 55%;--vault-world-position-mobile:78% top;--world-primary:26 198 188;--world-secondary:255 105 88;--floor-accent:85 215 201}
:root[data-vault-background="pokemon"]{--vault-world-image:url("/assets/backgrounds/pokemon-vault-fullscreen-v2.webp");--vault-world-image-mobile:url("/assets/backgrounds/pokemon-vault-mobile-v2.webp");--vault-world-position:center 56%;--vault-world-position-mobile:76% top;--world-primary:150 98 255;--world-secondary:55 221 211;--floor-accent:169 140 255}
@font-face{font-family:"Pack Vault Condensed";src:local("DIN Condensed Bold"),url("/assets/fonts/PackVault-BebasNeue-Regular.ttf") format("truetype");font-display:swap;font-style:normal;font-weight:400}
html{scroll-behavior:auto}
body{background:var(--bg);font-family:var(--pv-ui);font-size:15px;line-height:1.55}
body,button,input,select,textarea,p,li,td,th,label,span,a,h1,h2,h3,.brand-name,.price,.metric-value,.rank,.machine-head strong,.machine-live,.item-body h3{font-family:var(--pv-ui)}
h1,h2,h3{font-weight:680;letter-spacing:-.035em}
h1{font-size:clamp(38px,4vw,58px);line-height:1.02}h2{font-size:clamp(28px,3vw,42px);line-height:1.08}h3{font-size:17px}
.price,.metric-value,.listing-price strong,.rank{font-variant-numeric:tabular-nums}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;transform:translateY(-150%);border-radius:8px;background:var(--gold);color:#080808;padding:10px 14px;font-weight:700}.skip-link:focus{transform:none}

/* Collector-world backdrop. The artwork is intentionally fixed and quiet so
   it creates a shared place across routes without competing with products. */
.shell{position:relative;isolation:isolate}
.shell:before{content:"";position:fixed;z-index:0;inset:0;pointer-events:none;background-image:linear-gradient(180deg,rgba(6,8,6,.6) 0%,rgba(6,8,6,.11) 15%,rgba(6,8,6,.05) 58%,rgba(6,8,6,.46) 100%),radial-gradient(128% 98% at 50% 44%,transparent 30%,rgba(6,8,6,.24) 70%,rgba(6,8,6,.62) 100%),var(--vault-world-image);background-position:center,center,var(--vault-world-position);background-repeat:no-repeat;background-size:cover}
.content{position:relative;z-index:1}

/* ── Top navigation ────────────────────────────────────────────────────
   One bar on every route. It floats over the backdrop art — a soft scrim
   at the top of a page so links stay legible over bright artwork, and a
   blurred plate once the page scrolls. Everything in it is a real target
   with a hover, active and focus state. */

.topbar {
  gap: 10px;
  padding: 0 clamp(14px, 2.2vw, 34px);
  background: linear-gradient(180deg, rgba(8, 10, 8, .9), rgba(8, 10, 8, .58) 58%, rgba(8, 10, 8, 0));
  backdrop-filter: none;
  box-shadow: none;
  transition: background .28s ease, backdrop-filter .28s ease, box-shadow .28s ease;
}
.shell.is-scrolled .topbar {
  background: rgba(9, 11, 9, .8);
  backdrop-filter: blur(20px) saturate(1.25);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .055), 0 22px 46px -32px #000;
}

.brand { display: flex; align-items: center; gap: 11px; flex: 0 0 auto; min-height: 44px; margin: 0; }
.brand-mark {
  width: 34px; height: 34px; border-radius: 9px;
  border-color: rgba(224, 189, 86, .5); font-size: 12px;
  box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .82), 0 0 0 1px rgba(224, 189, 86, .12);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.brand:hover .brand-mark, .brand:focus-visible .brand-mark {
  border-color: var(--gold2);
  box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .82), 0 0 22px rgba(224, 189, 86, .3);
}
.brand-name { color: #e7d59d; font-size: 13px; font-weight: 640; letter-spacing: .075em; white-space: nowrap; }

.topnav { display: flex; align-items: center; gap: 2px; min-width: 0; margin-left: clamp(8px, 1.5vw, 24px); }
.topnav .nav-link {
  position: relative; display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; padding: 0 clamp(9px, .85vw, 14px);
  border-radius: var(--nav-radius);
  color: #adaca4; font-size: 13.5px; font-weight: 540; letter-spacing: 0;
  white-space: nowrap; text-transform: none;
  transition: color .18s ease, background-color .18s ease;
}
.topnav .nav-link::after {
  content: ""; position: absolute; left: 50%; right: 50%; bottom: 4px;
  height: 2px; border-radius: 2px; opacity: 0;
  background: linear-gradient(90deg, rgba(224, 189, 86, 0), var(--gold), rgba(224, 189, 86, 0));
  transition: left .24s cubic-bezier(.32, .72, .3, 1), right .24s cubic-bezier(.32, .72, .3, 1), opacity .2s ease;
}
.topnav .nav-link:hover, .topnav .nav-link:focus-visible { background: rgba(255, 255, 255, .055); color: #f7f4eb; }
.topnav .nav-link:hover::after { left: 24%; right: 24%; opacity: .5; }
.topnav .nav-link.is-active { background: rgba(224, 189, 86, .1); color: var(--gold2); box-shadow: none; }
.topnav .nav-link.is-active::after { left: 22%; right: 22%; opacity: 1; }

.topnav .nav-badge {
  display: inline-flex; align-items: center; gap: 5px;
  margin: 0; border-radius: 5px; background: rgba(224, 189, 86, .15);
  padding: 3px 6px 3px 5px; color: #f0d47b;
  font-size: 9px; font-weight: 700; letter-spacing: .1em;
}
.topnav .nav-badge::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%;
  background: var(--green); box-shadow: 0 0 0 2px rgba(75, 225, 160, .15);
  animation: pv-live 2.4s ease-in-out infinite;
}
@keyframes pv-live { 50% { opacity: .3; } }

.topnav-more { position: relative; }
.topnav-more > summary {
  display: inline-flex; align-items: center; gap: 7px;
  min-height: 44px; padding: 0 12px; border-radius: var(--nav-radius);
  color: #adaca4; font-size: 13.5px; font-weight: 540;
  list-style: none; cursor: pointer; user-select: none;
  transition: color .18s ease, background-color .18s ease;
}
.topnav-more > summary::-webkit-details-marker { display: none; }
.topnav-more > summary:hover, .topnav-more > summary:focus-visible { background: rgba(255, 255, 255, .055); color: #f7f4eb; }
.topnav-more.is-active > summary { color: var(--gold2); }
.topnav-more > summary > i {
  width: 6px; height: 6px; opacity: .75;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg); transition: transform .2s ease;
}
.topnav-more[open] > summary > i { transform: translateY(1px) rotate(225deg); }
.topnav-menu {
  position: absolute; z-index: 70; top: calc(100% + 9px); left: 0;
  display: grid; gap: 2px; width: 226px; border-radius: 12px; padding: 7px;
  background: rgba(15, 17, 14, .96); backdrop-filter: blur(20px);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .07), 0 26px 56px rgba(0, 0, 0, .68);
  animation: pv-menu-in .16s ease;
}
@keyframes pv-menu-in { from { opacity: 0; transform: translateY(-6px); } }
.topnav-menu .nav-link { display: flex; min-height: 40px; padding: 0 11px; border-radius: 8px; font-size: 13.5px; }
.topnav-menu .nav-link::after { display: none; }
.topnav-menu .nav-link:hover, .topnav-menu .nav-link:focus-visible { background: rgba(255, 255, 255, .06); color: #f7f4eb; }
.topnav-menu .nav-link.is-active { background: rgba(224, 189, 86, .11); color: var(--gold2); }
.topnav .topnav-menu-collection { display: none; }

.top-spacer { flex: 1 1 auto; min-width: 6px; }
.demo-badge {
  flex: 0 0 auto; border: 0; border-radius: 6px; background: rgba(255, 255, 255, .07);
  padding: 5px 8px; color: #b9b7ad; font-size: 10px; font-weight: 600; letter-spacing: .05em;
}

.background-picker--topbar > summary {
  min-height: 44px; gap: 7px; border: 0; border-radius: var(--nav-radius);
  background: rgba(255, 255, 255, .05); padding: 0 11px; color: #a9a8a0; font-size: 12px;
  transition: background-color .18s ease, color .18s ease;
}
.background-picker--topbar > summary:hover, .background-picker--topbar > summary:focus-visible {
  background: rgba(255, 255, 255, .09); color: #f0eee6;
}
.background-picker--topbar > summary b { color: #e4d9b6; font-family: var(--pv-ui); font-size: 12.5px; font-weight: 620; letter-spacing: 0; }
.background-menu { top: calc(100% + 9px); border: 0; border-radius: 12px; background: rgba(15, 17, 14, .96); backdrop-filter: blur(20px); box-shadow: 0 0 0 1px rgba(255, 255, 255, .07), 0 26px 56px rgba(0, 0, 0, .68); animation: pv-menu-in .16s ease; }

.top-signin { min-height: 44px; padding: 0 11px; border-radius: var(--nav-radius); color: #bfbeb6; font-size: 13.5px; font-weight: 540; transition: background-color .18s ease, color .18s ease; }
.top-signin:hover, .top-signin:focus-visible { background: rgba(255, 255, 255, .055); color: #f7f4eb; }
.topbar > .gold-button {
  min-height: 44px; border-radius: var(--nav-radius); padding: 0 16px;
  font-size: 13px; font-weight: 660; letter-spacing: .005em;
  box-shadow: 0 6px 20px -8px rgba(224, 189, 86, .5);
}
.topbar > .gold-button:hover { transform: translateY(-1px); box-shadow: 0 10px 26px -8px rgba(224, 189, 86, .6); }
.balance-pill {
  min-height: 38px; border: 0; border-radius: var(--nav-radius);
  background: rgba(224, 189, 86, .1); padding: 0 13px;
  color: #e8d190; font-size: 13px; font-weight: 640; cursor: pointer;
  transition: background-color .18s ease, color .18s ease;
}
.balance-pill:hover, .balance-pill:focus-visible { background: rgba(224, 189, 86, .18); color: #f7ecc4; }
.avatar-button { width: 36px; height: 36px; border-radius: 10px; font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.avatar-button:hover { transform: translateY(-1px); filter: brightness(1.07); }

.topbar :is(a, button, summary):focus-visible { outline: 2px solid var(--gold2); outline-offset: 2px; }

/* Hamburger: three rules that fold into a close mark while the drawer is open. */
.mobile-menu { display: none; position: relative; width: 44px; height: 44px; border: 0; border-radius: var(--nav-radius); background: transparent; color: #cfcec6; cursor: pointer; transition: background-color .18s ease; }
.mobile-menu:hover { background: rgba(255, 255, 255, .06); }
.mobile-menu > i, .mobile-menu > i::before, .mobile-menu > i::after { position: absolute; width: 18px; height: 1.6px; border-radius: 2px; background: currentColor; }
.mobile-menu > i { left: 13px; top: 21px; transition: background-color .18s ease; }
.mobile-menu > i::before, .mobile-menu > i::after { content: ""; left: 0; transition: transform .24s cubic-bezier(.22, .61, .36, 1); }
.mobile-menu > i::before { top: -6px; }
.mobile-menu > i::after { top: 6px; }
.shell.menu-open .mobile-menu > i { background: transparent; }
.shell.menu-open .mobile-menu > i::before { transform: translateY(6px) rotate(45deg); }
.shell.menu-open .mobile-menu > i::after { transform: translateY(-6px) rotate(-45deg); }

/* Drawer: the same destinations as the bar, sized for thumbs. */
.nav-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.nav-drawer .brand { margin: 0; }
.nav-label { padding: 0 12px; margin: 12px 0 8px; color: #8a8b83; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.nav-label--account { margin-top: 22px; }
.nav { gap: 2px; }
.nav-drawer .nav-link {
  display: flex; align-items: center; gap: 10px; min-height: 46px;
  border-radius: 10px; padding: 0 12px; color: #b4b3ab;
  font-size: 15px; font-weight: 520; letter-spacing: 0; text-transform: none;
  transition: color .18s ease, background-color .18s ease;
}
.nav-drawer .nav-link:hover, .nav-drawer .nav-link:focus-visible { background: rgba(255, 255, 255, .055); color: #f7f4eb; }
.nav-drawer .nav-link.is-active { background: rgba(224, 189, 86, .11); color: var(--gold2); box-shadow: none; }
.nav-drawer .nav-badge { margin-left: auto; border-radius: 4px; background: rgba(224, 189, 86, .16); padding: 3px 6px; color: #f0d47b; font-size: 9px; letter-spacing: .08em; }
.nav-icon { display: none; }
.side-status { border-top: 1px solid var(--line); }
.status-line { font-size: 11px; letter-spacing: .05em; text-transform: none; }
.status-copy { color: #8f9188; font-size: 11px; letter-spacing: 0; text-transform: none; }

/* Below 1180px the bar keeps its five most-used links and folds the
   collection into the More menu rather than wrapping. */
@media (max-width: 1180px) {
  .topnav .topnav-collection { display: none; }
  .topnav .topnav-menu-collection { display: flex; }
  .background-picker--topbar > summary > span { display: none; }
  .demo-badge { display: none; }
}
.topbar-brand, .home-top-nav, .home-live-state, .mobile-brand, .ticker { display: none; }

/* Three quiet franchise backdrops. Desktop uses one compact popover; the
   mobile drawer exposes the same choices as full-width touch targets. */
.background-picker{position:relative}.background-picker--sidebar{display:none}.background-picker--topbar{flex:0 0 auto}
.background-picker--topbar>summary{display:flex;align-items:center;gap:7px;min-height:44px;list-style:none;border:1px solid var(--line);border-radius:8px;background:#10110f;padding:0 11px;color:#92938c;font-size:11px;cursor:pointer;user-select:none}.background-picker--topbar>summary::-webkit-details-marker{display:none}.background-picker--topbar>summary:hover,.background-picker--topbar>summary:focus-visible{border-color:#3e3d36;background:#151614;color:#c1c0b8}.background-picker--topbar>summary b{color:#dfd8bf;font-family:"Pack Vault Condensed",var(--pv-ui);font-size:13px;font-weight:400;letter-spacing:.025em}.background-picker--topbar>summary>i{width:6px;height:6px;margin-left:2px;border-right:1px solid #8d8c84;border-bottom:1px solid #8d8c84;transform:translateY(-2px) rotate(45deg);transition:transform .15s}.background-picker--topbar[open]>summary>i{transform:translateY(2px) rotate(225deg)}
.background-menu{position:absolute;z-index:70;top:calc(100% + 10px);right:0;width:244px;border:1px solid var(--line);border-radius:10px;background:#0d0e0d;padding:7px;box-shadow:0 18px 48px rgba(0,0,0,.6)}
.background-options{display:grid;gap:4px}.background-option{display:grid;grid-template-columns:56px minmax(0,1fr) 10px;align-items:center;gap:10px;width:100%;min-height:52px;border:1px solid transparent;border-radius:7px;background:transparent;padding:5px 8px;color:#b3b2aa;text-align:left;cursor:pointer}.background-option:hover,.background-option:focus-visible{border-color:var(--line);background:#151614;color:var(--text)}.background-option.is-active{border-color:rgba(198,170,91,.28);background:#181713;color:#eadba0}.background-option-thumb{display:block;width:56px;height:34px;border-radius:4px;background-position:center;background-size:cover;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}.background-option[data-background-theme="pokemon"] .background-option-thumb{background-image:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.18)),url("/assets/backgrounds/pokemon-vault-thumb-v2.webp")}.background-option[data-background-theme="dragon-ball-z"] .background-option-thumb{background-image:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.18)),url("/assets/backgrounds/dragon-ball-z-vault-thumb-v2.webp")}.background-option[data-background-theme="one-piece"] .background-option-thumb{background-image:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.18)),url("/assets/backgrounds/one-piece-vault-thumb-v2.webp")}.background-option>span:nth-child(2){font-family:"Pack Vault Condensed",var(--pv-ui);font-size:14px;letter-spacing:.025em}.background-option>i{width:8px;height:8px;border:1px solid #55564f;border-radius:50%}.background-option.is-active>i{border-color:var(--gold);background:var(--gold);box-shadow:0 0 0 3px rgba(198,170,91,.09)}

/* Flat, authored controls. Pills are reserved for status only. */
.avatar-button,.outline-button,.gold-button,.ghost-button,.danger-button,.commerce-button,.button-text,.balance-pill{min-height:44px;border-radius:8px;box-shadow:none;transform:none;transition:background .15s,color .15s,border-color .15s;cursor:pointer;font-size:13px;font-weight:650}
.gold-button{border:1px solid #f0cf68;background:linear-gradient(135deg,#f3d66f,#dcb246);color:#10110d;padding:10px 16px}.gold-button:hover{background:linear-gradient(135deg,#ffe58a,#e7bf53);filter:none;transform:none}
.outline-button{border:1px solid var(--line);background:#141513;color:#e8e6de;padding:10px 15px}.outline-button:hover{border-color:#474842;background:#191a18;filter:none;transform:none}
.ghost-button{border:1px solid transparent;background:#151614;color:#cfcec7;padding:10px 14px}.danger-button{border:1px solid #4f2c30;background:#1b1112;color:#ef9a9f;padding:10px 14px}
.button-text{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:transparent;color:#c9c7bf;padding:8px 5px}.button-text:hover{color:var(--gold2)}.danger-text{color:#cf7d82}
.balance-pill{border:1px solid var(--line);background:#10110f;color:#d4c88f;padding:9px 12px}
.avatar-button{width:42px;border:0;background:#28271f;color:#dfcd82}
.commerce-button{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;border:0;background:#1a1913;color:#e9dfba;padding:11px 14px;text-decoration:none}.commerce-button:hover{background:#232117;color:#f3ecd2}.commerce-button--owner{border:1px solid var(--line);background:#141513;color:#c7c5bd}

.content{padding-top:calc(var(--top) + 42px)}.page{max-width:1320px}.page-head{margin-bottom:34px}.page-sub{font-size:15px;line-height:1.6;color:var(--muted)}
.eyebrow{display:block;margin-bottom:10px;color:#a89661;font-size:12px;letter-spacing:.06em;text-transform:none}.eyebrow:before{display:none}
.card{border:0;border-radius:12px;background:var(--panel);box-shadow:none}

/* Home: one signature object, quiet UI around it. */
.hero{min-height:610px;grid-template-columns:minmax(0,1fr) minmax(420px,570px);gap:30px;padding:48px 34px 30px;background:transparent;overflow:hidden}
.hero:before{background:none}.hero-copy{max-width:570px}.hero h1{font-size:clamp(44px,4.3vw,67px);line-height:.98;max-width:12ch}.gold-text{display:block;background:none;color:#d7c16f}
.hero-copy p{max-width:520px;color:#aaa9a2;font-size:17px;line-height:1.62}.hero-actions{margin-top:25px}.proof-chip{display:none}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:8px 0 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.metric{padding:18px 22px;border-right:1px solid var(--line)}.metric:last-child{border-right:0}.metric-label{font-size:11px;letter-spacing:.04em;text-transform:none;color:#82827b}.metric-value{margin-top:4px;font-size:22px;font-weight:650;color:#ece7d5}
.demo-notice{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:0 3px 18px;color:#777871;font-size:12px}.demo-notice strong{color:#b7a968;font-weight:650}
.section{margin-top:54px}.section-head{margin-bottom:22px}

/* Product stages and editorial tiles */
.pack-grid,.market-grid,.vault-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 22px}
.pack-card,.market-card,.vault-card{display:flex;flex-direction:column;min-width:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;transition:none}
.pack-card{color:inherit;text-decoration:none}
.pack-card:hover,.market-card:hover{transform:none;border:0}.pack-card:focus-visible{outline:2px solid var(--gold);outline-offset:5px;border-radius:9px}.pack-art,.item-art{position:relative;border-radius:8px;background:#0e0f0e;overflow:hidden}
.pack-art,.pack-detail-art{background:transparent}.pack-art{height:auto;aspect-ratio:4/5;padding:0}.pack-art img,.pack-detail-art img{width:100%;height:100%;object-fit:contain;mix-blend-mode:normal!important;filter:drop-shadow(0 12px 14px rgba(0,0,0,.24));transition:transform .18s}.pack-card:hover .pack-art img{transform:scale(1.012)}
.pack-body,.item-body{display:flex;flex:1;flex-direction:column;padding:15px 1px 0}.pack-series,.rarity{font-size:11px;letter-spacing:.06em;text-transform:none}.pack-card h2,.pack-card h3{margin:5px 0 0;font-size:19px;line-height:1}.pack-copy{display:none}
.pack-meta{margin-top:12px;border:0;padding:0}.price{color:#ebe8df;font-size:17px;font-weight:650}.stock{color:#81817a;font-size:11px;letter-spacing:0;text-transform:none}
.pack-link-label{display:inline-flex;align-items:center;gap:7px;margin-top:13px;color:#aaa99f;font-family:"Pack Vault Condensed",var(--pv-ui);font-size:12px;letter-spacing:.035em}.pack-link-label i{color:var(--gold);font-style:normal;transition:transform .15s}.pack-card:hover .pack-link-label,.pack-card:focus-visible .pack-link-label{color:#f0ece2}.pack-card:hover .pack-link-label i,.pack-card:focus-visible .pack-link-label i{transform:translateX(3px)}
.item-art{height:auto;aspect-ratio:4/5;padding:0;background:linear-gradient(145deg,#151714,#0b0c0b);isolation:isolate}.item-art:before{content:"";position:absolute;inset:8% 10% 7%;border:1px solid rgba(198,170,91,.12);background:radial-gradient(circle at 50% 18%,rgba(198,170,91,.08),transparent 45%);z-index:-1}.item-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 24px rgba(0,0,0,.58))}.item-body h2,.item-body h3{margin:6px 0 3px;font-size:15px;font-weight:650;line-height:1.2}.item-sub{font-size:12px}
.market-card .item-art{background:#111210}
.market-card .item-art:before{content:none}
.market-card .item-art img{mix-blend-mode:normal}
.item-art{cursor:pointer}.item-art:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.item-title-link{color:inherit;text-decoration:none}.item-title-link:hover,.item-title-link:focus-visible{color:var(--gold2)}.detail-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0 0 20px;padding-right:8px;color:#aaa9a2;font-size:13px;text-decoration:none}.detail-back:hover{color:var(--gold2)}
.boot-mark,.brand-mark,.brand-name,.machine-head strong,.machine-live{font-family:var(--pv-ui)}
.brand-name,.eyebrow,h1,h2,h3,.gold-button,.outline-button,.commerce-button,.button-text,.nav-link{font-family:"Pack Vault Condensed",var(--pv-ui);font-weight:400}
.brand-name{letter-spacing:.055em}.gold-button,.outline-button,.commerce-button,.button-text,.nav-link{letter-spacing:.025em}
h1,h2,h3{letter-spacing:.012em}h1{font-size:clamp(42px,4.4vw,64px);line-height:.94}h2{font-size:clamp(31px,3.2vw,46px);line-height:.98}h3{font-size:19px;line-height:1}
.machine-stage-label{bottom:10px;gap:10px;color:#8b8b84;font-size:10px;font-weight:650;letter-spacing:.08em}.machine-stage-label span{font-size:10px}.machine-stage-label b{font-weight:650}
.machine-drop-status{position:absolute;z-index:5;left:50%;top:2px;display:grid;justify-items:center;gap:4px;width:max-content;max-width:88%;transform:translate(-50%,-6px);border:1px solid rgba(198,170,91,.16);border-radius:4px;background:rgba(7,8,7,.88);padding:7px 10px;color:#d9c583;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;text-align:center;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .2s,transform .35s}
.machine-drop-status span{color:#8e8878;font-size:9px}.machine-drop-status b{font-size:11px;font-weight:700}.machine-stage.is-deploying .machine-drop-status{opacity:1;transform:translate(-50%,0)}.machine-stage.is-booting .machine-drop-status{opacity:0;transform:translate(-50%,-6px)}.machine-stage.is-deploying .machine-stage-label{opacity:0;transform:translate(-50%,8px)}.machine-stage.is-impact:before{animation:pv-impact-flash .52s cubic-bezier(.12,.72,.2,1) both}.machine-stage.is-deployed .machine-drop-status{opacity:0}
@keyframes pv-impact-flash{0%{opacity:0;transform:scale(.35)}18%{opacity:.62}48%{opacity:.24;transform:scale(.95)}100%{opacity:0;transform:scale(1.18)}}
.feed-time,.leader-label,.open-note{color:#92928b;font-size:11px}.leader-label{letter-spacing:.07em;text-transform:none}
.market-action{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px}.listing-price{display:grid;gap:1px}.listing-price span,.listing-price small{color:#85857e;font-size:11px}.listing-price strong{color:#f0eee7;font-size:21px;font-weight:650}.market-action--detail{margin-top:28px;border-top:1px solid var(--line);padding-top:20px}
.ownership-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:17px}.ownership-actions .button-text{font-size:12px}.status-note{color:#aaa681;font-size:12px}

/* Commerce/details */
.filters{gap:8px;margin-bottom:30px;border-bottom:1px solid var(--line);padding-bottom:18px}.field{border:1px solid var(--line);border-radius:8px;background:#111210;color:#eee;padding:11px 12px}.field:focus{border-color:#75683d;box-shadow:0 0 0 3px rgba(198,170,91,.08)}
.detail-layout{gap:46px}.detail-art,.detail-copy{border:0;border-radius:0;background:transparent}.detail-art{min-height:0;aspect-ratio:4/5;border-radius:8px;background:#0e0f0e;padding:0}.detail-art img,.pack-detail-art img{width:100%;height:100%;max-height:none;object-fit:contain}.detail-copy{padding:24px 0}.detail-copy h1{font-size:clamp(38px,4vw,54px)}
.detail-layout--product>.detail-art{grid-column:1;grid-row:1}.detail-layout--product>.detail-copy{grid-column:2;grid-row:1}.detail-subhead{margin:34px 0 16px;font-size:23px}
.price-line{border-color:var(--line)}.price-line .price{font-size:28px}.open-box{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:22px 0 0}.opening-details{margin-top:14px;color:#81817a;font-size:12px}.opening-details summary{cursor:pointer;color:#b9b7ae}.opening-details code{display:block;margin-top:8px;overflow-wrap:anywhere;color:#958657}
.item-facts,.purchase-review dl{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.item-facts div,.purchase-review dl div{padding:16px 0}.item-facts dt,.purchase-review dt{color:#7f7f78;font-size:11px}.item-facts dd,.purchase-review dd{margin:4px 0 0;color:#ece9df;font-size:18px;font-weight:650}
.fairness{border-color:var(--line)}
.proof-pool{margin-top:10px}.proof-pool pre{max-height:190px;margin:8px 0 0;overflow:auto;white-space:pre-wrap;color:#a8a69d;font:10px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}

/* Flat data, modals and feedback */
.feed{gap:0}.feed-row{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:12px 3px}.feed-image{border-radius:6px}.leaderboard{border-radius:0;background:transparent}.leader-row{border-color:var(--line)}.leader-row.is-top{background:transparent}.rank{font-weight:650}
.ledger{border:0;border-radius:0;background:transparent}.ledger-row{border-bottom:1px solid var(--line);background:transparent}
.modal-backdrop{background:rgba(0,0,0,.94);backdrop-filter:none}.modal{border:1px solid var(--line);border-radius:12px;background:#131412;box-shadow:0 28px 90px #000;padding:25px}.close-button{border-radius:8px;background:#20211e}
.auth-tabs{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0}.auth-tabs button{border-radius:0}.auth-tabs button.is-active{background:transparent;border-bottom:2px solid var(--gold);color:#eadb9a}
.purchase-name{font-size:18px;font-weight:650}.purchase-review .gold-button{width:100%;margin-top:14px}.toast{border-color:var(--line);border-radius:8px;background:#151614;box-shadow:0 16px 50px #000}
.empty{border:0;border-radius:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gate-panel,.empty-state{display:grid;justify-items:center;gap:18px;padding:64px 24px;text-align:center}.gate-panel .boot-mark{margin:0}.gate-panel h2{margin:6px 0}.empty-state .eyebrow{margin:0}.empty-state .page-sub{max-width:520px;margin:0 0 4px}.reveal-summary{margin-inline:auto}.reveal-art{overflow:hidden}.reveal-art img{width:auto;height:min(48vh,430px);max-width:100%;object-fit:contain;pointer-events:none}

@media(max-width:1080px){
  .topnav{display:none}.nav-drawer{overflow-y:auto}.sidebar-close{display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:10px;background:rgba(255,255,255,.055);color:#a7a69e;font-size:22px;line-height:1;cursor:pointer}.sidebar-close:hover,.sidebar-close:focus-visible{background:rgba(255,255,255,.1);color:#f1eee4}.background-picker--topbar{display:none}.background-picker--sidebar{display:block;margin-top:24px}.background-picker--sidebar>.nav-label{margin:0 0 9px}.background-options--sidebar .background-option{min-height:48px}.mobile-menu{display:block}.demo-badge{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding:28px 18px 24px}.hero-copy{order:0}.machine-wrap{order:1;min-height:0;height:min(64vh,580px)}.machine-stage{height:min(64vh,580px)}
  .pack-grid,.market-grid,.vault-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:28px}.detail-art{align-self:start}.detail-copy{padding-top:4px}.detail-copy h1{font-size:clamp(34px,4.6vw,48px)}
}
@media(max-width:1080px) and (orientation:portrait){
  .shell:before{background-image:linear-gradient(180deg,rgba(8,9,8,.48),rgba(8,9,8,.7)),radial-gradient(circle at 50% 42%,rgba(8,9,8,.14),rgba(8,9,8,.34) 52%,rgba(8,9,8,.72) 100%),var(--vault-world-image-mobile);background-position:center,center,var(--vault-world-position-mobile)}
}
@media(max-width:600px){
  body{font-size:15px}.shell:before{background-image:linear-gradient(180deg,rgba(8,9,8,.5),rgba(8,9,8,.74)),radial-gradient(circle at 50% 42%,rgba(8,9,8,.15),rgba(8,9,8,.38) 52%,rgba(8,9,8,.76) 100%),var(--vault-world-image-mobile);background-position:center,center,var(--vault-world-position-mobile)}.topbar{gap:9px}.topbar>.gold-button{padding:9px 11px}.topbar .demo-badge{display:none}.content{padding-top:calc(var(--top) + 18px)}
  .hero{padding:18px 6px 18px}.hero h1{font-size:42px;max-width:9.5ch}.hero-copy p{font-size:15px}.hero-actions{margin-top:19px}.machine-wrap{min-height:0;height:min(52vh,430px)}.machine-stage{height:min(52vh,430px)}
  .metrics{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.metric{padding:14px 10px}.metric-value{font-size:18px}
  .demo-notice{align-items:flex-start;flex-direction:column;gap:3px}.pack-grid,.market-grid,.vault-grid{grid-template-columns:1fr;gap:34px}.pack-art,.item-art{aspect-ratio:4/5}
  .pack-body,.item-body{padding-top:13px}.detail-layout{grid-template-columns:1fr}.detail-layout--product>.detail-copy{grid-column:1;grid-row:1}.detail-layout--product>.detail-art{grid-column:1;grid-row:2}.detail-art{min-height:0;padding:0}.pack-detail-art img{width:100%}.detail-copy{padding:5px 0}.item-facts,.purchase-review dl{grid-template-columns:1fr}.market-action{align-items:center}.commerce-button{min-width:112px}.open-box .gold-button{min-height:44px}
}

/* Final brand lockup. This deliberately sits after the captured stylesheet's
   legacy PVDisplay rules, so the physical-machine face owns every brand label. */
h1,h2,h3,.hero h1,.brand-name,.eyebrow,.gold-button,.outline-button,.commerce-button,.button-text,.nav-link{
  font-family:"Pack Vault Condensed",var(--pv-ui);
  font-style:normal;
  font-weight:400;
}
.hero h1{font-size:clamp(48px,4.45vw,64px);line-height:.92;max-width:12ch;letter-spacing:.01em}
.hero h1 .gold-text{font-family:"Pack Vault Condensed",var(--pv-ui);font-style:normal;font-weight:400;letter-spacing:.01em}
@media(max-width:600px){.hero h1{font-size:46px;line-height:.92;max-width:10.5ch}}

@media(prefers-reduced-data:reduce),(forced-colors:active),(prefers-contrast:more){
  .shell:before{background-image:linear-gradient(180deg,rgba(8,9,8,.92),var(--bg))}.background-picker{display:none!important}
}

/* ── reveal modal: the card outweighs the copy ──────────────────────────── */
.reveal h2{font-size:26px;line-height:1.1;margin:10px 0 6px}
.reveal-art{height:min(58vh,510px)}
.reveal-art img{height:min(56vh,500px)}
.reveal .rarity{letter-spacing:.07em}
@media(max-width:600px){.reveal h2{font-size:23px}.reveal-art,.reveal-art img{height:min(46vh,360px)}}
/* ── Reading glass ─────────────────────────────────────────────────────
   The artwork runs edge to edge on every route now, graded with a
   vignette instead of a flat wash so its golds keep their punch. The
   trade is that any surface carrying a row of text has to bring its own
   ground — these plates are blurred rather than opaque, so the picture
   still reads through them instead of being dimmed away. */
.leaderboard, .feed, .ledger, .metrics, .proof-grid, .vending-facts, .vending-steps, .home-trust {
  border-radius: 14px;
  background: rgba(10, 12, 10, .56);
  padding: 2px clamp(12px, 1.4vw, 20px);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .05), 0 34px 76px -50px #000;
  backdrop-filter: blur(18px) saturate(.92);
  -webkit-backdrop-filter: blur(18px) saturate(.92);
}
.metrics, .vending-facts, .vending-steps, .home-trust { border-top: 0; border-bottom: 0; padding: 0; overflow: hidden; }
.home-trust { background: rgba(10, 12, 10, .5); }
.home-trust div + div { border-left-color: rgba(255, 255, 255, .09); }
.home-trust div { padding-inline: 18px; }
.ledger { border: 0; gap: 0; }
.ledger-row { background: transparent; }
.feed-row:last-child, .leader-row:last-child, .ledger-row:last-child { border-bottom: 0; }
.proof-grid { padding: 14px clamp(12px, 1.4vw, 20px); }

/* Segmented controls and filter bars sit in the head row, which is the
   one place content overlaps the bright side of the artwork. */
.page-head .auth-tabs, .filters {
  border-radius: 12px;
  background: rgba(10, 12, 10, .58);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .055);
  backdrop-filter: blur(18px) saturate(.92);
  -webkit-backdrop-filter: blur(18px) saturate(.92);
}
.page-head .auth-tabs { padding: 3px; }
.filters { border-bottom: 0; padding: 10px; }
.filters .field { border-color: rgba(255, 255, 255, .085); background: rgba(255, 255, 255, .035); }
.page-head .auth-tabs { border-bottom: 0; }
.page-head .auth-tabs a { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; padding: 0 16px; color: #a9a8a0; font-size: 13.5px; transition: color .18s ease, background-color .18s ease; }
.page-head .auth-tabs a:hover { background: rgba(255, 255, 255, .05); color: #f0eee6; }
.page-head .auth-tabs a.is-active { background: rgba(224, 189, 86, .13); border-bottom: 0; color: var(--gold2); }

/* Page headings sit directly on the picture, so they carry a soft
   shadow instead of a plate — the art is darkest behind them. */
.page-head h1, .page-head .eyebrow, .page-head .page-sub, .section-head h2 {
  text-shadow: 0 2px 18px rgba(0, 0, 0, .55);
}

/* A deliberate order-review boundary before the irreversible pack draw. Live
   payment names are text-only and are injected only from approved config. */
.modal:has(.checkout-review){width:min(100%,620px);padding:0;overflow:hidden}
.checkout-review{display:grid;gap:0;max-height:calc(100dvh - 36px);overflow:auto;padding:24px;color:#ece9df}
.checkout-review .modal-head{align-items:flex-start;margin:0 0 18px}.checkout-review .modal-head .eyebrow{margin-bottom:6px;color:#b6a66e;font-size:10px;font-weight:690;letter-spacing:.085em;text-transform:uppercase}.checkout-review .modal-head h2{max-width:13ch;font-size:34px;line-height:.96;text-wrap:balance}.checkout-review .close-button{flex:0 0 44px;width:44px;height:44px;min-height:44px;color:#d5d2c9}.checkout-review .close-button:hover,.checkout-review .close-button:focus-visible{background:#2a2b27;color:#fff}.checkout-review .close-button:disabled{cursor:wait;opacity:.45}
.checkout-pack{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:15px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:linear-gradient(135deg,rgba(224,189,86,.065),rgba(255,255,255,.018));padding:11px}.checkout-pack-art{display:grid;place-items:center;height:84px;border-radius:7px;background:#0d0f0d;overflow:hidden}.checkout-pack-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 9px rgba(0,0,0,.45))}.checkout-pack-copy{min-width:0}.checkout-pack-copy>span{color:#bcae75;font-size:9px;font-weight:720;letter-spacing:.075em;text-transform:uppercase}.checkout-pack-copy h3{margin:5px 0 4px;overflow-wrap:anywhere;color:#f5f1e8;font-size:20px;line-height:1.05}.checkout-pack-copy p{margin:0;color:#8f9189;font-size:11px}
.checkout-summary{display:grid;grid-template-columns:1fr 1fr;margin:17px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.checkout-summary>div{display:grid;align-content:start;min-height:88px;padding:14px 13px 13px 0}.checkout-summary>div:nth-child(even){padding-left:16px;border-left:1px solid var(--line)}.checkout-summary>div:nth-child(n+3){border-top:1px solid var(--line)}.checkout-summary dt{color:#7e8079;font-size:10px;letter-spacing:.025em}.checkout-summary dd{display:grid;gap:3px;margin:5px 0 0;color:#f0ede4;font-size:16px;font-weight:680;line-height:1.2}.checkout-summary dd small{color:#85877f;font-size:9.5px;font-weight:520;line-height:1.35}
.checkout-randomness{margin-top:17px}.checkout-randomness h3,.checkout-methods h3{margin:0;color:#eeebe2;font-family:var(--pv-ui);font-size:13px;font-weight:710;line-height:1.25}.checkout-randomness p,.checkout-methods p{margin:6px 0 0;color:#94958e;font-size:11px;line-height:1.52}.checkout-odds{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.checkout-odds span{display:flex;align-items:center;gap:5px;min-height:28px;border:1px solid rgba(255,255,255,.075);border-radius:6px;background:#10110f;padding:4px 8px;color:#999a93;font-size:9px}.checkout-odds b{color:#d7d2c5;font-size:9px;font-weight:680}.checkout-randomness>a{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-top:5px;color:#d7c276;font-size:11px;font-weight:650;text-decoration:none}.checkout-randomness>a:hover,.checkout-randomness>a:focus-visible{color:#f1d980}.checkout-randomness>a[aria-disabled="true"]{pointer-events:none;opacity:.5}
.checkout-methods{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:11px;border:1px solid rgba(224,189,86,.14);border-radius:9px;background:rgba(224,189,86,.035);padding:12px}.checkout-methods ul{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap;margin:0;padding:0;list-style:none}.checkout-methods li{min-height:28px;border:1px solid rgba(224,189,86,.18);border-radius:5px;background:#151612;padding:6px 8px;color:#dfd4aa;font-size:9px;font-weight:690;white-space:nowrap}
.checkout-balance{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 16px;margin-top:16px;border-radius:8px;background:#0f100f;padding:12px 13px}.checkout-balance span{color:#8e9089;font-size:10px}.checkout-balance b{color:#e8e4da;font-size:12px;font-variant-numeric:tabular-nums}.checkout-balance .is-low{color:#e99898}.checkout-alert,.checkout-recovery{margin:10px 0 0;border:1px solid #5b3033;border-radius:7px;background:#1c1112;padding:9px 10px;color:#eda4a6;font-size:10px;line-height:1.45}.checkout-recovery{display:flex;align-items:flex-start;gap:7px;border-color:rgba(224,189,86,.17);background:#16150f;color:#bdb28e}.checkout-recovery span{color:#dfc668;font-size:14px}.checkout-legal{margin:11px 0 0;color:#74766f;font-size:9.5px;line-height:1.45}
.checkout-actions{display:grid;grid-template-columns:minmax(110px,.36fr) minmax(0,1fr);gap:8px;margin-top:15px}.checkout-actions>button{width:100%;min-height:46px}.checkout-actions .button-text{border:1px solid var(--line);border-radius:9px;background:#151614;color:#b9b9b2}.checkout-actions .button-text:hover,.checkout-actions .button-text:focus-visible{border-color:#454640;background:#1b1c19;color:#ece9df}.checkout-actions .gold-button:disabled{border-color:#4c4735;background:#26251f;color:#8c8879;cursor:not-allowed}.checkout-review.is-processing .checkout-pack,.checkout-review.is-processing .checkout-summary,.checkout-review.is-processing .checkout-randomness,.checkout-review.is-processing .checkout-methods,.checkout-review.is-processing .checkout-balance,.checkout-review.is-processing .checkout-legal{opacity:.58}.checkout-review.is-processing .checkout-actions .gold-button{position:relative;color:transparent}.checkout-review.is-processing .checkout-actions .gold-button:after{content:"Committing draw…";position:absolute;inset:0;display:grid;place-items:center;color:#d8ccb0}

@media(min-width:601px) and (max-height:760px){
  .checkout-review{max-height:calc(100dvh - 24px);padding:18px 22px}.checkout-review .modal-head{margin-bottom:10px}.checkout-review .modal-head h2{font-size:30px}.checkout-pack{grid-template-columns:66px minmax(0,1fr);gap:12px;padding:8px}.checkout-pack-art{height:70px}.checkout-pack-copy h3{font-size:18px}.checkout-summary{margin-top:10px}.checkout-summary>div{min-height:70px;padding-top:9px;padding-bottom:9px}.checkout-summary dd{margin-top:3px;font-size:14px}.checkout-randomness{margin-top:11px}.checkout-randomness p{margin-top:4px;line-height:1.4}.checkout-odds{margin-top:7px}.checkout-randomness>a{min-height:36px;margin-top:2px}.checkout-balance{margin-top:8px;padding:8px 11px}.checkout-legal{margin-top:6px}.checkout-actions{margin-top:9px}.checkout-actions>button{min-height:44px}
}

@media(max-width:600px){
  .modal-backdrop:has(.checkout-review){align-items:end;padding:0}.modal:has(.checkout-review){width:100%;max-height:100dvh;border-right:0;border-bottom:0;border-left:0;border-radius:16px 16px 0 0}.checkout-review{max-height:min(92dvh,760px);padding:18px 16px calc(16px + env(safe-area-inset-bottom))}.checkout-review .modal-head{margin-bottom:14px}.checkout-review .modal-head h2{font-size:29px}.checkout-pack{grid-template-columns:62px minmax(0,1fr);gap:12px;padding:9px}.checkout-pack-art{height:68px}.checkout-pack-copy h3{font-size:18px}.checkout-summary{grid-template-columns:1fr}.checkout-summary>div{min-height:0;padding:11px 1px}.checkout-summary>div:nth-child(even){padding-left:1px;border-left:0}.checkout-summary>div+div{border-top:1px solid var(--line)}.checkout-summary dd{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:14px}.checkout-summary dd small{text-align:right}.checkout-methods{grid-template-columns:1fr}.checkout-methods ul{justify-content:flex-start}.checkout-actions{position:sticky;z-index:3;bottom:calc(-16px - env(safe-area-inset-bottom));grid-template-columns:1fr;margin:15px -16px calc(-16px - env(safe-area-inset-bottom));padding:13px 16px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(16,17,15,0),#10110f 18px,#10110f)}.checkout-actions .gold-button{grid-row:1}.checkout-actions .button-text{grid-row:2}
}

/* source: chat.css */
/* ── Vault floor chat ───────────────────────────────────────────────────
   A pull-out room that lives outside #app, so it survives route changes and
   stays usable while a pack rip has the screen. Everything reads from the
   site's own custom properties, with fallbacks, so a later palette change
   carries it along instead of leaving it behind. */

#pv-chat {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 900;
  display: block;
  width: min(384px, 100vw);
  overflow: hidden;
  pointer-events: none;
  font-family: var(--pv-ui, ui-sans-serif, -apple-system, sans-serif);
}
#pv-chat > * { pointer-events: auto; }

/* ── The tab ─────────────────────────────────────────────────────────── */

.pv-chat-tab {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 128px;
  border: 0;
  border-radius: 12px 0 0 12px;
  background: rgba(16, 18, 15, .86);
  padding: 16px 11px 16px 10px;
  color: var(--muted, #b3b1a8);
  cursor: pointer;
  backdrop-filter: blur(18px) saturate(1.05);
  -webkit-backdrop-filter: blur(18px) saturate(1.05);
  box-shadow:
    inset 1px 0 0 rgba(255, 255, 255, .07),
    inset 0 1px 0 rgba(255, 255, 255, .05),
    -12px 0 34px -20px #000;
  transition: background-color .22s cubic-bezier(.22, .61, .36, 1),
              color .22s cubic-bezier(.22, .61, .36, 1),
              transform .26s cubic-bezier(.16, 1, .3, 1);
}
.pv-chat-tab:hover,
.pv-chat-tab:focus-visible {
  background: rgba(24, 26, 21, .94);
  color: var(--text, #f7f4eb);
  transform: translateY(-50%) translateX(-3px);
}
.pv-chat-tab:focus-visible {
  outline: 2px solid var(--gold2, #f0d47b);
  outline-offset: 2px;
}
.pv-chat-tab-label {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  font-size: 11.5px;
  font-weight: 620;
  letter-spacing: .18em;
  text-transform: uppercase;
}
/* The live dot only appears once the stream is actually connected — an
   indicator that lights up before it knows anything is a lie. */
.pv-chat-tab-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4be1a0;
  box-shadow: 0 0 0 3px rgba(75, 225, 160, .13);
  opacity: 0;
  transition: opacity .3s ease;
}
#pv-chat[data-live="1"] .pv-chat-tab-dot { opacity: 1; }

.pv-chat-tab-unread {
  position: absolute;
  top: 10px;
  right: 8px;
  display: none;
  min-width: 19px;
  height: 19px;
  border-radius: 999px;
  background: var(--gold, #e0bd56);
  padding: 0 5px;
  color: #14150f;
  font-size: 10px;
  font-weight: 750;
  line-height: 19px;
  text-align: center;
}
#pv-chat[data-unread="1"] .pv-chat-tab-unread { display: block; }
#pv-chat[data-open="1"] .pv-chat-tab { opacity: 0; pointer-events: none; }

/* ── The panel ───────────────────────────────────────────────────────── */

.pv-chat-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(384px, 100vw);
  background: rgba(12, 14, 11, .93);
  color: var(--text, #f7f4eb);
  backdrop-filter: blur(28px) saturate(1.08);
  -webkit-backdrop-filter: blur(28px) saturate(1.08);
  box-shadow:
    inset 1px 0 0 rgba(255, 255, 255, .07),
    -30px 0 70px -40px #000;
  opacity: 0;
  pointer-events: none;
  transform: none;
  visibility: hidden;
  transition: opacity .2s ease, visibility 0s linear .2s;
}
#pv-chat[data-open="1"] .pv-chat-panel {
  opacity: 1;
  pointer-events: auto;
  transform: none;
  visibility: visible;
  transition: opacity .2s ease, visibility 0s;
}

.pv-chat-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 12px 14px 18px;
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .06);
}
.pv-chat-title { display: grid; gap: 3px; min-width: 0; }
.pv-chat-title strong {
  font-size: 14px;
  font-weight: 640;
  letter-spacing: .01em;
}
.pv-chat-presence {
  color: var(--muted, #b3b1a8);
  font-size: 11.5px;
  font-variant-numeric: tabular-nums;
}
.pv-chat-close {
  margin-left: auto;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, .05);
  color: var(--muted, #b3b1a8);
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease;
}
.pv-chat-close:hover, .pv-chat-close:focus-visible {
  background: rgba(255, 255, 255, .1);
  color: var(--text, #f7f4eb);
}
.pv-chat-close:focus-visible { outline: 2px solid var(--gold2, #f0d47b); outline-offset: 2px; }

/* ── The log ─────────────────────────────────────────────────────────── */

.pv-chat-log {
  overflow-y: auto;
  overscroll-behavior: contain;
  margin: 0;
  padding: 14px 18px 6px;
  list-style: none;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .16) transparent;
}
.pv-chat-log::-webkit-scrollbar { width: 8px; }
.pv-chat-log::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background-clip: content-box;
  background-color: rgba(255, 255, 255, .16);
}

.pv-chat-line { margin: 0 0 13px; font-size: 13.5px; line-height: 1.5; }
.pv-chat-line:last-child { margin-bottom: 0; }
.pv-chat-who {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 2px;
}
.pv-chat-name,
.pv-chat-name:visited {
  color: var(--gold2, #f0d47b);
  font-size: 12px;
  font-weight: 640;
  letter-spacing: .01em;
  text-decoration: none;
}
.pv-chat-name:hover {
  color: #fff0b2;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pv-chat-name:focus-visible {
  border-radius: 2px;
  outline: 2px solid var(--gold2, #f0d47b);
  outline-offset: 2px;
}
.pv-chat-line[data-self="1"] .pv-chat-name,
.pv-chat-line[data-self="1"] .pv-chat-name:visited { color: #9ad9bb; }
.pv-chat-line[data-self="1"] .pv-chat-name:hover { color: #c7f5dd; }
.pv-chat-time {
  color: #7d7c76;
  font-size: 10.5px;
  font-variant-numeric: tabular-nums;
}
.pv-chat-body {
  margin: 0;
  color: #dedcd4;
  overflow-wrap: anywhere;
}
/* Consecutive lines from one person read as one turn. */
.pv-chat-line[data-run="1"] { margin-top: -9px; }
.pv-chat-line[data-run="1"] .pv-chat-who { display: none; }

.pv-chat-line[data-kind="system"] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: #9d9c94;
  font-size: 12px;
}
.pv-chat-line[data-kind="system"] .pv-chat-body { color: inherit; }
.pv-chat-line[data-kind="system"]::before {
  content: "";
  flex: 0 0 auto;
  width: 5px;
  height: 5px;
  margin-top: 6px;
  border-radius: 50%;
  background: var(--gold, #e0bd56);
  opacity: .6;
}

.pv-chat-empty {
  margin: 0;
  padding: 26px 4px;
  color: #85847d;
  font-size: 13px;
  line-height: 1.55;
  text-align: center;
}

/* ── The composer ────────────────────────────────────────────────────── */

.pv-chat-foot {
  padding: 12px 14px 14px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
.pv-chat-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; }
.pv-chat-input {
  min-height: 42px;
  max-height: 120px;
  border: 0;
  border-radius: 11px;
  background: rgba(255, 255, 255, .05);
  padding: 11px 13px;
  color: var(--text, #f7f4eb);
  font: inherit;
  font-size: 13.5px;
  line-height: 1.4;
  resize: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07);
  transition: box-shadow .18s ease, background-color .18s ease;
}
.pv-chat-input::placeholder { color: #7d7c76; }
.pv-chat-input:focus {
  outline: none;
  background: rgba(255, 255, 255, .075);
  box-shadow: inset 0 0 0 1px rgba(224, 189, 86, .45);
}
.pv-chat-send {
  height: 42px;
  border: 0;
  border-radius: 11px;
  background: var(--gold, #e0bd56);
  padding: 0 15px;
  color: #14150f;
  font-size: 13px;
  font-weight: 660;
  cursor: pointer;
  transition: filter .18s ease, transform .2s cubic-bezier(.16, 1, .3, 1);
}
.pv-chat-send:hover { filter: brightness(1.06); }
.pv-chat-send:active { transform: translateY(1px); }
.pv-chat-send:disabled { background: rgba(255, 255, 255, .06); color: rgba(255, 255, 255, .3); cursor: not-allowed; }
.pv-chat-send:focus-visible { outline: 2px solid var(--gold2, #f0d47b); outline-offset: 2px; }

.pv-chat-note {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 2px 0;
  min-height: 15px;
  color: #85847d;
  font-size: 11px;
}
.pv-chat-note[data-tone="error"] { color: #f0a6ac; }
.pv-chat-count { margin-left: auto; font-variant-numeric: tabular-nums; }
.pv-chat-count[data-near="1"] { color: var(--gold2, #f0d47b); }

.pv-chat-gate {
  display: grid;
  gap: 10px;
  justify-items: start;
  padding: 2px;
}
.pv-chat-gate p { margin: 0; color: #a5a49c; font-size: 13px; line-height: 1.5; }
.pv-chat-gate button {
  min-height: 44px;
  border: 0;
  border-radius: 11px;
  background: var(--gold, #e0bd56);
  padding: 0 16px;
  color: #14150f;
  font: inherit;
  font-size: 13px;
  font-weight: 660;
  cursor: pointer;
}
.pv-chat-gate button:hover { filter: brightness(1.06); }
.pv-chat-gate button:focus-visible { outline: 2px solid var(--gold2, #f0d47b); outline-offset: 2px; }

/* ── Narrow screens ──────────────────────────────────────────────────── */

@media (max-width: 640px) {
  body:has(#pv-chat[data-open="1"][data-mobile-modal="1"]) { overflow: hidden; }
  #pv-chat { width: 100vw; max-height: 100dvh; }
  .pv-chat-panel {
    top: env(safe-area-inset-top);
    width: 100vw;
  }
  .pv-chat-tab {
    top: auto;
    right: max(6px, env(safe-area-inset-right));
    bottom: max(8px, env(safe-area-inset-bottom));
    min-height: 46px;
    border-radius: 10px;
    padding: 0 14px;
    transform: none;
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, .08),
      0 14px 32px -18px rgba(0, 0, 0, .82);
  }
  .pv-chat-tab:hover,
  .pv-chat-tab:focus-visible { transform: translateY(-2px); }
  .pv-chat-tab-label {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 10px;
    letter-spacing: .09em;
  }
  .pv-chat-tab-unread { top: -7px; right: -6px; }
  .pv-chat-close { width: 44px; height: 44px; }
  .pv-chat-input, .pv-chat-send { min-height: 48px; }
  .pv-chat-foot { padding-bottom: max(14px, env(safe-area-inset-bottom)); }
  body:has(.home-page) .pv-chat-tab,
  body:has(.shell--vending) .pv-chat-tab,
  body:has(.marketplace-page) .pv-chat-tab,
  body:has(.wallet-lab) .pv-chat-tab {
    display: none;
  }
}

/* Landscape phones have no vertical room for a centred tab plus a panel. */
@media (max-height: 460px) {
  .pv-chat-tab {
    top: auto;
    right: 12px;
    bottom: 12px;
    min-height: 46px;
    border-radius: 10px;
    padding: 0 14px;
    transform: none;
  }
  .pv-chat-tab:hover, .pv-chat-tab:focus-visible { transform: translateY(-2px); }
  .pv-chat-tab-label { writing-mode: horizontal-tb; transform: none; font-size: 10px; letter-spacing: .09em; }
}

@media (prefers-reduced-motion: reduce) {
  .pv-chat-tab, .pv-chat-panel, .pv-chat-send { transition-duration: .01ms; }
}

/* source: workflow-finish.css lines 1-102 */
/* Final workflow layer: universal navigation, clear seller entry points, and
   the lending-application journey. Kept isolated from the existing art stack. */

.mobile-menu {
  display: grid;
  flex: 0 0 44px;
  place-items: center;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}

.nav-drawer {
  position: fixed;
  z-index: 1001;
  inset: 0 auto 0 0;
  display: flex;
  width: min(320px, 88vw);
  flex-direction: column;
  overflow-y: auto;
  background: rgba(8, 10, 8, .985);
  padding: 20px 16px 26px;
  box-shadow: 24px 0 70px rgba(0, 0, 0, .52);
  -webkit-transform: translate3d(-102%, 0, 0);
  transform: translate3d(-102%, 0, 0);
  transition: transform .28s cubic-bezier(.22, .61, .36, 1);
  -webkit-overflow-scrolling: touch;
}

.shell.menu-open .nav-drawer {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

/* Keep WebKit's composited drawer above the dimmer even when a page backdrop
   or the fixed top bar creates its own rendering layer. */
.shell.menu-open #primary-sidebar {
  z-index: 2147483647;
  display: flex;
  visibility: visible;
  opacity: 1;
  background: #080a08;
  color: #f3f0e7;
  -webkit-transform: none;
  transform: none;
}

.mobile-overlay {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: none;
  background: rgba(0, 0, 0, .7);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

.shell.menu-open .mobile-overlay { z-index: 2147483646; display: block; }

.sidebar-close {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, .055);
  color: #aaa9a1;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.nav-drawer .background-picker--sidebar {
  display: block;
  margin-top: 24px;
}

.marketplace-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.marketplace-head-actions > strong {
  color: #b0afa6;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}

.marketplace-head-actions :is(.gold-button, .outline-button) {
  min-height: 43px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  padding: 0 16px;
  font-size: 12px;
}

/* source: storefront-finish.css lines 1-122 */
/*
 * Storefront finish pass — homepage buying path, marketplace and leaderboard.
 * This layer is presentation-only and intentionally avoids vending, lending,
 * checkout, opening and server-owned draw behaviour.
 */

.chamber-info-link { display: none; }

.storefront-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 0 0 28px;
  padding-top: 7px;
}

.storefront-page-head > div { min-width: 0; }

.storefront-eyebrow {
  display: block;
  margin-bottom: 9px;
  color: #b6a262;
  font-size: 10px;
  font-weight: 720;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.storefront-page-head h1 {
  margin: 0;
  color: #f5f1e7;
  font-family: var(--pv-display);
  font-size: clamp(46px, 5.2vw, 72px);
  font-weight: 760;
  letter-spacing: -.055em;
  line-height: .9;
}

.storefront-page-head p {
  max-width: 560px;
  margin: 13px 0 0;
  color: #a6a69e;
  font-size: 14px;
  line-height: 1.55;
}

.storefront-page-head > strong {
  flex: 0 0 auto;
  border-radius: 999px;
  background: rgba(255, 255, 255, .055);
  padding: 9px 12px;
  color: #d7d2c5;
  font-size: 11px;
  font-weight: 680;
  font-variant-numeric: tabular-nums;
}

.storefront-loading {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  min-height: 360px;
}

.storefront-loading > span {
  min-height: 300px;
  border-radius: 12px;
  background: linear-gradient(105deg, rgba(255, 255, 255, .035) 18%, rgba(255, 255, 255, .075) 34%, rgba(255, 255, 255, .035) 50%);
  background-size: 240% 100%;
  animation: storefront-loading 1.25s ease-in-out infinite;
}

.storefront-loading p {
  grid-column: 1 / -1;
  margin: 0;
  color: #86877f;
  font-size: 12px;
}

@keyframes storefront-loading {
  to { background-position: -180% 0; }
}

.storefront-empty {
  display: grid;
  justify-items: start;
  max-width: 620px;
  min-height: 260px;
  align-content: center;
  border-top: 1px solid rgba(255, 255, 255, .09);
  border-bottom: 1px solid rgba(255, 255, 255, .09);
  padding: 42px 0;
}

.storefront-empty > span {
  display: grid;
  width: 38px;
  height: 38px;
  margin-bottom: 18px;
  place-items: center;
  border: 1px solid rgba(229, 198, 105, .35);
  border-radius: 9px;
  color: #dcc477;
  font-size: 11px;
  font-weight: 760;
}

.storefront-empty h2 {
  margin: 0;
  color: #f0ede5;
  font-family: var(--pv-display);
  font-size: 28px;
  letter-spacing: -.035em;
}

.storefront-empty p {
  margin: 8px 0 20px;
  color: #92938b;
  font-size: 13px;
}

/* source: reveal-confirmation-finish.css */
/* Pack opening review
   A quiet transaction threshold: one product, one promise and one action.
   This file is intentionally last in the cascade so the shared checkout markup
   can shed the older dashboard-style panels without changing any mechanics. */

html:has(#modal-root .checkout-review--simple) {
  overflow: hidden;
  scrollbar-gutter: stable;
}

body:has(#modal-root .checkout-review--simple) {
  overflow: hidden;
}

.modal:has(.checkout-review--simple) {
  width: min(100%, 500px);
  max-height: calc(100dvh - 40px);
  overflow: hidden;
  padding: 0;
  border-color: rgba(255, 255, 255, .11);
  border-radius: 16px;
  background: #141512;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .72);
}

.checkout-review--simple {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-height: calc(100dvh - 40px);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 22px;
  color: #f1eee6;
  scrollbar-color: rgba(255, 255, 255, .18) transparent;
  scrollbar-width: thin;
  animation: checkout-review-enter .16s cubic-bezier(.2, .75, .35, 1) both;
}

.checkout-review--simple .modal-head {
  align-items: center;
  gap: 16px;
  margin: 0 0 16px;
}

.checkout-review--simple .modal-head .eyebrow {
  display: none;
}

.checkout-review--simple .modal-head h2 {
  max-width: none;
  margin: 0;
  color: #f4f1e9;
  font-family: var(--pv-ui);
  font-size: 25px;
  font-weight: 680;
  line-height: 1.12;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.checkout-review--simple .close-button {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  min-height: 44px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #aaa9a2;
  font-size: 20px;
  transition: background-color .14s ease, color .14s ease;
}

.checkout-review--simple .close-button:hover {
  background: rgba(255, 255, 255, .055);
  color: #f4f1e9;
}

.checkout-review--simple .close-button:disabled {
  cursor: wait;
  opacity: .45;
}

.checkout-pack--simple {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 0 0 16px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .09);
  border-radius: 0;
  background: transparent;
}

.checkout-review--simple .checkout-pack-art {
  display: grid;
  place-items: center;
  width: 62px;
  height: 72px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.checkout-review--simple .checkout-pack-art img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: brightness(1.07) contrast(1.04) drop-shadow(0 9px 10px rgba(0, 0, 0, .42));
}

.checkout-review--simple .checkout-pack-copy {
  min-width: 0;
}

.checkout-review--simple .checkout-pack-copy > span {
  display: block;
  overflow: hidden;
  color: #aaa9a2;
  font-size: 11px;
  font-weight: 560;
  line-height: 1.35;
  letter-spacing: 0;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.checkout-review--simple .checkout-pack-copy h3 {
  margin: 3px 0;
  overflow: hidden;
  color: #f3f0e8;
  font-family: var(--pv-ui);
  font-size: 18px;
  font-weight: 670;
  line-height: 1.18;
  letter-spacing: -.015em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.checkout-review--simple .checkout-pack-copy p,
.checkout-review--simple .checkout-pack-copy small {
  display: block;
  margin: 0;
  color: #a6a69f;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}

.checkout-pack-price {
  display: grid;
  justify-items: end;
  gap: 3px;
  align-self: center;
  margin: 0;
  white-space: nowrap;
}

.checkout-pack-price small {
  color: #9f9f98;
  font-size: 11px;
  font-weight: 520;
  line-height: 1.2;
}

.checkout-pack-price strong {
  color: #f3f0e8;
  font-family: var(--pv-ui);
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.025em;
}

/* Keep the decision threshold to one compact ledger. The pack row already
   carries the price, so the remaining questions are simply what arrives and
   what the account balance becomes. */
.checkout-ledger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 24px;
  margin: 14px 0 0;
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(255, 255, 255, .085);
}

.checkout-ledger > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.checkout-ledger > div:last-child {
  justify-items: end;
  text-align: right;
}

.checkout-ledger span {
  color: #9f9f98;
  font-size: 11px;
  font-weight: 520;
  line-height: 1.3;
}

.checkout-ledger strong {
  display: flex;
  align-items: baseline;
  gap: 7px;
  color: #efede6;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
}

.checkout-ledger strong b {
  color: inherit;
  font: inherit;
  font-variant-numeric: tabular-nums;
}

.checkout-ledger strong i {
  color: #777970;
  font-size: 10px;
  font-style: normal;
}

.checkout-commit-status {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 9px 0 0;
}

.checkout-commit-status > span {
  display: grid;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: rgba(78, 192, 129, .14);
  color: #73d7a0;
  font-size: 12px;
  font-weight: 760;
}

.checkout-commit-status p {
  display: grid;
  gap: 1px;
  margin: 0;
}

.checkout-commit-status strong {
  color: #ddd9cf;
  font-size: 12.5px;
  font-weight: 630;
  line-height: 1.35;
}

.checkout-commit-status small {
  color: #92938c;
  font-size: 11px;
  line-height: 1.35;
}

.checkout-promise {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 14px 0 0;
  color: #c8c6bd;
  font-size: 13px;
  line-height: 1.5;
  text-wrap: pretty;
}

.checkout-promise > div {
  display: grid;
  align-content: start;
  gap: 2px;
  min-width: 0;
}

.checkout-promise span {
  color: #9f9f98;
  font-size: 11.5px;
  font-weight: 520;
  line-height: 1.35;
}

.checkout-promise strong {
  color: #f0ede5;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.4;
}

.checkout-promise small {
  color: #96968f;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.35;
}

.checkout-balance--simple {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 6px 14px;
  margin: 12px 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.checkout-balance--simple span {
  color: #aaa9a2;
  font-size: 12px;
  line-height: 1.4;
}

.checkout-balance--simple b {
  color: #ece9e1;
  font-size: 13px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  line-height: 1.4;
  white-space: nowrap;
}

.checkout-balance--simple > div {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 7px;
}

.checkout-balance--simple > div i {
  color: #7f8079;
  font-size: 11px;
  font-style: normal;
}

.checkout-balance--simple > small {
  display: none;
}

.checkout-balance--simple .is-low {
  color: #efa1a3;
}

.checkout-disclosure {
  margin: 10px 0 0;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .075);
  background: transparent;
}

.checkout-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 44px;
  margin-inline: -6px -4px;
  padding: 0 4px 0 6px;
  border-radius: 4px;
  color: #d5d1c7;
  font-size: 12.5px;
  font-weight: 620;
  line-height: 1.35;
  list-style: none;
  cursor: pointer;
}

.checkout-disclosure > summary::-webkit-details-marker {
  display: none;
}

.checkout-disclosure > summary::after {
  content: "";
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  margin-right: 2px;
  border-right: 1.5px solid #aaa071;
  border-bottom: 1.5px solid #aaa071;
  transform: rotate(45deg) translate(-1px, -1px);
  transition: transform .14s ease;
}

.checkout-disclosure[open] > summary::after {
  transform: rotate(225deg) translate(-1px, -1px);
}

.checkout-disclosure-body {
  padding: 0 0 14px;
}

.checkout-disclosure-body > p {
  margin: 0;
  color: #aaa9a2;
  font-size: 12px;
  line-height: 1.55;
  text-wrap: pretty;
}

.checkout-disclosure-body > .checkout-buyback-note {
  margin-top: 7px;
  color: #c4bea1;
}

.checkout-commitment {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, .07);
}

.checkout-commitment span {
  color: #96968f;
  font-size: 11px;
}

.checkout-commitment code {
  overflow: hidden;
  max-width: 210px;
  color: #79cfa2;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.checkout-review--simple .checkout-odds {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 10px 0 0;
}

.checkout-review--simple .checkout-odds span {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #a9a9a2;
  font-size: 11.5px;
  line-height: 1.45;
}

.checkout-review--simple .checkout-odds b {
  color: #ddd9cf;
  font-size: inherit;
  font-weight: 620;
}

.checkout-disclosure-body > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  margin-top: 3px;
  color: #d6c67f;
  font-size: 12px;
  font-weight: 620;
  text-decoration: none;
}

.checkout-disclosure-body > a:hover {
  color: #f0da80;
}

.checkout-review--simple .checkout-methods {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin: 9px 0 0;
  padding: 10px 0 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .07);
  border-radius: 0;
  background: transparent;
}

.checkout-review--simple .checkout-methods h3 {
  margin: 0;
  color: #d7d3c9;
  font-family: var(--pv-ui);
  font-size: 12px;
  font-weight: 620;
}

.checkout-review--simple .checkout-methods p {
  margin: 3px 0 0;
  color: #aaa9a2;
  font-size: 12px;
  line-height: 1.45;
}

.checkout-review--simple .checkout-methods ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 5px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.checkout-review--simple .checkout-methods li {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #c9c3a6;
  font-size: 11.5px;
  font-weight: 580;
}

.checkout-review--simple .checkout-alert,
.checkout-review--simple .checkout-recovery {
  margin: 11px 0 0;
  padding: 10px 11px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
}

.checkout-review--simple .checkout-alert {
  border: 1px solid rgba(226, 113, 117, .38);
  background: rgba(117, 36, 39, .16);
  color: #efadaf;
}

.checkout-review--simple .checkout-alert strong {
  color: #ffd0d1;
  font-weight: 650;
}

/* The only way out of an insufficient balance is this link, so it has to look
   like one. Weight alone did not separate it from the sentence around it. */
.checkout-review--simple .checkout-alert a {
  color: #ffdcdd;
  font-weight: 620;
  text-decoration: underline;
  text-decoration-color: rgba(255, 220, 221, .5);
  text-underline-offset: 2px;
}

.checkout-review--simple .checkout-alert a:hover {
  text-decoration-color: currentcolor;
}

.checkout-review--simple .checkout-recovery {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  border: 1px solid rgba(224, 189, 86, .18);
  background: rgba(224, 189, 86, .045);
  color: #c3b991;
}

.checkout-review--simple .checkout-batch-refill {
  margin: 10px 0 0;
  border-left: 2px solid rgba(224, 189, 86, .62);
  background: rgba(224, 189, 86, .055);
  padding: 9px 11px;
  color: #c9bd94;
  font-size: 11px;
  line-height: 1.45;
}

.checkout-review--simple .checkout-batch-refill[hidden] { display: none; }

.checkout-review--simple .checkout-legal {
  margin: 11px 0 0;
  color: #a09f98;
  font-size: 12px;
  line-height: 1.45;
}

/* The action row remains in normal document flow so it can never cover the
   balance, fairness disclosure, legal copy or insufficient-credit alert. */
.checkout-review--simple .checkout-actions {
  position: static;
  bottom: auto;
  z-index: 2;
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr);
  gap: 9px;
  margin: 16px -22px 0;
  padding: 12px 22px 22px;
  background: linear-gradient(to bottom, rgba(20, 21, 18, 0) 0, #141512 14px, #141512 100%);
}

.checkout-review--simple .checkout-actions > button {
  width: 100%;
  min-height: 48px;
}

.checkout-review--simple .checkout-actions .button-text {
  min-width: 92px;
  padding-inline: 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #aaa9a2;
  box-shadow: none;
}

.checkout-review--simple .checkout-actions .button-text:hover {
  background: rgba(255, 255, 255, .045);
  color: #ece9e1;
}

.checkout-review--simple .checkout-actions .gold-button {
  border-radius: 9px;
}

.checkout-review--simple .checkout-actions .gold-button:disabled {
  border-color: #4c493d;
  background: #292923;
  color: #8e8b80;
  cursor: not-allowed;
  box-shadow: none;
  opacity: 1;
}

.checkout-review--simple :is(.close-button, .gold-button, .button-text, .checkout-disclosure-body > a):focus-visible {
  outline: 2px solid #e4c962;
  outline-offset: 3px;
}

.checkout-review--simple .checkout-disclosure > summary:focus-visible {
  outline: 0;
  background: linear-gradient(90deg, rgba(224, 189, 86, .07), transparent 52%);
  box-shadow: inset 2px 0 #d6ba58;
}

.checkout-review--simple.is-processing :is(.checkout-pack, .checkout-promise, .checkout-balance, .checkout-disclosure, .checkout-methods, .checkout-legal) {
  opacity: .5;
}

.checkout-review--simple.is-processing :is(.checkout-ledger, .checkout-commit-status) {
  opacity: .5;
}

.checkout-review--simple.is-processing .checkout-actions .gold-button {
  position: relative;
  color: transparent;
}

.checkout-review--simple.is-processing .checkout-actions .gold-button::after {
  content: "Opening…";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #17170f;
}

.checkout-review--simple .checkout-processing:not(.sr-only) {
  margin: 8px 0 0;
  color: #bdb9ad;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
}

@keyframes checkout-review-enter {
  from {
    opacity: 0;
    transform: translateY(7px);
  }
}

@media (max-width: 600px) {
  .modal-backdrop:has(.checkout-review--simple) {
    align-items: end;
    padding: 0;
  }

  .modal:has(.checkout-review--simple) {
    width: 100%;
    max-height: min(86dvh, 680px);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 18px 18px 0 0;
  }

  .checkout-review--simple {
    max-height: min(86dvh, 680px);
    padding: 16px 16px calc(14px + env(safe-area-inset-bottom));
  }

  .checkout-review--simple .modal-head {
    margin-bottom: 13px;
  }

  .checkout-review--simple .modal-head h2 {
    font-size: 23px;
  }

  .checkout-pack--simple {
    grid-template-columns: 56px minmax(0, 1fr) auto;
    gap: 10px;
    padding-bottom: 14px;
  }

  .checkout-review--simple .checkout-pack-art {
    width: 56px;
    height: 66px;
  }

  .checkout-review--simple .checkout-pack-copy h3 {
    font-size: 16px;
  }

  .checkout-review--simple .checkout-pack-copy > span {
    color: #aaa9a1;
    font-size: 11px;
  }

  .checkout-pack-price {
    gap: 2px;
  }

  .checkout-pack-price small {
    color: #aaa9a1;
    font-size: 11px;
  }

  .checkout-pack-price strong {
    font-size: 19px;
  }

  .checkout-ledger {
    gap: 10px 14px;
    margin-top: 12px;
    padding-bottom: 12px;
  }

  .checkout-commit-status {
    min-height: 46px;
    padding-top: 7px;
  }

  .checkout-commit-status small {
    display: none;
  }

  .checkout-commitment code {
    max-width: 160px;
  }

  .checkout-promise {
    gap: 12px;
    margin-top: 12px;
    font-size: 12.5px;
  }

  .checkout-balance--simple {
    margin-top: 9px;
  }

  .checkout-disclosure {
    margin-top: 10px;
  }

  .checkout-promise small {
    color: #aaa9a1;
    font-size: 11px;
  }

  .checkout-review--simple .checkout-actions {
    bottom: auto;
    grid-template-columns: minmax(86px, .34fr) minmax(0, 1fr);
    gap: 8px;
    margin: 14px -16px 0;
    padding: 10px 16px calc(14px + env(safe-area-inset-bottom));
  }

  .checkout-review--simple .checkout-actions .button-text,
  .checkout-review--simple .checkout-actions .gold-button {
    grid-row: 1;
    grid-column: auto;
  }

  .checkout-review--simple .checkout-actions .button-text {
    min-width: 0;
  }
}

@media (max-width: 340px) {
  .checkout-review--simple .checkout-pack-copy > span {
    display: none;
  }

  .checkout-review--simple .checkout-actions {
    grid-template-columns: 1fr;
  }

  .checkout-review--simple .checkout-actions .gold-button {
    grid-row: 1;
  }

  .checkout-review--simple .checkout-actions .button-text {
    display: block;
    grid-row: 2;
  }
}

/* Short landscape. Compress only this edge case so the legal line and sticky
   action can remain visible together without crowding portrait layouts. */
@media (min-width: 601px) and (max-height: 460px) {
  .modal:has(.checkout-review--simple) {
    max-height: calc(100dvh - 24px);
  }

  .checkout-review--simple {
    max-height: calc(100dvh - 24px);
    padding: 16px 20px;
  }

  .checkout-review--simple .modal-head {
    margin-bottom: 6px;
  }

  .checkout-review--simple .modal-head h2 {
    font-size: 21px;
  }

  .checkout-pack--simple {
    grid-template-columns: 50px minmax(0, 1fr) auto;
    padding-bottom: 8px;
  }

  .checkout-review--simple .checkout-pack-art {
    width: 50px;
    height: 56px;
  }

  .checkout-promise {
    gap: 12px;
    margin-top: 8px;
  }

  .checkout-balance--simple {
    margin-top: 6px;
  }

  .checkout-disclosure {
    margin-top: 4px;
  }

  .checkout-review--simple .checkout-legal {
    margin-top: 6px;
  }

  .checkout-review--simple .checkout-actions {
    position: static;
    bottom: auto;
    margin: 12px -20px 0;
    padding: 10px 20px 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .checkout-review--simple {
    animation: none !important;
  }

  .checkout-review--simple :is(.close-button, .gold-button, .button-text) {
    transition: none !important;
  }

  .checkout-disclosure > summary::after {
    transition: none !important;
  }
}

/* Sell-back resolves into a decision, not an abrupt return to the machine. */
.sellback-complete {
  display: grid;
  gap: 16px;
  width: min(100%, 430px);
}

.sellback-complete__head {
  margin-bottom: 0;
}

.sellback-complete__mark {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: #d9b755;
  box-shadow: 0 9px 28px rgba(217, 183, 85, .18);
  color: #0b0c0b;
  font-size: 22px;
  font-weight: 850;
}

.sellback-complete__message {
  max-width: 38ch;
  margin: 0;
  color: #b8b8af;
  font-size: 14px;
  line-height: 1.55;
}

.sellback-complete__message strong {
  color: #f0d789;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.sellback-complete__ledger {
  margin: 0;
}

.sellback-complete__ledger > div {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-block: 1px solid rgba(255, 255, 255, .075);
}

.sellback-complete__ledger :is(dt, dd) {
  margin: 0;
}

.sellback-complete__ledger dt {
  color: #909189;
  font-size: 11px;
}

.sellback-complete__ledger dd {
  color: #f2efe5;
  font-size: 17px;
  font-weight: 720;
  font-variant-numeric: tabular-nums;
}

.sellback-complete__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(132px, .52fr);
  gap: 9px;
}

.sellback-complete__actions :is(button, a) {
  min-width: 0;
  min-height: 48px;
}

@media (max-width: 520px) {
  .sellback-complete {
    gap: 14px;
  }

  .sellback-complete__actions {
    grid-template-columns: 1fr;
  }

  .sellback-complete__actions .gold-button {
    grid-row: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sellback-complete__mark {
    box-shadow: none;
  }
}
