/* Bollywood cinema: velvet red, marquee gold, ink and paper tickets. */
:root { --paper:#fff9eb; --paper-2:#f7edda; --paper-3:#ecdfc4; --ink:#321318; --ink-2:#6c4e4b; --rule:#ddc7a5; --accent:#a8242c; --amber:#ffd66e; --focus:#2155ac; }
body { background:var(--paper); }
.site-header { border-bottom:1px solid #dec9aa; background:#fffaf0; }
.brand { position:relative; gap:0; padding-block:7px; }
.brand .logo { display:block; width:238px; height:auto; max-width:100%; }
.brand-name { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media (max-width:480px) { .brand .logo { width:clamp(160px,50vw,204px); } }
.nav-wide a[aria-current="page"], .nav-menu a[aria-current="page"] { background:#a8242c; }
.site-footer { background:#301318; color:#f5e4c9; border-top:6px solid #dfb65b; }
.site-footer a,.site-footer .brand { color:#ffe4a3; }
.site-footer .fine,.site-footer .independence { color:#e4cdb2; }
.cinema-hero { position:relative; overflow:hidden; text-align:center; background:#7c1d29; color:#fff9eb; padding:34px 16px 90px; isolation:isolate; }
.cinema-hero::before,.cinema-hero::after { content:""; position:absolute; z-index:-1; top:0; bottom:0; width:19%; opacity:.75; background:repeating-linear-gradient(94deg,#5f101d 0,#7c1727 12%,#a6313a 19%,#6c1021 31%); }
.cinema-hero::before { left:0; transform:skewX(-9deg); transform-origin:top; border-right:2px solid #d49c56; }
.cinema-hero::after { right:0; transform:skewX(9deg); transform-origin:top; border-left:2px solid #d49c56; }
.cinema-kicker { display:inline-flex; align-items:center; gap:10px; font:700 .69rem/1.4 var(--mono); letter-spacing:.18em; text-transform:uppercase; color:#ffe1a1; }
.cinema-kicker::before,.cinema-kicker::after { content:"✦"; font-size:15px; }
.cinema-hero h1 { font:900 clamp(2.5rem,4.8vw,4rem)/1.04 var(--serif); letter-spacing:-.055em; margin:12px auto; max-width:22ch; color:#fff5dc; text-wrap:balance; }
.cinema-hero h1 em { font-weight:400; color:#ffd56f; }
.cinema-intro { max-width:500px; margin:0 auto; font-size:1rem; color:#f6dfc9; line-height:1.65; }
.cinema-strip { background:#f6cd64; border-block:1px solid #d4a343; color:#572024; text-align:center; padding:8px 12px; font:700 .63rem/1.6 var(--mono); letter-spacing:.19em; text-transform:uppercase; }
.generator-wrap { position:relative; z-index:1; margin-top:-68px; padding-bottom:22px; }
.generator-shell { background:#fffdf7; border:1px solid #d8bea0; box-shadow:0 15px 40px #58201b12; border-radius:8px; overflow:hidden; }
.daily-heading { position:relative; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; padding:28px 30px; background:#7c1d29; background-image:radial-gradient(ellipse at top right,#ad3f412e,transparent 65%); border-block:1px solid #d6ad60; box-shadow:inset 0 4px 0 #7c1d29,inset 0 5px 0 #d6ad6066,inset 0 -4px 0 #7c1d29,inset 0 -5px 0 #d6ad6066; }
.daily-heading > div { min-width:0; }
.daily-heading h2 { font:700 clamp(1.8rem,3.4vw,2.65rem)/1.15 var(--serif); letter-spacing:-.04em; margin:8px 0 12px; color:#ffe1a1; text-wrap:balance; }
.daily-eyebrow { display:flex; align-items:center; gap:10px; margin:0; color:#f6dfc9; font:700 .6rem/1.5 var(--mono); letter-spacing:.18em; text-transform:uppercase; }
.daily-eyebrow::before { content:""; width:24px; height:1px; background:#d6ad60; }
.daily-meta { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; margin:0; color:#f6dfc9; font-size:.75rem; line-height:1.6; }
.daily-meta time { font-weight:700; color:#fff5dc; }
.daily-button { min-height:46px; padding:12px 19px; border:1px solid #e6c17b; border-radius:4px; background:transparent; color:#ffe1a1; font:700 .8rem/1.3 var(--sans); cursor:pointer; box-shadow:0 3px 0 #50111b; }
.daily-button:hover,.daily-button[aria-pressed="true"] { background:#f6cd64; border-color:#ffe1a1; color:#572024; }
.daily-button:focus-visible { outline:3px solid #fff5dc; outline-offset:4px; }
.daily-button:disabled { opacity:.5; cursor:not-allowed; }
.generator-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; padding:20px 26px; border-bottom:1px dashed #d1b892; }
.mood-label { font:700 .66rem/1.4 var(--mono); letter-spacing:.12em; color:#77584e; text-transform:uppercase; margin:0 12px 0 0; }
.mood-controls { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.mood-button { min-height:44px; background:transparent; color:#6a3f3b; border:1px solid #e4d5bd; border-radius:30px; padding:7px 15px; font:600 .82rem/1.3 var(--sans); cursor:pointer; }
.mood-button:hover { border-color:#ac2e35; }
.mood-button[aria-pressed="true"] { color:#fff8e8; border-color:#9d242d; background:#9d242d; }
.scene-total { white-space:nowrap; font:.72rem/1.5 var(--mono); color:#795f53; margin:0; }
.scene-total strong { color:#97252f; }
.generator-grid { display:grid; grid-template-columns:1fr 1fr; }
.dialogue-panel { padding:30px 32px; display:flex; flex-direction:column; min-height:330px; }
.panel-eyebrow { display:flex; align-items:center; gap:8px; font:700 .65rem/1.5 var(--mono); letter-spacing:.14em; text-transform:uppercase; color:#8d6151; margin-bottom:17px; }
.reel-dot { width:7px; height:7px; background:#aa2934; border-radius:50%; }
.quote-mark { font:88px/.7 Georgia,serif; color:#d5ac57; margin:10px 0 -3px; }
.quote-close { text-align:right; margin:0 0 .4rem; }
.movie-quote { margin:0; padding:0; border:0; font:700 clamp(1.7rem,3.3vw,2.4rem)/1.35 var(--serif); letter-spacing:-.02em; color:#411c22; max-width:21ch; }
.movie-quote:lang(hi) { font-family:var(--deva); font-size:clamp(1.6rem,3.1vw,2.25rem); line-height:1.55; }
.film-credit { margin:19px 0 5px; font-size:.82rem; line-height:1.6; color:#8b5a4d; }
.entry-context { font-size:.76rem; color:#9c2431; margin-top:auto; padding-top:12px; }
.scene-panel { background:#f6eddd; border-left:1px solid #ead9bd; padding:24px; display:flex; flex-direction:column; }
.scene-frame { position:relative; flex:1; min-height:248px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:30px 24px; background:#351c24; color:#fbeac9; overflow:hidden; text-align:center; border:6px solid #26131a; border-inline-width:15px; }
.scene-frame::before,.scene-frame::after { content:""; position:absolute; top:0; bottom:0; width:6px; background:repeating-linear-gradient(to bottom,transparent 0 10px,#ad8670 10px 18px,transparent 18px 26px); opacity:.6; }
.scene-frame::before { left:-10px; }.scene-frame::after { right:-10px; }
.scene-reel { display:flex; align-items:center; justify-content:center; width:68px; height:68px; border:1px solid #a77d5f; border-radius:50%; background:#4c2831; color:#ffd46e; font:italic 36px Georgia,serif; }
.scene-frame h2 { color:#fff0d2; font:500 1.15rem/1.5 var(--serif); margin:0; max-width:24ch; }
.scene-frame .scene-stamp { position:absolute; top:11px; left:14px; font:600 .56rem/1 var(--mono); letter-spacing:.13em; color:#c8aa8b; }
.scene-frame .frame-count { position:absolute; bottom:12px; right:15px; font:italic 1.4rem/1 Georgia,serif; color:#ac8c72; }
.scene-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:7px 15px; background:#f8d16f; color:#4a1b24; border:1px solid #ffe09c; text-decoration:none; border-radius:3px; font:700 .73rem/1.4 var(--sans); }
.scene-link:hover { background:#ffe39d; color:#4a1b24; }
.scene-attribution { margin:10px 0 0; font:.62rem/1.5 var(--mono); color:#87634f; text-align:center; }
.scene-media { width:100%; min-height:200px; }
.tenor-scene-embed { display:block; border:0; width:100%; height:100%; min-height:200px; }
.scene-frame.has-gif { padding:0 0 12px; gap:10px; }
.scene-frame.has-gif .scene-stamp,.scene-frame.has-gif .frame-count { display:none; }
.scene-frame.has-gif h2 { font-size:.9rem; padding-inline:12px; }
.gif-toggle { min-height:44px; padding:7px 14px; color:#ffe09c; border:1px solid #8d6656; border-radius:3px; background:transparent; font:600 .7rem/1.4 var(--sans); cursor:pointer; }
.gif-toggle:hover { background:#56303b; }
.generator-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:20px 26px; border-top:1px dashed #d1b892; }
.roll-button { min-height:48px; padding:12px 24px; color:#fff8e8; background:#a72631; border:1px solid #8a1c27; border-radius:4px; box-shadow:0 3px 0 #7b1923; font:700 .85rem/1.3 var(--sans); cursor:pointer; }
.roll-button::before { content:"↻"; margin-right:9px; font-size:1.1rem; }
.roll-button:hover { background:#891e28; }
.utility-button { min-height:44px; padding:10px 14px; background:transparent; color:#7c4a3c; border:1px solid #d9c6a9; border-radius:4px; font:600 .75rem/1.3 var(--sans); cursor:pointer; }
.roll-button:disabled,.utility-button:disabled { opacity:.5; cursor:not-allowed; box-shadow:none; }
.generator-status { min-height:22px; font-size:.72rem; color:#75564b; margin:0 26px 15px; }
.preview-note { margin:0; padding:10px 20px; background:#f8e2b6; color:#6c331d; font:600 .75rem/1.5 var(--sans); text-align:center; }
.cinema-note { display:flex; justify-content:center; align-items:center; gap:8px; margin:17px 10px 0; color:#8a6852; font:.67rem/1.5 var(--mono); text-align:center; }
.how-it-plays { padding:22px 0 35px; }
.how-it-plays .section-head { text-align:center; margin-bottom:22px; }
.how-it-plays h2 { font-size:1.65rem; letter-spacing:-.04em; }
.cinema-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; list-style:none; margin:0; padding:0; }
.cinema-steps li { padding:2px 20px; border-left:1px solid #dec7a5; }
.cinema-steps .step-number { display:block; font:italic 1.8rem/1.2 var(--serif); color:#b58a41; margin-bottom:10px; }
.cinema-steps h3 { font:700 .9rem/1.4 var(--sans); margin-bottom:6px; }
.cinema-steps p { font-size:.8rem; color:#876552; line-height:1.6; }
.archive-region { border-top:1px solid #ddc7a5; }
.archive-region .today { padding:25px; border:1px solid #ddc7a5; border-radius:5px; }
.archive-region .empty-title { color:var(--ink); }
.archive-region .status-pill { color:#9c2933; border-color:#cc9b6a; }
.archive-region .on-dark-link { color:#a12a34; }
.archive-region .entry-card { margin-top:15px; }
.archive-region .streak-line { color:var(--ink-2); }
[hidden] { display:none !important; }
@media(max-width:700px) {
 .daily-heading { padding:24px 22px; gap:18px; }
 .cinema-hero { padding-top:38px; padding-bottom:95px; }
 .cinema-hero::before,.cinema-hero::after { width:11%; opacity:.45; }
 .cinema-kicker { max-width:27ch; font-size:.6rem; letter-spacing:.12em; }
 .cinema-hero h1 { font-size:2.8rem; }
 .cinema-intro { max-width:30ch; font-size:.86rem; }
 .generator-grid { grid-template-columns:1fr; }
 .generator-toolbar { padding:16px; align-items:flex-start; }
 .mood-label { width:100%; margin-bottom:3px; }
 .mood-button { padding:7px 12px; min-height:44px; }
 .scene-total { font-size:.63rem; }
 .dialogue-panel { min-height:260px; padding:25px 23px; }
 .scene-panel { border-left:0; border-top:1px solid #ead9bd; padding:16px; }
 .scene-frame { min-height:210px; }
 .generator-actions { padding:17px; gap:8px; }
 .roll-button { width:100%; }
 .utility-button { flex:1; }
 .generator-status { margin-inline:18px; }
 .cinema-steps { grid-template-columns:1fr; gap:15px; }
 .cinema-steps li { padding-left:20px; }
 .cinema-steps .step-number { float:left; margin:0 18px 0 0; }
 .cinema-strip { font-size:.55rem; letter-spacing:.13em; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; } }
/* Collections and daily calendar share the cinema palette and readable cards. */
.collection-hero { padding-top:3rem; padding-bottom:2.5rem; }
.collection-hero h1 { font-size:clamp(2.2rem,5vw,3.8rem); line-height:1.1; margin:.5rem 0 1rem; }
.collection-hero > p { max-width:46rem; }
.collection-links { display:flex; flex-wrap:wrap; gap:.6rem 1.3rem; margin-top:1.5rem; }
.collection-hero + .generator-wrap { margin-top:0; }
.library-search { padding:1.4rem 1.6rem 0; }
.library-search label { display:block; font-weight:700; margin-bottom:.5rem; }
.library-search input { width:100%; box-sizing:border-box; padding:.85rem 1rem; border:1px solid #cba98c; border-radius:.35rem; color:#351920; background:#fffcf4; font:inherit; }
.library-search p { font-size:.85rem; margin:.5rem 0 0; }
.library-filter-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; margin-top:.6rem; }
.library-filter-row p { margin:0; }
.gif-filter { min-height:44px; padding:.5rem 1rem; border:1px solid #b48b5e; border-radius:4px; background:#fff8e8; color:#7c1d29; font:700 .8rem/1.4 var(--sans); cursor:pointer; }
.gif-filter[aria-pressed="true"] { background:#7c1d29; color:#ffe1a1; border-color:#7c1d29; }
.gif-badge { align-self:flex-start; padding:.15rem .45rem; border:1px solid #c89c4c; border-radius:3px; background:#f8e2b6; color:#572024; font:700 .65rem/1.4 var(--mono); letter-spacing:.06em; }
.library-section { margin:2.5rem 0; }
.dialogue-library,.calendar-days { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; list-style:none; margin:1rem 0 0; padding:0; }
.library-card,.calendar-card { display:flex; flex-direction:column; width:100%; height:100%; gap:1rem; box-sizing:border-box; border:1px solid #ddc5a2; border-radius:.5rem; padding:1.4rem; background:#fffdf6; color:#351920; text-align:left; text-decoration:none; font:inherit; cursor:pointer; }
.library-card:hover,.calendar-card:hover { border-color:#a91d2a; background:#fff6df; }
.library-card:focus-visible,.calendar-card:focus-visible { outline:3px solid #aa1e2a; outline-offset:3px; }
.library-quote,.calendar-quote { font-family:Georgia,serif; font-size:1.2rem; line-height:1.45; overflow-wrap:anywhere; }
.library-film { font-size:.8rem; color:#78554d; margin-top:auto; }
.text-dialogue .generator-grid { grid-template-columns:1fr; }
.text-dialogue .dialogue-panel { min-height:260px; }
.text-dialogue .movie-quote { max-width:48rem; }
.entry-context + .entry-context { margin-left:1rem; }
.calendar-invite { padding-top:2rem; padding-bottom:3rem; text-align:center; }
.calendar-invite .button { margin:.4rem; }
.calendar-section { padding-bottom:4rem; }
.calendar-controls { display:flex; align-items:end; flex-wrap:wrap; gap:1rem; padding:1.4rem; background:#f5e7ca; border-radius:.5rem; }
.calendar-controls label { display:flex; flex-direction:column; gap:.4rem; font-weight:700; }
.calendar-controls select { padding:.65rem .9rem; border:1px solid #b9936d; border-radius:.25rem; background:#fffdf6; font:inherit; color:#351920; }
.calendar-controls p { margin:0 0 .6rem auto; font-size:.9rem; }
.calendar-card time { color:#9d2530; font-size:.8rem; font-weight:700; }
.calendar-card[aria-current="date"] { border:2px solid #a91d2a; background:#fff3d2; }
.encore-label { font-size:.75rem; color:#78554d; }
.klipy-panel { padding:1.4rem; border-top:1px dashed #cfa46e; background:#fff8e9; }
.klipy-panel[hidden] { display:none; }
.klipy-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.klipy-heading .eyebrow { margin:0 0 .4rem; }
.klipy-heading h2 { margin:0; font:600 1.7rem/1.2 var(--serif); }
.klipy-search { margin-top:1.2rem; }
.klipy-search label { display:block; font-size:.8rem; font-weight:700; margin-bottom:.4rem; }
.klipy-search > div { display:flex; gap:.5rem; }
.klipy-search input { flex:1; min-width:0; padding:.7rem; border:1px solid #b9936d; border-radius:.25rem; font:inherit; background:#fffdf6; color:#351920; }
.klipy-notice,.klipy-status,.klipy-credit { font-size:.8rem; line-height:1.6; }
.klipy-results { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; list-style:none; margin:1rem 0; padding:0; }
.klipy-results li { min-width:0; background:#351c24; color:#fff0d2; border-radius:.3rem; overflow:hidden; }
.klipy-results img,.klipy-results video { display:block; width:100%; height:160px; object-fit:contain; background:#26131a; }
.klipy-results a { color:inherit; font-size:.75rem; overflow-wrap:anywhere; }
.klipy-results figcaption { padding:.6rem; }
.klipy-results figure { margin:0; }
.klipy-results .klipy-title,.klipy-results .klipy-credit { margin:.5rem .6rem; font-size:.75rem; line-height:1.4; overflow-wrap:anywhere; }
.klipy-results .klipy-link { display:inline-block; margin:0 .6rem .6rem; }
.klipy-credit { margin-bottom:0; }
@media(max-width:760px) { .klipy-results { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .klipy-panel { padding:1rem; } .klipy-heading h2 { font-size:1.4rem; } .klipy-search > div { flex-wrap:wrap; } .klipy-results img,.klipy-results video { height:130px; } }
@media(max-width:760px) { .dialogue-library,.calendar-days { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .dialogue-library,.calendar-days { grid-template-columns:1fr; } .calendar-controls p { width:100%; margin:.3rem 0 0; } .collection-hero { padding-top:2rem; } .library-search { padding:1rem 1rem 0; } }
