:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070a14;--panel:#101424d1;--fg:#e8ecf5;--muted:#9aa3b8;--accent:#4cc9f0;--warn:#ffd166}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);touch-action:none;margin:0;font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#scene{position:fixed;inset:0}#scene canvas{width:100%;height:100%;display:block}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}:root{--line:#ffffff1a;--hover:#ffffff14;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--gap:12px}[hidden]{display:none!important}#ui{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#ui button,#ui input,#ui select{font:inherit;color:inherit}#ui button,#ui select{border:1px solid var(--line);cursor:pointer;touch-action:manipulation;background:#ffffff0f;border-radius:10px;min-height:40px;padding:0 14px}#ui select option{color:var(--fg);background:#10142a}#ui button:hover:not(:disabled),#ui select:hover{background:var(--hover)}#ui button:disabled{opacity:.4;cursor:default}#ui button:focus-visible,#ui input:focus-visible,#ui select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}#ui button.primary{background:var(--accent);color:#04141c;border-color:#0000;font-weight:600}#ui button.primary:hover:not(:disabled){background:#7ad8f5}#ui button.danger{color:#fff;background:#ef476f;border-color:#0000;font-weight:600}#ui button.wide{width:100%}#ui button.icon{flex:none;width:44px;padding:0;font-size:16px}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);border-radius:14px;padding:10px;box-shadow:0 6px 24px #00000059}.row{gap:8px;display:flex}.top-left{top:calc(var(--safe-t) + var(--gap));left:calc(var(--safe-l) + var(--gap));max-width:calc(100% - 340px - 3 * var(--gap));flex-direction:column;gap:6px;display:flex;position:absolute}.brand{letter-spacing:.02em;white-space:nowrap;padding:0 4px;font-size:15px;font-weight:700}.brand span{color:var(--accent)}.chips{scrollbar-width:none;touch-action:pan-x;gap:6px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}#ui .chip{white-space:nowrap;border-radius:999px;flex:none;min-height:40px}#ui .chip.active{background:var(--accent);color:#04141c;border-color:#0000;font-weight:600}.top-right{top:calc(var(--safe-t) + var(--gap));right:calc(var(--safe-r) + var(--gap));flex-direction:column;gap:8px;width:316px;display:flex;position:absolute}.search{position:relative}.search input{border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#00000040;border-radius:10px;width:100%;min-height:40px;padding:0 12px;font-size:16px}.results{border:1px solid var(--line);z-index:5;background:#101424f7;border-radius:12px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 8px 28px #00000080}.results li{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:40px;padding:0 10px;display:flex}.results li:hover,.results li.active{background:var(--hover)}.results li.empty{color:var(--muted);cursor:default}.results .y{color:var(--muted);white-space:nowrap;font-size:12px}.top-right .row button{white-space:nowrap;flex:1}.top-right .row button:first-child{flex:none}#ui>.bottom{left:calc(var(--safe-l) + var(--gap));right:calc(var(--safe-r) + var(--gap));bottom:calc(var(--safe-b) + var(--gap));align-items:end;gap:var(--gap);pointer-events:none;grid-template-columns:minmax(0,1fr) minmax(0,600px) minmax(0,1fr);display:grid;position:absolute}.bottom>.panel{pointer-events:auto}.hint{max-width:260px;color:var(--muted);pointer-events:none;background:#10142499;border-radius:10px;grid-column:1;place-self:end start;padding:8px 10px;font-size:12px;transition:opacity .8s}.hint.gone{opacity:0}.timeline{flex-direction:column;grid-column:2;gap:8px;display:flex}.tl-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.year{font-variant-numeric:tabular-nums;color:var(--muted);min-width:4ch;font-size:30px;font-weight:700;line-height:1}.timeline.on .year{color:var(--fg)}.alive{color:var(--muted);margin-left:auto;font-size:12px}.tl-ctrl{align-items:center;gap:10px;display:flex}.slider{flex:1;min-width:0}.slider input[type=range]{width:100%;height:40px;accent-color:var(--accent);touch-action:none;background:0 0;margin:0}.ends{color:var(--muted);justify-content:space-between;margin-top:-8px;font-size:11px;display:flex}.switch{cursor:pointer;align-items:center;gap:8px;min-height:40px;font-weight:600;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch .knob{background:#ffffff2e;border-radius:11px;flex:none;width:40px;height:22px;transition:background .15s;position:relative}.switch .knob:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch input:checked+.knob{background:var(--accent)}.switch input:checked+.knob:after{transform:translate(18px)}.switch input:focus-visible+.knob{outline:2px solid var(--accent);outline-offset:2px}.xr{flex-direction:column;grid-column:3;justify-self:end;gap:8px;width:100%;max-width:280px;display:flex}.xr-status{color:var(--muted);font-size:12px}.xr-actions{flex-wrap:wrap}.xr-actions button{white-space:nowrap;flex:auto}.xr-hint{color:var(--warn);font-size:12px}.detail{top:calc(var(--safe-t) + 128px);right:calc(var(--safe-r) + var(--gap));bottom:calc(var(--safe-b) + 190px);flex-direction:column;width:340px;padding:0;display:flex;position:absolute}.detail .close{z-index:2;width:40px;padding:0;position:absolute;top:8px;right:8px}.detail-body{touch-action:pan-y;overscroll-behavior:contain;-webkit-user-select:text;user-select:text;padding:14px 14px 16px;overflow-y:auto}.detail h2{margin:0 44px 4px 0;font-size:22px;line-height:1.2}.detail h4{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-size:11px;font-weight:600}.detail .life{font-size:14px}.detail .sub{color:var(--muted);font-size:13px}.detail .sub.age{color:var(--warn)}.detail .tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.detail .tag{color:var(--accent);background:#4cc9f024;border-radius:999px;padding:3px 9px;font-size:12px}.detail .occ{margin-top:10px;font-weight:600}.detail .notes{color:#cdd4e4;margin:6px 0 0}.chips-rel{flex-wrap:wrap;gap:6px;display:flex}#ui .chip.rel{border-radius:999px;align-items:baseline;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.chip.rel small{color:var(--muted);font-size:11px}.plain{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.plain .when{color:var(--muted);margin-left:8px;font-size:12px}.plain .desc{color:#b9c1d4;font-size:13px}.plain .ico{margin-right:6px}.detail .primary.wide{margin-top:18px}#ui>.tooltip{z-index:20;pointer-events:none;border:1px solid var(--line);white-space:nowrap;background:#0a0d1aeb;border-radius:8px;padding:5px 9px;font-size:13px;position:fixed}.tooltip span{color:var(--muted)}#ui>.toasts{left:50%;bottom:calc(var(--safe-b) + 150px);pointer-events:none;z-index:30;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 32px);display:flex;position:fixed;transform:translate(-50%)}.toast{border:1px solid var(--line);border-left:3px solid var(--warn);opacity:0;background:#0a0d1af2;border-radius:10px;padding:10px 14px;transition:opacity .25s,transform .25s;transform:translateY(8px)}.toast.show{opacity:1;transform:none}@media (max-width:900px){.top-left{right:calc(var(--safe-r) + var(--gap));flex-direction:row;align-items:center;gap:10px;max-width:none;padding:6px}.top-left .chips{flex:1;min-width:0}.brand{font-size:14px}.top-right{top:calc(var(--safe-t) + var(--gap) + 64px);left:calc(var(--safe-l) + var(--gap));flex-direction:row;width:auto;padding:8px}.top-right .search{flex:1;min-width:0}.top-right .row{flex:none}.top-right .row button{flex:none;padding:0 12px}.top-right .long{display:none}#ui>.bottom{grid-template-columns:minmax(0,1fr);gap:8px}.hint,.timeline,.xr{grid-column:1}.hint{text-align:center;justify-self:center;max-width:none}.xr{justify-self:stretch;max-width:none;padding:8px 10px}.xr-actions button{min-height:44px}.year{font-size:26px}#ui>.toasts{bottom:calc(var(--safe-b) + 210px)}.detail{width:auto;max-height:56vh;padding-bottom:var(--safe-b);border-bottom:0;border-left:0;border-right:0;border-radius:18px 18px 0 0;inset:auto 0 0}.detail-body{padding-bottom:calc(16px + var(--safe-b))}body.detail-open #ui>.bottom{display:none}body.detail-open #ui>.toasts{bottom:calc(56vh + 12px)}}@media (max-width:900px) and (max-height:520px){.detail{max-height:70vh}.xr-status{display:none}}@media (prefers-reduced-motion:reduce){.toast,.hint,.switch .knob,.switch .knob:after{transition:none}}.brand{align-items:center;gap:10px;display:flex}.brand .data-toggle{color:var(--fg);font-size:12px;font-weight:500}.detail .head{align-items:flex-start;gap:12px;margin:0 44px 4px 0;display:flex}.detail .head h2{flex:1;min-width:0;margin:0}.detail .portrait{object-fit:cover;border:1px solid var(--line);background:#ffffff0f;border-radius:16px;flex:none;width:96px;height:96px}.detail .gallery{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:6px;display:grid}#ui .gallery .tile{aspect-ratio:1;cursor:zoom-in;background:#ffffff0f;border-radius:10px;width:100%;min-height:0;padding:0;position:relative;overflow:hidden}.gallery .tile img{object-fit:cover;width:100%;height:100%;display:block}.detail .docs-other{margin-top:8px}.detail .docs-other a{color:var(--accent)}#ui>.lightbox{z-index:50;touch-action:pan-y;-webkit-user-select:none;user-select:none;background:#04060cf0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox .lb-img{object-fit:contain;cursor:zoom-out;max-width:100%;max-height:calc(100% - 90px);margin-bottom:70px}.lightbox .lb-img.err{opacity:.15}.lightbox .lb-cap{left:0;right:0;bottom:calc(var(--safe-b) + 14px);text-align:center;pointer-events:none;padding:0 70px;position:absolute}.lightbox .lb-title{font-size:16px;font-weight:600}.lightbox .lb-count{color:var(--muted);margin-top:2px;font-size:12px}#ui .lightbox .lb-close{top:calc(var(--safe-t) + 12px);right:calc(var(--safe-r) + 12px);width:44px;padding:0;position:absolute}#ui .lightbox .lb-nav{width:48px;min-height:64px;padding:0;font-size:34px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}#ui .lightbox .lb-nav.prev{left:calc(var(--safe-l) + 8px)}#ui .lightbox .lb-nav.next{right:calc(var(--safe-r) + 8px)}.login-overlay{z-index:50;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.login-form{background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #ffffff14;border-radius:14px;flex-direction:column;gap:10px;width:min(380px,100%);padding:20px;display:flex}.login-form h2{margin:0;font-size:17px}.login-form p{color:var(--muted);margin:0;font-size:13px}.login-form input{font:inherit;color:var(--fg);background:#0000004d;border:1px solid #ffffff26;border-radius:10px;padding:10px 12px;font-size:16px}.login-form .row{justify-content:flex-end;gap:8px;display:flex}.login-form button{font:inherit;color:var(--fg);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:10px;min-height:40px;padding:9px 14px}.login-form button.primary{background:var(--accent);color:#06111a;border-color:#0000;font-weight:600}.login-error{color:var(--warn);min-height:1em;font-size:13px}
