:root{color-scheme:dark;--bg: #0a0b0e;--bg-elev-1: #101218;--bg-elev-2: #14161d;--surface: rgba(255, 255, 255, .035);--surface-hover: rgba(255, 255, 255, .06);--surface-active: rgba(255, 255, 255, .09);--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .16);--text: #f0f1f4;--text-2: #a8acb5;--text-3: #6b7079;--radius: 10px;--radius-sm: 6px;--radius-lg: 14px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 28px rgba(0, 0, 0, .32);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .45);--ease: cubic-bezier(.4, 0, .2, 1);--dur: .18s;--accent: var(--color-primary, #c9a55a);--accent-soft: color-mix(in srgb, var(--accent) 14%, transparent);font-family:Inter,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizeLegibility;letter-spacing:-.005em}.gallery-nav-link,.atlas-propose-link,.empty-propose-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-2);text-decoration:none;font-size:13px;font-weight:600;white-space:nowrap;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.gallery-nav-link:hover,.atlas-propose-link:hover,.empty-propose-link:hover{border-color:color-mix(in srgb,var(--accent) 42%,transparent);background:var(--accent-soft);color:var(--accent)}.atlas-propose-link{min-height:44px}.empty-propose-link{margin-top:10px}.proposal-page{min-height:100vh;background:radial-gradient(circle at 18% 0%,rgba(97,212,200,.09),transparent 38%),radial-gradient(circle at 90% 8%,rgba(232,195,109,.08),transparent 34%),var(--bg);color:var(--text)}.proposal-nav{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:16px clamp(16px,4vw,44px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px)}.proposal-nav .back-to-gallery{width:auto;padding:0 12px;gap:7px;text-decoration:none}.proposal-primary-action,.proposal-form-actions button:last-child{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:#0a0b0e;font-weight:700}.proposal-main{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:34px 0 56px}.proposal-board-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:24px}.proposal-board-heading span{display:inline-flex;align-items:center;gap:7px;color:var(--accent);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.proposal-board-heading h1{margin:10px 0 8px;font-size:clamp(32px,5vw,56px);line-height:1;letter-spacing:0}.proposal-board-heading p{max-width:620px;margin:0;color:var(--text-2);font-size:16px;line-height:1.6}.proposal-board-stats{min-width:132px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:right}.proposal-board-stats strong{display:block;color:var(--text);font-size:32px}.proposal-board-stats span{display:block;color:var(--text-3);text-transform:none;letter-spacing:0}.proposal-toolbar{display:grid;grid-template-columns:minmax(240px,1fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-elev-1) 72%,transparent)}.proposal-search{display:flex;align-items:center;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-3)}.proposal-search input{width:100%;min-width:0;height:100%;padding:0 10px;border:0;outline:0;background:transparent;color:var(--text)}.proposal-segments{display:flex;gap:8px;flex-wrap:wrap}.proposal-segments button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--text-2);font-size:13px}.proposal-segments button.active,.proposal-segments button:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);color:var(--accent)}.proposal-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.proposal-row{display:grid;grid-template-columns:62px minmax(0,1fr) 84px;gap:14px;align-items:center;min-height:104px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-elev-1) 76%,transparent);box-shadow:var(--shadow-sm)}.proposal-rank{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-2);font-weight:800}.proposal-row-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.proposal-row-title h3{margin:0;color:var(--text);font-size:18px;line-height:1.25}.proposal-row-title span,.proposal-row-meta span,.proposal-row-meta a{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--text-2);font-size:12px;text-decoration:none}.proposal-row-main p{margin:8px 0 0;color:var(--text-2);font-size:14px;line-height:1.55}.proposal-row-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.proposal-row-meta a{color:#61d4c8;border-color:#61d4c84d;background:#61d4c814}.proposal-vote{display:grid;place-items:center;gap:4px;width:70px;min-height:70px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text-2);font-size:13px}.proposal-vote strong{font-size:18px;color:var(--text)}.proposal-vote.voted{border-color:#61d4c873;background:#61d4c81a;color:#61d4c8}.proposal-vote:disabled{cursor:not-allowed;opacity:.52}.proposal-empty,.proposal-error{display:grid;place-items:center;gap:12px;min-height:180px;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text-2);text-align:center}.proposal-empty button{min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--accent);color:#0a0b0e;font-weight:700}.proposal-error{display:flex;justify-content:center;width:100%;min-height:42px;margin-top:14px;border-color:#ff646e47;color:#ff8b92}.proposal-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px;background:#0000009e;backdrop-filter:blur(12px)}.proposal-modal{position:relative;width:min(680px,100%);max-height:min(88vh,780px);overflow-y:auto;padding:24px;border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elev-1) 96%,black);box-shadow:var(--shadow-lg)}.proposal-close{position:absolute;top:14px;right:14px;display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--text-3)}.proposal-modal-heading{display:flex;gap:12px;align-items:flex-start;padding-right:42px}.proposal-modal-heading svg{color:var(--accent)}.proposal-modal-heading h2{margin:0;font-size:22px}.proposal-modal-heading p{margin:6px 0 0;color:var(--text-2)}.proposal-form{display:flex;flex-direction:column;gap:14px;margin-top:20px}.proposal-form label,.admin-proposal-card label{display:flex;flex-direction:column;gap:7px;color:var(--text-2);font-size:13px;font-weight:700}.proposal-form input,.proposal-form select,.proposal-form textarea,.admin-proposal-card input,.admin-proposal-card select,.admin-proposal-card textarea,.admin-proposals-toolbar input,.admin-proposals-toolbar select,.admin-proposal-merge select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:0 11px;outline:0}.proposal-form textarea,.admin-proposal-card textarea{min-height:86px;padding:10px 11px;resize:vertical}.proposal-form-grid,.admin-proposal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.proposal-similar{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid rgba(97,212,200,.22);border-radius:var(--radius-sm);background:#61d4c812;color:var(--text-2);font-size:13px}.proposal-similar strong{color:#61d4c8}.proposal-turnstile{min-height:65px}.proposal-form-note{margin:0;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px}.proposal-form-note.error{background:#ff646e1a;color:#ff8b92}.proposal-form-note.success{background:#61d4c81a;color:#61d4c8}.proposal-form-actions{display:flex;justify-content:flex-end;gap:10px}.proposal-form-actions button{min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--text-2)}.proposal-form-actions button:disabled{cursor:not-allowed;opacity:.55}.admin-proposals-panel{display:flex;flex-direction:column;gap:14px}.admin-proposals-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 180px auto;gap:10px;align-items:center}.admin-proposals-toolbar button,.admin-proposal-actions button,.admin-proposal-merge button,.admin-vote-list button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-2);font-size:13px;font-weight:700}.admin-proposals-list{display:flex;flex-direction:column;gap:12px}.admin-proposal-card{padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-elev-1) 84%,transparent)}.admin-proposal-head{display:flex;justify-content:space-between;gap:16px}.admin-proposal-head h3{margin:10px 0 6px;color:var(--text);font-size:18px}.admin-proposal-head p{margin:0 0 14px;color:var(--text-2);line-height:1.5}.admin-proposal-votes{display:grid;place-items:center;align-content:center;width:64px;height:64px;border:1px solid var(--line);border-radius:var(--radius);color:#61d4c8;background:#61d4c814}.admin-proposal-votes strong{color:var(--text)}.admin-proposal-wide{margin-top:12px}.admin-proposal-actions,.admin-proposal-merge{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.admin-proposal-actions button:first-child{border-color:color-mix(in srgb,var(--accent) 42%,transparent);color:var(--accent)}.admin-proposal-merge{display:grid;grid-template-columns:minmax(220px,1fr) auto}.admin-vote-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#00000029}.admin-vote-list>div{display:grid;grid-template-columns:minmax(0,1fr) 180px auto;gap:10px;align-items:center;color:var(--text-2);font-size:12px}.admin-vote-list span{overflow:hidden;text-overflow:ellipsis}.admin-vote-list em{color:var(--text-3);font-style:normal}.admin-vote-list .removed{opacity:.62}.admin-proposal-message{margin:12px 0 0;color:#61d4c8;font-size:13px}@media(max-width:760px){.proposal-board-heading,.proposal-nav,.proposal-form-actions,.admin-proposal-head{align-items:stretch;flex-direction:column}.proposal-row{grid-template-columns:44px minmax(0,1fr)}.proposal-vote{grid-column:2;width:100%;min-height:46px;grid-auto-flow:column}.proposal-form-grid,.admin-proposal-grid,.admin-proposals-toolbar,.admin-proposal-merge,.admin-vote-list>div{grid-template-columns:1fr}.proposal-modal{max-height:92vh;padding:20px}}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 18% 0%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 40%),radial-gradient(circle at 100% 12%,rgba(255,255,255,.03),transparent 38%),var(--bg);transition:background .6s var(--ease)}button,input{font:inherit}button{cursor:pointer}::selection{background:var(--accent-soft);color:var(--text)}.app{position:relative;height:100vh;padding:16px;overflow:hidden;display:flex;flex-direction:column;gap:14px}.ambient-grid{position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(circle at 50% 40%,black 30%,transparent 80%);z-index:0}.topbar{position:relative;z-index:2;display:grid;grid-template-columns:1fr minmax(280px,.62fr);gap:20px;align-items:center;padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elev-1) 72%,transparent);box-shadow:var(--shadow-md);backdrop-filter:blur(20px) saturate(140%)}.topbar-left{display:flex;align-items:center;gap:14px;min-width:0}.brand{display:flex;gap:14px;align-items:center;min-width:0}.seal{display:grid;width:46px;height:46px;flex:0 0 46px;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:var(--radius);background:var(--accent-soft);color:var(--accent);font-size:22px;font-weight:700;letter-spacing:0}.brand h1{margin:0;font-size:21px;line-height:1.15;color:var(--text);font-weight:600;letter-spacing:-.01em}.brand-top{display:flex;align-items:center;gap:8px;margin-bottom:3px}.brand-top span,.section-title,.brand-info em{color:var(--text-3);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.brand-info{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.brand-info em{padding:3px 9px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-2);font-size:11px;font-style:normal;white-space:nowrap;letter-spacing:.04em}.topbar-right{display:flex;flex-direction:column;gap:8px;min-width:0}.search-box{position:relative;display:flex;align-items:center;min-width:0;height:44px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.search-box:focus-within{border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:var(--surface-hover)}.search-box svg{margin-left:14px;color:var(--text-3)}.search-box input{width:100%;min-width:0;height:100%;padding:0 12px;border:0;outline:0;background:transparent;color:var(--text)}.search-box input::placeholder{color:var(--text-3)}.search-box>button{height:32px;min-width:56px;margin-right:6px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:#0a0b0e;font-weight:600;font-size:13px;white-space:nowrap;transition:opacity var(--dur) var(--ease)}.search-box>button:hover{opacity:.86}.suggestions{position:absolute;top:calc(100% + 8px);right:0;left:0;z-index:10;display:grid;gap:2px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-elev-2) 96%,transparent);box-shadow:var(--shadow-lg);backdrop-filter:blur(20px)}.suggestions button{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;min-height:40px;padding:6px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);text-align:left;transition:background var(--dur) var(--ease)}.suggestions button:hover{background:var(--surface-hover)}.suggestions img{width:32px;height:32px;border-radius:50%;object-fit:cover}.suggestions em{overflow:hidden;color:var(--text-3);font-size:12px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.lang-switcher{display:flex;gap:4px}.lang-switcher button{padding:5px 11px;border:1px solid var(--line);border-radius:var(--radius-pill);background:transparent;color:var(--text-3);font-size:11px;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease)}.lang-switcher button:hover{color:var(--text);border-color:var(--line-strong)}.lang-switcher button.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.topbar .lang-switcher{align-self:flex-end}.back-full-btn{padding:5px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-2);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--dur) var(--ease)}.back-full-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--accent)}.back-to-gallery{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);color:var(--text-2);text-decoration:none;transition:all var(--dur) var(--ease)}.back-to-gallery:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.workspace{position:relative;z-index:1;display:grid;grid-template-columns:220px minmax(560px,1fr) 320px;gap:14px;flex:1;min-height:0}.control-panel,.detail-panel,.graph-stage{min-height:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elev-1) 60%,transparent);box-shadow:var(--shadow-sm);backdrop-filter:blur(16px) saturate(130%)}.control-panel{display:flex;flex-direction:column;gap:22px;padding:18px 16px;overflow:auto}.panel-section{display:grid;gap:6px}.section-title{font-weight:600;color:var(--text-3);margin-bottom:4px}.segmented{display:grid;gap:3px}.segmented button,.filter-chip{display:flex;align-items:center;gap:10px;min-height:38px;padding:9px 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-2);text-decoration:none;font-size:13px;font-weight:500;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.segmented button:hover,.filter-chip:hover{background:var(--surface-hover);color:var(--text)}.segmented button.active,.filter-chip.active{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.segmented button svg{opacity:.7}.segmented button.active svg{opacity:1}.filter-chip{width:100%;justify-content:flex-start}.filter-chip span{width:8px;height:8px;flex:0 0 8px;border-radius:50%}.timeline-chip{font-size:12px;min-height:34px;padding:7px 11px}.timeline-chip .chip-color{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.suggestion-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.graph-stage{position:relative;overflow:hidden}.graph-shell,.graph-shell svg,.timeline-shell,.timeline-shell svg{width:100%;height:100%}.graph-shell svg,.timeline-shell svg{display:block}.timeline-shell{position:relative;overflow:hidden}.timeline-shell svg{cursor:grab}.timeline-shell svg:active{cursor:grabbing}.relationship-link{opacity:.4;transition:opacity var(--dur) var(--ease),stroke-width var(--dur) var(--ease)}.relationship-link.is-active{opacity:1;stroke-width:3px;filter:drop-shadow(0 0 6px currentColor)}.relationship-link.is-filtered-out{opacity:.08}.relationship-label{pointer-events:none;opacity:.55;paint-order:stroke;stroke:#08090ceb;stroke-width:4px;fill:var(--text);font-size:11px;font-weight:600;transition:opacity var(--dur) var(--ease)}.relationship-label.is-visible{opacity:.95;font-size:13px}.person-node{cursor:grab;transition:opacity var(--dur) var(--ease)}.person-node:active{cursor:grabbing}.person-node.is-muted{opacity:.16}.node-aura{opacity:.1;filter:blur(1px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.node-ring{fill:#0a0b0ed9;stroke-width:2;filter:url(#node-glow)}.node-avatar{filter:saturate(.92) contrast(1.05)}.node-image-border{fill:transparent;stroke:#fff9;stroke-width:1.2;transition:stroke var(--dur) var(--ease),stroke-width var(--dur) var(--ease)}.node-label{pointer-events:none;paint-order:stroke;stroke:#08090cf2;stroke-width:4px;fill:var(--text);font-size:12px;font-weight:600;text-anchor:middle;transition:fill var(--dur) var(--ease)}.person-node.is-selected .node-aura,.person-node.is-hovered .node-aura{opacity:.3;transform:scale(1.16)}.person-node.is-selected .node-image-border,.person-node.is-hovered .node-image-border{stroke:var(--accent);stroke-width:2.4px}.person-node.is-selected .node-label,.person-node.is-hovered .node-label{fill:var(--accent)}.event-node{cursor:pointer;transition:opacity .2s}.event-node.is-selected{opacity:1}.event-node.is-selected .node-outer-ring{stroke-width:3;stroke-opacity:1;filter:url(#tl-select-glow)}.event-node.is-selected .node-shape{stroke-width:2.5;filter:url(#tl-glow)}.event-node.is-selected .ev-label{font-weight:700}.event-node.is-hovered{opacity:1}.event-node.is-hovered .node-outer-ring{stroke-width:2.5;stroke-opacity:.9}.event-node.is-muted{opacity:.16}.duration-bar,.timeline-arc{pointer-events:none;transition:opacity .2s}.labels text,.sticky-lane-header text,.year-cluster text{paint-order:stroke;stroke:#08090cf0;stroke-width:4px;stroke-linejoin:round}.ev-label{font-weight:650}.ev-label-link,.sticky-lane-header{pointer-events:none}.year-cluster{cursor:pointer}.timeline-overview{filter:drop-shadow(0 -6px 18px rgba(0,0,0,.28))}.overview-window{cursor:ew-resize;pointer-events:all}.lane text,.date-ticks text{font-family:inherit}.detail-badge{white-space:nowrap}.event-location{margin:4px 0}.event-meta div{padding:2px 0}.event-description{margin-top:14px}.event-description .intro{margin-top:6px}.detail-panel{display:flex;flex-direction:column;padding:0;overflow:hidden}.detail-scroll{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;padding:20px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.detail-scroll::-webkit-scrollbar{width:6px}.detail-scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.detail-scroll.empty-scroll{justify-content:center}.detail-return-btn{position:sticky;top:0;z-index:2;display:inline-flex;align-items:center;align-self:flex-start;gap:7px;min-height:34px;margin:-6px 0 14px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-elev-1) 92%,transparent);color:var(--text-2);font-size:12px;font-weight:650;box-shadow:var(--shadow-sm);backdrop-filter:blur(14px);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.detail-return-btn:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.detail-return-btn svg{flex:0 0 auto}.detail-panel.empty{align-items:center;justify-content:center;color:var(--text-3);text-align:center;padding:40px 24px;gap:14px}.detail-panel.empty svg{color:var(--text-3);opacity:.5}.detail-panel.empty p{margin:0;font-size:13px;line-height:1.6}.portrait-wrap{position:relative;width:100%;margin-bottom:16px;overflow:hidden;flex-shrink:0;background:var(--bg-elev-2);border:1px solid var(--line);border-radius:var(--radius)}.portrait-wrap img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;object-position:center top;filter:saturate(.92) contrast(1.05)}.detail-heading{margin-top:0}.detail-heading p{margin:0 0 4px;color:var(--accent);font-weight:600}.detail-heading h2{margin:0;color:var(--text);font-size:28px;font-weight:700;line-height:1.1;letter-spacing:-.015em}.detail-heading span{display:block;margin-top:6px;color:var(--text-2);font-size:13px}.alias-line{margin-top:10px;color:var(--text-3);font-size:12px;line-height:1.5}.indirect-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-3);font-size:11px;font-weight:600;white-space:nowrap;letter-spacing:.02em}.indirect-toggle input{appearance:none;width:28px;height:16px;border-radius:var(--radius-pill);background:var(--surface-hover);position:relative;cursor:pointer;transition:background var(--dur) var(--ease)}.indirect-toggle input:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text-3);transition:transform var(--dur) var(--ease),background var(--dur) var(--ease)}.indirect-toggle input:checked{background:var(--accent-soft)}.indirect-toggle input:checked:after{transform:translate(12px);background:var(--accent)}.indirect-toggle input:checked+span{color:var(--accent)}.intro{margin:16px 0;color:var(--text-2);font-size:13.5px;line-height:1.75}.wiki-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:18px;padding:7px 14px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-2);font-size:12px;font-weight:500;text-decoration:none;transition:all var(--dur) var(--ease)}.wiki-link:hover{color:var(--accent);border-color:var(--accent)}.relationship-list{display:grid;gap:4px;margin-top:6px}.relationship-row{display:grid;grid-template-columns:8px 1fr auto auto;gap:10px;align-items:center;min-height:36px;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);text-align:left;transition:background var(--dur) var(--ease)}.relationship-row:hover{background:var(--surface-hover)}.relationship-row span{width:8px;height:8px;border-radius:50%}.relationship-row strong{overflow:hidden;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.relationship-row em{overflow:hidden;color:var(--text-3);font-size:12px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.relationship-row b{padding:2px 6px;border-radius:var(--radius-pill);background:var(--surface-active);color:var(--text-2);font-size:10px;font-weight:600}.fictional-tag{color:#b88cff!important}@media(max-height:760px){.portrait-wrap img{max-height:280px}.detail-heading h2{font-size:24px}.intro{line-height:1.6}}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:24px}.loading-screen p{color:var(--text-3);font-size:14px}.loading-book{width:64px;height:80px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:4px 10px 10px 4px;animation:bookFlip 1.4s ease-in-out infinite;position:relative}.loading-book:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent);border-radius:4px 0 0 4px;opacity:.7}@keyframes bookFlip{0%,to{transform:perspective(300px) rotateY(0)}40%{transform:perspective(300px) rotateY(-28deg)}60%{transform:perspective(300px) rotateY(8deg)}80%{transform:perspective(300px) rotateY(-4deg)}}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;text-align:center}.error-screen h2{color:var(--text);font-size:26px;margin:0}.error-screen p{color:var(--text-2);font-size:14px;max-width:460px;line-height:1.6}.error-screen button{padding:10px 24px;border:0;border-radius:var(--radius);background:var(--accent);color:#0a0b0e;font-size:14px;font-weight:600;cursor:pointer}.auth-container{display:flex;align-items:center;justify-content:center;height:100vh}.auth-card{width:380px;padding:36px;border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elev-1) 80%,transparent);box-shadow:var(--shadow-lg);backdrop-filter:blur(20px)}.auth-card h2{margin:0 0 24px;color:var(--text);font-size:21px;font-weight:600;text-align:center}.auth-card form{display:flex;flex-direction:column;gap:14px}.auth-card input{height:44px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:14px;outline:none;transition:border-color var(--dur) var(--ease)}.auth-card input:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.auth-card button{height:44px;border:0;border-radius:var(--radius);background:var(--accent);color:#0a0b0e;font-size:14px;font-weight:600;cursor:pointer}.auth-error{color:#ff6b6b;font-size:13px;margin:0}.admin-panel{width:100%;height:100vh;padding:32px;overflow:auto}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--line)}.admin-header h2{color:var(--text);margin:0;font-size:22px;font-weight:600}.logout-btn{padding:8px 18px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text-2);cursor:pointer;font-size:13px;transition:all var(--dur) var(--ease)}.logout-btn:hover{color:var(--text);border-color:var(--accent)}.logout-btn:disabled{cursor:not-allowed;opacity:.45}.logout-btn:disabled:hover{color:var(--text-2);border-color:var(--line-strong)}.admin-tabs{display:flex;gap:4px;margin:16px 0;border-bottom:1px solid var(--line);padding-bottom:12px}.admin-tabs button{padding:8px 16px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-3);cursor:pointer;font-size:13px;font-weight:500;transition:all var(--dur) var(--ease)}.admin-tabs button:hover{color:var(--text);background:var(--surface-hover)}.admin-tabs button.active{background:var(--accent-soft);color:var(--accent)}.correction-list{display:grid;gap:10px}.correction-card{padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.correction-card.approved{border-color:#61d4c840;background:#61d4c80d}.correction-card.rejected{border-color:#ff646e33;background:#ff646e0a}.correction-meta{display:flex;gap:12px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.correction-type{padding:2px 9px;border-radius:var(--radius-pill);background:var(--surface-active);color:var(--text);font-size:11px;font-weight:600}.correction-slug{padding:2px 8px;border-radius:var(--radius-pill);background:#6366f133;color:#a5b4fc;font-size:11px;font-weight:650}.correction-status{padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:600}.correction-status.approved{background:#61d4c829;color:#61d4c8}.correction-status.rejected{background:#ff646e29;color:#ff6b6b}.correction-date{color:var(--text-3);font-size:12px;margin-left:auto}.correction-body p{margin:4px 0;color:var(--text);font-size:14px}.correction-body strong{color:var(--text)}.correction-desc{color:var(--text-2)!important;font-size:13px!important;font-style:italic}.correction-source,.correction-inline-id{color:var(--text-3)!important;font-size:12px!important}.correction-actions{display:flex;gap:8px;margin-top:12px}.approve-btn,.reject-btn,.re-review-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:600;transition:background var(--dur) var(--ease)}.approve-btn{background:#61d4c81f;color:#61d4c8}.approve-btn:hover{background:#61d4c838}.reject-btn{background:#ff646e1a;color:#ff6b6b}.reject-btn:hover{background:#ff646e33}.re-review-btn{background:var(--surface-active);color:var(--text)}.re-review-btn:hover{background:var(--surface-hover)}.correction-filters{display:flex;gap:6px;margin-bottom:20px}.correction-filters button{padding:6px 14px;border:1px solid var(--line);border-radius:var(--radius-pill);background:transparent;font-size:12px;font-weight:600;cursor:pointer;color:var(--text-3);transition:all var(--dur) var(--ease)}.correction-filters button:hover{color:var(--text);border-color:var(--line-strong)}.correction-filters button.active{border-color:var(--line-strong);color:var(--text)}.correction-filters button.active.filter-pending{background:var(--accent-soft);color:var(--accent)}.correction-filters button.active.filter-approved{background:#61d4c81f;color:#61d4c8}.correction-filters button.active.filter-rejected{background:#ff646e1a;color:#ff6b6b}.refresh-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;margin-bottom:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--text-2);cursor:pointer;font-size:12px;transition:all var(--dur) var(--ease)}.refresh-btn:hover{color:var(--text);border-color:var(--line-strong)}.admin-graph-selector{display:flex;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line)}.audit-op{padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:600}.audit-op-INSERT{background:#61d4c829;color:#61d4c8}.audit-op-UPDATE{background:var(--accent-soft);color:var(--accent)}.audit-op-DELETE{background:#ff646e29;color:#ff6b6b}.audit-detail small{color:var(--text-3);font-size:11px}.audit-diff{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;margin-top:8px;align-items:start}.audit-diff span{color:var(--accent);padding-top:4px}.audit-old,.audit-new{margin:0;padding:10px;border-radius:var(--radius-sm);font-size:11px;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-all}.audit-old{background:#ff646e14;color:#ff6b6b}.audit-new{background:#61d4c814;color:#61d4c8}.correction-fab{position:fixed;bottom:24px;right:24px;z-index:20;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:50%;background:color-mix(in srgb,var(--bg-elev-2) 92%,transparent);color:var(--text-2);cursor:pointer;box-shadow:var(--shadow-md);backdrop-filter:blur(12px);transition:all var(--dur) var(--ease)}.correction-fab:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.correction-overlay,.confirm-overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#04050899;backdrop-filter:blur(6px)}.correction-modal,.confirm-box{border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-elev-2) 96%,transparent);box-shadow:var(--shadow-lg)}.correction-modal{position:relative;width:420px;max-height:85vh;overflow-y:auto;padding:28px}.correction-modal h3{margin:0 0 20px;color:var(--text);font-size:19px;font-weight:600}.correction-close{position:absolute;top:16px;right:16px;padding:4px;border:0;background:transparent;color:var(--text-3);cursor:pointer;transition:color var(--dur) var(--ease)}.correction-close:hover{color:var(--text)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group label{color:var(--text-3);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:14px;outline:none;transition:border-color var(--dur) var(--ease)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.form-group textarea{resize:vertical}.form-group select option{background:var(--bg-elev-2);color:var(--text)}.suggest-wrap{position:relative}.correction-suggestions{position:absolute;top:100%;left:0;right:0;z-index:5;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev-2);max-height:180px;overflow-y:auto}.correction-suggestions button{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;width:100%;padding:6px 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;text-align:left;transition:background var(--dur) var(--ease)}.correction-suggestions button:hover{background:var(--surface-hover)}.correction-suggestions img{width:28px;height:28px;border-radius:50%;object-fit:cover}.correction-suggestions em{color:var(--text-3);font-size:11px;font-style:normal}.character-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--radius);background:var(--accent-soft);cursor:pointer}.character-chip img{width:28px;height:28px;border-radius:50%;object-fit:cover}.character-chip span{color:var(--text);font-size:14px}.event-chip{align-items:center}.event-chip svg{color:var(--accent);flex:0 0 auto}.event-chip em{margin-left:auto;color:var(--text-3);font-size:12px;font-style:normal;white-space:nowrap}.correction-modal form>button{width:100%;height:44px;margin-top:8px;border:0;border-radius:var(--radius);background:var(--accent);color:#0a0b0e;font-size:14px;font-weight:600;cursor:pointer;transition:opacity var(--dur) var(--ease)}.correction-modal form>button:hover{opacity:.88}.correction-done{text-align:center;padding:20px 0}.correction-done svg{color:#61d4c8}.correction-done h3{color:var(--text);margin:12px 0 8px;font-size:18px}.correction-done p{color:var(--text-2);font-size:14px;line-height:1.6}.correction-done button{margin-top:16px;padding:10px 32px;border:0;border-radius:var(--radius);background:var(--accent);color:#0a0b0e;font-weight:600;cursor:pointer}.confirm-box{width:360px;padding:28px;text-align:center}.confirm-box p{color:var(--text);font-size:14px;line-height:1.6;white-space:pre-wrap;margin:0 0 20px}.confirm-actions{display:flex;gap:10px;justify-content:center}.confirm-actions button{padding:10px 24px;border:1px solid var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer;font-size:13px;font-weight:500;transition:all var(--dur) var(--ease)}.confirm-actions button:hover{border-color:var(--text)}.confirm-actions .confirm-danger{background:#c0392b;border-color:#c0392b;color:#fff}.notification{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border:1px solid rgba(97,212,200,.3);border-radius:var(--radius);background:#61d4c814;color:#61d4c8;font-size:13px;margin-bottom:12px;cursor:pointer}.node-avatar-fallback{fill:var(--accent);font-weight:700;font-family:inherit;dominant-baseline:middle}.portrait-fallback{width:80px;height:80px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700}.suggestion-avatar-fallback,.chip-avatar-fallback{border-radius:50%;background:var(--surface-active);color:var(--text-2);display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.suggestion-avatar-fallback{width:32px;height:32px;font-size:14px}.chip-avatar-fallback{width:24px;height:24px;font-size:12px}.character-page{max-width:720px;margin:0 auto;padding:40px 20px;min-height:100vh}.character-breadcrumb{margin-bottom:24px;font-size:.85em;color:var(--text-3)}.character-breadcrumb a{color:var(--text-3);text-decoration:none;transition:color var(--dur) var(--ease)}.character-breadcrumb a:hover{color:var(--accent)}.character-breadcrumb span{margin:0 6px}.character-page h1{font-size:2.1em;color:var(--text);font-weight:700;letter-spacing:-.02em;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:8px}.character-page .aliases{color:var(--text-3);font-size:.92em;margin-bottom:12px}.character-page .meta-tags{margin-bottom:20px}.character-page .clan-tag,.character-page .role-tag{display:inline-block;background:var(--surface-active);color:var(--text-2);padding:3px 12px;border-radius:var(--radius-pill);font-size:.82em;margin:4px 4px 4px 0}.character-page .intro{font-size:1.02em;line-height:1.85;margin-bottom:24px;color:var(--text-2)}.character-page .wiki-link{display:inline-flex;margin:12px 0}.character-page section{margin-bottom:24px}.character-page h2{font-size:1.05em;color:var(--text);margin:22px 0 12px;padding-left:12px;border-left:2px solid var(--accent);text-transform:uppercase;letter-spacing:.06em}.character-page ul{list-style:none;padding-left:0}.character-page li{padding:6px 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.character-page .rel-type{display:inline-block;font-size:.76em;padding:2px 9px;border-radius:var(--radius-pill);background:var(--surface-active);color:var(--text-2);white-space:nowrap}.character-page .rel-name{color:var(--text);font-size:1em;text-decoration:none;transition:color var(--dur) var(--ease)}.character-page .rel-name:hover{color:var(--accent)}.character-page .uncertain{color:#fc0;font-size:.82em;font-style:italic}.character-page .back-to-graph{display:inline-block;margin-top:32px;padding:10px 24px;background:var(--accent);border:0;border-radius:var(--radius);color:#0a0b0e;font-size:.92em;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity var(--dur) var(--ease)}.character-page .back-to-graph:hover{opacity:.88}.character-page footer{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);text-align:center;font-size:.8em;color:var(--text-3)}.character-page footer a{color:var(--accent)}.gallery-page{min-height:100vh;background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 280px),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 112px),var(--bg)}.gallery-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1180px;margin:0 auto;padding:18px 28px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--line)}.gallery-wordmark{display:flex;align-items:center;gap:12px;min-width:0;color:var(--text);text-decoration:none;font-weight:700;letter-spacing:0}.gallery-nav-actions{display:flex;align-items:center;gap:10px}.gallery-logo{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent);font-size:18px;line-height:1}.gallery-main{width:min(1180px,calc(100% - 48px));padding:42px 0 88px;margin:0 auto}.atlas-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;padding:44px 0 30px}.atlas-copy{max-width:760px}.atlas-kicker,.graph-eyebrow,.section-heading span,.card-type{display:inline-flex;align-items:center;gap:7px;color:var(--text-3);font-size:12px;font-weight:700;line-height:1;letter-spacing:.06em;text-transform:uppercase}.atlas-copy h1{margin:14px 0 12px;color:var(--text);font-size:clamp(46px,7vw,86px);line-height:.95;letter-spacing:0}.atlas-copy p{max-width:650px;margin:0;color:var(--text-2);font-size:18px;line-height:1.7}.atlas-metrics{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--line)}.atlas-metrics span{display:flex;min-height:76px;flex-direction:column;justify-content:center;padding:14px 18px;background:color-mix(in srgb,var(--bg-elev-1) 84%,transparent);color:var(--text-3);font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap}.atlas-metrics strong{color:var(--text);font-size:25px;line-height:1;margin-bottom:8px}.atlas-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-elev-1) 74%,transparent);box-shadow:var(--shadow-md);backdrop-filter:blur(20px) saturate(140%)}.atlas-search{display:flex;align-items:center;height:48px;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-3);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.atlas-search:focus-within{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--surface-hover)}.atlas-search svg{flex:0 0 auto;margin-left:15px}.atlas-search input{width:100%;min-width:0;height:100%;padding:0 14px;border:0;outline:0;background:transparent;color:var(--text)}.atlas-search input::placeholder{color:var(--text-3)}.atlas-filters{display:inline-flex;align-items:center;gap:4px;min-height:48px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff06}.atlas-filters button{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 13px;border:0;border-radius:5px;background:transparent;color:var(--text-2);font-size:13px;font-weight:650;white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.atlas-filters button:hover,.atlas-filters button.active{background:var(--surface-active);color:var(--text)}.featured-graph{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(320px,1.05fr);gap:1px;overflow:hidden;margin-top:24px;border:1px solid color-mix(in srgb,var(--card-primary) 22%,var(--line));border-radius:var(--radius);background:var(--line)}.featured-cover{position:relative;display:block;min-height:360px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--card-primary) 18%,transparent),transparent),var(--bg-elev-2)}.featured-cover img,.card-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .52s var(--ease),opacity var(--dur) var(--ease)}.featured-cover:hover img,.gallery-card:hover .card-cover img{transform:scale(1.035)}.featured-content{display:flex;min-height:360px;flex-direction:column;align-items:flex-start;justify-content:center;padding:42px;background:color-mix(in srgb,var(--bg-elev-1) 88%,transparent)}.graph-eyebrow{color:color-mix(in srgb,var(--card-primary) 68%,var(--text-2))}.graph-eyebrow span+span{padding-left:11px;border-left:1px solid var(--line)}.featured-content h2{margin:16px 0 12px;color:var(--text);font-size:34px;line-height:1.12;letter-spacing:0}.featured-content p{margin:0;color:var(--text-2);font-size:15px;line-height:1.8}.featured-stats{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 28px}.featured-stats span,.card-stat,.card-category{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-2);font-size:12px;font-weight:650;white-space:nowrap}.primary-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:0 16px;border:1px solid color-mix(in srgb,var(--card-primary) 42%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--card-primary) 18%,transparent);color:var(--text);text-decoration:none;font-size:14px;font-weight:700;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.primary-link:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--card-primary) 70%,transparent);background:color-mix(in srgb,var(--card-primary) 24%,transparent)}.featured-rail{display:flex;align-items:center;gap:7px;margin-top:24px}.featured-rail button{width:28px;height:6px;padding:0;border:0;border-radius:var(--radius-pill);background:var(--surface-active);opacity:.8;transition:width var(--dur) var(--ease),background var(--dur) var(--ease),opacity var(--dur) var(--ease)}.featured-rail button:hover,.featured-rail button.active{width:38px;background:var(--card-primary);opacity:1}.library-section{margin-top:54px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-heading h2{margin:7px 0 0;color:var(--text);font-size:26px;line-height:1.1;letter-spacing:0}.section-heading p{margin:0;color:var(--text-3);font-size:13px;font-weight:650;white-space:nowrap}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.gallery-card{display:flex;min-width:0;min-height:438px;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--text);background:color-mix(in srgb,var(--bg-elev-1) 78%,transparent);transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.gallery-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--card-primary, var(--accent)) 45%,transparent);background:color-mix(in srgb,var(--bg-elev-2) 70%,transparent);box-shadow:0 18px 50px #00000042}.card-cover{position:relative;height:178px;overflow:hidden;border-bottom:1px solid var(--line);background:var(--bg-elev-2)}.card-cover:after{content:"";position:absolute;inset:auto 0 0;height:54%;background:linear-gradient(180deg,transparent,rgba(10,11,14,.76));pointer-events:none}.card-type{position:absolute;right:12px;bottom:12px;z-index:1;min-height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-pill);background:#0a0b0eb8;color:var(--text);letter-spacing:0;text-transform:none;backdrop-filter:blur(10px)}.card-body{display:flex;flex:1;min-width:0;flex-direction:column;padding:20px}.card-heading{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;align-items:center}.card-seal{display:grid;width:34px;height:34px;place-items:center;border:1px solid color-mix(in srgb,var(--card-primary, var(--accent)) 38%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--card-primary, var(--accent)) 14%,transparent);color:color-mix(in srgb,var(--card-primary, var(--accent)) 78%,white);font-size:17px;font-weight:800;line-height:1}.card-body h3{min-width:0;margin:0;color:var(--text);font-size:18px;font-weight:700;line-height:1.32;letter-spacing:0}.card-description{min-height:66px;margin:15px 0 18px;color:var(--text-2);font-size:13px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}.card-category{background:color-mix(in srgb,var(--card-primary, var(--accent)) 10%,transparent);border:1px solid color-mix(in srgb,var(--card-primary, var(--accent)) 25%,transparent);color:var(--card-primary, var(--accent));padding:2px 10px;border-radius:var(--radius-pill);font-size:.78em;font-weight:500}.card-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;margin-top:auto;padding:0 12px;border:1px solid color-mix(in srgb,var(--card-primary, var(--accent)) 24%,transparent);border-radius:var(--radius-sm);color:color-mix(in srgb,var(--card-primary, var(--accent)) 72%,white);font-size:13px;font-weight:750;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.gallery-card:hover .card-cta{border-color:var(--card-primary, var(--accent));background:color-mix(in srgb,var(--card-primary, var(--accent)) 10%,transparent)}.empty-library{display:flex;min-height:180px;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text-2);font-weight:650}.gallery-footer{padding:28px;text-align:center;color:var(--text-3);font-size:.82em;border-top:1px solid var(--line)}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:12px;text-align:center;color:var(--text)}.mobile-filter-btn{display:none;align-items:center;justify-content:center;gap:4px;padding:5px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-2);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--dur) var(--ease)}.mobile-filter-btn:hover{color:var(--accent);border-color:var(--accent)}.mobile-overlay{position:fixed;inset:0;z-index:24;background:#04050880;backdrop-filter:blur(4px)}@media(max-width:1024px){.gallery-main{width:min(100% - 36px,860px)}.atlas-hero,.atlas-toolbar,.featured-graph{grid-template-columns:1fr}.atlas-metrics{width:100%}.featured-cover,.featured-content{min-height:300px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.control-panel{flex-direction:row;flex-wrap:wrap;gap:10px;padding:12px}.panel-section{flex:1 1 160px}.detail-panel{max-height:320px}.workspace.has-detail .detail-panel{min-height:360px;max-height:50vh}}@media(max-width:768px){.gallery-nav{padding:14px 18px}.gallery-wordmark span:last-child{max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-main{width:calc(100% - 28px);padding:22px 0 58px}.atlas-hero{gap:20px;padding:28px 0 20px}.atlas-copy h1{font-size:44px}.atlas-copy p{font-size:15px;line-height:1.65}.atlas-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.atlas-metrics span{min-height:68px;padding:12px 10px;font-size:11px}.atlas-metrics strong{font-size:21px}.atlas-toolbar{padding:10px}.atlas-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.atlas-filters button{min-width:0;padding:0 8px}.atlas-filters button span{overflow:hidden;text-overflow:ellipsis}.featured-cover{min-height:220px}.featured-content{min-height:0;padding:24px}.featured-content h2{font-size:24px}.featured-content p{font-size:14px}.section-heading{align-items:flex-start;flex-direction:column}.gallery-grid{grid-template-columns:1fr}.gallery-card{min-height:0}.card-cover{height:168px}.app{padding:8px;gap:8px}.topbar{grid-template-columns:1fr;gap:10px;padding:12px}.brand{gap:10px}.brand h1{font-size:17px}.brand-info{gap:6px}.brand-info em{font-size:10px;padding:2px 8px}.seal{width:40px;height:40px;flex:0 0 40px;font-size:19px}.back-to-gallery{width:34px;height:34px}.search-box{height:42px}.lang-switcher button{padding:4px 9px;font-size:11px}.workspace{grid-template-columns:1fr;grid-template-rows:1fr auto;gap:8px}.workspace.has-detail{grid-template-rows:minmax(160px,1fr) minmax(50vh,54vh)}@supports (height: 100dvh){.workspace.has-detail{grid-template-rows:minmax(160px,1fr) minmax(50dvh,54dvh)}}.control-panel{display:none}.control-panel.mobile-open{display:flex;position:fixed;inset:0;z-index:25;flex-direction:column;overflow-y:auto;padding:24px;border:0;border-radius:0;background:color-mix(in srgb,var(--bg-elev-1) 98%,transparent);backdrop-filter:blur(20px)}.mobile-filter-btn{display:inline-flex}.detail-panel{max-height:42vh}.workspace.has-detail .detail-panel{min-height:50vh;max-height:54vh}@supports (height: 100dvh){.workspace.has-detail .detail-panel{min-height:50dvh;max-height:54dvh}}.detail-panel.empty{display:none}.portrait-wrap img{max-height:260px}.detail-heading h2{font-size:22px}.correction-modal{width:calc(100vw - 24px);max-height:90vh;padding:20px}.correction-fab{bottom:16px;right:16px;width:44px;height:44px}.timeline-stage{min-height:60vh}.workspace.has-detail .timeline-stage{min-height:0}.timeline-filters{position:fixed;top:0;left:0;z-index:20;width:260px;height:100vh;background:color-mix(in srgb,var(--bg-elev-1) 98%,transparent);border-right:1px solid var(--line);padding:20px;overflow-y:auto;transform:translate(-100%);transition:transform .25s var(--ease)}.timeline-filters.mobile-open{transform:translate(0)}}
