/* ===== Interlock Flipbook — Issuu-style viewer ===== */
:root{
  --brand:#c8102e;            /* Interlock red */
  --brand-dark:#9c0c23;
  --ink:#1a1c20;
  --panel:#23262c;
  --panel-2:#2c3036;
  --panel-line:#3a3f47;
  --text:#eef1f5;
  --muted:#aab2bd;
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --tbar-h:62px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html,body{height:100%}
/* screen-reader / crawler-only content (visually hidden, still in the DOM & accessible) */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:linear-gradient(135deg,#2a2f3d,#1f2330 55%,#181b25);
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Top brand bar ---------- */
.topbar{
  position:fixed;top:0;left:0;right:0;height:54px;z-index:40;
  display:flex;align-items:center;gap:14px;padding:0 18px;
  background:linear-gradient(180deg,rgba(20,22,26,.92),rgba(20,22,26,.55));
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.brand{display:flex;align-items:center;gap:13px;min-width:0}
.brand .logo{height:30px;width:auto;flex:0 0 auto;display:block}
.brand .divider{width:1px;height:24px;background:rgba(255,255,255,.18);flex:0 0 auto}
.brand .titles{min-width:0}
.brand .t2{font-size:12px;color:var(--muted);line-height:1.2;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.topbar .spacer{flex:1}
.tagline{font-size:12.5px;color:#ffffff;font-style:normal;white-space:nowrap}
.tagline b{color:#ffffff;font-style:normal;font-weight:700}

/* read-progress under topbar */
.progress{position:fixed;top:54px;left:0;right:0;height:3px;z-index:39;background:rgba(255,255,255,.05)}
.progress > i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brand),#ff5a72);transition:width .4s var(--ease)}

/* ---------- Stage ---------- */
.stage-wrap{
  position:fixed;left:0;right:0;top:57px;bottom:var(--tbar-h);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;touch-action:none;
}
.flip-stage{
  transform-origin:center center;
  transition:transform .28s var(--ease);
  will-change:transform;
}
#flipbook{width:100%;height:100%}
.page{width:100%;height:100%;background:#fff;overflow:hidden}
.page img{width:100%;height:100%;display:block;object-fit:fill}
.stf__item{box-shadow:0 0 14px rgba(0,0,0,.18)}
.flip-stage.dragging{transition:none}
#zoomGuard{position:absolute;inset:0;display:none;z-index:25;cursor:grab;touch-action:none}
#zoomGuard:active{cursor:grabbing}
body.is-zoomed .arrow{opacity:0;pointer-events:none}
.stPageFlip{margin:0 auto}
.stPageFlip .page{background:#fff}
.page img{width:100%;height:100%;display:block;user-select:none;-webkit-user-drag:none}

/* nav arrows */
.arrow{
  position:fixed;top:50%;transform:translateY(-50%);z-index:30;
  width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(28,31,36,.72);color:#fff;backdrop-filter:blur(6px);
  display:grid;place-items:center;transition:.18s var(--ease);
  box-shadow:0 6px 20px rgba(0,0,0,.35);
}
.arrow:hover{background:var(--brand);transform:translateY(-50%) scale(1.06)}
.arrow:disabled{opacity:.25;cursor:default;transform:translateY(-50%) scale(1)}
.arrow.prev{left:18px}
.arrow.next{right:18px}
.arrow svg{width:24px;height:24px}

/* ---------- Bottom toolbar ---------- */
.toolbar{
  position:fixed;left:0;right:0;bottom:0;height:var(--tbar-h);z-index:40;
  display:flex;align-items:center;gap:6px;padding:0 12px;
  background:linear-gradient(0deg,rgba(18,20,24,.96),rgba(28,31,36,.86));
  backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.07);
}
.tgroup{display:flex;align-items:center;gap:4px}
.tgroup.center{flex:1;justify-content:center}
.tbtn{
  width:40px;height:40px;border-radius:9px;border:1px solid transparent;
  background:transparent;color:var(--text);cursor:pointer;
  display:grid;place-items:center;transition:.15s var(--ease);position:relative;
}
.tbtn:hover{background:var(--panel-2);border-color:var(--panel-line)}
.tbtn:active{transform:translateY(1px)}
.tbtn.on{background:var(--brand);border-color:var(--brand)}
.tbtn svg{width:21px;height:21px}
.tbtn[disabled]{opacity:.3;cursor:default}
.tbtn[data-tip]:hover::after{
  content:attr(data-tip);position:absolute;bottom:48px;left:50%;transform:translateX(-50%);
  background:#000;color:#fff;font-size:11px;padding:4px 8px;border-radius:6px;white-space:nowrap;
  pointer-events:none;opacity:.95;
}

.pagebox{
  display:flex;align-items:center;gap:7px;padding:0 10px;height:40px;
  background:var(--panel);border:1px solid var(--panel-line);border-radius:9px;font-size:13px;
}
.pagebox input{
  width:42px;background:transparent;border:none;color:var(--text);font-size:13px;text-align:right;
  outline:none;font-variant-numeric:tabular-nums;
}
.pagebox .sep{color:var(--muted)}
.pagebox #pageTotal{color:var(--muted);font-variant-numeric:tabular-nums}

/* zoom level pill */
.zoomlvl{min-width:48px;text-align:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

/* ---------- Thumbnails drawer ---------- */
.thumbs{
  position:fixed;left:0;right:0;bottom:var(--tbar-h);z-index:45;
  background:rgba(16,18,22,.97);backdrop-filter:blur(12px);
  border-top:1px solid rgba(255,255,255,.08);
  transform:translateY(calc(100% + 80px));transition:transform .32s var(--ease);
  max-height:42vh;overflow-y:auto;padding:16px;
}
.thumbs.open{transform:translateY(0)}
.thumbs h4{margin:0 0 12px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:12px}
.thumb{
  cursor:pointer;border-radius:6px;overflow:hidden;border:2px solid transparent;
  background:#1c1f24;transition:.16s var(--ease);position:relative;
}
.thumb:hover{transform:translateY(-3px);border-color:var(--panel-line)}
.thumb.active{border-color:var(--brand)}
.thumb img{width:100%;display:block;aspect-ratio:1.44/1;object-fit:cover}
.thumb span{
  position:absolute;bottom:0;left:0;right:0;font-size:10.5px;text-align:center;
  background:linear-gradient(0deg,rgba(0,0,0,.8),transparent);padding:8px 2px 3px;color:#fff;
}

/* ---------- Loading ---------- */
.loader{
  position:fixed;inset:0;z-index:100;display:grid;place-items:center;
  background:linear-gradient(135deg,#2a2f3d,#1f2330 55%,#181b25);transition:opacity .5s ease;
}
.loader.hide{opacity:0;pointer-events:none}
.loader .box{text-align:center}
/* the logo IS the loader: a white wordmark that fills L->R like a glossy red progress bar */
.logo-load{
  width:248px;max-width:64vw;aspect-ratio:245 / 86.4;margin:0 auto;
  position:relative;overflow:hidden;
  background:#ffffff;                               /* white "track" (empty bar) */
  -webkit-mask:url(logo-white.svg) no-repeat center / contain;
          mask:url(logo-white.svg) no-repeat center / contain;
}
.logo-load::before{
  content:"";position:absolute;top:0;bottom:0;left:0;width:0;
  background:linear-gradient(180deg, #ef3a52 0%, #c8102e 52%, #9c0c23 100%);
  box-shadow:0 0 12px 1px rgba(255,90,114,.6);      /* glowing progress edge */
  animation:logobar 2s cubic-bezier(.5,.02,.4,1) forwards;   /* fill once, then hold */
}
/* realistic, uneven progress (quick start, brief stalls, final push) */
@keyframes logobar{
  0%{width:0}
  14%{width:16%}
  28%{width:24%}
  46%{width:46%}
  60%{width:54%}
  78%{width:78%}
  92%{width:90%}
  100%{width:100%}
}
@media (prefers-reduced-motion: reduce){
  .logo-load::before{animation:logobar 2s linear forwards}
}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:calc(var(--tbar-h) + 16px);transform:translateX(-50%) translateY(20px);
  background:#000;color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;z-index:60;
  opacity:0;transition:.25s var(--ease);box-shadow:var(--shadow);pointer-events:none;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* hint chip */
.hint{
  position:fixed;left:50%;top:74px;transform:translateX(-50%);z-index:35;
  background:rgba(28,31,36,.85);backdrop-filter:blur(6px);color:var(--text);
  font-size:12.5px;padding:7px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;gap:7px;transition:opacity .5s ease;
}
.hint svg{width:15px;height:15px;color:var(--brand)}
.hint.gone{opacity:0;pointer-events:none}

@media (max-width:640px){
  .tagline{display:none}
  .arrow{width:42px;height:42px}
  .arrow.prev{left:8px}.arrow.next{right:8px}
  .tbtn.opt{display:none}
  .brand .t2{display:none}
}
@media (max-width:430px){
  .pagebox{padding:0 7px}
  .tbtn{width:36px;height:36px}
}
