:root{--bg:#0c0c0e;--bg-glow:#c78a5a0a;--surface:#141416;--surface-raised:#1a1a1e;--surface-hover:#222226;--surface-1:var(--surface);--surface-2:var(--surface-raised);--surface-3:var(--surface-hover);--border:#ffffff12;--border-hover:#ffffff24;--border-accent:#c78a5a40;--text:#e0dcd6;--text-sec:#a8a49e;--text-muted:#6e6b66;--text-faint:#444;--accent:#c78a5a;--accent-hover:#d69a6a;--accent-subtle:#c78a5a1a;--accent-border:#c78a5a40;--danger:#b85450;--danger-hover:#c86460;--success:#5a9e6f;--warning:#d4a04a;--radius-sm:6px;--radius:10px;--radius-lg:14px;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:Georgia, "Times New Roman", serif;--font-mono:"SF Mono", "Fira Code", "Consolas", monospace;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--duration-fast:.15s;--duration-base:.2s;--duration-slow:.3s;--ease-out:cubic-bezier(.16, 1, .3, 1);--focus-ring:0 0 0 3px var(--accent-subtle);--focus-outline:2px solid var(--accent);--focus-offset:2px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 30px #0006;--shadow-toast:0 8px 30px #00000059;--z-sticky:100;--z-topbar:1200;--z-modal:500;--z-toast:600}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:60px}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:.95rem;line-height:1.6}.app-root{background:radial-gradient(circle at 10% 0%, var(--bg-glow), transparent 30%), var(--bg);min-height:100vh}.app-root:before{content:"";background:linear-gradient(90deg, transparent 5%, var(--accent) 50%, transparent 95%);height:3px;z-index:calc(var(--z-topbar) + 1);pointer-events:none;position:fixed;top:0;left:0;right:0}:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}button:focus-visible,summary:focus-visible,.nav-list a:focus-visible,.world-tab:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skip-link{background:var(--accent);color:#fff;padding:var(--space-sm) var(--space-lg);z-index:10000;border-radius:0 0 var(--radius-sm) 0;font-size:.85rem;font-weight:600;text-decoration:none;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}.topbar{z-index:var(--z-topbar);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);background:#141416e6;padding:14px 20px;position:sticky;top:0}.topbar h1{margin:0 0 12px;font-size:1.2rem}.nav-list{gap:12px;margin:0;padding:0;list-style:none;display:flex}.nav-list a{color:var(--text-sec);border:1px solid var(--border);border-radius:var(--radius);transition:color var(--duration-base) ease, border-color var(--duration-base) ease, background var(--duration-base) ease;padding:8px 12px;text-decoration:none;display:inline-block}.nav-list a.active,.nav-list a:hover{color:var(--text);border-color:var(--border-hover);background:var(--surface-raised)}.content{width:min(1080px,100%);margin:0 auto;padding:22px}.home-page{place-items:center;min-height:100vh;padding:32px 18px;display:grid}.home-shell{border:1px solid var(--border);background:linear-gradient(180deg, var(--surface), #0c0c0ef5);width:min(1080px,100%);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:28px;overflow:hidden}.home-hero{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#ffffff0a,#0000 44%),linear-gradient(#ffffff05,#0000);padding:34px 28px 24px}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.18em;margin:0 0 12px;font-size:.78rem;font-weight:700}.lead{max-width:62ch;color:var(--text-sec);margin:18px 0 0;font-size:1.02rem;line-height:1.7}.launches{gap:16px;padding:22px;display:grid}.card{border:1px solid var(--border);background:linear-gradient(180deg, var(--surface-raised), #ffffff05);color:inherit;transition:transform var(--duration-fast) ease, border-color var(--duration-fast) ease, background var(--duration-fast) ease;border-radius:22px;padding:22px;text-decoration:none;display:block;position:relative}.card:hover{border-color:var(--border-hover);background:linear-gradient(180deg, var(--surface-hover), #ffffff08);transform:translateY(-2px)}.card h2{letter-spacing:-.04em;color:var(--text);margin:0 0 8px;font-size:1.45rem}.card p{color:var(--text-sec);margin:0;line-height:1.65}.card-meta{color:var(--text-muted);margin-top:12px;font-size:.88rem}.side{border-left:1px solid var(--border);background:var(--surface);padding:22px}.stack{gap:14px;display:grid}.panel{border:1px solid var(--border);background:var(--surface-raised);border-radius:18px;padding:18px}.panel h3{margin:0 0 8px;font-size:1rem}.panel p,.panel li{color:var(--text-sec);margin:0;font-size:.95rem;line-height:1.65}.panel ul{gap:8px;margin:10px 0 0;padding-left:18px;display:grid}.panel ul.compact{gap:10px;margin:0;padding:0;list-style:none}.panel ul.compact li{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff05;padding:10px 12px}.row-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;font-size:.8rem;display:block}.row-value{color:var(--text);font-size:.94rem}.disclosure{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.disclosure summary{cursor:pointer;color:var(--text-sec);-webkit-user-select:none;user-select:none;background:var(--surface-raised);transition:background var(--duration-base) ease, color var(--duration-base) ease;justify-content:space-between;align-items:center;padding:14px 18px;font-size:.88rem;font-weight:600;list-style:none;display:flex}.disclosure summary::-webkit-details-marker{display:none}.disclosure summary:after{content:"";border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);width:8px;height:8px;transition:transform var(--duration-base) ease;margin-left:var(--space-md);flex-shrink:0;transform:rotate(-45deg)}.disclosure[open]>summary{color:var(--text);border-bottom:1px solid var(--border)}.disclosure[open]>summary:after{transform:rotate(45deg)}.disclosure summary:hover{background:var(--surface-hover)}.panel-body{border-top:1px solid var(--border);padding:14px 18px 18px}.data-tools{gap:10px;display:grid}.data-tools-spaced{margin-top:var(--space-md)}.row{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));display:grid}.home-content{grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:0;display:grid}.button-group{flex-wrap:wrap;gap:10px;display:flex}.button{font:inherit;border:1px solid var(--border);background:var(--surface-raised);color:var(--text);border-radius:var(--radius);cursor:pointer;transition:border-color var(--duration-base) ease, background var(--duration-base) ease;padding:10px 14px}.button:hover{border-color:var(--border-hover);background:var(--surface-hover)}.button.primary{background:var(--accent);color:#fff;border-color:#0000}.button.primary:hover{background:var(--accent-hover)}.btn-ghost{color:var(--text-sec);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;font-weight:500;font-family:var(--font-sans);transition:all var(--duration-base) ease;background:0 0;padding:10px 16px}.btn-ghost:hover{border-color:var(--border-hover);color:var(--text)}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--font-sans);transition:background var(--duration-base) ease, transform var(--duration-fast) ease;border:none;padding:10px 20px}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.97)}.btn-add{background:var(--accent-subtle);color:var(--accent);border:1px dashed var(--accent-border);border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-weight:600;font-family:var(--font-sans);transition:all var(--duration-base) ease;padding:8px 14px}.btn-add:hover{border-color:var(--accent);background:#c78a5a2e}.btn-remove{color:var(--danger);opacity:.6;transition:opacity var(--duration-base) ease;cursor:pointer;font-size:.75rem;font-weight:600;font-family:var(--font-sans);white-space:nowrap;background:0 0;border:none;padding:.2rem .5rem}.btn-remove:hover{opacity:1}.hidden-file-input{display:none}button,input[type=file]{font:inherit}button{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);border-radius:var(--radius);cursor:pointer;transition:border-color var(--duration-base) ease, background var(--duration-base) ease, color var(--duration-base) ease;padding:10px 14px}button:hover{border-color:var(--border-hover);background:var(--surface-hover)}.status{min-height:1.2rem;color:var(--text-sec)}.muted{color:var(--text-sec)}.form-control{gap:var(--space-sm);display:grid}.form-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;font-size:.72rem;font-weight:600;display:flex}.constraint-text{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:.68rem}.form-input,.form-textarea,.form-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);width:100%;color:var(--text);font-family:var(--font-sans);transition:border-color var(--duration-base) ease, box-shadow var(--duration-base) ease;padding:10px 12px;font-size:.92rem;line-height:1.5}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted);opacity:.7}.form-textarea{resize:vertical;min-height:68px}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236e6b66' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;padding-right:36px}select option{background:var(--surface-raised);color:var(--text)}.checkbox-control,.radio-option{align-items:center;gap:var(--space-sm);color:var(--text-sec);display:flex}.radio-group{border:1px solid var(--border);border-radius:var(--radius);padding:10px}.radio-options{gap:var(--space-md);flex-wrap:wrap;display:flex}.collapsible-section{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.collapsible-trigger{background:var(--surface-raised);border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text-sec);cursor:pointer;transition:background var(--duration-base) ease, color var(--duration-base) ease;justify-content:space-between;align-items:center;padding:12px 14px;font-size:.88rem;font-weight:600;display:flex}.collapsible-trigger:hover{background:var(--surface-hover);color:var(--text)}.collapsible-content{gap:var(--space-md);padding:14px;display:grid}.action-bar{z-index:var(--z-sticky);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));background:#141416f0;position:sticky;bottom:0}.action-bar-grid{grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) auto auto auto auto;align-items:end;gap:10px;display:grid}.action-status{margin:var(--space-sm) 0 0;min-height:1.2rem;font-size:.86rem}.action-status-success{color:var(--success)}.action-status-error{color:var(--danger)}.action-status-warning{color:var(--warning)}.action-status-info{color:var(--text-sec)}.world-page-native{gap:var(--space-lg);display:grid}.world-header h2{color:var(--text);margin:0;font-size:1.45rem}.world-header p{margin:var(--space-sm) 0 0;color:var(--text-sec)}.world-tabs{gap:var(--space-sm);scrollbar-width:none;grid-template-columns:repeat(9,minmax(110px,1fr));padding-bottom:4px;display:grid;overflow-x:auto}.world-tabs::-webkit-scrollbar{display:none}.world-tab{border:1px solid var(--border);background:var(--surface-raised);color:var(--text-sec);white-space:nowrap;padding:var(--space-sm) 14px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-base) ease;font-size:.78rem;font-weight:500}.world-tab:hover{color:var(--text);border-color:var(--border-hover)}.world-tab.is-active{color:var(--text);border-color:var(--accent);background:var(--accent-subtle)}.world-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:14px}.world-fields{gap:var(--space-md);display:grid}.character-page-native{gap:var(--space-lg);display:grid}.character-header h2{color:var(--text);margin:0;font-size:1.45rem}.character-header p{margin:var(--space-sm) 0 0;color:var(--text-sec)}.character-meta-grid{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-md);gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.character-meta-checks{align-items:center;gap:10px var(--space-lg);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);flex-wrap:wrap;padding:10px;display:flex}.character-section-picker{max-width:360px}.character-sections{gap:var(--space-md);display:grid}.story-page-native{gap:var(--space-lg);display:grid}.story-header h2{color:var(--text);margin:0;font-size:1.45rem}.story-header p{margin:var(--space-sm) 0 0;color:var(--text-sec)}.story-section-picker{max-width:360px}.story-sections,.dynamic-list{gap:var(--space-md);display:grid}.dynamic-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);padding:var(--space-md);gap:10px;display:grid}.dynamic-card.is-nested{background:var(--surface)}.dynamic-card-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.dynamic-card-header h4,.dynamic-card-header h5,.dynamic-card-header h6{margin:0}.nested-dynamic-block{border-top:1px solid var(--border);gap:10px;padding-top:10px;display:grid}.dynamic-card.accent-left{border-left:3px solid var(--accent);border-radius:var(--radius)}.field{margin-bottom:var(--space-md)}.field:last-child{margin-bottom:0}.fields-row{margin-bottom:var(--space-md);flex-wrap:wrap;gap:.85rem;display:flex}.fields-row .field{flex:180px;min-width:160px;margin-bottom:0}.section-top{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding-bottom:.6rem;display:flex}.section-top h2{border-bottom:none;margin-bottom:0;padding-bottom:0}.conditional{display:none}.conditional.visible{animation:fadeIn var(--duration-base) ease;background:var(--accent-subtle);padding:var(--space-lg);border-radius:var(--radius-sm);border-left:3px solid var(--accent);display:block}.conditional.hidden{display:none}.empty-state{color:var(--text-muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);padding:28px 16px;font-size:.88rem;font-style:italic}.kv{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md);background:var(--surface-raised)}.kv h3{color:var(--text-sec);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;font-size:.85rem}.kv p{margin:0}.button-row{flex-wrap:wrap;gap:10px;display:flex}.toast{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);z-index:var(--z-toast);box-shadow:var(--shadow-toast);animation:toastIn var(--duration-slow) var(--ease-out);align-items:center;gap:var(--space-sm);padding:12px 18px;font-size:.85rem;font-weight:500;display:flex;position:fixed;bottom:24px;right:24px}.toast.toast-out{animation:.25s ease-in forwards toastOut}.toast-icon{color:var(--success);font-size:1.1rem;font-weight:700}.modal-overlay{z-index:var(--z-modal);animation:fadeIn var(--duration-fast) ease-out;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;width:90%;max-width:360px;padding:1.75rem}.modal-box p{color:var(--text-sec);margin-bottom:1.25rem;line-height:1.5}.modal-actions{justify-content:center;gap:.65rem;display:flex}.subtitle{color:var(--text-sec);margin-top:.35rem;font-size:.95rem;font-style:italic}.sub-text{color:var(--text-muted);margin-bottom:5px;font-size:.82rem;font-style:italic}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface-hover);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (width<=1100px){.action-bar-grid{grid-template-columns:1fr 1fr}.action-bar-grid>button{width:100%}}@media (width<=980px){.character-meta-grid{grid-template-columns:1fr}}@media (width<=840px){.home-content{grid-template-columns:1fr}.side{border-left:none;border-top:1px solid var(--border)}}@media (width<=768px){.content{padding:var(--space-lg) var(--space-md)}.fields-row .field{flex:100%}.world-tabs{grid-template-columns:repeat(9,minmax(90px,1fr));gap:6px}.action-bar-grid{grid-template-columns:1fr}}@media (width<=640px){.app-root:before{height:2px}.home-shell{border-radius:var(--radius-lg)}.card{padding:var(--space-lg);border-radius:var(--radius-lg)}.dynamic-card{padding:10px}.modal-box{padding:var(--space-lg);margin:var(--space-lg)}.toast{right:var(--space-lg);left:var(--space-lg);bottom:var(--space-lg)}}@media print{.topbar,.action-bar,.button-group,.btn-primary,.btn-ghost,.btn-add,.btn-remove,.radio-group,.nav-list{display:none!important}.conditional{background:0 0;border-left:none;padding:0}.disclosure,.collapsible-section{break-inside:avoid}.form-textarea{border:none;padding:0;height:auto!important}body{color:#000;background:#fff}}
