:root{color:#e7e0ce;background:#181816;font-family:Lora,Noto Sans SC,Microsoft YaHei,serif;line-height:1.5;font-weight:400;--td-ink: #0d0b09;--td-charcoal: #151210;--td-stone: #1f1c19;--td-panel: rgba(28, 24, 20, .94);--td-panel-soft: rgba(38, 32, 26, .75);--td-parchment: #f0ddb5;--td-muted: #9f947f;--td-rust: #8b3a2a;--td-rust-bright: #c66244;--td-gold: #c99c56;--td-glimmer: #62b9a1;--td-glimmer-dim: #21544d;--td-line: rgba(239, 216, 174, .12);--td-shadow: rgba(0, 0, 0, .65);--td-font-header: "Cinzel", serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--td-parchment);background:radial-gradient(circle at 50% 50%,rgba(98,185,161,.05),transparent 60rem),linear-gradient(#0d0b09d9,#0d0b09fa),url(/concept/map.png) center/cover fixed,url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.08'/%3E%3C/svg%3E"),#080909}body:before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";background:linear-gradient(90deg,rgba(98,185,161,.04),transparent 30%,rgba(139,58,42,.04) 70%,transparent),repeating-linear-gradient(0deg,transparent 0 4px,rgba(255,255,255,.01) 4px 5px);mix-blend-mode:screen}h1,h2,h3,.brand strong,.eyebrow,.primary-action{font-family:var(--td-font-header);letter-spacing:.05em}button,input,select,textarea{font:inherit}button,a{color:inherit}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh;background:linear-gradient(90deg,rgba(13,11,9,.98),transparent 40%)}.sidebar{display:flex;flex-direction:column;gap:24px;padding:32px 20px;background:linear-gradient(180deg,#0a0807fc,#16120ef7),url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23noise)' opacity='0.05'/%3E%3C/svg%3E");border-right:2px solid rgba(98,185,161,.15);box-shadow:inset -10px 0 20px #00000080,15px 0 45px var(--td-shadow);position:relative}.sidebar:after{content:"";position:absolute;top:0;right:0;width:1px;height:100%;background:linear-gradient(180deg,transparent,var(--td-gold),transparent);opacity:.3}.brand{display:flex;gap:14px;align-items:center;padding:16px;background:linear-gradient(135deg,#62b9a11a,#8b3a2a1a),#ffffff05;border:1px solid rgba(240,221,181,.12);border-radius:4px;position:relative;overflow:hidden}.brand:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--td-glimmer),transparent);animation:shimmer 4s infinite linear}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.brand svg{color:var(--td-glimmer);filter:drop-shadow(0 0 8px rgba(98,185,161,.4))}.brand strong{display:block;font-size:1.1em;color:#fff4d5}.brand span{display:block;color:var(--td-muted);font-size:12px;font-family:var(--td-font-header)}.nav-list{display:grid;gap:8px;position:relative;z-index:10}.nav-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:10px 16px;border-radius:4px;text-decoration:none;color:var(--td-muted);border:1px solid transparent;transition:all .25s cubic-bezier(.4,0,.2,1);text-shadow:0 1px 2px rgba(0,0,0,.8)}.nav-link svg{color:var(--td-glimmer-dim);transition:color .25s;filter:drop-shadow(0 1px 2px rgba(0,0,0,.8))}.nav-link.active,.nav-link:hover{color:#fff;background:linear-gradient(90deg,#62b9a126,#8b3a2a1a),#14100d99;border-color:#62b9a14d;box-shadow:inset 4px 0 0 -1px var(--td-glimmer),inset 0 0 0 1px #ffffff0d,0 4px 10px #0006}.nav-link.active svg,.nav-link:hover svg{color:var(--td-glimmer)}.sidebar-note{display:flex;gap:10px;margin-top:auto;padding:14px;color:var(--td-muted);background:#080c0b99;border:1px solid rgba(98,185,161,.12);border-radius:4px;font-size:13px;font-style:italic}.main-panel{min-width:0}.page{padding:40px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:32px}.page-header h1{margin:8px 0 12px;color:#ffe9b9;font-size:38px;line-height:1.1;text-shadow:0 4px 12px rgba(0,0,0,.5)}.page-header p{max-width:800px;margin:0;color:var(--td-muted);font-size:1.05em}.hero-header{position:relative;min-height:240px;overflow:hidden;padding:32px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(13,11,9,.98),rgba(20,20,17,.75),transparent),url(/concept/town.png) center/cover,#151210;border:1px solid rgba(98,185,161,.2);border-radius:4px;box-shadow:0 20px 50px #0006,inset 0 0 0 1px var(--td-ink),inset 0 0 0 2px #ffffff08}.hero-header:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(139,58,42,.12),transparent 40%)}.eyebrow{color:var(--td-glimmer);font-size:14px;font-weight:700;text-transform:uppercase;display:block;margin-bottom:4px}.primary-action,.secondary-action,button{cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px;justify-content:center}.primary-action{color:#120f0d;background:linear-gradient(180deg,#f5d08f,#d79555);border:1px solid rgba(255,235,190,.8);padding:12px 24px;border-radius:4px;font-weight:700;text-decoration:none;box-shadow:0 8px 20px #70391c4d}.primary-action:hover{transform:translateY(-2px);box-shadow:0 12px 28px #70391c66;filter:brightness(1.05)}.secondary-action{color:var(--td-parchment);background:linear-gradient(180deg,#322c23e6,#1e1a16e6);border:1px solid rgba(240,221,181,.18);padding:10px 20px;border-radius:4px;text-decoration:none}.secondary-action:hover{background:#3c362d;border-color:#f0ddb54d;transform:translateY(-1px)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:32px}.metric{padding:24px;background:var(--td-panel);border:1px solid var(--td-line);border-radius:4px;position:relative;overflow:hidden;box-shadow:0 12px 30px #0006,inset 0 0 0 1px var(--td-ink),inset 0 0 0 2px #ffffff08}.metric:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--td-glimmer),var(--td-rust));opacity:.8;box-shadow:0 0 10px var(--td-glimmer)}.metric strong{display:block;color:#fff4d5;font-size:36px;font-family:var(--td-font-header);line-height:1;margin-top:8px;text-shadow:0 2px 8px rgba(0,0,0,.8)}.metric span{color:var(--td-muted);font-size:14px;text-transform:uppercase;letter-spacing:.05em}.metric svg{color:var(--td-glimmer-dim)}.panel{padding:24px;background:var(--td-panel);border:1px solid var(--td-line);border-radius:4px;margin-bottom:24px;box-shadow:0 12px 30px #0006,inset 0 0 0 1px var(--td-ink),inset 0 0 0 2px #ffffff08}.panel h2{color:var(--td-gold);font-size:20px;margin:0 0 16px;border-bottom:1px solid rgba(201,156,86,.2);padding-bottom:8px;text-shadow:0 2px 4px rgba(0,0,0,.8)}.entity-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.entity-card{padding:20px;background:var(--td-panel);border:1px solid var(--td-line);border-radius:4px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 8px 20px #0000004d,inset 0 0 0 1px var(--td-ink),inset 0 0 0 2px #ffffff05}.entity-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(98,185,161,.08),transparent);opacity:0;transition:opacity .3s}.entity-card:hover{transform:translateY(-4px);border-color:#62b9a166;box-shadow:0 15px 35px #00000073,inset 0 0 0 1px var(--td-ink),inset 0 0 0 2px #62b9a126}.entity-card:hover:before{opacity:1}.entity-card span{color:var(--td-rust-bright);font-size:12px;font-weight:700;text-transform:uppercase}.entity-card strong{display:block;margin:6px 0 10px;color:#fff;font-size:22px;font-family:var(--td-font-header)}.entity-card p{margin:0;color:var(--td-muted);font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.compact-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid rgba(255,255,255,.06);text-decoration:none;color:var(--td-parchment);transition:color .2s}.compact-row:first-of-type{border-top:none}.compact-row:hover{color:var(--td-glimmer)}.compact-row span{font-weight:500}.compact-row small{color:var(--td-muted);font-family:var(--td-font-header)}.warning small{color:var(--td-rust-bright)}input,select,textarea{background:#080605d9;border:1px solid var(--td-ink);color:#f8e8c4;padding:12px 16px;border-radius:4px;transition:all .25s;box-shadow:inset 0 4px 10px #000c,0 1px #ffffff0d;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--td-glimmer);box-shadow:inset 0 4px 10px #000c,0 0 0 1px var(--td-glimmer);background:#0f0c0af2}.table-frame{background:var(--td-panel);border:1px solid var(--td-line);border-radius:4px;overflow:hidden;box-shadow:0 12px 30px #0006,inset 0 0 0 1px var(--td-ink),inset 0 0 0 2px #ffffff08}table{width:100%;border-collapse:collapse}th{background:linear-gradient(180deg,#231e19f2,#14100df2);color:var(--td-gold);text-transform:uppercase;font-size:12px;letter-spacing:.1em;padding:16px;text-align:left;border-bottom:2px solid var(--td-gold);text-shadow:0 1px 2px rgba(0,0,0,.8)}td{padding:16px;border-bottom:1px solid rgba(255,255,255,.04);color:#d1c5ab}tr:nth-child(2n) td{background:#ffffff04}tr:hover td{background:#62b9a10d;color:#fff}.table-link{color:var(--td-glimmer);text-decoration:none;font-weight:600}.table-link:hover{text-decoration:underline;text-shadow:0 0 8px rgba(98,185,161,.4)}.meta-list{display:grid;grid-template-columns:84px 1fr;gap:0;border:1px solid var(--td-line);border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--td-ink)}.meta-list dt{color:var(--td-gold);background:#0a080799;padding:10px 12px;border-bottom:1px solid var(--td-line);border-right:1px solid var(--td-line);font-family:var(--td-font-header);font-size:12px;display:flex;align-items:center}.meta-list dd{margin:0;padding:10px 12px;border-bottom:1px solid var(--td-line);background:#ffffff05;display:flex;align-items:center}.meta-list dt:last-of-type,.meta-list dd:last-of-type{border-bottom:none}.relation-list{display:grid}.relation-row{align-items:center}.taxonomy-chain{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px;padding:10px 16px;background:#080f0e6b;border:1px solid rgba(98,185,161,.18);border-radius:4px;box-shadow:inset 0 0 0 1px var(--td-ink)}.taxonomy-chain a,.child-term-list a{color:var(--td-glimmer);font-weight:700;text-decoration:none;transition:all .2s}.taxonomy-chain a:hover,.child-term-list a:hover{color:#fff;text-shadow:0 0 8px var(--td-glimmer)}.taxonomy-chain span{display:inline-flex;gap:8px;align-items:center}.child-term-list{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--td-muted);padding-top:4px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}.form-grid label{display:grid;gap:8px;color:var(--td-parchment);font-family:var(--td-font-header)}.form-grid .wide{grid-column:1 / -1}.relation-editor{display:grid;grid-template-columns:180px 1fr auto;gap:12px;margin-bottom:12px}.source-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,260px) auto;gap:12px;margin-bottom:12px}.chip-editor{display:flex;flex-wrap:wrap;gap:8px;min-height:44px;padding:8px;background:#0000002e;border:1px solid rgba(123,208,181,.22);border-radius:6px}.chip-editor button{min-height:28px;padding:3px 8px;color:#111;background:var(--td-glimmer);border:0;border-radius:999px}.chip-editor input{width:min(220px,100%);min-width:160px;padding:4px;background:transparent;border:0}.template-row{display:flex;flex-wrap:wrap;gap:10px}.validation-panel{border-color:#ff987a47}.quality-overview{margin-bottom:18px}.quality-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;color:#d6c8a9}.quality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:22px}.docs-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px}.doc-list{position:sticky;top:0;align-self:start;max-height:calc(100vh - 56px);overflow:auto;padding:16px;background:var(--td-panel);border:1px solid var(--td-line);border-radius:4px;box-shadow:0 12px 30px #0006,inset 0 0 0 1px var(--td-ink)}.doc-item{display:block;width:100%;margin-bottom:8px;color:var(--td-parchment);text-align:left;background:transparent;border:1px solid transparent;border-radius:4px;padding:10px;transition:all .2s}.doc-item.active,.doc-item:hover{background:#62b9a11f;border-color:#62b9a147;box-shadow:inset 3px 0 0 var(--td-glimmer)}.doc-reader,.markdown,.json-view{min-width:0}.editor-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:16px}.editor-layout textarea{min-height:70vh}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.asset-card{overflow:hidden;background:var(--td-panel);border:1px solid var(--td-line);border-radius:4px;box-shadow:0 12px 30px #0006,inset 0 0 0 1px var(--td-ink);transition:all .3s}.asset-card:hover{transform:translateY(-4px);border-color:#62b9a166;box-shadow:0 15px 35px #00000073}.asset-card img{width:100%;aspect-ratio:16 / 10;object-fit:cover;background:#111;filter:saturate(.85) contrast(1.1)}.asset-card div{padding:16px}.json-view{min-height:70vh;border:1px solid rgba(98,185,161,.18);background:var(--td-panel);border-radius:4px}.promo-page{min-height:100vh;background:linear-gradient(#11100ee6,#1d1713f2),url(/concept/battle.png) center/cover fixed}.promo-hero{min-height:78vh;display:flex;align-items:center;padding:64px;background:linear-gradient(90deg,rgba(13,11,9,.95),rgba(20,20,17,.6),transparent),url(/concept/battle.png) center/cover;border-bottom:1px solid rgba(98,185,161,.22);box-shadow:0 10px 30px #000c}.promo-hero div{max-width:760px}.promo-hero h1{margin:8px 0 14px;color:#ffe6ad;font-size:72px;line-height:1;text-shadow:0 4px 12px rgba(0,0,0,.8)}.promo-hero p{max-width:680px;color:#ddc79f;font-size:22px}.promo-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:28px;background:linear-gradient(180deg,#0c0f0ee6,#18130ff2)}.promo-band article{padding:20px;background:var(--td-panel);border:1px solid var(--td-line);border-radius:4px;box-shadow:inset 0 0 0 1px var(--td-ink)}.glossary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.glossary-entry{padding:24px;background:linear-gradient(#1c1814e6,#1c1814e6),repeating-linear-gradient(45deg,rgba(255,255,255,.01) 0 2px,transparent 2px 4px);border:1px solid var(--td-line);border-radius:4px;text-decoration:none;color:inherit;transition:all .3s}.glossary-entry:hover{border-color:var(--td-glimmer-dim);background:#231e19;transform:scale(1.02)}.glossary-entry strong{display:block;font-size:24px;color:var(--td-gold);margin-bottom:12px;font-family:var(--td-font-header)}.glossary-entry p{color:var(--td-muted);line-height:1.6}.graph-canvas{height:600px;background:radial-gradient(circle at 50% 50%,rgba(98,185,161,.08),transparent 70%),#080a09f2;border:1px solid rgba(98,185,161,.15);border-radius:4px;position:relative;overflow:hidden}.graph-canvas:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.05) 1px,transparent 0);background-size:40px 40px}.graph-node{background:var(--td-charcoal);border:1px solid var(--td-glimmer-dim);padding:12px;border-radius:4px;color:var(--td-parchment);box-shadow:0 0 20px #00000080;transition:all .3s}.graph-node:hover{border-color:var(--td-glimmer);box-shadow:0 0 25px #62b9a133;z-index:10}.graph-node strong{display:block;font-family:var(--td-font-header)}.graph-node span{font-size:10px;color:var(--td-muted);text-transform:uppercase}.doc-reader{background:var(--td-panel);border:1px solid var(--td-line);border-radius:4px;padding:40px;line-height:1.8;font-size:1.1em}.markdown h1,.markdown h2,.markdown h3{font-family:var(--td-font-header);color:var(--td-gold)}.markdown blockquote{border-left:4px solid var(--td-glimmer-dim);margin:24px 0;padding:8px 24px;background:#62b9a108;font-style:italic;color:var(--td-muted)}.markdown code{background:#0000004d;padding:2px 6px;border-radius:3px;color:var(--td-glimmer)}.term-shell{position:relative;display:inline-block}.term-link{color:var(--td-glimmer);border-bottom:1px dotted rgba(98,185,161,.65);text-decoration:none}.term-link:hover{color:var(--td-gold)}.term-tooltip{position:absolute;left:0;bottom:calc(100% + 8px);z-index:20;display:none;width:min(320px,80vw);padding:12px;background:#0c0b0afa;border:1px solid rgba(98,185,161,.28);box-shadow:0 18px 44px #000000b8;color:var(--td-text)}.term-shell:hover .term-tooltip,.term-shell:focus-within .term-tooltip{display:grid;gap:6px}.term-tooltip strong{color:var(--td-gold)}.term-tooltip small{color:var(--td-muted)}.entity-search-select{position:relative;width:100%}.entity-search-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;display:grid;gap:4px;padding:8px;background:#0d0b09fa;border:1px solid var(--td-line);box-shadow:0 16px 38px #000000a6}.entity-search-menu button{display:grid;gap:2px;width:100%;padding:8px;text-align:left;color:var(--td-text);background:#ffffff0a;border:1px solid transparent;cursor:pointer}.entity-search-menu button:hover{border-color:#62b9a159;background:#62b9a114}.entity-search-menu span,.entity-search-menu small{color:var(--td-muted);font-size:12px}.success-text{color:var(--td-glimmer);font-weight:700}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--td-ink)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--td-glimmer-dim),var(--td-rust));border-radius:5px;border:2px solid var(--td-ink)}@media(max-width:1024px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;border-right:none;border-bottom:1px solid rgba(98,185,161,.15)}.page{padding:24px}}body.glimmer-low{--td-glimmer: #2e756b;--td-glimmer-dim: #0d2a25;--td-panel: rgba(18, 15, 12, .98);--td-line: rgba(139, 58, 42, .1);filter:contrast(.9) brightness(.8) sepia(.2)}body.glimmer-low:after{content:"";position:fixed;inset:0;background:#8b3a2a0d;pointer-events:none;z-index:100}body.glimmer-high{--td-glimmer: #a7ffd9;--td-glimmer-dim: #3e9b86;--td-panel: rgba(40, 36, 30, .92);--td-line: rgba(98, 185, 161, .25);filter:contrast(1.05) brightness(1.1)}body.glimmer-high .hero-header{box-shadow:0 20px 60px #62b9a126}.breadcrumbs a{text-decoration:none;color:var(--td-muted);transition:color .2s}.breadcrumbs a:hover{color:var(--td-glimmer)}.breadcrumbs span{opacity:.5}
