@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap");

:root {
  color-scheme: light;
  --ink: #24151c;
  --muted: #766b70;
  --wine: #941425;
  --red: #bd101b;
  --red-bright: #e93838;
  --plum: #30152d;
  --cream: #fffaf1;
  --paper: #fffdf9;
  --gold: #eab45f;
  font-family: "Be Vietnam Pro", "Segoe UI", sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
  background: var(--cream);
}

* { box-sizing: border-box; }
body { min-width: 0; margin: 0; color: var(--ink); background-color: var(--cream); background-image: radial-gradient(#e7cda94a 1px, transparent 1.3px); background-size: 9px 9px; font-size: 14px; line-height: 1.6; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #edb752; outline-offset: 3px; }
::selection { color: white; background: #a5182e; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; clip-path: inset(50%); border: 0; }

.site-header { position: sticky; z-index: 10; top: 0; color: #fff; background: linear-gradient(115deg, #200d24, #37132d 58%, #211022); box-shadow: 0 5px 20px #17071233; }
.header-main { width: min(1250px, calc(100% - 40px)); min-height: 78px; display: grid; grid-template-columns: 42px 270px minmax(240px, 1fr) 100px; align-items: center; gap: 18px; margin: 0 auto; }
.icon-button { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 9px; background: transparent; color: #fff; cursor: pointer; }
.menu-toggle svg, .account-button svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.8; }
.menu-toggle:hover, .account-button:hover { background: #ffffff14; }
.brand { display: inline-flex; align-items: center; gap: 8px; width: max-content; }
.brand-emblem { width: 38px; height: 43px; display: grid; place-items: center; color: #f9e5c4; border: 2px solid #c79253; clip-path: polygon(50% 0, 94% 18%, 86% 77%, 50% 100%, 14% 77%, 6% 18%); font-family: Georgia, serif; font-size: 25px; font-weight: 700; text-shadow: 0 0 12px #f2d196; }
.brand-title { display: flex; flex-direction: column; line-height: 1.05; letter-spacing: .19em; }
.brand-title strong { font-family: Georgia, "Times New Roman", serif; font-size: 19px; font-weight: 800; white-space: nowrap; }
.brand-title small { margin-top: 6px; font-size: 8px; font-weight: 600; letter-spacing: .42em; white-space: nowrap; }
.search-form { min-width: 0; height: 46px; display: flex; align-items: center; overflow: hidden; border: 1px solid #ffffff30; border-radius: 7px; background: #fff; }
.search-form input { width: 100%; min-width: 0; height: 100%; padding: 0 16px; border: 0; outline: 0; color: #282128; background: transparent; font-size: 12px; }
.search-form input::placeholder { color: #9a9396; }
.search-form button { width: 49px; height: 100%; display: grid; flex: 0 0 49px; place-items: center; border: 0; background: white; cursor: pointer; }
.search-form button:hover { color: var(--red); background: #fff5f3; }
.search-form svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.account-button { display: grid; justify-items: center; gap: 0; padding: 6px 9px; border: 0; border-radius: 8px; color: white; background: transparent; cursor: pointer; }
.account-button svg { width: 25px; height: 25px; }
.account-button span { font-size: 9px; }
.quick-nav { width: min(1250px, calc(100% - 40px)); min-height: 38px; display: flex; align-items: center; gap: 28px; margin: auto; border-top: 1px solid #ffffff16; }
.quick-nav a, .quick-nav button { padding: 0; border: 0; background: transparent; color: #eadfe7; cursor: pointer; font-size: 10px; font-weight: 600; }
.quick-nav a:hover, .quick-nav button:hover { color: #ffd490; }
.demo-badge { margin-left: 4px; padding: 2px 5px; border-radius: 3px; background: #e9b95d; color: #38201b; font-size: 7px; font-weight: 900; }

.hero-wrap { padding: 16px 20px 24px; }
.hero-carousel { width: min(1250px, 100%); height: clamp(245px, 31vw, 370px); position: relative; overflow: hidden; margin: auto; border: 1px solid #fff; border-radius: 11px; background: radial-gradient(ellipse at 76% 50%, #562958 0%, #26152d 35%, #171422 80%); box-shadow: 0 10px 24px #2a12231e; color: white; }
.hero-carousel::before { position: absolute; inset: 0; content: ""; background-image: linear-gradient(90deg, #160f1add 0%, #211529ed 42%, transparent 100%), radial-gradient(#edca9730 .8px, transparent .9px); background-size: auto, 20px 20px; }
.hero-slide { position: absolute; inset: 0; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; overflow: hidden; padding: 35px clamp(30px, 7vw, 105px); opacity: 0; pointer-events: none; transform: translateX(18px); transition: opacity .5s ease, transform .5s ease; }
.hero-slide.is-active { opacity: 1; pointer-events: auto; transform: translateX(0); }
.slide-two { background: radial-gradient(ellipse at 76% 45%, #47647780, transparent 45%); }
.slide-three { background: radial-gradient(ellipse at 76% 45%, #a26a3266, transparent 45%); }
.hero-copy { z-index: 2; max-width: 540px; }
.hero-kicker, .section-kicker { display: block; color: #f3ca82; font-size: 9px; font-weight: 800; letter-spacing: .2em; }
.hero-copy h1, .hero-copy h2 { margin: 12px 0 8px; font-size: clamp(29px, 4vw, 52px); line-height: 1.16; letter-spacing: -.04em; }
.hero-copy h1 em, .hero-copy h2 em { color: #f4c56f; font-family: "Playfair Display", Georgia, serif; font-weight: 600; }
.hero-copy p { max-width: 425px; margin: 13px 0 21px; color: #e1d7de; font-size: 11px; }
.hero-cta { min-height: 43px; display: inline-flex; align-items: center; justify-content: center; gap: 24px; padding: 0 18px; border: 1px solid #e8bb6a; border-radius: 7px; background: linear-gradient(110deg, #d5a34f, #f0cb80); box-shadow: 0 5px 15px #0a061b4a; color: #311d20; cursor: pointer; font-size: 10px; font-weight: 900; letter-spacing: .06em; transition: transform .2s, filter .2s; }
.hero-cta:hover { transform: translateY(-2px); filter: brightness(1.08); }
.hero-cta span { font-size: 16px; }
.hero-art { min-width: 250px; height: 100%; display: grid; place-items: center; position: relative; }
.hero-halo { width: min(25vw, 270px); aspect-ratio: 1; position: absolute; border: 1px solid #f0c76f99; border-radius: 50%; background: radial-gradient(circle, #f3d38c33 0, #9a5a7a22 45%, transparent 72%); box-shadow: 0 0 70px #dcab7144, inset 0 0 45px #e2a5bf22; }
.hero-halo::before, .hero-halo::after { position: absolute; content: ""; inset: 13%; border: 1px solid #f8deb260; border-radius: 50%; transform: rotateX(65deg) rotate(-35deg); }
.hero-halo::after { inset: -7%; border-color: #e39fbb59; transform: rotateX(60deg) rotate(35deg); }
.hero-sigil { z-index: 1; width: 126px; height: 150px; display: grid; place-items: center; border: 2px solid #ffe0a9; clip-path: polygon(50% 0, 89% 15%, 100% 50%, 72% 85%, 50% 100%, 28% 85%, 0 50%, 11% 15%); background: linear-gradient(150deg, #f7e6bd, #a35d93 25%, #341943 54%, #20142e 75%, #e7b870); color: #ffebc2; font-family: "Playfair Display", Georgia, serif; font-size: 82px; text-shadow: 0 5px 24px #130d1d; filter: drop-shadow(0 0 28px #f4c87984); }
.hero-art-tag { z-index: 2; position: absolute; padding: 7px 9px; border: 1px solid #f1d19a77; border-radius: 5px; background: #211526c7; color: #efddb9; font-size: 7px; letter-spacing: .13em; line-height: 1.5; }
.hero-art-tag b { color: #f3c26b; font-size: 8px; }
.tag-top { top: 12%; right: 7%; }
.tag-bottom { bottom: 12%; left: 12%; }
.hero-star { position: absolute; color: #ffe5a7; text-shadow: 0 0 18px #ffd166; }
.star-one { top: 17%; left: 20%; font-size: 27px; }
.star-two { right: 13%; bottom: 18%; font-size: 22px; }
.slide-index { position: absolute; bottom: 15px; left: 25px; display: flex; align-items: center; gap: 9px; color: #e7d2de; font-size: 8px; letter-spacing: .16em; }
.slide-index i { width: 35px; height: 1px; background: #edc478; }
.carousel-arrow { width: 38px; height: 48px; display: grid; place-items: center; position: absolute; z-index: 3; top: 50%; border: 0; border-radius: 24px; background: #fffdf0d9; color: #5c3232; cursor: pointer; font-size: 30px; line-height: 1; transform: translateY(-50%); transition: background .2s; }
.carousel-arrow:hover { background: #fff; }
.hero-prev { left: 10px; }
.hero-next { right: 10px; }
.carousel-dots { display: flex; position: absolute; z-index: 3; right: 50%; bottom: 15px; gap: 6px; transform: translateX(50%); }
.carousel-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: #ffffff80; cursor: pointer; }
.carousel-dots button[aria-pressed="true"] { width: 21px; border-radius: 6px; background: #f1c774; }

.red-section { background: linear-gradient(112deg, #a80e1b, #c20f19 52%, #a2091c); color: #fff; }
.feature-section { padding-top: 19px; }
.section-heading { width: min(1210px, calc(100% - 40px)); display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 0 auto 14px; }
.section-heading h2 { margin: 3px 0 0; font-size: clamp(20px, 2.6vw, 29px); font-weight: 800; letter-spacing: -.035em; text-transform: uppercase; }
.section-heading-light { color: white; }
.section-heading-light .section-kicker { color: #ffd393; }
.swipe-hint { color: #f7dce0; font-size: 9px; font-weight: 700; letter-spacing: .03em; }
.swipe-hint span { margin-left: 8px; color: #ffd77d; font-size: 18px; vertical-align: -1px; }
.featured-track { width: min(1250px, calc(100% - 24px)); display: grid; grid-auto-columns: calc((100% - 24px) / 3); grid-auto-flow: column; gap: 12px; overflow-x: auto; padding: 6px 5px 14px; margin: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #e8b67544 transparent; }
.featured-track .account-card { scroll-snap-align: start; }
.more-strip { display: flex; justify-content: center; padding: 12px 20px 20px; border-top: 1px solid #ffffff2c; background: #b50d18; }
.outline-button { min-height: 39px; display: inline-flex; align-items: center; justify-content: center; gap: 13px; padding: 0 18px; border: 1px solid currentColor; border-radius: 7px; background: transparent; color: #fff; cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: .05em; transition: background .2s, color .2s; }
.outline-button:hover { background: #fff; color: #9c1020; }
.outline-button span { font-size: 19px; line-height: 1; }

.category-section { padding: 32px 20px 36px; scroll-margin-top: 130px; }
.category-grid { width: min(1210px, 100%); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin: auto; }
.category-tile { min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 13px; border: 1px solid #efdeca; border-radius: 14px; background: #fff9f2; box-shadow: 0 4px 13px #a8402e20; cursor: pointer; transition: transform .2s, box-shadow .2s; }
.category-tile:hover { transform: translateY(-4px); box-shadow: 0 10px 20px #a8402e30; }
.category-tile strong { margin-top: 6px; font-size: 13px; }
.category-tile small { color: var(--muted); font-size: 9px; }
.category-art { width: 54px; height: 54px; display: grid; place-items: center; position: relative; border: 1px solid #e8be8c; border-radius: 15px; background: linear-gradient(145deg, #fae4cf, #eac0d3); color: #712840; }
.category-art i { font-size: 25px; font-style: normal; }
.category-art b { position: absolute; bottom: 3px; color: #54404c; font-size: 5px; letter-spacing: .13em; }
.tile-mid .category-art { background: linear-gradient(145deg, #efe1ad, #e6b49d); }
.tile-heroes .category-art { background: linear-gradient(145deg, #d7b1d9, #edd3ac); }
.tile-gems .category-art { background: linear-gradient(145deg, #abe4d5, #d7e9a3); }

.catalog-section { padding: 25px max(calc((100% - 1210px) / 2), 20px) 34px; scroll-margin-top: 125px; }
.catalog-heading { width: 100%; margin-bottom: 13px; }
.sort-control { display: flex; align-items: center; gap: 9px; color: #f3d8d9; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.sort-control select { min-height: 35px; padding: 0 28px 0 10px; border: 1px solid #ffffff63; border-radius: 6px; color: #fff; background: #8e1420; font-size: 10px; letter-spacing: normal; }
.sort-control option { color: #211b1d; background: #fff; }
.filter-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin: 0 0 15px; }
.filter-chip { min-height: 29px; padding: 0 12px; border: 1px solid #ffffff64; border-radius: 99px; background: #a90f1b; color: #fff3ed; cursor: pointer; font-size: 9px; font-weight: 700; transition: .2s; }
.filter-chip:hover, .filter-chip.is-selected { border-color: #ffe0a1; background: #f5d78e; color: #621b21; }
.result-count { margin-left: auto; color: #ffe3d9; font-size: 9px; }
.account-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 15px; }
.account-card { min-width: 0; overflow: hidden; position: relative; border: 1px solid #eedecf; border-radius: 12px; background: #fffdfa; box-shadow: 0 3px 11px #38110d17; color: #30272b; }
.account-card:hover { box-shadow: 0 9px 22px #42171935; }
.account-art { height: 183px; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; background: radial-gradient(ellipse at 50% 60%, #9c5586, transparent 60%), linear-gradient(135deg, #171a36, #483052 54%, #ba8665); isolation: isolate; }
.account-art::before { position: absolute; z-index: -1; inset: 0; content: ""; opacity: .28; background-image: linear-gradient(30deg, transparent 45%, #f8dbb6 45.5%, transparent 46%), linear-gradient(150deg, transparent 45%, #f8dbb6 45.5%, transparent 46%); background-size: 50px 52px; }
.account-art::after { width: 172px; height: 172px; position: absolute; z-index: -1; top: -71px; right: -34px; content: ""; border: 1px solid #ffffff64; border-radius: 50%; box-shadow: 0 0 0 12px #ffffff10, 0 0 0 28px #ffffff0b; }
.art-crest { width: 87px; height: 112px; display: grid; place-items: center; position: relative; border: 1px solid #f8dfac; clip-path: polygon(50% 0, 92% 17%, 85% 72%, 50% 100%, 15% 72%, 8% 17%); background: linear-gradient(155deg, #f4d590, #9a5177 30%, #29183e 62%, #593759); box-shadow: 0 0 27px #f2c67862; color: #ffe9bd; font-family: "Playfair Display", Georgia, serif; font-size: 53px; text-shadow: 0 2px 12px #1d1025; }
.art-crest::after { width: 108px; height: 108px; position: absolute; content: ""; border: 1px solid #ffe9bd7a; border-radius: 50%; }
.art-caption { position: absolute; bottom: 10px; color: #fff1d7; font-size: 7px; font-weight: 700; letter-spacing: .19em; text-shadow: 0 1px 6px #261122; }
.art-stat { position: absolute; top: 10px; right: 10px; padding: 4px 6px; border: 1px solid #ffffff5e; border-radius: 4px; background: #24152ad9; color: #fff1d1; font-size: 7px; font-weight: 800; letter-spacing: .07em; }
.art-shine { position: absolute; color: #ffebae; font-size: 18px; text-shadow: 0 0 14px #fff; }
.art-shine-one { top: 28px; left: 20%; }
.art-shine-two { right: 21%; bottom: 38px; font-size: 13px; }
.art-violet { background: radial-gradient(ellipse at 54% 58%, #a880cc, transparent 59%), linear-gradient(135deg, #101e46, #554184 53%, #d08c89); }
.art-azure { background: radial-gradient(ellipse at 50% 58%, #6bafbe, transparent 58%), linear-gradient(135deg, #102546, #277489 51%, #d9b486); }
.art-rose { background: radial-gradient(ellipse at 50% 58%, #d28aad, transparent 60%), linear-gradient(135deg, #351c3b, #914c76 50%, #e3ad8d); }
.art-gold { background: radial-gradient(ellipse at 50% 58%, #ddbf71, transparent 60%), linear-gradient(135deg, #372238, #886050 50%, #f0cd86); }
.art-jade { background: radial-gradient(ellipse at 50% 58%, #6eae93, transparent 60%), linear-gradient(135deg, #1b2840, #31655e 52%, #cfbf84); }
.art-crimson { background: radial-gradient(ellipse at 50% 58%, #d37475, transparent 60%), linear-gradient(135deg, #311b30, #8b2c45 51%, #e7b171); }
.art-ice { background: radial-gradient(ellipse at 50% 58%, #8dc7d5, transparent 60%), linear-gradient(135deg, #182a47, #527f9a 51%, #d5c4c8); }
.art-night { background: radial-gradient(ellipse at 50% 58%, #9b7ab4, transparent 60%), linear-gradient(135deg, #1b172d, #493754 51%, #c69d7c); }
.account-card-top { position: absolute; z-index: 1; top: 10px; left: 10px; right: 10px; display: flex; justify-content: space-between; align-items: center; pointer-events: none; }
.discount-badge { padding: 4px 8px; border-radius: 5px; background: #ed493f; box-shadow: 0 2px 8px #4315103a; color: white; font-size: 9px; font-weight: 900; }
.favorite-button { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid #ffffff7c; border-radius: 50%; background: #3b233aa8; color: #fff; cursor: pointer; font-size: 16px; pointer-events: auto; transition: .2s; }
.favorite-button:hover, .favorite-button.is-favorite { border-color: #ffdbdc; background: #fff; color: #e33e4b; }
.favorite-button.is-favorite { font-size: 18px; }
.account-info { padding: 11px 12px 12px; }
.account-info h3 { margin: 0 0 5px; font-size: 14px; font-weight: 800; text-transform: uppercase; }
.account-meta { display: flex; justify-content: space-between; gap: 7px; padding: 5px 0; border-top: 1px solid #eee7e1; color: #655a5d; font-size: 9px; }
.account-meta strong { color: #a3192a; font-weight: 800; }
.account-stats { display: flex; flex-wrap: wrap; gap: 4px 10px; padding: 5px 0 8px; color: #514a4a; font-size: 8px; }
.account-stats strong { color: #ab1a29; }
.price-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid #eee7e1; }
.price-values { min-width: 0; display: flex; flex-direction: column; }
.old-price { color: #9b8c88; font-size: 8px; text-decoration: line-through; }
.sale-price { color: #ad2333; font-size: 16px; font-weight: 800; line-height: 1.4; }
.detail-button { min-height: 34px; padding: 0 11px; border: 0; border-radius: 6px; background: #241e21; color: white; cursor: pointer; font-size: 8px; font-weight: 800; white-space: nowrap; transition: .2s; }
.detail-button:hover { background: #b51c2a; }
.account-card-foot { margin-top: 9px; padding: 7px 8px; border-radius: 6px; background: #f6eeeb; color: #6e5c5a; font-size: 8px; font-weight: 600; }
.account-card-foot a { color: #a2182a; text-decoration: underline; }

.empty-state { padding: 40px 15px; text-align: center; color: #fff; }
.empty-state[hidden] { display: none; }
.empty-state > span { color: #f1c879; font-size: 38px; }
.empty-state strong { display: block; font-size: 15px; }
.empty-state p { color: #ffe2dc; font-size: 11px; }
.catalog-more { display: flex; justify-content: center; margin-top: 18px; }

.about-section { padding: 48px 20px 43px; background: #fff8ef; }
.about-heading { text-align: center; }
.about-heading .section-kicker { color: #a61a2a; }
.about-heading h2 { margin: 5px 0; font-family: "Playfair Display", Georgia, serif; font-size: clamp(22px, 3vw, 32px); }
.about-heading p { margin-bottom: 24px; color: var(--muted); font-size: 11px; }
.service-grid { width: min(950px, 100%); display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: auto; }
.service-grid article { display: flex; align-items: center; gap: 11px; padding: 15px; border: 1px solid #efdfd2; border-radius: 10px; background: #fffdfa; }
.service-grid article > span { width: 37px; height: 37px; display: grid; flex: 0 0 37px; place-items: center; border-radius: 50%; background: #f8e3dc; color: #a41a2c; font-size: 10px; font-weight: 900; }
.service-grid strong { font-size: 10px; }
.service-grid p { margin: 3px 0 0; color: var(--muted); font-size: 8px; }
.community-section { min-height: 160px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 28px max(calc((100% - 950px) / 2), 25px); background: linear-gradient(120deg, #2b132e, #4e1739 63%, #32152b); color: white; }
.community-section .section-kicker { color: #f4c97f; }
.community-section h2 { margin: 4px 0; font-size: 20px; }
.community-section p { margin: 0; color: #ead9e0; font-size: 10px; }
.site-footer { min-height: 75px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px max(calc((100% - 1210px) / 2), 20px); background: #1e1120; color: #f4ebed; }
.footer-brand .brand-emblem { width: 31px; height: 35px; font-size: 20px; }
.footer-brand .brand-title strong { font-size: 13px; }
.footer-brand .brand-title small { font-size: 6px; }
.site-footer p, .site-footer > a:last-child { margin: 0; color: #d0c1c6; font-size: 8px; }
.site-footer p span { color: #e5b55f; }
.floating-help { width: 68px; height: 68px; display: grid; align-content: center; justify-items: center; position: fixed; z-index: 8; right: 23px; bottom: 24px; border: 5px solid #ffffff73; border-radius: 50%; background: #c51d36; box-shadow: 0 3px 15px #79152655; color: #fff; cursor: pointer; }
.floating-help span { font-size: 19px; line-height: 1.1; }
.floating-help small { font-size: 7px; }
.back-to-top { width: 39px; height: 39px; display: none; position: fixed; z-index: 7; right: 29px; bottom: 104px; border: 0; border-radius: 7px; background: #241c20; color: #fff; cursor: pointer; font-size: 21px; }
.back-to-top.is-visible { display: block; }

.drawer-backdrop { position: fixed; z-index: 20; inset: 0; visibility: hidden; background: #100b10a6; opacity: 0; transition: opacity .25s, visibility .25s; }
.category-drawer { width: min(350px, 85vw); height: 100dvh; display: flex; flex-direction: column; position: fixed; z-index: 21; top: 0; left: 0; overflow-y: auto; background: linear-gradient(180deg, #171517, #262329); color: white; transform: translateX(-102%); transition: transform .28s ease; }
body.drawer-open { overflow: hidden; }
body.drawer-open .drawer-backdrop { visibility: visible; opacity: 1; }
body.drawer-open .category-drawer { transform: translateX(0); }
.drawer-heading { min-height: 53px; display: flex; align-items: center; justify-content: space-between; padding: 0 13px; border-bottom: 1px solid #ffffff23; }
.drawer-heading strong { font-size: 15px; }
.drawer-close { font-size: 25px; font-weight: 300; }
.drawer-links { display: grid; }
.drawer-links > a, .drawer-links > button { min-height: 49px; display: flex; align-items: center; justify-content: space-between; padding: 0 14px; border: 0; border-bottom: 1px dashed #ffffff39; background: transparent; color: white; text-align: left; cursor: pointer; font-size: 12px; font-weight: 500; }
.drawer-links > a:hover, .drawer-links > button:hover, .drawer-links > button.is-selected { color: #f26a75; }
.drawer-links > a:first-child, .drawer-links > button:first-child { color: #f05b6d; }
.drawer-submenu { display: none; padding: 5px 14px 9px 26px; background: #ffffff0b; }
.drawer-submenu.is-open { display: grid; }
.drawer-submenu button { min-height: 34px; border: 0; background: none; color: #e5dadd; text-align: left; cursor: pointer; font-size: 10px; }
.drawer-submenu button:hover { color: #ffbf73; }
.drawer-balance { width: calc(100% - 28px); display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: auto 14px 0; padding: 12px; border: 1px solid #ffffff38; border-radius: 9px; background: #ffffff0d; color: white; text-align: left; cursor: pointer; }
.drawer-balance > span:first-child { display: grid; gap: 5px; }
.drawer-balance small { color: #c0d3d3; font-size: 8px; font-weight: 800; letter-spacing: .1em; }
.drawer-balance strong { color: #8ce9dc; font-size: 20px; }
.balance-open-hint { display: flex; align-items: center; gap: 5px; color: #d8eeeb; font-size: 9px; }
.balance-open-hint b { font-size: 18px; font-weight: 400; }
.drawer-balance:hover, .drawer-balance:focus-visible { border-color: #72e0d2; background: #ffffff18; }
.drawer-note { margin: 0; padding: 0 14px 17px; color: #bbb0b7; font-size: 8px; }

.account-dialog, .auth-dialog, .payment-dialog, .balance-dialog { width: min(500px, calc(100% - 28px)); max-height: min(87dvh, 760px); overflow-y: auto; position: relative; padding: 0; border: 1px solid #dbc8b9; border-radius: 13px; background: #fffaf5; color: var(--ink); box-shadow: 0 23px 85px #190b17aa; }
.account-dialog::backdrop, .auth-dialog::backdrop, .payment-dialog::backdrop, .balance-dialog::backdrop { background: #110813bd; backdrop-filter: blur(3px); }
.dialog-close { width: 34px; height: 34px; display: grid; place-items: center; position: absolute; z-index: 2; top: 9px; right: 9px; border: 0; border-radius: 50%; background: #271a24d9; color: white; cursor: pointer; font-size: 23px; line-height: 1; }
.detail-modal-art { height: 185px; display: grid; place-items: center; position: relative; overflow: hidden; background: linear-gradient(135deg, #21172f, #89405a 55%, #e1bd83); }
.detail-modal-art .art-crest { width: 75px; height: 96px; }
.detail-modal-body { padding: 19px; }
.detail-modal-body .section-kicker, .auth-dialog .section-kicker { color: #a91b2d; }
.detail-modal-body h2, .auth-dialog h2 { margin: 2px 0 11px; font-size: 22px; }
.detail-modal-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.detail-modal-stats div { padding: 10px; border: 1px solid #eedfd3; border-radius: 7px; background: #fff; }
.detail-modal-stats span, .detail-modal-stats strong { display: block; }
.detail-modal-stats span { color: var(--muted); font-size: 8px; }
.detail-modal-stats strong { margin-top: 2px; color: #9e1b2c; font-size: 12px; }
.detail-modal-price { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 13px; border-top: 1px solid #eaddd2; }
.detail-modal-price > div { display: flex; flex-direction: column; }
.detail-modal-price .sale-price { font-size: 20px; }
.detail-modal-price .hero-cta { min-height: 40px; }
.detail-modal-note { margin: 13px 0 0; padding: 9px; border-radius: 6px; background: #f5ede6; color: #766b70; font-size: 9px; }
.auth-dialog { padding: 27px; }
.auth-dialog > .section-kicker { display: block; margin-bottom: 4px; }
.auth-dialog > p { color: var(--muted); font-size: 10px; }
.auth-dialog .auth-message { margin: 10px 0; padding: 10px 12px; border: 1px solid #9dd9cf; border-radius: 7px; background: #eaf8f4; color: #155e58; font-size: 10px; }
.auth-dialog .auth-message[data-type="error"] { border-color: #e8b4b4; background: #fff0ef; color: #9b2525; }
.auth-dialog .auth-message[hidden] { display: none; }
.auth-session { display: grid; gap: 10px; margin: 16px 0; padding: 15px; border: 1px solid #cfe5df; border-radius: 8px; background: #edf8f5; }
.auth-session[hidden], .auth-dialog form[hidden] { display: none; }
.auth-session-label { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.auth-session strong { overflow-wrap: anywhere; color: var(--ink); font-size: 12px; }
.session-logout { min-height: 38px; border: 1px solid #dfb8b8; border-radius: 6px; background: #fff; color: #9b2525; cursor: pointer; font-size: 9px; font-weight: 800; }
.session-logout:hover { background: #fff0ef; }
.auth-dialog form { display: grid; gap: 7px; }
.auth-dialog label { margin-top: 5px; color: #493d41; font-size: 9px; font-weight: 800; }
.auth-dialog input { width: 100%; height: 41px; padding: 0 11px; border: 1px solid #e4d7cb; border-radius: 6px; background: #fff; font-size: 10px; }
.auth-submit { width: 100%; margin-top: 10px; border: 0; font-family: inherit; }
.auth-submit:disabled { cursor: wait; opacity: .7; }
.auth-switch { margin: 15px 0 0; text-align: center; }
.auth-switch button { padding: 0; border: 0; background: none; color: #a51d2e; cursor: pointer; font: inherit; font-weight: 800; }
.auth-dialog .demo-note { margin: 13px 0 0; padding-top: 10px; border-top: 1px solid #eadfd8; text-align: center; font-size: 8px; }
.payment-dialog { padding: 27px; }
.payment-dialog > .section-kicker { display: block; margin-bottom: 4px; color: #087f83; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.payment-dialog h2 { margin: 2px 38px 8px 0; font-size: 21px; }
.payment-intro { margin: 0 0 14px; color: var(--muted); font-size: 10px; }
.payment-qr { width: min(100%, 280px); max-height: 45dvh; display: block; margin: 0 auto 14px; border: 1px solid #d7e9e4; border-radius: 10px; background: #fff; object-fit: contain; }
.payment-steps { display: grid; gap: 7px; margin: 0; padding-left: 22px; color: #345157; font-size: 10px; line-height: 1.55; }
.payment-notice { margin: 14px 0 0; padding: 10px 12px; border: 1px solid #e6d4ae; border-radius: 7px; background: #fff8e9; color: #705529; font-size: 9px; line-height: 1.5; }
.balance-dialog { padding: 27px; }
.balance-dialog > .section-kicker { display: block; margin-bottom: 4px; color: #087f83; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.balance-dialog h2 { margin: 2px 38px 16px 0; font-size: 22px; }
.balance-card { display: grid; gap: 7px; padding: 20px; border: 1px solid #c9e1dc; border-radius: 10px; background: linear-gradient(135deg, #eaf8f4, #f8fdfb); }
.balance-card > span { color: #587276; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.balance-card strong { color: #087f83; font-size: 34px; line-height: 1.1; }
.balance-card small { color: #587276; font-size: 9px; }
.balance-note { margin: 13px 0; color: #587276; font-size: 10px; line-height: 1.6; }
.balance-topup { width: 100%; justify-content: center; gap: 8px; }
.toast { max-width: min(380px, calc(100% - 32px)); position: fixed; z-index: 30; right: 20px; bottom: 103px; padding: 12px 15px; border: 1px solid #e8c58e; border-radius: 8px; background: #29182a; box-shadow: 0 10px 30px #18091854; color: white; font-size: 10px; opacity: 0; pointer-events: none; transform: translateY(8px); transition: .2s; }
.toast.is-visible { opacity: 1; transform: translateY(0); }

@media (min-width: 1400px) { .account-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .header-main { grid-template-columns: 36px 220px minmax(180px, 1fr) 62px; gap: 10px; width: calc(100% - 28px); }
  .brand-title strong { font-size: 16px; }
  .brand-title small { font-size: 7px; }
  .quick-nav { width: calc(100% - 28px); gap: 20px; }
  .featured-track { grid-auto-columns: calc((100% - 12px) / 2); }
  .account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .header-main { min-height: 65px; grid-template-columns: 34px 1fr 39px; gap: 7px; width: calc(100% - 24px); }
  .brand { gap: 6px; }
  .brand-emblem { width: 29px; height: 34px; font-size: 19px; }
  .brand-title strong { font-size: 14px; letter-spacing: .14em; }
  .brand-title small { font-size: 6px; letter-spacing: .29em; }
  .account-button { grid-column: 3; grid-row: 1; padding: 4px; }
  .account-button svg { width: 23px; height: 23px; }
  .account-button span { display: none; }
  .search-form { grid-column: 1 / -1; grid-row: 2; height: 41px; margin-bottom: 10px; }
  .header-main { padding-top: 7px; }
  .quick-nav { min-height: 34px; justify-content: space-between; gap: 9px; overflow-x: auto; scrollbar-width: none; }
  .quick-nav::-webkit-scrollbar { display: none; }
  .quick-nav a, .quick-nav button { flex: 0 0 auto; font-size: 8px; }
  .hero-wrap { padding: 10px 10px 17px; }
  .hero-carousel { height: 315px; }
  .hero-slide { grid-template-columns: 1fr; align-content: center; padding: 20px 26px 35px; }
  .hero-copy { max-width: 70%; align-self: start; }
  .hero-copy h1, .hero-copy h2 { font-size: 29px; }
  .hero-copy p { max-width: 250px; font-size: 9px; }
  .hero-cta { min-height: 37px; gap: 11px; padding-inline: 12px; font-size: 8px; }
  .hero-art { min-width: 100px; height: 125px; position: absolute; right: 4px; bottom: 27px; }
  .hero-halo { width: 140px; }
  .hero-sigil { width: 73px; height: 91px; font-size: 46px; }
  .hero-art-tag { font-size: 5px; }
  .hero-art-tag b { font-size: 6px; }
  .tag-top { top: 1%; right: 2%; }
  .tag-bottom { bottom: 1%; left: -4%; }
  .hero-prev { left: 5px; }
  .hero-next { right: 5px; }
  .carousel-arrow { width: 27px; height: 36px; font-size: 24px; }
  .slide-index { bottom: 12px; left: 14px; }
  .carousel-dots { right: auto; left: 50%; bottom: 13px; }
  .section-heading { width: calc(100% - 24px); align-items: start; flex-direction: column; gap: 2px; }
  .section-heading h2 { font-size: 21px; }
  .swipe-hint { font-size: 7px; }
  .featured-track { width: 100%; grid-auto-columns: minmax(250px, 82vw); grid-auto-columns: 82vw; gap: 10px; padding-inline: 12px; }
  .account-art { height: 169px; }
  .feature-section { padding-top: 15px; }
  .category-section { padding: 23px 12px; }
  .category-grid { gap: 9px; }
  .category-tile { min-height: 127px; padding: 8px; }
  .category-art { width: 45px; height: 45px; }
  .category-tile strong { font-size: 10px; }
  .category-tile small { font-size: 7px; text-align: center; }
  .catalog-section { padding: 20px 12px 28px; scroll-margin-top: 115px; }
  .catalog-heading { width: 100%; flex-direction: row; align-items: end; gap: 8px; }
  .catalog-heading h2 { max-width: 205px; font-size: 18px; }
  .sort-control { display: grid; justify-items: end; gap: 3px; font-size: 7px; }
  .sort-control select { min-height: 30px; max-width: 126px; padding-left: 6px; font-size: 8px; }
  .filter-bar { gap: 5px; }
  .filter-chip { min-height: 27px; padding-inline: 9px; font-size: 8px; }
  .result-count { width: 100%; margin: 2px 0 0; }
  .account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .account-art { height: 122px; }
  .art-crest { width: 61px; height: 79px; font-size: 37px; }
  .account-card-top { top: 6px; left: 6px; right: 6px; }
  .discount-badge { padding: 3px 5px; font-size: 7px; }
  .favorite-button { width: 25px; height: 25px; font-size: 13px; }
  .art-stat { top: 34px; right: 5px; padding: 3px 4px; font-size: 5px; }
  .art-caption { bottom: 6px; font-size: 5px; }
  .account-info { padding: 8px; }
  .account-info h3 { font-size: 10px; }
  .account-meta { flex-direction: column; gap: 1px; font-size: 7px; }
  .account-stats { gap: 3px 6px; font-size: 6px; }
  .price-row { align-items: end; }
  .sale-price { font-size: 12px; }
  .old-price { font-size: 7px; }
  .detail-button { min-height: 29px; padding-inline: 6px; font-size: 7px; }
  .account-card-foot { font-size: 6px; }
  .about-section { padding: 35px 14px; }
  .service-grid { grid-template-columns: 1fr; }
  .community-section { min-height: 0; align-items: flex-start; flex-direction: column; padding: 27px 18px; }
  .community-section h2 { max-width: 300px; font-size: 17px; }
  .site-footer { align-items: flex-start; flex-wrap: wrap; padding: 15px; }
  .site-footer p { order: 3; width: 100%; }
  .site-footer > a:last-child { align-self: center; }
  .floating-help { width: 54px; height: 54px; right: 13px; bottom: 15px; border-width: 3px; }
  .floating-help span { font-size: 16px; }
  .back-to-top { right: 21px; bottom: 80px; }
  .toast { right: 12px; bottom: 78px; }
  .auth-dialog, .payment-dialog, .balance-dialog { padding: 22px; }
}
@media (max-width: 360px) {
  .account-grid { grid-template-columns: 1fr; }
  .account-art { height: 170px; }
  .art-crest { width: 82px; height: 105px; font-size: 50px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

:root {
  --ink: #142b31;
  --muted: #61767b;
  --wine: #075b62;
  --red: #087f83;
  --red-bright: #21aaa5;
  --plum: #102f3b;
  --cream: #f1f8f7;
  --paper: #fbfefd;
  --gold: #67d9cc;
}

body {
  background-color: var(--cream);
  background-image: radial-gradient(#8dbbb52e 1px, transparent 1.3px);
}

button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline-color: #45c7bd; }
::selection { background: #087f83; }
.site-header { background: linear-gradient(115deg, #102b38, #124b55 58%, #102f3b); }
.brand-emblem { color: #b9fff3; border-color: #57cfc2; text-shadow: 0 0 12px #67d9cc; }
.search-form button:hover { color: #087f83; background: #e9fbf8; }
.quick-nav a:hover, .quick-nav button:hover { color: #80e8dc; }
.demo-badge { background: #67d9cc; color: #10343a; }

.hero-carousel {
  background: radial-gradient(ellipse at 76% 50%, #1d6470 0%, #143b49 38%, #101f31 80%);
}
.hero-carousel::before {
  background-image: linear-gradient(90deg, #101a29e8 0%, #15313ce8 42%, transparent 100%), radial-gradient(#9bf4e530 .8px, transparent .9px);
}
.slide-two { background: radial-gradient(ellipse at 76% 45%, #287f8b80, transparent 45%); }
.slide-three { background: radial-gradient(ellipse at 76% 45%, #527b7666, transparent 45%); }
.hero-kicker, .section-kicker, .section-heading-light .section-kicker { color: #8ce9dc; }
.hero-copy h1 em, .hero-copy h2 em { color: #72e0d2; }
.hero-cta {
  border-color: #6be1d4;
  background: linear-gradient(110deg, #37bdb4, #9aeee0);
  color: #10343a;
}
.hero-halo { border-color: #72e0d299; }
.hero-sigil { border-color: #b7fff0; background: linear-gradient(150deg, #c4fff3, #4aaea9 25%, #174c59 54%, #122a3b 75%, #6ee0d2); color: #e5fff9; }
.hero-art-tag { border-color: #8ce9dc77; background: #102d3bcf; color: #d8fff7; }
.hero-art-tag b, .hero-star { color: #8ce9dc; }
.hero-star { text-shadow: 0 0 18px #65e2d5; }
.slide-index i { background: #72e0d2; }
.carousel-arrow { color: #17434b; }
.carousel-dots button[aria-pressed="true"] { background: #72e0d2; }

.red-section { background: linear-gradient(112deg, #07515b, #087f83 52%, #07515b); }
.swipe-hint { color: #d8f7f2; }
.swipe-hint span { color: #8ce9dc; }
.featured-track { scrollbar-color: #8ce9dc55 transparent; }
.more-strip { background: #064b55; }
.outline-button:hover { color: #075b62; }

.category-tile { border-color: #d4e9e5; background: #fbfefd; box-shadow: 0 4px 13px #155b6020; }
.category-tile:hover { box-shadow: 0 10px 20px #155b6030; }
.category-art { border-color: #9edbd2; background: linear-gradient(145deg, #d8f7ef, #c4e8eb); color: #14636a; }
.category-art b { color: #315c60; }
.tile-mid .category-art { background: linear-gradient(145deg, #d7f2df, #b8e6df); }
.tile-heroes .category-art { background: linear-gradient(145deg, #c6e9ed, #d4f0df); }
.tile-gems .category-art { background: linear-gradient(145deg, #aee7dc, #d2f0c8); }

.sort-control { color: #d8f7f2; }
.sort-control select, .filter-chip { background: #075b62; }
.filter-chip { color: #eafffb; }
.filter-chip:hover, .filter-chip.is-selected { border-color: #a4f4e8; background: #70ddd0; color: #103b40; }
.result-count { color: #d8f7f2; }
.account-card { border-color: #d4e9e5; background: #fbfefd; color: #18343a; }
.account-meta { border-color: #e0eeeb; color: #536d72; }
.account-meta strong, .account-stats strong, .account-card-foot a { color: #087f83; }
.account-stats { color: #465f64; }
.price-row { border-color: #e0eeeb; }
.sale-price { color: #087f83; }
.detail-button { background: #173941; }
.detail-button:hover { background: #087f83; }
.account-card-foot { background: #edf7f5; color: #587276; }
.empty-state > span { color: #8ce9dc; }
.empty-state p { color: #d8f7f2; }

.about-section { background: #e8f4f1; }
.about-heading .section-kicker, .detail-modal-body .section-kicker, .auth-dialog .section-kicker { color: #087f83; }
.service-grid article { border-color: #d0e5e1; background: #fbfefd; }
.service-grid article > span { background: #d5f2eb; color: #087f83; }
.community-section { background: linear-gradient(120deg, #102f3b, #155b62 63%, #123c47); }
.community-section .section-kicker { color: #8ce9dc; }
.community-section p { color: #d8eeeb; }
.site-footer { background: #102431; color: #e7f5f3; }
.site-footer p, .site-footer > a:last-child { color: #c2d8d7; }
.site-footer p span { color: #72e0d2; }
.floating-help { background: #087f83; box-shadow: 0 3px 15px #075b6255; }
.back-to-top { background: #173941; }

.drawer-backdrop { background: #07171ca6; }
.category-drawer { background: linear-gradient(180deg, #102b38, #173c46); }
.drawer-links > a:hover, .drawer-links > button:hover, .drawer-links > button.is-selected,
.drawer-links > a:first-child, .drawer-links > button:first-child { color: #72e0d2; }
.drawer-submenu button:hover { color: #8ce9dc; }
.drawer-note { color: #c0d3d3; }

.account-dialog, .auth-dialog, .payment-dialog, .balance-dialog { border-color: #c9e1dc; background: #f7fcfa; }
.account-dialog::backdrop, .auth-dialog::backdrop, .payment-dialog::backdrop, .balance-dialog::backdrop { background: #071b22bd; }
.dialog-close { background: #173941d9; }
.detail-modal-art { background: linear-gradient(135deg, #102b38, #18777a 55%, #77cabb); }
.detail-modal-stats div { border-color: #d7e9e4; }
.detail-modal-stats strong, .auth-switch button { color: #087f83; }
.detail-modal-price { border-color: #d7e9e4; }
.detail-modal-note { background: #eaf4f1; }
.auth-dialog label { color: #345157; }
.auth-dialog input { border-color: #cfe1dc; }
.auth-dialog .demo-note { border-color: #d7e9e4; }
.toast { border-color: #72d9ce; background: #123640; box-shadow: 0 10px 30px #0c293454; }

.tile-random .category-art { border-color: #8dc9dc; background: linear-gradient(145deg, #d8eff4, #b8d9f0); color: #315c88; }
.tile-random .category-art b { color: #315c88; }
.tile-vip .category-art { border-color: #d6bc77; background: linear-gradient(145deg, #fff1c7, #e6d7a1); color: #80651d; }
.tile-vip .category-art b { color: #71591d; }
.tile-reg .category-art { border-color: #a6ced5; background: linear-gradient(145deg, #e0f1f2, #c2e3e7); color: #245f6c; }
.tile-reg .category-art b { color: #245f6c; }
.category-heading { margin: 0 auto 20px; text-align: center; }
.category-heading .section-kicker { color: #087f83; }
.category-heading h2 { margin: 4px 0; color: var(--ink); font-size: clamp(22px, 3vw, 30px); letter-spacing: -.035em; }
.category-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.category-tile {
  min-height: 166px;
  position: relative;
  overflow: hidden;
  border-color: #d3e8e4;
  background: linear-gradient(145deg, #ffffff, #f6fcfa);
  box-shadow: 0 7px 20px #174e5410;
}
.category-tile::before {
  height: 3px;
  position: absolute;
  inset: 0 22% auto;
  border-radius: 0 0 5px 5px;
  background: linear-gradient(90deg, transparent, #4fc8bc, transparent);
  content: "";
  opacity: .55;
  transition: inset .2s, opacity .2s;
}
.category-tile:hover::before, .category-tile:focus-visible::before { inset-inline: 0; opacity: 1; }
.category-tile:hover { border-color: #a6d9d2; box-shadow: 0 12px 27px #155b6024; }
.category-tile strong { color: #17383e; }
.category-art { width: 60px; height: 60px; border-radius: 18px; box-shadow: 0 5px 13px #155b6012; }
@media (min-width: 901px) {
  .category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
