/* JDAD theme: presentation only; original media and interactions are preserved. */
:root {color-scheme:dark;--ink:#edf2fa;--paper:#090b0e;--panel:#111419;--line:#ffffff18;--muted:#9ca9bd;--accent:#b9cde9;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;background:#090b0e}
body {background:radial-gradient(ellipse 90% 580px at 28% 0%,#42638a65,transparent 80%),linear-gradient(#172334,#090b0e 650px);background-repeat:no-repeat;background-color:#090b0e;color:var(--ink)}
.topbar {width:calc(100% - 48px);max-width:1360px;margin:14px auto 0;height:64px;top:14px;padding:0 26px;border:1px solid #ffffff17;border-radius:36px;background:linear-gradient(115deg,#273244b8,#171d27dc);backdrop-filter:blur(24px);box-shadow:inset 0 1px 0 #ffffff09,0 8px 28px #0002}
.brand {font-size:21px;font-weight:500;letter-spacing:-.03em}.brand-dot {color:#b9cde9}
.topnav a {color:#a8b4c7;font-size:12px;padding:9px 16px}
.topnav a.active {background:#e8edf5;color:#1a2230}.topnav a:hover {background:#ffffff12;color:#edf2fa}
.page {width:min(1320px,calc(100% - 64px));padding-top:56px}
.gallery-intro {padding:14px 0 42px;gap:40px;border-color:#ffffff10}
.gallery-index {color:#a8bad3;font-size:10px;font-weight:400;letter-spacing:.18em;margin-bottom:24px}
.gallery-intro h1 {font-size:clamp(48px,6vw,80px);font-weight:500;letter-spacing:-.05em;line-height:1.1}
.gallery-desc,.gallery-summary p {color:#a8b4c7;font-size:12px;line-height:1.9;white-space:normal;}
.gallery-desc {max-width:560px;margin-top:20px}
.gallery-metrics {border-color:#ffffff14;gap:32px}.metric strong {font-size:26px;font-weight:500}.metric span {font-size:10px;color:#9ca9bd}
.compress-link-btn,.metrics-compress-btn {background:linear-gradient(145deg,#d3e0f43b,#758bab1f 48%,#a1b6d32e);color:#dce5f2;border:1px solid #d3e1f645;border-radius:22px;box-shadow:inset 0 1px 1px #f2f8ff30,0 2px 5px #040a141f;font-size:12px;font-weight:400}
.compress-link-btn:hover,.metrics-compress-btn:hover {background:#ffffff19;box-shadow:0 6px 20px #0003;border-color:#9fbde670}
.filter-dock {top:88px;padding-top:12px;background:linear-gradient(#101720f5 82%,#10172000);backdrop-filter:blur(16px);border-radius:18px}
.toolbar {background:#1a2230b8;border-color:#ffffff18;box-shadow:inset 0 1px 0 #ffffff06,0 8px 24px #0002;border-radius:18px;padding:9px}
.search-box {background:#ffffff04;border-color:#ffffff18;border-radius:24px}
.field,.select,.btn {background:#ffffff06;color:#dce5f2;border-color:#ffffff1d;border-radius:24px;font-size:12px;min-height:42px}
.field::placeholder {color:#8f9caf}.select option {background:#1a2230;color:#edf2fa}
.search-box .field {background:transparent}.search-box .btn-search {background:transparent;color:#a8bad3;border-left:0;min-height:42px}
.search-box .btn-search:hover {background:#ffffff0b;color:#fff}
.search-box:focus-within,.field:focus,.select:focus {border-color:#9bbce980;box-shadow:0 0 0 3px #7fa9e012}
.btn {font-weight:500}.btn-dark,.btn-accent {background:#e8edf5;color:#1a2230;border-color:#e8edf5}.btn-ghost {background:#ffffff05}
.chip {border-radius:22px;color:#9ca9bd;font-size:11px;padding:9px 15px}.chip:hover {background:#ffffff09;color:#edf2fa}.chip.active {background:#e8edf5;color:#1a2230}
.gallery-results-head {margin-top:8px;margin-bottom:20px}.gallery-results-head strong {font-weight:500}.gallery-results-head span {font-size:11px}
.gallery-grid {gap:16px}.image-card {background:#111419;border:1px solid #ffffff15;border-radius:14px;padding:7px;transition:border-color .25s,box-shadow .25s,background .25s}
.image-card:hover {background:#171e29;border-color:#74a5f361;box-shadow:0 10px 32px #0003,0 0 22px #2a64c21a}
.image-wrap {border-radius:9px;background:#303743}.image-meta {padding:13px 7px 9px;gap:7px}.image-meta strong {font-size:12px;font-weight:500}.image-meta span {font-size:10px;overflow:hidden;text-overflow:ellipsis}
.check {width:20px;height:20px;top:10px;left:10px;accent-color:#8fafd9}
.image-card:has(.check:checked) {border-color:#a8c8f2;box-shadow:0 0 0 2px #8fafd925;background:#202c3e}
.download-one {background:#e8edf5e8;color:#1a2230;border:1px solid #ffffff50;backdrop-filter:blur(12px);font-size:11px;padding:8px 12px;right:9px;bottom:9px}
.page-heading h1 {font-weight:500;font-size:clamp(36px,5vw,64px);line-height:1.1}
.panel h2 {font-weight:500}.form-group label {font-weight:500}
#image-form,.edit-panel,.login-panel,.admin-card {background:#141b25;border:1px solid #ffffff18;border-radius:14px}
.login-panel {padding:28px}.form-group input,.form-group select {background:#ffffff06;color:#edf2fa;border-color:#ffffff20}
.dropzone {background:#ffffff04;border-color:#7e96b35c}.tree-sub {color:#a8b4c7}.danger,.login-error {color:#e9a2a8}
.edit-preview {background:#303743}.edit-backdrop,.lightbox-backdrop {background:#070b12e8;backdrop-filter:blur(12px)}
.lightbox-prev,.lightbox-next {background:#253347cc;border:1px solid #ffffff20;border-radius:20px;font-size:32px}
.toast {background:#253347e8;border:1px solid #ffffff20;backdrop-filter:blur(16px);color:#e5edfa}
a[download][href$="gulu-collector.zip"] {background:linear-gradient(145deg,#536780e8,#253347ed) !important;border:1px solid #ffffff30;box-shadow:inset 0 1px 1px #ffffff20,0 4px 16px #0003 !important;color:#e5edfa !important}
.portal {background:radial-gradient(ellipse at top,#294366,#090b0e 75%)}.portal-kicker {color:#a8bad3}.portal-copy button:hover {background:#dce8fa;color:#172334}
:focus-visible {outline:2px solid #9bbce9;outline-offset:4px}
@media(max-width:1000px) {.gallery-summary {gap:20px}.gallery-grid {grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px) {.topbar {width:calc(100% - 24px);height:58px;top:10px;margin-top:10px;padding:0 18px}.brand {font-size:19px}.topnav a {font-size:11px;padding:8px 11px}.page {width:calc(100% - 28px);padding-top:34px}.gallery-intro {gap:24px;padding-bottom:28px}.gallery-intro h1 {font-size:52px}.gallery-summary {display:block}.gallery-metrics {justify-content:flex-start}.filter-dock {top:78px}.gallery-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.image-card {padding:5px}.image-meta {padding:10px 4px 7px}.toolbar {padding:7px}.download-one {font-size:10px;padding:7px 9px}.summary-actions {justify-content:flex-start}}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto}.image-card,.image-wrap img {transition:none}}
body {display:flow-root}
.summary-actions .compress-link-btn {background:linear-gradient(145deg,#d3e0f43b,#758bab1f 48%,#a1b6d32e) !important;box-shadow:inset 0 1px 1px #f2f8ff30,0 2px 5px #040a141f !important}

/* Gallery primary tool shortcuts */
.summary-actions .gallery-action {
  position:relative; isolation:isolate; overflow:hidden;
  min-width:116px; height:42px; padding:0 17px 0 19px;
  gap:12px; border-radius:22px;
  color:#f5f8ff; font-weight:600; letter-spacing:.02em;
  transition:transform .22s ease,filter .22s ease,box-shadow .22s ease !important;
  animation:gallery-action-breathe 3.8s ease-in-out infinite;
}
.summary-actions .gallery-action-compress {
  background:linear-gradient(135deg,#214f91,#397fe0 54%,#62a5ff) !important;
  border-color:#91c4ff99 !important;
  box-shadow:inset 0 1px 0 #ddecff70,0 0 0 1px #3788ee2e,0 7px 24px #2277dc42 !important;
}
.summary-actions .gallery-action-format {
  background:linear-gradient(135deg,#a81722,#e33a42 54%,#ff6c68) !important;
  border-color:#ffaaa688 !important;
  box-shadow:inset 0 1px 0 #ffe7e65c,0 0 0 1px #ef4b4830,0 7px 24px #dd343c42 !important;
  animation-delay:-1.9s;
}
.gallery-action::before {
  content:""; position:absolute; z-index:-1; inset:-2px auto -2px -45%; width:34%;
  background:linear-gradient(90deg,transparent,#fff5,transparent);
  transform:skewX(-18deg); animation:gallery-action-sheen 4.8s ease-in-out infinite;
}
.gallery-action-format::before { animation-delay:-2.4s; }
.gallery-action-arrow { font-size:14px; opacity:.8; transition:transform .22s ease,opacity .22s ease; }
.summary-actions .gallery-action:hover {
  color:#fff; transform:translateY(-3px) scale(1.025); filter:brightness(1.1);
}
.summary-actions .gallery-action-compress:hover { box-shadow:inset 0 1px 0 #fff8,0 0 0 1px #7bb8ff70,0 11px 30px #2680e566 !important; }
.summary-actions .gallery-action-format:hover { box-shadow:inset 0 1px 0 #fff7,0 0 0 1px #ff8c8870,0 11px 30px #df354c66 !important; }
.gallery-action:hover .gallery-action-arrow { transform:translate(2px,-2px); opacity:1; }
.gallery-action:focus-visible { outline:2px solid #fff; outline-offset:3px; }
@keyframes gallery-action-breathe { 0%,100% { filter:brightness(1); } 50% { filter:brightness(1.13); } }
@keyframes gallery-action-sheen { 0%,58% { left:-45%; } 78%,100% { left:125%; } }
@media(max-width:720px) {
  .summary-actions .gallery-action { flex:1; min-width:0; height:40px; padding-inline:14px; }
}
@media(prefers-reduced-motion:reduce) {
  .summary-actions .gallery-action,.gallery-action::before { animation:none !important; }
}

/* Sentinel header: blue neural streams and cyan sparks beneath readable content. */
.gallery-intro{position:relative;isolation:isolate}
.gallery-intro>.gallery-sentinel{position:absolute;inset:-60px -24px 0;width:calc(100% + 48px);height:calc(100% + 60px);z-index:-1;pointer-events:none;opacity:.8;mix-blend-mode:screen;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 75%,transparent);border-radius:24px}
.gallery-intro h1,.gallery-intro .gallery-desc{text-shadow:0 2px 16px #08101de0}
@media(max-width:600px){.gallery-intro>.gallery-sentinel{inset:-30px -12px 0;width:calc(100% + 24px);height:calc(100% + 30px)}}

/* Shared return to the main tool portal. */
.topnav .main-site-link{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:9px 15px;border:1px solid rgba(164,195,239,.32);border-radius:999px;background:rgba(139,177,229,.09);color:#dce9fc;transition:background .2s,border-color .2s}
.topnav .main-site-link:hover,.topnav .main-site-link:focus-visible{background:rgba(139,177,229,.19);border-color:rgba(164,195,239,.65);color:#fff}
@media(max-width:600px){.topbar{flex-wrap:wrap;gap:12px}.topnav{flex-wrap:wrap;gap:10px}.topnav .main-site-link{padding:7px 12px}}

.topbar .jdad-brand{display:flex;align-items:center;gap:13px;flex-shrink:0;letter-spacing:normal;color:#f5f6fa}
.jdad-brand-logo{display:block;width:78px;height:32px;object-fit:contain;filter:brightness(0) invert(1)}
.jdad-brand-copy{display:flex;flex-direction:column;gap:5px;line-height:1.3}
.jdad-brand-copy b{font-size:11px;font-weight:500;letter-spacing:.025em}
.jdad-brand-copy small{font-size:7px;color:#b2bed0;letter-spacing:.1em;white-space:nowrap}
@media(max-width:720px){.jdad-brand-copy{display:none}.jdad-brand-logo{width:64px;height:28px}}
