:root{--color-parchment: #F6EEDF;--color-parchment-deep: #EDE0C8;--color-ink: #2A1A10;--color-ink-muted: #6B4E38;--color-ink-subtle: #98785E;--color-ink-faint: #C8B6A2;--color-ember: #C9511F;--color-ember-hover: #A63F14;--color-ember-glow: rgba(201, 81, 31, .18);--color-moss: #3E754C;--color-moss-light: #EBF4ED;--color-sapphire: #29547E;--color-sapphire-light: #E9F1F8;--color-gold: #C69214;--color-gold-light: #FCF5DC;--color-crimson: #AF2929;--color-surface: #FFFDF8;--color-surface-elevated: #FFF9ED;--color-card: #FFFDF8;--color-card-border: #DBCBB2;--color-border-subtle: #E8DDCB;--color-bg: var(--color-parchment);--color-text: var(--color-ink);--color-text-muted: var(--color-ink-muted);--color-text-subtle: var(--color-ink-subtle);--color-primary: var(--color-ember);--color-success: var(--color-moss);--color-accent: var(--color-sapphire);--color-reward: var(--color-gold);--color-stat-strength: #B83A20;--color-stat-mind: #29547E;--color-stat-order: #75522E;--color-stat-social: #7F2D72;--color-stat-soul: #3E754C;--font-heading: "Cinzel Decorative", "Georgia", serif;--font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-2xs: 10px;--text-xs: 12px;--text-sm: 13.5px;--text-base: 15px;--text-md: 17px;--text-lg: 19px;--text-xl: 22px;--text-2xl: 26px;--text-3xl: 32px;--space-0-5: 2px;--space-1: 4px;--space-1-5: 6px;--space-2: 8px;--space-2-5: 10px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(42, 26, 16, .06);--shadow-md: 0 4px 12px rgba(42, 26, 16, .08), 0 1px 3px rgba(42, 26, 16, .04);--shadow-lg: 0 10px 28px rgba(42, 26, 16, .12), 0 2px 6px rgba(42, 26, 16, .06);--shadow-card: 0 2px 8px rgba(42, 26, 16, .05), 0 0 0 1px var(--color-card-border);--shadow-elevated: 0 8px 24px rgba(42, 26, 16, .14), 0 0 0 1px var(--color-card-border);--duration-fast: .15s;--duration-normal: .26s;--duration-slow: .42s;--easing-spring: cubic-bezier(.34, 1.56, .64, 1);--easing-smooth: cubic-bezier(.2, .8, .2, 1);--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);--header-height: 54px;--tab-bar-height: 64px;--touch-target: 44px}[data-theme=dark]{--color-parchment: #14100D;--color-parchment-deep: #1F1813;--color-ink: #F2E8DC;--color-ink-muted: #C0AC97;--color-ink-subtle: #8E7A68;--color-ink-faint: #4B3B2E;--color-ember: #E06530;--color-ember-hover: #F27845;--color-ember-glow: rgba(224, 101, 48, .25);--color-moss: #569C68;--color-moss-light: #16261B;--color-sapphire: #477DAF;--color-sapphire-light: #15222E;--color-gold: #DEAE2B;--color-gold-light: #2A2312;--color-crimson: #CF4444;--color-surface: #1E1611;--color-surface-elevated: #281F18;--color-card: #1E1611;--color-card-border: #382A20;--color-border-subtle: #2B1F17;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 14px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .55);--shadow-card: 0 2px 8px rgba(0, 0, 0, .35), 0 0 0 1px var(--color-card-border);--shadow-elevated: 0 8px 26px rgba(0, 0, 0, .5), 0 0 0 1px var(--color-card-border)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100dvh;min-height:100dvh;width:100%;overflow:hidden;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation}input,textarea,select{font-family:var(--font-body);font-size:16px!important;color:var(--color-text);user-select:text;-webkit-user-select:text}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-text);letter-spacing:.02em;font-weight:700;-webkit-user-select:none;user-select:none}button{font-family:var(--font-body);border:none;background:none;cursor:pointer;color:inherit;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-user-select:none}button:active{transform:scale(.97);transition:transform var(--duration-fast) var(--easing-smooth)}#root{height:100dvh;width:100%;display:flex;justify-content:center;background-color:#120c07;overflow:hidden}.mobile-viewport{width:100%;max-width:440px;height:100dvh;max-height:100dvh;background-color:var(--color-bg);position:relative;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 40px #0006}.app-main{flex:1 1 0%;min-height:0;height:100%;width:100%;position:relative;overflow:hidden;display:flex;flex-direction:column}.scroll-container{flex:1 1 0%;min-height:0;height:100%;width:100%;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important;overscroll-behavior-y:contain;padding-left:var(--space-4);padding-right:var(--space-4);padding-top:calc(var(--safe-top) + var(--header-height) + var(--space-3));padding-bottom:calc(var(--safe-bottom) + var(--tab-bar-height) + var(--space-8));box-sizing:border-box}.scroll-container--no-header{padding-top:calc(var(--safe-top) + var(--space-4))}.scroll-container::-webkit-scrollbar{display:none}.scroll-container{scrollbar-width:none}.horizontal-scroll-container{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:var(--space-2);width:100%;max-width:100%;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-x!important;overscroll-behavior-x:contain;padding-bottom:var(--space-2);margin-bottom:var(--space-3);scrollbar-width:none;box-sizing:border-box}.horizontal-scroll-container::-webkit-scrollbar{display:none}.horizontal-scroll-item{flex-shrink:0!important;white-space:nowrap!important}.rpg-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-card-border);box-shadow:var(--shadow-card);padding:var(--space-4);position:relative;transition:transform var(--duration-fast) var(--easing-smooth),box-shadow var(--duration-fast)}.rpg-card-interactive:active{transform:scale(.985);box-shadow:var(--shadow-sm)}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-ember-hover));color:#fffdf8;font-weight:800;font-size:var(--text-base);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);min-height:var(--touch-target);box-shadow:0 4px 12px var(--color-ember-glow);transition:all var(--duration-fast);border:1px solid rgba(255,255,255,.15)}.btn-secondary{background:var(--color-surface);color:var(--color-text);font-weight:700;font-size:var(--text-base);padding:var(--space-3) var(--space-4);border-radius:var(--radius-full);min-height:var(--touch-target);border:1px solid var(--color-card-border);box-shadow:var(--shadow-sm)}.btn-ghost{color:var(--color-text-muted);font-weight:700;padding:var(--space-2) var(--space-3);min-height:var(--touch-target)}.rpg-section-header{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-4);margin-bottom:var(--space-2-5)}.rpg-section-title{font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-1-5)}.rpg-section-title:after{content:"";height:1px;width:24px;background:var(--color-card-border);display:inline-block}.badge-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;border:1px solid transparent}@keyframes popIn{0%{transform:scale(.85);opacity:0}70%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes floatUp{0%{transform:translateY(0);opacity:1}to{transform:translateY(-40px);opacity:0}}@keyframes pulseGlow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}@keyframes shakeDamage{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.animate-damage{animation:shakeDamage .35s ease-in-out}.animate-pop{animation:popIn .3s var(--easing-spring)}
