/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
:root {
    /* TDesign typography scale shared by the public site and admin theme. */
    --font-sans: "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
    --td-font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
    --td-font-size-body-small: 12px;
    --td-font-size-body-medium: 14px;
    --td-font-size-body-large: 16px;
    --td-font-size-title-small: 14px;
    --td-font-size-title-medium: 16px;
    --td-font-size-title-large: 18px;
    --td-font-size-title-extraLarge: 20px;
    --td-font-size-headline-small: 24px;
    --td-font-size-headline-medium: 28px;
    --td-font-size-headline-large: 36px;
    --td-line-height-body-small: 20px;
    --td-line-height-body-medium: 22px;
    --td-line-height-body-large: 24px;
    --td-line-height-title-small: 22px;
    --td-line-height-title-medium: 24px;
    --td-line-height-title-large: 26px;
    --td-line-height-title-extraLarge: 28px;
    --td-line-height-headline-small: 32px;
    --td-line-height-headline-medium: 36px;
    --td-line-height-headline-large: 44px;
    --td-font-body-small: var(--td-font-size-body-small) / var(--td-line-height-body-small) var(--td-font-family);
    --td-font-body-medium: var(--td-font-size-body-medium) / var(--td-line-height-body-medium) var(--td-font-family);
    --td-font-body-large: var(--td-font-size-body-large) / var(--td-line-height-body-large) var(--td-font-family);
    --td-font-title-medium: 600 var(--td-font-size-title-medium) / var(--td-line-height-title-medium) var(--td-font-family);
    --td-font-title-extraLarge: 600 var(--td-font-size-title-extraLarge) / var(--td-line-height-title-extraLarge) var(--td-font-family);
    --ink: #172033;
    --ink-soft: #667085;
    --paper: #f7f8fa;
    --white: #ffffff;
    --line: #e4e7ec;
    --accent: #315efb;
    --accent-strong: #2447c8;
    --violet: #7c3aed;
    --member-wallet-accent: #14854a;
    --member-plan-accent: var(--accent);
    --member-plan-crown-accent: #ffb300;
    --member-plan-crown-fill: #ffb30022;
    --member-plan-badge-bg: #c62828;
    --member-plan-badge-ink: #ffffff;
    --member-checkout-success-bg: #effaf4;
    --member-checkout-success-ink: #166534;
    --member-checkout-error: #b42318;
    --member-money-bg: var(--mint);
    --avatar-tone-0: #315efb;
    --avatar-tone-1: #7c3aed;
    --avatar-tone-2: #0f766e;
    --avatar-tone-3: #c2410c;
    --avatar-tone-4: #be185d;
    --avatar-tone-5: #334155;
    --plan-quarter: #d97706;
    --plan-quarter-glow: rgba(217, 119, 6, .22);
    --plan-year: #172554;
    --plan-year-gold: #b77900;
    --plan-year-glow: rgba(23, 37, 84, .24);
    --plan-month-glow: rgba(49, 94, 251, .22);
    --cyan: #06b6d4;
    --mint: #dbeafe;
    --yellow: #fef3c7;
    --coral: var(--accent);
    --shell: min(1240px, calc(100% - 48px));
    --hub-home-section-space: 58px;
    --hub-home-card-gap: 16px;
    --hub-home-card-radius: 14px;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 16px;
    --ease-in-out: cubic-bezier(.65, 0, .35, 1);
    --ease-close: cubic-bezier(.77, 0, .175, 1);
    --tier-badge: #f59e0b;
    --tier-badge-ink: #fff;
    --tier-price: #ed4545;
    --shadow-sm: 0 4px 14px rgba(15, 23, 42, .05);
    --shadow-md: 0 12px 30px rgba(15, 23, 42, .08);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body.theme-layout-narrow { --shell: min(1160px, calc(100% - 40px)); }
body.theme-layout-standard { --shell: min(1160px, calc(100% - 40px)); }
/* Wide mode follows the target site's roomy desktop canvas so five cards keep
   enough width for their titles before the two-line clamp is reached. */
body.theme-layout-wide { --shell: min(1760px, calc(100% - 48px)); }
body.theme-layout-full { --shell: calc(100% - 32px); }
body.theme-layout-large { --shell: min(1520px, calc(100% - 64px)); }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-sans); font-size: var(--td-font-size-body-medium); line-height: var(--td-line-height-body-medium); overflow-x: clip; }
.member-page,
.member-page *,
.member-center,
.member-center * { font-family: var(--td-font-family); }
body:before { display: none; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: var(--td-font-body-medium); }
button, a { -webkit-tap-highlight-color: transparent; }
button, .nav-button, .primary-button, .member-submit, .request-submit, .feedback-submit, .feedback-login { cursor: pointer; }
:focus-visible { outline: 3px solid rgba(37, 99, 235, .4); outline-offset: 3px; }
.shell { width: var(--shell); margin: 0 auto; }
.site-announcement { background: var(--ink); color: #fff; padding: 8px 0; text-align: center; font-size: 11px; font-weight: 700; letter-spacing: .04em; }
.site-notice { width: min(92vw, 520px); max-height: min(82vh, 620px); margin: auto; padding: 0; overflow: visible; border: 0; background: transparent; color: var(--ink); }
.site-notice::backdrop { background: rgba(15, 23, 42, .6); backdrop-filter: blur(5px); }
.site-notice-panel { position: relative; max-height: min(82vh, 620px); padding: 34px; overflow-y: auto; border: 1px solid var(--line); border-top: 4px solid var(--accent); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-md); animation: notice-in .2s ease-out both; }
.site-notice-close { position: absolute; top: 9px; right: 9px; display: grid; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--ink-soft); cursor: pointer; font-size: 25px; line-height: 1; place-items: center; }
.site-notice-close:hover { background: #eff6ff; color: var(--ink); }
.site-notice-label, .footer-label { margin: 0; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.site-notice h2 { margin: 13px 42px 14px 0; font-size: clamp(25px, 5vw, 34px); letter-spacing: -.045em; line-height: 1.12; }
.site-notice-content { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.75; white-space: pre-line; }
.site-notice-confirm { min-width: 124px; min-height: 44px; margin-top: 26px; padding: 0 18px; border: 0; border-radius: 9px; background: var(--ink); color: #fff; cursor: pointer; font-weight: 800; }
.site-notice-confirm:hover { background: var(--accent); }
@keyframes notice-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
/* Keep same-origin page changes from briefly exposing an unpainted new header
 * in browsers that support cross-document View Transitions. Older browsers
 * ignore these rules and retain the normal full-page navigation behavior. */
@view-transition { navigation: auto; }
.site-header { position: sticky; top: 0; z-index: 20; view-transition-name: site-header; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); transition: box-shadow .2s ease, border-color .2s ease; }
::view-transition-old(root), ::view-transition-new(root) { animation: none; }
::view-transition-old(site-header), ::view-transition-new(site-header) { animation: none; }
.site-header.is-scrolled { border-color: var(--line); box-shadow: 0 4px 18px rgba(15, 23, 42, .06); }
.nav-row { min-height: 72px; display: flex; align-items: center; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: 214px; }
.brand-mark { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; background: var(--ink); color: #fff; font-weight: 800; }
.brand strong { display: block; font-size: 16px; letter-spacing: .04em; line-height: 1.1; }
.brand small { display: block; color: var(--ink-soft); font-size: 8px; font-weight: 700; letter-spacing: .14em; line-height: 1.1; margin-top: 4px; }
.main-nav { display: flex; gap: 26px; align-items: center; flex: 1; }
.main-nav a { position: relative; padding: 23px 0 21px; color: var(--ink-soft); font-size: 13px; font-weight: 600; }
.main-nav a:hover, .main-nav a.is-active { color: var(--ink); }
.main-nav a.is-active:after { content: ""; position: absolute; left: 0; right: 0; bottom: 16px; height: 3px; border-radius: 99px; background: var(--accent); }
.nav-actions { display: flex; align-items: center; gap: 10px; color: var(--ink-soft); font-size: 12px; }
.nav-membership { display:inline-flex; align-items:center; gap:6px; min-height:34px; padding:0 12px; border-radius:8px; color:var(--accent); background:color-mix(in srgb,var(--accent) 9%,white); font-weight:700; }
.nav-membership svg { width:16px; height:16px; stroke-width:2; }

/* Target-site navigation rhythm: compact icon buttons, not underlined text links. */
.site-header { background:rgba(255,255,255,.98); }
.site-header .nav-row { min-height:64px; gap:14px; }
.site-header .brand { min-width:0; margin-right:4px; }
.site-header .brand-mark { width:30px; height:30px; border-radius:7px; }
.site-header .brand-logo { display:block; width:auto; height:32px; max-width:160px; object-fit:contain; }
.site-header .brand > span:last-child { display:none; }
.site-header .main-nav { gap:4px; }
.site-header .main-nav > a,
.site-header .main-nav .nav-parent-link { min-height:36px; padding:6px 12px; border-radius:24px; color:#13111c; font-size:14px; font-weight:400; }
.site-header .main-nav > a > svg,
.site-header .main-nav .nav-parent-link > svg { width:19px; height:19px; stroke-width:2; }
.site-header .main-nav > a:hover,
.site-header .main-nav .nav-parent-link:hover { background:#f5f5f6; color:#13111c; }
.site-header .main-nav > a.is-active,
.site-header .main-nav .nav-menu.is-active .nav-parent-link { color:var(--accent); background:transparent; font-weight:600; }
.site-header .main-nav > a.is-active:after,
.site-header .main-nav .nav-menu.is-active .nav-parent-link:after { display:none; }
.site-header .nav-menu-toggle { margin-left:-8px; }
.site-header .nav-actions { gap:8px; margin-left:auto; }
.site-header .nav-membership { min-height:36px; padding:6px 16px; border-radius:24px; color:#fff; background:#b91c1c; font-size:13px; font-weight:600; }
.site-header .nav-membership:hover { color:#fff; background:#991b1b; }
.site-header .member-link { min-height:36px; padding:6px 12px; border-radius:24px; }
@media (max-width:900px) { .site-header .brand { margin-right:0; } .site-header .nav-membership { display:none; } }
.site-header .nav-menu { position:relative; }
.site-header .nav-menu .nav-parent-link { padding-right:30px; }
.site-header .nav-menu .nav-menu-toggle { position:absolute; top:50%; right:7px; z-index:2; width:18px; height:18px; margin:0; padding:0; border:0; transform:translateY(-50%); background:transparent; }
.member-link { display: inline-flex; align-items: center; white-space: nowrap; }
.member-user-menu { position: relative; }
.member-user-trigger { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; color: var(--ink); font-weight: 700; white-space: nowrap; }
.member-user-avatar { display: grid; width: 30px; height: 30px; aspect-ratio: 1 / 1; flex: 0 0 30px; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 50% !important; background: var(--paper); color: var(--white); object-fit: cover; font-size: 11px; font-weight: 900; }
.member-user-avatar[src] { display: block; }
.member-user-trigger:hover .member-user-avatar, .member-user-trigger:focus-visible .member-user-avatar { border-color: var(--accent); }
.member-avatar { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; border-radius: 50%; color: var(--white); object-fit: cover; font-size: 12px; font-weight: 900; }
.member-avatar-tone-0 { background: var(--avatar-tone-0); }
.member-avatar-tone-1 { background: var(--avatar-tone-1); }
.member-avatar-tone-2 { background: var(--avatar-tone-2); }
.member-avatar-tone-3 { background: var(--avatar-tone-3); }
.member-avatar-tone-4 { background: var(--avatar-tone-4); }
.member-avatar-tone-5 { background: var(--avatar-tone-5); }
.member-level-badge { display: inline-flex; min-height: 22px; align-items: center; padding: 0 8px; border-radius: 999px; font-size: 10px; font-weight: 900; line-height: 1; white-space: nowrap; }
.member-level-badge.is-normal { background: var(--paper); color: var(--ink-soft); }
.member-user-chevron { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; color: var(--ink-soft); transition: transform .18s var(--detail-ease); }
.member-user-menu.is-open .member-user-chevron { transform: rotate(180deg); }
.member-user-popover { position: absolute; z-index: 40; top: calc(100% + 8px); right: 0; display: grid; width: 210px; padding: 8px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-md); }
.member-user-popover[hidden] { display: none; }
.member-user-popover > div { display: grid; gap: 3px; padding: 9px 10px 11px; border-bottom: 1px solid var(--line); }
.member-user-popover strong { overflow: hidden; color: var(--ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.member-user-popover small { color: var(--ink-soft); font-size: 10px; }
.member-user-popover > a { min-height: 36px; display: flex; align-items: center; padding: 0 10px; border-radius: 7px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.member-user-popover > a:hover, .member-user-popover > a:focus-visible { background: var(--paper); color: var(--accent); outline: 0; }
.member-user-popover .member-user-logout { margin-top: 4px; border-top: 1px solid var(--line); color: #b42318; }
.status-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--cyan); margin-right: 7px; box-shadow: 0 0 0 3px rgba(6, 182, 212, .12); }
.nav-button, .primary-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 0 14px; border: 1px solid var(--ink); border-radius: 7px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 700; transition: background .2s ease, border-color .2s ease; }
.nav-button:hover, .primary-button:hover { border-color: var(--accent); background: var(--accent); }
.hero { min-height: 440px; display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(320px, .98fr); gap: 52px; align-items: center; padding: 56px 0 52px; }
.hero-copy { max-width: 610px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.eyebrow i { width: 18px; height: 2px; display: inline-block; border-radius: 4px; background: currentColor; }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { max-width: 620px; margin: 15px 0; font-size: clamp(36px, 4.5vw, 58px); line-height: 1.08; letter-spacing: -.055em; font-weight: 750; }
.hero h1 em { color: var(--accent); font-style: normal; }
.hero-copy > p { max-width: 510px; color: var(--ink-soft); font-size: 15px; }
.search-bar { display: flex; align-items: center; min-height: 58px; margin-top: 28px; padding: 5px 6px 5px 17px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); box-shadow: var(--shadow-sm); transition: border-color .2s ease, box-shadow .2s ease; }
.search-bar:focus-within { border-color: rgba(37, 99, 235, .65); box-shadow: 0 0 0 4px rgba(37, 99, 235, .1), var(--shadow-sm); }
.search-icon { color: var(--accent); font-size: 25px; line-height: 1; }
.search-bar input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; padding: 10px 12px; color: var(--ink); font-size: 13px; }
.search-bar input::placeholder { color: #94a3b8; }
.search-bar button { min-height: 46px; padding: 0 17px; border: 0; border-radius: 8px; background: var(--accent); color: #fff; cursor: pointer; font-size: 12px; font-weight: 800; transition: background .2s ease; }
.search-bar button:hover { background: var(--accent-strong); }
.search-bar button span, .primary-button span { font-size: 17px; margin-left: 3px; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 17px; color: var(--ink-soft); font-size: 11px; }
.hero-meta b { margin-right: 3px; color: var(--ink); font-size: 15px; }
.hero-art { position: relative; min-height: 320px; overflow: hidden; border-radius: var(--radius-lg); background: linear-gradient(135deg, #18233d 0%, #315efb 100%); box-shadow: var(--shadow-md); isolation: isolate; }
.hero-art:before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 72% 28%, rgba(255,255,255,.34) 0 2px, transparent 3px), radial-gradient(circle at 25% 68%, rgba(255,255,255,.2) 0 1px, transparent 2px); background-size: 44px 44px, 28px 28px; opacity: .52; }
.hero-art:after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, transparent 0 52%, rgba(15,23,42,.58)); z-index: -1; }
.hero-art-caption, .hero-art-stamp { position: absolute; z-index: 1; color: #fff; }
.hero-art-caption { left: 29px; bottom: 27px; }
.hero-art-caption span { color: #bfdbfe; font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.hero-art-caption strong { display: block; margin-top: 9px; font-size: clamp(37px, 4.8vw, 58px); line-height: .89; letter-spacing: -.06em; }
.hero-art-stamp { top: 22px; right: 22px; width: 76px; height: 76px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; color: #e0e7ff; text-align: center; font-size: 9px; font-weight: 800; line-height: 1.05; letter-spacing: .05em; transform: rotate(11deg); }
.category-strip, .content-section { padding: 10px 0 68px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.section-heading.compact { align-items: center; }
.section-heading h2 { margin: 7px 0 0; font-size: 25px; letter-spacing: -.045em; }
.text-link { color: var(--ink-soft); font-size: 12px; font-weight: 700; border-bottom: 1px solid var(--line); padding-bottom: 4px; transition: color .2s ease, border-color .2s ease; }
.text-link:hover { color: var(--accent); border-color: var(--accent); }
.category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.category-tile { position: relative; min-height: 138px; display: flex; flex-direction: column; justify-content: space-between; padding: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.category-tile:after { content: ""; position: absolute; width: 92px; height: 92px; right: -36px; bottom: -42px; border: 1px solid rgba(37, 99, 235, .16); border-radius: 50%; }
.category-tile:hover { border-color: rgba(49, 94, 251, .45); box-shadow: var(--shadow-sm); }
.category-number { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.category-tile strong { font-size: 17px; letter-spacing: -.02em; }
.category-tile > span:not(.category-number) { max-width: 85%; color: var(--ink-soft); font-size: 11px; }
.category-tile b { position: absolute; right: 17px; bottom: 17px; color: var(--accent); font-size: 18px; font-weight: 500; }
.empty-inline, .empty-state { grid-column: 1 / -1; color: var(--ink-soft); background: #eef2f7; padding: 22px; font-size: 13px; }
.game-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.game-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.game-card:hover { border-color: rgba(49, 94, 251, .35); box-shadow: var(--shadow-md); }
.game-cover { width: 100%; height: 178px; display: block; object-fit: cover; }
.game-cover span { align-self: end; padding: 15px; color: rgba(255,255,255,.84); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.cover-tone-1, .cover-tone-2, .cover-tone-3, .cover-tone-4 { position: relative; display: flex; overflow: hidden; }
.cover-tone-1 { background: linear-gradient(135deg, #172554, #2563eb); }
.cover-tone-2 { background: linear-gradient(135deg, #3b0764, #7c3aed); }
.cover-tone-3 { background: linear-gradient(135deg, #083344, #0891b2); }
.cover-tone-4 { background: linear-gradient(135deg, #312e81, #c026d3); }
.cover-tone-1:before, .cover-tone-2:before, .cover-tone-3:before, .cover-tone-4:before { content: "✦"; position: absolute; right: 22px; top: 16px; color: rgba(255,255,255,.58); font-size: 69px; line-height: 1; }
.game-card-body { padding: 15px 16px 17px; }
.card-kicker { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--ink-soft); font-size: 10px; letter-spacing: .1em; }
.card-kicker span { color: var(--accent); font-weight: 800; }
.card-kicker time { letter-spacing: 0; white-space: nowrap; }
.game-card h3 { margin: 11px 0 7px; font-size: 16px; line-height: 1.3; letter-spacing: -.025em; }
.game-card p { min-height: 42px; margin-bottom: 15px; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }
.card-action { color: var(--ink); font-size: 12px; font-weight: 800; }
.card-action b { margin-left: 5px; color: var(--accent); font-size: 16px; }
.empty-state { min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; text-align: center; border: 1px dashed #cbd5e1; border-radius: var(--radius-md); }
.empty-state strong { font-size: 17px; }
.empty-state span { color: var(--ink-soft); font-size: 12px; }
.empty-state a { margin-top: 8px; color: var(--accent); font-size: 12px; font-weight: 800; }
.resource-tags { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 0 2px; }
.resource-tags span { padding: 4px 8px; border: 1px solid #dbeafe; border-radius: 999px; background: #eff6ff; color: #475569; font-size: 10px; line-height: 1; }
.article-tags { margin-top: 13px; }
.article-tags span { border-color: transparent; background: #ede9fe; color: #5b21b6; }
.feature-band { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: 58px; margin-bottom: 82px; padding: 44px; overflow: hidden; border-radius: var(--radius-lg); background: var(--ink); color: #fff; }
.feature-copy h2 { max-width: 400px; margin: 14px 0 15px; font-size: 35px; line-height: 1.08; letter-spacing: -.06em; }
.feature-copy p { max-width: 430px; color: #a7b4c7; font-size: 13px; }
.feature-copy .primary-button { margin-top: 17px; border-color: var(--accent); background: var(--accent); }
.feature-list { padding-left: 34px; border-left: 1px solid rgba(255,255,255,.16); }
.feature-list-head { display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.16); color: #94a3b8; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.feature-list a { display: grid; grid-template-columns: 42px 1fr 22px; gap: 10px; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.11); }
.feature-list a:hover strong { color: #93c5fd; }
.feature-index { color: #93c5fd; font-size: 11px; }
.feature-list strong { font-size: 14px; }
.feature-list a > span:last-child { color: #93c5fd; font-size: 18px; }
.feature-empty { padding: 25px 0; color: #94a3b8; font-size: 13px; }
.site-footer { padding: 42px 0 20px; border-top: 1px solid var(--line); background: #eef2f7; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 30px; padding-bottom: 38px; }
.footer-brand { margin-bottom: 14px; }
.footer-grid p { max-width: 300px; margin: 0; color: var(--ink-soft); font-size: 12px; }
.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; gap: 9px; font-size: 12px; }
.footer-grid a:hover { color: var(--accent); }
.footer-bottom { display: flex; justify-content: space-between; gap: 15px; padding-top: 15px; border-top: 1px solid #d5dee9; color: #94a3b8; font-size: 10px; }
.listing-header { padding: 62px 0 40px; }
.listing-header h1 { margin: 13px 0 8px; font-size: clamp(34px, 4vw, 48px); letter-spacing: -.055em; line-height: 1.08; }
.listing-header p { color: var(--ink-soft); font-size: 14px; }
.compact-search { max-width: 700px; margin-top: 23px; }
.listing-body { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 42px; padding-bottom: 86px; }
.filter-panel { align-self: start; display: flex; flex-direction: column; gap: 5px; padding-top: 16px; border-top: 1px solid var(--line); }
.filter-link { padding: 8px 0; border-bottom: 1px solid transparent; color: var(--ink-soft); font-size: 13px; }
.filter-link.is-active, .filter-link:hover { color: var(--ink); border-color: var(--accent); }
.results-bar { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: 12px; }
.results-bar a { color: var(--accent); font-weight: 700; }
.listing-results .game-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pagination { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 28px; }
.pagination a, .pagination span { min-width: 32px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink-soft); font-size: 12px; text-align: center; }
.pagination a:hover, .pagination .current { border-color: var(--ink); background: var(--ink); color: #fff; }
.article-page { padding: 48px 0 90px; }
.back-link { color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.back-link:hover { color: var(--accent); }
.article-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, 360px); gap: 50px; align-items: end; margin: 42px 0 43px; }
.article-heading h1 { max-width: 760px; margin: 13px 0; font-size: clamp(34px, 4.2vw, 54px); letter-spacing: -.06em; line-height: 1.08; }
.article-meta { display: flex; flex-wrap: wrap; gap: 18px; color: var(--ink-soft); font-size: 12px; }
.article-cover { position: relative; min-height: 230px; display: flex; align-items: end; padding: 18px; overflow: hidden; border-radius: var(--radius-md); color: #fff; }
.article-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.article-cover:after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(15,23,42,.65), transparent 65%); }
.article-cover span { position: relative; z-index: 1; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 60px; }
.article-summary { margin-bottom: 40px; padding: 3px 0 3px 20px; border-left: 3px solid var(--accent); }
.article-summary p { margin: 9px 0 0; font-size: 19px; line-height: 1.45; }
.article-copy { max-width: 750px; color: #475569; font-size: 15px; }
.article-copy h2 { color: var(--ink); font-size: 24px; }
.article-richtext img { max-width: 100%; height: auto; display: block; margin: 1rem 0; }
.article-richtext a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.unlock-panel { align-self: start; padding: 28px; border: 1px solid #1e293b; border-radius: var(--radius-md); background: var(--ink); color: #fff; }
.unlock-panel h2 { margin: 14px 0; font-size: 25px; line-height: 1.1; letter-spacing: -.05em; }
.unlock-panel p { color: #a7b4c7; font-size: 13px; }
.unlock-panel .primary-button { margin-top: 10px; border-color: var(--accent); background: var(--accent); }
.unlock-panel small { display: block; margin-top: 18px; color: #8fa0b7; font-size: 10px; }
.share-links-list { display: grid; gap: 12px; }
.share-link-row { display: grid; gap: 7px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.13); color: #dbeafe; font-size: 12px; }
.text-muted { color: #8fa0b7; font-size: 11px; }
.article-side { align-self: start; display: grid; gap: 14px; }
.feedback-panel { padding: 24px; border: 1px solid var(--line); border-top: 4px solid var(--accent); border-radius: var(--radius-md); background: var(--white); }
.feedback-panel h2 { margin: 11px 0 8px; font-size: 22px; letter-spacing: -.045em; }
.feedback-panel > p { color: var(--ink-soft); font-size: 12px; }
.feedback-panel label { display: block; margin-top: 15px; color: var(--ink); font-size: 11px; font-weight: 800; }
.feedback-panel select, .feedback-panel textarea { display: block; width: 100%; margin-top: 7px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; color: var(--ink); outline: 0; font: inherit; font-size: 12px; }
.feedback-panel select { height: 42px; }
.feedback-panel textarea { min-height: 82px; resize: vertical; }
.feedback-panel select:focus, .feedback-panel textarea:focus { border-color: var(--accent); background: #fff; }
.feedback-submit, .feedback-login { display: flex; width: 100%; align-items: center; justify-content: space-between; margin-top: 14px; padding: 12px 14px; border: 0; border-radius: 8px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 800; }
.feedback-submit:hover, .feedback-login:hover { background: var(--accent); }
.feedback-current { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.feedback-current > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.feedback-current strong { font-size: 14px; }
.feedback-current p { color: var(--ink-soft); font-size: 11px; margin: 13px 0; }
.feedback-current a { display: inline-block; margin-top: 12px; color: var(--accent); font-size: 11px; }
.feedback-status, .request-item-type, .request-item-status { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.feedback-status.status-0, .request-item-status.status-0 { background: #fef3c7; color: #92400e; }
.feedback-status.status-1, .request-item-status.status-1 { background: #dbeafe; color: #1e40af; }
.feedback-status.status-2, .request-item-status.status-2 { background: #dcfce7; color: #166534; }
.feedback-status.status-3, .request-item-status.status-3, .request-item-status.status-4 { background: #e2e8f0; color: #475569; }
.feedback-history { margin-top: 44px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.feedback-history-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.feedback-history-head h2 { margin: 10px 0 0; font-size: 30px; letter-spacing: -.05em; }
.feedback-history-head > a { color: var(--accent); font-size: 12px; font-weight: 700; }
.feedback-table-wrap { overflow-x: auto; }
.feedback-history table { width: 100%; min-width: 760px; border-collapse: collapse; }
.feedback-history th { padding: 10px 12px; border-bottom: 2px solid var(--ink); color: var(--ink-soft); font-size: 10px; letter-spacing: .08em; text-align: left; }
.feedback-history td { padding: 16px 12px; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: 12px; vertical-align: top; }
.feedback-history td:first-child { width: 36%; color: var(--ink); }
.feedback-history td:first-child strong, .feedback-history td:first-child span, .feedback-history td:first-child small { display: block; }
.feedback-article-link { display: inline-block; max-width: 100%; color: var(--ink); }
.feedback-article-link strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.feedback-article-link:hover strong, .feedback-article-link:focus-visible strong { color: var(--accent); }
.feedback-article-link:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 28%, transparent); outline-offset: 3px; border-radius: 4px; }
.feedback-history td:first-child span { margin-top: 5px; color: var(--accent); font-size: 10px; font-weight: 800; }
.feedback-history td:first-child small { margin-top: 7px; color: var(--ink-soft); font-size: 11px; line-height: 1.45; }
.feedback-note-empty, .feedback-note-processing, .feedback-note-resolved, .feedback-note-closed { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; line-height: 1.5; }
.feedback-note-empty { color: #94a3b8; }
.feedback-note-processing { color: #1e40af; }
.feedback-note-resolved { color: #166534; }
.feedback-note-closed { color: #64748b; }
.feedback-empty { padding: 34px !important; text-align: center !important; }
.member-page { min-height: calc(100vh - 245px); display: grid; grid-template-columns: minmax(0, 1fr) 430px; gap: 100px; align-items: center; padding: 76px 0 92px; }
.member-auth-intro-stack, .member-auth-form-stack, .member-center-widget-stack, .request-widget-stack { min-width: 0; }
.member-intro { max-width: 600px; }
.member-intro h1, .member-center h1 { margin: 14px 0 16px; font: var(--td-font-headline-medium); letter-spacing: -.035em; }
.member-intro p { max-width: 480px; color: var(--ink-soft); font-size: 14px; }
.member-muted-link { display: inline-block; margin-top: 19px; padding-bottom: 3px; border-bottom: 1px solid currentColor; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.member-muted-link:hover { color: var(--accent); }
.member-form { padding: 34px; border: 1px solid var(--line); border-top: 4px solid var(--accent); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-md); }
.form-step { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.member-form h2 { margin: 13px 0 4px; font: var(--td-font-title-extraLarge); letter-spacing: -.02em; }
.form-note { margin-bottom: 22px; color: var(--ink-soft); font-size: 12px; }
.member-form label { display: block; margin: 16px 0; color: var(--ink); font-size: 12px; font-weight: 800; }
.member-form input { display: block; width: 100%; min-height: 45px; margin-top: 7px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; outline: 0; background: #f8fafc; color: var(--ink); font-weight: 400; }
.member-form input:focus { border-color: var(--accent); background: #fff; }
.member-login-feedback { min-height: 1.6em; margin: -4px 0 4px; color: #b42318; font-size: 11px; line-height: 1.6; }
.member-login-toast { position: fixed; z-index: 100; top: 24px; left: 50%; display: flex; min-width: min(360px, calc(100% - 32px)); align-items: center; gap: 12px; padding: 15px 18px; border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-md); color: var(--ink); opacity: 0; pointer-events: none; transform: translate(-50%, -10px); transition: opacity .18s var(--detail-ease), transform .18s var(--detail-ease); }
.member-login-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.member-login-toast > span { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 50%; background: var(--accent); color: var(--white); font-weight: 900; }
.member-login-toast strong, .member-login-toast small { display: block; }
.member-login-toast strong { font-size: 13px; }
.member-login-toast small { margin-top: 2px; color: var(--ink-soft); font-size: 10px; }
@media (prefers-reduced-motion: reduce) { .member-login-toast { transform: translate(-50%, 0); transition-duration: .01ms; } }
.resource-toast { position: fixed; z-index: 1200; top: 24px; left: 50%; display: flex; min-width: min(360px, calc(100% - 32px)); align-items: center; justify-content: center; padding: 12px 18px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line)); border-radius: 10px; background: var(--white); box-shadow: var(--shadow-md); color: var(--ink); font-size: 13px; font-weight: 700; text-align: center; opacity: 0; pointer-events: none; transform: translate(-50%, -10px); transition: opacity .18s ease, transform .18s ease; }
.resource-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.resource-toast.is-error { border-color: #fecaca; color: #b42318; }
@media (prefers-reduced-motion: reduce) { .resource-toast { transform: translate(-50%, 0); transition-duration: .01ms; } }
.verification-row { display: flex; gap: 8px; }
.verification-row input { min-width: 0; flex: 1; }
.send-code-button { flex: 0 0 112px; min-height: 45px; margin-top: 7px; border: 1px solid var(--ink); border-radius: 8px; background: var(--ink); color: #fff; cursor: pointer; font-size: 12px; }
.send-code-button:disabled { opacity: .55; cursor: wait; }
.member-submit { width: 100%; min-height: 46px; margin-top: 8px; padding: 0 16px; border: 0; border-radius: 8px; background: var(--accent); color: #fff; cursor: pointer; font-weight: 800; }
.member-submit:hover { background: var(--accent-strong); }
.member-submit:disabled { opacity: .55; cursor: wait; }
.member-submit span { margin-left: 8px; font-size: 17px; }
.member-form small { display: block; margin-top: 14px; color: var(--ink-soft); font-size: 10px; line-height: 1.6; }
.member-center { padding: 68px 0 92px; }
.member-center-layout { display: grid; grid-template-columns: 228px minmax(0, 1fr); gap: 52px; align-items: start; }
.member-center-layout > .member-center-sidebar { width: 228px; min-width: 228px; box-sizing: border-box; }
.member-center-sidebar { position: sticky; top: 24px; overflow: hidden; box-sizing: border-box; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.member-sidebar-profile { display: flex; min-height: 104px; box-sizing: border-box; align-items: center; gap: 12px; padding: 20px 16px; border-bottom: 1px solid var(--line); background: #f8fafc; }
.member-sidebar-avatar { display: grid; width: 52px; height: 52px; flex: 0 0 52px; place-items: center; border-radius: 50%; color: var(--white); object-fit: cover; font-size: 18px; font-weight: 900; }
.member-sidebar-avatar-button { display: grid; width: 56px; height: 56px; flex: 0 0 56px; place-items: center; padding: 1px; border: 0; border-radius: 50%; background: transparent; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.member-sidebar-avatar-button:hover, .member-sidebar-avatar-button:focus-visible { transform: translateY(-1px); box-shadow: 0 0 0 4px rgb(37 99 235 / 14%); outline: 0; }
.member-sidebar-avatar-button .member-sidebar-avatar { width: 52px; height: 52px; }
.member-sidebar-profile > div { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 5px 7px; }
.member-sidebar-profile strong { overflow: hidden; color: var(--ink); font-size: 16px; letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.member-sidebar-profile > div > small { width: 100%; color: var(--ink-soft); font-size: 10px; }
.member-avatar-dialog { width: min(720px, calc(100vw - 32px)); max-height: min(760px, calc(100vh - 32px)); padding: 0; border: 1px solid var(--line); border-radius: 18px; background: var(--white); color: var(--ink); box-shadow: 0 24px 80px rgb(15 23 42 / 24%); }
.member-avatar-dialog::backdrop { background: rgb(15 23 42 / 52%); backdrop-filter: blur(3px); }
.member-avatar-form { position: relative; padding: 28px; }
.member-avatar-form h2 { margin: 8px 0 6px; font-size: 24px; }
.member-avatar-form .form-note { margin: 0 0 18px; color: var(--ink-soft); font-size: 12px; }
.member-avatar-close { position: absolute; top: 18px; right: 18px; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; background: var(--white); color: var(--ink-soft); font-size: 22px; line-height: 1; cursor: pointer; }
.member-avatar-close:hover { border-color: var(--ink); color: var(--ink); }
.member-avatar-options { display: grid; max-height: 430px; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 10px; overflow-y: auto; padding: 4px 4px 12px; }
.member-avatar-option { position: relative; display: grid; place-items: center; padding: 4px; border: 2px solid transparent; border-radius: 14px; cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.member-avatar-option:hover { transform: translateY(-2px); background: var(--paper); }
.member-avatar-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.member-avatar-option img { display: block; width: 64px; height: 64px; border-radius: 12px; object-fit: cover; }
.member-avatar-option:has(input:checked) { border-color: var(--accent); background: rgb(37 99 235 / 10%); }
.member-avatar-option:has(input:checked)::after { content: '✓'; position: absolute; right: -4px; bottom: -4px; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; background: var(--accent); color: #fff; font-size: 12px; font-weight: 900; }
.member-avatar-feedback { min-height: 18px; margin: 4px 0 8px; color: var(--ink-soft); font-size: 12px; }
.member-avatar-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.member-avatar-cancel, .member-avatar-confirm { min-height: 38px; padding: 0 18px; border-radius: 8px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.member-avatar-cancel { border: 1px solid var(--line); background: var(--white); color: var(--ink-soft); }
.member-avatar-confirm { border: 1px solid var(--accent); background: var(--accent); color: #fff; }
@media (max-width: 680px) { .member-avatar-options { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 420px) { .member-avatar-options { grid-template-columns: repeat(4, minmax(0, 1fr)); } .member-avatar-option img { width: 58px; height: 58px; } .member-avatar-form { padding: 22px 18px; } }
.member-sidebar-nav { display: grid; min-height: 440px; box-sizing: border-box; align-content: start; gap: 2px; padding: 8px; }
.member-sidebar-group-label { padding: 12px 11px 5px; color: var(--ink-soft); font-size: 10px; font-weight: 800; }
.member-sidebar-group-label:not(:first-child) { margin-top: 6px; padding-top: 15px; border-top: 1px solid var(--line); }
.member-sidebar-nav a { display: flex; min-height: 40px; align-items: center; box-sizing: border-box; padding: 0 11px 0 8px; border-left: 3px solid transparent; border-radius: 7px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.member-sidebar-nav a:hover, .member-sidebar-nav a.is-active { border-left-color: var(--accent); background: #eff6ff; color: var(--accent); }
.member-sidebar-footer { margin: 0 8px; padding: 13px 11px 16px; border-top: 1px solid var(--line); }
.member-sidebar-footer a { color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.member-sidebar-footer a:hover { color: #dc2626; }
.member-center-content { min-width: 0; }
.member-center:not(.member-interactions) .member-center-content { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); }
.member-center-widget-stack { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.member-center-widget-stack + .member-center-widget-stack { margin-top: 24px; }
.member-center-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 38px; }
.member-center-head h1 { margin-bottom: 8px; font-size: clamp(32px, 4vw, 46px); }
.member-center-head p { margin: 0; color: var(--ink-soft); font-size: 13px; }
.member-center-dashboard { display: block; margin-bottom: 0; }
.member-center-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.member-center-highlight { display: flex; min-width: 0; min-height: 190px; flex-direction: column; align-items: flex-start; padding: 24px; border-radius: var(--radius-lg); color: var(--white); }
.member-center-highlight.is-membership, .member-center-highlight.is-wallet { border: 1px solid var(--line); background: var(--white); color: var(--ink); }
.member-center-highlight.is-membership { position: relative; isolation: isolate; overflow: hidden; }
.member-center-highlight.is-membership > :not(.member-card-seal) { position: relative; z-index: 1; }
.member-card-seal { position: absolute; z-index: 0; top: 50%; right: clamp(28px, 8vw, 96px); display: grid; min-width: 132px; justify-items: center; gap: 14px; color: var(--ink-soft); transform: translateY(-50%); }
.member-card-seal-ring { position: relative; display: grid; width: 128px; height: 128px; place-items: center; border: 1px solid color-mix(in srgb, var(--membership-badge-color, var(--accent)) 65%, white); border-radius: 50%; color: color-mix(in srgb, var(--membership-badge-color, var(--accent)) 74%, #352711); text-align: center; }
.member-card-seal-ring::before, .member-card-seal-ring::after { position: absolute; inset: 10px; border: 1px solid color-mix(in srgb, var(--membership-badge-color, var(--accent)) 34%, transparent); border-radius: 50%; content: ''; }
.member-card-seal-ring::after { inset: -9px; border-color: color-mix(in srgb, var(--membership-badge-color, var(--accent)) 24%, transparent); border-bottom-color: transparent; border-left-color: transparent; transform: rotate(38deg); }
.member-card-seal[data-effect="shine"] .member-card-seal-ring::after { animation: member-card-seal-shine 4.2s var(--ease-in-out) infinite; }
.member-card-seal-ring strong { z-index: 1; max-width: 6em; margin: 0; overflow-wrap: anywhere; padding: 0 .25em; color: inherit; font-size: clamp(14px, 1.5vw, 20px); line-height: 1.25; }
.member-card-seal-ring small { z-index: 1; margin-top: -25px; color: var(--ink-soft); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.member-card-seal > span { color: var(--ink-soft); font-size: 9px; font-weight: 800; letter-spacing: .12em; }
@keyframes member-card-seal-shine { 0%, 52% { transform: rotate(38deg); } 82%, 100% { transform: rotate(218deg); } }
.member-center-highlight.is-membership p, .member-center-highlight.is-wallet p { color: var(--ink-soft); }
.member-center-highlight.is-membership a, .member-center-highlight.is-wallet a { background: var(--accent); color: var(--white); }
.member-center-highlight.is-wallet-disabled { position: relative; isolation: isolate; overflow: hidden; }
.member-wallet-disabled-base { display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: flex-start; filter: blur(7px); opacity: .62; pointer-events: none; user-select: none; }
.member-wallet-disabled-base > span:first-child { color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.member-wallet-disabled-base strong { margin-top: 8px; color: var(--ink); font-size: 28px; letter-spacing: .16em; line-height: 1.2; }
.member-wallet-disabled-base strong small { font-size: 14px; letter-spacing: 0; }
.member-wallet-disabled-base p { margin: 6px 0 18px; color: var(--ink-soft); font-size: 12px; }
.member-wallet-disabled-link { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; margin-top: auto; padding: 0 14px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 72%, var(--white)); color: var(--white); font-size: 12px; font-weight: 800; }
.member-wallet-result-icon { display: inline-flex; width: 42px; height: 42px; flex: 0 0 42px; align-items: center; justify-content: center; border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--white) 66%, var(--accent) 12%); color: var(--accent); box-shadow: 0 8px 18px color-mix(in srgb, var(--accent) 12%, transparent); }
.member-wallet-result-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.member-wallet-disabled-result { position: absolute; z-index: 3; inset: 0; display: flex; align-items: center; gap: 14px; padding: 24px; background: color-mix(in srgb, var(--white) 82%, var(--accent) 5%); opacity: 0; transform: scale(.96); transition: opacity .3s ease .08s, transform .42s var(--ease-close) .08s; backdrop-filter: blur(12px) saturate(125%); -webkit-backdrop-filter: blur(12px) saturate(125%); }
.member-wallet-disabled-result[hidden] { display: none; }
.member-wallet-disabled-result.is-static { opacity: 1; transform: none; }
.member-wallet-disabled-result.is-static, .wallet-page-disabled-message.is-static { transition: none; }
.member-wallet-disabled-result strong { color: var(--ink); font-size: 16px; }
.member-wallet-disabled-result p { max-width: 34ch; margin: 6px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.6; }
@media (prefers-reduced-motion: reduce) {
    .member-wallet-disabled-result, .wallet-page-disabled-message { transition: none; }
}
#member-orders { scroll-margin-top: 24px; }
.member-center-highlight > span { font-size: 12px; font-weight: 700; }
.member-center-highlight strong { margin-top: 8px; font-size: 28px; line-height: 1.2; }
.member-level-title { max-width: 100%; }
.member-level-title .member-level-name { display: inline-block; max-width: 100%; overflow-wrap: anywhere; padding-right: .35em; color: color-mix(in srgb, var(--membership-badge-color, var(--accent)) 72%, #352711); font-size: clamp(28px, 3vw, 38px); font-weight: 900; letter-spacing: -.06em; line-height: 1.15; }
.member-level-title .member-level-name::after { display: block; width: 48px; height: 3px; margin-top: 10px; border-radius: 999px; background: linear-gradient(90deg, color-mix(in srgb, var(--membership-badge-color, var(--accent)) 78%, transparent), transparent); content: ''; }
.member-level-title.is-normal .member-level-name { color: var(--accent); }
.member-center-highlight strong small { font-size: 14px; }
.member-level-title.is-normal { color: var(--accent); text-shadow: 0 5px 16px color-mix(in srgb, var(--accent) 12%, transparent); }
@keyframes member-level-shimmer { from { background-position: 0 50%; } to { background-position: 180px 50%; } }
@media (prefers-reduced-motion: reduce) { .member-level-title.is-member { animation: none; background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) { .member-card-seal[data-effect="shine"] .member-card-seal-ring::after { animation: none; } }
.member-center-highlight p { margin: 6px 0 18px; color: var(--white); font-size: 12px; }
.member-center-highlight a { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; margin-top: auto; padding: 0 14px; border-radius: 8px; background: var(--white); color: var(--ink); font-size: 12px; font-weight: 800; white-space: nowrap; }
.member-center-highlight a:hover { background: var(--paper); color: var(--ink); border-color: var(--accent); }
.member-center-highlight a:focus-visible { background: var(--paper); color: var(--ink); border-color: var(--accent); }
.member-center-highlight a:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.member-center-highlight.is-membership { border-color: #273244; background: #151d29; color: var(--white); box-shadow: 0 18px 42px rgba(15, 23, 42, .16); }
.member-center-highlight.is-membership::before { position: absolute; z-index: 0; inset: 0; background: radial-gradient(circle at 84% 38%, rgba(211, 166, 83, .12) 0 3%, transparent 28%), linear-gradient(125deg, transparent 0 57%, rgba(255,255,255,.03) 57% 57.2%, transparent 57.2% 100%); content: ''; pointer-events: none; }
.member-center-highlight.is-membership::after { position: absolute; z-index: 0; right: -100px; bottom: -170px; width: 440px; height: 440px; border: 1px solid rgba(211, 166, 83, .17); border-radius: 50%; box-shadow: 0 0 0 28px rgba(211,166,83,.05), 0 0 0 56px rgba(211,166,83,.03); content: ''; pointer-events: none; }
.member-center-highlight.is-membership > :not(.member-card-seal), .member-center-highlight.is-membership .member-card-seal { z-index: 1; }
.member-center-highlight.is-membership .member-level-name { color: color-mix(in srgb, var(--membership-badge-color, #d3a653) 80%, white); }
.member-center-highlight.is-membership .member-level-name::after { background: linear-gradient(90deg, color-mix(in srgb, var(--membership-badge-color, #d3a653) 80%, white), transparent); }
.member-center-highlight.is-membership p { color: #c4ccd8; }
.member-center-highlight.is-membership a { border: 1px solid color-mix(in srgb, var(--membership-badge-color, #d3a653) 80%, white); background: color-mix(in srgb, var(--membership-badge-color, #d3a653) 80%, #111827); color: #fff; }
.member-center-highlight.is-membership a:hover, .member-center-highlight.is-membership a:focus-visible { border-color: color-mix(in srgb, var(--membership-badge-color, #d3a653) 90%, white); background: color-mix(in srgb, var(--membership-badge-color, #d3a653) 92%, white); color: #261d0e; }
.member-center-highlight.is-membership .member-card-seal { color: #9aa7ba; }
.member-center-highlight.is-membership .member-card-seal-ring { color: color-mix(in srgb, var(--membership-badge-color, #d3a653) 82%, white); }
.member-center-highlight.is-membership .member-card-seal-ring small, .member-center-highlight.is-membership .member-card-seal > span { color: #9aa7ba; }
.member-center-highlight a:active { transform: translateY(1px); }
.member-center-nav { display: flex; max-width: 560px; flex-wrap: wrap; justify-content: flex-end; gap: 4px 16px; }
.member-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.member-stat-grid article { min-height: 164px; display: flex; flex-direction: column; padding: 21px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.member-stat-grid span { color: var(--ink-soft); font-size: 11px; }
.member-stat-grid strong { margin: 16px 0 auto; font-size: 22px; letter-spacing: -.035em; }
.member-stat-grid small { color: var(--ink-soft); font-size: 11px; }
.member-account-panel { padding: 25px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.member-account-heading, .member-account-subheading { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.member-account-heading h2 { margin: 10px 0 0; font-size: 25px; letter-spacing: -.045em; }
.member-account-heading p { margin: 9px 0 0; color: var(--ink-soft); font-size: 12px; }
.member-account-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.member-account-button { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; gap: 8px; padding: 0 13px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font-size: 12px; font-weight: 800; }
.member-account-button.primary { border-color: var(--accent); background: var(--accent); color: #fff; }
.member-account-button:hover { border-color: var(--accent); color: var(--accent); }
.member-account-button.primary:hover { color: #fff; background: var(--accent-strong); }
.member-account-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
.member-account-shortcuts a { display: flex; min-height: 100px; flex-direction: column; justify-content: center; gap: 8px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.member-account-shortcuts a:hover { border-color: var(--accent); }
.member-account-shortcuts a:active { transform: translateY(1px); }
.member-account-shortcuts strong { color: var(--ink); font-size: 15px; }
.member-account-shortcuts span { color: var(--ink-soft); font-size: 11px; }
.member-wallet-closed-note { display: block; margin-top: auto; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.member-recent-ticket-list { display: grid; gap: 1px; margin-top: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--line); }
.member-recent-ticket-list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px 12px; padding: 13px 15px; background: var(--white); }
.member-recent-ticket-list strong { color: var(--ink); font-size: 12px; }
.member-recent-ticket-list small { color: var(--ink-soft); font-size: 10px; }
.member-recent-ticket-list em { grid-column: 2; grid-row: 1 / span 2; }
.member-page-title { margin-bottom: 24px; }
.member-page-title h1 { margin: 0; font-size: clamp(28px, 3vw, 40px); }
.member-interactions .member-center-content { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); }
.member-interactions .member-center-widget-stack + .member-center-widget-stack { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.member-access-status { margin-bottom: 24px; padding: 13px 16px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); color: var(--accent); font-size: 12px; }
.member-center .eyebrow { display: none; }
.member-center-head p { display: none; }
.member-support-center .request-hero-content > div > p { display: none; }
.member-security-page .member-form { max-width: 520px; }
.member-security-page .member-form .form-step, .member-security-page .member-form .form-note, .member-security-page .member-form > small { display: none; }
.member-password-dialog { width: min(92vw, 510px); max-height: min(88vh, 720px); margin: auto; padding: 0; overflow: visible; border: 0; background: transparent; }
.member-password-dialog::backdrop { background: rgb(15 23 42 / 26%); backdrop-filter: blur(9px); }
.member-password-dialog .member-password-form { position: relative; max-height: min(88vh, 720px); margin: 0; overflow-y: auto; }
.member-password-close { position: absolute; top: 14px; right: 14px; display: grid; width: 32px; height: 32px; place-items: center; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--ink-soft); cursor: pointer; font-size: 24px; line-height: 1; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.member-password-close:hover { background: var(--paper); color: var(--ink); }
.member-password-close > span { display: grid; width: 18px; height: 18px; place-items: center; transform-origin: 50% 50%; line-height: 18px; transition: transform .2s cubic-bezier(.38, 0, .24, 1); }
.member-password-close:hover > span { transform: rotate(90deg) scale(1.08); }
.member-password-close:focus-visible { outline: 3px solid rgb(49 94 251 / 35%); outline-offset: 2px; }
.member-password-form .form-step { padding-right: 42px; }
.member-password-form .member-login-feedback:not(:empty) { margin-top: 8px; }
.member-account-card { display: flex; min-height: 150px; flex-direction: column; padding: 18px; border: 1px solid var(--line); border-radius: 9px; background: #f8fafc; }
.member-account-card.wallet-card { border-color: #d6d3d1; background: #fff7e9; }
.member-account-label { color: var(--ink-soft); font-size: 11px; }
.member-account-card strong { margin: 13px 0 auto; color: var(--ink); font-size: 21px; letter-spacing: -.035em; }
.member-account-card small { color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.member-account-card a { margin-top: 12px; color: var(--accent); font-size: 11px; font-weight: 800; }
.member-account-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 24px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--line); }
.member-account-links a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; padding: 16px; background: #fff; }
.member-account-links a:hover { background: #f8fafc; }
.member-account-links span { color: var(--ink); font-size: 12px; font-weight: 800; }
.member-account-links small { color: var(--ink-soft); font-size: 10px; line-height: 1.5; }
.member-account-links b { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--accent); }
.member-recent-orders { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.member-account-subheading h3 { margin: 0; font-size: 17px; letter-spacing: -.03em; }
.member-account-subheading a { color: var(--accent); font-size: 11px; font-weight: 800; }
.member-recent-order-list { display: grid; gap: 1px; margin-top: 12px; overflow-x: auto; overflow-y: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--line); }
.member-recent-order { display: grid; grid-template-columns: 76px minmax(180px, 250px) 175px 90px 180px; min-width: 850px; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; background: #fff; }
.member-recent-order-head { min-height: 38px; padding-top: 0; padding-bottom: 0; background: #f8fafc; color: var(--ink-soft); font-size: 10px; font-weight: 800; }
.member-recent-order-head span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.member-recent-order-type { color: var(--accent); font-size: 10px; font-weight: 800; }
.member-recent-order strong { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.member-recent-order small { overflow: hidden; color: var(--ink-soft); font-size: 10px; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.member-recent-order-channel-icon { display: inline-flex; width: 15px; height: 15px; margin-right: 4px; align-items: center; justify-content: center; vertical-align: -3px; font-family: "Resource Payment Brands"; font-size: 14px; font-weight: 400; line-height: 1; }
.member-recent-order-channel-icon.resource-payment-icon { width: 15px; height: 15px; flex: 0 0 15px; font-size: 14px; }
.member-recent-order-channel-icon.is-wechat { color: #16a34a; }
.member-recent-order-channel-icon.is-alipay { color: #1494d2; }
.member-recent-order em { display: inline-flex; min-height: 25px; align-items: center; justify-self: start; padding: 4px 8px; border-radius: 999px; background: #e2e8f0; color: #475569; font-size: 10px; font-style: normal; font-weight: 800; white-space: nowrap; }
.member-recent-order em.order-status-1 { background: #dcfce7; color: #166534; }
.member-recent-order em.order-status-0 { background: #fef3c7; color: #92400e; }
.member-recent-order-actions { display: flex; min-width: 0; align-items: center; gap: 8px; }
.member-recent-order-actions form { margin: 0; }
.member-recent-order-pay, .member-recent-order-close { min-height: 28px; padding: 0 10px; border-radius: 999px; cursor: pointer; font: inherit; font-size: 10px; font-weight: 800; white-space: nowrap; }
.member-recent-order-pay { border: 1px solid var(--accent); background: var(--accent); color: #fff; }
.member-recent-order-pay:hover { border-color: var(--accent-strong); background: var(--accent-strong); }
.member-recent-order-close { border: 1px solid var(--line); background: var(--white); color: var(--ink-soft); }
.member-recent-order-close:hover { border-color: #cbd5e1; background: var(--paper); color: var(--ink); }
.member-recent-order-pay:focus-visible, .member-recent-order-close:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.member-recent-order-action-note { color: var(--ink-soft); font-size: 12px; }
.wallet-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); color: var(--ink); }
.wallet-summary strong { display: block; margin-top: 10px; font-size: 42px; letter-spacing: -.06em; }
.wallet-summary strong small { color: var(--ink-soft); font-size: 14px; letter-spacing: 0; }
.wallet-summary p { margin: 7px 0 0; color: var(--ink-soft); font-size: 12px; }
.wallet-mode-badge { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--accent); font-size: 11px; font-weight: 800; white-space: nowrap; }
.wallet-mode-badge.is-disabled { border-color: #f0d7aa; background: #fffaf0; color: #a16207; }
.wallet-packages { margin-top: 26px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.wallet-packages .section-heading { margin-bottom: 20px; }
.wallet-packages .section-heading p { margin: 0; color: var(--ink-soft); font-size: 11px; }
.wallet-package-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.wallet-package { display: flex; min-height: 265px; flex-direction: column; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.wallet-package > span { color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.wallet-package > strong { margin: 15px 0 9px; color: var(--accent); font-size: 33px; letter-spacing: -.06em; }
.wallet-package > strong small { margin-left: 5px; color: var(--ink-soft); font-size: 12px; letter-spacing: 0; }
.wallet-package > small { min-height: 34px; color: var(--ink-soft); font-size: 10px; line-height: 1.55; }
.wallet-package-form { margin-top: auto; }
.wallet-channel-options { display: flex; gap: 14px; margin: 14px 0 9px; color: var(--ink-soft); font-size: 11px; }
.wallet-channel-options label { cursor: pointer; }
.wallet-channel-options input { accent-color: var(--accent); }
.wallet-unavailable { margin-top: auto; color: var(--ink-soft); font-size: 11px; }
.wallet-notice { display: flex; gap: 14px; margin-top: 16px; padding: 16px 18px; border-left: 3px solid var(--accent); background: #eff6ff; color: var(--ink-soft); font-size: 11px; line-height: 1.6; }
.wallet-notice strong { color: var(--ink); white-space: nowrap; }
.wallet-closed-state { display: flex; align-items: center; gap: 18px; margin-top: 26px; padding: 30px; border: 1px solid #f0d7aa; border-radius: var(--radius-md); background: linear-gradient(135deg, #fffaf0, #fff); }
.wallet-closed-icon { display: inline-flex; width: 48px; height: 48px; flex: 0 0 48px; align-items: center; justify-content: center; border-radius: 14px; background: #fff0cf; color: #a16207; }
.wallet-closed-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.wallet-closed-state .eyebrow { display: block; margin-bottom: 6px; color: #a16207; font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.wallet-closed-state h2 { margin: 0; color: var(--ink); font-size: 22px; letter-spacing: -.035em; }
.wallet-closed-state p { max-width: 58ch; margin: 8px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }
.is-wallet-page-disabled { position: relative; isolation: isolate; min-height: 720px; overflow: hidden; }
.is-wallet-page-disabled > :not(.wallet-page-disabled-result) { filter: blur(9px); opacity: .58; pointer-events: none; user-select: none; }
.wallet-page-disabled-result { position: absolute; z-index: 4; inset: 0; overflow: hidden; }
.wallet-page-disabled-message { position: absolute; z-index: 3; inset: 0; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 34px; background: color-mix(in srgb, var(--white) 82%, var(--accent) 5%); opacity: 0; transform: scale(.96); transition: opacity .3s ease .08s, transform .42s var(--ease-close) .08s; backdrop-filter: blur(12px) saturate(125%); -webkit-backdrop-filter: blur(12px) saturate(125%); }
.wallet-page-disabled-message[hidden] { display: none; }
.wallet-page-disabled-message.is-static { opacity: 1; transform: none; }
.wallet-page-disabled-message strong { color: var(--ink); font-size: 20px; }
.wallet-page-disabled-message p { max-width: 36ch; margin: 7px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.7; }
.resource-wallet-choice { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.12); color: #cbd5e1; font-size: 11px; }
.resource-wallet-choice button { padding: 7px 10px; border: 1px solid rgba(255,255,255,.2); border-radius: 7px; background: transparent; color: #fff; cursor: pointer; font-size: 11px; font-weight: 800; }
.resource-wallet-choice button:hover { border-color: var(--accent); background: var(--accent); }
.wallet-pay-form { margin-top: 9px; }
.wallet-pay-form .member-account-button { width: 100%; cursor: pointer; background: #fff; }
.membership-wallet-note { margin: 16px 0 0; color: var(--ink-soft); font-size: 11px; }
.membership-wallet-note a { color: var(--accent); font-weight: 800; }
.membership-plan-card { position: relative; }
.membership-plan-price-note { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 8px; color: var(--ink-soft); font-size: 11px; }
.membership-plan-price-note del { color: #98a2b3; }
.membership-plan-price-note em { padding: 3px 7px; border-radius: 999px; background: #dcfce7; color: #15803d; font-style: normal; font-weight: 800; }
.membership-plan-badge { position: absolute; top: 12px; right: 12px; padding: 4px 8px; border-radius: 999px; background: #dc2626; color: #fff; font-size: 10px; font-weight: 800; }
/* Hallmark · component: membership tier tabs · genre: modern-minimal · theme: existing Resource Hub
 * states: default · hover · focus · active · selected · disabled
 * pre-emit critique: P5 H5 E5 S5 R5 V4 · contrast: pass (40–41) */
.member-plans-banner { position: relative; display: flex; align-items: center; gap: 16px; margin-bottom: 28px; padding: 20px 24px; overflow: hidden; border: 1px solid #d7a92c; border-left: 4px solid #f6c453; border-radius: var(--radius-lg); background: linear-gradient(115deg, #241b0b 0%, #5e4412 46%, #1d2738 100%); color: #fff8dc; box-shadow: 0 14px 28px rgb(75 54 12 / 20%); }
.member-plans-banner::after { position: absolute; top: -80%; left: -22%; width: 28%; height: 260%; background: linear-gradient(90deg, transparent, rgb(255 244 190 / 28%), transparent); content: ''; transform: rotate(18deg); animation: member-banner-shine 4.8s ease-in-out infinite; pointer-events: none; }
.member-plans-banner > span { z-index: 1; display: grid; width: 50px; height: 50px; flex: 0 0 50px; place-items: center; border: 1px solid rgb(255 226 126 / 72%); border-radius: 15px; background: linear-gradient(145deg, #fff2a8, #f5b82e 52%, #a96805); color: #fff8c5; box-shadow: 0 0 0 4px rgb(245 184 46 / 13%), 0 8px 18px rgb(0 0 0 / 22%); }
.member-banner-crown svg { width: 34px; height: 34px; fill: currentColor; filter: drop-shadow(0 0 5px rgb(255 239 134 / 88%)); }
.member-banner-crown path:last-child { fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; }
.member-plans-banner strong, .member-plans-banner p { position: relative; z-index: 1; }
.member-plans-banner strong { color: #fff8dc; font-size: 17px; letter-spacing: -.02em; }
.member-plans-banner p { margin: 5px 0 0; color: #ead9a1; font-size: 12px; }
.member-plans-banner.is-member { border-color: #d7a92c; border-left-color: #f6c453; background: linear-gradient(115deg, #241b0b 0%, #5e4412 46%, #1d2738 100%); }
.member-plans-banner.is-member > span { background: linear-gradient(145deg, #fff2a8, #f5b82e 52%, #a96805); color: #fff8c5; }
@keyframes member-banner-shine { 0%, 58% { transform: translateX(-30%) rotate(18deg); opacity: 0; } 72% { opacity: 1; } 100% { transform: translateX(470%) rotate(18deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .member-plans-banner::after { animation: none; } }
.member-plan-tabs { display: flex; gap: 12px; margin: 0 0 16px; padding: 8px; overflow-x: auto; overflow-y: hidden; background: transparent; scrollbar-width: none; -ms-overflow-style: none; }
.member-plan-tabs::-webkit-scrollbar { display: none; width: 0; height: 0; }
.member-plan-tab.membership-badge { min-width: max-content; max-width: none; min-height: 52px; flex: 0 0 auto; gap: 12px; padding: 0 24px; font: inherit; font-size: 15px; font-weight: 800; white-space: nowrap; cursor: pointer; transition: box-shadow .18s var(--ease-in-out), transform .12s var(--ease-in-out); }
.member-plan-tab small { padding-inline-start: 12px; border-inline-start: 1px solid currentColor; color: inherit; font-size: 11px; font-weight: 700; opacity: .76; }
.member-plan-tab[aria-selected="true"] { box-shadow: 0 0 0 3px var(--white), 0 0 0 6px color-mix(in srgb, var(--membership-badge-color) 68%, var(--accent)); }
.member-plan-tab[aria-selected="true"] small { opacity: 1; }
.member-plan-tab:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.member-plan-tab:active { transform: translateY(1px); }
.member-plan-tab:disabled { opacity: .55; cursor: not-allowed; }
@media (hover: hover) { .member-plan-tab:hover:not(:disabled) { box-shadow: 0 0 0 3px color-mix(in srgb, var(--membership-badge-color) 28%, transparent); } .member-plan-tab[aria-selected="true"]:hover:not(:disabled) { box-shadow: 0 0 0 3px var(--white), 0 0 0 6px color-mix(in srgb, var(--membership-badge-color) 76%, var(--accent)); } }
@media (prefers-reduced-motion: reduce) { .member-plan-tab.membership-badge { transition-duration: 0s; } .member-plan-tab:active { transform: none; } }
.member-plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.member-plan-card { position: relative; display: flex; min-width: 0; min-height: 370px; flex-direction: column; align-items: center; padding: 30px 20px 22px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow-sm); color: var(--ink); text-align: center; cursor: pointer; transition: transform .18s var(--detail-ease), box-shadow .18s var(--detail-ease), border-color .18s var(--detail-ease); }
.member-plan-card[hidden] { display: none; }
.member-plan-card:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.member-plan-card:active { transform: translateY(0); }
.member-plan-card:disabled { opacity: .55; cursor: not-allowed; }
@media (hover: hover) { .member-plan-card:hover:not(:disabled) { transform: translateY(-4px); border-color: var(--member-plan-accent); box-shadow: var(--shadow-md); } }
.member-plan-badge { position: absolute; top: 12px; right: 12px; max-width: calc(100% - 24px); padding: 4px 9px; border-radius: 6px; background: var(--member-plan-badge-bg); color: var(--member-plan-badge-ink); font-size: 11px; overflow-wrap: anywhere; }
.member-plan-crown { width: 48px; height: 48px; margin: 8px 0 16px; color: var(--member-plan-crown-accent); stroke: currentColor; }
.member-plan-crown-fill { fill: var(--member-plan-crown-fill); }
.member-plan-crown-base { fill: none; }
.member-plan-name { min-height: 28px; max-width: 100%; color: var(--ink); font-size: 17px; line-height: 1.5; overflow-wrap: anywhere; }
.member-plan-card > small { margin-top: 5px; color: var(--ink-soft); font-size: 12px; }
.member-plan-price { margin: 24px 0 4px; color: var(--member-plan-accent); font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; }
.member-plan-price del { margin-right: 8px; color: var(--ink-soft); font-size: 12px; font-weight: 400; }
.member-plan-saving { display: inline-flex; align-items: center; min-height: 25px; margin-top: 4px; margin-bottom: 14px; padding: 0 10px; border: 1px solid #bbf7d0; border-radius: 999px; background: #f0fdf4; color: #15803d; font-size: 11px; font-weight: 800; }
.member-plan-card > .member-plan-comparison { margin: -6px 0 14px; font-size: 11px; line-height: 1.5; }
.member-plan-benefits { display: grid; width: 100%; gap: 10px; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 12px; text-align: left; }
.member-plan-card.is-selected { border-color: var(--accent); background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 10%, white), #fff 70%); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 13%, transparent), var(--shadow-md); }
.member-plan-card.is-selected .member-plan-benefits { border-top-color: color-mix(in srgb, var(--accent) 22%, var(--line)); }
.member-plan-benefits > span::before { margin-right: 8px; color: var(--member-wallet-accent); content: '✓'; }
.member-plan-unavailable { color: var(--ink-soft); font-size: 12px; }
/* Hallmark · component: membership checkout · genre: modern-minimal · theme: existing resource hub
 * pre-emit critique: P4 H4 E4 S5 R4 V3 · scope: preserve navigation, layout and card/badge system */
.member-membership-checkout-modal .resource-checkout-submit { width: auto; min-width: 128px; margin: 0; padding: 0 24px; background: var(--accent); color: var(--member-checkout-accent-ink, var(--white)); white-space: nowrap; }
.member-membership-checkout-modal .resource-checkout-submit:hover:not(:disabled):not(.is-success) { background: color-mix(in srgb, var(--accent) 88%, var(--ink)); }
.member-checkout-selection { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 20px; padding: 12px 16px; border-radius: 10px; background: var(--member-checkout-success-bg); color: var(--member-checkout-success-ink); font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.member-checkout-help { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.member-checkout-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 8px; }
.member-checkout-reselect { min-height: 46px; padding: 0 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); color: var(--ink); font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer; }
@media (hover: hover) { .member-checkout-reselect:hover:not(:disabled) { background: var(--paper); } }
.member-checkout-reselect:focus-visible, .member-checkout-actions .resource-checkout-submit:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.member-checkout-reselect:active, .member-checkout-actions .resource-checkout-submit:active { transform: translateY(1px); }
.member-checkout-reselect:disabled { opacity: .55; cursor: wait; }
.member-checkout-actions .resource-checkout-submit:disabled { cursor: not-allowed; }
.member-checkout-actions .resource-checkout-submit.is-loading { cursor: wait; }
.member-checkout-actions .resource-checkout-submit.is-error { outline: 1px solid var(--member-checkout-error); }
.member-checkout-actions .resource-checkout-submit.is-success { background: var(--member-checkout-success-ink); color: var(--white); }
@media (max-width: 560px) { .member-checkout-actions > button { flex: 1; min-width: 0; padding-inline: 12px; } }
.member-membership-checkout-modal .resource-checkout-error { display: none; }
.member-checkout-notice, .member-payment-surface { position: fixed; z-index: 1300; inset: 0; display: grid; place-items: center; padding: 20px; background: rgb(15 23 42 / 58%); }
.member-checkout-notice[hidden], .member-payment-surface[hidden] { display: none; }
.member-checkout-notice-dialog { display: grid; width: min(390px, 100%); justify-items: center; gap: 11px; padding: 28px 26px 24px; border: 1px solid #f1d58a; border-radius: 18px; background: linear-gradient(145deg, #fffdf5, #fff7dd); box-shadow: 0 24px 70px rgb(57 39 5 / 26%); text-align: center; }
.member-checkout-notice-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: linear-gradient(145deg, #f8d778, #b77900); box-shadow: 0 0 0 5px rgb(245 190 52 / 18%), 0 8px 18px rgb(117 78 8 / 22%); color: #fff8d6; font-size: 25px; font-weight: 900; }
.member-checkout-notice-dialog h2 { margin: 2px 0 0; color: #5a3b05; font-size: 20px; }
.member-checkout-notice-dialog p { margin: 0; color: #765d2a; font-size: 13px; line-height: 1.7; }
.member-checkout-notice-confirm { min-width: 128px; min-height: 40px; margin-top: 5px; border: 0; border-radius: 999px; background: linear-gradient(135deg, #d69a16, #a96805); color: #fffdf0; cursor: pointer; font: inherit; font-size: 13px; font-weight: 800; box-shadow: 0 8px 18px rgb(169 104 5 / 22%); }
.member-checkout-notice.is-success .member-checkout-notice-icon { background: linear-gradient(145deg, #4ade80, #15803d); box-shadow: 0 0 0 5px rgb(34 197 94 / 16%); }
.member-checkout-notice.is-success .member-checkout-notice-dialog { border-color: #a7e4bd; background: linear-gradient(145deg, #f8fff9, #ecfdf3); }
.member-checkout-notice.is-success .member-checkout-notice-dialog h2 { color: #166534; }
.member-checkout-notice.is-success .member-checkout-notice-dialog p { color: #397052; }
.member-payment-dialog { display: grid; width: min(920px, 100%); height: min(760px, calc(100vh - 40px)); grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; border: 1px solid #d7a92c; border-radius: 16px; background: var(--white); box-shadow: 0 24px 70px rgb(15 23 42 / 30%); }
.member-payment-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:6px 14px; }
.member-payment-actions button { min-height:44px; padding:0 8px; border:0; background:transparent; color:var(--accent); cursor:pointer; font:inherit; font-weight:800; }
.member-payment-actions button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.member-payment-head, .member-payment-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; }.member-payment-head { border-bottom: 1px solid #ead9a1; background: linear-gradient(105deg, #fff8dc, #fff); }.member-payment-head strong { color: #5a3b05; font-size: 16px; }.member-payment-head .resource-checkout-close { margin: 0; }.member-payment-dialog iframe { width: 100%; height: 100%; min-height: 0; border: 0; background: #f8fafc; }.member-payment-foot { border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 11px; }.member-payment-foot a { color: var(--accent); font-weight: 800; text-decoration: none; }.member-payment-foot a:hover { text-decoration: underline; }
.nav-button, .primary-button, .member-submit, .request-submit, .feedback-submit, .feedback-login, .resource-ticket-action, .resource-checkout-submit, .text-link, .member-muted-link { white-space: nowrap; }
.primary-button span, .nav-button span, .member-submit span, .request-submit span, .feedback-submit span, .feedback-login span, .resource-ticket-action span, .resource-checkout-submit span { display: none; }
.member-account-button span { display: none; }
.anime-notice-action b, .request-login-cover span, .feedback-login span, .tool-cta span, .studio-tool-cta-link span { display: none; }
.member-ticket-layout { display: grid; grid-template-columns: minmax(280px, .62fr) minmax(0, 1.38fr); gap: 24px; align-items: start; }
.member-ticket-form, .member-ticket-history { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.member-ticket-form { border-top: 4px solid var(--accent); }
.member-ticket-form h2, .member-ticket-history h2 { margin: 10px 0 7px; color: var(--ink); font-size: 25px; letter-spacing: -.045em; }
.member-ticket-form > p { margin: 0 0 20px; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.member-ticket-form label { display: block; margin-top: 15px; color: var(--ink); font-size: 11px; font-weight: 800; }
.member-ticket-form input, .member-ticket-form select, .member-ticket-form textarea { display: block; width: 100%; margin-top: 7px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; outline: 0; background: #f8fafc; color: var(--ink); font: inherit; font-size: 12px; }
.member-ticket-form select { min-height: 42px; }
.member-ticket-form textarea { min-height: 132px; resize: vertical; }
.member-ticket-form input:focus, .member-ticket-form select:focus, .member-ticket-form textarea:focus { border-color: var(--accent); background: #fff; }
.member-ticket-history-head, .member-ticket-item-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.member-ticket-history-head { margin-bottom: 18px; }
.member-ticket-history-head small { color: var(--ink-soft); font-size: 10px; white-space: nowrap; }
.member-ticket-list { display: grid; gap: 10px; }
.member-ticket-item { padding: 17px; border: 1px solid var(--line); border-radius: 9px; background: #fdfefd; }
.member-ticket-category { display: inline-flex; padding: 4px 7px; border-radius: 999px; background: #eff6ff; color: var(--accent); font-size: 10px; font-weight: 800; }
.member-ticket-item h3 { margin: 8px 0 0; color: var(--ink); font-size: 15px; letter-spacing: -.02em; }
.member-ticket-item time { display: block; margin-top: 7px; color: var(--ink-soft); font-size: 10px; text-align: right; white-space: nowrap; }
.member-ticket-item > p { margin: 14px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.member-ticket-reply { display: grid; gap: 5px; margin-top: 14px; padding: 12px; border-left: 3px solid var(--accent); background: #eff6ff; color: #39516f; font-size: 11px; line-height: 1.65; white-space: pre-wrap; }
.member-ticket-reply strong { color: var(--ink); }
.member-ticket-empty { padding: 46px 18px; border: 1px dashed var(--line); border-radius: 9px; color: var(--ink-soft); font-size: 12px; text-align: center; }
.referral-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: 12px; align-items: center; margin-top: 16px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); color: var(--ink); }
.member-referral-metrics { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(110px, .7fr); gap: 18px; }
.member-referral-metrics > div { display: grid; gap: 2px; min-width: 0; }
.member-referral-metrics span { color: var(--ink-soft); font-size: 10px; font-weight: 800; }
.member-referral-metrics strong { overflow: hidden; font-size: 19px; letter-spacing: -.03em; text-overflow: ellipsis; white-space: nowrap; }
.referral-card p { display: none; }
.referral-copy { display: flex; align-self: center; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: var(--white); }
.referral-copy input { min-width: 0; flex: 1; padding: 10px; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 12px; }
.referral-copy button { padding: 0 16px; border: 0; border-radius: 7px; background: var(--accent); color: #fff; cursor: pointer; font-weight: 800; white-space: nowrap; }
/* request page keeps its page-level layout, but inherits the new tokens */
.request-private-note { border-radius: var(--radius-md); }
.request-form-card, .request-history, .request-login-dialog { border-radius: var(--radius-md); }
.request-form-card input, .request-form-card select, .request-form-card textarea, .request-login-dialog input { border-radius: 8px; }
.request-hero > .request-hero-grid { display: contents; }
@media (min-width: 1100px) {
    body.theme-layout-wide .hero, body.theme-layout-full .hero { min-height: 0; grid-template-columns: minmax(0, 1fr) minmax(320px, .78fr); gap: 52px; padding-top: 44px; }
    body.theme-layout-wide .hero-art, body.theme-layout-full .hero-art { min-height: 235px; }
    body.theme-layout-wide .game-grid, body.theme-layout-full .game-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    body.theme-layout-wide .content-section .game-cover, body.theme-layout-full .content-section .game-cover { height: 145px; }
    body.theme-layout-wide .content-section .game-card-body, body.theme-layout-full .content-section .game-card-body { padding: 12px; }
    body.theme-layout-wide .content-section .game-card h3, body.theme-layout-full .content-section .game-card h3 { min-height: 38px; margin: 8px 0 6px; font-size: 14px; line-height: 1.35; }
    body.theme-layout-wide .content-section .game-card p, body.theme-layout-full .content-section .game-card p { display: none; }
}
@media (max-width: 900px) {
    :root, body.theme-layout-narrow, body.theme-layout-standard, body.theme-layout-full, body.theme-layout-large { --shell: min(700px, calc(100% - 32px)); }
    .nav-row { gap: 20px; }
    .brand { min-width: auto; }
    .main-nav { gap: 15px; }
    .hero { grid-template-columns: 1fr; gap: 34px; padding-top: 48px; }
    .hero-art { min-height: 290px; box-shadow: 12px 13px 0 rgba(37, 99, 235, .12); }
    .game-grid, .listing-results .game-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .feature-band { grid-template-columns: 1fr; gap: 34px; padding: 32px; }
    .feature-list { padding-left: 0; border-left: 0; }
    .listing-body { grid-template-columns: 1fr; gap: 24px; }
    .filter-panel { flex-direction: row; flex-wrap: wrap; gap: 4px 15px; }
    .filter-panel .eyebrow { width: 100%; }
    .article-heading { grid-template-columns: 1fr; gap: 30px; }
    .article-cover { min-height: 240px; }
    .article-layout { grid-template-columns: 1fr; gap: 35px; }
    .member-page { grid-template-columns: 1fr; gap: 42px; padding: 55px 0 70px; }
    .member-center-layout { grid-template-columns: 1fr; gap: 26px; }
    .member-center-layout > .member-center-sidebar { width: 100%; min-width: 0; }
    .member-center-sidebar { position: static; }
    .member-sidebar-nav { min-height: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; }
    .member-sidebar-group-label { grid-column: 1 / -1; }
    .member-sidebar-footer { display: none; }
    .member-form { max-width: 520px; }
    .member-stat-grid { grid-template-columns: 1fr; }
    .member-account-grid, .member-account-links { grid-template-columns: 1fr; }
    .member-center-highlights { grid-template-columns: 1fr; }
    .member-ticket-layout { grid-template-columns: 1fr; }
    .wallet-package-grid { grid-template-columns: 1fr; }
    .member-plan-grid { grid-template-columns: 1fr; }
    .referral-card { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .member-order-list-head { display: none; }
}
@media (max-width: 560px) {
    :root, body.theme-layout-narrow, body.theme-layout-standard, body.theme-layout-full, body.theme-layout-large { --shell: calc(100% - 28px); }
    .nav-row { min-height: 62px; }
    .main-nav { display: none; }
    .nav-actions { margin-left: auto; }
    .nav-actions .member-link { display: none; }
    .hero { padding: 38px 0 50px; }
    .hero h1 { font-size: 42px; }
    .hero-meta { gap: 8px 15px; }
    .search-bar { min-height: 52px; padding-left: 12px; }
    .search-bar button { padding: 0 11px; font-size: 0; }
    .search-bar button span { margin: 0; font-size: 21px; }
    .section-heading, .section-heading.compact { align-items: start; flex-direction: column; gap: 9px; }
    .section-heading h2 { font-size: 25px; }
    .category-grid { gap: 8px; }
    .category-tile { min-height: 120px; padding: 14px; }
    .category-tile strong { font-size: 16px; }
    .game-grid, .listing-results .game-grid { grid-template-columns: 1fr; }
    .game-cover { height: 210px; }
    .feature-band { margin-bottom: 55px; padding: 25px 20px; }
    .feature-copy h2 { font-size: 31px; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-grid > div:first-child { grid-column: 1 / -1; }
    .footer-bottom { display: block; line-height: 1.8; }
    .footer-bottom span { display: block; }
    .article-heading { margin-top: 35px; }
    .article-heading h1 { font-size: 41px; }
    .member-page { padding-top: 42px; }
    .member-intro h1, .member-center h1 { font-size: 42px; }
    .member-form { padding: 25px 20px; }
    .verification-row { display: block; }
    .send-code-button { width: 100%; height: 42px; margin-top: 8px; }
    .member-center-head { align-items: flex-start; flex-direction: column; }
    .member-center-highlight.is-membership { min-height: 226px; padding: 22px 20px; }
    .member-center-highlight.is-membership .member-level-title, .member-center-highlight.is-membership > p, .member-center-highlight.is-membership > a { max-width: calc(100% - 112px); }
    .member-card-seal { top: 76px; right: 20px; min-width: 92px; gap: 8px; }
    .member-card-seal-ring { width: 88px; height: 88px; }
    .member-card-seal-ring::before { inset: 7px; }
    .member-card-seal-ring::after { inset: -7px; }
    .member-card-seal-ring strong { font-size: 12px; }
    .member-card-seal-ring small { margin-top: -15px; font-size: 6px; }
    .member-card-seal > span { font-size: 7px; letter-spacing: .06em; }
    .member-sidebar-profile { padding: 18px 16px; }
    .member-center:not(.member-interactions) .member-center-content, .member-interactions .member-center-content { padding: 18px; }
    .member-sidebar-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .member-center-nav { justify-content: flex-start; }
    .member-stat-grid article { min-height: 140px; }
    .member-account-panel { padding: 22px 18px; }
    .member-ticket-form, .member-ticket-history { padding: 22px 18px; }
    .member-ticket-history-head, .member-ticket-item-head { align-items: flex-start; flex-direction: column; }
    .member-ticket-item time { text-align: left; }
    .wallet-summary { align-items: flex-start; flex-direction: column; padding: 24px 20px; }
    .wallet-packages { padding: 22px 18px; }
    .wallet-packages .section-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
    .wallet-closed-state { align-items: flex-start; flex-direction: column; gap: 14px; padding: 24px 20px; }
    .is-wallet-page-disabled { min-height: 640px; }
    .wallet-page-disabled-message { align-items: flex-start; flex-direction: column; justify-content: center; padding: 24px 20px; }
    .wallet-notice { display: block; }
    .wallet-notice strong { display: block; margin-bottom: 5px; }
    .member-account-heading { align-items: flex-start; flex-direction: column; }
    .member-account-actions { width: 100%; }
    .member-account-button { flex: 1; }
    .member-wallet-disabled-result { align-items: flex-start; padding: 20px; }
    .member-recent-order-list { overflow-x: hidden; }
    .member-recent-order { grid-template-columns: minmax(0, 1fr) auto; min-width: 0; gap: 5px 12px; }
    .member-recent-order-head { display: none; }
    .member-recent-order strong { grid-column: 1; grid-row: 2; }
    .member-recent-order small { grid-column: 1; grid-row: 3; }
    .member-recent-order em { grid-column: 2; grid-row: 1 / span 3; }
    .member-recent-order-actions { grid-column: 1 / -1; grid-row: 4; }
    .member-recent-order-actions form, .member-recent-order-pay, .member-recent-order-close { width: 100%; }
    .member-recent-order-actions form { flex: 1 1 0; }
    .member-recent-order-action-note { display: none; }
    .referral-card { padding: 24px 20px; }
    .referral-copy { display: block; }
    .member-referral-metrics { grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
    .referral-copy input { width: 100%; min-height: 42px; }
    .referral-copy button { width: 100%; height: 42px; }
    .feedback-panel { padding: 20px; }
    .feedback-history { padding: 22px 18px; }
    .feedback-history-head { align-items: flex-start; flex-direction: column; }
    .feedback-history-head h2 { font-size: 26px; }
    .site-notice-panel { padding: 30px 22px 24px; }
}

/* Orders: dense list view keeps every record scannable without tall cards. */
.member-order-list { display: grid; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.member-order-list-head, .member-order-row { display: grid; grid-template-columns: minmax(360px, 1fr) 190px 170px 100px minmax(210px, 240px); align-items: center; column-gap: 16px; }
.member-order-list-head { min-height: 38px; padding: 0 16px; border-bottom: 1px solid var(--line); background: #f8fafc; color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.member-order-row { min-height: 76px; padding: 10px 16px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.member-order-row:last-of-type { border-bottom: 0; }
.member-order-row:hover { transform: none; border-color: var(--line); background: #fbfdff; box-shadow: none; }
.member-order-row .member-order-product { grid-column: auto; min-width: 0; align-items: center; }
.member-order-row .member-order-product > div { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0 8px; }
.member-order-row .member-order-type { grid-column: 1 / -1; }
.member-order-row .member-order-product h2 { grid-column: 1; }
.member-order-row .member-order-product code { grid-column: 2; }
.member-order-row .member-order-note { display: block; grid-column: 1 / -1; margin-top: 3px; overflow: hidden; color: var(--ink-soft); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.member-order-row .member-order-meta { display: block; min-width: 0; }
.member-order-row .member-order-amount strong { display: inline-flex; align-items: center; gap: 7px; }
.member-order-row .member-order-time { min-width: 0; }
.member-order-row .member-order-meta strong { font-size: 16px; }
.member-order-row .member-order-state { min-width: 0; }
.member-order-row .member-order-status { grid-column: auto; justify-self: start; }
.member-order-row .member-order-card-foot { grid-column: auto; min-height: 0; justify-content: flex-start; }
.member-order-row .member-order-pay, .member-order-row .member-order-close { min-height: 32px; padding: 0 11px; font-size: 11px; }
.member-order-row .member-order-complete, .member-order-row .member-order-unavailable { white-space: nowrap; }

@media (max-width: 900px) {
    .member-order-list-head { display: none; }
    .member-order-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 14px; padding: 14px 16px; }
    .member-order-row .member-order-product { grid-column: 1; }
    .member-order-row .member-order-state { grid-column: 2; grid-row: 1; }
    .member-order-row .member-order-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-column: 1 / -1; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); }
    .member-order-row .member-order-amount { grid-column: 1 / -1; }
    .member-order-row .member-order-action { grid-column: 2; grid-row: 3; }
}
@media (max-width: 560px) {
    .member-order-row { gap: 12px; padding: 14px; }
    .member-order-row .member-order-product > div { display: block; }
    .member-order-row .member-order-product h2 { white-space: normal; }
    .member-order-row .member-order-product code { display: block; margin-top: 3px; }
    .member-order-row .member-order-meta { grid-template-columns: 1fr 1fr; }
    .member-order-row .member-order-time { grid-column: 1 / -1; }
    .member-order-row .member-order-action { grid-column: 1 / -1; grid-row: auto; }
    .member-order-row .member-order-action form, .member-order-row .member-order-pay, .member-order-row .member-order-close { width: 100%; }
    .member-order-row .member-order-pay { justify-content: center; }
}

@media (min-width: 901px) {
    .member-order-list-head, .member-order-row { grid-template-columns: minmax(360px, 1fr) 190px 170px 100px minmax(210px, 240px); }
    .member-order-list-head > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .member-order-list-head > span:nth-child(2), .member-order-row > .member-order-amount { text-align: left; }
    .member-order-list-head > span:nth-child(3), .member-order-row > .member-order-time { text-align: center; }
    .member-order-list-head > span:nth-child(4), .member-order-row > .member-order-state { text-align: center; }
    .member-order-list-head > span:nth-child(5), .member-order-row > .member-order-action { text-align: right; }
    .member-order-row > .member-order-state .member-order-status { justify-self: center; }
    .member-order-row > .member-order-action { justify-content: flex-end; }
}

/* Paid resources use a compact ticket: the dark cap establishes the price, the warm body explains who pays what. */
.resource-access-ticket { overflow: hidden; padding: 0; border: 1px solid #ded7cf; border-radius: 17px; background: #fff; box-shadow: 0 16px 34px rgba(43,35,47,.11); }
.resource-ticket-head { position: relative; padding: 20px 24px 23px; background: linear-gradient(135deg, #33313d, #46414d); color: #fff; text-align: center; }
.resource-ticket-head strong { display: inline-flex; align-items: baseline; gap: 5px; font-size: 31px; letter-spacing: -.045em; }
.resource-ticket-head strong > span { color: #fff5c2; font-size: 18px; }
.resource-ticket-head strong small { font-size: 16px; font-weight: 700; letter-spacing: 0; }
.resource-ticket-note { padding: 20px 22px 11px; color: #6b6673; font-size: 12px; line-height: 1.65; text-align: center; }
.resource-access-ticket .resource-access-status { margin: 0; padding: 17px 23px 4px; color: #6b6673; font-size: 12px; text-align: center; }
.resource-access-ticket .resource-ticket-action { display: flex; width: calc(100% - 40px); min-height: 48px; align-items: center; justify-content: center; gap: 8px; margin: 14px 20px 20px; border: 0; border-radius: 999px; background: linear-gradient(135deg, #f04b4b, #df383e); box-shadow: 0 10px 20px rgba(220,56,62,.23); color: #fff; font: inherit; font-size: 13px; font-weight: 800; text-decoration: none; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.resource-access-ticket .resource-ticket-action:hover { transform: translateY(-1px); box-shadow: 0 13px 24px rgba(220,56,62,.31); }
.resource-access-ticket .share-links-list { padding: 0 20px 20px; }
.resource-access-ticket .share-link-row { padding-top: 12px; border-top: 1px solid #eee8e2; }
.resource-access-ticket .unlock-richtext { margin: 14px 20px 0; padding: 14px 0 0; border-top: 1px solid #eee8e2; }
/* Hallmark · component: checkout modal · genre: modern-minimal · theme: existing Cobalt
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: brand icons retain their labels; controls use the existing high-contrast ink and focus token
 */
@font-face { font-family: "Resource Payment Brands"; src: url("../../../admin_default/public/assets/fontawesome/webfonts/fa-brands-400.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: block; }
.resource-checkout-modal { position: fixed; z-index: 90; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 20px; background: rgba(16,13,23,.62); opacity: 0; pointer-events: none; transition: opacity .18s var(--detail-ease); }
.resource-checkout-modal.is-open { opacity: 1; pointer-events: auto; }
.resource-checkout-dialog { width: min(100%, 560px); max-height: calc(100dvh - 104px); overflow-y: auto; padding: 28px; border-radius: 18px; background: var(--white); box-shadow: 0 24px 70px rgba(0,0,0,.24); }
.resource-checkout-dialog h2 { margin: 7px 0 4px; color: var(--ink); font-size: 24px; letter-spacing: -.045em; }
.resource-checkout-close { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ink); font-size: 30px; line-height: 1; cursor: pointer; }
.resource-checkout-close-icon { display: block; width: 48px; height: 48px; overflow: visible; border-radius: 50%; fill: var(--white); stroke: var(--ink); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; filter: drop-shadow(0 2px 4px rgba(0,0,0,.2)); transform-box: fill-box; transform-origin: center; transition: transform .3s var(--ease-close); will-change: transform; }
.resource-checkout-close:focus-visible, .resource-checkout-close.is-focus { outline: 3px solid var(--detail-accent); outline-offset: 3px; }
.resource-checkout-close:active .resource-checkout-close-icon, .resource-checkout-close.is-active .resource-checkout-close-icon { transform: scale(.96); }
.resource-checkout-close:disabled { opacity: .5; cursor: not-allowed; }
.resource-checkout-close.is-hover { background: var(--detail-panel-soft); }
.resource-checkout-close.is-hover .resource-checkout-close-icon { transform: rotate(90deg) scale(1.1); }
@media (hover: hover) { .resource-checkout-close:hover { background: var(--detail-panel-soft); } }
@media (hover: hover) { .resource-checkout-close:hover .resource-checkout-close-icon { transform: rotate(90deg) scale(1.1); } }
@media (hover: hover) { .resource-checkout-close:hover:active .resource-checkout-close-icon { transform: rotate(90deg) scale(.96); } }
.resource-checkout-product { margin: 0; color: var(--detail-body); font-size: 13px; line-height: 1.55; }
.resource-checkout-total { display: grid; grid-template-columns: 1fr auto; gap: 2px 15px; align-items: end; margin: 19px 0 7px; padding: 17px; border-radius: 12px; background: #fff7e9; }
.resource-checkout-total > span { color: #8f6c39; font-size: 12px; font-weight: 700; }
.resource-checkout-total strong { color: #35323c; font-size: 28px; letter-spacing: -.04em; }
.resource-checkout-total strong small { margin-left: 3px; font-size: 13px; letter-spacing: 0; }
.resource-checkout-total b { color: #e44842; font-size: 14px; }
.resource-checkout-rate, .resource-checkout-hint { margin: 0; color: #8a8491; font-size: 11px; line-height: 1.65; }
.resource-checkout-channels { display: grid; gap: 10px; margin: 18px 0; padding: 0; border: 0; }
.resource-checkout-channels legend { margin-bottom: 4px; color: #554f5c; font-size: 12px; font-weight: 800; }
.resource-checkout-channels input[type="hidden"] { display: none; }
.resource-payment-channel { display: flex; width: 100%; min-height: 70px; align-items: center; gap: 15px; padding: 12px 18px; border: 2px solid #e5e1e8; border-radius: 14px; background: var(--white); color: var(--ink); text-align: left; cursor: pointer; transition: border-color .18s var(--detail-ease), transform .18s var(--detail-ease); }
.resource-payment-channel:focus-visible, .resource-payment-channel.is-focus { outline: 3px solid var(--detail-accent); outline-offset: 2px; }
.resource-payment-channel:active, .resource-payment-channel.is-active { transform: translateY(1px); }
.resource-payment-channel:disabled, .resource-payment-channel.is-loading { opacity: .55; cursor: wait; }
.resource-payment-channel.is-error { border-color: #b42318; }
.resource-payment-channel.is-success { border-color: #12805c; }
.resource-payment-channel.is-selected { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, white); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent); }
.resource-payment-channel.is-hover { border-color: var(--detail-accent); }
@media (hover: hover) { .resource-payment-channel:hover:not(:disabled) { border-color: var(--detail-accent); } }
.resource-payment-icon { width: 42px; flex: 0 0 42px; font-family: "Resource Payment Brands"; font-size: 38px; font-weight: 400; line-height: 1; text-align: center; }
.resource-payment-wechat { color: #16a34a; }
.resource-payment-alipay { color: #1494d2; }
.resource-payment-channel > span:not(.resource-payment-icon) { display: grid; gap: 3px; color: var(--ink); }
.resource-payment-channel b { font-size: 15px; }
.resource-payment-channel small { color: #8a8491; font-size: 11px; }
.resource-checkout-submit { width: 100%; min-height: 46px; border: 0; border-radius: 10px; background: var(--detail-accent); color: #fff; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.resource-checkout-submit:disabled { opacity: .6; cursor: wait; }
.resource-checkout-error { min-height: 18px; margin-top: -10px; color: #d73838; font-size: 12px; }
.resource-checkout-error.is-success { margin-top: 15px; color: #12805c; font-weight: 700; line-height: 1.65; }
.resource-checkout-hint { margin-top: 14px; }
.resource-checkout-modal.member-membership-checkout-modal { position: relative; z-index: auto; inset: auto; display: none; align-items: stretch; justify-content: initial; gap: 0; margin-top: 24px; padding: 0; background: transparent; opacity: 1; pointer-events: auto; }
.resource-checkout-modal.member-membership-checkout-modal.is-open { display: block; }
.member-membership-checkout-modal .resource-checkout-dialog { position: relative; width: 100%; max-height: none; overflow: visible; padding: 24px; border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--line)); border-radius: var(--radius-lg); background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--accent) 5%, white)); box-shadow: var(--shadow-md); }
.member-checkout-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.member-checkout-panel-head .eyebrow { display: block; margin-bottom: 5px; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.member-checkout-panel-head h2 { min-width: 0; margin: 0 0 4px; overflow-wrap: anywhere; line-height: 1.4; }
.member-membership-checkout-modal .resource-checkout-close { width: 44px; height: 44px; flex-basis: 44px; margin: -4px -4px 0 0; }
.member-membership-checkout-modal .resource-checkout-close-icon { width: 36px; height: 36px; }
@media (max-width: 560px) { .resource-ticket-perks { padding-right: 10px; padding-left: 10px; } .resource-checkout-dialog { padding: 24px 20px; } }
@media (prefers-reduced-motion: reduce) { .resource-checkout-modal, .resource-checkout-close-icon, .resource-payment-channel { transition-duration: .01ms; } }

@media (min-width: 30rem) {
    .resource-checkout-channels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .resource-checkout-channels legend { grid-column: 1 / -1; }
}

/* Detail page: one professional document card, powered by category-defined data. */
.resource-detail-page { --detail-accent: var(--detail-template-accent, var(--accent)); --detail-accent-hover: color-mix(in srgb, var(--detail-accent) 78%, #000); --detail-panel: var(--detail-template-surface, var(--white)); --detail-radius: var(--detail-template-radius, var(--radius-lg)); padding: 42px 0 84px; }
.resource-detail-layout { grid-template-columns: minmax(0, 1fr) 326px; gap: 32px; }
.resource-detail-template-stack { display: flex; flex-direction: column; }
.resource-detail-template-module-hero { order: var(--detail-order-hero, 10); }
.resource-detail-template-module-facts { order: var(--detail-order-facts, 20); }
.resource-detail-template-module-content { order: var(--detail-order-content, 30); }
.resource-detail-page.detail-template-hide-hero .resource-detail-template-module-hero,
.resource-detail-page.detail-template-hide-facts .resource-detail-template-module-facts,
.resource-detail-page.detail-template-hide-content .resource-detail-template-module-content { display: none !important; }
.resource-detail-side { display: flex; flex-direction: column; }
.resource-detail-side > * { width: 100%; }
.resource-detail-side .resource-access-panel,
.resource-detail-side .resource-related-module,
.resource-detail-side .resource-feedback-quick,
.resource-detail-side .resource-tag-module { order: initial; }
.resource-detail-page.detail-template-hide-access .resource-detail-side .resource-access-panel,
.resource-detail-page.detail-template-hide-related .resource-detail-side .resource-related-module,
.resource-detail-page.detail-template-hide-feedback .resource-detail-side .resource-feedback-quick,
.resource-detail-page.detail-template-hide-feedback .resource-detail-side .resource-tag-module { display: none !important; }
.resource-detail-page.detail-template-layout-cover_top .resource-detail-layout { grid-template-columns: minmax(0, 1fr); }
.resource-detail-page.detail-template-layout-cover_top .resource-detail-side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.resource-detail-page.detail-template-layout-minimal .resource-content-card { border-color: transparent; box-shadow: none; }
.resource-detail-page.detail-template-layout-minimal .resource-detail-layout { gap: 20px; }
.resource-detail-page.detail-template-width-reading .resource-detail-main { max-width: 860px; }
.resource-detail-page.detail-template-width-standard .resource-detail-main { max-width: 980px; }
.resource-content-card { overflow: hidden; border: 1px solid var(--detail-rule); border-radius: var(--detail-radius); background: var(--detail-panel); box-shadow: var(--detail-shadow); }
.resource-content-card .resource-detail-header { margin: 0; padding: 34px 36px 22px; border-bottom: 0; }
.resource-content-card .resource-detail-header h1 { max-width: none; min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: clamp(28px, 3.1vw, 43px); line-height: 1.18; letter-spacing: -.05em; }
.resource-detail-meta { margin-top: 15px; }
.resource-content-card .resource-game-tags { margin-top: 20px; }
.resource-game-tags .resource-category-tag { display: none; }
.resource-overview-card { max-width: none; margin: 0; padding: 18px 24px 20px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.resource-overview-card h2 { margin: 0 0 17px; color: var(--ink); font-size: 17px; letter-spacing: -.025em; }
.resource-overview-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--detail-rule); border-bottom: 1px solid var(--detail-rule); }
.resource-overview-facts > div { min-width: 0; padding: 17px 18px 17px 0; }
.resource-overview-facts > div + div { padding-left: 18px; border-left: 1px solid var(--detail-rule); }
.resource-overview-facts dt { margin-bottom: 7px; color: var(--detail-muted); font-size: 11px; font-weight: 700; }
.resource-overview-facts dd { font-size: 14px; }
.resource-overview-facts.detail-count-1 { grid-template-columns: minmax(0, 240px); }
.resource-overview-facts.detail-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.resource-overview-facts.detail-count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.resource-detail-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 36px; border-top: 0; }
.resource-detail-tabs button { min-height: 36px; padding: 0 15px; border: 1px solid var(--detail-rule); border-radius: 999px; background: var(--detail-panel-soft); color: var(--detail-muted); cursor: pointer; font-size: 12px; font-weight: 800; white-space: nowrap; transition: color .2s var(--detail-ease), border-color .2s var(--detail-ease), background-color .2s var(--detail-ease); }
.resource-detail-tabs button:hover { border-color: var(--detail-accent); color: var(--detail-accent); }
.resource-detail-tabs button[aria-selected="true"] { border-color: var(--detail-accent); background: var(--detail-accent); color: var(--detail-accent-ink); }
.resource-detail-tabs button:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 3px; }
.resource-tab-panel { padding: 22px 36px 38px; }
.resource-tab-panel[hidden] { display: none !important; }
.resource-detail-copy { max-width: none; }
.resource-detail-summary { max-width: 72ch; margin: 0 0 23px; padding-bottom: 21px; border-bottom: 1px solid var(--detail-rule); color: var(--detail-body); font-size: 15px; line-height: 1.8; }
.resource-detail-copy .article-richtext { width: 100%; max-width: none; }
.resource-detail-copy .article-richtext img { width: 100%; max-width: 100%; }
.resource-faq-list { display: grid; width: 100%; gap: 14px; }
.resource-faq-items { display: grid; gap: 9px; }
.resource-faq-list details { overflow: clip; border: 1px solid var(--detail-rule); border-radius: 11px; background: var(--detail-panel); }
.resource-faq-list summary { min-height: 62px; display: grid; grid-template-columns: 28px minmax(0, 1fr) 28px; align-items: center; gap: 12px; padding: 11px 13px; color: var(--ink); cursor: pointer; list-style: none; font-size: 14px; font-weight: 800; }
.resource-faq-list summary::-webkit-details-marker { display: none; }
.resource-faq-list summary::marker { content: ''; }
.resource-faq-list summary:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: -3px; }
.resource-faq-list summary:active { background: var(--detail-panel-soft); }
@media (hover: hover) and (pointer: fine) { .resource-faq-list summary:hover { background: var(--detail-panel-soft); } }
.resource-faq-number, .resource-faq-toggle { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 8px; }
.resource-faq-number { background: var(--detail-panel-soft); color: var(--detail-muted); font-size: 11px; font-weight: 800; }
.resource-faq-question { min-width: 0; overflow-wrap: anywhere; line-height: 1.5; }
.resource-faq-toggle { border: 1px solid var(--detail-rule); color: var(--detail-muted); }
.resource-faq-toggle svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; transition: transform .18s var(--detail-ease); }
.resource-faq-list details[open] { border-color: color-mix(in srgb, var(--detail-accent) 38%, var(--detail-rule)); background: color-mix(in srgb, var(--detail-accent) 3%, var(--detail-panel)); }
.resource-faq-list details[open] .resource-faq-number { background: color-mix(in srgb, var(--detail-accent) 10%, var(--detail-panel)); color: var(--detail-accent); }
.resource-faq-list details[open] .resource-faq-toggle { border-color: var(--detail-accent); color: var(--detail-accent); }
.resource-faq-list details[open] .resource-faq-toggle svg { transform: rotate(45deg); }
.resource-faq-answer { margin: 0 14px 0 53px; border-top: 1px solid var(--detail-rule); }
.resource-faq-list details p { margin: 0; padding: 13px 0 16px; color: var(--detail-body); font-size: 14px; line-height: 1.75; }
.resource-feedback-panel { width: 100%; max-width: none; padding: 0; border: 0; border-top: 0; border-radius: 0; background: transparent; }
.resource-feedback-panel h2 { margin-top: 0; }
.resource-feedback-quick .feedback-login { appearance: none; }
@media (max-width: 900px) {
    .resource-detail-page { padding-top: 30px; }
    .resource-detail-layout { gap: 26px; }
}
@media (max-width: 560px) {
    .resource-detail-page { padding: 20px 0 54px; }
    .resource-content-card .resource-detail-header, .resource-overview-card, .resource-tab-panel { padding-right: 20px; padding-left: 20px; }
    .resource-content-card .resource-detail-header { padding-top: 24px; padding-bottom: 23px; }
    .resource-content-card .resource-detail-header h1 { font-size: 29px; }
    .resource-overview-card { padding-top: 21px; padding-bottom: 22px; }
    .resource-overview-facts, .resource-overview-facts.detail-count-1, .resource-overview-facts.detail-count-2, .resource-overview-facts.detail-count-3 { grid-template-columns: minmax(0, 1fr); }
    .resource-overview-facts > div, .resource-overview-facts > div + div { padding: 13px 0; border-left: 0; border-top: 1px solid var(--detail-rule); }
    .resource-overview-facts > div:first-child { border-top: 0; }
    .resource-detail-tabs { padding: 0 20px; }
    .resource-detail-tabs button { flex: 1; justify-content: center; padding: 0 10px; }
    .resource-tab-panel { padding-top: 24px; padding-bottom: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *:before, *:after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Anime portal home */
.anime-hero { position: relative; margin-top: 26px; }
.anime-hero-frame { position: relative; min-height: 330px; overflow: hidden; border: 0; border-radius: 24px; background: #1e1b4b; box-shadow: 0 16px 34px rgba(49,46,129,.1); isolation: isolate; }
.anime-hero-slide { position: absolute; inset: 0; display: grid; align-items: center; padding: 48px 72px; opacity: 0; background: linear-gradient(90deg, rgba(15,23,42,.84) 0%, rgba(30,27,75,.58) 43%, rgba(15,23,42,.05) 78%), var(--hero-image) center / cover; pointer-events: none; transition: opacity .45s ease; }
.anime-hero-slide.is-active { position: relative; opacity: 1; pointer-events: auto; }
.anime-hero-copy { position: relative; z-index: 1; max-width: 570px; }
.anime-hero-copy > span { color: #ddd6fe; font-size: 10px; font-weight: 900; letter-spacing: .2em; }
.anime-hero-copy h1 { margin: 12px 0; color: #fff; font-size: clamp(38px, 5.2vw, 66px); line-height: .98; letter-spacing: -.07em; }
.anime-hero-copy p { margin: 0; color: #e2e8f0; font-size: 14px; line-height: 1.7; }
.anime-hero-action { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; margin-top: 20px; padding: 0 15px; border: 1px solid rgba(255,255,255,.52); border-radius: 9px; background: rgba(255,255,255,.14); color: #fff; font-size: 12px; font-weight: 800; text-decoration: none; backdrop-filter: blur(8px); }
.anime-hero-action:hover { background: #fff; color: #312e81; }
.anime-hero-controls { position: absolute; z-index: 2; left: 18px; right: 18px; bottom: 17px; display: flex; align-items: center; gap: 8px; }
.anime-hero.controls-left .anime-hero-controls { justify-content: flex-start; }
.anime-hero.controls-center .anime-hero-controls { justify-content: center; }
.anime-hero.controls-right .anime-hero-controls { justify-content: flex-end; }
.anime-hero-controls > button, .anime-hero-dots button { display: grid; width: 34px; height: 34px; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; background: rgba(15,23,42,.34); color: #fff; font: inherit; cursor: pointer; backdrop-filter: blur(8px); }
.anime-hero-controls > button:hover, .anime-hero-controls > button:focus-visible { background: #fff; color: #312e81; outline: 0; }
.anime-hero-dots { display: flex; gap: 6px; }
.anime-hero-dots button { width: 8px; height: 8px; border: 0; background: rgba(255,255,255,.46); }
.anime-hero-dots button span { display: none; }
.anime-hero.dots-dots .anime-hero-dots button[aria-selected="true"] { width: 9px; border-radius: 50%; background: #fff; }
.anime-hero.dots-numbers .anime-hero-dots button { width: 26px; height: 26px; border: 1px solid rgba(255,255,255,.45); border-radius: 6px; background: rgba(15,23,42,.34); font-size: 11px; }
.anime-hero.dots-numbers .anime-hero-dots button span { display: inline; }
.anime-hero.dots-numbers .anime-hero-dots button[aria-selected="true"] { background: #fff; color: #312e81; }
.anime-hero.layout-center .anime-hero-copy { margin: 0 auto; text-align: center; }
.anime-hero.layout-center .anime-hero-copy p { margin-left: auto; margin-right: auto; }
.anime-hero.layout-right .anime-hero-copy { margin-left: auto; text-align: right; }
.anime-hero.layout-right .anime-hero-copy p { margin-left: auto; }
.anime-hero-dots button[aria-selected="true"] { width: 22px; border-radius: 99px; background: #fff; }
.anime-hero.is-static .anime-hero-controls { display: none; }
.anime-hero.is-image .anime-hero-slide { min-height: 100%; height: 100%; padding: 0; background-image: var(--hero-image); background-position: center; background-size: cover; }
.anime-hero.is-image .anime-hero-slide,
.anime-hero.is-image .anime-hero-slide.is-active { position: absolute; inset: 0; }
@media (max-width: 560px) { .anime-hero { margin-top: 14px; } .anime-hero-frame { min-height: 278px; border-radius: 16px; } .anime-hero-slide { padding: 28px 22px 56px; background-image: linear-gradient(90deg, rgba(15,23,42,.82), rgba(30,27,75,.42) 68%, rgba(15,23,42,.08)), var(--hero-image); } .anime-hero-copy h1 { font-size: 35px; } .anime-hero-copy p { max-width: 260px; font-size: 12px; } .anime-hero-action { min-height: 40px; margin-top: 15px; } .anime-hero-controls { right: 12px; bottom: 11px; } .anime-hero-controls > button { width: 36px; height: 36px; } .anime-hero.is-image .anime-hero-frame { min-height: 210px; } }
.anime-banner { position: relative; min-height: 270px; display: flex; align-items: center; padding: 38px 72px; overflow: hidden; border-radius: 24px; background-color: #fbcfe8; background-image: linear-gradient(90deg, rgba(67, 56, 202, .18), rgba(236, 72, 153, .04) 50%, rgba(15, 23, 42, .02)), url('/themes/resource_hub/public/images/anime/default-anime-banner.svg'); background-position: center; background-size: cover; isolation: isolate; }
.anime-banner:before { content: ""; position: absolute; inset: 0; opacity: .36; background-image: radial-gradient(#fff 1px, transparent 1px); background-size: 11px 11px; mask-image: linear-gradient(90deg, #000 0 60%, transparent); }
.anime-banner:after { content: ""; position: absolute; right: 18%; bottom: -80px; width: 360px; height: 210px; border: 1px solid rgba(124, 58, 237, .18); border-radius: 50%; transform: rotate(-12deg); box-shadow: 0 -25px 0 rgba(124, 58, 237, .08), 0 -50px 0 rgba(124, 58, 237, .06); }
.anime-banner.has-banner-image { background-image: linear-gradient(90deg, rgba(67, 56, 202, .72), rgba(236, 72, 153, .26) 48%, rgba(15, 23, 42, .05)), var(--anime-banner-image); background-position: center; background-size: cover; }
.anime-banner.has-banner-image:before { opacity: .18; }
.anime-banner.has-banner-image:after, .anime-banner.has-banner-image .anime-banner-orbit, .anime-banner.has-banner-image .anime-banner-character { display: none; }
.anime-banner.has-banner-image .anime-banner-copy > span { color: #fdf2f8; }
.anime-banner.has-banner-image .anime-banner-copy p { color: #fdf2f8; text-shadow: 0 1px 10px rgba(15,23,42,.5); }
.anime-banner-copy { position: relative; z-index: 2; max-width: 560px; }
.anime-banner-copy > span { color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .2em; }
.anime-banner-copy h1 { margin: 12px 0 10px; color: #fff; font-size: clamp(40px, 5.4vw, 68px); line-height: .98; letter-spacing: -.07em; text-shadow: 0 3px 0 rgba(124, 58, 237, .52); }
.anime-banner-copy p { margin: 0; color: #713f75; font-size: 13px; font-weight: 700; }
.anime-banner-orbit { position: absolute; z-index: 1; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; transform: rotate(-22deg); }
.orbit-one { right: 12%; top: -95px; width: 440px; height: 250px; }
.orbit-two { right: 4%; bottom: -130px; width: 510px; height: 290px; }
.anime-banner-character { position: absolute; z-index: 2; right: 13%; bottom: 16px; display: grid; width: 150px; height: 150px; place-items: center; border-radius: 46% 54% 48% 52%; background: linear-gradient(145deg, #fff, #bfdbfe); color: var(--accent); font-size: 68px; box-shadow: 14px 12px 0 color-mix(in srgb, var(--accent) 20%, transparent); transform: rotate(8deg); }
.anime-search { max-width: 690px; margin-top: 24px; }
.anime-search .search-bar { margin-top: 0; }
.anime-search.is-featured { max-width: 780px; }
.anime-search-copy { display: grid; gap: 3px; margin-bottom: 12px; }
.anime-search-copy span { color: var(--accent); font-size: 10px; font-weight: 850; letter-spacing: .15em; }
.anime-search-copy strong { color: var(--ink); font-size: 21px; letter-spacing: -.04em; }
.anime-search-copy small { color: var(--muted); font-size: 12px; font-weight: 650; }
.anime-search-keywords { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 10px; color: var(--muted); font-size: 11px; font-weight: 700; }
.anime-search-keywords a { padding: 4px 8px; border: 1px solid #dbe3f2; border-radius: 999px; background: #fff; color: #50627e; transition: border-color .2s ease, color .2s ease; }
.anime-search-keywords a:hover { border-color: var(--accent); color: var(--accent); }
.anime-entry-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--hub-home-card-gap); padding-top: 28px; }
.anime-entry-grid.is-count-1 { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
.anime-entry-grid.is-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; }
.anime-entry-grid.is-count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 980px; }
.anime-entry { --entry-color: var(--accent); position: relative; min-height: 138px; display: flex; flex-direction: column; justify-content: center; padding: 20px 22px; overflow: hidden; border-radius: var(--hub-home-card-radius); background: linear-gradient(135deg, color-mix(in srgb, var(--entry-color) 88%, #0f172a), color-mix(in srgb, var(--entry-color) 72%, #fff)); color: #fff; box-shadow: 0 10px 20px rgba(15,23,42,.09); transition: transform .2s ease, box-shadow .2s ease; }
.anime-entry-character { position: absolute; z-index: 0; right: -5px; bottom: -7px; width: 45%; max-width: 136px; height: 100%; object-fit: contain; object-position: right bottom; filter: drop-shadow(0 8px 10px rgba(15,23,42,.2)); pointer-events: none; }
.anime-entry:after { content: "✦"; position: absolute; right: 14px; bottom: -12px; color: rgba(255,255,255,.33); font-size: 90px; line-height: 1; }
.anime-entry:hover { transform: translateY(-5px); box-shadow: 0 18px 30px rgba(15,23,42,.15); }
.anime-entry strong { position: relative; z-index: 1; max-width: 70%; margin: 0 0 4px; font-size: 28px; font-weight: 600; line-height: 1.25; letter-spacing: -.04em; }
.anime-entry small { position: relative; z-index: 1; font-size: 11px; opacity: .9; }
.anime-entry b { position: absolute; z-index: 1; right: 18px; top: 17px; font-size: 19px; font-weight: 500; }
.anime-content-section { padding: var(--hub-home-section-space) 0 0; }
.anime-section-tint { max-width: none; margin-top: var(--hub-home-section-space); padding: var(--hub-home-section-space) max(24px, calc((100% - var(--shell)) / 2)) calc(var(--hub-home-section-space) + 4px); background: #eef2ff; }
.anime-section-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.anime-section-heading { display: inline-flex; align-items: center; gap: 11px; min-width: 0; }
.anime-section-head h2 { margin: 0; font-size: 29px; letter-spacing: -.06em; }
.resource-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.section-icon { display: inline-flex; flex: 0 0 auto; width: 23px; height: 23px; color: var(--accent); }
.nav-parent-link > svg, .nav-submenu a > svg { width: 18px; height: 18px; flex: 0 0 auto; stroke-width: 1.9; }
.anime-category-card > svg { width: 28px; height: 28px; stroke-width: 1.8; }
.section-icon svg { width: 100%; height: 100%; display: block; color: inherit; fill: none; stroke: currentColor; stroke-width: 1.85; stroke-linecap: round; stroke-linejoin: round; }
.section-icon-spark svg, .section-icon-grid svg, .section-icon-bolt svg { fill: currentColor; stroke: none; }
.section-icon-fire { color: #f97316; }
.anime-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--hub-home-card-gap); }
.anime-card-grid-hot { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.anime-feed-grid.is-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.anime-feed-grid.is-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.anime-feed-grid.is-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.anime-feed-grid.is-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (min-width: 901px) {
    body.theme-layout-narrow .anime-feed-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    body.theme-layout-wide .anime-feed-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.anime-feed-grid.is-layout-featured .anime-feed-card.is-featured { grid-column: span 2; }
.anime-feed-grid.is-layout-featured .anime-feed-card.is-featured .anime-card-cover { height: 244px; }
.anime-feed-grid.is-layout-featured .anime-feed-card.is-featured .anime-card-body { padding: 18px 19px; }
.anime-feed-grid.is-layout-featured .anime-feed-card.is-featured h3 { font-size: 19px; }
.anime-feed-grid.is-layout-compact { grid-template-columns: 1fr; gap: 10px; }
.anime-feed-grid.is-layout-compact .anime-feed-card { display: grid; grid-template-columns: 156px minmax(0, 1fr); min-height: 126px; }
.anime-feed-grid.is-layout-compact .anime-card-cover { height: 100%; min-height: 126px; }
.anime-feed-grid.is-layout-compact .anime-card-body { display: flex; min-width: 0; flex-direction: column; padding: 13px 16px; }
.anime-feed-grid.is-layout-compact .anime-card-body h3 { min-height: 0; margin: 5px 0 7px; }
.anime-feed-grid.is-layout-compact .anime-card-meta { margin-top: auto; padding-top: 7px; }
.anime-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--hub-home-card-radius); background: #fff; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.anime-card:hover { transform: translateY(-5px); border-color: #c4b5fd; box-shadow: 0 16px 32px rgba(76,29,149,.13); }
.anime-card-cover { position: relative; height: 166px; overflow: hidden; background: #dbeafe; }
.anime-card-cover img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.anime-card-gallery { position: relative; width: 100%; height: 100%; }
.anime-card-gallery-image { display: none !important; }
.anime-card-gallery-image.is-active { display: block !important; }
.anime-card-gallery-prev, .anime-card-gallery-next { position: absolute; top: 50%; z-index: 2; display: flex; width: 28px; height: 32px; align-items: center; justify-content: center; padding: 0; transform: translateY(-50%); border: 0; border-radius: 7px; background: rgba(15, 23, 42, .72); color: #fff; font-size: 24px; line-height: 1; opacity: 0; cursor: pointer; transition: opacity .2s ease, background .2s ease; }
.anime-card-gallery-prev { left: 8px; }
.anime-card-gallery-next { right: 8px; }
.anime-card-gallery-count { position: absolute; right: 8px; bottom: 8px; z-index: 2; padding: 3px 7px; border-radius: 999px; background: rgba(15, 23, 42, .72); color: #fff; font-size: 10px; line-height: 1.2; opacity: 0; transition: opacity .2s ease; }
.anime-card:hover .anime-card-gallery-prev, .anime-card:hover .anime-card-gallery-next, .anime-card:hover .anime-card-gallery-count, .anime-card-gallery:focus-within .anime-card-gallery-prev, .anime-card-gallery:focus-within .anime-card-gallery-next, .anime-card-gallery:focus-within .anime-card-gallery-count { opacity: 1; }
.anime-card-gallery-prev:hover, .anime-card-gallery-next:hover { background: var(--accent); }
.anime-card:hover .anime-card-cover img { transform: scale(1.05); }
.anime-cover-fallback { width: 100%; height: 100%; display: flex; align-items: end; padding: 14px; }
.anime-cover-fallback span { color: rgba(255,255,255,.8); font-size: 9px; font-weight: 900; letter-spacing: .15em; }
.anime-card-badge { position: absolute; left: 10px; top: 10px; padding: 4px 8px; border-radius: 6px; background: #ec4899; color: #fff; font-size: 10px; font-weight: 900; }
.anime-card-badge.badge-hot { background: #f97316; }
.anime-card-brand-badge { position: absolute; top: 10px; right: 10px; max-width: calc(100% - 20px); overflow: hidden; padding: 3px 7px; border-radius: 999px; background: rgba(15, 23, 42, .78); color: #fff; font-size: 9px; font-weight: 700; line-height: 14px; text-overflow: ellipsis; white-space: nowrap; }
.anime-card-brand-badge.badge-position-left { right: auto; left: 10px; }
/* Hallmark · component: feed pagination · theme: existing Resource Hub
 * states: default, hover, focus, active, disabled, loading, error; success uses current-page highlight. */
.anime-feed-pagination { --feed-page-ink:#13111c; --feed-page-selected:#3b82f6; --feed-page-hover:rgba(59,130,246,.04); display:flex; flex-wrap:wrap; width:fit-content; max-width:100%; align-items:center; gap:0; margin:32px auto 0; color:var(--feed-page-ink); font:400 15px/1.6 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif; letter-spacing:normal; }
.anime-feed-pagination .feed-page-control { display:inline-flex; position:relative; box-sizing:border-box; flex:0 0 auto; min-width:40px; height:40px; align-items:center; justify-content:center; margin:0 3px; padding:0 10px; border:0; border-radius:8px; background:transparent; color:var(--feed-page-ink); font:inherit; text-align:center; text-decoration:none; white-space:nowrap; user-select:none; -webkit-tap-highlight-color:transparent; transition:color 250ms cubic-bezier(.4,0,.2,1),background-color 250ms cubic-bezier(.4,0,.2,1); }
.anime-feed-pagination svg { flex-shrink:0; width:22px; height:22px; margin:0 -8px; fill:currentColor; stroke:none; }
.anime-feed-pagination .is-current { background:var(--feed-page-selected); color:var(--white); }
.anime-feed-pagination [aria-disabled="true"] { opacity:.38; cursor:default; }
.anime-feed-pagination .feed-page-ellipsis { display:inline-flex; box-sizing:border-box; min-width:40px; height:24px; margin:0 3px; padding:0 10px; justify-content:center; color:var(--feed-page-ink); }
@media (hover:hover) { .anime-feed-pagination a:hover { background:var(--feed-page-hover); } }
.anime-feed-pagination a:active { background:var(--feed-page-hover); }
.anime-feed-pagination a:focus-visible, .anime-feed-pagination:focus-visible { outline:2px solid var(--feed-page-selected); outline-offset:2px; }
@media (prefers-reduced-motion:reduce) { .anime-feed-pagination .feed-page-control { transition:none; } }
[data-home-feed][aria-busy="true"] .anime-feed-pagination { opacity:.6; cursor:progress; }
[data-home-feed][aria-busy="true"] .anime-feed-pagination a { cursor:progress; }
[data-home-feed] [data-feed-status] { text-align:center; }
[data-home-feed][data-feed-state="error"] [data-feed-status] { color:var(--member-checkout-error); }
.anime-card-body { padding: 14px 15px 16px; }
.anime-card-source { color: var(--accent); font-size: 10px; font-weight: 800; }
.anime-card h3 { display: -webkit-box; min-height: 43px; margin: 8px 0 9px; overflow: hidden; font-size: 15px; line-height: 1.42; letter-spacing: -.02em; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.anime-card-tags { display: flex; gap: 4px; min-height: 18px; overflow: hidden; }
.anime-card-tags span { padding: 2px 4px; border: 1px solid transparent; border-radius: 999px; background: #f1f5f9; color: #64748b; font-size: 10px; line-height: 14px; white-space: nowrap; }
.anime-card-tags .tag-tone-1 { background: #f3e8ff; border-color: #d8b4fe; color: #7e22ce; }
.anime-card-tags .tag-tone-2 { background: #ccfbf1; border-color: #99f6e4; color: #0f766e; }
.anime-card-tags .tag-tone-3 { background: #fee2e2; border-color: #fecaca; color: #b91c1c; }
.anime-card-tags .tag-tone-4 { background: #ede9fe; border-color: #c4b5fd; color: #6d28d9; }
.anime-card-tags .tag-tone-5 { background: #dcfce7; border-color: #bbf7d0; color: #15803d; }
.anime-card-tags .tag-tone-6 { background: #fef3c7; border-color: #fde68a; color: #b45309; }
.anime-card-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 14px; padding-top: 10px; border-top: 1px solid #f1f5f9; color: #94a3b8; font-size: 11px; }
.anime-card-meta span { color: #64748b; font-weight: 500; white-space: nowrap; }
.anime-card-stats, .anime-card-meta time { display: inline-flex; align-items: center; gap: 4px; }
.anime-card-meta svg { width: 13px; height: 13px; stroke-width: 1.8; }
.anime-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--hub-home-card-gap); }
.anime-category-card { position: relative; display: flex; min-width: 0; min-height: 132px; flex-direction: column; justify-content: flex-end; padding: 20px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--hub-home-card-radius); background: rgba(255,255,255,.86); box-shadow: 0 7px 16px rgba(15,23,42,.035); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.anime-category-card:before { content: ""; position: absolute; top: -42px; right: -36px; width: 116px; height: 116px; border: 1px solid color-mix(in srgb, var(--accent) 19%, transparent); border-radius: 50%; box-shadow: 0 0 0 15px color-mix(in srgb, var(--accent) 5%, transparent); }
.anime-category-card:hover { border-color: color-mix(in srgb, var(--accent) 42%, #fff); box-shadow: 0 16px 28px rgba(76,29,149,.1); transform: translateY(-4px); }
.anime-category-index { position: absolute; top: 17px; left: 20px; color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.anime-category-card strong { max-width: 78%; color: var(--ink); font-size: 18px; letter-spacing: -.04em; overflow-wrap: anywhere; }
.anime-category-card small { margin-top: 5px; color: var(--ink-soft); font-size: 11px; }
.anime-category-card b { position: absolute; right: 18px; bottom: 17px; color: var(--accent); font-size: 19px; font-weight: 500; transition: transform .2s ease; }
.anime-category-card:hover b { transform: translateX(4px); }
.anime-notice { --notice-accent: var(--accent); display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: var(--hub-home-section-space); padding: 29px 34px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--notice-accent) 27%, #fff); border-radius: var(--hub-home-card-radius); background: linear-gradient(120deg, color-mix(in srgb, var(--notice-accent) 13%, #fff), #fff 63%); box-shadow: 0 12px 28px color-mix(in srgb, var(--notice-accent) 10%, transparent); }
.anime-notice-copy { position: relative; min-width: 0; }
.anime-notice-copy:before { position: absolute; top: -58px; left: -80px; width: 144px; height: 144px; border: 1px solid color-mix(in srgb, var(--notice-accent) 20%, transparent); border-radius: 48% 52% 64% 36%; content: ""; transform: rotate(20deg); }
.anime-notice-copy > span, .anime-notice-copy h2, .anime-notice-copy p { position: relative; }
.anime-notice-copy > span { color: var(--notice-accent); font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.anime-notice-copy h2 { margin: 7px 0 6px; color: var(--ink); font-size: 23px; letter-spacing: -.045em; }
.anime-notice-copy p { max-width: 670px; margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.7; white-space: pre-line; }
.anime-notice-action { display: inline-flex; flex: 0 0 auto; min-height: 42px; align-items: center; justify-content: center; gap: 8px; padding: 0 16px; border: 1px solid var(--notice-accent); border-radius: 9px; background: var(--notice-accent); color: #fff; font-size: 12px; font-weight: 800; transition: box-shadow .2s ease, transform .2s ease; white-space: nowrap; }
.anime-notice-action:hover { box-shadow: 0 10px 18px color-mix(in srgb, var(--notice-accent) 28%, transparent); transform: translateY(-2px); }

/* Category navigation: first-level categories stay calm; children surface as a compact palette. */
.main-nav > a, .main-nav .nav-parent-link { position: relative; display: inline-flex; align-items: center; gap: 7px; min-height: 72px; padding: 0; color: var(--ink-soft); font-size: 13px; font-weight: 600; white-space: nowrap; }
.main-nav > a > svg, .main-nav .nav-parent-link > svg { width: 18px; height: 18px; stroke-width: 1.9; }
.main-nav > a:not(.is-active):hover, .main-nav .nav-parent-link:hover { color: var(--ink); }
.main-nav > a:hover, .main-nav > a.is-active, .main-nav .nav-parent-link:hover, .main-nav .nav-menu.is-active .nav-parent-link { color: var(--accent); }
.main-nav > a.is-active:after, .main-nav .nav-menu.is-active .nav-parent-link:after { display: none; }
.nav-menu { position: relative; display: inline-flex; align-items: center; gap: 3px; }
.nav-menu-toggle { display: inline-grid; width: 22px; height: 22px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink-soft); transition: background .18s ease, color .18s ease, transform .18s ease; }
.nav-menu-toggle:hover, .nav-menu-toggle:focus-visible, .nav-menu.is-open .nav-menu-toggle { color: var(--accent); background: transparent; outline: none; }
.nav-menu-toggle:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
.nav-menu-toggle span { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s ease; }
.nav-menu.is-open .nav-menu-toggle span { transform: translateY(2px) rotate(225deg); }
.nav-submenu { position: absolute; z-index: 30; top: calc(100% + 8px); left: 0; width: fit-content; min-width: 0; max-width: calc(100vw - 28px); padding: 8px; opacity: 0; visibility: hidden; border: 1px solid rgba(148, 163, 184, .18); border-radius: 16px; background: rgba(255, 255, 255, .98); box-shadow: 0 4px 20px rgba(15, 23, 42, .1); transform: translateY(7px) scale(.98); transform-origin: top left; transition: opacity .18s ease, transform .18s ease, visibility .18s ease; backdrop-filter: blur(14px); }
.nav-menu:hover .nav-submenu, .nav-menu:focus-within .nav-submenu, .nav-menu.is-open .nav-submenu { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.main-nav .nav-submenu a { display: flex; width: max-content; min-width: 100%; box-sizing: border-box; align-items: center; gap: 8px; min-height: 48px; padding: 12px 16px; border-radius: 8px; color: #4f4d5a; font-size: .875rem; font-weight: 400; white-space: nowrap; transition: background .16s ease, color .16s ease; }
.main-nav .nav-submenu a:hover { color: var(--accent); background: color-mix(in srgb, var(--accent) 4%, transparent); }
.main-nav .nav-submenu a.is-active { color: var(--accent); background: transparent; }
.main-nav .nav-submenu a > svg { width: 18px; height: 18px; stroke-width: 1.9; }
.main-nav .nav-submenu .nav-submenu-all { justify-content: space-between; gap: 20px; margin-bottom: 4px; border-bottom: 1px solid #eef2f7; border-radius: 7px 7px 0 0; color: var(--accent); }
.main-nav .nav-submenu .nav-submenu-all b { font-size: 14px; font-weight: 600; }
.main-nav .nav-submenu a:after { display: none; }

/* Hallmark · component: resource-list card · genre: editorial · theme: existing resource-hub
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass · studied-DNA: xyoushe.co list card structure
 */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V4 */
.archive-hero { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 38px; align-items: end; padding: 56px 0 34px; border-bottom: 1px solid var(--line); }
.archive-hero-copy { min-width: 0; }
.archive-breadcrumb { display: flex; gap: 9px; margin: 13px 0 0; color: #94a3b8; font-size: 11px; font-weight: 700; }
.archive-breadcrumb a:hover { color: var(--accent); }
.archive-hero h1 { max-width: 760px; margin: 10px 0 9px; overflow-wrap: anywhere; font-size: clamp(38px, 4.7vw, 58px); line-height: 1.04; letter-spacing: -.065em; }
.archive-hero-copy > p:last-of-type { margin-bottom: 0; color: var(--ink-soft); font-size: 14px; }
.archive-search { max-width: 650px; margin-top: 22px; }
.archive-hero-note { min-height: 145px; display: flex; flex-direction: column; justify-content: center; padding: 22px 24px; overflow: hidden; border-radius: 18px; background: linear-gradient(145deg, #312e81, #7c3aed 58%, #ec4899); color: #fff; box-shadow: 10px 11px 0 rgba(124, 58, 237, .12); }
.archive-hero-note span { color: #ddd6fe; font-size: 9px; font-weight: 900; letter-spacing: .18em; }
.archive-hero-note strong { margin-top: 8px; font-size: 24px; letter-spacing: -.05em; }
.archive-hero-note small { margin-top: 7px; color: #ede9fe; font-size: 10px; }
.archive-content { display: grid; grid-template-columns: 228px minmax(0, 1fr); gap: 42px; padding: 30px 0 82px; }
.archive-filters { align-self: start; position: sticky; top: 94px; padding: 15px 0 4px; }
.archive-filter-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.archive-filter-head span { color: var(--ink-soft); font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.archive-filter-head a { padding: 4px 8px; border-radius: 7px; color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.archive-filter-head a:hover, .archive-filter-head a.is-active { background: #eef2ff; color: #4338ca; }
.archive-filter-groups { display: grid; gap: 15px; }
.archive-filter-group { padding-bottom: 14px; border-bottom: 1px solid #e9edf5; }
.archive-parent { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink); font-size: 14px; font-weight: 850; }
.archive-parent span { color: #a5b4fc; font-size: 16px; font-weight: 400; transition: transform .18s ease; }
.archive-parent:hover, .archive-parent.is-active { color: #4338ca; }
.archive-parent:hover span, .archive-parent.is-active span { transform: translateX(3px); color: var(--accent); }
.archive-child-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.archive-child-chips a { padding: 5px 8px; border: 1px solid #e7eaf1; border-radius: 7px; background: rgba(255,255,255,.7); color: #64748b; font-size: 11px; line-height: 1.2; transition: color .18s ease, border-color .18s ease, background .18s ease; }
.archive-child-chips a:hover, .archive-child-chips a.is-active { border-color: #c4b5fd; background: #f5f3ff; color: #5b21b6; }
.archive-results { min-width: 0; }
.archive-results-bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.archive-category-heading { min-width: 0; display: flex; align-items: center; gap: 12px; }
.archive-category-heading > svg { width: 32px; height: 32px; flex: 0 0 32px; color: var(--accent); stroke-width: 2; }
.archive-category-heading > div { min-width: 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 10px; }
.archive-category-heading h1 { min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 22px; line-height: 28px; letter-spacing: -.02em; }
.archive-category-heading small { display: inline; margin-top: 0; color: var(--ink-soft); font-size: 11px; line-height: 16px; white-space: nowrap; }
.archive-list { display: grid; gap: 12px; }
.archive-row { min-height: 214px; display: flex; align-items: stretch; gap: 24px; padding: 20px 20px 16px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.88); box-shadow: 0 7px 18px rgba(15,23,42,.035); transition: border-color .2s var(--ease-in-out); }
.archive-row:hover { border-color: #c4b5fd; }
.archive-row:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.archive-row:active { border-color: var(--accent); }
.archive-row[aria-disabled="true"] { opacity: .55; cursor: not-allowed; pointer-events: none; }
.archive-row[data-state="loading"] { opacity: .72; cursor: progress; }
.archive-row[data-state="error"] { border-color: var(--coral); }
.archive-row[data-state="success"] { border-color: var(--accent); }
.archive-row-body { min-width: 0; flex: 1 1 0; display: flex; flex-direction: column; justify-content: flex-start; padding: 0; }
.archive-row h2 { display: -webkit-box; margin: 0 0 12px; overflow: hidden; overflow-wrap: anywhere; color: var(--ink); font-size: 16px; line-height: 24px; letter-spacing: -.025em; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.archive-row p { min-height: 67px; display: -webkit-box; margin: 0; overflow: hidden; color: var(--ink-soft); font-size: 14px; line-height: 22.4px; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.archive-tags { min-width: 0; min-height: 24px; display: flex; flex-wrap: nowrap; gap: 8px; margin-top: 16px; overflow: hidden; }
.archive-tags span { min-height: 24px; display: inline-flex; align-items: center; padding: 2px 8px; overflow: hidden; border: 1px solid transparent; border-radius: 8px; background: #f1f5f9; color: #64748b; font-size: 10px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.archive-tags .tag-tone-1 { background: #f3e8ff; border-color: #d8b4fe; color: #7e22ce; }
.archive-tags .tag-tone-2 { background: #dbeafe; border-color: #93c5fd; color: #1d4ed8; }
.archive-tags .tag-tone-3 { background: #ffedd5; border-color: #fdba74; color: #c2410c; }
.archive-tags .tag-tone-4 { background: #e0e7ff; border-color: #a5b4fc; color: #4338ca; }
.archive-tags .tag-tone-5 { background: #dcfce7; border-color: #86efac; color: #15803d; }
.archive-tags .tag-tone-6 { background: #fce7f3; border-color: #f9a8d4; color: #be185d; }
.archive-row-stats { min-width: 0; display: flex; align-items: center; gap: 16px; margin-top: 16px; overflow: hidden; color: var(--ink-soft); font-size: 12px; line-height: 18px; }
.archive-row-stats span { min-width: 0; display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.archive-row-stats svg { width: 14px; height: 14px; flex: 0 0 14px; stroke-width: 2; }
.archive-row-gallery { width: clamp(300px, 42%, 504px); flex: 0 0 clamp(300px, 42%, 504px); align-self: center; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; overflow: visible; }
.archive-row-gallery img { width: 100%; min-width: 0; display: block; aspect-ratio: 16 / 9; border-radius: 12px; object-fit: cover; }
.archive-row-gallery-empty { min-height: 0; display: none; aspect-ratio: 16 / 9; align-items: flex-end; padding: 14px; border-radius: 12px; color: rgba(255,255,255,.8); }
.archive-row-gallery-empty span { position: relative; z-index: 1; font-size: 9px; font-weight: 900; letter-spacing: .15em; }
.archive-row-gallery-count-1 { grid-template-columns: minmax(0, 1fr); }
.archive-row-gallery-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 900px) {
    .anime-banner { min-height: 250px; padding: 34px 40px; }
    .anime-banner-character { right: 8%; width: 120px; height: 120px; font-size: 54px; }
    .anime-entry-grid, .anime-card-grid, .anime-card-grid-hot, .anime-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .archive-hero { grid-template-columns: minmax(0, 1fr) 180px; gap: 26px; }
    .archive-content { grid-template-columns: 1fr; gap: 22px; }
    .archive-filters { position: static; padding: 0; }
    .archive-filter-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 20px; }
}
@media (max-width: 560px) {
    .anime-banner { min-height: 218px; padding: 28px 22px; border-radius: 17px; }
    .anime-banner-copy h1 { font-size: 38px; }
    .anime-banner-copy p { max-width: 220px; font-size: 11px; }
    .anime-banner-character { right: -8px; bottom: 13px; width: 100px; height: 100px; font-size: 45px; }
    .anime-search { margin-top: 18px; }
    .anime-search.is-featured { max-width: none; }
    .anime-search-copy strong { font-size: 19px; }
    .anime-search-keywords { gap: 5px; font-size: 10px; }
    .anime-entry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding-top: 18px; }
    .anime-entry { min-height: 112px; padding: 14px; }
    .anime-entry strong { font-size: 21px; }
    .anime-entry small { font-size: 10px; }
    .anime-entry-character { width: 50%; max-width: 118px; height: 96%; right: -8px; bottom: -2px; }
    .anime-content-section { padding-top: 45px; }
    .anime-section-tint { margin-top: 45px; padding: 45px 14px 48px; }
    .anime-section-head { align-items: start; flex-direction: column; gap: 8px; }
    .anime-section-heading { gap: 9px; }
    .section-icon { width: 21px; height: 21px; }
    .anime-card-tags span { padding: 1px 3px; font-size: 9px; line-height: 14px; }
    .anime-card-grid, .anime-card-grid-hot, .anime-feed-grid.is-cols-2, .anime-feed-grid.is-cols-3, .anime-feed-grid.is-cols-4, .anime-feed-grid.is-cols-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .anime-feed-grid.is-layout-featured .anime-feed-card.is-featured { grid-column: 1 / -1; }
    .anime-feed-grid.is-layout-featured .anime-feed-card.is-featured .anime-card-cover { height: 186px; }
    .anime-feed-grid.is-layout-compact { grid-template-columns: 1fr; }
    .anime-feed-grid.is-layout-compact .anime-feed-card { grid-template-columns: 108px minmax(0, 1fr); min-height: 112px; }
    .anime-feed-grid.is-layout-compact .anime-card-cover { min-height: 112px; }
    .anime-feed-grid.is-layout-compact .anime-card-body { padding: 10px 11px; }
    .anime-feed-grid.is-layout-compact .anime-card-tags { display: none; }
    .anime-feed-grid.is-layout-compact .anime-card-meta { margin-top: 5px; }
    .anime-category-grid { grid-template-columns: 1fr; }
    .anime-category-card { min-height: 116px; }
    .anime-notice { align-items: flex-start; flex-direction: column; gap: 17px; padding: 23px 20px; }
    .anime-notice-action { width: 100%; }
    .anime-card-cover { height: 126px; }
    .archive-hero { display: block; padding: 34px 0 24px; }
    .archive-hero h1 { font-size: 35px; }
    .archive-hero-note { display: none; }
    .archive-search { margin-top: 17px; }
    .archive-content { padding-top: 22px; }
    .archive-filter-groups { grid-template-columns: 1fr; gap: 11px; }
    .archive-filter-group { padding-bottom: 11px; }
    .archive-child-chips { margin-top: 7px; }
    .archive-row { min-height: 144px; gap: 12px; padding: 12px; border-radius: 12px; }
    .archive-row.has-gallery { min-height: 0; flex-direction: column; gap: 0; padding: 0; }
    .archive-row.has-gallery .archive-row-body { padding: 12px; }
    .archive-row h2 { margin: 0 0 8px; font-size: 15px; line-height: 1.35; -webkit-line-clamp: 2; }
    .archive-row p { min-height: 44px; line-height: 22px; -webkit-line-clamp: 2; }
    .archive-tags { max-width: 100%; margin-top: 8px; }
    .archive-tags span { padding: 2px 6px; font-size: 9px; }
    .archive-row-stats { gap: 12px; margin-top: 8px; font-size: 10px; }
    .archive-row-stats span:nth-child(3), .archive-row-stats span:nth-child(5) { display: none; }
    .archive-row-gallery { width: 172px; flex-basis: 172px; grid-template-columns: minmax(0, 1fr); gap: 0; }
    .archive-row.has-gallery .archive-row-gallery { width: 100%; flex-basis: auto; order: -1; }
    .archive-row.has-gallery .archive-row-gallery img { border-radius: 0; }
    .archive-row-gallery img:not(:first-child) { display: none; }
    .archive-row-gallery-count-2, .archive-row-gallery-count-3 { grid-template-columns: minmax(0, 1fr); }
    .archive-results-bar { margin-bottom: 11px; }
}
@media (max-width: 560px) {
    .nav-row { flex-wrap: wrap; gap: 0 12px; padding: 7px 0 6px; }
    .main-nav { display: flex; order: 3; flex: 0 0 100%; gap: 17px; margin-top: 3px; padding: 1px 0 3px; overflow-x: auto; scrollbar-width: none; }
    .main-nav::-webkit-scrollbar { display: none; }
    .main-nav > a, .main-nav .nav-parent-link { min-height: 36px; font-size: 12px; }
    .main-nav > a.is-active:after, .main-nav .nav-menu.is-active .nav-parent-link:after { bottom: 0; height: 2px; }
    .nav-menu { flex: 0 0 auto; }
    .nav-menu-toggle { width: 20px; height: 20px; }
    .nav-submenu { position: fixed; top: auto; left: 14px; right: 14px; bottom: 16px; width: auto; min-width: 0; padding: 9px; border-radius: 15px; transform: translateY(10px); }
    .nav-menu:hover .nav-submenu, .nav-menu:focus-within .nav-submenu { opacity: 0; visibility: hidden; transform: translateY(10px); }
    .nav-menu.is-open .nav-submenu { opacity: 1; visibility: visible; transform: translateY(0); }
    .main-nav .nav-submenu a { min-height: 40px; padding: 0 12px; font-size: 13px; }
}

/* Listing page: no banner and no sidebar — categories and search share one utility line. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.archive-content { display: block; padding: 28px 0 82px; }
.archive-toolbar { display: flex; align-items: center; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.archive-tabs { display: flex; min-width: 0; flex: 1; gap: 8px; padding: 0; overflow-x: auto; scrollbar-width: none; }
.archive-tabs::-webkit-scrollbar { display: none; }
.archive-tabs a { flex: 0 0 auto; min-height: 34px; display: inline-flex; align-items: center; padding: 0 12px; border: 1px solid #e2e8f0; border-radius: 8px; background: rgba(255,255,255,.68); color: #64748b; font-size: 12px; font-weight: 750; transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease; }
.archive-tabs a:hover { border-color: #c4b5fd; color: #5b21b6; transform: translateY(-1px); }
.archive-tabs a.is-child { border-style: dashed; color: #7c8496; font-size: 11px; }
.archive-tabs a.is-active { border-color: var(--accent); background: var(--accent); color: #fff; box-shadow: 0 5px 12px color-mix(in srgb, var(--accent) 20%, transparent); }
.archive-inline-search { flex: 0 0 208px; min-height: 36px; display: flex; align-items: center; padding: 3px 4px 3px 10px; border: 1px solid #e2e8f0; border-radius: 9px; background: rgba(255,255,255,.86); color: #818cf8; transition: border-color .18s ease, box-shadow .18s ease; }
.archive-inline-search:focus-within { border-color: #a5b4fc; box-shadow: 0 0 0 3px rgba(99,102,241,.11); }
.archive-inline-search > span { font-size: 18px; line-height: 1; }
.archive-inline-search input { min-width: 0; flex: 1; padding: 5px 7px; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 12px; }
.archive-inline-search input::placeholder { color: #94a3b8; }
.archive-inline-search button { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 6px; background: var(--accent); color: #fff; cursor: pointer; font-size: 15px; line-height: 1; transition: background .18s ease, transform .18s ease; }
.archive-inline-search button:hover { background: #4338ca; transform: translateX(1px); }
.archive-row { min-height: 214px; }
.archive-cover { align-self: center; min-height: 0; aspect-ratio: 16 / 9; }
@media (max-width: 900px) {
    .archive-toolbar { align-items: stretch; flex-direction: column; gap: 12px; }
    .archive-inline-search { flex-basis: 38px; max-width: 420px; }
}
@media (max-width: 560px) {
    .archive-content { padding-top: 18px; }
    .archive-toolbar { gap: 10px; padding-bottom: 14px; }
    .archive-tabs { gap: 7px; }
    .archive-tabs a { min-height: 33px; padding: 0 10px; font-size: 11px; }
    .archive-inline-search { flex: 0 0 40px; max-width: none; min-height: 40px; }
    .archive-row { min-height: 126px; }
    .archive-cover { min-height: 0; }
}

/* Global search lives beside the primary navigation; the archive only controls the view. */
.header-search { flex: 0 0 220px; min-width: 180px; height: 40px; display: flex; align-items: center; padding: 3px 4px 3px 10px; border: 1px solid #e2e8f0; border-radius: 999px; background: rgba(255,255,255,.78); color: #818cf8; transition: border-color .18s ease, box-shadow .18s ease; }
.header-search:focus-within { border-color: #a5b4fc; box-shadow: 0 0 0 3px rgba(99,102,241,.11); }
.header-search > span { font-size: 18px; line-height: 1; }
.header-search input { width: 100%; min-width: 0; padding: 5px 7px; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 12px; }
.header-search input::placeholder { color: #94a3b8; }
.header-search button { width: 48px; height: 32px; flex: 0 0 48px; padding: 0; border: 0; border-radius: 999px; background: var(--accent); color: var(--white); cursor: pointer; font-size: 11px; font-weight: 800; line-height: 1; transition: background .18s ease; }
.header-search button:hover { background: var(--accent-strong); }
.archive-results { padding-top: 5px; }
.archive-results-bar { margin-bottom: 32px; }
.archive-view-switch { flex: 0 0 auto; display: inline-flex; padding: 3px; border: 1px solid #e2e8f0; border-radius: 10px; background: rgba(255,255,255,.78); }
.archive-view-switch button { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; padding: 0 13px; border: 0; border-radius: 7px; background: transparent; color: #7c8496; cursor: pointer; font-size: 12px; font-weight: 800; white-space: nowrap; transition: color .18s var(--ease-in-out), background .18s var(--ease-in-out), box-shadow .18s var(--ease-in-out); }
.archive-view-switch button svg { width: 18px; height: 18px; }
.archive-view-switch button:hover { color: #4338ca; }
.archive-view-switch button:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.archive-view-switch button:active { color: var(--accent); }
.archive-view-switch button:disabled { opacity: .55; cursor: not-allowed; }
.archive-view-switch button.is-active { background: #eef2ff; color: #4338ca; box-shadow: 0 1px 2px rgba(15,23,42,.06); }
.archive-list.is-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.archive-list.is-grid .archive-row { min-height: 0; flex-direction: column; gap: 0; padding: 0; border-radius: 13px; }
.archive-list.is-grid .archive-row-gallery { width: 100%; min-height: 0; flex-basis: auto; order: -1; grid-template-columns: minmax(0, 1fr); gap: 0; aspect-ratio: 16 / 9; }
.archive-list.is-grid .archive-row-gallery-empty { display: flex; align-items: flex-end; justify-content: flex-start; color: rgba(255,255,255,.8); }
.archive-list.is-grid .archive-row-gallery img { height: 100%; border-radius: 0; }
.archive-list.is-grid .archive-row-gallery img:not(:first-child) { display: none; }
.archive-list.is-grid .archive-cover { width: 100%; aspect-ratio: 16 / 9; }
.archive-list.is-grid .archive-cover:after { background: linear-gradient(180deg, transparent 62%, rgba(15,23,42,.12)); }
.archive-list.is-grid .archive-row-body { min-height: 0; flex: 0 0 auto; padding: 14px 15px 16px; }
.archive-list.is-grid .archive-row h2 { min-height: 43px; display: -webkit-box; margin: 8px 0 9px; overflow: hidden; font-size: 15px; line-height: 1.42; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.archive-list.is-grid .archive-summary-list { display: none; }
.archive-list.is-grid .archive-tags { min-height: 18px; max-height: 18px; margin-top: 0; overflow: hidden; flex-wrap: nowrap; }
.archive-list.is-grid .archive-tags span { min-height: 18px; padding: 2px 4px; border-radius: 999px; font-size: 10px; line-height: 14px; }
.archive-list.is-grid .archive-row-stats { justify-content: flex-start; gap: 12px; margin-top: 14px; padding-top: 10px; border-top: 1px solid #f1f5f9; font-size: 10px; }
@media (max-width: 1180px) {
    .nav-row { gap: 24px; }
    .main-nav { gap: 18px; }
    .header-search { flex-basis: 190px; }
    .archive-list.is-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .header-search { flex-basis: 180px; }
    .archive-list.is-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .header-search { min-width: 0; flex: 1; order: 2; }
    .header-search input { font-size: 11px; }
    .header-search button { width: 44px; flex-basis: 44px; }
    .member-user-name, .member-user-chevron { display: none; }
    .member-user-trigger { min-width: 44px; justify-content: center; }
    .archive-results-bar { align-items: center; flex-direction: row; gap: 10px; margin-bottom: 24px; }
    .archive-category-heading { flex: 1 1 auto; gap: 8px; }
    .archive-category-heading > svg { width: 28px; height: 28px; flex-basis: 28px; }
    .archive-category-heading h1 { font-size: 20px; }
    .archive-view-switch { flex: 0 0 auto; }
    .archive-view-switch button { min-height: 36px; gap: 5px; padding: 0 8px; font-size: 11px; }
    .archive-view-switch button svg { width: 16px; height: 16px; }
    .archive-list.is-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .archive-list.is-grid .archive-row { border-radius: 10px; }
    .archive-list.is-grid .archive-row-body { min-height: 0; padding: 12px 13px 14px; }
    .archive-list.is-grid .archive-row h2 { font-size: 15px; }
}

/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5
 * macrostructure: resource title → factual overview → document body / sticky access
 * theme: studied-DNA (RIPRO professional access + target-game metadata density) · studied: yes
 * contrast: pass (40–41) · mobile: pass (34, 49, 50–57)
 */
:root {
    --detail-panel: var(--white);
    --detail-panel-soft: #f8fafc;
    --detail-rule: var(--line);
    --detail-muted: var(--ink-soft);
    --detail-accent: var(--accent);
    --detail-accent-hover: #3730a3;
    --detail-accent-ink: var(--white);
    --detail-tag-1: #f5f3ff;
    --detail-tag-2: #ecfeff;
    --detail-tag-3: #fff7ed;
    --detail-tag-ink-1: #5b21b6;
    --detail-tag-ink-2: #0f766e;
    --detail-tag-ink-3: #c2410c;
    --detail-body: #475569;
    --detail-meta: #94a3b8;
    --detail-meta-dot: #cbd5e1;
    --detail-focus: #c7d2fe;
    --detail-access-muted: #a7b4c7;
    --detail-access-rule: rgba(199, 210, 254, .28);
    --detail-shadow: 0 18px 38px rgba(15, 23, 42, .07);
    --detail-radius: 18px;
    --detail-ease: cubic-bezier(.16, 1, .3, 1);
}
.resource-detail-page { padding-top: 34px; }
.resource-detail-page .back-link { display: inline-flex; min-height: 32px; align-items: center; color: var(--detail-muted); }
.resource-detail-page .back-link:hover { color: var(--detail-accent); }
.resource-detail-header { margin: 27px 0 32px; padding-bottom: 29px; border-bottom: 1px solid var(--detail-rule); }
.resource-detail-intro { min-width: 0; }
.resource-detail-intro h1 { max-width: 980px; margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: clamp(29px, 3.3vw, 45px); line-height: 1.18; letter-spacing: -.05em; }
.resource-detail-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 16px; color: var(--detail-body); font-size: 14px; font-weight: 500; }
.resource-game-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 19px; }
.resource-game-tags span { display: inline-flex; min-height: 24px; align-items: center; padding: 0 8px; border: 1px solid var(--detail-rule); border-radius: 6px; background: var(--detail-panel); color: var(--detail-muted); font-size: 10px; font-weight: 800; white-space: nowrap; }
.resource-game-tags .resource-category-tag { border-color: var(--detail-accent); background: var(--detail-accent); color: var(--white); }
.resource-game-tags span:nth-child(2n) { background: var(--detail-tag-1); color: var(--detail-tag-ink-1); }
.resource-game-tags span:nth-child(3n) { background: var(--detail-tag-2); color: var(--detail-tag-ink-2); }
.resource-game-tags span:nth-child(5n) { background: var(--detail-tag-3); color: var(--detail-tag-ink-3); }
.resource-detail-layout { grid-template-columns: minmax(0, 1fr) 326px; gap: 64px; align-items: start; }
.resource-detail-main { min-width: 0; }
.resource-overview-card { max-width: 820px; margin-bottom: 44px; padding: 24px 26px; border: 1px solid var(--detail-rule); border-radius: var(--detail-radius); background: var(--detail-panel); box-shadow: var(--detail-shadow); }
.resource-overview-card > p { margin: 12px 0 21px; color: var(--detail-body); font-size: 14px; line-height: 1.8; }
.resource-overview-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; border-top: 1px solid var(--detail-rule); }
.resource-overview-facts > div { min-width: 0; padding: 16px 18px 0 0; }
.resource-overview-facts > div + div { padding-left: 18px; border-left: 1px solid var(--detail-rule); }
.resource-overview-facts dt { margin-bottom: 6px; color: var(--detail-muted); font-size: 10px; font-weight: 700; }
.resource-overview-facts dd { margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 12px; font-weight: 800; }
.resource-detail-copy { max-width: 780px; color: var(--detail-body); font-size: 15px; line-height: 1.85; }
.resource-detail-copy h2 { margin: 0 0 24px; padding-bottom: 14px; border-bottom: 1px solid var(--detail-rule); color: var(--ink); font-size: 25px; letter-spacing: -.045em; }
.resource-detail-copy .article-richtext > :first-child { margin-top: 0; }
.resource-detail-copy .article-richtext h3 { margin-top: 36px; color: var(--ink); font-size: 20px; letter-spacing: -.035em; }
.resource-detail-copy .article-richtext img { margin: 26px 0; border-radius: 12px; }
.resource-detail-side { position: sticky; top: 92px; }
.resource-main-widget-stack, .resource-side-widget-stack { min-width: 0; }
.resource-side-widget-stack { display: grid; gap: 14px; }
.resource-access-panel { padding: 25px; border-color: var(--ink); border-radius: var(--detail-radius); background: var(--ink); box-shadow: var(--detail-shadow); }
.resource-access-panel h2 { margin: 12px 0; font-size: 23px; }
.resource-access-panel .eyebrow { color: var(--detail-focus); }
.resource-access-panel .resource-access-title { margin: 11px 0 0; color: var(--white); font-size: 23px; }
.resource-access-plan { display: grid; grid-template-columns: minmax(0, 1fr); margin: 18px 0 17px; border-top: 1px solid var(--detail-access-rule); border-bottom: 1px solid var(--detail-access-rule); }
.resource-access-plan > div { min-width: 0; padding: 13px 0; }
.resource-access-plan > div + div { padding-left: 16px; border-left: 1px solid var(--detail-access-rule); }
.resource-access-plan span { display: block; margin-bottom: 5px; color: var(--detail-access-muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.resource-access-plan strong { display: block; color: var(--white); font-size: 16px; line-height: 1.15; letter-spacing: -.025em; }
.resource-access-plan-dual { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.resource-access-panel .resource-access-status { margin: 0; color: var(--detail-access-muted); font-size: 12px; line-height: 1.7; }
.resource-access-panel .primary-button, .resource-access-panel .member-submit { width: 100%; min-height: 44px; justify-content: center; margin-top: 10px; border-color: var(--detail-accent); border-radius: 9px; background: var(--detail-accent); color: var(--detail-accent-ink); font-size: 12px; white-space: nowrap; transition: background-color .2s var(--detail-ease), transform .2s var(--detail-ease); }
.resource-access-panel .primary-button:hover, .resource-access-panel .member-submit:hover { background: var(--detail-accent-hover); transform: translateY(-1px); }
.resource-access-panel .primary-button:active, .resource-access-panel .member-submit:active { transform: translateY(1px); }
.resource-access-panel .primary-button:focus-visible, .resource-access-panel .member-submit:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 3px; }
.resource-access-panel .primary-button:disabled, .resource-access-panel .member-submit:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.resource-access-panel .share-link-row { padding-top: 13px; }
.resource-detail-side .feedback-panel { padding: 22px; border-top-width: 1px; border-top-color: var(--detail-rule); border-radius: 14px; }
.resource-detail-side .feedback-panel h2 { margin-top: 10px; }
@media (max-width: 900px) {
    .resource-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .resource-detail-side { position: static; display: block; }
    .resource-side-widget-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .resource-side-widget-stack .feedback-panel { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .resource-detail-page { padding-top: 22px; }
    .resource-detail-header { margin: 16px 0 25px; padding-bottom: 23px; }
    .resource-detail-intro h1 { font-size: 30px; }
    .resource-detail-meta { margin-top: 13px; }
    .resource-game-tags { margin-top: 14px; }
    .resource-detail-layout { gap: 28px; }
    .resource-overview-card { margin-bottom: 32px; padding: 20px; }
    .resource-overview-facts { grid-template-columns: minmax(0, 1fr); }
    .resource-overview-facts > div { padding: 13px 0 0; }
    .resource-overview-facts > div + div { padding-left: 0; border-left: 0; }
    .resource-detail-copy { font-size: 14px; }
    .resource-detail-copy h2 { margin-bottom: 18px; font-size: 23px; }
    .resource-side-widget-stack { grid-template-columns: minmax(0, 1fr); }
    .resource-side-widget-stack .feedback-panel { grid-column: auto; }
    .resource-access-panel, .resource-detail-side .feedback-panel { padding: 20px; }
}

/* Final detail layout overrides: the card owns title, facts and tabbed reading. */
.resource-detail-page { padding: 42px 0 84px; }
.resource-detail-layout { grid-template-columns: minmax(0, 1fr) 326px; gap: 32px; }
.resource-content-card { overflow: hidden; border: 1px solid var(--detail-rule); border-radius: var(--detail-radius); background: var(--detail-panel); box-shadow: var(--detail-shadow); }
.resource-content-card .resource-detail-header { margin: 0; padding: 34px 36px 22px; border-bottom: 0; }
.resource-content-card .resource-detail-header h1 { max-width: none; min-width: 0; margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: clamp(28px, 3.1vw, 43px); line-height: 1.18; letter-spacing: -.05em; }
.resource-detail-meta { margin-top: 15px; }
.resource-tags-title { margin-top: 22px; color: var(--detail-muted); font-size: 12px; font-weight: 800; }
.resource-game-tags { margin-top: 10px; }
.resource-overview-card { max-width: none; margin: 0; padding: 25px 36px 28px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.resource-overview-card h2 { margin: 0 0 17px; color: var(--ink); font-size: 17px; letter-spacing: -.025em; }
.resource-overview-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 0; border-bottom: 1px solid var(--detail-rule); }
.resource-overview-facts > div,
.resource-overview-facts > div + div,
.resource-overview-facts > div:nth-child(4n+1) { display: flex; align-items: center; min-width: 0; gap: 10px; padding: 12px 12px 12px 0; border-left: 0; }
.resource-fact-icon { display: inline-flex; width: 40px; height: 40px; flex: 0 0 40px; align-items: center; justify-content: center; margin-top: 0; border-radius: 50%; background: color-mix(in srgb, currentColor 8%, var(--detail-panel)); color: var(--detail-accent); }
.resource-fact-icon svg { display: block; width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.resource-fact-icon-folder { color: #2563eb; }
.resource-fact-icon-building { color: #14b8a6; }
.resource-fact-icon-pin { color: #22c55e; }
.resource-fact-icon-image { color: #f59e0b; }
.resource-fact-icon-translate { color: #8b5cf6; }
.resource-fact-icon-drive { color: #ef4444; }
.resource-fact-icon-monitor { color: #3b82f6; }
.resource-fact-icon-info { color: #ef4444; }
.resource-fact-copy { min-width: 0; }
.resource-overview-facts dt { margin-bottom: 7px; font-size: 11px; }
.resource-overview-facts dd { font-size: 14px; }
.resource-overview-facts.detail-count-1 { grid-template-columns: minmax(0, 240px); }
.resource-overview-facts.detail-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.resource-overview-facts.detail-count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.resource-detail-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 36px; border-top: 0; }
.resource-detail-tabs button { min-height: 36px; padding: 0 15px; border: 1px solid var(--detail-rule); border-radius: 999px; background: var(--detail-panel-soft); color: var(--detail-muted); cursor: pointer; font-size: 12px; font-weight: 800; white-space: nowrap; transition: color .2s var(--detail-ease), border-color .2s var(--detail-ease), background-color .2s var(--detail-ease); }
.resource-detail-tabs button:hover { border-color: var(--detail-accent); color: var(--detail-accent); }
.resource-detail-tabs button[aria-selected="true"] { border-color: var(--detail-accent); background: var(--detail-accent); color: var(--detail-accent-ink); }
.resource-detail-tabs button:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 3px; }
.resource-tab-panel { padding: 22px 36px 38px; }
.resource-detail-body { padding: 16px 36px 38px; }
.resource-detail-section { padding: 0 36px 38px; }
.resource-detail-section h2 { margin: 0 0 15px; color: var(--ink); font-size: 19px; letter-spacing: -.03em; }
.resource-detail-copy { max-width: none; }
.resource-detail-copy .article-richtext { width: 100%; max-width: none; }
.resource-detail-summary { margin: 0 0 23px; padding-bottom: 21px; border-bottom: 1px solid var(--detail-rule); }
.resource-feedback-section { padding-top: 2px; }
.resource-feedback-quick .feedback-login { appearance: none; }
@media (max-width: 900px) {
    .resource-detail-page { padding-top: 30px; }
    .resource-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 26px; }
}
@media (max-width: 560px) {
    .resource-detail-page { padding: 20px 0 54px; }
    .resource-content-card .resource-detail-header, .resource-overview-card, .resource-tab-panel, .resource-detail-body, .resource-detail-section { padding-right: 20px; padding-left: 20px; }
    .resource-content-card .resource-detail-header { padding-top: 24px; padding-bottom: 23px; }
    .resource-content-card .resource-detail-header h1 { font-size: 29px; }
    .resource-overview-card { padding-top: 21px; padding-bottom: 22px; }
    .resource-overview-facts, .resource-overview-facts.detail-count-1, .resource-overview-facts.detail-count-2, .resource-overview-facts.detail-count-3 { grid-template-columns: minmax(0, 1fr); }
    .resource-overview-facts > div, .resource-overview-facts > div + div { padding: 13px 0; border-left: 0; border-top: 1px solid var(--detail-rule); }
    .resource-overview-facts > div:first-child { border-top: 0; }
    .resource-detail-tabs { padding: 0 20px; }
    .resource-detail-tabs button { flex: 1; justify-content: center; padding: 0 10px; }
    .resource-tab-panel { padding-top: 24px; padding-bottom: 28px; }
    .resource-detail-body { padding-top: 18px; padding-bottom: 28px; }
    .resource-detail-section { padding-bottom: 28px; }
    .resource-access-plan-dual { grid-template-columns: minmax(0, 1fr); }
    .resource-access-plan-dual > div + div { padding-left: 0; border-top: 1px solid var(--detail-access-rule); border-left: 0; }
}

/* Typography calibration: Chinese-first system stack, quiet labels and readable content. */
.main-nav > a, .main-nav .nav-parent-link { font-size: 14px; font-weight: 600; }
.nav-actions, .header-search input, .archive-inline-search input { font-size: 13px; }
.nav-button, .primary-button, .header-search button, .archive-inline-search button { font-size: 13px; }
.eyebrow, .site-notice-label, .footer-label, .archive-filter-head span { font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.anime-card h3, .game-card h3 { font-size: 16px; font-weight: 700; line-height: 1.42; }
.anime-card p, .game-card p { font-size: 13px; line-height: 1.7; }
.archive-row p { font-size: 14px; line-height: 1.6; }
.anime-card-tags span { font-size: 10px; font-weight: 600; }
.archive-tags span, .resource-tags span { font-size: 11px; font-weight: 600; }
.archive-row-meta, .resource-detail-meta { font-size: 14px; font-weight: 600; }
.archive-row h2 { font-size: 16px; font-weight: 700; line-height: 24px; }
.archive-results-bar, .archive-results-bar b, .archive-results-bar a { font-size: 13px; }
.resource-game-tags span { min-height: 25px; padding: 0 9px; font-size: 11px; font-weight: 700; }
.resource-overview-facts dt { font-size: 12px; font-weight: 600; letter-spacing: .02em; }
.resource-overview-facts dd { font-size: 15px; font-weight: 700; }
.resource-detail-tabs button { min-height: 38px; font-size: 14px; font-weight: 700; }
.resource-detail-copy { font-size: 16px; line-height: 1.85; }
.resource-detail-copy .article-richtext { width: 100%; max-width: none; }
.resource-detail-section h2 { font-size: 20px; font-weight: 700; }
.resource-faq-list summary, .resource-faq-list details p { font-size: 15px; }
.resource-access-panel .resource-access-status, .feedback-panel > p { font-size: 13px; }
.feedback-login, .feedback-submit { font-size: 13px; }
@media (max-width: 560px) {
    .main-nav > a, .main-nav .nav-parent-link { font-size: 13px; }
    .archive-row h2 { font-size: 15px; line-height: 1.35; }
    .resource-overview-facts dd { font-size: 14px; }
    .resource-detail-tabs button { font-size: 14px; }
    .resource-detail-copy, .resource-faq-list summary, .resource-faq-list details p { font-size: 16px; }
}

/* Tag discovery and the detail-page login prompt stay compact and content-first. */
.resource-game-tags a { display: inline-flex; min-height: 25px; align-items: center; padding: 0 9px; border: 1px solid var(--detail-rule); border-radius: 6px; background: var(--detail-panel); color: var(--detail-muted); font-size: 11px; font-weight: 700; text-decoration: none; white-space: nowrap; transition: color .18s ease, border-color .18s ease, background-color .18s ease, transform .18s ease; }
.resource-game-tags a:nth-child(2n) { background: var(--detail-tag-1); color: var(--detail-tag-ink-1); }
.resource-game-tags a:nth-child(3n) { background: var(--detail-tag-2); color: var(--detail-tag-ink-2); }
.resource-game-tags a:nth-child(5n) { background: var(--detail-tag-3); color: var(--detail-tag-ink-3); }
.resource-game-tags a:hover { border-color: var(--detail-accent); color: var(--detail-accent); transform: translateY(-1px); }
.resource-game-tags a:focus-visible, .anime-tag-cloud-list a:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 3px; }
.anime-tag-cloud { display: flex; align-items: center; gap: 22px; margin-top: 26px; padding: 17px 20px; border: 1px solid #e2e8f0; border-radius: 14px; background: rgba(255,255,255,.75); box-shadow: 0 12px 28px rgba(15,23,42,.04); }
.anime-tag-cloud-label { flex: 0 0 112px; display: grid; gap: 5px; }
.anime-tag-cloud-label .eyebrow { font-size: 10px; }
.anime-tag-cloud-label strong { color: var(--ink); font-size: 15px; font-weight: 700; }
.anime-tag-cloud-list { display: flex; flex: 1; flex-wrap: wrap; gap: 8px; min-width: 0; }
.anime-tag-cloud-list a { display: inline-flex; min-height: 30px; align-items: center; gap: 4px; padding: 0 9px; border: 1px solid #e2e8f0; border-radius: 7px; background: #f8fafc; color: #475569; font-size: 12px; font-weight: 600; text-decoration: none; transition: color .18s ease, border-color .18s ease, background-color .18s ease, transform .18s ease; }
.anime-tag-cloud-list a > span { color: var(--accent); font-weight: 800; }
.anime-tag-cloud-list a small { color: #94a3b8; font-size: 10px; font-weight: 700; }
.anime-tag-cloud-list a:hover { border-color: color-mix(in srgb, var(--accent) 48%, #fff); background: #fff; color: var(--accent); transform: translateY(-1px); }
.resource-login-modal { position: fixed; z-index: 1000; inset: 0; display: none; align-items: center; justify-content: center; padding: 20px; background: rgb(15 23 42 / 58%); }
.resource-login-modal.is-open { display: flex; }
.resource-login-dialog { position: relative; width: min(100%, 390px); padding: 28px; border: 1px solid var(--detail-rule); border-top: 4px solid var(--detail-accent); border-radius: 12px; background: var(--detail-panel); box-shadow: 0 24px 70px rgba(15,23,42,.28); }
.resource-login-dialog h2 { margin: 8px 0 5px; color: var(--ink); font-size: 24px; line-height: 1.25; }
.resource-login-dialog > p { margin: 0 0 18px; color: var(--detail-body); font-size: 13px; }
.resource-login-close { position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; border: 0; border-radius: 7px; background: transparent; color: var(--detail-muted); font-size: 23px; line-height: 1; cursor: pointer; }
.resource-login-close:hover { background: var(--detail-panel-soft); color: var(--ink); }
.resource-login-dialog label { display: block; margin-top: 13px; color: var(--ink); font-size: 12px; font-weight: 700; }
.resource-login-dialog input { display: block; width: 100%; min-height: 42px; margin-top: 7px; padding: 10px 12px; border: 1px solid var(--detail-rule); border-radius: 8px; outline: 0; background: var(--detail-panel-soft); color: var(--ink); font: inherit; font-size: 14px; }
.resource-login-dialog input:focus { border-color: var(--detail-accent); background: var(--detail-panel); }
.resource-login-error { min-height: 18px; margin-top: 12px; color: #b42318; font-size: 12px; }
.resource-login-submit { width: 100%; min-height: 44px; margin-top: 10px; border: 0; border-radius: 8px; background: var(--detail-accent); color: var(--detail-accent-ink); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.resource-login-submit:hover { filter: brightness(.96); }
.resource-login-submit:disabled { cursor: wait; opacity: .68; }
.resource-auth-switch { display: block; width: 100%; margin-top: 10px; padding: 5px; border: 0; background: transparent; color: var(--detail-accent); font: inherit; font-size: 12px; font-weight: 700; text-align: center; cursor: pointer; }
.resource-auth-switch:hover { color: var(--detail-accent-hover); text-decoration: underline; }
.resource-register-code { display: flex; gap: 8px; margin-top: 7px; }
.resource-register-code input { min-width: 0; margin-top: 0; }
.resource-register-code button { flex: 0 0 auto; min-height: 42px; padding: 0 10px; border: 1px solid var(--detail-rule); border-radius: 8px; background: var(--detail-panel-soft); color: var(--detail-accent); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.resource-register-code button:hover { border-color: var(--detail-accent); background: var(--detail-panel); }
.resource-login-close:focus-visible, .resource-login-submit:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 3px; }
@media (max-width: 560px) {
    .anime-tag-cloud { align-items: flex-start; flex-direction: column; gap: 12px; margin-top: 18px; padding: 15px; }
    .anime-tag-cloud-label { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
    .anime-tag-cloud-label .eyebrow { font-size: 9px; }
    .resource-login-dialog { padding: 24px 20px; }
}

/* Detail interactions are deliberate metadata, not oversized calls to action. */
.resource-detail-meta-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 15px; }
.resource-detail-meta-row .resource-detail-meta { margin-top: 0; }
.resource-detail-stat { min-height: 32px; display: inline-flex; align-items: center; gap: 5px; color: var(--detail-body); font-size: 14px; font-weight: 500; line-height: 1.4; white-space: nowrap; }
.resource-detail-stat svg { width: 18px; height: 18px; flex: 0 0 18px; stroke-width: 1.8; }
.resource-detail-stat b { color: inherit; font: inherit; }
.resource-detail-stat-action { padding: 0; border: 0; background: transparent; cursor: pointer; transition: color .18s var(--detail-ease); }
.resource-detail-stat-action:hover, .resource-detail-stat-action.is-active { color: var(--detail-accent); }
.resource-detail-stat-action:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 3px; border-radius: 4px; }
.resource-detail-stat-action:active { color: var(--detail-accent-hover); }
.resource-detail-stat-action:disabled { cursor: wait; opacity: .55; }
.resource-detail-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 4px; }
.resource-detail-action { display: inline-flex; min-height: 30px; align-items: center; gap: 4px; padding: 0 6px; border: 0; border-radius: 7px; background: transparent; color: var(--detail-muted); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; transition: color .18s ease, background-color .18s ease; }
.resource-detail-action svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.resource-detail-action b { min-width: 9px; color: inherit; font-size: 11px; font-weight: 700; }
.resource-detail-action:hover, .resource-detail-action.is-active { background: color-mix(in srgb, var(--detail-accent) 8%, var(--detail-panel)); color: var(--detail-accent); }
.resource-detail-action.is-active svg:first-child path:first-child { fill: currentColor; }
.resource-detail-action:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 2px; }
.resource-detail-action:disabled { cursor: wait; opacity: .55; }

/* Detail support components share one calm, full-width visual language. */
#resource-tab-faq.resource-tab-panel, #resource-tab-feedback.resource-tab-panel { padding-top: 16px; }
.resource-support-intro, .feedback-intro { display: flex; width: 100%; align-items: flex-start; gap: 12px; padding: 15px 16px; border: 1px solid var(--detail-rule); border-radius: 12px; background: var(--detail-panel-soft); }
.resource-support-intro-icon, .feedback-intro-icon { display: inline-flex; width: 34px; height: 34px; flex: 0 0 34px; align-items: center; justify-content: center; border-radius: 9px; background: color-mix(in srgb, var(--detail-accent) 10%, var(--detail-panel)); color: var(--detail-accent); }
.resource-support-intro-icon svg, .feedback-intro-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.resource-support-intro strong, .feedback-intro strong { display: block; color: var(--ink); font-size: 14px; line-height: 1.4; }
.resource-support-intro p, .resource-feedback-panel .feedback-intro p { margin: 3px 0 0; color: var(--detail-muted); font-size: 12px; line-height: 1.55; }
.feedback-quick-form { display: grid; gap: 13px; margin-top: 14px; }
.feedback-presets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 0; padding: 0; border: 0; }
.feedback-panel .feedback-preset { position: relative; display: block; margin: 0; cursor: pointer; }
.feedback-preset input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.feedback-preset-body { display: flex; min-height: 78px; align-items: flex-start; gap: 9px; padding: 12px; border: 1px solid var(--detail-rule); border-radius: 10px; background: var(--detail-panel); color: var(--detail-body); transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.feedback-preset-body > svg { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 1px; fill: none; stroke: var(--detail-muted); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.feedback-preset-body > span { min-width: 0; }
.feedback-preset-body strong, .feedback-preset-body small { display: block; }
.feedback-preset-body strong { color: var(--ink); font-size: 12px; line-height: 1.4; }
.feedback-preset-body small { margin-top: 4px; color: var(--detail-muted); font-size: 10px; font-weight: 500; line-height: 1.45; }
.feedback-preset:hover .feedback-preset-body { border-color: color-mix(in srgb, var(--detail-accent) 42%, var(--detail-rule)); transform: translateY(-1px); }
.feedback-preset input:checked + .feedback-preset-body { border-color: var(--detail-accent); background: color-mix(in srgb, var(--detail-accent) 7%, var(--detail-panel)); box-shadow: inset 0 0 0 1px var(--detail-accent); }
.feedback-preset input:checked + .feedback-preset-body > svg, .feedback-preset input:checked + .feedback-preset-body strong { color: var(--detail-accent); stroke: var(--detail-accent); }
.feedback-preset input:focus-visible + .feedback-preset-body { outline: 3px solid var(--detail-focus); outline-offset: 3px; }
.feedback-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 13px; border-top: 1px solid var(--detail-rule); }
.feedback-actions > span { color: var(--detail-muted); font-size: 11px; line-height: 1.5; }
.feedback-actions .feedback-submit { width: auto; min-width: 112px; min-height: 38px; justify-content: center; margin: 0; padding: 0 15px; background: var(--detail-accent); }
.feedback-actions .feedback-submit:hover { background: var(--detail-accent-hover); }
.feedback-actions .feedback-submit:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 3px; }
.feedback-actions .feedback-submit:disabled { cursor: wait; opacity: .6; }
.member-filter-tabs { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.member-filter-tabs a { min-height: 34px; display: inline-flex; align-items: center; padding: 0 13px; border-radius: 7px; color: var(--ink-soft); font-size: 13px; font-weight: 700; text-decoration: none; }
.member-filter-tabs a.is-active { background: var(--accent); color: #fff; }
.member-interactions .member-filter-tabs a { gap: 7px; min-height: 44px; }
.member-interactions-heading h1 { margin: 0 0 8px; color: var(--ink); font-size: 26px; line-height: 1.3; }
.member-interactions-heading p { color: var(--ink-soft); font-size: 13px; }
.member-interactions .mobile-icon { width: 18px; height: 18px; flex: 0 0 auto; }
.member-interaction-link { display: grid; gap: 10px; min-width: 0; width: 100%; padding: 18px 20px; color: inherit; text-decoration: none; }
.member-interaction-empty-icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin: 0 auto 16px; border: 1px solid var(--line); border-radius: 50%; color: var(--accent); }
.member-interaction-empty-icon .mobile-icon { width: 26px; height: 26px; }
.member-interactions a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.member-interaction-list { display: grid; gap: 12px; margin-top: 0; }
.member-interaction-list > article { display: grid; min-width: 0; padding: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--white); }
.member-interaction-list .eyebrow { color: var(--accent); font-size: 10px; }
.member-interaction-list h2 { margin: 0; color: var(--ink); font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
.member-interaction-list h2 a { color: var(--ink); text-decoration: none; }
.member-interaction-list h2 a:hover { color: var(--accent); }
.member-interaction-list p { max-width: 690px; margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.7; }
.member-interaction-meta { display: block; color: var(--ink-soft); font-size: 12px; text-align: left; }
.member-interaction-meta a, .member-interaction-empty a { color: var(--accent); font-weight: 700; text-decoration: none; }
.member-interaction-empty { padding: 42px 20px; border: 1px dashed var(--line); border-radius: 14px; color: var(--ink-soft); text-align: center; }
.member-interaction-empty strong { color: var(--ink); font-size: 17px; }
.member-interaction-empty p { margin: 9px 0 13px; font-size: 13px; }

/* Invitation entry keeps the existing member-center shell while isolating
 * reward data and its audit-friendly records from the rest of the center. */
.member-invite-page .member-center-content { display: grid; gap: 18px; }
.member-invite-heading { padding: 4px 2px 2px; }
.member-invite-heading h1 { margin: 8px 0 6px; color: var(--ink); font-size: clamp(30px, 3vw, 42px); letter-spacing: -.05em; }
.member-invite-heading p { max-width: 62ch; margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.7; }
.member-invite-link-card, .member-invite-progress, .member-invite-rule, .member-invite-records { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.member-invite-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.member-invite-card-heading h2 { margin: 7px 0 0; color: var(--ink); font-size: 21px; letter-spacing: -.035em; }
.member-invite-uid, .member-invite-record-state { display: inline-flex; min-height: 28px; align-items: center; padding: 0 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.member-invite-copy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 16px; }
.member-invite-copy-row input { min-width: 0; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink); font-size: 12px; }
.member-invite-copy-row button { min-width: 108px; min-height: 44px; padding: 0 15px; border: 1px solid var(--accent); border-radius: 8px; background: var(--accent); color: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }
.member-invite-copy-row button:hover, .member-invite-copy-row button:focus-visible { background: var(--accent-strong); }
.member-invite-copy-row button:disabled { background: var(--paper); border-color: var(--line); color: var(--ink-soft); cursor: not-allowed; }
.member-invite-copy-row :is(button, input):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.member-invite-copy-row button:active:not(:disabled) { transform: translateY(1px); }
.member-invite-qualification-note { margin: 6px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }
.member-invite-copy-status { min-height: 1.6em; margin: 8px 0 0; color: var(--ink-soft); font-size: 11px; }
.member-invite-copy-status.is-success { color: #15803d; }
.member-invite-copy-status.is-error { color: #b91c1c; }
.member-invite-metric-grid, .member-invite-financial-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.member-invite-metric-grid article, .member-invite-financial-grid article { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.member-invite-metric-grid span, .member-invite-financial-grid span { display: block; color: var(--ink-soft); font-size: 11px; font-weight: 700; }
.member-invite-metric-grid strong, .member-invite-financial-grid strong { display: block; min-height: 34px; margin-top: 10px; color: var(--ink); font-size: 22px; letter-spacing: -.04em; overflow-wrap: anywhere; }
.member-invite-metric-grid small, .member-invite-financial-grid small { display: block; margin-top: 6px; color: var(--ink-soft); font-size: 10px; line-height: 1.55; }
.member-invite-financial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.member-invite-financial-grid.has-coin-balance { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.member-invite-financial-grid .is-coin { border-color: #bbdec8; background: #f1fbf4; }
.member-invite-financial-grid .is-coin strong { color: #166534; }
.member-invite-financial-grid .is-coin strong small { display: inline; margin-left: 4px; color: #3f7854; font-size: 12px; letter-spacing: 0; }
.member-invite-progress { display: grid; gap: 14px; }
.member-invite-progress h2, .member-invite-rule h2, .member-invite-records h2 { margin: 6px 0 0; color: var(--ink); font-size: 20px; letter-spacing: -.035em; }
.member-invite-empty-state { padding: 18px; border: 1px dashed var(--line); border-radius: 10px; background: var(--paper); }
.member-invite-empty-state strong { color: var(--ink); font-size: 14px; }
.member-invite-empty-state p { margin: 5px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }
.member-invite-progress-state { padding: 18px; border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--line)); border-radius: 10px; background: color-mix(in srgb, var(--accent) 5%, var(--paper)); }
.member-invite-progress-state strong { color: var(--ink); font-size: 15px; }
.member-invite-progress-state p { margin: 6px 0 12px; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.member-invite-progress-bar { height: 8px; overflow: hidden; border-radius: 999px; background: var(--line); }
.member-invite-progress-bar i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.member-invite-rule { background: #f8fbff; }
.member-invite-rule ul { display: grid; gap: 8px; margin: 15px 0 0; padding-left: 19px; color: var(--ink-soft); font-size: 12px; line-height: 1.7; }
.member-invite-rule-note { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 11px; line-height: 1.65; }
.member-invite-record-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.member-invite-record-grid article { min-width: 0; min-height: 122px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.member-invite-record-grid h3 { margin: 0; color: var(--ink); font-size: 14px; }
.member-invite-record-grid p { margin: 8px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.65; }
.member-invite-record-grid ul { display: grid; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.member-invite-record-grid li { display: grid; gap: 2px; min-width: 0; }
.member-invite-record-grid li strong { min-height: 0; margin: 0; color: var(--ink); font-size: 12px; letter-spacing: 0; }
.member-invite-record-grid li small { margin: 0; color: var(--ink-soft); font-size: 10px; line-height: 1.45; }
@media (min-width: 768px) {
    .member-invite-page .member-invite-heading { display: none; }
}
@media (max-width: 960px) {
    .member-invite-metric-grid, .member-invite-financial-grid.has-coin-balance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .member-invite-record-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .member-invite-financial-grid, .member-invite-financial-grid.has-coin-balance { grid-template-columns: 1fr; }
    .member-invite-card-heading { flex-wrap: wrap; }
}

/* Resource tags use quiet game-like color cues without needing per-tag configuration. */
.resource-content-card .resource-detail-header { padding-bottom: 12px; }
.resource-overview-card { padding-top: 13px; }
.resource-game-tags { gap: 8px; margin-top: 12px; }
.resource-game-tags a { min-height: 28px; padding: 0 10px; border-radius: 7px; font-size: 14px; }
.resource-game-tags a:nth-child(2n) { border-color: #ddd6fe; }
.resource-game-tags a:nth-child(3n) { border-color: #a5f3fc; }
.resource-game-tags a:nth-child(5n) { border-color: #fed7aa; }

/* The access card is an entry ticket, not a dark e-commerce purchase wall. */
.resource-access-panel { padding: 23px; border: 1px solid color-mix(in srgb, var(--detail-accent) 18%, var(--detail-rule)); border-radius: 16px; background: linear-gradient(145deg, #fff 0%, color-mix(in srgb, var(--detail-accent) 5%, #fff) 100%); box-shadow: 0 14px 30px color-mix(in srgb, var(--detail-accent) 10%, transparent); }
.resource-access-panel .resource-access-title { margin: 0; color: var(--ink); font-size: 21px; letter-spacing: -.035em; }
.resource-access-plan { margin: 16px 0 14px; border: 0; gap: 9px; }
.resource-access-plan > div { padding: 13px 14px; border: 1px solid color-mix(in srgb, var(--detail-accent) 13%, var(--detail-rule)); border-radius: 10px; background: rgba(255,255,255,.9); }
.resource-access-plan > div + div { padding-left: 14px; border-left: 1px solid color-mix(in srgb, var(--detail-accent) 13%, var(--detail-rule)); }
.resource-access-plan span { margin-bottom: 5px; color: var(--detail-muted); font-size: 11px; font-weight: 700; letter-spacing: .04em; }
.resource-access-plan strong { color: var(--detail-accent); font-size: 17px; letter-spacing: -.025em; }
.resource-access-plan-dual { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.resource-access-plan-dual > div:last-child strong { color: #0f766e; }
.resource-access-panel .resource-access-status { margin: 0; color: #667085; font-size: 13px; line-height: 1.65; }
.resource-access-panel .primary-button, .resource-access-panel .member-submit { min-height: 44px; margin-top: 15px; border: 1px solid var(--detail-accent); border-radius: 9px; background: var(--detail-accent); color: #fff; font-size: 13px; box-shadow: 0 8px 16px color-mix(in srgb, var(--detail-accent) 18%, transparent); }
.resource-access-panel .primary-button:hover, .resource-access-panel .member-submit:hover { background: var(--detail-accent-hover); }
.resource-access-panel .share-link-row { padding-top: 12px; border-top: 1px solid var(--detail-rule); }
.resource-access-panel .share-link-row > span { color: #667085; }
.resource-access-panel .unlock-richtext { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--detail-rule); color: var(--detail-body); }
.resource-detail-side .feedback-panel { padding: 22px; border: 1px solid #dfe3f1; border-radius: 16px; background: #fff; box-shadow: none; }
.resource-detail-side .feedback-panel h2 { position: relative; margin: 0 0 16px; padding-bottom: 6px; color: var(--ink); font-size: 18px; letter-spacing: -.03em; }
.resource-detail-side .feedback-panel h2::after { position: absolute; bottom: 0; left: 0; width: 38px; height: 3px; border-radius: 999px; background: linear-gradient(90deg, var(--detail-accent), color-mix(in srgb, var(--detail-accent) 28%, #fff)); content: ''; }
.resource-detail-side .feedback-panel p { color: var(--detail-body); }
.resource-detail-side .feedback-panel .feedback-login { min-height: 42px; border: 1px solid color-mix(in srgb, var(--detail-accent) 24%, var(--detail-rule)); border-radius: 9px; background: color-mix(in srgb, var(--detail-accent) 7%, #fff); color: var(--detail-accent); font-weight: 700; }
.resource-detail-side .feedback-panel .feedback-login:hover { border-color: var(--detail-accent); background: var(--detail-accent); color: #fff; }

/* Payment history is a readable record, not a compressed admin table. */
.member-orders-section { width: 100%; padding: 0; }
.member-orders-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 2px 0 18px; border-bottom: 1px solid var(--line); }
.member-orders-head h1 { margin: 0; color: var(--ink); font-size: clamp(25px, 3vw, 34px); letter-spacing: -.055em; line-height: 1.1; }
.member-orders-browse { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--accent); font-size: 12px; font-weight: 800; white-space: nowrap; }
.member-orders-browse:hover { border-color: var(--accent); background: #eff6ff; }
.member-orders-browse:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.member-orders-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 0 10px; color: var(--ink-soft); font-size: 11px; }
.member-orders-summary > span { white-space: nowrap; }
.member-order-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.member-order-card { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(100px, .8fr) minmax(110px, .8fr) minmax(130px, .95fr) auto auto; align-items: center; gap: 14px; min-height: 72px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); transition: border-color .18s var(--detail-ease), transform .18s var(--detail-ease), box-shadow .18s var(--detail-ease); }
@media (hover: hover) and (pointer: fine) { .member-order-card:hover { border-color: #c7d2fe; box-shadow: 0 8px 20px rgba(49, 46, 129, .06); transform: translateY(-1px); } }
.member-order-card-head { display: contents; }
.member-order-product { display: flex; min-width: 0; align-items: flex-start; grid-column: 1; gap: 12px; }
.member-order-icon { display: inline-flex; width: 38px; height: 38px; flex: 0 0 38px; align-items: center; justify-content: center; border-radius: 10px; background: #eef2ff; color: var(--accent); }
.member-order-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.member-order-type { display: block; color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .04em; }
.member-order-product > div { display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0 8px; }
.member-order-product h2 { min-width: 0; max-width: 46ch; margin: 0; overflow: hidden; color: var(--ink); font-size: 15px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.member-order-product code { overflow: hidden; color: var(--ink-soft); font-family: var(--font-sans); font-size: 10px; letter-spacing: .02em; text-overflow: ellipsis; white-space: nowrap; }
.member-order-status { display: inline-flex; min-height: 27px; align-items: center; justify-self: start; grid-column: 5; padding: 0 9px; border-radius: 999px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.member-order-status.status-0 { background: #fef3c7; color: #92400e; }
.member-order-status.status-1 { background: #dcfce7; color: #166534; }
.member-order-status.status-2 { background: #e2e8f0; color: #475569; }
.member-order-status.status-3 { background: #fee2e2; color: #991b1b; }
.member-order-meta { display: contents; }
.member-order-meta > div { display: grid; gap: 3px; min-width: 0; }
.member-order-meta > div:nth-child(1) { grid-column: 2; }
.member-order-meta > div:nth-child(2) { grid-column: 3; }
.member-order-meta > div:nth-child(3) { grid-column: 4; }
.member-order-meta span { color: var(--ink-soft); font-size: 10px; }
.member-order-meta strong { color: var(--accent); font-size: 20px; letter-spacing: -.035em; line-height: 1.2; }
.member-order-meta strong small { margin-right: 2px; color: var(--accent); font-size: 12px; letter-spacing: 0; }
.member-order-channel-icon { display: inline-flex; width: 22px; height: 22px; flex: 0 0 22px; align-items: center; justify-content: center; border-radius: 7px; }
.member-order-channel-icon.resource-payment-icon { font-family: "Resource Payment Brands"; font-size: 18px; font-weight: 400; line-height: 1; }
.member-order-channel-icon svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.member-order-channel-icon.is-wechat { background: #e8fbf0; color: #07c160; }
.member-order-channel-icon.is-alipay { background: #eaf3ff; color: #1677ff; }
.member-order-channel-icon.is-wallet { background: #fff7e6; color: #b77900; }
.member-order-channel-icon.is-other { background: #f1f5f9; color: var(--ink-soft); }
.member-order-meta b, .member-order-meta time { overflow: hidden; color: var(--ink); font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.member-order-note { display: none; align-items: flex-start; gap: 10px; color: var(--ink-soft); font-size: 11px; line-height: 1.6; }
.member-order-note > span { flex: 0 0 auto; color: var(--ink); font-weight: 800; }
.member-order-note p { margin: 0; overflow-wrap: anywhere; }
.member-order-card-foot { display: flex; min-height: 38px; align-items: center; justify-content: flex-end; grid-column: 6; gap: 12px; }
.member-order-card-foot form { margin: 0; }
.member-order-pay { display: inline-flex; min-height: 38px; align-items: center; gap: 9px; padding: 0 14px; border: 1px solid var(--accent); border-radius: 999px; background: var(--accent); color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; white-space: nowrap; }
.member-order-pay:hover { border-color: var(--accent-strong); background: var(--accent-strong); }
.member-order-pay:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.member-order-pay:active { transform: translateY(1px); }
.member-order-close { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--ink-soft); cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; white-space: nowrap; }
.member-order-close:hover { border-color: #cbd5e1; background: var(--paper); color: var(--ink); }
.member-order-close:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.member-order-close:active { transform: translateY(1px); }
.member-order-query { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; white-space: nowrap; }
.member-order-query:hover { border-color: var(--accent); color: var(--accent); }
.member-order-query:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.member-order-query:active { transform: translateY(1px); }
.member-order-pay.is-loading, .member-order-query.is-loading, .member-order-close.is-loading { opacity: .55; cursor: wait; }
.member-order-unavailable, .member-order-complete { color: var(--ink-soft); font-size: 11px; }
.member-order-complete { color: #166534; font-weight: 700; }
.member-payment-result { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 16px; padding: 13px 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); color: var(--ink); font-size: 13px; line-height: 1.5; }
.member-payment-result strong { color: #b42318; }
.member-payment-result span { color: var(--ink-soft); }
.member-payment-result a { margin-left: auto; color: var(--accent); font-weight: 800; white-space: nowrap; }
.member-payment-result a:hover { text-decoration: underline; }
.member-order-note { grid-column: 1 / -1; }
.member-order-empty { display: grid; justify-items: center; gap: 8px; padding: 58px 24px; border: 1px dashed var(--line); border-radius: 12px; background: var(--paper); text-align: center; }
.member-order-empty-icon { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 12px; background: #eef2ff; color: var(--accent); }
.member-order-empty-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.member-order-empty strong { color: var(--ink); font-size: 16px; }
.member-order-empty p { max-width: 34ch; margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.member-order-empty a { margin-top: 5px; color: var(--accent); font-size: 12px; font-weight: 800; }
@media (max-width: 560px) {
    .member-order-card { grid-template-columns: minmax(0, 1fr) auto; }
    .member-order-product { grid-column: 1; }
    .member-order-status { grid-column: 2; grid-row: 1; }
    .member-order-meta { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
    .member-order-meta > div:nth-child(1), .member-order-meta > div:nth-child(2), .member-order-meta > div:nth-child(3) { grid-column: auto; }
    .member-order-meta > div + div { padding-left: 12px; border-left: 1px solid var(--line); }
    .member-order-card-foot { grid-column: 2; }
}
@media (max-width: 560px) {
    .member-orders-head { align-items: flex-start; flex-direction: column; gap: 16px; padding-bottom: 20px; }
    .member-orders-browse { width: 100%; justify-content: center; }
    .member-orders-summary { align-items: flex-start; flex-direction: column; gap: 5px; padding-top: 18px; }
    .member-order-card { gap: 15px; padding: 16px; }
    .member-order-card-head { gap: 10px; }
    .member-order-product { gap: 9px; }
    .member-order-icon { width: 34px; height: 34px; flex-basis: 34px; }
    .member-order-product > div { display: block; }
    .member-order-product h2 { font-size: 14px; white-space: normal; }
    .member-order-product code { display: block; margin-top: 4px; }
    .member-order-note { display: flex; }
    .member-order-status { min-height: 25px; padding: 0 7px; font-size: 10px; }
    .member-order-meta { grid-template-columns: 1fr 1fr; gap: 12px; padding: 13px 0; }
    .member-order-meta > div + div { padding-left: 12px; }
    .member-order-meta > div:nth-child(3) { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid var(--line); }
    .member-order-card-foot { grid-column: 1 / -1; justify-content: stretch; flex-wrap: wrap; }
    .member-order-card-foot form, .member-order-pay, .member-order-close { width: 100%; }
    .member-order-pay { justify-content: center; }
}
@media (max-width: 560px) {
    #resource-tab-faq.resource-tab-panel, #resource-tab-feedback.resource-tab-panel { padding-top: 18px; }
    .resource-detail-meta-row { align-items: flex-start; flex-direction: column; gap: 8px; }
    .resource-detail-meta { gap: 6px 12px; }
    .resource-detail-stat { min-height: 28px; font-size: 12px; }
    .resource-detail-stat svg { width: 16px; height: 16px; flex-basis: 16px; }
    .resource-detail-actions { margin-left: -6px; }
    .feedback-presets { grid-template-columns: minmax(0, 1fr); }
    .feedback-preset-body { min-height: 68px; }
    .feedback-actions { align-items: stretch; flex-direction: column; gap: 10px; }
    .feedback-actions .feedback-submit { width: 100%; }
    .resource-faq-list summary { min-height: 60px; grid-template-columns: 26px minmax(0, 1fr) 26px; gap: 10px; padding: 10px 11px; }
    .resource-faq-number, .resource-faq-toggle { width: 26px; height: 26px; }
    .resource-faq-answer { margin-right: 12px; margin-left: 47px; }
    .member-interaction-list > article { display: grid; padding: 0; }
    .member-interaction-meta { text-align: left; }
    .resource-content-card .resource-detail-header { padding-bottom: 12px; }
    .resource-overview-card { padding-top: 13px; }
    .resource-game-tags a { min-height: 28px; font-size: 14px; }
    .resource-access-panel { padding: 20px; }
    .resource-access-plan-dual { grid-template-columns: minmax(0, 1fr); }
}

/* Hallmark · component: resource access card · genre: utilitarian
 * theme: studied-DNA (source: user Ripro access-card screenshot)
 * Dark resource price above a warm, open membership rate strip.
 * states: default · hover · focus · active · disabled · loading · error · success
 * pre-emit critique: P4 H5 E4 S5 R5 V4 · contrast: pass (40–41)
 */
.resource-access-panel.resource-access-ticket {
    --ticket-surface: var(--white);
    --ticket-rule: var(--line);
    --ticket-head: #393b3d;
    --ticket-head-ink: var(--white);
    --ticket-head-muted: #e3dfec;
    --ticket-tier-surface: #fffbf2;
    --ticket-tier-name: #765b2a;
    --ticket-ribbon-dark: #26282a;
    --ticket-ribbon-light: #626467;
    --ticket-muted: var(--ink-soft);
    --ticket-price: #ef4444;
    --ticket-price-unit: #c52e2e;
    --ticket-discount: var(--accent);
    --ticket-action: var(--member-plan-badge-bg);
    --ticket-action-hover: #aa2020;
    --ticket-action-ink: var(--white);
    --ticket-action-shadow: color-mix(in srgb, var(--ticket-action) 24%, transparent);
    --ticket-action-shadow-hover: color-mix(in srgb, var(--ticket-action) 34%, transparent);
    --ticket-action-shade: color-mix(in srgb, var(--ink) 12%, transparent);
    --ticket-action-sheen: color-mix(in srgb, var(--white) 9%, transparent);
    --ticket-focus: var(--ink);
    --ticket-success: var(--member-checkout-success-ink);
    --ticket-error: var(--member-checkout-error);
    padding: 0; overflow: hidden; border: 1px solid var(--ticket-rule); border-radius: 12px;
    background: var(--ticket-surface); box-shadow: var(--detail-shadow);
}
.resource-access-ticket .resource-ticket-head { display: flex; min-height: 94px; align-items: center; justify-content: center; padding: 22px 40px; border-radius: 0; background: var(--ticket-head); color: var(--ticket-head-ink); }
.resource-ticket-head::after { position: absolute; z-index: 1; bottom: -9px; left: 50%; width: 18px; height: 18px; background: var(--ticket-head); content: ''; transform: translateX(-50%) rotate(45deg); }
.resource-ticket-ribbon { position: absolute; top: 14px; right: -26px; width: 100px; padding: 5px 0; background: linear-gradient(var(--ticket-ribbon-light), var(--ticket-ribbon-dark) 62%); color: var(--ticket-head-ink); font-size: 13px; line-height: 1.3; text-align: center; transform: rotate(45deg); pointer-events: none; }
.resource-access-ticket .resource-ticket-head strong { min-width: 0; max-width: 100%; flex-wrap: wrap; justify-content: center; color: var(--ticket-head-ink); font-size: 36px; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.resource-ticket-coin { width: 24px; height: 24px; margin-right: 2px; fill: currentColor; align-self: center; flex: 0 0 24px; }
.resource-access-ticket .resource-ticket-head strong small { color: var(--ticket-head-ink); font-size: 18px; font-weight: 400; }
.resource-access-ticket .resource-ticket-perks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 0; margin: 0; padding: 22px 16px 20px; background: var(--ticket-tier-surface); }
.resource-access-ticket .resource-ticket-perks.is-single-tier { grid-template-columns: minmax(0, 1fr); padding-right: 0; padding-left: 0; }
.resource-ticket-perk { position: relative; isolation: isolate; display: grid; min-width: 0; grid-template-rows: 38px 36px 22px; align-items: start; gap: 2px; padding: 2px 17px; text-align: center; }
.resource-ticket-perks.is-single-tier .resource-ticket-perk { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 14px; padding: 4px 22px; text-align: center; }
.resource-ticket-perks.is-double-tier .resource-ticket-perk:nth-child(even)::after { position: absolute; top: 22px; bottom: 22px; left: 0; width: 1px; background: #ead9b8; content: ''; pointer-events: none; }
.resource-ticket-perk dt, .resource-ticket-perk dd { min-width: 0; max-width: 100%; margin: 0; }
.resource-ticket-tier-name { display: flex; height: 38px; align-items: center; justify-content: center; color: var(--ticket-tier-name); font-size: 14px; font-weight: 400; line-height: 1.4; overflow: visible; }
.resource-ticket-perks.is-single-tier .resource-ticket-tier-name { height: auto; }
.resource-ticket-tier-label { display: inline-flex; min-width: 0; max-width: 100%; min-height: 28px; align-items: center; justify-content: center; gap: 5px; padding: 3px 11px; border: 1px solid color-mix(in srgb, var(--resource-tier-color) 58%, white); border-radius: 999px; background: linear-gradient(180deg, color-mix(in srgb, var(--resource-tier-color) 7%, white), color-mix(in srgb, var(--resource-tier-color) 21%, white)); box-shadow: 0 2px 4px color-mix(in srgb, var(--resource-tier-color) 12%, transparent); color: color-mix(in srgb, var(--resource-tier-color) 74%, #3f2c19); font-size: 12px; font-weight: 800; line-height: 1.15; white-space: nowrap; }
.resource-ticket-tier-label > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.resource-ticket-tier-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: currentColor; opacity: .68; }
.resource-ticket-tier-benefit { display: flex; min-height: 36px; align-items: center; justify-content: center; gap: 6px; margin-top: 6px; }
.resource-ticket-perks.is-single-tier .resource-ticket-tier-benefit { min-height: 36px; margin-top: 0; }
.resource-ticket-tier-amount { display: inline-flex; min-width: 0; align-items: center; gap: 2px; white-space: nowrap; }
.resource-access-ticket .resource-ticket-perk strong { margin: 0; color: #c81e1e; font-size: clamp(20px, 6.2vw, 24px); font-weight: 900; line-height: 1; letter-spacing: .01em; overflow-wrap: anywhere; }
.resource-ticket-perk[data-access-mode="deny"] .resource-ticket-tier-benefit { align-items: center; }
.resource-ticket-perk[data-access-mode="deny"] .resource-ticket-tier-amount { transform: none; }
.resource-ticket-perk[data-access-mode="deny"] strong { color: var(--ticket-muted); font-size: 14px; }
.resource-access-ticket .resource-ticket-perks small { color: #c81e1e; font-size: 12px; line-height: 1; }
.resource-ticket-tier-badge { position: relative; display: inline-block; min-width: 0; max-width: 100%; padding: 8px 14px 0 0; }
.resource-ticket-tier-discount { position: absolute; top: 0; right: 0; max-width: 80px; overflow: hidden; padding: 2px 7px; border-radius: 99px; background: color-mix(in srgb, var(--resource-tier-color) 72%, #3f2c19); box-shadow: 0 2px 6px color-mix(in srgb, var(--resource-tier-color) 45%, transparent); color: #fff; font-size: 10px; font-weight: 800; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; transform: rotate(6deg); }
.resource-ticket-tier-note { min-height: 22px; margin-top: 0; overflow: hidden; color: #a08c64; font-size: 11px; line-height: 1.4; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.resource-ticket-perks.is-single-tier .resource-ticket-tier-note { flex-basis: 100%; min-height: 0; text-align: center; white-space: normal; }
.resource-access-ticket .resource-ticket-perks.is-triple-tier { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.resource-ticket-perks.is-triple-tier .resource-ticket-perk { padding-right: 6px; padding-left: 6px; }
.resource-ticket-perks.is-triple-tier .resource-ticket-perk:not(:first-child)::after { position: absolute; top: 22px; bottom: 22px; left: 0; width: 1px; background: #ead9b8; content: ''; pointer-events: none; }
.resource-ticket-perks.is-triple-tier .resource-ticket-tier-label { font-size: 11px; }
.resource-ticket-perks.is-triple-tier .resource-ticket-tier-note { font-size: 10px; }
.resource-access-ticket .resource-ticket-perks.is-triple-tier .resource-ticket-perk strong { font-size: clamp(18px, 5.4vw, 22px); }
.resource-access-ticket .resource-ticket-perks.is-multi-tier { position: relative; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; animation: resource-tier-nudge 1.6s ease .4s; }
.resource-access-ticket .resource-ticket-perks.is-multi-tier::-webkit-scrollbar { display: none; }
.resource-ticket-perks.is-multi-tier .resource-ticket-perk { flex: 0 0 34%; scroll-snap-align: start; }
.resource-ticket-perks.is-multi-tier .resource-ticket-perk:not(:first-child)::after { position: absolute; top: 22px; bottom: 22px; left: 0; width: 1px; background: #ead9b8; content: ''; pointer-events: none; }
.resource-ticket-scroll-hint { position: sticky; right: 0; display: flex; flex: 0 0 44px; align-items: center; justify-content: flex-end; align-self: stretch; padding-right: 6px; background: linear-gradient(90deg, transparent, var(--ticket-tier-surface) 70%); pointer-events: none; }
.resource-ticket-scroll-hint i { display: flex; width: 22px; height: 22px; align-items: center; justify-content: center; border-radius: 50%; background: var(--ticket-head); color: #fff; font-size: 12px; font-style: normal; animation: resource-tier-nudge 1.6s ease .4s; }
@keyframes resource-tier-nudge { 0% { transform: translateX(0); } 30% { transform: translateX(-26px); } 65%, 100% { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .resource-ticket-perks.is-multi-tier, .resource-ticket-scroll-hint i { animation: none; } }
/* Desktop-only comparison feedback: the tier card remains static and non-interactive. */
@media (hover: hover) and (pointer: fine) {
    .resource-ticket-perk { transition: background-color .2s ease, transform .2s ease; }
    .resource-ticket-perk:hover { background-color: #fff3d9; }
    .resource-ticket-perks.is-single-tier .resource-ticket-perk { transition: none; }
    .resource-ticket-perks.is-single-tier .resource-ticket-perk:hover { background-color: transparent; }
    .resource-ticket-perks.is-single-tier { transition: background-color .2s ease; }
    .resource-ticket-perks.is-single-tier:hover { background-color: #fff3d9; }
    .resource-ticket-tier-label,
    .resource-access-ticket .resource-ticket-perk strong { transform-origin: center; transition: transform .2s ease, color .2s ease; }
    .resource-ticket-perk:hover .resource-ticket-tier-label { transform: translateY(-2px); }
    .resource-ticket-perk:not([data-access-mode="deny"]):hover strong { color: #d62d2d; transform: scale(1.05); }
    .resource-ticket-perks.is-single-tier:hover .resource-ticket-tier-label { transform: translateY(-2px); }
    .resource-ticket-perks.is-single-tier:hover .resource-ticket-perk:not([data-access-mode="deny"]) strong { color: #d62d2d; transform: scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
    .resource-ticket-perk,
    .resource-ticket-tier-label,
    .resource-access-ticket .resource-ticket-perk strong { transition: none; }
    .resource-ticket-perk:hover .resource-ticket-tier-label,
    .resource-ticket-perk:hover strong,
    .resource-ticket-perks.is-single-tier:hover .resource-ticket-tier-label,
    .resource-ticket-perks.is-single-tier:hover strong { transform: none; }
}
@media (max-width: 560px) {
    .resource-ticket-perks.is-single-tier .resource-ticket-perk { column-gap: 8px; padding-right: 16px; padding-left: 16px; }
    .resource-ticket-perks.is-single-tier .resource-ticket-tier-label { padding-right: 9px; padding-left: 9px; }
    .resource-ticket-perks.is-single-tier .resource-ticket-tier-note { font-size: 10px; }
    .resource-ticket-perks.is-triple-tier .resource-ticket-perk { padding-right: 4px; padding-left: 4px; }
    .resource-ticket-perks.is-triple-tier .resource-ticket-tier-label { font-size: 10px; padding-right: 8px; padding-left: 8px; }
    .resource-ticket-perks.is-multi-tier .resource-ticket-perk { flex-basis: 44%; }
}
.resource-access-ticket .resource-ticket-note { padding: 15px 18px 0; color: #7c7581; font-size: 12px; }
.resource-access-ticket .resource-access-status { padding: 17px 18px 0; color: var(--ticket-muted); font-size: 12px; line-height: 1.65; }
.resource-access-ticket .resource-ticket-action { position: relative; width: calc(100% - 32px); min-height: 46px; margin: 16px; overflow: hidden; border-radius: 9px; background-color: var(--ticket-action); background-image: linear-gradient(135deg, transparent, var(--ticket-action-shade)); color: var(--ticket-action-ink); box-shadow: 0 4px 14px var(--ticket-action-shadow); font-size: 14px; white-space: nowrap; transition: background-color .2s var(--ease-in-out), transform .2s var(--ease-in-out), box-shadow .2s var(--ease-in-out); }
.resource-access-ticket .resource-ticket-action::after { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, transparent, var(--ticket-action-sheen), transparent); content: ''; transform: translateX(-110%); pointer-events: none; }
@media (hover: hover) {
    .resource-access-ticket .resource-ticket-action:hover:not(:disabled) { background-color: var(--ticket-action-hover); color: var(--ticket-action-ink); box-shadow: 0 7px 22px var(--ticket-action-shadow-hover); transform: translateY(-3px); }
    .resource-access-ticket .resource-ticket-action:where(:hover:not(:disabled))::after { animation: resource-download-sweep .5s var(--ease-in-out); }
}
.resource-access-ticket .resource-ticket-action:where(:focus-visible, .is-hover, .is-focus) { background-color: var(--ticket-action-hover); color: var(--ticket-action-ink); box-shadow: 0 7px 22px var(--ticket-action-shadow-hover); transform: translateY(-3px); }
.resource-access-ticket .resource-ticket-action:where(:focus-visible, .is-hover, .is-focus)::after { animation: resource-download-sweep .5s var(--ease-in-out); }
.resource-access-ticket .resource-ticket-action:focus-visible, .resource-access-ticket .resource-ticket-action.is-focus { outline: 2px solid var(--ticket-focus); outline-offset: 3px; }
.resource-access-ticket .resource-ticket-action:active:not(:disabled), .resource-access-ticket .resource-ticket-action.is-active { background-color: var(--ticket-action-hover); color: var(--ticket-action-ink); box-shadow: 0 2px 8px var(--ticket-action-shadow); transform: translateY(0) scale(.97); transition-duration: .1s; }
.resource-access-ticket .resource-ticket-action:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.resource-access-ticket .resource-ticket-action.is-loading { cursor: wait; }
.resource-access-ticket .resource-ticket-action.is-loading::before { width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; content: ''; animation: ticket-loading .7s linear infinite; }
.resource-access-ticket .resource-ticket-action.is-error { background: var(--ticket-error); }
.resource-access-ticket .resource-ticket-action.is-success { background: var(--ticket-success); }
@keyframes ticket-loading { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .resource-access-ticket .resource-ticket-action { transition: none; } .resource-access-ticket .resource-ticket-action:is(:hover, :focus-visible, :active, .is-hover, .is-focus, .is-active):not(:disabled) { transform: none; } .resource-access-ticket .resource-ticket-action::after { display: none; animation: none; } .resource-access-ticket .resource-ticket-action.is-loading::before { animation: none; } }
.resource-ticket-unlocks { margin: 15px 0 19px; color: #94a3b8; font-size: 13px; text-align: center; }
.resource-ticket-unlocks strong { color: var(--accent); font-weight: 800; }
.resource-ticket-action-icon, .resource-ticket-unlocks-icon { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.resource-ticket-action-icon { width: 18px; height: 18px; }
.resource-ticket-unlocks { display: flex; align-items: center; justify-content: center; gap: 5px; }
.resource-ticket-unlocks-icon { color: #91a3b1; }
.resource-guest-recovery { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin: 0 16px 20px; padding-top: 16px; border-top: 1px solid var(--detail-line); }
.resource-guest-recovery label { grid-column: 1 / -1; color: #667085; font-size: 12px; font-weight: 800; }
.resource-guest-recovery input, .resource-guest-recovery button { min-height: 40px; border: 1px solid var(--detail-line); border-radius: 8px; font: inherit; }
.resource-guest-recovery input { min-width: 0; padding: 0 11px; }
.resource-guest-recovery button { padding: 0 13px; background: var(--detail-accent); color: #fff; font-size: 12px; font-weight: 800; }
.resource-access-ticket .share-links-list { padding: 16px; }
.resource-access-ticket .unlock-richtext { margin: 15px 16px 0; }
/* Hallmark · component: authorized download group · theme: existing site accent
 * Reference: the user's Ripro download card; full-width direct links and split cloud actions.
 * states: default · hover · focus · active · disabled · loading · error · success
 * pre-emit critique: P4 H5 E5 S5 R5 V4 · contrast/mobile/keyboard: verified
 */
.resource-downloads-card {
    --download-fill: color-mix(in srgb, var(--accent) 86%, var(--ink));
    --download-copy-fill: var(--accent);
    --download-ink: var(--white);
    --download-hover: color-mix(in srgb, var(--accent) 72%, var(--ink));
    --download-soft: color-mix(in srgb, var(--accent) 7%, var(--white));
    --download-shadow: color-mix(in srgb, var(--accent) 20%, transparent);
    --download-shadow-hover: color-mix(in srgb, var(--accent) 32%, transparent);
    --download-gradient-shade: color-mix(in srgb, var(--ink) 12%, transparent);
    --download-sheen: color-mix(in srgb, var(--white) 9%, transparent);
    --download-segment-rule: color-mix(in srgb, var(--white) 20%, transparent);
    --download-ease: cubic-bezier(.4, 0, .2, 1);
    --download-ribbon: var(--ink-soft);
    --download-focus: var(--ink);
    --download-error: var(--member-checkout-error);
    --download-success: var(--member-checkout-success-ink);
    position: relative; min-width: 0; padding: 30px 20px 24px; color: var(--ink);
}
.resource-download-ribbon { position: absolute; top: 17px; right: -29px; width: 116px; padding: 7px 0; background: var(--download-ribbon); color: var(--download-ink); font-size: 13px; line-height: 1.3; text-align: center; transform: rotate(45deg); pointer-events: none; }
.resource-downloads-card .resource-download-title { display: flex; min-width: 0; align-items: center; justify-content: center; gap: 6px; margin: 0 18px 24px; color: var(--accent); font-size: 21px; font-weight: 600; font-style: normal; line-height: 1.4; overflow-wrap: anywhere; }
.resource-download-title .resource-unlock-icon { width: 24px; height: 24px; flex: 0 0 24px; fill: currentColor; stroke: none; }
.resource-unlock-icon .resource-unlock-shackle { fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.resource-downloads-card .resource-download-list { gap: 12px; padding: 0; }
.resource-download-item { min-width: 0; }
.resource-download-row { display: flex; min-width: 0; border-radius: var(--radius-md); }
.resource-download-link, .resource-download-copy { position: relative; display: inline-flex; min-width: 0; min-height: 54px; align-items: center; justify-content: center; gap: 6px; padding: 12px; overflow: hidden; border: 0; border-radius: 0; background-color: var(--download-fill); background-image: linear-gradient(135deg, transparent, var(--download-gradient-shade)); color: var(--download-ink); box-shadow: 0 6px 16px var(--download-shadow); font-family: var(--font-sans); font-size: 16px; font-weight: 600; line-height: 1.4; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .2s var(--download-ease), transform .2s var(--download-ease), box-shadow .2s var(--download-ease); }
.resource-download-link::before, .resource-download-copy::before { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, transparent, var(--download-sheen), transparent); content: ''; transform: translateX(-110%); pointer-events: none; }
.resource-download-link { flex: 1 1 0; border-radius: var(--radius-md) 0 0 var(--radius-md); }
.resource-download-link:only-child { border-radius: var(--radius-md); }
.resource-download-link > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resource-download-copy { --download-hover: var(--download-fill); flex: 0 0 98px; border-left: 1px solid var(--download-segment-rule); background-color: var(--download-copy-fill); color: var(--download-ink); border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.resource-download-icon { width: 21px; height: 21px; flex: 0 0 21px; fill: currentColor; }
.resource-provider-icon { display: inline-block; background: currentColor; -webkit-mask: var(--resource-provider-icon) center / contain no-repeat; mask: var(--resource-provider-icon) center / contain no-repeat; }
.resource-provider-icon-quark { --resource-provider-icon: url('../images/pan-icons/kuake.svg'); }
.resource-provider-icon-baidu { --resource-provider-icon: url('../images/pan-icons/baidu.svg'); }
.resource-provider-icon-aliyun { --resource-provider-icon: url('../images/pan-icons/ali.svg'); }
.resource-provider-icon-123 { --resource-provider-icon: url('../images/pan-icons/123-monochrome.svg'); }
.resource-provider-icon-tianyi { --resource-provider-icon: url('../images/pan-icons/tianyi.svg'); }
.resource-provider-icon-mobile { --resource-provider-icon: url('../images/pan-icons/yidong.svg'); }
.resource-provider-icon-115 { --resource-provider-icon: url('../images/pan-icons/115.svg'); }
.resource-provider-icon-xunlei { --resource-provider-icon: url('../images/pan-icons/xunlei.svg'); }
.resource-provider-icon-uc { --resource-provider-icon: url('../images/pan-icons/uc.svg'); }
.resource-copy-icon, .resource-copy-check { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.resource-copy-check { display: none; }
@media (hover: hover) {
    .resource-download-link:hover:not(:disabled), .resource-download-copy:hover:not(:disabled) { z-index: 1; background-color: var(--download-hover); color: var(--download-ink); transform: translateY(-3px); box-shadow: 0 9px 22px var(--download-shadow-hover); }
    .resource-download-link:where(:hover:not(:disabled))::before, .resource-download-copy:where(:hover:not(:disabled))::before { animation: resource-download-sweep .5s var(--download-ease); }
}
.resource-download-link.is-hover, .resource-download-copy.is-hover, .resource-download-link.is-focus, .resource-download-copy.is-focus, .resource-download-link:focus-visible, .resource-download-copy:focus-visible { z-index: 1; background-color: var(--download-hover); color: var(--download-ink); transform: translateY(-3px); box-shadow: 0 9px 22px var(--download-shadow-hover); }
.resource-download-link:where(.is-hover, :focus-visible)::before, .resource-download-copy:where(.is-hover, :focus-visible)::before { animation: resource-download-sweep .5s var(--download-ease); }
.resource-download-link:focus-visible, .resource-download-copy:focus-visible, .resource-download-link.is-focus, .resource-download-copy.is-focus { position: relative; z-index: 1; outline: 2px solid var(--download-focus); outline-offset: 3px; }
.resource-download-link:active:not(:disabled), .resource-download-copy:active:not(:disabled), .resource-download-link.is-active, .resource-download-copy.is-active { z-index: 1; background-color: var(--download-hover); color: var(--download-ink); transform: translateY(0) scale(.97); box-shadow: 0 2px 8px var(--download-shadow); transition-duration: .1s; }
.resource-download-link:disabled, .resource-download-copy:disabled { cursor: not-allowed; box-shadow: none; transform: none; }
.resource-download-link:disabled:not(.is-loading), .resource-download-copy:disabled:not(.is-loading) { background: var(--paper); color: var(--ink-soft); }
.resource-download-copy.is-loading { cursor: wait; }
.resource-download-copy.is-loading .resource-copy-icon { display: none; }
.resource-download-copy.is-loading::after { width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; content: ''; animation: ticket-loading .7s linear infinite; }
.resource-download-copy.is-error { background: var(--download-error); color: var(--download-ink); }
.resource-download-copy.is-success { background: var(--download-success); color: var(--download-ink); }
.resource-download-copy.is-success .resource-copy-icon { display: none; }
.resource-download-copy.is-success .resource-copy-check { display: block; }
.resource-downloads-card .resource-download-unavailable { margin: 8px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.resource-download-code-fallback { margin-top: 8px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--download-soft); color: var(--ink); }
.resource-download-code-fallback[hidden] { display: none; }
.resource-download-code-fallback label { display: flex; align-items: center; gap: 12px; color: var(--ink); font-size: 13px; }
.resource-download-code-fallback input { min-width: 0; width: 100%; min-height: 44px; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); color: var(--ink); font: inherit; }
.resource-download-code-fallback input:focus-visible { outline: 2px solid var(--download-focus); outline-offset: 2px; }
.resource-download-code-fallback p { margin: 7px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.resource-copy-buffer { position: fixed; top: 0; left: -9999px; width: 1px; height: 1px; font-size: 16px; }
.resource-downloads-card .unlock-richtext { margin: 20px 0 0; padding: 16px 0 0; border-top: 1px solid var(--line); }
@media (max-width: 375px) { .resource-downloads-card { padding-right: 16px; padding-left: 16px; } .resource-download-link, .resource-download-copy { padding-right: 9px; padding-left: 9px; font-size: 14px; } .resource-download-copy { flex-basis: 86px; } }
@keyframes resource-download-sweep { from { transform: translateX(-110%); } to { transform: translateX(110%); } }
@media (prefers-reduced-motion: reduce) { .resource-download-link, .resource-download-copy { transition: none; } .resource-download-link:is(:hover, :focus-visible, :active, .is-hover, .is-focus, .is-active):not(:disabled), .resource-download-copy:is(:hover, :focus-visible, :active, .is-hover, .is-focus, .is-active):not(:disabled) { transform: none; } .resource-download-link::before, .resource-download-copy::before { display: none; animation: none; } .resource-download-copy.is-loading::after { animation: none; } }
.resource-side-module { padding: 20px; border: 1px solid #dfe3f1; border-radius: 16px; background: #fff; }
.resource-side-module h2 { position: relative; margin: 0 0 16px; padding-bottom: 6px; color: var(--ink); font-size: 18px; letter-spacing: -.03em; }
.resource-side-module h2::after { position: absolute; bottom: 0; left: 0; width: 38px; height: 3px; border-radius: 999px; background: linear-gradient(90deg, var(--detail-accent), color-mix(in srgb, var(--detail-accent) 28%, #fff)); content: ''; }
.resource-related-list { display: grid; gap: 11px; }
.resource-related-list a { display: flex; align-items: center; gap: 9px; min-width: 0; color: var(--detail-body); font-size: 13px; font-weight: 700; line-height: 1.45; text-decoration: none; }
.resource-related-list b { display: grid; flex: 0 0 30px; width: 30px; height: 22px; place-items: center; border-radius: 999px; background: linear-gradient(135deg, #ff5c43, #ef3d2f); box-shadow: 0 5px 10px rgba(239, 61, 47, .18); color: #fff; font-size: 10px; font-weight: 800; }
.resource-related-list a span { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.resource-related-list a:hover { color: var(--detail-accent); }
.resource-side-tag-cloud { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 9px 8px; padding: 1px 0 3px; }
.resource-side-tag-cloud a { display: inline-flex; min-height: 29px; align-items: center; padding: 0 8px; border: 1px solid currentColor; border-radius: 8px; background: #fff; font-size: 12px; font-weight: 700; line-height: 1; text-decoration: none; transition: background-color .18s ease, color .18s ease, transform .18s ease; }
.resource-side-tag-cloud a:hover { background: color-mix(in srgb, currentColor 8%, #fff); transform: translateY(-2px); }
.resource-side-tag-cloud .tag-cloud-rank-0 { color: #6d4be8; font-size: 16px; }
.resource-side-tag-cloud .tag-cloud-rank-1 { color: #249f91; font-size: 14px; }
.resource-side-tag-cloud .tag-cloud-rank-2 { color: #e19c14; font-size: 13px; }
.resource-side-tag-cloud .tag-cloud-rank-3 { color: #4d82e8; font-size: 12px; }
@media (max-width: 560px) {
    .resource-access-panel.resource-access-ticket { border-radius: 10px; }
    .resource-access-ticket .resource-ticket-head { min-height: 94px; }
}
@media (prefers-reduced-motion: reduce) { .member-plan-name::after { animation: none; } }

/* Keep the editor's compact iframe representative of the desktop detail layout. */
body.theme-editor-preview .resource-detail-layout { grid-template-columns: minmax(0, 1fr) 326px; gap: 32px; }
body.theme-editor-preview .resource-detail-side { position: sticky; top: 92px; }
body.theme-editor-preview .resource-side-widget-stack { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }

/* Utility headings stay quiet so they can introduce content without competing with it. */
.studio-tool-heading { margin: 0; }
.studio-tool-heading-inner { display: grid; gap: 7px; padding: 6px 0 2px; }
.studio-tool-heading-inner .eyebrow { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.studio-tool-heading-inner h2 { margin: 0; color: var(--ink); font-size: clamp(23px, 2.2vw, 32px); letter-spacing: -.045em; line-height: 1.18; }
.studio-tool-heading-inner p { max-width: 640px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.7; }
.studio-tool-heading-inner.is-center { justify-items: center; text-align: center; }
.home-widget-stack > .studio-tool-heading { width: min(100% - 32px, var(--shell, 1520px)); margin-right: auto; margin-left: auto; }
.studio-tool-divider { margin: 0; }
.studio-tool-divider-line { width: 100%; height: 1px; margin: 32px 0; border: 0; background: var(--line); }
.studio-tool-divider-line.is-soft { background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 35%, var(--line)), transparent); }
.studio-tool-divider-line.is-dashed { height: 0; background: transparent; border-top: 1px dashed var(--line); }
.studio-tool-divider-line.is-wide { width: 72%; }
.studio-tool-divider-line.is-short { width: 40%; }
.studio-tool-divider-line.is-space-16 { margin-top: 16px; margin-bottom: 16px; }
.studio-tool-divider-line.is-space-48 { margin-top: 48px; margin-bottom: 48px; }
.studio-tool-spacer, .studio-tool-spacer-inner { margin: 0; padding: 0; }
.studio-tool-spacer-inner.is-space-16 { height: 16px; }
.studio-tool-spacer-inner.is-space-32 { height: 32px; }
.studio-tool-spacer-inner.is-space-48 { height: 48px; }
.studio-tool-spacer-inner.is-space-72 { height: 72px; }
.studio-tool-image { margin: 0; }
.studio-tool-image-frame { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #f8fafc; box-shadow: 0 12px 26px rgba(15,23,42,.05); }
.studio-tool-image-frame.is-standard { width: min(100%, 900px); }
.studio-tool-image-frame.is-compact { width: min(100%, 640px); }
.studio-tool-image-frame img { display: block; width: 100%; height: auto; object-fit: cover; transition: transform .25s ease; }
.studio-tool-image-frame a { display: block; }
.studio-tool-image-frame a:hover img { transform: scale(1.015); }
.studio-tool-image-frame a:focus-visible { display: block; outline: 3px solid var(--detail-focus); outline-offset: -3px; }
.studio-tool-image figcaption { margin-top: 8px; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.studio-tool-richtext { margin: 0; }
.studio-tool-richtext-inner { color: var(--ink-soft); font-size: 14px; line-height: 1.85; }
.studio-tool-richtext-inner > :first-child { margin-top: 0; }
.studio-tool-richtext-inner > :last-child { margin-bottom: 0; }
.studio-tool-richtext-inner.is-note { padding: 20px 22px; border: 1px solid #dbeafe; border-left: 4px solid var(--accent); border-radius: 12px; background: #f8fbff; color: #475569; }
.studio-tool-notice { margin: 0; }
.studio-tool-notice-inner { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; padding: 18px 20px; border: 1px solid #dbeafe; border-radius: 12px; background: #f8fbff; color: #475569; }
.studio-tool-notice-inner > i { display: grid; width: 32px; height: 32px; place-items: center; color: var(--accent); background: #eaf3ff; border-radius: 9px; }
.studio-tool-notice-inner strong { display: block; color: var(--ink); font-size: 14px; }
.studio-tool-notice-inner p { margin: 4px 0 0; font-size: 13px; line-height: 1.7; }
.studio-tool-notice-inner a { display: inline-flex; gap: 5px; margin-top: 8px; color: var(--accent); font-size: 13px; font-weight: 750; text-decoration: none; }
.studio-tool-notice-inner a:hover, .studio-tool-notice-inner a:focus-visible { color: var(--ink); text-decoration: underline; }
.studio-tool-notice-inner.is-success { border-color: #b7e4cf; background: #f0fdf4; }
.studio-tool-notice-inner.is-success > i { color: #15803d; background: #dcfce7; }
.studio-tool-notice-inner.is-warning { border-color: #fde68a; background: #fffbeb; }
.studio-tool-notice-inner.is-warning > i { color: #b45309; background: #fef3c7; }
.studio-tool-cta { margin: 0; }
.studio-tool-cta-inner { display: grid; gap: 8px; padding: clamp(24px, 4vw, 42px); border: 1px solid #dbeafe; border-radius: 16px; background: linear-gradient(135deg, #f8fbff, #eef6ff); }
.studio-tool-cta-inner .eyebrow { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.studio-tool-cta-inner h2 { margin: 0; color: var(--ink); font-size: clamp(22px, 2vw, 30px); letter-spacing: -.04em; }
.studio-tool-cta-inner p { max-width: 640px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.7; }
.studio-tool-cta-inner.is-center { justify-items: center; text-align: center; }
.studio-tool-cta-link { display: inline-flex; width: fit-content; align-items: center; gap: 7px; min-height: 42px; margin-top: 8px; padding: 10px 15px; border-radius: 8px; background: var(--accent); color: #fff; font-size: 13px; font-weight: 800; text-decoration: none; }
.studio-tool-cta-link:hover, .studio-tool-cta-link:focus-visible { background: var(--ink); color: #fff; }
.studio-tool-cta-link:focus-visible { outline: 3px solid var(--detail-focus); outline-offset: 3px; }
@media (max-width: 560px) {
    .studio-tool-heading-inner h2 { font-size: 24px; }
    .studio-tool-heading-inner p { font-size: 13px; }
    .studio-tool-divider-line.is-space-48 { margin-top: 32px; margin-bottom: 32px; }
    .studio-tool-spacer-inner.is-space-72 { height: 48px; }
    .studio-tool-notice-inner { padding: 16px; }
    .studio-tool-cta-inner { padding: 24px 20px; }
}

/* Large desktop mode: give wide screens more room while keeping cards readable. */
@media (min-width: 1201px) {
    body.theme-layout-wide .anime-feed-grid,
    body.theme-layout-large .anime-feed-grid,
    body.theme-layout-full .anime-feed-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    body.theme-layout-large .hero { grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr); gap: 58px; }
    body.theme-layout-large .game-grid,
    body.theme-layout-large .anime-card-grid:not(.anime-feed-grid),
    body.theme-layout-large .anime-card-grid-hot:not(.anime-feed-grid),
    body.theme-layout-large .archive-list.is-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    body.theme-layout-large .resource-detail-layout { grid-template-columns: minmax(0, 1fr) 352px; gap: 40px; }
}

@media (min-width: 901px) {
    .member-order-list-head, .member-order-row { grid-template-columns: minmax(360px, 1fr) 190px 170px 100px minmax(210px, 240px); }
    .member-order-list-head > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .member-order-list-head > span:nth-child(2), .member-order-row > .member-order-amount { text-align: left; }
    .member-order-list-head > span:nth-child(3), .member-order-row > .member-order-time { text-align: center; }
    .member-order-list-head > span:nth-child(4), .member-order-row > .member-order-state { text-align: center; }
    .member-order-list-head > span:nth-child(5), .member-order-row > .member-order-action { text-align: right; }
    .member-order-row > .member-order-state .member-order-status { justify-self: center; }
    .member-order-row > .member-order-action { justify-content: flex-end; }
}

/* Orders: dense list view keeps every record scannable without tall cards. */
.member-order-list { display: grid; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.member-order-list-head, .member-order-row { display: grid; grid-template-columns: minmax(360px, 1fr) 190px 170px 100px minmax(210px, 240px); align-items: center; column-gap: 16px; }
.member-order-list-head { min-height: 38px; padding: 0 16px; border-bottom: 1px solid var(--line); background: #f8fafc; color: var(--ink-soft); font-size: 11px; font-weight: 800; }
.member-order-row { min-height: 76px; padding: 10px 16px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.member-order-row:last-of-type { border-bottom: 0; }
.member-order-row:hover { transform: none; border-color: var(--line); background: #fbfdff; box-shadow: none; }
.member-order-row .member-order-product { grid-column: auto; min-width: 0; align-items: center; }
.member-order-row .member-order-product > div { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 0 8px; }
.member-order-row .member-order-type { grid-column: 1 / -1; }
.member-order-row .member-order-product h2 { grid-column: 1; }
.member-order-row .member-order-product code { grid-column: 2; }
.member-order-row .member-order-note { display: block; grid-column: 1 / -1; margin-top: 3px; overflow: hidden; color: var(--ink-soft); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.member-order-row .member-order-meta { display: block; min-width: 0; }
.member-order-row .member-order-amount strong { display: inline-flex; align-items: center; gap: 7px; }
.member-order-row .member-order-time { min-width: 0; }
.member-order-row .member-order-meta strong { font-size: 16px; }
.member-order-row .member-order-state { min-width: 0; }
.member-order-row .member-order-status { grid-column: auto; justify-self: start; }
.member-order-row .member-order-card-foot { grid-column: auto; min-height: 0; justify-content: flex-start; }
.member-order-row .member-order-pay, .member-order-row .member-order-close { min-height: 32px; padding: 0 11px; font-size: 11px; }
.member-order-row .member-order-complete, .member-order-row .member-order-unavailable { white-space: nowrap; }
@media (max-width: 900px) {
    .member-order-list-head { display: none; }
    .member-order-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 14px; padding: 14px 16px; }
    .member-order-row .member-order-product { grid-column: 1; }
    .member-order-row .member-order-state { grid-column: 2; grid-row: 1; }
    .member-order-row .member-order-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-column: 1 / -1; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); }
    .member-order-row .member-order-amount { grid-column: 1 / -1; }
    .member-order-row .member-order-action { grid-column: 2; grid-row: 3; }
}
@media (max-width: 560px) {
    .member-order-row { gap: 12px; padding: 14px; }
    .member-order-row .member-order-product > div { display: block; }
    .member-order-row .member-order-product h2 { white-space: normal; }
    .member-order-row .member-order-product code { display: block; margin-top: 3px; }
    .member-order-row .member-order-meta { grid-template-columns: 1fr 1fr; }
    .member-order-row .member-order-time { grid-column: 1 / -1; }
    .member-order-row .member-order-action { grid-column: 1 / -1; grid-row: auto; }
    .member-order-row .member-order-action form, .member-order-row .member-order-pay, .member-order-row .member-order-close { width: 100%; }
    .member-order-row .member-order-pay { justify-content: center; }
}
