.nft-section{position:relative;background:radial-gradient(ellipse at 50% 15%,#224d5545,transparent 50%),#081f2b;border-block:1px solid #c3a36a42;scroll-margin-top:25px}.nft-heading{text-align:center;margin-bottom:42px}.nft-heading h2{margin:14px 0 18px}.nft-heading>p:last-child{color:var(--muted);font-size:15px}.nft-preview-tag{display:inline-block;border:1px solid #c3a36a60;border-radius:30px;padding:6px 15px;font-size:9px;letter-spacing:.18em;color:var(--accent);margin-bottom:22px}.nft-summon{--rarity:#c8ad71;display:grid;grid-template-columns:1fr 1fr;border:1px solid #c8ad71aa;outline:1px solid #c8ad7133;outline-offset:6px;position:relative;background:linear-gradient(#061825aa,#071c2dec),url('/assets/mondstadt-panorama.webp') center/cover;border-radius:5px;overflow:hidden;min-height:530px}.nft-chest-side,.nft-reveal-side{padding:32px;text-align:center;position:relative;min-width:0}.nft-chest-side{border-right:1px solid #c8ad7133}.nft-chest-stage{height:255px;position:relative;display:grid;place-items:center;margin-top:15px}.nft-chest-stage img{width:82%;height:225px;object-fit:contain;z-index:2;filter:drop-shadow(0 12px 20px #0008);image-rendering:pixelated;animation:nft-float 4s ease-in-out infinite}.nft-sigil{position:absolute;bottom:0;width:80%;height:90px;border:2px solid #e2c17c66;border-radius:50%;box-shadow:0 0 35px #ecc97525,inset 0 0 20px #ecc97525;transform:rotateX(30deg)}.nft-sigil:after{content:'✧';position:absolute;inset:12px;border:1px dashed #e2c17c88;border-radius:50%;color:#f4dca8;font-size:28px}.nft-chest-side h3{font-size:27px;margin:15px 0 8px}.nft-chest-side>p:not(.eyebrow){font-size:13px;color:var(--muted)}.nft-chest-side .primary{margin-top:20px;min-width:220px;justify-content:center}.nft-chest-side small{display:block;color:#a9b9bb;font-size:10px;margin-top:13px}.nft-skip{display:block;margin:8px auto}.nft-skip[hidden]{display:none}.nft-chest-light{position:absolute;inset:0;background:radial-gradient(ellipse at center,var(--rarity),transparent 60%);opacity:0;mix-blend-mode:screen;z-index:3;pointer-events:none}.nft-summon[data-state=opening] .nft-chest-stage img{animation:nft-shake .15s linear infinite}.nft-summon[data-state=opening] .nft-chest-light{animation:nft-flash 1.8s ease-in forwards}.nft-reveal-stage{position:relative;display:grid;place-items:center;min-height:385px;margin-top:20px;perspective:1000px}.nft-reveal-slot{position:relative;z-index:2;display:grid;place-items:center;min-height:340px;max-width:100%;color:#d2c9b3;font-family:var(--serif);font-size:22px}.nft-empty-glyph{font-size:112px;color:#c8ad7199;line-height:1}.nft-reveal-slot>small{font-size:12px;font-family:var(--body);color:var(--muted);align-self:start}.nft-reveal-side>p:last-child{font-size:12px;color:var(--muted);margin-top:16px;min-height:23px}.nft-live-card{--rarity:#ca86ff;position:relative;background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--rarity) 23%,transparent),transparent 70%),linear-gradient(160deg,#102b3c,#071420);width:235px;height:336px;border:2px solid var(--rarity);outline:1px solid color-mix(in srgb,var(--rarity) 40%,transparent);outline-offset:5px;border-radius:12px 2px;padding:14px;text-align:center;box-shadow:0 0 25px color-mix(in srgb,var(--rarity) 20%,transparent);overflow:hidden}.nft-live-card:before,.nft-live-card:after{content:'';position:absolute;inset:7px;border:1px solid color-mix(in srgb,var(--rarity) 45%,transparent);clip-path:polygon(0 0,25% 0,25% 2%,2% 2%,2% 23%,0 23%,0 0,100% 0,100% 23%,98% 23%,98% 2%,75% 2%,75% 0,100% 0,100% 100%,75% 100%,75% 98%,98% 98%,98% 77%,100% 77%,100% 100%,0 100%,0 77%,2% 77%,2% 98%,25% 98%,25% 100%,0 100%);pointer-events:none}.nft-live-card:after{inset:-100%;border:0;clip-path:none;background:linear-gradient(115deg,transparent 45%,#ffffff13 50%,transparent 55%);animation:nft-shimmer 6s ease-in-out infinite}.nft-card-corners{color:var(--rarity);position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:22px;line-height:1}.nft-card-region{color:var(--rarity);font-size:8px;letter-spacing:.2em}.nft-card-portrait{height:186px;position:relative;display:grid;place-items:center}.nft-card-portrait canvas{position:relative;z-index:1;width:200px;height:180px;max-width:100%;image-rendering:pixelated}.nft-card-aura{position:absolute;inset:0;background:radial-gradient(ellipse,var(--rarity),transparent 65%);opacity:.18;animation:nft-aura 3s ease-in-out infinite}.nft-live-card h4{font:24px var(--serif);margin:0 0 3px;color:#fff0d1;letter-spacing:-.03em}.nft-card-element{font:10px var(--body);color:#b6c4ca;display:block}.nft-rarity-label{display:block;border:1px solid var(--rarity);color:var(--rarity);text-transform:uppercase;font:11px var(--serif);letter-spacing:.15em;margin:10px 12px 6px;padding:5px;background:color-mix(in srgb,var(--rarity) 10%,transparent);clip-path:polygon(6% 0,94% 0,100% 50%,94% 100%,6% 100%,0 50%)}.nft-card-series{font-size:6px;letter-spacing:.12em;color:#a5b8c1;display:block}.nft-rays{position:absolute;inset:-30px;opacity:0;background:repeating-conic-gradient(from 0deg,transparent 0 16deg,color-mix(in srgb,var(--rarity) 25%,transparent) 18deg 20deg,transparent 24deg 38deg);mask-image:radial-gradient(circle,black,transparent 65%);animation:nft-spin 35s linear infinite}.nft-summon[data-state=revealed] .nft-rays{opacity:.9}.nft-summon[data-state=revealed] .nft-live-card{animation:nft-reveal .8s cubic-bezier(.17,.8,.25,1) both,nft-float 5s .8s ease-in-out infinite}.nft-particles{position:absolute;inset:0;pointer-events:none;opacity:0}.nft-summon[data-state=revealed] .nft-particles{opacity:1}.nft-particles i{position:absolute;bottom:5%;left:var(--x);width:3px;height:3px;background:var(--rarity);box-shadow:0 0 8px var(--rarity);animation:nft-rise 3s var(--delay) infinite ease-in}.nft-rates{display:grid;grid-template-columns:repeat(6,1fr);margin-top:35px;border:1px solid var(--line);border-radius:5px;overflow:hidden}.nft-rates>div{padding:16px 8px;text-align:center;background:color-mix(in srgb,var(--rarity) 5%,transparent);border-top:2px solid var(--rarity);border-right:1px solid var(--line);color:var(--rarity)}.nft-rates span{display:block;font-size:11px;letter-spacing:.06em}.nft-rates strong{font:25px var(--serif)}.nft-odds-note{font-size:11px;color:var(--muted);text-align:center;max-width:760px;margin:14px auto 25px}.nft-preview-controls{max-width:700px;margin:auto;border:1px solid var(--line);border-radius:4px;padding:12px 18px;color:var(--muted);font-size:12px}.nft-preview-controls summary{cursor:pointer;color:var(--accent)}.nft-preview-controls>div{display:flex;gap:15px;margin:15px 0}.nft-preview-controls p{font-size:11px}.nft-section label{display:grid;gap:6px;font-size:10px;color:var(--muted);letter-spacing:.03em;flex:1}.nft-section select{font:12px var(--body);color:var(--ink);background:#102d3b;border:1px solid #c3a36a66;border-radius:4px;padding:10px 30px 10px 12px;max-width:100%;min-width:150px}.nft-library-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:65px 0 26px}.nft-library-heading h3{font-size:32px;margin:12px 0}.nft-library-heading p:last-child{color:var(--muted);font-size:12px}.nft-filters{display:flex;gap:12px}.nft-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}.nft-gallery-card{border:0;background:none;padding:0;position:relative;border-radius:12px;transition:transform .25s,filter .25s}.nft-gallery-card img{width:100%;height:auto;display:block;filter:drop-shadow(0 8px 15px #0003)}.nft-gallery-card:hover{transform:translateY(-7px) rotate(1deg);filter:drop-shadow(0 0 8px color-mix(in srgb,var(--rarity) 30%,transparent))}.nft-pagination{display:flex;align-items:center;justify-content:center;gap:30px;margin-top:30px;font-size:12px}.nft-pagination button:disabled{opacity:.25;cursor:default}.nft-footer-note{text-align:center;font-size:11px;color:var(--muted);margin-top:35px}.nft-card-dialog{background:#092333;border:1px solid var(--accent);border-radius:10px;padding:35px 35px 25px;color:var(--ink);max-width:calc(100vw - 24px)}.nft-card-dialog::backdrop{background:#020c18dc;backdrop-filter:blur(10px)}.nft-card-dialog .nft-live-card{margin:28px auto}.nft-card-dialog>a{font-size:12px}.nft-card-dialog .eyebrow{text-align:center}.nft-card-dialog .dialog-close{top:8px;right:8px}
@keyframes nft-reveal{from{opacity:0;transform:translateY(55px) rotateY(100deg) scale(.6)}to{opacity:1;transform:translateY(0) rotateY(0) scale(1)}}@keyframes nft-float{50%{transform:translateY(-6px)}}@keyframes nft-spin{to{transform:rotate(360deg)}}@keyframes nft-rise{0%{opacity:0;transform:translateY(0) rotate(0)}30%{opacity:.8}100%{opacity:0;transform:translateY(-340px) rotate(200deg)}}@keyframes nft-shimmer{0%,60%{transform:translateX(-70%)}100%{transform:translateX(70%)}}@keyframes nft-aura{50%{opacity:.32;transform:scale(1.1)}}@keyframes nft-shake{25%{transform:translateX(-4px) rotate(-2deg)}75%{transform:translateX(4px) rotate(2deg)}}@keyframes nft-flash{0%{opacity:0}50%{opacity:.15}75%{opacity:1}100%{opacity:0}}
@media(max-width:900px){.nft-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nft-library-heading{align-items:start;flex-direction:column}.nft-filters{width:100%}.nft-chest-side,.nft-reveal-side{padding:24px 18px}.nft-chest-side h3{font-size:24px}.nft-live-card{width:220px}.nft-section select{min-width:0}.site-header nav{gap:18px}}
@media(max-width:600px){.nft-summon{grid-template-columns:1fr}.nft-chest-side{border-right:0;border-bottom:1px solid var(--line)}.nft-chest-stage{height:215px}.nft-chest-stage img{height:195px}.nft-rates{grid-template-columns:repeat(3,1fr)}.nft-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.nft-section .section-wrap{padding:65px 22px}.nft-library-heading h3{font-size:29px}.nft-pagination{gap:18px;font-size:10px}.nft-preview-controls>div{flex-direction:column}.nft-heading h2{font-size:39px}.nft-reveal-stage{min-height:370px}.nft-filters{gap:8px}}
@media(prefers-reduced-motion:reduce){.nft-section *,.nft-card-dialog *{animation:none!important;transition:none!important}}
@media(max-width:700px){.site-header nav{display:flex;position:absolute;top:100%;left:0;right:0;justify-content:center;gap:28px;height:42px;align-items:center;background:#071b2aeb;border-bottom:1px solid var(--line)}.site-header nav a{font-size:10px}}
.collection-page>main{padding-top:130px}.collection-page .site-header{top:0;background:#071b2a;border-bottom:1px solid var(--line)}.collection-page .brand strong{font-size:29px}.collection-page .nft-section{border-top:0}.collection-page .site-header [aria-current=page]{color:var(--accent);border-bottom:1px solid var(--accent)}[data-inventory-count]{display:inline-grid;place-items:center;background:#c8ad7120;border:1px solid var(--line);border-radius:20px;min-width:22px;height:22px;padding:0 5px;margin-left:5px;font-size:9px}.collection-footer{display:flex;justify-content:space-between;align-items:center;gap:20px}.collection-footer p{font-size:11px;text-align:right}.nft-inventory-link{display:inline-block;margin-top:15px;font-size:12px}.nft-inventory-link[hidden]{display:none}.inventory-section{min-height:75vh}.inventory-section h1{font-size:clamp(40px,5vw,64px);margin:15px 0 20px}.inventory-section h1 em{font-style:normal;color:var(--accent)}.inventory-summary{display:flex;gap:45px;align-items:center;background:#112d3c;border:1px solid var(--line);border-radius:6px;padding:25px 32px}.inventory-summary>div{display:grid;gap:3px}.inventory-summary strong{font:32px var(--serif);color:var(--accent)}.inventory-summary span{font-size:11px;color:var(--muted)}.inventory-summary>a{margin-left:auto}.inventory-storage-note{text-align:center;font-size:11px;color:var(--muted);margin:16px 0 20px}.inventory-empty{text-align:center;border:1px dashed var(--line);padding:50px 20px;border-radius:6px;background:#102b3444}.inventory-empty[hidden]{display:none}.inventory-empty>span{font-size:70px;line-height:1.2;color:var(--accent)}.inventory-empty h3{font-size:30px;margin:15px 0}.inventory-empty p{font-size:13px;color:var(--muted);margin:0 0 25px}.inventory-quantity{position:absolute;top:15px;right:15px;border:1px solid var(--rarity);background:#092333ee;padding:2px 9px;border-radius:20px;color:var(--rarity);font-size:12px;box-shadow:0 3px 10px #0008}.inventory-results{text-align:center;font-size:12px;color:var(--muted);margin-top:25px}.inventory-warning{color:#ffd362;text-align:center;font-size:12px;margin-top:20px}.inventory-detail-image{width:235px;max-width:100%;margin:25px auto}.collection-page .nft-reveal-stage{min-height:365px}.collection-page .nft-reveal-side>p:last-child{font-size:10px}
@media(max-width:700px){.collection-page>main{padding-top:125px}.inventory-summary{flex-wrap:wrap;gap:22px;padding:20px}.inventory-summary>a{width:100%;justify-content:center;margin-left:0}.collection-footer{flex-direction:column}.collection-footer p{text-align:center}.site-header nav{gap:20px}.site-header nav a{font-size:9px}}
.inventory-section>.section-wrap{padding-top:45px}.inventory-section .nft-heading{margin-bottom:28px}.inventory-section .nft-heading .nft-preview-tag{margin-bottom:12px}.inventory-section .nft-library-heading{margin-top:35px}.inventory-section .nft-heading h1{font-size:54px}.collection-page .nft-heading h1#nft-title{font-size:clamp(34px,4.2vw,57px);margin:14px 0 18px}.collection-page h1#nft-title em{font-style:normal;color:var(--accent)}
@media(max-width:600px){.inventory-section .nft-heading h1{font-size:42px}.inventory-section>.section-wrap{padding-top:35px}}
.nft-open-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}.nft-chest-side .nft-open-actions .button{min-width:0;flex:1;justify-content:center;font-size:11px;padding:13px 10px;white-space:nowrap;margin:0}.nft-open-actions .secondary{border-color:#d7b77b99;background:#102b3cbb}.nft-summon[data-count="5"][data-state="revealed"]{display:block}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-side{display:flex;align-items:center;justify-content:center;gap:25px;padding:12px 25px;border:0;border-bottom:1px solid var(--line)}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-side>.eyebrow,.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-side>h3,.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-side>p:not(.eyebrow),.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-side>small{display:none}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-stage{width:115px;height:85px;margin:0;flex-shrink:0}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-stage img{height:85px;width:100%}.nft-summon[data-count="5"][data-state="revealed"] .nft-sigil{height:30px}.nft-summon[data-count="5"][data-state="revealed"] .nft-sigil:after{display:none}.nft-summon[data-count="5"][data-state="revealed"] .nft-open-actions{margin:0;width:380px;max-width:100%}.nft-summon[data-count="5"][data-state="revealed"] .nft-reveal-stage{min-height:0;margin-top:25px}.nft-reveal-slot.nft-batch{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;width:100%;min-height:0;max-width:none}.nft-batch .nft-live-card{width:100%;height:306px;padding:12px 8px}.nft-batch .nft-card-portrait{height:164px}.nft-batch .nft-card-portrait canvas{width:180px;height:162px;max-width:100%;object-fit:contain}.nft-batch .nft-live-card h4{font-size:19px;white-space:nowrap}.nft-batch .nft-rarity-label{font-size:10px;margin:10px 2px 7px}.nft-batch .nft-card-series{font-size:5px}.nft-summon[data-count="5"][data-state="revealed"] .nft-reveal-side{padding-bottom:25px}
@media(max-width:900px){.nft-reveal-slot.nft-batch{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.nft-batch .nft-live-card{max-width:235px;justify-self:center}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-side{gap:12px;padding:12px}.nft-summon[data-count="5"][data-state="revealed"] .nft-open-actions{width:auto;flex:1}}
@media(max-width:600px){.nft-reveal-slot.nft-batch{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}.nft-batch .nft-live-card{height:290px}.nft-batch .nft-card-portrait{height:150px}.nft-batch .nft-card-portrait canvas{height:144px;width:160px}.nft-batch .nft-live-card h4{font-size:16px}.nft-batch .nft-card-region{font-size:6px}.nft-batch .nft-live-card:last-child{grid-column:1/-1;width:calc(50% - 7px)}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-stage{width:65px;height:65px}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-stage img{height:65px}.nft-chest-side .nft-open-actions .button{font-size:10px}}
/* Saturated collectible frames and explicit opening selection. */
.nft-open-actions .button[aria-pressed="false"]{background:#0b2133e8;color:#d3bd91;border:1px solid #a68c5f99;box-shadow:none}.nft-open-actions .button[aria-pressed="true"]{background:linear-gradient(135deg,#fff0b4,#e8ba58);color:#2b210b;border:1px solid #ffe7a0;box-shadow:0 0 19px #e8ba5833,inset 0 0 0 2px #fff7d735}.nft-open-actions .button[aria-pressed="true"]:after{content:'✓';font-size:12px;margin-left:7px}.nft-reveal-close{position:absolute;top:12px;right:12px;z-index:8;width:32px;height:32px;display:grid;place-items:center;border:1px solid #d8bb79aa;border-radius:50%;background:#071c2df2;color:#ffedc3;font:24px/1 Georgia;cursor:pointer;box-shadow:0 2px 10px #0006}.nft-reveal-close:hover{background:#775627;color:#fff8e9}.nft-reveal-close[hidden]{display:none}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-side{padding-right:55px}
.nft-live-card{border:0;outline:0;border-radius:15px;background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--rarity) 34%,#102035) 0,transparent 68%),linear-gradient(160deg,color-mix(in srgb,var(--rarity) 20%,#091426),#050e20);box-shadow:0 0 22px color-mix(in srgb,var(--rarity) 40%,transparent),inset 0 0 25px color-mix(in srgb,var(--rarity) 13%,transparent);overflow:visible;padding-top:22px}.nft-live-card:before{content:'';position:absolute;inset:-7px;background-image:var(--card-frame);background-size:100% 100%;background-repeat:no-repeat;border:0;clip-path:none;z-index:4;pointer-events:none}.nft-live-card:after{inset:0;overflow:hidden;border-radius:15px;z-index:3;pointer-events:none}.nft-card-corners{display:none}.nft-card-region{font-weight:600;letter-spacing:.17em;color:color-mix(in srgb,var(--rarity) 60%,white);text-shadow:0 0 8px var(--rarity)}.nft-card-portrait{height:178px}.nft-card-aura{opacity:.6;inset:2px -5px;background:radial-gradient(ellipse at 50% 50%,color-mix(in srgb,var(--rarity) 60%,transparent),transparent 65%)}.nft-card-aura:before{content:'';position:absolute;width:140px;height:140px;left:50%;top:20px;transform:translateX(-50%);border:1px solid color-mix(in srgb,var(--rarity) 55%,transparent);border-radius:50%;box-shadow:0 0 14px color-mix(in srgb,var(--rarity) 35%,transparent)}.nft-card-aura:after{content:'';position:absolute;width:160px;height:56px;left:50%;bottom:-2px;transform:translateX(-50%) rotate(-12deg);border:2px solid var(--rarity);border-radius:50%;box-shadow:0 0 10px var(--rarity),inset 0 0 10px var(--rarity)}.nft-card-portrait:after{content:'✧  ·  ✦';position:absolute;inset:12px 4px auto;color:var(--rarity);font-size:20px;letter-spacing:24px;text-shadow:0 0 10px var(--rarity);pointer-events:none;animation:nft-constellation 3s ease-in-out infinite}.nft-live-card h4{font-weight:600;text-shadow:0 2px 5px #000;margin-top:4px;font-size:24px}.nft-card-element{color:#d0d6e7}.nft-rarity-label{position:relative;z-index:5;font-size:12px;font-weight:700;color:#fff5e3;letter-spacing:.12em;background:linear-gradient(180deg,color-mix(in srgb,var(--rarity) 84%,#140c29),color-mix(in srgb,var(--rarity) 35%,#140c29));border:1px solid color-mix(in srgb,var(--rarity) 65%,white);padding:7px 3px;margin:9px 0 6px;box-shadow:0 0 12px var(--rarity);text-shadow:0 1px 3px #000c;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--rarity) 50%,transparent))}.nft-live-card[data-rarity=legendary] .nft-rarity-label{color:#fff6ad;background:linear-gradient(#b98a12,#6d4005);text-shadow:0 1px 3px #321900}.nft-card-series{font-size:5px;position:relative;z-index:5;color:#bdc9d8}.nft-gallery-card img{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--rarity) 18%,transparent))}.nft-batch .nft-live-card{padding-top:22px;height:318px}.nft-batch .nft-card-portrait{height:156px}.nft-batch .nft-card-portrait canvas{height:150px}.nft-batch .nft-rarity-label{padding:7px 2px;margin:10px 0 6px;font-size:11px}.nft-batch .nft-card-portrait:after{font-size:16px;letter-spacing:18px}.nft-batch .nft-card-aura:after{width:130px;height:42px}.nft-batch .nft-card-aura:before{width:115px;height:115px}.nft-batch .nft-live-card h4{font-size:20px}
@keyframes nft-constellation{50%{opacity:.4;transform:translateY(-4px)}}
@media(max-width:600px){.nft-batch .nft-live-card{height:307px}.nft-batch .nft-live-card h4{font-size:16px}.nft-batch .nft-rarity-label{font-size:9px}.nft-reveal-close{right:8px;top:8px}.nft-summon[data-count="5"][data-state="revealed"] .nft-chest-side{padding-right:48px}}
/* Match the portrait and labels to the carved frame's safe interior. */
.nft-live-card,.nft-batch .nft-live-card{height:auto;aspect-ratio:360/510;padding:0;background:none;box-shadow:none}.nft-card-backdrop{position:absolute;inset:14% 6% 6%;border-radius:28px;background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--rarity) 40%,#122135),transparent 80%),linear-gradient(140deg,color-mix(in srgb,var(--rarity) 20%,#081225),#050c1b)}.nft-card-region,.nft-card-series{display:none}.nft-card-portrait,.nft-batch .nft-card-portrait{position:absolute;top:20%;left:0;width:100%;height:48%;display:grid;place-items:center}.nft-card-portrait canvas,.nft-batch .nft-card-portrait canvas{width:85%;height:100%;object-fit:contain;max-width:200px}.nft-live-card h4,.nft-batch .nft-live-card h4{position:absolute;bottom:24%;left:2%;width:96%;margin:0;font-size:clamp(15px,1.7vw,23px);z-index:5;white-space:nowrap}.nft-card-element{position:absolute;bottom:19%;left:0;width:100%;z-index:5;font-size:10px}.nft-rarity-label,.nft-batch .nft-rarity-label{position:absolute;bottom:9%;left:6%;width:88%;height:10%;display:grid;place-items:center;margin:0;padding:0;font-size:clamp(9px,1vw,12px);font-weight:700;z-index:6}.nft-live-card:before{inset:-5px}.nft-live-card:after{display:none}.nft-card-aura:before{top:0}.nft-card-aura:after{bottom:0;width:80%;height:25%}.nft-batch .nft-card-aura:after{width:80%;height:25%}.nft-card-dialog .nft-live-card h4{font-size:23px}
@media(max-width:600px){.nft-batch .nft-live-card{height:auto}.nft-live-card h4,.nft-batch .nft-live-card h4{font-size:14px}.nft-batch .nft-card-element{font-size:8px}.nft-batch .nft-rarity-label{font-size:9px}}
.nft-rarity-label{font-size:16px}.nft-batch .nft-rarity-label{font-size:13px}
@media(max-width:600px){.nft-batch .nft-rarity-label{font-size:11px}}
/* One safe art area, an inset rarity ribbon, and a separate name caption. */
.nft-live-card,.nft-batch .nft-live-card{aspect-ratio:auto;height:auto;display:block;padding:0;overflow:visible}.nft-live-card:before,.nft-live-card:after{display:none}.nft-card-visual{position:relative;width:100%;aspect-ratio:360/510;isolation:isolate}.nft-card-visual:before{content:'';position:absolute;inset:-5px;background:var(--card-frame) center/100% 100% no-repeat;z-index:4;pointer-events:none}.nft-live-card .nft-card-visual .nft-card-portrait{top:18%;left:8%;width:84%;height:51%;overflow:hidden}.nft-live-card .nft-card-visual .nft-card-portrait canvas{width:100%;height:100%;object-fit:contain}.nft-live-card .nft-card-visual .nft-rarity-label{left:20%;width:60%;right:auto;bottom:16%;height:8%;margin:0;padding:0;display:grid;place-items:center;position:absolute;font-size:clamp(9px,1vw,13px);line-height:1;letter-spacing:.05em;box-sizing:border-box;white-space:nowrap;overflow:hidden;z-index:5}.nft-live-card .nft-card-caption{position:relative;display:grid;justify-items:center;gap:4px;margin:10px 6px 0;padding:8px 4px;background:#071b2a99;border-radius:6px;min-width:0}.nft-live-card .nft-card-caption h4,.nft-batch .nft-live-card .nft-card-caption h4,.nft-card-dialog .nft-live-card .nft-card-caption h4{position:static;inset:auto;display:block;width:100%;margin:0;padding:0;font:600 clamp(13px,1.4vw,19px)/1.25 var(--serif);white-space:normal;overflow-wrap:break-word;word-break:normal;text-align:center;letter-spacing:-.02em;color:var(--ink);text-shadow:0 1px 3px #000}.nft-live-card .nft-card-caption .nft-card-element{position:static;inset:auto;width:auto;display:block;font-size:10px;line-height:1.3;color:#bccbd5}.nft-batch .nft-live-card:last-child{height:auto}.nft-card-dialog .nft-live-card{margin-bottom:18px}.nft-card-dialog .nft-live-card .nft-card-caption h4{font-size:20px}
@media(max-width:600px){.nft-live-card .nft-card-visual .nft-rarity-label{font-size:9px}.nft-live-card .nft-card-caption{margin-top:8px;padding:6px 3px}.nft-batch .nft-live-card .nft-card-caption h4{font-size:13px}.nft-live-card .nft-card-caption .nft-card-element{font-size:9px}}
.nft-live-card .nft-card-visual .nft-card-portrait canvas[data-sprite]{width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain}
.nft-live-card .nft-card-visual .nft-card-portrait canvas[data-sprite]{position:absolute;inset:0;display:block;min-width:0;min-height:0;aspect-ratio:auto}

/* Shared card preview: fixed frame ratio and a smaller inset rarity ribbon. */
.nft-card-dialog{max-height:calc(100dvh - 24px);overflow-y:auto}
.nft-card-dialog #nft-detail-card{width:min(235px,calc(100vw - 96px));margin-inline:auto}
.nft-card-dialog #nft-detail-card .nft-live-card{width:100%;max-width:100%;height:auto}
.nft-card-dialog .nft-card-visual{height:auto;aspect-ratio:360/510;flex-shrink:0}
.nft-live-card .nft-card-visual .nft-rarity-label{left:23%;width:54%;bottom:16.5%;height:6.5%;font-size:clamp(8px,.85vw,11px);letter-spacing:.025em;filter:none;box-shadow:none}

/* Gilded rarity nameplate shares the frame's scrollwork and jewel palette. */
.nft-live-card .nft-card-visual .nft-rarity-label{left:21.1%;width:57.8%;bottom:15.5%;height:8.25%;border:0;clip-path:none;background:var(--rarity-ribbon) center/100% 100% no-repeat;color:#fff3d6;text-shadow:0 1px 2px #1b0a04,0 0 3px #1b0a04;font-weight:700;font-size:clamp(8px,.85vw,11px);padding:1px 12px 0;overflow:visible;white-space:nowrap}
.nft-live-card[data-rarity=legendary] .nft-rarity-label{background:var(--rarity-ribbon) center/100% 100% no-repeat}

/* Inventory thumbnails use the same live sprite renderer as the reveal. */
.inventory-card>.nft-live-card{width:100%;max-width:100%;margin:0;pointer-events:none}
.inventory-card .nft-card-caption{margin:7px 5px 0;padding:5px 2px;gap:2px}
.inventory-card .nft-card-caption h4{font-size:clamp(11px,1vw,15px)}
.inventory-card .nft-card-caption .nft-card-element{font-size:8px}
.inventory-card .inventory-quantity{z-index:8;top:5px;right:5px;pointer-events:none}

/* Inventory organization */
.inventory-section .nft-library-heading{align-items:flex-end;gap:20px;flex-wrap:wrap}
.inventory-filters{display:flex;gap:12px;flex-wrap:wrap}
.inventory-filters label{flex:1 1 140px;min-width:0}
.inventory-filters select{width:100%;min-width:140px}
.inventory-collection-stats{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:0 0 25px;font-size:12px;color:#c7d3dd}
.inventory-collection-stats b{color:#f2d48f}.inventory-collection-stats small{color:#9cabb8;flex-basis:100%;font-size:11px}
.inventory-new{position:absolute;top:5px;left:4px;z-index:8;background:#f3d58e;color:#142434;border:1px solid #fff0bf;border-radius:4px;padding:3px 6px;font:700 9px var(--body);letter-spacing:.08em;box-shadow:0 2px 8px #0006}
.inventory-duplicate{display:block;margin:5px auto 0;color:#d6c197;font:600 8px var(--body);letter-spacing:.08em}
@media(max-width:600px){.inventory-filters{width:100%;display:grid;grid-template-columns:1fr 1fr}.inventory-filters select{min-width:0}.inventory-collection-stats{gap:10px}.inventory-new{font-size:8px;padding:2px 4px}}
