*{box-sizing:border-box} :root{--ink:#071720;--paper:#eee9dc;--red:#f13b21;--muted:#bac0bf}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,sans-serif}
/* the transcript and share shelf below the cover are ordinary page: only the cover invites a tap */
body{cursor:auto}.page{cursor:pointer}.page header,.page header nav,.page dialog,.page .audio-controls{cursor:default}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f1a85b;outline-offset:3px}.page{width:min(100%,1100px);min-height:100svh;margin:auto;display:flex;flex-direction:column;padding:0 28px;background:radial-gradient(ellipse at 80% 25%,#22383f88,transparent 55%),var(--ink)}header{height:60px;display:flex;align-items:center;gap:20px;font-size:10px;letter-spacing:1.6px;border-bottom:1px solid #ffffff22}header>a{font-weight:900;color:inherit;text-decoration:none}header span{color:var(--muted)}header a span{color:var(--red)}header button{margin-left:auto;background:none;color:var(--paper);border:0;min-height:44px}.cover{flex:1;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:22px;min-height:320px;padding:25px 0}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--muted)}h1{font-family:Impact,'Arial Narrow',Georgia,serif;font-size:clamp(35px,4.7vw,64px);line-height:1;letter-spacing:-1.7px;margin:18px 0 14px}h1 em{font-style:normal;font-size:1.75em;color:var(--red);letter-spacing:-3px}.thesis{font-family:Georgia,serif;font-size:19px;line-height:1.35;margin:0}.art{height:330px;background-image:url('/assets/poster-en-768.jpg');background-size:100% auto;background-position:50% 42%;position:relative;clip-path:polygon(0 2%,7% 0,16% 2%,26% 1%,36% 3%,50% 0,66% 2%,84% 0,100% 3%,99% 98%,88% 100%,72% 98%,54% 100%,33% 97%,18% 100%,0 97%)}.art span{position:absolute;bottom:15px;left:12px;font-size:8px;letter-spacing:1.4px;background:#071720cc;padding:5px}.evidence{background:var(--paper);color:var(--ink);padding:18px 20px 12px;clip-path:polygon(0 2%,15% 0,30% 2%,50% 0,75% 2%,100% 0,100% 99%,80% 100%,60% 98%,40% 100%,20% 99%,0 100%)}.paperhead{display:flex;justify-content:space-between;font:9px monospace;letter-spacing:1px;padding-bottom:12px}.files{display:grid;grid-template-columns:repeat(3,1fr)}.files button{background:none;border:0;border-top:1px solid #07172055;text-align:left;position:relative;padding:14px 16px 12px 0;color:var(--ink)}.files button+button{border-left:1px solid #07172033;padding-left:20px}.files span{font:9px monospace;display:block;color:#9a2d1b;margin-bottom:8px}.files strong{font-family:Georgia,serif;font-size:20px;line-height:1.2}.files i{position:absolute;right:10px;top:13px;font-style:normal}.page>footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 0}.page>footer p{font-size:11px;line-height:1.5;letter-spacing:1px;margin:0}.page>footer strong{color:var(--red);font-size:14px}.page>footer>div{display:flex;gap:12px}.page>footer button{background:none;border:0;color:var(--paper);font-size:11px;min-height:44px;padding:5px 0}dialog{border:1px solid #ffffff44;background:var(--paper);color:var(--ink);width:min(640px,calc(100% - 24px));max-height:90svh;padding:0;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#031018dc;backdrop-filter:blur(7px)}.dialogtop{position:sticky;top:0;background:var(--ink);color:var(--paper);display:flex;justify-content:space-between;align-items:center;padding:5px 20px;z-index:1;font:11px monospace}.dialogtop button,#closePoster{background:none;border:0;color:inherit;min-height:44px}article{padding:24px}article h2{font: bold 36px/1.05 Georgia,serif;letter-spacing:-1px;margin:0 0 20px}article p,article li{font-size:16px;line-height:1.55}article a{color:#982b1e;text-underline-offset:3px}article .lead{font:22px/1.35 Georgia,serif}article .note{font-size:12px;color:#536166}article ul{padding-left:20px}article table{width:100%;border-collapse:collapse;font-size:14px}article th,article td{text-align:left;border-bottom:1px solid #07172033;padding:12px 6px}.dialogNav{display:flex;position:sticky;bottom:0;background:var(--ink);padding:4px 8px;gap:4px}.dialogNav button{flex:1;border:0;background:none;color:var(--paper);min-height:44px;font-size:12px}.dialogNav button[aria-current=true]{background:var(--red);color:white}#poster{background:var(--ink);max-height:95svh;width:min(760px,96vw);color:var(--paper)}#closePoster{position:sticky;top:0;width:100%;background:var(--ink)}#poster img{display:block;width:100%}body:has(dialog[open]){overflow:hidden}@media(min-width:850px){.page{max-height:1000px}.page>footer{padding-bottom:30px}}@media(max-width:600px){.page{padding:0 17px;min-height:100svh}header{height:46px;gap:10px;font-size:8px;letter-spacing:1px}header button{font-size:10px}.cover{display:flex;flex-direction:column;gap:13px;min-height:0;padding:19px 0 12px;align-items:stretch;justify-content:center}.eyebrow{font-size:8px;margin:0 0 10px;letter-spacing:1.4px}h1{font-size:clamp(30px,9.1vw,47px);line-height:.98;margin:0 0 10px;letter-spacing:-1px}h1 em{font-size:1.55em;letter-spacing:-2px}.thesis{font-size:16px;line-height:1.25}.art{height:clamp(125px,21svh,200px);background-position:50% 41%;flex-shrink:0}.evidence{padding:13px 12px 10px}.paperhead{font-size:8px;letter-spacing:.4px;padding-bottom:8px}.files button{padding:12px 9px 8px 0}.files button+button{padding-left:10px}.files span{font-size:7px;letter-spacing:0;margin-bottom:7px}.files strong{font-size:14px}.files i{display:none}.page>footer{padding:14px 0 10px;display:block}.page>footer p{font-size:9px}.page>footer strong{font-size:12px}.page>footer>div{justify-content:space-between}.page>footer button{font-size:10px;min-height:36px}article{padding:22px 19px}article h2{font-size:31px}}@media(max-height:700px) and (max-width:600px){.cover{padding-top:12px;gap:9px}.art{height:110px}h1{font-size:32px}.thesis{font-size:15px}.page>footer{padding-top:10px}.eyebrow{margin-bottom:7px}}

/* A quiet invitation to open the evidence, without flashing or layout shifts. */
.paperhead span:last-child{color:#9a2d1b;font-weight:700;transform-origin:right center;animation:invitation-pulse 4s ease-in-out infinite}
@keyframes invitation-pulse{0%,100%{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.045)}}
@media(prefers-reduced-motion:reduce){.paperhead span:last-child{animation:none;opacity:1;transform:none}}

/* Language navigation leaves space for additional locales, including Arabic. */
.languages{display:flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap}.languages a{display:inline-flex;align-items:center;min-height:44px;color:var(--paper);text-decoration:none;font-size:11px;letter-spacing:0}.languages a[aria-current=page]{color:var(--red);font-weight:700}header #sourceTop{margin-left:0}html[data-edition=ht] .art{background-image:url('/assets/poster-ht-768.jpg')}html[data-edition=ht] h1{font-size:clamp(34px,4.7vw,64px)}html[data-edition=ar] body{direction:rtl}html[data-edition=ar] .files button{text-align:right}html[data-edition=ar] h1{letter-spacing:0;font-family:Tahoma,Arial,sans-serif}html[data-edition=ar] .languages{margin-left:0;margin-right:auto}
@media(max-width:600px){header>span{display:none}.languages{gap:12px}html[data-edition=ht] h1{font-size:clamp(30px,8.6vw,43px)}html[data-edition=ht] .paperhead{font-size:7px}html[data-edition=ht] .files strong{font-size:13px}}

/* Quiet poster-first opening: steady image, one soft dissolve, never a loop. */
.poster-intro{position:fixed;inset:0;z-index:100;background:#071720;display:grid;place-items:center;opacity:1;transition:opacity .7s ease-out;cursor:pointer;padding:12px 12px 34px}
.poster-intro img{display:block;max-width:100%;max-height:calc(100svh - 46px);width:auto;height:auto;object-fit:contain;box-shadow:0 0 60px #0007}
.poster-intro span{position:absolute;bottom:10px;inset-inline:0;text-align:center;color:#bac0bf;font:10px Arial,sans-serif;letter-spacing:1px}
.poster-intro.leaving{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.poster-intro{display:none;transition:none}}

.art{display:block;width:100%;border:0;padding:0;background-color:transparent;cursor:pointer;text-align:start}
html[data-edition=ar] .art{background-image:url('/assets/poster-ar-768.jpg')}
html[data-edition=ar] h1{font-size:clamp(38px,5vw,66px);line-height:1.15;letter-spacing:0}
html[data-edition=ar] h1 em{font-size:1.4em;letter-spacing:0}
html[data-edition=ar] .eyebrow,html[data-edition=ar] header,html[data-edition=ar] .paperhead,html[data-edition=ar] .page>footer p{letter-spacing:0}
html[data-edition=ar] .thesis,html[data-edition=ar] .files strong,html[data-edition=ar] article h2,html[data-edition=ar] article .lead{font-family:Tahoma,Arial,sans-serif}
html[data-edition=ar] .files button+button{border-left:0;border-right:1px solid #07172033;padding-left:16px;padding-right:20px}
html[data-edition=ar] .files i{right:auto;left:10px}
html[data-edition=ar] article th,html[data-edition=ar] article td{text-align:right}
html[data-edition=ar] article td:last-child{direction:ltr;unicode-bidi:isolate}
html[data-edition=ar] article ul{padding-left:0;padding-right:20px}
html[data-edition=ar] .paperhead span:last-child{transform-origin:left center}
@media(max-width:600px){html[data-edition=ar] h1{font-size:35px}html[data-edition=ar] .files button+button{padding-left:9px;padding-right:10px}html[data-edition=ar] .files strong{font-size:14px}html[data-edition=ar] .files span{font-family:Tahoma,Arial,sans-serif;font-size:9px}}



/* Reopened artwork uses the same quiet, borderless presentation as the splash. */
#poster{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100%;height:100svh;max-height:none;border:0;outline:none;padding:12px 12px 34px;background:#071720;box-shadow:none;overflow:hidden;cursor:pointer}
#poster[open]{display:grid;place-items:center}
#poster img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100svh - 46px);object-fit:contain;box-shadow:0 0 60px #0007}
#poster::backdrop{background:#071720;backdrop-filter:none}
/* A slow light passes from one evidence file to the next. */
.files button{animation:file-invitation 9s ease-in-out infinite}
.files button:nth-child(2){animation-delay:3s}
.files button:nth-child(3){animation-delay:6s}
@keyframes file-invitation{0%,33.333%,100%{background-color:transparent;box-shadow:inset 0 -3px transparent}14%,20%{background-color:#f13b2124;box-shadow:inset 0 -3px #c4311c}}
.files button:hover,.files button:focus-visible{animation:none;background-color:#f13b2124;box-shadow:inset 0 -3px #c4311c}
@media(prefers-reduced-motion:reduce){.files button{animation:none;box-shadow:inset 0 -2px #c4311c}}

.page>header,.page>header nav{cursor:default}

/* Keep the exit outside the scrolling article and separate from playback. */
#reader[open]{display:flex;flex-direction:column;height:min(90svh,860px);overflow:hidden}
#reader .dialogtop{position:relative;flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px;align-items:center}
#reader #panelNumber{grid-column:1;grid-row:1;overflow-wrap:anywhere;font-size:10px}
#reader #close{grid-column:2;grid-row:1 / span 2;align-self:stretch;min-width:128px;min-height:56px;padding:12px 16px;background:var(--red);color:#fff;border:2px solid #ffb09f;border-radius:8px;font:700 14px/1.25 Arial,sans-serif;white-space:normal;touch-action:manipulation;cursor:pointer}
#reader #close:hover{background:#c92a16}
#reader #close:active{transform:scale(.97)}
#reader .dialogtop .audio-controls{grid-column:1;grid-row:2;margin:0;justify-content:flex-start;gap:8px}
#reader .dialogtop .audio-controls button{min-height:40px;margin:0}
#reader #panel{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#reader .dialogNav{position:relative;flex:none;padding-bottom:max(4px,env(safe-area-inset-bottom))}
@media(max-width:360px){#reader #close{min-width:112px;padding:10px;font-size:13px}}


/* ============================================================================
   Added for thealibi.felineunion.org: narration, transcript, share, record.
   The page is one screen. Everything below is either the player bar or the
   inside of the reader dialog. The palette is the poster's.
   ========================================================================= */
:root{--line:#ffffff22;--line-paper:#07172033;--red-ink:#9a2d1b}
html,body{height:100%}
.page{min-height:100svh;padding-bottom:0}
/* the open player bar takes the bottom of the screen; keep the footer above it */
html[data-narr=open] .page{padding-bottom:70px}
@media(max-width:600px){html[data-narr=open] .page{padding-bottom:64px}}

/* The Listen control: in the first viewport, honest about length. */
.listen{display:inline-flex;align-items:center;gap:10px;margin:14px 0 0;min-height:44px;padding:9px 16px 9px 11px;background:var(--red);color:#fff;border:0;border-radius:30px;font:700 13px/1.2 Arial,sans-serif;letter-spacing:.4px;box-shadow:0 8px 24px #0006}
.listen[hidden]{display:none}
.listen .ico{display:flex;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--red);align-items:center;justify-content:center;flex:none}
.listen .meta{font-weight:400;opacity:.9;font-size:12px}
.listen:hover{background:#d8341c}
@media(max-width:600px){.listen{margin-top:9px;padding:7px 13px 7px 9px;font-size:12px}.listen .meta{font-size:11px}}
@media(max-height:700px) and (max-width:600px){.listen{margin-top:6px;min-height:40px}}

/* Remotes: one play/pause per modal and in the footer, mirroring the player. */
.audio-controls{display:flex;align-items:center;gap:8px;flex-shrink:0;direction:ltr;min-width:0}
.audio-controls .remote{display:inline-flex;align-items:center;gap:6px;font:600 11px/1.2 system-ui,sans-serif;color:inherit;background:transparent;border:1px solid currentColor;border-radius:20px;padding:7px 11px;min-height:32px;cursor:pointer;opacity:.9;white-space:nowrap}
.audio-controls .remote:focus-visible{outline:2px solid #f4432c;outline-offset:3px}
.audio-controls .now{font:11px/1.3 system-ui,sans-serif;color:#f1eadb;opacity:.85;max-width:62vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page>footer .audio-controls{margin-inline-start:auto}
.page>footer{position:relative}
.page>footer>div{flex-wrap:wrap}
@media(max-width:600px){.page>footer>.audio-controls{position:absolute;inset-inline-end:0;top:12px}.page>footer p{max-width:62%}.page>footer>div{gap:8px 14px}}
#poster>.audio-controls{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:2;color:#f1eadb;background:#071720e8;border-radius:25px;padding:4px 10px 4px 4px;max-width:calc(100% - 24px)}
#poster{touch-action:none;overflow:hidden}
#poster img{user-select:none;touch-action:none;will-change:transform;transform-origin:center}
.zoom-hint{position:absolute;top:12px;left:0;right:0;text-align:center;color:#f1eadb;font:11px/1.3 system-ui,sans-serif;pointer-events:none;text-shadow:0 1px 4px #000}
#reader .dialogtop .audio-controls{grid-column:1;grid-row:2;margin:0;justify-content:flex-start}
#reader .dialogtop .audio-controls .remote{min-height:40px}

/* Inside the reader dialog: the transcript and the share shelf, on paper. */
.tr-lede{font:17px/1.4 Georgia,serif;margin:0 0 6px}
html[data-edition=ar] .tr-lede{font-family:Tahoma,Arial,sans-serif}
.tr-cast{color:#536166;font-size:13px;margin:0 0 14px}
.ch{border-top:1px solid var(--line-paper);padding:16px 0 6px}
.ch h3{display:flex;align-items:center;gap:10px;font:bold 20px/1.1 Georgia,serif;letter-spacing:-.3px;margin:0 0 10px}
html[data-edition=ar] .ch h3{font-family:Tahoma,Arial,sans-serif}
.ch h3 .n{font:10px monospace;letter-spacing:1.6px;color:var(--red-ink);font-weight:400}
.ch-play{margin-inline-start:auto;flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-paper);background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.ch-play:hover{border-color:var(--red-ink);color:var(--red-ink)}
.turn{position:relative;margin:0 0 10px;padding:8px 12px;font-size:15px;line-height:1.5;border-left:3px solid transparent;cursor:pointer;border-radius:2px;transition:background-color .25s,border-color .25s}
html[data-edition=ar] .turn{border-left:0;border-right:3px solid transparent}
.turn .who{display:block;font:10px monospace;letter-spacing:1.6px;text-transform:uppercase;color:#536166;margin-bottom:3px}
.turn:hover{background:#07172008}
.turn.now{background:#f13b2118;border-color:var(--red)}
.turn.now .who{color:var(--red-ink)}
@media(prefers-reduced-motion:reduce){.turn{transition:none}}
.ch-acts{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px}
.ch-acts button{min-height:40px;padding:8px 12px;background:transparent;border:1px solid var(--line-paper);color:var(--ink);font:10px monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.ch-acts button:hover{border-color:var(--red-ink)}
.sh-grid{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.sh-grid a,.sh-grid button,.sh-native{min-height:44px;display:inline-flex;align-items:center;padding:10px 14px;border:1px solid var(--line-paper);background:transparent;color:var(--ink);text-decoration:none;font:11px monospace;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}
.sh-grid a:hover,.sh-grid button:hover,.sh-native:hover{border-color:var(--red-ink);color:var(--red-ink)}
.sh-native{border-color:var(--red);background:var(--red);color:#fff;font-weight:bold}
.sh-strip{list-style:none;margin:0;padding:0;display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.sh-tile{min-width:0;border:1px solid var(--line-paper);background:#fff}
.sh-tile-img{display:block}
.sh-tile-img img{width:100%;height:auto;display:block}
.sh-tile-foot{padding:12px;min-width:0}
.sh-tile-cap{margin:0 0 10px;font-size:14px;line-height:1.5}
.sh-tile-cap b{color:var(--red-ink);font:11px monospace;letter-spacing:.14em;margin-inline-end:10px}
/* a chip rail inside a grid item is what pushes a column past the phone */
.sh-tile-acts{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.sh-tile-acts a,.sh-tile-acts button{min-height:44px;display:inline-flex;align-items:center;padding:10px 11px;border:1px solid var(--line-paper);background:transparent;color:#3d4a4f;text-decoration:none;font:11px monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.sh-tile-acts a:hover,.sh-tile-acts button:hover{border-color:var(--red-ink);color:var(--ink)}
.sh-toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);z-index:60;background:var(--red);color:#fff;font:12px monospace;letter-spacing:.1em;text-transform:uppercase;padding:14px 18px;box-shadow:0 14px 32px rgba(0,0,0,.6)}
#panel h3{font:700 12px/1.2 Arial,sans-serif;letter-spacing:1.2px;text-transform:uppercase;color:var(--red-ink);margin:22px 0 6px}
#install-app{min-height:44px;padding:10px 14px;background:transparent;border:1px solid var(--line-paper);color:var(--ink);font:11px monospace;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;margin:10px 0 4px}
#install-app[hidden]{display:none}
@media(max-width:600px){.sh-strip{grid-template-columns:1fr}}

/* The canonical narration player as a compact bar. Classes and ids are the
   player's; only the look changes. The pill is never shown: the footer's
   remote and the Listen button open the bar, and Follow has no page to scroll. */
.narr{position:fixed;left:0;right:0;bottom:0;z-index:40;direction:ltr}
.narr[hidden]{display:none}
.narr-pill{display:none}
.narr-bar{display:none;background:var(--ink);border-top:1px solid #ffffff33;box-shadow:0 -10px 34px rgba(0,0,0,.6);padding-bottom:env(safe-area-inset-bottom)}
.narr[data-state=open] .narr-bar{display:block}
.narr-track{position:relative;height:6px;background:#22383f;cursor:pointer;direction:ltr}
.narr-fill{position:absolute;inset:0 auto 0 0;width:0;background:var(--red);transition:width .2s linear}
.narr-mark{position:absolute;top:50%;transform:translate(-50%,-78%);width:40px;height:40px;background:transparent;border:0;padding:0;cursor:pointer;display:flex;align-items:flex-end;justify-content:center}
.narr-mark::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--ink);border:1px solid var(--muted);margin-bottom:9px}
.narr-mark:hover::before{border-color:var(--red)}
.narr-mark.done::before{background:var(--red);border-color:var(--red)}
.narr-mark.here::before{background:var(--paper);border-color:var(--paper);width:13px;height:13px}
.narr-controls{max-width:1100px;margin:auto;padding:8px 16px;display:flex;align-items:center;gap:10px}
.narr-play{flex:none;width:42px;height:42px;border-radius:50%;border:0;background:var(--red);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.narr-meta{flex:1;min-width:0}
html[data-edition=ar] .narr-meta{direction:rtl;text-align:right}
.narr-label{margin:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Georgia,serif}
html[data-edition=ar] .narr-label{font-family:Tahoma,Arial,sans-serif}
.narr-sub{margin:2px 0 0;font:10px monospace;letter-spacing:.05em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.narr-btn{flex:none;min-height:40px;padding:9px 11px;background:transparent;border:1px solid #ffffff44;color:var(--muted);font:11px monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:4px}
.narr-btn:hover{color:var(--paper);border-color:var(--muted)}
.narr-btn[hidden]{display:none}
.narr-close{min-width:40px;font-size:16px}
@media(max-width:600px){.narr-controls{padding:7px 10px;gap:7px}.narr-play{width:40px;height:40px}.narr-btn{padding:8px 9px;font-size:10px;min-height:38px}.narr-rate{display:none}.narr-label{font-size:13px}}
