/* ============================================================
   ASHA PaisaGyan - Story Layout (app/views/layouts/story.php)
   ============================================================
   Loaded only by the pages that render through the "story" layout -- the full-screen,
   swipe/scroll viewers where the layout intentionally skips style.css and loads only
   bootstrap-icons + this file. Currently: the ePaper flipbook reader (/epaper/reader/{slug}),
   the Visual Stories viewer (/story/{slug}), and the Short Videos viewer (/shorts/{slug}).
   Each page's CSS was previously inline in its own view file; moved here (on request) so it
   isn't re-declared on every page render, while staying out of style.css since pages on this
   layout never load that file and it would just be dead weight there.
   ============================================================ */

/* ============================================================
   Layout Reset (layouts/story.php) -- the full-screen shell itself. Moved here from the
   layout's own <style> block (on request) so it isn't re-declared on every render.
   ============================================================ */
html, body { margin:0; padding:0; background:#000; overflow:hidden; height:100%; }
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }

/* ============================================================
   ePaper Reader (/epaper/reader/{slug}) -- the full-screen flipbook-style page viewer: header,
   swipe/scroll-snap stage, per-page layout, nav buttons, zoom, and the company-links/disclaimer
   popup. Moved here from epaper/reader.php's own <style> block (on request).
   ============================================================ */
