:root{--color-bg:#1a1a2e;--color-bg-card:#ffffff0f;--color-bg-card-hover:#ffffff1a;--color-border:#ffffff14;--color-border-active:#e9456080;--color-primary:#0f3460;--color-accent:#e94560;--color-success:#16c784;--color-warning:#f5a623;--color-info:#5b9bd5;--color-text:#eee;--color-text-secondary:#ccc;--color-text-muted:#999;--color-text-disabled:#666;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--fs-xs:12px;--fs-sm:14px;--fs-base:16px;--fs-md:17px;--fs-lg:20px;--fs-xl:26px;--fs-xxl:32px;--lh-tight:1.3;--lh-normal:1.6;--lh-relaxed:1.8;--duration-fast:.15s;--duration-normal:.3s;--duration-slow:.5s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--top-bar-height:48px;--attr-cell-min-h:72px;--choice-btn-min-h:52px}*,:before,:after{box-sizing:border-box;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;margin:0;padding:0}input,textarea{-webkit-user-select:auto;user-select:auto}html{-webkit-text-size-adjust:100%;overscroll-behavior:none;font-size:16px}body{background-color:var(--color-bg);color:var(--color-text);font-family:-apple-system,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;line-height:var(--lh-normal);-webkit-overflow-scrolling:touch;-webkit-font-smoothing:antialiased;height:100dvh;overflow:hidden auto}#root{min-height:100dvh}.main-content{padding-top:calc(var(--top-bar-height) + var(--safe-top));min-height:100dvh}.loading-screen,.error-screen{min-height:100dvh;color:var(--color-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.loading-emoji,.error-emoji{margin-bottom:12px;font-size:48px}.loading-screen p,.error-screen p{color:var(--color-text-muted);font-size:var(--fs-base)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flex-center{justify-content:center;align-items:center;display:flex}.flex-col-center{flex-direction:column;justify-content:center;align-items:center;display:flex}.tabular-nums{font-variant-numeric:tabular-nums}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUpFade{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.animate-fade-in{animation:fadeIn var(--duration-normal) ease forwards}.animate-slide-up{animation:slideUpFade .35s var(--ease-out) forwards}.animate-scale-in{animation:scaleIn var(--duration-normal) var(--ease-out) forwards}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.main-content{padding-top:calc(var(--top-bar-height) + var(--safe-top));padding-bottom:calc(20px + var(--safe-bottom));min-height:100dvh}.loading-screen,.error-screen{min-height:100dvh;font-size:var(--fs-md);color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.loading-emoji,.error-emoji{font-size:48px}@media (width>=768px){::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}}.top-bar{height:calc(var(--top-bar-height) + var(--safe-top));padding-top:var(--safe-top);background-color:var(--color-bg);z-index:100;border-bottom:1px solid var(--color-border);flex-direction:column;justify-content:center;display:flex;position:fixed;top:0;left:0;right:0}.top-bar__content{height:var(--top-bar-height);justify-content:space-between;align-items:center;padding:0 16px;display:flex}.top-bar__left{flex-shrink:0}.top-bar__icon{font-size:18px}.top-bar__center{position:absolute;left:50%;transform:translate(-50%)}.top-bar__title{letter-spacing:1px;white-space:nowrap;font-size:15px;font-weight:700}.top-bar__right{text-align:right;flex-shrink:0}.top-bar__day{color:var(--color-text-secondary);font-size:13px}.top-bar__day strong{color:var(--color-text);font-size:15px}.top-bar__day-sep{opacity:.4;margin:0 2px}.top-bar__rank{text-align:center;color:var(--color-accent);letter-spacing:1px;padding:2px 12px 6px;font-size:11px;font-weight:600}.start-screen{min-height:100dvh;padding:40px 24px;padding-top:calc(40px + var(--safe-top));padding-bottom:calc(40px + var(--safe-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.start-screen__content{width:100%;max-width:320px}.start-screen__logo{animation:scaleIn .5s var(--ease-out);margin-bottom:16px;font-size:64px}.start-screen__title{font-size:var(--fs-xl);letter-spacing:2px;margin-bottom:8px;font-weight:800;color:var(--color-text)!important}.start-screen__subtitle{font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:36px}.cta-btn{width:100%;min-height:var(--choice-btn-min-h);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--duration-fast) ease, opacity var(--duration-fast) ease;color:inherit;border-radius:12px;font-size:17px;font-weight:600}.cta-btn:active{opacity:.9;transform:scale(.97)}.cta-btn--primary{background:linear-gradient(135deg,#0f3460,#162d50);border:none;margin-bottom:10px;color:#fff!important}.cta-btn--secondary{background:0 0;border:1px solid #ffffff26;font-size:15px;color:var(--color-text-secondary)!important}.start-screen__continue{width:100%;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;margin:16px 0;padding:8px 0;display:block;color:var(--color-info)!important}.start-screen__footer{font-size:var(--fs-xs);color:var(--color-text-disabled);margin-top:28px}.start-screen__section-label{font-size:var(--fs-sm);margin-bottom:16px;color:var(--color-text-secondary)!important}.start-screen__character-list{flex-direction:column;gap:10px;width:100%;margin-bottom:12px;display:flex}.char-card{cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;background:#ffffff14;border:2px solid #ffffff1f;border-radius:14px;flex-direction:column;align-items:flex-start;width:100%;padding:14px 16px;transition:border-color .2s,background .2s;display:flex;color:var(--color-text)!important}.char-card:active,.char-card:focus{background:#e945601a;border-color:#e94560;outline:none;transform:scale(.98)}.char-card__icon{margin-bottom:4px;font-size:24px}.char-card__name{margin-bottom:2px;font-size:17px;font-weight:700;color:var(--color-text)!important}.char-card__desc{margin-bottom:8px;font-size:13px;color:var(--color-text-muted)!important}.char-card__stats{flex-wrap:wrap;gap:10px;display:flex}.char-card__stat{white-space:nowrap;font-size:12px;font-weight:600;color:var(--color-text-secondary)!important}.cta-btn--ghost{cursor:pointer;background:0 0;border:none;margin-top:4px;padding:8px 0;font-size:14px;color:var(--color-text-muted)!important}.attr-panel{padding:8px 16px}.attr-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.attr-grid--hidden{margin-top:8px}.attr-cell{background:var(--color-bg-card);text-align:center;border:1px solid var(--color-border);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;display:flex}.attr-cell__icon{font-size:18px}.attr-cell__value{color:var(--color-text);font-size:20px;font-weight:700}.attr-bar{background:#ffffff1a;border-radius:2px;width:100%;height:4px;margin-top:4px;overflow:hidden}.attr-bar__fill{border-radius:2px;height:100%;transition:width .4s ease-out}.attr-cell__value.updating{animation:.3s pulse}.attr-toggle{width:100%;color:var(--color-info);font-size:var(--fs-xs);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:6px 0;display:block}.choice-btn{width:100%;min-height:var(--choice-btn-min-h);background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-text);font-size:var(--fs-base);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform var(--duration-fast) ease, background-color var(--duration-fast) ease, border-color var(--duration-fast) ease;border-radius:12px;align-items:center;margin-bottom:10px;padding:14px 16px;line-height:1.4;display:flex}.choice-btn:active:not(:disabled){background-color:var(--color-bg-card-hover);border-color:var(--color-border-active);transform:scale(.97)}.choice-btn--locked{opacity:.45;pointer-events:none}.choice-btn__emoji{flex-shrink:0;margin-right:12px;font-size:22px}.choice-btn__text{text-align:left;flex:1}.choice-btn__lock{font-size:var(--fs-xs);color:var(--color-text-disabled);white-space:nowrap;margin-left:8px}.result-panel{border-left:3px solid var(--color-accent);animation:slideUpFade .35s var(--ease-out);background:#00000040;border-radius:12px;margin:12px 16px;padding:16px}.result-panel--ending{border-left-color:var(--color-success)}.result-panel__text{font-size:var(--fs-sm);line-height:var(--lh-relaxed);color:var(--color-text-secondary)}.result-panel__changes{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.result-panel__change{font-size:var(--fs-xs);background:#ffffff0f;border-radius:6px;padding:3px 8px;font-weight:600}.result-panel__change--pos{color:var(--color-success)}.result-panel__change--neg{color:var(--color-accent)}.continue-btn{background:var(--color-primary);width:auto;color:var(--color-text);font-size:var(--fs-md);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--duration-fast) ease, opacity var(--duration-fast) ease;border:none;border-radius:24px;margin:14px auto 0;padding:11px 32px;font-weight:600;display:block}.continue-btn:active{opacity:.9;transform:scale(.96)}.game-screen{padding-bottom:40px}.game-screen__empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.game-screen__empty-icon{margin-bottom:12px;font-size:48px}.game-screen__empty p{color:var(--color-text-muted);font-size:var(--fs-sm)}.event-section{padding:20px 16px 8px}.event-title{font-size:var(--fs-lg);align-items:center;gap:8px;margin-bottom:10px;font-weight:700;display:flex}.event-title span:first-child{font-size:22px}.event-desc{font-size:var(--fs-base);color:var(--color-text-secondary);white-space:pre-line;line-height:1.75}.event-expand-btn{width:100%;color:var(--color-info);font-size:var(--fs-sm);cursor:pointer;text-align:left;background:0 0;border:none;padding:10px 0 4px;display:block}.event-expand-btn:hover{opacity:.8}.choices-container{flex-direction:column;gap:10px;padding:8px 16px 16px;display:flex}.ending-screen{min-height:100dvh;padding:40px 20px;padding-top:calc(48px + var(--safe-top));padding-bottom:calc(30px + var(--safe-bottom));flex-direction:column;align-items:center;display:flex}.ending-screen__content{width:100%;max-width:380px;animation:slideUpFade .5s var(--ease-out)}.ending-header{text-align:center;margin-bottom:20px}.ending-header__emoji{margin-bottom:8px;font-size:64px;display:block}.ending-header__name{font-size:var(--fs-xl);margin-bottom:4px;font-weight:800}.ending-header__rarity{font-size:var(--fs-sm);font-weight:600}.ending-desc{text-align:center;font-size:var(--fs-sm);color:var(--color-text-secondary);line-height:var(--lh-relaxed);margin-bottom:24px}.stats-card{color:#1a1a2e;background:#fff;border-radius:16px;overflow:hidden}.stats-card__header{color:#fff;font-size:var(--fs-md);text-align:center;background:linear-gradient(135deg,#0f3460,#162d50);padding:14px 20px;font-weight:700}.stats-card__body{padding:16px 20px}.stats-row--highlight{padding-bottom:12px}.stats-row--highlight .stats-value{font-size:var(--fs-lg);color:#e94560;font-weight:800}.stats-divider{background:#00000014;height:1px;margin:8px 0 14px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat-item{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.stat-item__label{font-size:var(--fs-xs);color:#666}.stat-item__value{font-size:var(--fs-sm);color:#1a1a2e;font-weight:700}.stats-card__quote{text-align:center;font-style:italic;font-size:var(--fs-sm);color:#0f3460;background:#0f34600f;border-top:1px solid #0000000f;padding:12px 20px}
