:root{--color-parchment-base: #f4ead5;--color-parchment-card: rgba(248, 243, 230, .9);--color-parchment-deep: #e8d9b8;--color-parchment-dark: #d5c09a;--color-parchment-light: #faf6ee;--color-ink-base: #1a1510;--color-ink-muted: #594025;--color-ink-subtle: #8c8275;--color-ink-light: #e2d9ca;--color-ink-bright: #f1e9da;--color-ink-dark-bg: #181410;--color-ink-dark-surface: #0a0806;--color-border-parchment: #6d4c28;--color-border-parchment-light: #9a7346;--color-border-parchment-subtle: rgba(109, 76, 40, .2);--color-border-gold: #d4af37;--color-border-gold-subtle: rgba(212, 175, 55, .3);--color-border-crimson: #b81f36;--color-accent-crimson: #b81f36;--color-accent-crimson-dark: #8b1d24;--color-accent-crimson-deep: #801222;--color-accent-crimson-subtle: rgba(184, 31, 54, .15);--color-accent-gold: #c59b27;--color-accent-gold-bright: #d4af37;--color-accent-gold-dark: #b8860b;--color-accent-gold-subtle: rgba(197, 155, 39, .2);--color-accent-amber: #d97706;--color-accent-amber-dark: #92400e;--color-condition-weary: #c0392b;--color-condition-weary-bg: rgba(192, 57, 43, .1);--color-condition-miserable: #8e44ad;--color-condition-miserable-bg: rgba(142, 68, 173, .1);--color-condition-wounded: #d35400;--color-condition-wounded-bg: rgba(211, 84, 0, .1);--color-condition-dying: #2c3e50;--color-condition-dying-bg: rgba(44, 62, 80, .1);--color-status-success: #4caf50;--color-status-danger: #d32f2f;--gauge-fill-endurance-start: #c54a38;--gauge-fill-endurance-end: #8b1d24;--gauge-fill-hope-start: #d4af37;--gauge-fill-hope-end: #b8860b;--gauge-fill-shadow-start: #4a4a4a;--gauge-fill-shadow-end: #1a1a1a;--shadow-parchment-sm: 0 2px 4px rgba(43, 29, 14, .1);--shadow-parchment-md: 0 4px 10px rgba(43, 29, 14, .2);--shadow-parchment-lg: 0 8px 24px rgba(43, 29, 14, .25);--shadow-parchment-inset: inset 0 0 12px rgba(109, 76, 40, .15);--shadow-glow-gold: 0 0 8px rgba(197, 155, 39, .35);--shadow-glow-crimson: 0 0 10px rgba(184, 31, 54, .3);--shadow-modal-dark: 0 10px 40px rgba(0, 0, 0, .8);--primary-color: var(--color-accent-crimson);--text-color: var(--color-ink-base);--parchment-bg: var(--color-parchment-base);--parchment-deep: var(--color-parchment-deep);--parchment-dark: var(--color-parchment-dark);--parchment-border: var(--color-border-parchment);--parchment-border-light: var(--color-border-parchment-light);--parchment-ink: var(--color-ink-base);--parchment-gold: var(--color-accent-gold);--parchment-red: var(--color-accent-crimson-dark);--parchment-shadow: rgba(43, 29, 14, .2);--parchment-glow: var(--shadow-glow-gold);--space-3xs: .15rem;--space-2xs: .25rem;--space-xs: .35rem;--space-sm: .5rem;--space-md: .75rem;--space-base: 1rem;--space-lg: 1.25rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 3rem;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-pill: 20px;--radius-full: 50%;--border-width-hairline: 1px;--border-width-thin: 1.5px;--border-width-thick: 2px;--font-title: "Aniron", Georgia, "Times New Roman", serif;--font-tolkien: var(--font-title);--font-body: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-button: "Montserrat", sans-serif;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .05em;--letter-spacing-wider: .08em;--font-size-2xs: 1.1rem;--font-size-xs: 1.3rem;--font-size-sm: 1.5rem;--font-size-base: 1.75rem;--font-size-lg: 2rem;--font-size-xl: 2.4rem;--font-size-2xl: 3rem;--font-size-3xl: 3.5rem;--font-size-text: 1.35cqw;--font-size-title: 3cqw;--title-hero-font: var(--font-title);--title-hero-color: var(--color-accent-crimson-dark);--title-section-font: var(--font-title);--title-section-color: var(--color-border-parchment);--title-top: 5.5%;--title-left: 50%;--title-width: 34%;--title-height: 5.3%;--title-font-size: var(--font-size-title);--title-pencil-size: 2cqw;--title-pencil-gap: .6cqw;--info-top: 15.1%;--info-left: 15.5%;--info-width: 21%;--info-font-size: var(--font-size-text);--info-row-height: 1.89cqw;--info-text-color: #000;--info-pencil-size: 1.5cqw;--info-pencil-offset: .6cqw;--portrait-top: 14.99%;--portrait-left: 43.41%;--portrait-width: 13.25%;--portrait-height: 17.18%;--portrait-padding: .35cqw;--histoire-top: 15.4%;--histoire-left: 60%;--histoire-width: 13.8%;--histoire-height: 19.6%;--histoire-font-size: var(--font-size-text);--histoire-line-height: 1.89cqw;--histoire-pencil-size: 1.5cqw;--histoire-pencil-offset: .6cqw;--equipment-top: 15.6%;--equipment-left: 77%;--equipment-width: 14.8%;--equipment-height: 19.6%;--stat-tn-body-left: 32.4%;--stat-tn-body-top: 48.8%;--stat-body-left: 32.3%;--stat-body-top: 53.9%;--stat-tn-heart-left: 50.2%;--stat-tn-heart-top: 48.8%;--stat-heart-left: 50%;--stat-heart-top: 53.9%;--stat-tn-wits-left: 67.8%;--stat-tn-wits-top: 48.8%;--stat-wits-left: 67.4%;--stat-wits-top: 53.9%;--stat-end-max-left: 80.2%;--stat-end-max-top: 43.2%;--stat-end-cur-left: 84.5%;--stat-end-cur-top: 43.2%;--stat-load-left: 88.1%;--stat-load-top: 43.2%;--stat-hope-max-left: 80.2%;--stat-hope-max-top: 56.1%;--stat-hope-cur-left: 84.6%;--stat-hope-cur-top: 56.1%;--stat-shadow-temp-left: 88%;--stat-shadow-temp-top: 56.1%;--stat-shadow-perm-left: 91.3%;--stat-shadow-perm-top: 56.1%;--stat-parry-left: 78.5%;--stat-parry-top: 89.2%;--stat-valour-left: 12.2%;--stat-valour-top: 39.2%;--stat-wisdom-left: 17.8%;--stat-wisdom-top: 39.2%;--stat-adventure-left: 9.4%;--stat-adventure-top: 48.5%;--stat-progression-left: 15%;--stat-progression-top: 48.5%;--stat-fellowship-left: 20.5%;--stat-fellowship-top: 48.5%}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;min-height:100%;overflow-x:hidden;overflow-y:auto}html{font-size:12px}body{background-color:var(--color-ink-base, #1a1510);font-family:var(--font-body, "Montserrat", sans-serif);margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column}button,input[type=button],input[type=submit],input[type=reset],.tor-btn{font-family:var(--font-button, "Montserrat", sans-serif)}tor-root{display:flex;flex-direction:column;width:100%;min-height:100vh;flex:1}.app-root-shell{display:flex;flex-direction:column;width:100%;min-height:100vh;flex:1}.app-view-outlet{display:flex;flex-direction:column;width:100%;flex:1;min-height:calc(100vh - 60px)}button,.tor-btn{font-family:var(--font-button, "Montserrat", sans-serif)}.vector-sheet-container{width:100%;max-width:1500px;margin:0 auto;min-height:100vh;padding:var(--space-lg);box-sizing:border-box;container-type:inline-size;container-name:vector-sheet;background:radial-gradient(circle at 10% 20%,#f4ead5f2,#e8d9b8e6),linear-gradient(135deg,var(--color-parchment-deep) 0%,var(--color-parchment-base) 50%,var(--color-parchment-dark) 100%);color:var(--color-ink-base);font-family:var(--font-body);display:flex;flex-direction:column;gap:var(--space-lg)}.parchment-card{position:relative;background:var(--color-parchment-card);border:var(--border-width-thick) solid var(--color-border-parchment);border-radius:var(--radius-sm);box-shadow:var(--shadow-parchment-inset),var(--shadow-parchment-md);padding:var(--space-lg);box-sizing:border-box}.parchment-card:before,.parchment-card:after{content:"\25c8";position:absolute;font-size:var(--space-base);color:var(--color-border-parchment-light);line-height:1}.parchment-card:before{top:3px;left:3px}.parchment-card:after{bottom:3px;right:3px}.sheet-title-hero{font-family:var(--title-hero-font);font-size:clamp(1.8rem,var(--font-size-title),3rem);color:var(--title-hero-color);margin:0;letter-spacing:var(--letter-spacing-wide);text-shadow:1px 1px 0 rgba(255,255,255,.7)}.sheet-subtitle-hero{font-size:clamp(1rem,1.4cqw,1.4rem);color:var(--color-ink-base);font-weight:var(--font-weight-semibold);opacity:.9}.attributes-triad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.attribute-box{display:flex;flex-direction:column;align-items:center;background:#fff6;border:var(--border-width-thin) solid var(--color-border-parchment);border-radius:var(--radius-md);padding:var(--space-md);text-align:center}.attribute-name{font-family:var(--font-title);font-size:1.35rem;color:var(--color-accent-crimson-dark);margin-bottom:var(--space-xs)}.skills-matrix-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.skill-category-col{display:flex;flex-direction:column;gap:var(--space-xs)}.skill-category-title{font-family:var(--title-section-font);font-size:1.05rem;color:var(--title-section-color);border-bottom:var(--border-width-thick) solid var(--color-border-parchment-light);padding-bottom:var(--space-2xs);margin-bottom:var(--space-2xs)}.gauge-meter-box{display:flex;flex-direction:column;gap:var(--space-sm)}.gauge-meter-header{display:flex;justify-content:space-between;font-weight:var(--font-weight-bold);font-size:1rem}.condition-badges-row{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.condition-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);font-size:.85rem;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);border:var(--border-width-thin) solid currentColor;opacity:.4;filter:grayscale(80%);transition:all .2s ease}.condition-badge.active{opacity:1;filter:grayscale(0%);box-shadow:0 0 8px currentColor}.condition-badge-weary{color:var(--color-condition-weary);background:var(--color-condition-weary-bg)}.condition-badge-miserable{color:var(--color-condition-miserable);background:var(--color-condition-miserable-bg)}.condition-badge-wounded{color:var(--color-condition-wounded);background:var(--color-condition-wounded-bg)}.condition-badge-dying{color:var(--color-condition-dying);background:var(--color-condition-dying-bg)}.wargear-table{width:100%;border-collapse:collapse;font-size:.95rem}.wargear-table th,.wargear-table td{padding:.6rem .8rem;text-align:left;border-bottom:var(--border-width-hairline) solid var(--color-border-parchment-light)}.wargear-table th{font-family:var(--title-section-font);color:var(--title-section-color);font-weight:var(--font-weight-bold);text-transform:uppercase;font-size:.85rem;border-bottom:var(--border-width-thick) solid var(--color-border-parchment)}@container vector-sheet (max-width: 1050px){.sheet-top-row{grid-template-columns:1fr 1fr}.travel-tresor-panel{grid-column:span 2}.sheet-middle-row,.sheet-bottom-combat-row{grid-template-columns:1fr}}@container vector-sheet (max-width: 768px){.sheet-name-banner{flex-direction:column;text-align:center}.sheet-top-row{grid-template-columns:1fr}.travel-tresor-panel{grid-column:span 1}.attributes-triad-grid,.skills-matrix-grid{grid-template-columns:1fr}}.portrait-container{position:absolute;top:var(--portrait-top);left:var(--portrait-left);width:var(--portrait-width);height:var(--portrait-height);padding:var(--portrait-padding);display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;box-sizing:border-box;transition:all .2s ease}.portrait-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4cqw;background-color:#e6dcc840;border:.12cqw dashed rgba(184,31,54,.4);border-radius:.3cqw;color:var(--primary-color);transition:all .2s ease}.portrait-container:hover .portrait-placeholder{background-color:#e6dcc873;border-color:var(--primary-color);border-style:solid}.portrait-img{width:100%;height:100%;object-fit:cover;border-radius:.2cqw;box-shadow:0 .1cqw .4cqw #0000004d}.portrait-overlay{position:absolute;top:var(--portrait-padding);left:var(--portrait-padding);right:var(--portrait-padding);bottom:var(--portrait-padding);background-color:#0000008c;border-radius:.2cqw;display:flex;align-items:center;justify-content:center;gap:1.2cqw;opacity:0;pointer-events:none;transition:opacity .2s ease}.portrait-container:hover .portrait-overlay{opacity:1;pointer-events:auto}.portrait-action-btn{background:#0006;border:.12cqw solid rgba(255,255,255,.4);border-radius:50%;padding:.6cqw;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.portrait-action-btn:hover{transform:scale(1.15);background:var(--primary-color);border-color:#fff}.portrait-delete-btn:hover{background:#d32f2f;border-color:#fff}.histoire-textarea{width:100%;height:100%;background:transparent;border:none;outline:none;resize:none;padding:0;margin:0;font-family:Montserrat,serif;font-size:var(--histoire-font-size);font-weight:600;line-height:var(--histoire-line-height);color:var(--info-text-color);overflow:hidden;transition:all .2s ease}.histoire-textarea::placeholder{color:#00000073;font-family:Montserrat,serif;font-weight:600;opacity:.85}.character-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;background:#fffcf50a;border:1px solid rgba(184,31,54,.18);border-radius:3px;transition:background .18s ease,border-color .18s ease}.character-card:hover{background:#fffcf512;border-color:#b81f3659}.shadow-desc{font-size:var(--font-size-sm);color:#a89d8c;line-height:1.4}.recap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.btn-secondary{background:transparent;border:1px solid rgba(255,255,255,.2);color:#a89d8c}.btn-secondary:hover{background:#ffffff14;color:#fff}.btn-primary{background:#b81f36cc;border:1px solid #b81f36;color:#fff}.btn-primary:hover{background:#b81f36;box-shadow:0 0 12px #b81f3680}.card-header{display:flex;align-items:center;justify-content:space-between;gap:.4cqw;border-bottom:.1cqw solid rgba(184,31,54,.3);padding-bottom:.3cqw}.skill-name{font-family:Montserrat,sans-serif;font-size:.75cqw;font-weight:600;color:#2b2219}
