/* LINPO LAB project-deck@20260824-perf1: shared interaction and accessibility layer. */

.deck-runtime-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.deck>.slide-shell:not(.is-rendered){content-visibility:hidden;contain:layout style paint}
.progress-dot{position:relative}
.progress-dot::after{content:"";position:absolute;inset:-8px}
.progress-dot:focus-visible,.brand-link:focus-visible,.project-tab:focus-visible{outline:3px solid var(--lime);outline-offset:3px}

.deck-controls{position:fixed;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:30;display:none;align-items:center;gap:6px;padding:6px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--paper) 92%,transparent);color:var(--ink);box-shadow:0 12px 36px rgba(0,0,0,.24);backdrop-filter:blur(14px)}
.deck-control{appearance:none;display:grid;min-width:44px;min-height:44px;place-items:center;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font:800 14px/1 var(--font);cursor:pointer}
.deck-control[data-deck-action="read"]{padding-inline:16px;background:var(--lime);color:var(--paper)}
.deck[data-theme="black"] .deck-control[data-deck-action="read"]{color:#000}
.deck-control:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
.deck-control:disabled{opacity:.42;cursor:default}
.deck-mobile-page{min-width:56px;color:var(--ink);font:800 13px/1 var(--font);text-align:center}
.deck-control[data-deck-action="prev"],.deck-control[data-deck-action="next"],.project-deck-reader-button[data-reader-action="prev"],.project-deck-reader-button[data-reader-action="next"]{position:relative;font-size:0}
.deck-control[data-deck-action="prev"]::before,.deck-control[data-deck-action="next"]::before,.project-deck-reader-button[data-reader-action="prev"]::before,.project-deck-reader-button[data-reader-action="next"]::before{content:"";grid-area:1/1;width:18px;height:2px;border-radius:999px;background:currentColor}
.deck-control[data-deck-action="prev"]::after,.deck-control[data-deck-action="next"]::after,.project-deck-reader-button[data-reader-action="prev"]::after,.project-deck-reader-button[data-reader-action="next"]::after{content:"";grid-area:1/1;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor}
.deck-control[data-deck-action="prev"]::after,.project-deck-reader-button[data-reader-action="prev"]::after{transform:translateX(-4px) rotate(-135deg)}
.deck-control[data-deck-action="next"]::after,.project-deck-reader-button[data-reader-action="next"]::after{transform:translateX(4px) rotate(45deg)}

.project-deck-reader[hidden],.image-lightbox[hidden]{display:none!important}
.project-deck-reader{position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;background:var(--paper);color:var(--ink)}
.project-deck-reader-toolbar{position:relative;z-index:2;display:flex;flex:0 0 auto;align-items:center;justify-content:center;gap:6px;min-height:64px;padding:8px max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));border-bottom:1px solid var(--line);overflow-x:auto;background:color-mix(in srgb,var(--paper) 96%,transparent);box-shadow:0 6px 22px rgba(0,0,0,.12)}
.project-deck-reader-button{appearance:none;display:grid;flex:0 0 auto;min-width:44px;min-height:44px;place-items:center;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font:800 14px/1 var(--font);cursor:pointer}
.project-deck-reader-button:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
.project-deck-reader-scale{display:grid;flex:0 0 50px;min-height:44px;place-items:center;color:var(--ink);font:800 12px/1 var(--font)}
.project-deck-reader-stage{position:relative;flex:1;min-height:0;padding:18px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:color-mix(in srgb,var(--paper) 96%,var(--ink))}
.project-deck-reader-stage .slide-shell{position:relative;left:auto;top:auto;z-index:1;display:block;opacity:1;pointer-events:auto;transform:none!important;transition:none;margin:0 auto}
.project-deck-reader-stage .slide{position:absolute;left:0;top:0;transform-origin:top left}

.image-lightbox{position:fixed;inset:0;z-index:1100;display:block;padding:32px;background:rgba(0,0,0,.9);backdrop-filter:blur(10px)}
.image-lightbox-stage{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.image-lightbox-media{flex:none;display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;box-shadow:0 24px 80px rgba(0,0,0,.55);cursor:zoom-in;user-select:none;-webkit-user-drag:none}
.image-lightbox.is-zoomed .image-lightbox-stage{align-items:flex-start;justify-content:flex-start}
.image-lightbox.is-zoomed .image-lightbox-media{max-width:none;max-height:none;cursor:zoom-out}
.image-lightbox-close{appearance:none;position:absolute;z-index:2;top:20px;right:20px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(0,0,0,.72);color:#fff;cursor:pointer}
.image-lightbox-close-icon{position:relative;display:block;width:16px;height:16px}
.image-lightbox-close-icon::before,.image-lightbox-close-icon::after{content:"";position:absolute;left:7px;top:0;width:2px;height:16px;border-radius:999px;background:currentColor}
.image-lightbox-close-icon::before{transform:rotate(45deg)}
.image-lightbox-close-icon::after{transform:rotate(-45deg)}
.image-lightbox-close:hover,.image-lightbox-close:focus-visible{border-color:var(--lime);outline:3px solid var(--lime);outline-offset:2px;color:var(--lime)}
.image-lightbox-hint{position:absolute;z-index:2;left:50%;bottom:18px;transform:translateX(-50%);padding:8px 14px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(0,0,0,.7);color:rgba(255,255,255,.9);font:800 13px/1.2 var(--font);white-space:nowrap;pointer-events:none}

@media(max-width:700px){
  .deck-controls{display:flex}
  .project-deck-reader-stage{padding:12px}
  .image-lightbox{padding:16px}
  .image-lightbox-close{top:12px;right:12px}
  .image-lightbox-hint{bottom:12px;font-size:12px}
}

@media(max-width:420px){
  .deck-controls{right:8px;left:8px;justify-content:center}
  .deck-control{padding-inline:10px}
  .deck-control[data-deck-action="read"]{padding-inline:13px}
  .deck-mobile-page{min-width:48px}
}

@media(prefers-reduced-motion:reduce){
  .slide-shell,.reveal{transition:none!important}
}
