:root{color-scheme:dark;--bg:#0b0d12;--surface:#171a24;--line:#383b44;--text:#f7f2ec;--muted:#b4b0b0;--gold:#e8bd87;--danger:#ef9caa;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:transparent;color:var(--text);cursor:pointer;font-size:.85rem;min-height:42px}button:hover,.button:hover{border-color:var(--gold)}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true],.primary{background:var(--gold);color:#211b1b;border-color:var(--gold)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible,.button:focus-within{outline:2px solid var(--gold);outline-offset:4px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);caret-color:var(--gold);min-width:0}input::placeholder{color:var(--muted)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold)}textarea{resize:vertical;min-height:74px}a{color:var(--gold);text-underline-offset:4px}::selection{background:var(--gold);color:var(--bg)}*{scrollbar-color:var(--line) var(--bg)}.shell{max-width:1480px;margin:auto;padding:40px 36px 26px}header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:36px}h1{font-size:2rem;font-weight:600;letter-spacing:-.03em;margin:0 0 10px}h1 span{font-size:1rem;font-weight:400;color:var(--gold);margin-left:14px}header p,footer p{color:var(--muted);font-size:.85rem;line-height:1.7;margin:0}.local-label{font-size:.75rem;color:var(--gold);border:1px solid var(--line);border-radius:6px;padding:7px 10px;white-space:nowrap}nav,.tabs,.tools,.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}nav{padding-bottom:22px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:14px}.tabs button{border:0;border-radius:8px;padding:10px 18px}.tools{flex-wrap:wrap}.scan-summary{color:var(--muted);font-size:.8rem;line-height:1.6;margin:14px 0 -8px;overflow-wrap:anywhere}.filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:14px;margin:24px 0 20px}.advanced-filters{grid-column:1/-1;border-top:1px solid var(--line);padding-top:8px}.advanced-filters summary{font-size:.82rem;color:var(--muted)}.advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:10px 0}label{display:block;font-size:.78rem;color:var(--muted)}label input,label select,label textarea{margin-top:7px}.button{display:inline-flex;align-items:center;color:var(--text)}.gallery-heading p{font-size:.86rem;color:var(--muted);font-variant-numeric:tabular-nums}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 20px}.tile{min-width:0}.image-button{display:block;border:0;padding:0;width:100%;aspect-ratio:4/5;background:#12151b;border-radius:12px;overflow:hidden}.image-button img{width:100%;height:100%;object-fit:contain;display:block;transition:filter 180ms ease-out}.image-button:hover img{filter:brightness(1.07)}.tile h2{font-size:.94rem;font-weight:500;margin:12px 0 6px;overflow-wrap:anywhere}.tile p{font-size:.73rem;line-height:1.6;color:var(--muted);margin:0 0 10px;overflow-wrap:anywhere}.tile-actions{display:flex;gap:7px}.tile-actions button{font-size:.76rem;flex:1;padding:7px 9px}.tile-actions svg{width:16px;height:16px;vertical-align:-3px;margin-right:5px}.empty{grid-column:1/-1;min-height:290px;display:grid;place-content:center;text-align:center;max-width:100%;padding:30px}.empty h2{font-size:1.3rem;font-weight:500}.empty p{color:var(--muted);font-size:.9rem;line-height:1.8}.bad{color:var(--danger)!important}#notice{min-height:22px;color:var(--gold);font-size:.84rem;line-height:1.6;margin:0 0 16px;overflow-wrap:anywhere}footer{margin-top:50px;padding-top:22px;border-top:1px solid var(--line)}footer details{margin-top:12px;font-size:.8rem;color:var(--muted)}footer details p{overflow-wrap:anywhere;max-width:75ch;margin-top:10px}summary{cursor:pointer;padding:8px 0}dialog{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:22px;width:min(1100px,95vw);max-height:94dvh;overflow:auto}dialog::backdrop{background:#000c}.dialog-toolbar{display:flex;gap:8px;align-items:center;justify-content:flex-end;position:sticky;top:-22px;background:var(--bg);z-index:2;padding:10px 0 16px}.dialog-toolbar strong{margin-right:auto}.large-image{display:block;width:100%;height:70dvh;object-fit:contain;background:#090b0f;border-radius:10px}.detail-body{max-width:760px;margin:26px auto 10px}.detail-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.detail-heading h2{margin:0 0 10px;font-size:1.4rem;font-weight:500;overflow-wrap:anywhere}.detail-body p{font-size:.85rem;line-height:1.8;color:var(--muted)}.story{margin:22px 0 28px;padding-top:20px;border-top:1px solid var(--line)}.story h3{font-size:1.15rem;font-weight:500;margin:0 0 10px}.excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.story .body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.95;color:var(--text);max-width:70ch}.story-meta{font-size:.75rem!important}.story button{margin-right:8px}.review-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.wide{grid-column:1/-1}.checks{display:grid;gap:12px;padding:14px 0}.checks label{display:flex;gap:10px;align-items:center;line-height:1.7}.checks input{margin:0;flex-shrink:0}.save-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 0}.save-row span{font-size:.8rem;color:var(--muted)}.provenance{margin-top:24px;font-size:.8rem;overflow-wrap:anywhere}.provenance dt{color:var(--gold);margin-top:12px}.provenance dd{margin:4px 0;color:var(--muted);line-height:1.6}.hash{font-family:ui-monospace,monospace;font-size:.72rem}#comparison{display:grid;grid-template-columns:1fr 1fr;gap:18px}#comparison img{width:100%;height:65dvh;object-fit:contain}#comparison h3{font-size:.9rem;font-weight:500;overflow-wrap:anywhere}#scan-view{max-width:600px}#scan-result{line-height:1.9;font-size:.9rem;overflow-wrap:anywhere}.scan-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}#viewer:fullscreen{width:100%;max-height:100%;border:0;border-radius:0}.fullscreen-mode .large-image{height:87dvh}.fullscreen-mode .detail-body{display:none}
@media(min-width:1500px){.gallery{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1050px){.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.filters{grid-template-columns:1.5fr 1fr}.shell{padding:28px 24px}}
@media(max-width:600px){.advanced-grid{grid-template-columns:1fr}.shell{padding:24px 16px}header{margin-bottom:25px}h1{font-size:1.7rem}h1 span{display:block;margin:7px 0 0;font-size:.88rem}.local-label{font-size:.72rem;padding:7px}header p{font-size:.76rem;max-width:22ch}.tools{gap:6px}.tools button,.tools .button{font-size:.75rem;padding:8px 10px}.filters{grid-template-columns:1fr 1fr;gap:12px}.search{grid-column:1/-1}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}.tile h2{font-size:.83rem}.tile-actions{flex-wrap:wrap}.tile-actions button{white-space:nowrap}.gallery-heading button{font-size:.75rem;padding:8px 10px}dialog{padding:12px;width:97vw;max-height:96dvh}.dialog-toolbar{top:-12px;gap:5px}.dialog-toolbar button{font-size:.72rem;padding:7px 9px}.large-image{height:58dvh}.detail-body{margin-top:20px}.detail-heading h2{font-size:1.2rem}.review-form{grid-template-columns:1fr}.wide{grid-column:auto}#comparison{gap:8px}#comparison img{height:48dvh}.scan-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#viewer-stage:fullscreen{display:block;background:var(--bg);color:var(--text);padding:12px 22px;width:100%;height:100%;overflow:auto}

.category-intro{color:var(--gold)!important;font-size:.8rem!important;margin:0 0 12px}.tile-meta{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}.secondary-tools{display:flex;gap:8px;padding:10px 0 18px}.tile-actions button{flex:0 1 auto;min-width:72px}.tile-actions .discard-button{border-style:dashed;color:var(--muted)}.tile-actions .discard-button:hover{border-color:var(--danger);color:var(--text)}.detail-heading .discard-button{white-space:nowrap;color:var(--muted)}

[hidden]{display:none!important}
.vault-gate{max-width:620px;margin:12dvh auto;padding:32px 24px}
.vault-gate h2{font-size:1.35rem;margin:32px 0 14px}
.vault-gate p{color:var(--muted);line-height:1.8}
.vault-gate button{margin:18px 0;min-height:44px}
#vault-status{color:var(--danger)}
#vault-update-status{color:var(--muted);font-size:.85rem}
img[data-vault]:not([src]):not([data-decrypt-error]){visibility:hidden}
.tabs{flex-wrap:wrap;justify-content:flex-start}
.queue-tools{margin:20px 0;padding-bottom:20px;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.queue-tools p{margin:0;line-height:1.7;color:var(--muted);font-size:.85rem}
.queue-tools p:last-child{flex-basis:100%}
#queue-state{color:var(--gold);font-variant-numeric:tabular-nums}
#discard-view{max-width:660px}
#discard-reasons{border:0;padding:0;margin:24px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
#discard-reasons label{display:flex;align-items:center;gap:10px;min-height:44px;color:var(--text);line-height:1.5}
#discard-reasons input{margin:0;flex-shrink:0}
#discard-status{color:var(--danger)}
.large-image{touch-action:pan-y pinch-zoom}
.detail-heading{flex-wrap:wrap}
@media(max-width:600px){
  button,.button{min-height:44px}
  input,select,textarea{font-size:16px}
  .tabs{gap:6px}
  .tabs button{padding:10px 12px}
  .queue-tools button{flex:1 1 auto}
  .shell{padding-bottom:max(24px,env(safe-area-inset-bottom))}
  #discard-reasons{grid-template-columns:1fr}
  .detail-heading{position:sticky;bottom:0;background:var(--bg);padding:12px 0 max(12px,env(safe-area-inset-bottom));z-index:1;gap:8px}
  .detail-heading h2{flex-basis:100%}
}
