:root{--color-bg-base: #FAF4E8;--color-bg-elevated: #F2E8D0;--color-bg-stage: #1C1410;--color-bg-card: #FFFDF7;--color-bg-overlay: rgba(28, 20, 16, .88);--color-character-bg: #EDE0C4;--color-fg-primary: #2C1810;--color-fg-muted: #7A6048;--color-fg-light: #F2E4CC;--color-accent: #8B1A1A;--color-accent-ink: #2D5016;--color-accent-gold: #C4952A;--color-accent-glow: rgba(139, 26, 26, .12);--color-stamp: #8B1A1A;--color-stamp-ring: rgba(139, 26, 26, .3);--color-spotlight: rgba(255, 252, 240, .88);--color-success: #2D5016;--color-warning: #C4952A;--color-disabled: #C8B89A;--color-border: rgba(44, 24, 16, .1);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--radius-sm: 6px;--radius-md: 14px;--radius-lg: 24px;--radius-full: 9999px;--font-display: "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--font-body: "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--shadow-card: 0 4px 24px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .05);--shadow-glow: 0 0 28px var(--color-accent-glow)}html,body{margin:0;padding:0;background:var(--color-bg-base);color:var(--color-fg-primary);font-family:var(--font-body)}body{min-height:100svh}#app{width:100vw;min-height:100svh;display:flex;flex-direction:column}.screen{width:100%;min-height:100svh;padding:var(--space-lg);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-md)}.btn-primary{background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-full);padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;min-height:44px;box-shadow:0 4px 16px var(--color-accent-glow);font-family:var(--font-body)}.btn-primary:disabled,.btn-primary[disabled]{background:var(--color-disabled);color:#9e8e78;cursor:not-allowed;box-shadow:none}.btn-outline{background:transparent;border:1.5px solid var(--color-fg-muted);border-radius:var(--radius-full);color:var(--color-fg-muted);font-size:.85rem;padding:8px 16px;cursor:pointer;font-family:var(--font-body)}.card{background:var(--color-bg-card);border-radius:var(--radius-md);padding:var(--space-md);border:1px solid transparent;box-shadow:var(--shadow-card)}.card[aria-disabled=true]{opacity:.5;cursor:not-allowed}.card.selected{border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.tab[aria-disabled=true]{color:var(--color-fg-muted);cursor:not-allowed}@keyframes le-fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes le-characterPop{0%{transform:scale(.72);opacity:0}65%{transform:scale(1.06)}to{transform:scale(1);opacity:1}}@keyframes le-cardReveal{0%{transform:scale(.88);opacity:0}to{transform:scale(1);opacity:1}}@keyframes le-spin{to{transform:rotate(360deg)}}.stagger-line{animation:le-fadeUp .45s cubic-bezier(.22,1,.36,1) both}.char-zone .char-avatar{animation:le-characterPop .55s cubic-bezier(.34,1.56,.64,1) both}[data-layer=free]{animation:le-cardReveal .35s ease-out both}.status-bar{display:flex;justify-content:space-between;align-items:center;font-size:.65rem;font-weight:600;color:var(--color-fg-primary);padding:0 2px 8px;flex-shrink:0}.title-block{border:2px solid var(--color-stamp);border-radius:8px;padding:12px 14px 10px;position:relative}.title-block h1,.title-block h2{margin:0;font-weight:900;color:var(--color-fg-primary);line-height:1.1;text-align:left}.title-block mark{background:var(--color-accent-gold);color:var(--color-fg-primary);padding:0 3px;border-radius:3px;font-style:normal}.title-block .en-word{font-style:italic;color:var(--color-stamp)}.step-badge{background:var(--color-accent);color:var(--color-fg-light);border-radius:4px;font-size:.6rem;font-weight:700;padding:2px 8px;letter-spacing:.08em;text-transform:uppercase;width:fit-content;margin-bottom:4px;display:inline-block}.char-zone{display:flex;align-items:center;justify-content:center;background:var(--color-character-bg);border-radius:var(--radius-md);position:relative}.char-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent-gold) 0%,var(--color-accent) 100%);display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#fff;flex-shrink:0;box-shadow:0 4px 16px #8b1a1a40}.char-avatar--sm{width:48px;height:48px;font-size:1.2rem}.char-avatar--xs{width:36px;height:36px;font-size:.9rem}.episode-tag{font-size:.6rem;color:var(--color-fg-muted);letter-spacing:.06em}.logo-pill{font-size:.7rem;font-weight:700;color:var(--color-fg-muted);letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--color-fg-muted);border-radius:4px;padding:2px 6px;width:fit-content}.s-hero{gap:10px}.s-hero .topbar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.type-preview{display:flex;gap:8px;flex-shrink:0}.type-card-lg{background:var(--color-bg-elevated);border-radius:12px;padding:10px 12px;flex:1.2;border:1.5px solid var(--color-accent-gold)}.type-card-sm{background:var(--color-bg-elevated);border-radius:10px;padding:8px 10px;flex:1}.type-label{font-size:.55rem;font-weight:700;letter-spacing:.08em;color:var(--color-accent-gold);margin-bottom:3px}.type-name-lg{font-size:1.05rem;font-weight:800;color:var(--color-fg-primary);line-height:1.2}.type-name-sm{font-size:.85rem;font-weight:700;color:var(--color-fg-primary)}.type-sub{font-size:.62rem;color:var(--color-fg-muted);margin-top:2px}.social-proof{display:flex;align-items:center;gap:8px;background:var(--color-bg-elevated);border-radius:10px;padding:8px 12px;flex-shrink:0;font-size:.72rem;color:var(--color-fg-muted)}.social-proof strong{color:var(--color-fg-primary)}.cta-wrap{position:relative;flex-shrink:0}.cta-wrap .btn-primary{width:100%}.cta-badge{position:absolute;top:-10px;right:8px;background:var(--color-accent-gold);color:var(--color-fg-primary);font-size:.55rem;font-weight:700;padding:2px 8px;border-radius:10px}.cta-hint{font-size:.62rem;color:var(--color-fg-muted);text-align:center;flex-shrink:0;opacity:.55}.s-picker{gap:10px}.s-picker .subtitle{margin:0;font-size:.75rem;color:var(--color-fg-muted)}.char-carousel{flex:1;min-height:0;display:flex;align-items:stretch;gap:8px;scroll-snap-type:x mandatory;overflow-x:auto}.char-card-main{flex:1 0 78%;scroll-snap-align:center;background:var(--color-bg-elevated);border-radius:18px;border:2px solid var(--color-accent);padding:14px 12px 12px;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden;min-height:220px;cursor:pointer;transition:opacity .25s,filter .25s}.char-carousel:has(.char-card-main[aria-selected=true]) .char-card-main[aria-selected=false]{opacity:.38;filter:saturate(.3);border-color:var(--color-disabled)}.char-card-main[aria-disabled=true]{opacity:.55;filter:saturate(.5);border-color:var(--color-disabled);cursor:not-allowed}.char-card-main .card-num{font-size:.58rem;color:var(--color-fg-muted);letter-spacing:.08em}.char-card-main .name{font-size:1.15rem;font-weight:800;color:var(--color-fg-primary)}.char-card-main .role-tag{font-size:.68rem;color:var(--color-stamp);font-weight:600;border:1px solid var(--color-stamp-ring);border-radius:4px;padding:1px 6px;width:fit-content}.char-card-main .desc{font-size:.68rem;color:var(--color-fg-muted);line-height:1.55}.char-card-main .recommend-badge{position:absolute;top:10px;right:10px;background:var(--color-accent-gold);color:var(--color-fg-primary);border-radius:var(--radius-full);font-size:.55rem;font-weight:700;padding:2px 6px}.char-card-main .char-zone{flex:1;min-height:100px;border-radius:10px}.carousel-dots{display:flex;justify-content:center;gap:6px;flex-shrink:0}.carousel-dots .dot-active{width:20px;height:5px;border-radius:3px;background:var(--color-accent)}.carousel-dots .dot{width:5px;height:5px;border-radius:50%;background:var(--color-disabled)}.carousel-hint{font-size:.62rem;color:var(--color-fg-muted);text-align:center}.s-loading{background:var(--color-bg-stage);color:var(--color-fg-light);justify-content:center;align-items:center;position:relative;min-height:100svh}.loading-stamp{position:absolute;top:20px;left:20px;font-size:.6rem;color:#f5edd859;border:1px solid rgba(245,237,216,.2);padding:2px 8px;border-radius:3px;letter-spacing:.08em;transform:rotate(-5deg)}.loading-center{display:flex;flex-direction:column;gap:20px;align-items:center}.loading-line{font-size:1.1rem;color:#f5edd8;text-align:center;line-height:1.7}.loading-line--dim{opacity:.35;font-size:.9rem}.loading-pct{font-size:3.5rem;font-weight:800;color:var(--color-accent);line-height:1;letter-spacing:-.02em}.loading-label{font-size:.75rem;color:#f5edd880;margin-top:-12px}.loading-char{position:absolute;bottom:24px;right:20px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent-gold),var(--color-accent));display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#fff;box-shadow:0 4px 20px #8b1a1a59}.s-result{gap:8px}.s-result .screen-title{font-size:.6rem;font-weight:700;letter-spacing:.1em;color:var(--color-fg-muted);text-transform:uppercase}.verdict-card{background:var(--color-bg-card);border-radius:20px;padding:16px 14px 14px;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.verdict-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-accent-gold),var(--color-stamp))}.verdict-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.verdict-card-header .meta{font-size:.6rem;color:var(--color-fg-muted)}.verdict-card-header .verified-badge{font-size:.58rem;font-weight:700;background:var(--color-bg-elevated);border-radius:10px;padding:2px 8px;color:var(--color-accent)}.verdict-label-en{font-size:.58rem;font-weight:700;letter-spacing:.12em;color:var(--color-fg-muted);text-transform:uppercase;margin-bottom:2px}.verdict-type-underline{font-size:1.7rem;font-weight:900;color:var(--color-stamp);line-height:1.15;text-decoration:underline;text-decoration-color:var(--color-accent-gold);text-decoration-thickness:3px;text-underline-offset:4px}.verdict-text{font-size:.75rem;color:var(--color-fg-muted);margin:3px 0 6px;line-height:1.5}.verdict-sparkline{width:100%;display:block}.stat-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:6px}.stat-cell{background:var(--color-bg-elevated);border-radius:8px;padding:7px 4px;text-align:center}.stat-value{font-size:1.3rem;font-weight:800;color:var(--color-accent-gold);line-height:1}.stat-label{font-size:.58rem;color:var(--color-fg-muted);margin-top:2px}.difficulty{display:flex;align-items:center;gap:6px;font-size:.72rem;margin-top:4px}.difficulty .stars{color:var(--color-accent-gold);letter-spacing:1px}.difficulty .label{color:var(--color-fg-muted)}.difficulty .value{color:var(--color-stamp);font-weight:700}.quote-block{border-left:3px solid var(--color-accent);padding:6px 10px;background:var(--color-bg-elevated);border-radius:0 8px 8px 0;margin-top:6px}.quote-attr{font-size:.6rem;color:var(--color-fg-muted);margin-bottom:3px}.quote-text{font-size:.78rem;color:var(--color-fg-primary);line-height:1.55;font-style:italic}.verdict-char-peek{position:absolute;top:56px;right:12px;z-index:1}.unlock-card{background:var(--color-bg-elevated);border-radius:var(--radius-md);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.unlock-info{font-size:.78rem;color:var(--color-fg-muted)}.unlock-info strong{display:block;color:var(--color-fg-primary);font-size:.85rem;margin-bottom:2px}.unlock-btn{background:var(--color-accent-gold);color:var(--color-fg-primary);border:none;border-radius:var(--radius-full);padding:8px 14px;font-size:.82rem;font-weight:700;cursor:pointer;flex-shrink:0;min-height:36px;font-family:var(--font-body)}.unlock-btn:disabled,.unlock-btn[disabled]{background:var(--color-disabled);color:#9e8e78;cursor:not-allowed}.result-actions{display:flex;gap:6px;flex-shrink:0}.result-actions .btn-primary{flex:1;font-size:.82rem;padding:10px 12px}.result-actions .btn-secondary{padding:10px 14px;font-size:.82rem;background:transparent;border:1.5px solid var(--color-fg-muted);border-radius:var(--radius-full);color:var(--color-fg-muted);cursor:pointer;font-family:var(--font-body)}.result-foot{font-size:.6rem;color:var(--color-fg-muted);text-align:center;opacity:.5}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
