:root { color:#252525; background:#fff; font-family:Arial, Helvetica, sans-serif; font-size:16px; }
* { box-sizing:border-box; }
body { margin:0; background:#fff; }
a { color:inherit; text-decoration:none; }
a:hover { color:#856435; }
.site-header { height:120px; background:#fff; display:flex; align-items:center; position:relative; z-index:2; }
.nav-shell { width:min(1080px, calc(100% - 48px)); margin:auto; display:flex; align-items:center; gap:36px; }
.site-mark { font-family:Georgia, serif; font-size:1.05rem; font-weight:bold; letter-spacing:.02em; white-space:nowrap; }
.site-header nav { display:flex; gap:32px; text-transform:uppercase; letter-spacing:.04em; font-size:.78rem; font-weight:600; }
.search-link { margin-left:auto; font-size:1.75rem; line-height:1; }
.site-hero,.review-hero { background-color:#1a1a1a; background-position:center; background-size:cover; color:#fff; display:grid; place-items:center; text-align:center; }
.site-hero { min-height:570px; }
.hero-copy { padding:3rem 1rem; text-shadow:0 2px 20px #000; }
.hero-copy h1,.review-hero h1 { font-family:Georgia, serif; font-size:clamp(2.7rem, 6vw, 5.3rem); line-height:1.05; margin:0; }
.hero-copy p { font-size:1.25rem; margin:18px 0 0; }
.intro { padding:70px 24px 55px; text-align:center; }
.intro > div { max-width:740px; margin:auto; }
.intro h2 { font:600 1.55rem Georgia, serif; margin:0 0 20px; }
.intro p { color:#5e5e5e; line-height:1.75; margin:0; }
.content-shell { width:min(1080px, calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:minmax(0, 1fr) 280px; gap:74px; padding:20px 0 84px; }
.archive { min-width:0; }
.filters { display:grid; grid-template-columns:1fr 1fr auto auto auto; gap:10px; align-items:end; padding:17px 0 24px; border-bottom:1px solid #ececec; margin-bottom:20px; }
label { display:grid; gap:5px; font-size:.72rem; font-weight:bold; letter-spacing:.05em; text-transform:uppercase; }
input,textarea,button { font:inherit; }
input[type="text"], input:not([type]), textarea { width:100%; }
input { min-height:37px; border:1px solid #d8d8d8; padding:8px; background:#fff; }
.check { display:flex; align-items:center; gap:6px; min-height:37px; white-space:nowrap; }
.check input { min-height:auto; width:auto; }
button,.button { background:#262626; border:0; color:#fff; cursor:pointer; min-height:37px; padding:0 14px; font-weight:600; }
.clear-filter { align-self:center; color:#777; font-size:.84rem; }
.review-list article { border-bottom:1px solid #e9e9e9; padding:31px 0 29px; }
.review-list time,.categories { color:#8b8b8b; font-size:.76rem; letter-spacing:.04em; text-transform:uppercase; }
.review-list h2 { font:600 clamp(1.65rem, 3vw, 2.35rem)/1.16 Georgia, serif; margin:8px 0 11px; }
.review-list p:not(.categories) { color:#555; line-height:1.72; margin:0; }
.categories { margin:0 0 16px; }
.cult { background:#d6b757; color:#332700; display:inline-block; font-size:.68rem; margin-left:7px; padding:2px 5px; }
.pagination { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin:40px 0 10px; font-size:.86rem; }
.pagination a,.pagination span { border:1px solid #ddd; min-width:34px; padding:8px 10px; text-align:center; }
.pagination span { background:#292929; color:#fff; border-color:#292929; }
.sidebar { border-left:1px solid #ededed; padding-left:29px; }
.sidebar section { border-bottom:1px solid #ededed; padding:0 0 25px; margin:0 0 26px; }
.sidebar h2 { font:600 1rem Georgia, serif; text-transform:uppercase; letter-spacing:.05em; margin:0 0 15px; }
.sidebar ul { list-style:none; margin:0; padding:0; }
.sidebar li { border-bottom:1px solid #f0f0f0; color:#626262; font-size:.9rem; line-height:1.4; padding:8px 0; }
.sidebar p { color:#646464; font-size:.9rem; line-height:1.65; }
.review-page .site-header { background:rgba(0,0,0,.58); color:#fff; margin-bottom:-120px; }
.review-page .site-header a:hover { color:#e5d2ad; }
.review-hero { min-height:630px; padding:170px 24px 72px; }
.review-hero > div { max-width:980px; text-shadow:0 2px 16px #000; }
.review-hero h1 { margin-top:16px; }
.breadcrumbs { font-size:.86rem; margin:0; }
.review-shell { padding-top:64px; }
.review-content { min-width:0; color:#424242; font-family:Georgia, serif; font-size:1.06rem; line-height:1.85; }
.review-intro { color:#555; font-size:1.22rem; line-height:1.7; margin:0 0 28px; }
.review-content .body > *:first-child { margin-top:0; }
.review-content .body img,.review-content .body figure img,.featured { height:auto; max-width:100%; }
.review-content .body img { display:block; margin:2rem auto; }
.review-content .body figure { margin:2rem 0; }
.review-content .body h2,.review-content .body h3 { color:#272727; font-family:Arial, Helvetica, sans-serif; letter-spacing:.04em; text-transform:uppercase; }
.review-facts { border-collapse:collapse; font-family:Arial, Helvetica, sans-serif; font-size:.9rem; margin:30px 0; width:100%; }
.review-facts th,.review-facts td { border:1px solid #dedede; padding:11px 13px; text-align:left; }
.review-facts th { background:#f6f6f6; width:24%; }
.physical-copy { border-top:1px solid #dedede; margin-top:3rem; padding-top:2rem; }
.physical-copy h3 { font:600 .95rem Arial, Helvetica, sans-serif; letter-spacing:.06em; margin:2rem 0 .8rem; text-transform:uppercase; }
.physical-copy h3:first-child { margin-top:0; }
.physical-copy-editor { border:1px solid #dedede; display:grid; gap:12px; padding:16px; }
.physical-copy-editor legend { font-weight:700; padding:0 6px; }
.muted { color:#777; font-size:.85rem; margin:0; }
.site-footer { background:#171717; color:#e6e6e6; margin-top:20px; padding:48px 24px; }
.site-footer > div { margin:auto; max-width:1080px; }
.site-footer p { color:#bababa; font-size:.85rem; line-height:1.6; max-width:700px; }
.admin-heading { display:flex; justify-content:space-between; }
.editor-form { display:grid; gap:16px; max-width:760px; }
.editor-form textarea { border:1px solid #d8d8d8; padding:9px; }
.editor-form fieldset { border:1px solid #dedede; display:grid; gap:13px; margin:0; padding:18px; }
.editor-form legend { font:600 .95rem Arial, Helvetica, sans-serif; letter-spacing:.05em; padding:0 6px; text-transform:uppercase; }
.story-block { background:#fafafa; border:1px solid #e1e1e1; display:grid; gap:11px; margin:14px 0; padding:14px; }
.story-block-toolbar,.block-actions { align-items:center; display:flex; flex-wrap:wrap; gap:8px; }
.story-block-toolbar strong { margin-right:auto; }
.secondary { background:#666; } .danger { background:#8b3434; }
.story-block select { min-height:37px; padding:8px; }
.structured-body blockquote { border-left:3px solid #856435; color:#555; font-style:italic; margin:2rem 0; padding-left:1.25rem; }
.structured-body figure { margin:2rem 0; text-align:center; }
.structured-body figcaption { color:#777; font:italic .9rem Arial, Helvetica, sans-serif; margin-top:.6rem; }
table { width:100%; border-collapse:collapse; } td,th { border-bottom:1px solid #ddd; padding:9px; text-align:left; }
.empty-state { padding:60px 0; color:#777; }
@media (max-width:760px) { .site-header { height:82px; } .nav-shell { width:calc(100% - 30px); gap:16px; } .site-mark { display:none; } .site-header nav { gap:14px; font-size:.67rem; } .site-hero { min-height:410px; } .content-shell { display:block; width:calc(100% - 32px); padding-bottom:48px; } .filters { grid-template-columns:1fr; } .sidebar { border-left:0; border-top:1px solid #ededed; margin-top:44px; padding:32px 0 0; } .review-page .site-header { height:82px; margin-bottom:-82px; } .review-hero { min-height:440px; padding-top:130px; } .review-shell { padding-top:40px; } }

/* The Final Girl: a restrained, print-inspired horror treatment. */
:root { --paper:#f2ede3; --ink:#181617; --muted:#716b67; --red:#b5262d; --line:#d8d0c4; background:var(--paper); color:var(--ink); }
body { background:var(--paper); color:var(--ink); }
a:hover { color:var(--red); }
.site-header { background:var(--paper); border-bottom:1px solid var(--ink); height:86px; }
.nav-shell { width:min(1240px, calc(100% - 56px)); gap:44px; }
.site-mark { align-items:baseline; display:flex; flex-direction:column; font-family:Arial, Helvetica, sans-serif; font-size:1.15rem; font-weight:900; letter-spacing:.08em; line-height:.9; text-transform:uppercase; }
.site-mark small { color:var(--red); font-size:.55rem; letter-spacing:.22em; margin-top:7px; }
.site-header nav { gap:25px; font-size:.68rem; letter-spacing:.12em; }
.search-link { color:var(--red); font-size:1.45rem; }
.site-hero { min-height:530px; position:relative; text-align:left; place-items:end start; }
.site-hero::after { background:linear-gradient(90deg,rgba(17,14,14,.88),rgba(17,14,14,.32)); content:""; inset:0; position:absolute; }
.hero-copy { max-width:900px; padding:88px max(28px,calc((100vw - 1184px)/2)); position:relative; text-shadow:none; z-index:1; }
.hero-kicker,.review-list time,.categories { color:#e7d8c9; font:700 .65rem Arial, Helvetica, sans-serif; letter-spacing:.17em; text-transform:uppercase; }
.hero-kicker { border-left:3px solid var(--red); margin:0 0 23px; padding-left:12px; }
.hero-copy h1,.review-hero h1 { font-family:Georgia, 'Times New Roman', serif; font-size:clamp(3.65rem,8vw,7.3rem); font-weight:400; letter-spacing:-.065em; line-height:.82; }
.hero-subtitle { font-family:Georgia, serif; font-size:1.14rem; margin:29px 0 0; }
.intro { background:var(--ink); color:var(--paper); padding:72px 24px; text-align:left; }
.intro > div { max-width:860px; }.intro h2 { color:var(--paper); font-size:clamp(2rem,4vw,3.1rem); font-weight:400; letter-spacing:-.04em; }.intro p { color:#d6d0c9; max-width:650px; }
.content-shell { gap:55px; grid-template-columns:minmax(0,1fr) 250px; padding-top:55px; width:min(1184px,calc(100% - 56px)); }
.filters { border-bottom:2px solid var(--ink); gap:12px; margin-bottom:34px; padding:0 0 21px; }
input { border:1px solid var(--line); border-radius:0; background:#fbf8f2; } button,.button { background:var(--red); border-radius:0; letter-spacing:.07em; text-transform:uppercase; font-size:.68rem; } .clear-filter { color:var(--ink); text-decoration:underline; }
.review-list { display:grid; gap:24px; }.review-list article.review-card { background:#faf7f0; border:1px solid var(--line); display:grid; grid-template-columns:225px minmax(0,1fr); padding:0; }
.review-card-image { background:var(--ink); display:block; min-height:245px; overflow:hidden; }.review-card-image img { display:block; height:100%; object-fit:cover; width:100%; }.review-card-image span { align-items:center; color:var(--paper); display:flex; font:italic 1.5rem Georgia,serif; height:100%; justify-content:center; }
.review-card-copy { padding:28px 30px 24px; }.review-list time,.categories { color:var(--red); }.review-list h2 { font-size:clamp(2rem,3vw,3rem); font-weight:400; letter-spacing:-.055em; margin:9px 0 8px; }.review-list p:not(.categories) { color:#4d4845; font:1rem/1.66 Georgia,serif; }.categories { margin-bottom:18px; }.cult { background:var(--ink); color:var(--paper); font-weight:700; letter-spacing:.1em; }.read-review { display:inline-block; font-size:.7rem; font-weight:800; letter-spacing:.13em; margin-top:22px; text-transform:uppercase; }.read-review span { color:var(--red); font-size:1.1rem; padding-left:4px; }
.sidebar { border-left:0; padding-left:0; }.sidebar section { border-bottom:2px solid var(--ink); }.sidebar h2 { font-family:Arial,Helvetica,sans-serif; font-size:.7rem; letter-spacing:.16em; }.sidebar li { border-color:var(--line); font-family:Georgia,serif; }.sidebar p { font-family:Georgia,serif; }
.pagination a,.pagination span { border-color:var(--ink); }.pagination span { background:var(--red); border-color:var(--red); }
.review-page .site-header { background:rgba(20,17,17,.94); border-color:rgba(255,255,255,.2); height:86px; margin-bottom:-86px; }.review-page .site-mark small,.review-page .search-link { color:#e95358; }.review-page .site-header a:hover { color:#e95358; }
.review-hero { min-height:590px; padding:145px 28px 62px; text-align:left; }.review-hero > div { width:min(1184px,100%); }.review-hero h1 { margin-top:20px; max-width:940px; }.breadcrumbs { color:#f2e8dd; font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; }.breadcrumbs span { color:#ed5459; padding:0 8px; }
.review-shell { padding-top:68px; }.review-content { color:#302c29; font-size:1.08rem; }.review-intro { color:#38322e; font-size:1.42rem; line-height:1.55; }.review-facts { border-top:2px solid var(--ink); font-family:Arial,Helvetica,sans-serif; }.review-facts th,.review-facts td { border-color:var(--line); }.review-facts th { background:transparent; color:var(--red); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }.review-content .body h2,.review-content .body h3,.physical-copy h3 { color:var(--ink); }.structured-body blockquote { border-color:var(--red); }.physical-copy { border-color:var(--ink); }.site-footer { background:var(--ink); border-top:5px solid var(--red); }.site-footer p { font-family:Georgia,serif; }
@media (max-width:760px) { .site-header,.review-page .site-header { height:72px; }.site-mark { display:flex; }.site-header nav { gap:11px; font-size:.56rem; }.nav-shell,.content-shell { width:calc(100% - 32px); }.site-hero { min-height:440px; }.hero-copy { padding:70px 24px; }.hero-copy h1,.review-hero h1 { font-size:clamp(3.4rem,16vw,5.1rem); }.review-page .site-header { margin-bottom:-72px; }.review-hero { min-height:455px; padding-top:130px; }.review-list article.review-card { grid-template-columns:1fr; }.review-card-image { min-height:225px; }.review-card-copy { padding:23px; }.filters { grid-template-columns:1fr; }.sidebar { border-top:2px solid var(--ink); } }

/* Keep the archive within the first viewport: this is a masthead, not a landing page. */
.site-hero { min-height:365px; }
.hero-copy { max-width:none; padding:52px max(28px,calc((100vw - 1184px)/2)) 58px; width:100%; }
.hero-kicker { line-height:1.3; margin-bottom:14px; max-width:540px; }
.hero-copy h1 { font-size:clamp(3.15rem,5.25vw,5.55rem); line-height:.88; white-space:nowrap; }
.hero-subtitle { margin-top:16px; max-width:440px; }
@media (max-width:760px) { .site-hero { min-height:320px; }.hero-copy { padding:43px 24px 46px; }.hero-copy h1 { font-size:clamp(2.8rem,13vw,4.1rem); line-height:.88; white-space:normal; }.hero-kicker { font-size:.58rem; margin-bottom:12px; }.hero-subtitle { font-size:1rem; margin-top:13px; } }

/* Private editorial desk: calm and contained, with the archive's visual language in miniature. */
.admin-main { margin:0 auto; max-width:1184px; min-height:calc(100vh - 300px); padding:66px 28px 90px; }
.admin-main h1 { font:400 clamp(2.7rem,5vw,4.5rem)/.95 Georgia,'Times New Roman',serif; letter-spacing:-.06em; margin:0; }
.admin-page-heading { border-bottom:2px solid var(--ink); margin:0 0 32px; padding:0 0 26px; }.admin-page-heading .muted,.admin-page-heading > p:not(.admin-eyebrow) { font:1rem/1.55 Georgia,serif; margin:16px 0 0; max-width:670px; }
.admin-eyebrow { color:var(--red); font:800 .66rem Arial,Helvetica,sans-serif; letter-spacing:.17em; margin:0 0 12px; text-transform:uppercase; }
.admin-heading { align-items:flex-end; border-bottom:2px solid var(--ink); gap:20px; margin-bottom:31px; padding-bottom:26px; }.admin-heading .muted { font:1rem/1.5 Georgia,serif; margin:14px 0 0; }.admin-heading .button { align-items:center; display:inline-flex; min-height:44px; padding:0 19px; }
.admin-card { background:#faf7f0; border:1px solid var(--line); box-shadow:7px 7px 0 rgba(24,22,23,.08); overflow-x:auto; }.admin-table { margin:0; min-width:600px; }.admin-table th { background:var(--ink); border:0; color:var(--paper); font-size:.64rem; letter-spacing:.13em; padding:14px 18px; text-transform:uppercase; }.admin-table td { border-color:var(--line); color:#4b4541; padding:17px 18px; }.admin-table tr:last-child td { border-bottom:0; }.admin-table td:first-child { color:var(--ink); font-family:Georgia,serif; }.admin-edit-link { font:800 .68rem Arial,Helvetica,sans-serif; letter-spacing:.11em; text-transform:uppercase; }.admin-edit-link span { color:var(--red); font-size:1rem; }
.status-pill { border:1px solid var(--line); display:inline-block; font:800 .61rem Arial,Helvetica,sans-serif; letter-spacing:.11em; padding:5px 7px; text-transform:uppercase; }.status-pill.published { background:#e6eee4; border-color:#9cac99; color:#304a31; }.status-pill.draft { background:#f2e5cb; border-color:#c6aa79; color:#6a4818; }.admin-signout { margin-top:24px; }.link-button { background:transparent; color:var(--muted); min-height:auto; padding:0; text-decoration:underline; text-transform:none; }
.admin-main .editor-form { background:#faf7f0; border:1px solid var(--line); box-shadow:7px 7px 0 rgba(24,22,23,.08); gap:22px; max-width:920px; padding:26px; }.admin-main .editor-form fieldset { background:#fffdf9; border-color:var(--line); padding:20px; }.admin-main .editor-form legend { color:var(--red); font-size:.72rem; letter-spacing:.12em; }.admin-main .editor-form label { color:#514b47; }.admin-main .editor-form input,.admin-main .editor-form textarea,.admin-main .editor-form select { background:#fffdf9; border-color:#cfc5b7; }.admin-main .editor-form input:focus,.admin-main .editor-form textarea:focus,.admin-main .editor-form select:focus { border-color:var(--red); outline:2px solid rgba(181,38,45,.14); }.admin-main .story-block { background:#f6f1e9; border-color:#d5cabb; }.admin-main .story-block-toolbar { border-bottom:1px solid var(--line); padding-bottom:10px; }.admin-main .physical-copy-editor { background:#f7ece4; }.admin-main .secondary { background:#625954; }.admin-main .danger { background:#8f393d; }
@media (max-width:760px) { .admin-main { padding:42px 16px 62px; }.admin-main .editor-form { padding:16px; }.admin-main .editor-form fieldset { padding:15px; }.admin-heading { align-items:flex-start; flex-direction:column; }.admin-heading .button { width:100%; justify-content:center; } }