.epr-viewer { position:fixed; inset:0; background:#1b1b1b; display:flex; flex-direction:column; height:100dvh; width:100vw; }

.epr-header {
    flex:0 0 auto; display:flex; align-items:center; justify-content:space-between;
    padding:10px 16px; background:#0a2342; color:#fff; z-index:20;
}
.epr-header-brand { display:flex; flex-direction:column; line-height:1.1; color:#fff; flex-shrink:0; }
.epr-header-logo { font-weight:800; font-size:16px; }
.epr-header-logo span { color:#f4a300; margin-left:3px; }
.epr-header-logo-img { height:26px; width:auto; display:block; }

.epr-header-page-title {
    font-size:13px; font-weight:600; opacity:.9; flex:1 1 auto; min-width:0;
    text-align:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    padding:0 14px;
}

/* Company links + Disclaimer popup.
   This page's layout only loads bootstrap-icons (for the icon font), not the full
   Bootstrap CSS bundle, so the Bootstrap ".d-none" utility class used elsewhere in
   this markup does not exist here — define it ourselves so show/hide actually works. */
.epr-info-overlay.d-none { display:none !important; }
.epr-info-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:40;
    display:flex; align-items:center; justify-content:center; padding:20px;
}
.epr-info-modal {
    background:#fff; color:#1a1a1a; border-radius:14px; width:min(420px, 100%);
    max-height:80vh; overflow-y:auto; box-shadow:0 12px 40px rgba(0,0,0,.35);
}
.epr-info-modal-header {
    display:flex; align-items:center; justify-content:flex-end;
    padding:14px 18px; border-bottom:1px solid #eee; position:sticky; top:0; background:#fff;
}
.epr-info-modal-header .epr-icon-btn { color:#1a1a1a; background:#f1f1f1; width:30px; height:30px; font-size:14px; }
.epr-info-modal-header .epr-icon-btn:hover { background:#e2e2e2; }
.epr-info-modal-body { padding:16px 18px 20px; }
.epr-info-links { list-style:none; margin:0 0 14px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; }
.epr-info-links a { color:#0a2342; font-weight:600; font-size:14px; text-decoration:none; }
.epr-info-links a:hover { text-decoration:underline; }
.epr-info-disclaimer { font-size:12.5px; color:#555; line-height:1.6; margin-bottom:10px; }
.epr-info-disclaimer strong { color:#c9720a; }
.epr-icon-btn {
    color:#fff; font-size:16px; text-decoration:none; width:34px; height:34px;
    display:flex; align-items:center; justify-content:center; border-radius:50%;
    background:rgba(255,255,255,.12); border:none; cursor:pointer;
}
.epr-icon-btn:hover { background:rgba(255,255,255,.22); }

.epr-stage { flex:1 1 auto; position:relative; overflow:hidden; }
.epr-scroll {
    height:100%; overflow-y:auto; scroll-snap-type:y mandatory; scrollbar-width:none;
}
.epr-scroll::-webkit-scrollbar { display:none; }

.epr-page {
    scroll-snap-align:start; scroll-snap-stop:always;
    min-height:100%; display:flex; flex-direction:column;
    max-width:640px; margin:0 auto; background:#fff; color:#1a1a1a;
    padding:0 0 28px; box-shadow:0 0 30px rgba(0,0,0,.4);
}
.epr-page-image { width:100%; max-height:340px; object-fit:cover; display:block; }
.epr-page-image-placeholder {
    height:220px; display:flex; align-items:center; justify-content:center;
    background:#eef1f5; color:#0a2342; font-size:40px;
}
.epr-page-title {
    font-size:26px; font-weight:800; line-height:1.6; margin:18px 20px 8px; padding-top:4px;
    font-family:Georgia, 'Times New Roman', serif;
    background:linear-gradient(90deg, #0a2342 0%, #d4880a 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:#0a2342;
}
.epr-page-excerpt {
    font-size:15px; color:#444; font-style:italic;
    margin:0 20px 14px; padding:10px 14px; background:#f4f7fb;
    border-left:4px solid #0a2342; border-radius:6px;
}
.epr-page-body { font-size:15px; line-height:1.8; color:#222; margin:0 20px; column-gap:24px; }
.epr-page-body p { margin:0 0 14px; }

.epr-page-footer {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    margin:20px 20px 0; padding-top:14px; border-top:1px solid #e2e2e2;
    font-size:12px; color:#777;
}
.epr-page-cat { color:#0a2342; font-weight:600; text-transform:uppercase; letter-spacing:.5px; text-decoration:none; }
.epr-page-cat:hover { text-decoration:underline; }

/* Infinite-scroll sentinel — a below-the-fold loading placeholder that gets replaced by the
   next real .epr-page batch as it loads. It needs its own scroll-snap-align: the container's
   snap-type is "mandatory", so without one the browser has nowhere valid to rest once the
   last real page is reached and snaps back before the sentinel ever becomes reachable. */
.epr-sentinel {
    scroll-snap-align:start;
    min-height:160px; max-width:640px; margin:0 auto; background:#fff;
    display:flex; align-items:center; justify-content:center;
}
.epr-sentinel-spinner {
    width:28px; height:28px; border:3px solid #e2e2e2; border-top-color:#0a2342;
    border-radius:50%; animation:epr-spin .8s linear infinite;
}
@keyframes epr-spin { to { transform:rotate(360deg); } }

@media (min-width:768px) {
    .epr-page-body { column-count:2; }
}

.epr-nav-btn {
    position:absolute; right:14px; z-index:15; width:40px; height:40px; border-radius:50%; border:none;
    background:rgba(255,255,255,.15); color:#fff; font-size:18px; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
}
.epr-nav-btn:hover { background:rgba(255,255,255,.28); }
.epr-nav-prev { bottom:120px; }
.epr-nav-next { bottom:70px; }
.epr-nav-btn.is-hidden { display:none; }

.epr-toolbar {
    position:absolute; right:14px; bottom:170px; z-index:15;
    display:flex; flex-direction:column; gap:8px;
}

/* Zoom: scale the whole scroll container's content via CSS zoom so native scrolling handles panning */
.epr-scroll.zoomed { zoom: var(--epr-zoom, 1.3); }

/* ============================================================
   Visual Stories Viewer (/story/{slug}) -- the full-screen Instagram-style story viewer: frame,
   progress segments, header, slides with caption overlay, tap zones, prev/next nav, and the
   end-of-story recommendation grid. Moved here from story/view.php's own <style> block
   (on request).
   ============================================================ */
.story-viewer {
    position: fixed; inset: 0; background:#000;
    display:flex; align-items:center; justify-content:center;
    height:100dvh; width:100vw;
}
.story-frame {
    position:relative; width:100%; height:100%; max-width:480px;
    background:#000; overflow:hidden; flex:0 0 auto;
}
@media (min-width:520px){
    .story-frame { max-height:900px; height:100dvh; border-radius:12px; box-shadow:0 0 40px rgba(0,0,0,.6); }
}
.story-progress {
    position:absolute; top:10px; left:10px; right:10px; z-index:30;
    display:flex; gap:4px;
}
.story-progress-seg {
    flex:1; height:3px; background:rgba(255,255,255,.35); border-radius:3px; overflow:hidden;
}
.story-progress-fill {
    height:100%; width:0%; background:#fff; border-radius:3px;
}
.story-progress-fill.filling { transition: width linear; }
.story-progress-fill.done { width:100%; }

.story-header {
    position:absolute; top:22px; left:12px; right:12px; z-index:30;
    display:flex; align-items:center; justify-content:space-between; color:#fff;
}
.story-header-brand { display:flex; flex-direction:column; line-height:1.2; }
.story-brand-label { font-weight:700; font-size:14px; text-shadow:0 1px 3px rgba(0,0,0,.6); }
.story-header-title { font-size:11px; opacity:.8; text-shadow:0 1px 3px rgba(0,0,0,.6); }
.story-header-actions { display:flex; align-items:center; gap:4px; }
.story-icon-btn {
    color:#fff; font-size:16px; text-decoration:none; width:32px; height:32px;
    display:flex; align-items:center; justify-content:center; border-radius:50%;
    background:rgba(0,0,0,.3); border:none; cursor:pointer; padding:0;
    text-shadow:0 1px 3px rgba(0,0,0,.6);
}
.story-close { font-size:18px; }

.story-slides { position:relative; width:100%; height:100%; }
.story-slide {
    position:absolute; inset:0; opacity:0; visibility:hidden; z-index:1;
    transition:opacity .15s ease;
}
.story-slide.active { opacity:1; visibility:visible; z-index:2; }
.story-slide img {
    width:100%; height:100%; object-fit:cover; display:block; user-select:none; -webkit-user-drag:none;
}
.story-scrim {
    position:absolute; left:0; right:0; bottom:0; height:45%;
    background:linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,0));
    pointer-events:none;
}
.story-caption {
    position:absolute; left:0; right:0; bottom:0; padding:20px 18px 34px; color:#fff; z-index:5;
}
.story-slide-badge {
    display:inline-block; background:rgba(255,255,255,.18); backdrop-filter:blur(4px);
    padding:3px 10px; border-radius:20px; font-size:11px; font-weight:600; margin-bottom:10px;
}
.story-slide-title { font-size:22px; font-weight:700; margin:0 0 6px; text-shadow:0 2px 6px rgba(0,0,0,.5); }
.story-slide-text { font-size:14px; margin:0; opacity:.92; text-shadow:0 1px 4px rgba(0,0,0,.5); }

.story-tap-zone { position:absolute; top:0; bottom:0; width:30%; z-index:10; cursor:pointer; }
.story-tap-prev { left:0; }
.story-tap-next { right:0; }

/* Prev/next sit outside the story frame (in the surrounding black gutter), not on top of the image */
.story-nav-btn {
    flex:0 0 auto; width:44px; height:44px; border-radius:50%; border:none;
    background:rgba(255,255,255,.12); color:#fff; font-size:20px;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    margin:0 12px;
}
.story-nav-btn:hover { background:rgba(255,255,255,.22); }
.story-nav-btn:disabled { opacity:.25; cursor:default; }
@media (max-width:900px) {
    /* Not enough room outside the frame on narrower viewports — rely on tap zones / swipe instead */
    .story-nav-btn { display:none; }
}

.story-end-card { background:#111; display:flex; align-items:center; justify-content:center; overflow-y:auto; }
.story-end-content { text-align:center; color:#fff; padding:40px 24px; width:100%; }
.story-end-content h3 { font-weight:700; margin-bottom:20px; font-size:20px; }

.story-end-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:10px;
    max-width:340px; margin:0 auto;
}
.story-end-card-item {
    position:relative; display:block; aspect-ratio:3/4; border-radius:10px; overflow:hidden;
    background:#222; text-decoration:none;
}
.story-end-card-item img {
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.story-end-card-item::after {
    content:''; position:absolute; inset:0;
    background:linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,.1) 60%);
}
.story-end-card-title {
    position:absolute; left:8px; right:8px; bottom:8px; z-index:2;
    color:#fff; font-size:12px; font-weight:600; line-height:1.3;
    display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}

/* ============================================================
   Short Videos Viewer (/shorts/{slug}) -- the full-screen, swipe/scroll-snap YouTube Shorts-style
   feed: header, iframe-per-panel video stage, caption/scrim overlay, like/bookmark/share/mute
   actions, prev/next nav, and the end-of-feed recommendation grid. Moved here from
   short-video/feed.php's own <style> block (on request) -- same layout, same pattern as the
   ePaper reader and Visual Stories viewer above.
   ============================================================ */
.shorts-viewer {
    position: fixed; inset: 0; background:#000;
    display:flex; align-items:center; justify-content:center;
    height:100dvh; width:100vw;
}
.shorts-frame {
    position:relative; width:100%; height:100%; max-width:480px;
    background:#000; overflow:hidden; flex:0 0 auto;
}
@media (min-width:520px){
    .shorts-frame { max-height:900px; height:100dvh; border-radius:12px; box-shadow:0 0 40px rgba(0,0,0,.6); }
}

.shorts-header {
    position:absolute; top:22px; left:12px; right:12px; z-index:30;
    display:flex; align-items:center; justify-content:space-between; color:#fff;
    pointer-events:none;
}
.shorts-header-brand { display:flex; flex-direction:column; line-height:1.2; }
.shorts-brand-label { font-weight:700; font-size:14px; text-shadow:0 1px 3px rgba(0,0,0,.6); }
.shorts-header-title { font-size:11px; opacity:.8; text-shadow:0 1px 3px rgba(0,0,0,.6); max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.shorts-header-actions { display:flex; align-items:center; gap:4px; pointer-events:auto; }
.shorts-icon-btn {
    color:#fff; font-size:16px; text-decoration:none; width:32px; height:32px;
    display:flex; align-items:center; justify-content:center; border-radius:50%;
    background:rgba(0,0,0,.35); border:none; cursor:pointer; padding:0;
    text-shadow:0 1px 3px rgba(0,0,0,.6);
}
.shorts-close { font-size:18px; }

.shorts-feed {
    position:relative; width:100%; height:100%;
    overflow-y:scroll; scroll-snap-type:y mandatory;
    scrollbar-width:none;
}
.shorts-feed::-webkit-scrollbar { display:none; }

.shorts-panel {
    position:relative; width:100%; height:100%;
    scroll-snap-align:start; scroll-snap-stop:always;
    background:#000; overflow:hidden;
}
.shorts-video-wrap { position:absolute; inset:0; }
.shorts-iframe {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:100%; height:100%; min-height:100%; min-width:calc(100% * 16 / 9);
    pointer-events:none;
}
/* Prefer covering the full portrait frame by sizing the 16:9 embed against height */
@media (min-aspect-ratio: 9/16) {
    .shorts-iframe { min-width:100%; min-height:calc(100% * 16 / 9); }
}
.shorts-tap-area { position:absolute; inset:0; z-index:6; cursor:pointer; background:transparent; }
.shorts-playpause-flash {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:64px; height:64px; border-radius:50%; background:rgba(0,0,0,.45);
    color:#fff; font-size:30px; display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; z-index:7; transition:opacity .3s ease;
}
.shorts-playpause-flash.show { opacity:1; transition:opacity 0s; }

.shorts-scrim {
    position:absolute; left:0; right:0; bottom:0; height:40%;
    background:linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,0));
    pointer-events:none; z-index:5;
}
.shorts-caption {
    position:absolute; left:0; right:0; bottom:0; padding:20px 18px 34px; color:#fff; z-index:8;
    pointer-events:none;
}
.shorts-title { font-size:19px; font-weight:700; margin:0 0 6px; text-shadow:0 2px 6px rgba(0,0,0,.5); }
.shorts-desc { font-size:13px; margin:0; opacity:.92; text-shadow:0 1px 4px rgba(0,0,0,.5); max-height:4.5em; overflow:hidden; }

.shorts-empty { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#fff; text-align:center; padding:24px; }

.shorts-end-panel { background:#111; display:flex; align-items:center; justify-content:center; overflow-y:auto; }
.shorts-end-content { width:100%; padding:70px 24px 24px; text-align:center; color:#fff; }
.shorts-end-heading { font-size:18px; font-weight:700; margin-bottom:16px; }
.shorts-end-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:340px; margin:0 auto; }
.shorts-end-item { position:relative; display:block; aspect-ratio:3/4; border-radius:10px; overflow:hidden; background:#222; text-decoration:none; }
.shorts-end-item img { width:100%; height:100%; object-fit:cover; }
.shorts-end-item-title {
    position:absolute; left:0; right:0; bottom:0; padding:16px 8px 8px; color:#fff; font-size:11px; font-weight:600;
    line-height:1.25; background:linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,0));
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* Prev/next sit outside the frame (in the surrounding black gutter), not on top of the video --
   same row layout as the Visual Stories viewer so there's always horizontal room for them. */
.shorts-nav-btn {
    flex:0 0 auto; width:44px; height:44px; border-radius:50%; border:none;
    background:rgba(255,255,255,.12); color:#fff; font-size:20px;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    margin:0 12px;
}
.shorts-nav-btn:hover { background:rgba(255,255,255,.22); }
.shorts-nav-btn.is-hidden { visibility:hidden; }
@media (max-width:900px) {
    /* Not enough room outside the frame on narrower viewports -- rely on swipe/scroll instead */
    .shorts-nav-btn { display:none; }
}

/* Visible to search engines/screen readers only (story title as the page's single <h1>) */
.story-seo-h1 { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ---- Visual Stories viewer: wide-screen side areas, backdrop and info sheet ---- */
.story-bg { display:none; position:absolute; inset:0; overflow:hidden; z-index:0; background:#000; }
.story-bg-layer {
    position:absolute; inset:-60px; background-size:cover; background-position:center;
    filter:blur(38px) brightness(.45) saturate(1.2); opacity:0; transition:opacity .6s ease;
}
.story-bg-layer.on { opacity:1; }
@media (min-width:560px){ .story-bg { display:block; } }
.story-frame, .story-nav-btn, .story-side { position:relative; z-index:1; }

.story-side { display:none; flex:0 0 280px; width:280px; max-height:900px; color:#fff; }
@media (min-width:1280px){
    .story-side { display:flex; flex-direction:column; }
    .story-side-left { padding:0 8px 0 0; align-self:center; }
    .story-side-right { padding:0 0 0 8px; align-self:center; }
}
.story-side-label { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:.7; margin-bottom:8px; }
.story-side-title { font-size:26px; font-weight:700; line-height:1.25; margin:0 0 10px; text-shadow:0 2px 8px rgba(0,0,0,.5); }
.story-side-desc { font-size:14px; line-height:1.5; opacity:.85; margin:0 0 18px; }
.story-side-now {
    display:flex; flex-direction:column; gap:4px; padding:12px 14px; margin-bottom:18px;
    background:rgba(255,255,255,.1); border-left:3px solid #fff; border-radius:8px;
}
.story-side-no { font-size:11px; opacity:.7; }
.story-side-now-title { font-size:15px; line-height:1.3; }
.story-side-now-text { font-size:13px; line-height:1.45; opacity:.85; }
.story-side-links { display:flex; flex-direction:column; gap:8px; }
.story-side-links a {
    color:#fff; text-decoration:none; font-size:14px; padding:9px 14px; border-radius:22px;
    background:rgba(255,255,255,.12); display:flex; align-items:center; gap:8px;
}
.story-side-links a:hover { background:rgba(255,255,255,.24); }
.story-side-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:6px; }

.story-info-sheet {
    position:absolute; inset:0; z-index:40; display:none; flex-direction:column; justify-content:center;
    padding:60px 22px 40px; color:#fff; background:rgba(0,0,0,.88);
    -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); overflow-y:auto;
}
.story-info-sheet.open { display:flex; }
.story-info-close { position:absolute; top:22px; right:12px; }
.story-info-body { max-width:420px; margin:0 auto; }
.story-info-title { font-size:24px; font-weight:700; line-height:1.3; margin:0 0 12px; }
.story-info-desc { font-size:15px; line-height:1.55; opacity:.9; margin:0 0 12px; }
.story-info-count { font-size:13px; opacity:.7; margin:0 0 18px; }

/* ---- Story intro screen, CTA button, next-story countdown ---- */
.story-intro { position:absolute; inset:0; z-index:20; background:#000; display:flex; align-items:flex-end; cursor:pointer; transition:opacity .35s ease, visibility .35s; }
.story-intro.hide { opacity:0; visibility:hidden; pointer-events:none; }
.story-intro img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.story-intro-scrim { position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.1) 100%); }

.story-intro-body { position:relative; z-index:1; width:100%; padding:24px 22px 34px; color:#fff; }
.story-intro-title { font-size:28px; font-weight:700; line-height:1.25; margin:0 0 10px; text-shadow:0 2px 8px rgba(0,0,0,.5); }
.story-intro-desc { font-size:14px; line-height:1.5; opacity:.88; margin:0 0 18px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.story-start-btn { display:inline-flex; align-items:center; gap:6px; border:none; border-radius:30px; padding:12px 26px; font-size:16px; font-weight:700; background:#fff; color:#111; cursor:pointer; }
.story-start-btn i { font-size:22px; }
.story-intro-hint { font-size:11px; opacity:.65; margin:14px 0 0; }

.story-cta {
    display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none;
    background:#fff; color:#111; font-weight:700; font-size:14px; line-height:1.3;
    border-radius:26px; padding:11px 18px; margin:0 0 12px; text-align:center;
}
.story-cta:hover { background:#f1f1f1; color:#000; }
.story-cta-lg { max-width:340px; margin:0 auto 18px; font-size:15px; padding:13px 20px; }

.story-next {
    max-width:340px; margin:0 auto 18px; padding:12px 14px; border-radius:12px;
    background:rgba(255,255,255,.1); display:flex; flex-direction:column; gap:6px; text-align:left;
}
.story-next-label { font-size:12px; opacity:.75; }
.story-next-title { color:#fff; font-weight:700; font-size:15px; line-height:1.35; text-decoration:none; }
.story-next-cancel { align-self:flex-start; background:none; border:1px solid rgba(255,255,255,.4); color:#fff; border-radius:16px; font-size:12px; padding:3px 12px; cursor:pointer; display:none; }
.story-next.counting .story-next-cancel { display:inline-block; }

.story-cta-ghost { background:rgba(255,255,255,.14); color:#fff; margin-top:18px; }
.story-cta-ghost:hover { background:rgba(255,255,255,.26); color:#fff; }

/* While the intro is showing: keep the header icons (info/share/like/bookmark/close) visible above it,
   but hide the pause button and the small brand/title text (the intro already shows them) */
.story-viewer.intro-open #story-playpause,
.story-viewer.intro-open .story-header-brand { visibility:hidden; }
.story-viewer.intro-open .story-progress { opacity:.0; }

.story-end-content .story-cta-ghost { margin-top:0; }
.story-end-content { padding-top:70px; }
