/* Shared portfolio slideshow 1.0.0 — navy theater, original uncropped pictures. */
.gallery-open{overflow:hidden}
.project-slideshow{--showcase-ink:#f7f6f2;--showcase-muted:#b5c5cf;--showcase-accent:#e6cd9b;box-sizing:border-box;width:min(1400px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:0;border:1px solid #446071;border-radius:18px;background:#0b1b29;color:var(--showcase-ink);overflow:auto;overscroll-behavior:contain;box-shadow:0 35px 120px #0009;color-scheme:dark}
.project-slideshow *{box-sizing:border-box}
.project-slideshow::backdrop{background:#030d18ed;backdrop-filter:blur(12px)}
.project-slideshow .showcase-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 30px;background:#0b1b29f5;border-bottom:1px solid #ffffff18;backdrop-filter:blur(16px)}
.showcase-eyebrow{display:block;color:var(--showcase-accent);font-size:10px;letter-spacing:.22em;font-weight:600;line-height:1.6}
.project-slideshow h2{font-size:clamp(22px,2.5vw,34px);font-weight:500;letter-spacing:-.025em;line-height:1.2;color:var(--showcase-ink);margin:5px 0 0}
.project-slideshow button{font:inherit;cursor:pointer;color:inherit}
.project-slideshow .gallery-close{display:flex;align-items:center;gap:20px;flex-shrink:0;border:1px solid #708390;background:transparent;border-radius:7px;padding:10px 15px;min-height:44px;font-size:14px}
.gallery-close span{font-size:24px;line-height:1}
.showcase-body{padding:22px 30px 24px}
.showcase-figure{margin:0}
.showcase-stage{position:relative;height:clamp(270px,53dvh,680px);isolation:isolate;overflow:hidden;border:1px solid #ffffff20;border-radius:10px;background:radial-gradient(ellipse at 50% 40%,#294352,#07121d 75%);touch-action:pan-y pinch-zoom}
.showcase-frames,.showcase-frame{position:absolute;inset:0}
.showcase-frame{overflow:hidden;transform-origin:50% 50%;backface-visibility:hidden}
.showcase-image{position:absolute;display:block;inset:0;width:100%;height:100%;object-fit:contain;padding:12px;filter:drop-shadow(0 12px 22px #0006)}
.showcase-ambient{position:absolute;inset:-7%;width:114%;height:114%;object-fit:cover;filter:blur(38px) saturate(.65) brightness(.45);opacity:.5;pointer-events:none}
.showcase-number{position:absolute;top:14px;left:14px;z-index:3;pointer-events:none;padding:7px 11px;border:1px solid #ffffff25;border-radius:5px;background:#06121be6;color:#fff;font-size:11px;line-height:1.4;letter-spacing:.18em;font-variant-numeric:tabular-nums}
.showcase-number:empty{display:none}
.showcase-loading{display:none;position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:3;padding:8px 14px;border-radius:6px;background:#091b2ded;color:#fff;font-size:13px;white-space:nowrap}
.showcase-stage[aria-busy=true] .showcase-loading{display:block}
.showcase-navigation{padding:0 0 14px;border-bottom:1px solid #ffffff24}
.showcase-timeline{display:flex;gap:7px;overflow-x:auto;padding:2px 0}
.showcase-step{flex:1 0 24px;min-width:24px;min-height:44px;padding:0;border:0;background:none;display:flex;align-items:center;border-radius:3px}
.showcase-track{display:block;height:3px;width:100%;position:relative;overflow:hidden;background:#425463;border-radius:3px}
.showcase-progress{position:absolute;inset:0;background:var(--showcase-accent);transform:scaleX(0);transform-origin:left center}
.showcase-step.is-seen .showcase-track{background:#8b9ca5}
.showcase-step[aria-current=true] .showcase-track{background:#b69c6e;height:4px}
.showcase-toolbar,.showcase-transport,.showcase-arrows{display:flex;align-items:center}
.showcase-toolbar{justify-content:space-between;gap:16px}
.showcase-transport{gap:20px}
.showcase-arrows{gap:8px}
.project-slideshow .showcase-play{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--showcase-accent);border-radius:6px;min-height:44px;min-width:107px;padding:9px 15px;background:var(--showcase-accent);color:#102333;font-size:14px;font-weight:600}
.project-slideshow .showcase-play span{font-size:14px;line-height:1}
.project-slideshow .gallery-prev,.project-slideshow .gallery-next{border:1px solid #5e7483;border-radius:6px;background:transparent;min-height:44px;padding:9px 15px;font-size:14px}
.showcase-counter{color:var(--showcase-muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.project-slideshow button:disabled{opacity:.4;cursor:default}
.project-slideshow .showcase-caption{padding:14px 0 0;margin:0;font-size:13px;line-height:1.65;color:var(--showcase-muted);max-width:100ch}
.showcase-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:4px}
.project-slideshow .gallery-original{color:var(--showcase-accent);font-size:13px;text-decoration:underline;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center}
.project-slideshow [hidden]{display:none!important}
.showcase-hint{color:#9aacb8;font-size:11px;letter-spacing:.025em}
.showcase-details{border-top:1px solid #ffffff24;margin-top:10px}
.showcase-details summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;min-height:52px;font-size:14px;list-style:none;color:var(--showcase-ink)}
.showcase-details summary::-webkit-details-marker{display:none}
.showcase-details summary span{font-size:23px;font-weight:300}
.showcase-details[open] summary span{transform:rotate(45deg)}
.showcase-details-content{max-width:100ch;padding:4px 0 10px}
.showcase-details-content p{font-size:14px;line-height:1.75;color:var(--showcase-muted);margin:0 0 16px}
.showcase-details-content .gallery-status{font-size:12px}
.gallery-links{display:flex;flex-wrap:wrap;gap:10px}
.project-slideshow .gallery-links a{display:inline-flex;align-items:center;min-height:44px;padding:9px 14px;border:1px solid #6e8595;border-radius:6px;color:var(--showcase-ink);font-size:13px;text-decoration:none}
.showcase-error{position:sticky;bottom:14px;z-index:6;display:flex;align-items:center;gap:16px;background:#fff0da;color:#452b11;border:1px solid #efbd70;border-radius:8px;box-shadow:0 8px 40px #0008;padding:14px;margin:12px 0}
.showcase-error p{margin:0;font-size:14px;line-height:1.5}
.showcase-error button{min-height:44px;padding:8px 12px;background:#fff;border:1px solid #926c33;border-radius:5px}
.showcase-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.gallery-title-button{font:inherit;text-align:left;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.gallery-title-button:hover{text-decoration:underline}
.gallery-launch{display:block;margin-top:16px;min-height:44px}
.project-cover[role=button]{cursor:pointer}
.project-slideshow :focus-visible{outline:3px solid #ffe2a9;outline-offset:3px}
.project-slideshow:focus-visible{outline:none}
.gallery-title-button:focus-visible,.gallery-launch:focus-visible{outline:3px solid #967128;outline-offset:3px}
@media(hover:hover){.project-slideshow button:not(:disabled):hover,.project-slideshow .gallery-links a:hover{background:#294456;color:#fff}.project-slideshow .showcase-play:hover{background:#f4dfb4;color:#102333}.showcase-step:hover .showcase-track{background:#e6cd9b}}
@media(max-width:700px){
 .project-slideshow{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:12px}
 .project-slideshow .showcase-header{padding:16px;gap:14px}
 .project-slideshow h2{font-size:22px}
 .project-slideshow .gallery-close{gap:8px;padding:8px 10px;font-size:12px}
 .showcase-body{padding:12px 14px 14px}
 .showcase-stage{height:42dvh;min-height:210px;border-radius:7px}
 .showcase-image{padding:7px}
 .showcase-number{top:8px;left:8px;font-size:10px;padding:5px 7px}
 .showcase-toolbar{gap:8px}.showcase-transport{gap:10px}.showcase-arrows{gap:6px}
 .project-slideshow .showcase-play{min-width:88px;padding:8px 11px;font-size:13px}
 .project-slideshow .gallery-prev,.project-slideshow .gallery-next{padding:8px 12px;min-width:44px}
 .showcase-arrows span{display:none}
 .showcase-caption{font-size:12px!important}
 .showcase-meta{display:block}.showcase-hint{display:block;font-size:10px;padding-bottom:8px}
 .showcase-error{gap:10px;padding:12px}.showcase-error p{font-size:12px}
}
@media(max-height:500px) and (min-width:701px){.showcase-stage{height:65dvh;min-height:180px}.project-slideshow .showcase-header{padding:10px 24px}}
@media(prefers-reduced-motion:reduce){.project-slideshow,.project-slideshow::backdrop,.project-slideshow *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.showcase-ambient{filter:blur(38px) saturate(.65) brightness(.45)}}
