:root{--page:#f7f8fa;--surface:#fff;--surface-soft:#f1f4f7;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--accent:#0e7490;--accent-hover:#0c667f;--accent-soft:color-mix(in srgb, var(--accent) 12%, white);--secondary:#334155;--tertiary:#d97706;--rating-16:#e879a9;--rating-16-deep:#db6b9c;--rating-16-soft:color-mix(in srgb, var(--rating-16) 16%, white);--metric-view:#38bdf8;--metric-like:#fb7185;--metric-fav:#fbbf24;--metric-download:#34d399;--success:#059669;--danger:#dc2626;--on-accent:#fff;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 10px 28px #0f172a1a;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-pill:999px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:20px;--space-xl:28px;--page-margin:24px;--content-max:1200px;--card-gap:12px;--header-height:56px;--page-pad-y:var(--space-md);--page-head-to-content:var(--space-md);--page-content-to-meta:var(--space-xl);--page-meta-pad-y:var(--space-md);--page-block-gap:var(--space-lg);--page-section-gap:var(--space-xl);--section-gap:var(--page-section-gap);--font-display:"Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-body:"Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--text-display:700 32px/40px var(--font-display);--text-headline-lg:700 24px/32px var(--font-display);--text-headline-md:600 20px/28px var(--font-display);--text-title-md:600 16px/24px var(--font-display);--text-body-lg:400 16px/24px var(--font-body);--text-body-md:400 14px/20px var(--font-body);--text-label-sm:600 12px/16px var(--font-body);--text-meta:500 12px/16px var(--font-body);--duration-fast:.15s;--duration:.22s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ratio-portrait:9 / 16;--blue:var(--accent);--blue-dark:var(--accent-hover);--pink:var(--tertiary);--mint:var(--success)}@media (max-width:720px){:root{--page-margin:16px}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration:0s}}
*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:var(--page);font:var(--text-body-md);font-family:var(--font-body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layout-shell{flex-direction:column;min-height:100vh;display:flex}.layout-page{flex-direction:column;flex:1;min-width:0;display:flex}.layout-main{width:min(var(--content-max), calc(100% - var(--page-margin) * 2));padding:var(--page-pad-y) 0 var(--space-xl);flex:1;margin:0 auto}.layout-section{margin-top:var(--section-gap)}.page-stack{flex-direction:column;display:flex}.page-stack>.layout-section:first-child,.page-stack>.page-head:first-child{margin-top:0}.page-head{gap:var(--space-md);margin:0 0 var(--page-head-to-content);grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;padding:0;display:grid}.page-head__nav{gap:var(--space-sm);min-width:0;display:grid}.page-head__tools{align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.page-content{min-width:0;margin:0}.page-meta{justify-content:space-between;align-items:center;gap:var(--space-md);margin:var(--page-content-to-meta) 0 0;padding:var(--page-meta-pad-y) 0 0;border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.page-meta__count{font:var(--text-meta);font-variant-numeric:tabular-nums;color:var(--muted);margin:0}.page-meta .ui-pagination{margin-left:auto}.page-stack>.page-meta+.layout-section{margin-top:var(--page-section-gap)}@media (max-width:720px){.page-head{grid-template-columns:1fr}.page-head__tools{justify-content:flex-start}}.layout-section-head{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.layout-section-head h2{font:var(--text-headline-md);letter-spacing:-.01em;margin:0}.layout-section-head--accent h2{align-items:center;gap:10px;display:flex}.layout-section-head--accent h2:before{content:"";background:var(--accent);border-radius:2px;flex-shrink:0;width:4px;height:1.05em}.layout-section-head p{color:var(--muted);font:var(--text-body-md);margin:4px 0 0}.section-more{color:var(--accent);font:var(--text-label-sm);white-space:nowrap;flex-shrink:0;align-items:center;gap:2px;font-size:13px;display:inline-flex}.section-more:hover{text-decoration:underline}.layout-grid{gap:var(--card-gap);display:grid}.layout-grid--chars{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.layout-grid--images{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}@media (min-width:900px){.layout-grid--chars{grid-template-columns:repeat(5,minmax(0,1fr))}.layout-grid--images{grid-template-columns:repeat(4,minmax(0,1fr))}}.layout-stack{gap:var(--space-md);flex-direction:column;display:flex}.layout-stack--sm{gap:var(--space-sm)}.layout-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.layout-row--end{justify-content:flex-end}.layout-row--between{justify-content:space-between}.site-header{z-index:50;align-items:center;gap:var(--space-md);min-height:var(--header-height);width:100%;padding:var(--space-sm) var(--page-margin);background:color-mix(in srgb, var(--surface) 88%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;position:sticky;top:0}@media (min-width:1248px){.site-header{padding-left:calc((100vw - var(--content-max)) / 2);padding-right:calc((100vw - var(--content-max)) / 2)}}.site-header__brand{font:var(--text-title-md);letter-spacing:-.02em;flex-shrink:0;align-items:center;gap:10px;font-weight:800;display:inline-flex}.site-header__mark{width:32px;height:32px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);place-items:center;font-size:14px;font-weight:800;display:grid}.site-header__nav{margin-left:var(--space-sm);align-items:center;gap:4px;display:none}@media (min-width:900px){.site-header__nav{display:flex}}.site-header__nav-link{border-radius:var(--radius-sm);color:var(--muted);font:var(--text-label-sm);padding:6px 10px;font-size:13px}.site-header__nav-link:hover{color:var(--ink);background:var(--surface-soft)}.global-loading-scrim{z-index:11990;pointer-events:none;opacity:0;background:#0f172a47;transition:opacity .18s;position:fixed;inset:0}.global-loading-scrim.is-visible{opacity:1;pointer-events:auto;cursor:wait}.global-loading-bar{z-index:12001;pointer-events:none;opacity:0;background:0 0;height:3px;transition:opacity .12s;position:fixed;top:0;left:0;right:0;overflow:hidden}.global-loading-bar.is-visible{opacity:1}.global-loading-bar.is-emphasis{height:4px}.global-loading-bar__inner{background:linear-gradient(90deg, color-mix(in srgb, var(--accent,#0e7490) 40%, transparent), var(--accent,#0e7490));border-radius:0 2px 2px 0;width:40%;height:100%;animation:1.05s ease-in-out infinite global-loading-bar-slide;display:block}@keyframes global-loading-bar-slide{0%{transform:translate(-100%)}to{transform:translate(280%)}}.global-loading{top:calc(var(--header-height,56px) + 12px);z-index:12000;border:1px solid var(--line,#e2e8f0);color:var(--ink,#0f172a);font:var(--text-label-sm,13px/1.2 system-ui);pointer-events:none;opacity:0;background:#fffffff5;border-radius:999px;align-items:center;gap:10px;padding:10px 14px;font-weight:600;transition:opacity .16s,transform .16s,top .16s,left .16s,right .16s,padding .16s,border-radius .16s;display:inline-flex;position:fixed;right:16px;transform:translateY(-8px)scale(.98);box-shadow:0 10px 30px #0f172a24}.global-loading.is-visible{opacity:1;transform:translateY(0)scale(1)}.global-loading.is-emphasis{border-color:color-mix(in srgb, var(--accent,#0e7490) 28%, var(--line,#e2e8f0));background:var(--surface,#fff);border-radius:16px;gap:14px;min-width:min(280px,100vw - 48px);padding:18px 22px;font-size:15px;font-weight:700;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)scale(.98);box-shadow:0 24px 64px #0f172a38,inset 0 0 0 1px #fff9}.global-loading.is-emphasis.is-visible{transform:translate(-50%,-50%)scale(1)}.global-loading__spinner{border:2px solid #0f172a1f;border-top-color:var(--accent,#0e7490);border-radius:999px;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite global-loading-spin}.global-loading.is-emphasis .global-loading__spinner{border-width:2.5px;width:22px;height:22px}.global-loading__label{letter-spacing:.02em}@keyframes global-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.global-loading,.global-loading-scrim{transition:none}.global-loading__spinner{border-top-color:#0f172a59;animation:none}.global-loading-bar__inner{opacity:.85;width:100%;animation:none}}.character-grid.is-stale{opacity:.55;pointer-events:none;transition:opacity .16s}.site-header__search-wrap{width:min(320px,42vw);min-width:160px;margin-left:auto;position:relative}.site-header__end{align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}.locale-switch{border:1px solid var(--line);background:var(--surface);max-width:7.5rem;min-height:32px;color:var(--ink);font:var(--text-label-sm);border-radius:999px;align-items:center;font-weight:600;transition:border-color .16s,background .16s,opacity .16s;display:inline-flex;position:relative}.locale-switch:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.locale-switch.is-switching{opacity:.65;pointer-events:none}.locale-switch__select{appearance:none;min-width:5.5rem;min-height:32px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;margin:0;padding:0 1.6rem 0 12px;font-weight:600;line-height:1}.locale-switch__select:focus{outline:none}.locale-switch__select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.locale-switch__select:disabled{cursor:wait}.locale-switch__chevron{pointer-events:none;color:var(--ink-muted);opacity:.85;font-size:10px;line-height:1;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.account-nav{flex-shrink:0;align-items:center;gap:8px;display:flex}.account-nav__points{background:var(--surface);border:1px solid var(--line);min-height:36px;box-shadow:var(--shadow-sm);color:var(--ink);white-space:nowrap;border-radius:12px;align-items:center;gap:6px;padding:4px 12px 4px 6px;display:inline-flex}.account-nav__points-icon{color:#b45309;background:color-mix(in srgb, var(--tertiary) 16%, white);border-radius:8px;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.account-nav__points-value{font:var(--text-title-md);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink);font-size:15px;font-weight:700;line-height:1}.account-nav__checkin{appearance:none;border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-radius:var(--radius-pill);background:var(--accent-soft);min-height:36px;color:var(--accent);font:var(--text-label-sm);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);padding:0 14px;font-weight:700}.account-nav__checkin:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, white);border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.account-nav__checkin:disabled{cursor:default;opacity:.85}.account-nav__checkin.is-done{background:var(--surface-soft);border-color:var(--line);color:var(--muted);font-weight:600}.account-nav__user{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);max-width:140px;min-height:36px;color:var(--ink);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);align-items:center;gap:8px;padding:3px 12px 3px 3px;text-decoration:none;display:inline-flex}.account-nav__user:hover{background:var(--surface-soft);border-color:color-mix(in srgb, var(--ink) 12%, var(--line))}.account-nav__avatar{background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 88%, white), var(--accent));width:28px;height:28px;color:var(--on-accent);font:var(--text-label-sm);border-radius:50%;flex-shrink:0;place-items:center;font-weight:800;display:grid}.account-nav__name{text-overflow:ellipsis;white-space:nowrap;font:var(--text-label-sm);font-size:13px;font-weight:600;overflow:hidden}.account-nav--skeleton{pointer-events:none}.account-nav__skel{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--surface-soft) 0%, color-mix(in srgb, var(--line) 60%, white) 50%, var(--surface-soft) 100%);background-size:200% 100%;width:64px;height:34px;animation:1.1s ease-in-out infinite account-nav-shimmer;display:inline-block}.account-nav__skel--sm{width:48px}.account-nav__skel--user{width:88px}@keyframes account-nav-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width:720px){.account-nav__name{display:none}.account-nav__user{max-width:none;padding:2px}.account-nav__points{gap:5px;padding:4px 10px 4px 5px}.account-nav__points-icon{width:24px;height:24px}}@media (prefers-reduced-motion:reduce){.account-nav__skel{animation:none}}.site-header__search{align-items:center;gap:var(--space-xs);background:var(--surface-soft);border-radius:var(--radius-pill);width:100%;min-height:36px;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);border:1px solid #0000;padding:4px 12px;display:flex}.site-header__search-icon{color:var(--muted);font-size:14px;line-height:1}.site-header__search:focus-within{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.site-header__search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:13px}.site-header__search input::placeholder{color:var(--muted)}.search-suggest{position:relative}.search-suggest__panel{z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-height:min(420px,70vh);box-shadow:var(--shadow-lg);padding:8px 0;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto}.search-suggest__group{padding:4px 0 8px}.search-suggest__label{color:var(--muted);font:var(--text-label-sm);text-transform:uppercase;letter-spacing:.04em;margin:0;padding:6px 14px 4px;font-size:11px}.search-suggest__group ul{margin:0;padding:0;list-style:none}.search-suggest__group a{align-items:center;gap:10px;padding:8px 14px;display:flex}.search-suggest__group a:hover{background:var(--surface-soft)}.search-suggest__thumb{border-radius:var(--radius-sm);background:var(--surface-soft);width:36px;height:36px;color:var(--muted);flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid;overflow:hidden}.search-suggest__thumb img{object-fit:cover;width:100%;height:100%}.search-suggest__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.search-suggest__text strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.search-suggest__text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.search-suggest__tag{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);font:var(--text-label-sm);flex-shrink:0;padding:2px 8px;font-size:10px}.search-suggest__hint{color:var(--muted);font:var(--text-meta);text-align:center;margin:0;padding:16px}.search-suggest__more{border-top:1px solid var(--line);color:var(--accent);font:var(--text-label-sm);text-align:center;margin-top:4px;padding:10px 14px;font-size:12px;display:block}.search-suggest__more:hover{background:var(--surface-soft)}.site-footer{border-top:1px solid var(--line);background:var(--surface);margin-top:auto}.site-footer__inner{width:min(var(--content-max), calc(100% - var(--page-margin) * 2));padding:var(--space-lg) 0;gap:var(--space-md);color:var(--muted);font:var(--text-meta);flex-wrap:wrap;justify-content:space-between;align-items:center;margin:0 auto;display:flex}.site-footer__links{gap:var(--space-md);flex-wrap:wrap;display:flex}.site-footer__links a:hover{color:var(--accent)}.ui-btn{justify-content:center;align-items:center;gap:var(--space-xs);border-radius:var(--radius);min-height:36px;font:var(--text-label-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;padding:0 14px;font-size:13px;display:inline-flex}.ui-btn:active:not(:disabled){transform:scale(.97)}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn--primary{background:var(--accent);color:var(--on-accent)}.ui-btn--primary:hover:not(:disabled){background:var(--accent-hover)}.ui-btn--secondary{background:var(--surface);color:var(--secondary);border-color:var(--line)}.ui-btn--secondary:hover:not(:disabled){border-color:color-mix(in srgb, var(--secondary) 35%, var(--line));background:var(--surface-soft)}.ui-btn--ghost{color:var(--accent);background:0 0}.ui-btn--ghost:hover:not(:disabled){background:var(--accent-soft)}.ui-btn--danger{background:var(--danger);color:#fff}.ui-btn--sm{min-height:30px;padding:0 10px;font-size:12px}.ui-btn--lg{min-height:42px;padding:0 18px;font-size:14px}.ui-btn--block{width:100%}.ui-field{flex-direction:column;gap:6px;display:flex}.ui-field__label{color:var(--ink);font:var(--text-label-sm)}.ui-field__hint{color:var(--muted);font:var(--text-meta)}.ui-field__error{color:var(--danger,#b91c1c);font:var(--text-meta)}.ui-field__ok{color:var(--success,#0f766e);font:var(--text-meta)}.ui-input,.ui-select{width:100%;min-height:40px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);padding:8px 12px}.ui-input.is-invalid{border-color:color-mix(in srgb, var(--danger,#b91c1c) 70%, var(--line))}.ui-input.is-valid{border-color:color-mix(in srgb, var(--success,#0f766e) 55%, var(--line))}.ui-password{display:block;position:relative}.ui-password__input{padding-right:44px}.ui-password__input::-ms-reveal{width:0;height:0;display:none}.ui-password__input::-ms-clear{width:0;height:0;display:none}.ui-password__input::-webkit-credentials-auto-fill-button{visibility:hidden;pointer-events:none;position:absolute;right:0}.ui-password__input::-webkit-strong-password-auto-fill-button{visibility:hidden;pointer-events:none;position:absolute;right:0}.ui-password__toggle{z-index:1;border-radius:var(--radius-sm,8px);width:36px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;margin:0;padding:0;display:inline-grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.ui-password__toggle:hover{color:var(--ink);background:var(--surface-soft,#f1f5f9)}.ui-input::placeholder{color:var(--muted)}.ui-input:hover,.ui-select:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.ui-input:focus,.ui-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.ui-input--sm,.ui-select--sm{min-height:32px;padding:4px 10px;font-size:13px}.ui-select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 16px) calc(50% - 3px),calc(100% - 11px) calc(50% - 3px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:28px}.ui-badge{border-radius:var(--radius-sm);min-height:22px;font:var(--text-label-sm);letter-spacing:.02em;background:var(--surface-soft);color:var(--secondary);border:1px solid var(--line);align-items:center;gap:4px;padding:0 8px;font-size:11px;display:inline-flex}.ui-badge--accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.ui-badge--amber{background:linear-gradient(145deg, color-mix(in srgb, var(--rating-16,#e879a9) 88%, #fff), var(--rating-16-deep,#db6b9c));color:#fff;box-shadow:0 1px 6px color-mix(in srgb, var(--rating-16,#e879a9) 35%, transparent);border-color:#0000}.ui-badge--slate{background:color-mix(in srgb, var(--secondary) 10%, white);color:var(--secondary);border-color:#0000}.ui-badge--success{background:color-mix(in srgb, var(--success) 12%, white);color:var(--success);border-color:#0000}.ui-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.ui-card--soft{box-shadow:var(--shadow-md);border-color:#0000}.ui-card--pad{padding:var(--space-lg)}.ui-card--interactive{transition:transform var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out)}.ui-card--interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.ui-tabs{gap:var(--space-xs);flex-wrap:wrap;align-items:center;display:inline-flex}.ui-tabs__item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:32px;color:var(--muted);font:var(--text-label-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;padding:0 14px;font-size:13px;display:inline-flex}.ui-tabs__item:hover{background:var(--surface-soft);color:var(--ink)}.ui-tabs__item[data-active=true],.ui-tabs__item.is-active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.ui-pagination{gap:var(--space-xs);margin-top:var(--space-lg);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.ui-pagination__item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:36px;min-height:36px;color:var(--secondary);font:var(--text-label-sm);transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.ui-pagination__item:hover:not([aria-disabled=true]):not([data-active=true]){border-color:var(--accent);color:var(--accent)}.ui-pagination__item[data-active=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.ui-pagination__item[aria-disabled=true]{opacity:.4;pointer-events:none}.ui-empty{place-items:center;gap:var(--space-sm);padding:var(--space-xl) var(--space-lg);text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-lg);display:grid}.ui-empty__title{font:var(--text-headline-md);margin:0}.ui-empty__detail{max-width:36ch;color:var(--muted);font:var(--text-body-md);margin:0}.ui-skeleton{background:linear-gradient(90deg, var(--surface-soft) 0%, color-mix(in srgb, var(--surface-soft) 40%, white) 50%, var(--surface-soft) 100%);border-radius:var(--radius);background-size:200% 100%;animation:1.2s ease-in-out infinite ui-shimmer;display:block}.ui-skeleton--text{width:60%;height:14px}.ui-skeleton--portrait{aspect-ratio:var(--ratio-portrait,9 / 16);width:100%}.ui-skeleton--chip{vertical-align:middle;border-radius:999px;width:72px;height:28px;display:inline-block}.ui-skeleton--circle{border-radius:999px;flex-shrink:0;width:40px;height:40px}.skel-gallery-detail{flex-direction:column;gap:16px;min-height:0;display:flex}.skel-gallery-detail__status{flex-wrap:wrap;gap:6px;display:flex}.skel-gallery-detail__tags{flex-wrap:wrap;gap:8px;display:flex}.skel-gallery-detail__engage{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.skel-gallery-detail__engage-cell{border-radius:12px;height:72px}.skel-gallery-detail__download{border-radius:12px;height:64px}.skel-character-grid{gap:var(--space-md,16px);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.skel-character-grid__card{gap:8px;display:grid}.skel-character-grid__meta{width:70%;height:12px}.skel-page{gap:var(--section-gap,28px);padding:var(--page-pad-y,20px) 0;flex-direction:column;display:flex}.skel-page__title{width:min(200px,40%);max-width:100%;height:28px}.skel-page__works{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.skel-page__work{border-radius:12px;height:52px}.skel-page__images{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;display:grid}.skel-page__hero{border-radius:16px;width:100%;height:120px}.skel-page__row{border-radius:12px;width:100%;height:80px}.skel-w-10{width:2.5rem!important}.skel-w-12{width:3rem!important}.skel-w-14{width:3.5rem!important}.skel-w-16{width:4rem!important}.skel-w-20{width:5rem!important}.skel-w-full{width:100%!important}.skel-mb-2{margin-bottom:8px}@keyframes ui-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.ui-skeleton{animation:none}.ui-card--interactive:hover,.ui-btn:active:not(:disabled){transform:none}}.ui-media{border-radius:var(--radius);background:var(--surface-soft);aspect-ratio:var(--ratio-portrait);position:relative;overflow:hidden}.ui-media img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform var(--duration) var(--ease-out)}.list-view-tabs{gap:var(--space-xs);margin-top:var(--space-md);flex-wrap:wrap;display:inline-flex}.breadcrumb{margin-bottom:var(--space-md);color:var(--muted);font:var(--text-meta);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.breadcrumb a{color:var(--muted);font-weight:600;text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.breadcrumb__sep{opacity:.45;-webkit-user-select:none;user-select:none;margin:0 6px}.breadcrumb__current{color:var(--ink);font-weight:700}.breadcrumb--nav{font:var(--text-body-md);gap:2px;margin-bottom:0;line-height:1.35}.breadcrumb--nav a{color:var(--ink);font-weight:600}.breadcrumb--nav a:hover{color:var(--accent)}.breadcrumb--nav .breadcrumb__sep{color:var(--muted);margin:0 8px;font-weight:500}.breadcrumb--nav .breadcrumb__current{font:var(--text-title-md);letter-spacing:-.02em;font-weight:700}.gallery-head--compact{margin-bottom:var(--page-head-to-content);gap:var(--space-md);align-items:flex-start;padding:0}.gallery-head__nav{gap:var(--space-sm);min-width:0;display:grid}.gallery-head__aliases{margin-top:0}.gallery-foot{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--page-content-to-meta);padding-top:var(--page-meta-pad-y);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.gallery-foot__meta{font:var(--text-meta);font-variant-numeric:tabular-nums;margin:0}.gallery-foot .ui-pagination{margin-left:auto}.home-series-rail{gap:var(--card-gap);scroll-snap-type:x proximity;grid-auto-columns:minmax(140px,180px);grid-auto-flow:column;padding-bottom:4px;display:grid;overflow-x:auto}.home-series-rail>*{scroll-snap-align:start}.home-recent-split{gap:var(--space-xl);grid-template-columns:1fr;display:grid}@media (min-width:800px){.home-recent-split{gap:var(--space-lg);grid-template-columns:1fr 1fr}}.home-recent-col h3{margin:0 0 var(--space-md);font:var(--text-title-md)}.recent-list{gap:var(--space-sm);flex-direction:column;display:flex}.recent-row{align-items:center;gap:var(--space-md);padding:var(--space-sm);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out);display:flex}.recent-row:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.recent-row__thumb{border-radius:var(--radius-sm);background:var(--surface-soft);width:48px;height:64px;color:var(--muted);flex-shrink:0;place-items:center;font-weight:700;display:grid;overflow:hidden}.recent-row__thumb img{object-fit:cover;object-position:top center;width:100%;height:100%}.recent-row__text{flex-direction:column;gap:2px;min-width:0;display:flex}.recent-row__text strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.recent-row__text small{color:var(--muted);font-size:12px}.card-badge{z-index:1;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--tertiary) 90%, black);color:#fff;font:var(--text-label-sm);letter-spacing:.04em;padding:2px 8px;font-size:10px;position:absolute;top:8px;left:8px}.series-hero{padding:var(--space-md) 0}.series-hero--text{max-width:720px}.work-name-grid{gap:var(--card-gap);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.work-name-card{width:100%;padding:var(--space-md) var(--space-lg);text-align:left;color:inherit;font:inherit;border:1px solid var(--line);background:var(--surface);cursor:pointer;flex-direction:column;gap:6px;text-decoration:none;display:flex}button.work-name-card{appearance:none}.work-name-card.is-selected{border-color:var(--accent,#0f172a);box-shadow:0 0 0 1px var(--accent,#0f172a);background:color-mix(in srgb, var(--accent,#0f172a) 6%, var(--surface))}.work-name-card strong{font:var(--text-title-md)}.work-name-card span{color:var(--muted);font:var(--text-meta)}.works-characters{margin-top:var(--space-xl,28px)}.series-hero__meta{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.gallery-toolbar{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.auth-page{padding:var(--space-xl) 0;place-items:center;display:grid}.auth-page__brand{text-align:center;margin-bottom:var(--space-lg)}.auth-page__brand h1{font:var(--text-headline-md);margin:8px 0 4px}.auth-page__brand p{color:var(--muted);font:var(--text-meta);margin:0}.auth-dual{gap:var(--space-lg);grid-template-columns:1fr;width:min(880px,100%);display:grid}@media (min-width:800px){.auth-dual{grid-template-columns:1fr 1fr}}.auth-card{padding:var(--space-lg);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.auth-card h2{font:var(--text-headline-md);margin:0 0 4px}.auth-card__lead{margin:0 0 var(--space-md);color:var(--muted);font:var(--text-body-md)}.auth-card__badge{margin-bottom:var(--space-sm);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font:var(--text-label-sm);padding:4px 10px;font-size:11px;display:inline-flex}.auth-card form{gap:var(--space-md);flex-direction:column;display:flex}.auth-card .ui-field-row{gap:var(--space-sm);align-items:flex-end;display:flex}.auth-card .ui-field-row .ui-input{flex:1}.auth-card__footer{margin-top:var(--space-sm);color:var(--muted);font:var(--text-meta);text-align:center}.auth-card__footer a{color:var(--accent);font-weight:600}.me-hero{margin-bottom:var(--space-lg)}.me-profile{align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex}.me-profile__avatar{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:24px;font-weight:800;display:grid}.me-profile h1{font:var(--text-headline-md);margin:0}.me-profile p{color:var(--muted);font:var(--text-meta);margin:4px 0 0}.me-profile__stats{gap:var(--space-md);margin-top:var(--space-sm);font:var(--text-label-sm);flex-wrap:wrap;display:flex}.me-profile__stats strong{color:var(--accent);margin-right:4px;font-size:16px}.me-settings{padding:var(--space-lg);margin-bottom:var(--space-lg);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);gap:0;display:grid}.me-settings__head{justify-content:space-between;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-sm);display:flex}.me-settings__head h2{font:var(--text-title-md);margin:0}.me-settings__status{color:var(--muted);font:var(--text-meta)}.me-settings__row{justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-md) 0;display:flex}.me-settings__row+.me-settings__row{border-top:1px solid var(--line)}.me-settings__copy{flex:1;min-width:0}.me-settings__copy strong{font:var(--text-title-sm,15px/1.3 system-ui);font-weight:700;display:block}.me-settings__copy p{color:var(--muted);font:var(--text-meta);margin:4px 0 0;line-height:1.45}.ui-switch{color:var(--ink);font:var(--text-label-sm);cursor:pointer;background:0 0;border:0;flex-shrink:0;align-items:center;gap:10px;margin:0;padding:0;font-weight:700;display:inline-flex}.ui-switch:disabled{opacity:.55;cursor:wait}.ui-switch__track{border:1px solid color-mix(in srgb, var(--line) 80%, #94a3b8);background:#cbd5e1;border-radius:999px;width:48px;height:28px;transition:background-color .16s,border-color .16s;position:relative}.ui-switch__thumb{background:#fff;border-radius:999px;width:22px;height:22px;transition:transform .16s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f172a33}.ui-switch.is-on .ui-switch__track{background:var(--accent,#0e7490);border-color:color-mix(in srgb, var(--accent,#0e7490) 70%, #0f172a)}.ui-switch.is-on .ui-switch__thumb{transform:translate(20px)}.ui-switch__state{min-width:1.5em;color:var(--muted)}.ui-switch.is-on .ui-switch__state{color:var(--accent,#0e7490)}.legal-page{max-width:720px;padding:0 0 var(--space-xl);margin:0 auto}.legal-page__hero{margin:0 0 var(--page-head-to-content);padding-bottom:var(--space-md);border-bottom:1px solid var(--line)}.legal-page__title{font:var(--text-headline-lg);letter-spacing:-.02em;color:var(--ink);margin:0}.legal-page__lead{margin:var(--space-md) 0 0;max-width:42rem;font:var(--text-body-md);color:var(--muted);line-height:1.65}.legal-page__updated{margin:var(--space-sm) 0 0;font:var(--text-meta);color:var(--muted);opacity:.85}.legal-page__body{gap:var(--space-lg);padding-top:var(--space-lg);display:grid}.legal-section{gap:var(--space-sm);display:grid}.legal-section__title{font:var(--text-title-md);color:var(--ink);letter-spacing:-.01em;margin:0}.legal-section__content{font:var(--text-body-md);color:color-mix(in srgb, var(--ink) 88%, var(--muted));line-height:1.7}.legal-section__content p{margin:0 0 var(--space-sm)}.legal-section__content p:last-child{margin-bottom:0}.legal-section__content ul{gap:6px;margin:0;padding-left:1.2em;display:grid}.legal-section__content li{padding-left:2px}.legal-section__content strong{color:var(--ink);font-weight:700}.faq-list{gap:var(--space-sm);display:grid}.faq-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.faq-item summary{cursor:pointer;font:var(--text-title-md);color:var(--ink);padding:16px 18px;font-size:15px;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"▾";float:right;color:var(--muted);margin-top:4px;font-size:12px}.faq-item[open] summary:after{content:"▴"}.faq-item summary:hover{background:color-mix(in srgb, var(--surface-soft) 70%, white)}.faq-item p{color:var(--muted);line-height:1.7;font:var(--text-body-md);border-top:1px solid #0000;margin:0;padding:0 18px 16px}.faq-item[open] p{border-top-color:var(--line);padding-top:12px}.faq-cta{margin-top:var(--space-md);padding:var(--space-xl) var(--space-lg);text-align:center;background:linear-gradient(165deg, color-mix(in srgb, var(--accent) 8%, white), var(--surface-soft));border:1px solid color-mix(in srgb, var(--accent) 14%, var(--line));border-radius:var(--radius-lg)}.faq-cta h2{font:var(--text-headline-md);margin:0 0 8px}.faq-cta p{margin:0 0 var(--space-md);color:var(--muted);font:var(--text-body-md)}.table-lite{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);gap:1px;display:grid;overflow:hidden}.table-lite>div{gap:var(--space-sm);background:var(--surface);font:var(--text-meta);grid-template-columns:80px 1fr 80px minmax(120px,auto);align-items:center;padding:12px 14px;display:grid}.table-lite strong{color:var(--accent);font-size:14px}@media (max-width:640px){.table-lite>div{grid-template-columns:1fr 1fr}}.ui-media--lift:hover img{transform:scale(1.04)}@media (prefers-reduced-motion:reduce){.ui-media--lift:hover img{transform:none}}.ui-eyebrow{color:var(--accent);font:var(--text-label-sm);letter-spacing:.04em;text-transform:uppercase;margin:0}.ui-muted,.muted{color:var(--muted)}.ui-link{color:var(--accent);cursor:pointer;font-weight:600;font:inherit;background:0 0;border:0;padding:0}.ui-link:hover{text-decoration:underline}.type-display{font:var(--text-display);letter-spacing:-.02em;margin:0}.type-headline-lg{font:var(--text-headline-lg);letter-spacing:-.01em;margin:0}.type-headline-md{font:var(--text-headline-md);margin:0}.type-title-md{font:var(--text-title-md);margin:0}.chip-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ui-dialog{z-index:11000;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.ui-dialog__backdrop{cursor:pointer;background:#0f172a7a;border:0;margin:0;padding:0;position:absolute;inset:0}.ui-dialog__backdrop:disabled{cursor:wait}.ui-dialog__panel{z-index:1;border:1px solid var(--line);background:var(--surface);width:min(400px,100%);color:var(--ink);border-radius:16px;padding:24px;animation:.16s ease-out ui-dialog-in;position:relative;box-shadow:0 24px 64px #0f172a38}@keyframes ui-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.ui-dialog__title{font:var(--text-headline-md);letter-spacing:-.01em;margin:0}.ui-dialog__body{font:var(--text-body-md);color:var(--ink-muted);margin-top:10px;line-height:1.6}.ui-dialog__body p{margin:0}.ui-dialog__check{font:var(--text-body-sm,var(--text-body-md));color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:10px;margin-top:16px;display:flex}.ui-dialog__check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:3px}.ui-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.cover-frame{position:relative}
html{max-width:100vw;overflow-x:hidden}main{width:min(var(--content-max), calc(100% - var(--page-margin) * 2));padding:var(--space-sm) 0 var(--space-xl);margin:0 auto}.toolbar button,.pager a,.detail-nav a,.lead-copy strong{border-radius:var(--radius);background:var(--accent);color:var(--on-accent);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:0;justify-content:center;align-items:center;padding:6px 16px;font-size:13px;font-weight:600;display:inline-flex}.toolbar button:hover,.pager a:hover:not(.disabled),.detail-nav a:hover,.lead-copy strong:hover{background:var(--accent-hover)}.nav-link{border-radius:var(--radius);min-height:32px;color:var(--muted);align-items:center;padding:6px 10px;font-size:14px;font-weight:700;display:inline-flex}.nav-link:hover{background:var(--surface-soft);color:var(--ink)}.gallery-head,.image-detail{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:24px 0;display:grid}.gallery-head.gallery-head--compact{align-items:flex-start;gap:var(--space-md);margin:0 0 var(--page-head-to-content);padding:0}.gallery-head h1,.detail-panel h1{max-width:800px;font-family:var(--font-display);letter-spacing:-.02em;margin:4px 0 8px;font-size:clamp(28px,4vw,36px);font-weight:800;line-height:1.1}.hero-line{justify-content:space-between;align-items:center;gap:16px;padding:8px 0;display:flex}.hero-line h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(24px,4vw,32px);font-weight:800;line-height:1.1}.hero-copy,.gallery-head p,.section-heading p,.empty-state p{color:var(--muted);font-size:16px;line-height:1.6}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:14px;font-weight:700}.tabs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tabs span{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;padding:6px 16px;font-size:13px;font-weight:600;display:inline-flex}.tabs span:hover{background:var(--surface-soft)}.tabs span:first-child{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.home-shelf{grid-template-columns:minmax(280px,1.2fr) minmax(0,3fr);align-items:stretch;gap:16px;margin-top:8px;display:grid}.lead-card{background:var(--surface);height:100%;box-shadow:var(--shadow-sm);border:1px solid var(--line);border-radius:12px;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.lead-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.lead-cover{background:var(--surface-soft);width:100%;height:100%;position:absolute;inset:0}.lead-cover img{object-fit:cover;object-position:top center;width:100%;height:100%}.lead-cover:after{content:"";background:linear-gradient(#0000 0%,#0003 50%,#000000d9 100%);position:absolute;inset:0}.lead-copy{color:#fff;flex-direction:column;gap:4px;width:100%;padding:16px;display:flex;position:absolute;bottom:0;left:0}.lead-copy span{color:#fffc;font-size:12px;font-weight:600}.lead-copy h2{letter-spacing:-.01em;margin:0;font-size:24px;font-weight:800;line-height:1.1}.lead-copy p{color:#ffffffb3;margin:0 0 8px;font-size:13px}.lead-copy strong{color:var(--ink);background:#fff;align-self:flex-start;padding:6px 16px;font-size:12px}.lead-copy strong:hover{background:#ffffffe6}.side-shelf{flex-direction:column;display:flex}.small-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;height:100%;display:grid}.section-block{margin-top:24px}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:4px;display:flex}.section-heading h2{margin:0;font-size:18px;font-weight:700}.character-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;display:grid}.recent-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.image-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;display:grid}.image-grid.gallery{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.character-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.character-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.cover-frame{aspect-ratio:9/16;background:var(--surface-soft);position:relative;overflow:hidden}.cover-frame img,.image-tile img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .3s}.character-card:hover .cover-frame img,.image-tile:hover img{transform:scale(1.02)}.empty-cover{height:100%;color:var(--muted);background:linear-gradient(135deg,#f3f4f6 0%,#e5e7eb 100%);place-items:center;font-size:64px;font-weight:800;display:grid}.card-copy{flex-direction:column;gap:2px;padding:8px;display:flex}.card-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.card-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.placeholder-art{background:linear-gradient(90deg, var(--surface-soft) 0%, #e5e7eb 50%, var(--surface-soft) 100%);background-size:200% 100%;animation:2s linear infinite shimmer}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.placeholder-card{pointer-events:none}.image-tile{aspect-ratio:9/16;border-radius:var(--radius);background:var(--surface-soft);box-shadow:var(--shadow-sm);border:1px solid var(--line);transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.gallery-trigger{border:1px solid var(--line);cursor:zoom-in;width:100%;padding:0;display:block}.image-tile:hover{box-shadow:var(--shadow-md);border-color:#0000001a;transform:translateY(-4px)}.image-tile__badge{z-index:2;border-radius:var(--radius-sm);color:#fff;background:linear-gradient(145deg, color-mix(in srgb, var(--rating-16,#e879a9) 92%, #fff) 0%, var(--rating-16-deep,#db6b9c) 100%);box-shadow:0 2px 10px color-mix(in srgb, var(--rating-16,#e879a9) 45%, transparent);letter-spacing:.02em;padding:4px 10px;font-size:12px;font-weight:700;position:absolute;top:10px;right:10px}.image-tile__likes{z-index:2;border-radius:var(--radius-sm);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ab8;padding:4px 10px;font-size:12px;font-weight:600;position:absolute;top:auto;bottom:8px;right:8px}.image-tile__metrics{z-index:2;pointer-events:none;background:linear-gradient(#0000 0%,#0f172a8c 55%,#0f172ac7 100%);padding:28px 8px 8px;position:absolute;bottom:0;left:0;right:0}.image-metrics{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.image-metrics__item{letter-spacing:.01em;align-items:center;gap:4px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.image-metrics__item svg{opacity:1;flex-shrink:0}.image-metrics__item--view{color:var(--metric-view,#38bdf8)}.image-metrics__item--like{color:var(--metric-like,#fb7185)}.image-metrics__item--fav{color:var(--metric-fav,#fbbf24)}.image-metrics--overlay{text-shadow:0 1px 2px #0006}.image-metrics--overlay .image-metrics__item{color:#fffffff2}.image-metrics--overlay .image-metrics__item--view svg{color:#7dd3fc;filter:drop-shadow(0 1px 2px #00000059)}.image-metrics--overlay .image-metrics__item--like svg{color:#fda4af;filter:drop-shadow(0 1px 2px #00000059)}.image-metrics--overlay .image-metrics__item--fav svg{color:#fcd34d;filter:drop-shadow(0 1px 2px #00000059)}.image-metrics--panel .image-metrics__item{background:var(--surface-soft);border-radius:8px;padding:6px 8px;font-size:12px}.image-metrics--panel .image-metrics__item--view{color:color-mix(in srgb, var(--metric-view) 85%, var(--ink));background:color-mix(in srgb, var(--metric-view) 12%, white)}.image-metrics--panel .image-metrics__item--like{color:color-mix(in srgb, var(--metric-like) 80%, var(--ink));background:color-mix(in srgb, var(--metric-like) 14%, white)}.image-metrics--panel .image-metrics__item--fav{color:color-mix(in srgb, var(--metric-fav) 75%, var(--ink));background:color-mix(in srgb, var(--metric-fav) 16%, white)}.image-tile--locked{cursor:pointer}.image-tile__placeholder{background:radial-gradient(120% 80% at 20% 15%,#94a3b88c 0%,#0000 55%),radial-gradient(100% 70% at 85% 80%,#64748b66 0%,#0000 50%),linear-gradient(160deg,#e2e8f0 0%,#cbd5e1 42%,#94a3b8 100%);place-items:center;width:100%;height:100%;min-height:100%;display:grid;position:relative;overflow:hidden}.image-tile__placeholder-veil{-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px);background:repeating-linear-gradient(-18deg,#0000 0 10px,#ffffff0f 10px 11px),linear-gradient(#0f172a0a 0%,#0f172a2e 100%);position:absolute;inset:0}.image-tile__placeholder-glyph{z-index:1;background:#0f172a2e;border:1.5px solid #ffffff8c;border-radius:999px;width:36px;height:36px;position:relative;box-shadow:0 8px 20px #0f172a1f}.image-tile__placeholder-glyph:before{content:"";border:1.5px solid #ffffffd9;border-bottom:0;border-radius:8px 8px 0 0;width:12px;height:9px;position:absolute;top:11px;left:50%;transform:translate(-50%)}.image-tile__placeholder-glyph:after{content:"";background:#ffffffe0;border-radius:3px;width:16px;height:11px;position:absolute;top:18px;left:50%;transform:translate(-50%)}.image-tile--locked:hover .image-tile__placeholder-glyph{background:#0f172a47;border-color:#ffffffb3}.gate-modal{z-index:10000;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.gate-modal__backdrop{cursor:pointer;background:#0f172a73;border:0;position:absolute;inset:0}.gate-modal__panel{z-index:1;background:var(--surface,#fff);border:1px solid var(--line,#e2e8f0);width:min(400px,100%);color:var(--ink,#0f172a);border-radius:16px;padding:24px;position:relative;box-shadow:0 24px 64px #0f172a33}.gate-modal__actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.gallery-viewer{z-index:9999;color:#fff;background:#000000eb;place-items:center;padding:72px 72px 40px;display:grid;position:fixed;inset:0}.gallery-backdrop{cursor:zoom-out;background:0 0;border:0;position:absolute;inset:0}.gallery-viewer-top{z-index:2;justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;top:22px;left:28px;right:28px}.gallery-viewer-top div:first-child{gap:4px;display:grid}.gallery-viewer-top strong{font-size:16px}.gallery-viewer-top span{color:#ffffff9e;font-size:13px}.gallery-viewer-actions{gap:10px;display:flex}.gallery-viewer-actions a,.gallery-viewer-actions button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff14;border:1px solid #ffffff2e;border-radius:8px;padding:8px 12px}.gallery-viewer-stage{z-index:1;place-items:center;width:100%;height:100%;display:grid;position:relative}.gallery-viewer-stage img{object-fit:contain;border-radius:10px;max-width:100%;max-height:calc(100vh - 132px);box-shadow:0 22px 70px #00000080}.gallery-nav{z-index:2;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:999px;place-items:center;width:48px;height:48px;font-size:36px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-nav:disabled{opacity:.25;cursor:not-allowed}.gallery-nav.previous{left:22px}.gallery-nav.next{right:22px}.gallery-viewer.gallery-float{background:#0f172a8c;padding:32px}.gallery-float-panel{z-index:1;background:var(--surface,#fff);width:min(1100px,100%);max-height:min(80vh,900px);color:var(--ink,#0f172a);border-radius:12px;grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr);gap:0;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 80px #0f172a59}.gallery-float-stage{background:#0f172a;place-items:center;min-height:420px;display:grid;position:relative}.gallery-float-stage img{object-fit:contain;max-width:100%;max-height:min(80vh,900px)}.gallery-float-stage .gallery-nav.previous{left:12px}.gallery-float-stage .gallery-nav.next{right:12px}.gallery-hint{color:#ffffffbf;white-space:nowrap;background:#00000059;border-radius:999px;margin:0;padding:6px 12px;font-size:12px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.gallery-float-side{border-left:1px solid var(--line,#e2e8f0);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 4%, white) 0%, var(--surface) 72px), var(--surface);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.gfs-head{flex-shrink:0;justify-content:flex-end;align-items:center;gap:12px;padding:12px 14px 0;display:flex}.gfs-close{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--muted);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);border-radius:10px;place-items:center;font-size:22px;line-height:1;display:grid}.gfs-close:hover{color:var(--ink);border-color:color-mix(in srgb, var(--ink) 18%, var(--line));background:var(--surface-soft)}.gfs-body{flex-direction:column;flex:auto;gap:16px;min-height:0;padding:8px 16px 16px;display:flex;overflow:auto}.gfs-identity{gap:10px;padding-right:4px;display:grid}.gfs-name{font:var(--text-headline-md);letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere;word-break:break-word;margin:0;padding-right:8px;font-size:clamp(1.15rem,1.05rem + .4vw,1.35rem);font-weight:700;line-height:1.3}.gfs-meta{flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;display:flex}.gfs-series{background:var(--surface-soft,#f1f5f9);min-width:0;max-width:100%;color:var(--ink);transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);border:1px solid #0000;border-radius:999px;align-items:baseline;gap:6px;padding:5px 10px;text-decoration:none;display:inline-flex}.gfs-series__label{font:var(--text-meta);letter-spacing:.02em;color:var(--muted);flex-shrink:0;font-size:11px;font-weight:600}.gfs-series__value{min-width:0;font:var(--text-meta);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:min(14rem,52vw);font-size:12.5px;font-weight:600;line-height:1.35;overflow:hidden}.gfs-series:hover{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:var(--accent-soft,color-mix(in srgb, var(--accent) 10%, white))}.gfs-series:hover .gfs-series__label,.gfs-series:hover .gfs-series__value{color:var(--accent)}.gfs-counter{border:1px solid var(--line);background:var(--surface);font:var(--text-meta);color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.01em;border-radius:999px;flex-shrink:0;margin:0;padding:4px 9px;font-size:12px;font-weight:600}.gfs-status{flex-wrap:wrap;gap:6px;display:flex}.gfs-section{gap:8px;padding-top:2px;display:grid}.gfs-section__title{font:var(--text-label-sm);letter-spacing:.02em;color:var(--muted);margin:0;font-weight:600}.gfs-tags{flex-wrap:wrap;gap:6px;display:flex}.gfs-error{margin:0}.gfs-foot{border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface-soft) 55%, white);flex-shrink:0;padding:12px 14px 16px}.gfs-actions{gap:12px;display:grid}.gfs-actions__msg{margin:0}.gfs-engage{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.gfs-engage__cell{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--ink);justify-items:center;gap:4px;min-width:0;margin:0;padding:12px 6px 10px;display:grid}.gfs-engage__icon{background:var(--surface-soft);border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.gfs-engage__cell--view .gfs-engage__icon{color:var(--metric-view);background:color-mix(in srgb, var(--metric-view) 14%, white)}.gfs-engage__cell--like .gfs-engage__icon{color:var(--metric-like);background:color-mix(in srgb, var(--metric-like) 14%, white)}.gfs-engage__cell--fav .gfs-engage__icon{color:color-mix(in srgb, var(--metric-fav) 85%, #b45309);background:color-mix(in srgb, var(--metric-fav) 18%, white)}.gfs-engage__num{font:var(--text-title-md);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}.gfs-engage__label{font:var(--text-meta);color:var(--muted)}.gfs-engage__btn{appearance:none;cursor:pointer;font:inherit;transition:transform var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out)}.gfs-engage__btn:hover:not(:disabled){box-shadow:var(--shadow-sm);border-color:color-mix(in srgb, var(--ink) 12%, var(--line));transform:translateY(-1px)}.gfs-engage__btn:active:not(:disabled){transform:translateY(0)}.gfs-engage__btn:disabled{opacity:.55;cursor:wait}.gfs-engage__btn.is-on.gfs-engage__cell--like{border-color:color-mix(in srgb, var(--metric-like) 40%, var(--line));background:color-mix(in srgb, var(--metric-like) 10%, white)}.gfs-engage__btn.is-on.gfs-engage__cell--like .gfs-engage__icon{background:color-mix(in srgb, var(--metric-like) 22%, white)}.gfs-engage__btn.is-on.gfs-engage__cell--fav{border-color:color-mix(in srgb, var(--metric-fav) 45%, var(--line));background:color-mix(in srgb, var(--metric-fav) 12%, white)}.gfs-engage__btn.is-on.gfs-engage__cell--fav .gfs-engage__icon{background:color-mix(in srgb, var(--metric-fav) 26%, white)}.gfs-download__btn{border-radius:var(--radius);background:linear-gradient(165deg, color-mix(in srgb, var(--accent) 92%, white), var(--accent));width:100%;color:var(--on-accent);cursor:pointer;text-align:left;box-shadow:0 6px 16px color-mix(in srgb, var(--accent) 28%, transparent);transition:transform var(--duration-fast) var(--ease-out), filter var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);border:0;align-items:center;gap:12px;margin:0;padding:12px 14px;display:flex}.gfs-download__btn:hover:not(:disabled){filter:brightness(1.04);box-shadow:0 8px 20px color-mix(in srgb, var(--accent) 32%, transparent);transform:translateY(-1px)}.gfs-download__btn:active:not(:disabled){transform:translateY(0)}.gfs-download__btn:disabled{opacity:.72;cursor:wait;box-shadow:none}.gfs-download__btn.is-busy{opacity:1;filter:saturate(.92)}.gfs-download__btn.is-free{background:linear-gradient(165deg, color-mix(in srgb, var(--surface,#fff) 88%, var(--accent)), color-mix(in srgb, var(--surface,#fff) 70%, var(--accent)));color:var(--ink,#0f172a);border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line,#e2e8f0));box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 12%, transparent)}.gfs-download__btn.is-free:hover:not(:disabled){filter:none;border-color:color-mix(in srgb, var(--accent) 55%, var(--line,#e2e8f0));background:color-mix(in srgb, var(--accent) 12%, var(--surface,#fff))}.gfs-download__btn.is-free .gfs-download__icon{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.gfs-download__hint{font:var(--text-meta,12px/1.4 system-ui);color:var(--ink-muted,#64748b);margin:8px 2px 0}.gfs-download__hint.is-free{color:color-mix(in srgb, var(--accent) 55%, var(--ink-muted,#64748b));font-weight:600}.gfs-download__icon{background:#ffffff29;border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.gfs-download__spinner{border:2px solid #ffffff47;border-top-color:#fff;border-radius:999px;width:18px;height:18px;animation:.7s linear infinite gfs-download-spin}@keyframes gfs-download-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.gfs-download__spinner{border-top-color:#ffffffb3;animation:none}}.gfs-download__text{gap:2px;min-width:0;display:grid}.gfs-download__text strong{font:var(--text-title-md);letter-spacing:-.01em;font-weight:700}.gfs-download__text small{font:var(--text-meta);opacity:.88}.gallery-close{z-index:2;color:var(--muted,#64748b);cursor:pointer;background:0 0;border:0;font-size:26px;line-height:1;position:absolute;top:8px;right:10px}.gallery-tag{border:1px solid var(--line,#e2e8f0);background:var(--surface-soft,#f1f4f7);max-width:100%;color:var(--ink,#0f172a);font:var(--text-label-sm,600 12px/16px system-ui);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;padding:4px 10px;text-decoration:none;display:inline-flex;overflow:hidden}a.gallery-tag--link{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}a.gallery-tag--link:hover{border-color:color-mix(in srgb, var(--accent,#0e7490) 35%, var(--line));transform:translateY(-1px);box-shadow:0 2px 8px #0f172a14}.gallery-tag--rating{color:#fff;background:linear-gradient(145deg, color-mix(in srgb, var(--rating-16,#e879a9) 88%, #fff), var(--rating-16-deep,#db6b9c));box-shadow:0 1px 6px color-mix(in srgb, var(--rating-16,#e879a9) 35%, transparent);border:0}.gallery-tag--ok{border-color:color-mix(in srgb, var(--success,#059669) 30%, var(--line));background:color-mix(in srgb, var(--success,#059669) 12%, white);color:var(--success,#059669)}.gallery-tag--pose{border-color:color-mix(in srgb, #818cf8 35%, var(--line));color:#4f46e5;background:#f0f1fe}.gallery-tag--outfit{border-color:color-mix(in srgb, #2dd4bf 35%, var(--line));color:#0f766e;background:#e6faf7}.gallery-tag--xp{border-color:color-mix(in srgb, var(--rating-16,#e879a9) 40%, var(--line));background:color-mix(in srgb, var(--rating-16,#e879a9) 14%, white);color:#be185d}.gallery-tag--behavior{border-color:color-mix(in srgb, #fbbf24 40%, var(--line));color:#b45309;background:#fef6e0}.gallery-tag--alias{color:var(--muted);border-style:dashed}@media (max-width:900px){.gallery-float-panel{grid-template-columns:1fr;max-height:92vh}.gallery-float-stage{min-height:280px}.gallery-float-side{border-left:0;border-top:1px solid var(--line,#e2e8f0);max-height:46vh}}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:16px;font-size:14px;font-weight:600;transition:color .2s;display:inline-flex}.back-link:before{content:"←"}.back-link:hover{color:var(--ink)}.toolbar{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:99px;align-items:center;gap:16px;padding:12px 20px;display:flex}.toolbar label{color:var(--muted);align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.toolbar select{border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);appearance:none;cursor:pointer;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236B7280%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-position:right 12px center;background-repeat:no-repeat;background-size:10px;border-radius:8px;outline:none;padding:6px 32px 6px 12px;font-size:14px;font-weight:500}.toolbar select:focus{border-color:var(--blue)}.pager{justify-content:center;align-items:center;gap:16px;margin-top:48px;display:flex}.pager span{color:var(--muted);font-weight:600}.pager .disabled{pointer-events:none;opacity:.4}.image-detail{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:40px}.image-stage{background:var(--surface-soft);border:1px solid var(--line);border-radius:24px;place-items:center;min-height:70vh;padding:32px;display:grid;box-shadow:inset 0 2px 4px #00000005}.image-stage img{width:auto;max-height:80vh;box-shadow:var(--shadow-lg);border-radius:12px}.detail-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:24px;padding:32px;position:sticky;top:100px}.detail-panel h1{margin:8px 0 24px;font-size:32px}.detail-panel dl{flex-direction:column;gap:16px;margin:24px 0 32px;display:flex}.detail-panel dl div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:16px;display:flex}.detail-panel dl div:last-child{border-bottom:none;padding-bottom:0}.detail-panel dt{color:var(--muted);font-weight:500}.detail-panel dd{color:var(--ink);margin:0;font-weight:600}.detail-nav{gap:12px;display:flex}.detail-nav a,.detail-nav span{flex:1}.detail-nav a{background:var(--surface-soft);color:var(--ink)}.detail-nav a:hover{background:var(--line)}.action-panel{gap:12px;margin:20px 0;display:grid}.metric-row,.action-row{flex-wrap:wrap;gap:8px;display:flex}.metric-row span{background:var(--surface-soft);color:var(--muted);border-radius:8px;align-items:center;gap:4px;padding:5px 8px;font-size:12px;font-weight:700;display:inline-flex}.metric-row--icons span:first-child{color:color-mix(in srgb, var(--metric-view,#38bdf8) 80%, var(--ink));background:color-mix(in srgb, var(--metric-view,#38bdf8) 12%, white)}.metric-row--icons span:nth-child(2){color:color-mix(in srgb, var(--metric-like,#fb7185) 80%, var(--ink));background:color-mix(in srgb, var(--metric-like,#fb7185) 14%, white)}.metric-row--icons span:nth-child(3){color:color-mix(in srgb, var(--metric-fav,#fbbf24) 75%, var(--ink));background:color-mix(in srgb, var(--metric-fav,#fbbf24) 16%, white)}.metric-row--icons span:nth-child(4){color:color-mix(in srgb, var(--metric-download,#34d399) 75%, var(--ink));background:color-mix(in srgb, var(--metric-download,#34d399) 14%, white)}.metric-row--icons span svg{opacity:1}.action-row .ui-btn:disabled{opacity:.5;cursor:wait}.simple-page{max-width:720px;padding:var(--space-lg) 0 var(--space-xl);font:var(--text-body-md);color:color-mix(in srgb, var(--ink) 88%, var(--muted));margin:0 auto;line-height:1.7}.simple-page h1{margin:0 0 var(--space-md);font:var(--text-headline-lg);color:var(--ink)}.simple-page h2{margin:var(--space-lg) 0 var(--space-sm);font:var(--text-title-md);color:var(--ink)}.simple-page p{margin:0 0 var(--space-sm)}.auth-box,.stack-form{gap:12px;display:grid}.auth-box{max-width:420px;margin-top:24px}.stack-form input{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:100%;padding:10px 12px}.form-message{color:var(--muted);margin:0;font-size:13px}.table-lite{border:1px solid var(--line);background:var(--surface);border-radius:12px;display:grid;overflow:hidden}.table-lite div{border-bottom:1px solid var(--line);grid-template-columns:80px 1fr 100px 180px;align-items:center;gap:12px;padding:12px;display:grid}.table-lite div:last-child{border-bottom:0}.disabled-image{filter:grayscale();opacity:.65}.empty-state{border:2px dashed var(--line);background:var(--surface-soft);text-align:center;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;padding:64px 32px;display:flex}.empty-state h2{margin:0 0 8px;font-size:24px}@media (max-width:992px){.site-header{border-radius:0;width:100%;margin:0 auto;padding:16px 20px}main{width:calc(100% - 40px)}.home-shelf{grid-template-columns:1fr}.lead-card{min-height:400px}.gallery-head,.image-detail{grid-template-columns:1fr}.toolbar{border-radius:24px;flex-wrap:wrap}.toolbar label{flex:1}.detail-panel{position:static}}@media (max-width:640px){.hero-line{flex-direction:column;align-items:flex-start}.search{display:none}}
