@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-600-italic.woff2) format("woff2")}
@font-face{font-family:Karla;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/karla-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Karla;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/karla-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:Karla;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/karla-latin-700-normal.woff2) format("woff2")}

:root{
  --paper:#f3ebdb; --paper2:#ebe0ca; --card:#fbf6ec; --ink:#1c1814; --ink2:#4a4037; --muted:#6b5f52;
  --rule:#b59a62; --gold:#8a6420; --accent:#8a2323; --accent-ink:#fff8ee; --focus:#8a2323;
  --display:"Bodoni Moda",Didot,"Bodoni 72",Georgia,serif; --body:Karla,system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{--paper:#13110f; --paper2:#1c1915; --card:#1f1b17; --ink:#ece3d2; --ink2:#cfc3ad; --muted:#a99c86;
    --rule:#7d6838; --gold:#d8b46a; --accent:#e79a86; --accent-ink:#1a0f0c; --focus:#d8b46a; color-scheme:dark}
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--body);overflow-x:hidden}
img,canvas{max-width:100%;height:auto}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:9}
.skip:focus{left:1rem;top:1rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2.1rem,5.5vw,3.6rem)}
h2{font-size:clamp(1.5rem,3.2vw,2.1rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em}
.kicker{font:700 .78rem/1.2 var(--body);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:0 0 1rem}
.lede{font-size:1.18rem;color:var(--ink2);max-width:40em}

/* header: theatre marquee */
.marquee{text-align:center;padding:14px 16px 0;border-bottom:1px solid var(--rule);background:var(--paper)}
.marquee-top{font:700 .7rem/1 var(--body);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.wordmark{display:inline-block;font-family:var(--display);font-size:clamp(1.9rem,5vw,2.6rem);font-weight:700;color:var(--ink);text-decoration:none;line-height:1.1}
.wordmark em{font-style:italic;font-weight:600;color:var(--accent)}
.bill{display:flex;justify-content:center;flex-wrap:wrap;gap:0;margin:10px auto 0;border-top:1px solid var(--rule);max-width:620px}
.bill a{font:700 .82rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:13px 16px;position:relative}
.bill a+a::before{content:"\25C6";position:absolute;left:-5px;top:50%;transform:translateY(-50%);font-size:.5rem;color:var(--gold)}
.bill a[aria-current]{color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}
.crumbs{max-width:1100px;margin:0 auto;padding:14px 20px 0;font-size:.88rem;color:var(--muted)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}
.crumbs li+li::before{content:"/";margin-right:.3rem;color:var(--rule)}
.crumbs a{color:var(--muted)}
main{display:block;padding-bottom:64px}

/* intertitle hero */
.intertitle{padding:40px 20px 28px}
.frame{max-width:900px;margin:0 auto;text-align:center;padding:44px clamp(18px,5vw,64px) 36px;border:3px double var(--rule);outline:1px solid var(--rule);outline-offset:6px;position:relative;background:var(--card)}
.frame::before,.frame::after{content:"\25C6";position:absolute;top:-12px;color:var(--gold);background:var(--paper);padding:0 8px;font-size:.9rem}
.frame::before{left:50%;transform:translateX(-50%)}
.frame::after{top:auto;bottom:-13px;left:50%;transform:translateX(-50%)}
.frame h1{max-width:16em;margin-left:auto;margin-right:auto}
.frame .lede{margin:0 auto}

/* builder */
.builder{max-width:1100px;margin:0 auto;padding:12px 20px 8px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:28px;align-items:start}
fieldset{border:0;border-top:1px solid var(--rule);margin:0 0 18px;padding:14px 0 0;min-width:0}
legend{font:700 .76rem/1 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);padding:0 10px 0 0}
.fld{display:block;font-weight:700;font-size:.92rem;margin:0 0 14px}
.fld .opt{font-weight:400;color:var(--muted)}
input[type=text],input[type=number],select,textarea{display:block;width:100%;margin-top:6px;font:400 1rem/1.4 var(--body);color:var(--ink);background:var(--card);border:1px solid var(--rule);border-radius:2px;padding:10px 12px}
textarea{resize:vertical;min-height:90px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.row2{display:flex;gap:12px;flex-wrap:wrap}
.row2 .grow{flex:1 1 200px}
.row2 .yr{flex:0 0 110px}
.rate output{font-weight:400;color:var(--muted);margin-left:.4rem}
input[type=range]{width:100%;accent-color:var(--accent);margin:2px 0 0}
.bigstars{font-size:2rem;letter-spacing:.08em;color:var(--gold);margin:2px 0 12px;line-height:1;min-height:1em}
.bigstars .off{opacity:.25}
.check{display:flex;gap:.6rem;align-items:center;font-weight:700;font-size:.95rem}
.check input{width:20px;height:20px;accent-color:var(--accent)}
.formnote{font-size:.88rem;color:var(--muted)}
.linkish{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}
.b-out{display:grid;gap:22px;position:sticky;top:12px}
.post,.cardbox{background:var(--card);border:1px solid var(--rule);padding:16px 18px 18px}
.post-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.post-label{font:700 .76rem/1 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.count{font:700 .95rem/1 var(--body);font-variant-numeric:tabular-nums}
.count.over{color:var(--accent)}
.meter{height:4px;background:var(--paper2);margin-bottom:12px}
.meter span{display:block;height:100%;width:0;background:var(--gold);transition:width .15s}
.meter span.over{background:var(--accent)}
.post-text{white-space:pre-wrap;word-wrap:break-word;font:400 1.05rem/1.5 var(--body);margin:0 0 12px;min-height:5.5em;color:var(--ink)}
.warn{font-size:.9rem;color:var(--accent);font-weight:700}
.btns{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{display:inline-block;font:700 .9rem/1 var(--body);letter-spacing:.06em;padding:12px 18px;border:1px solid var(--ink);background:transparent;color:var(--ink);text-decoration:none;cursor:pointer;border-radius:2px}
.btn:hover{background:var(--paper2)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08);background:var(--accent)}
.btn[aria-disabled=true]{opacity:.45;pointer-events:none}
.hint{font-size:.85rem;color:var(--muted)}
.seg{display:inline-flex;border:1px solid var(--rule)}
.seg button{font:700 .8rem/1 var(--body);padding:7px 12px;background:transparent;color:var(--ink);border:0;cursor:pointer}
.seg button.on{background:var(--ink);color:var(--paper)}
#o-card{display:block;width:100%;aspect-ratio:16/9;margin-bottom:12px;border:1px solid var(--rule);background:#14110f}
.fineprint{font-size:.86rem;color:var(--muted);margin-top:8px}

/* program list */
.program,.reels{margin-top:56px}
.sect-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:3px double var(--rule);margin-bottom:12px;flex-wrap:wrap}
.sect-head h2{margin:0 0 .3em}
.sect-head a{font-weight:700;font-size:.92rem}
.sect-lede{color:var(--ink2)}
.bill-list{list-style:none;margin:0;padding:0;columns:2;column-gap:40px}
.bill-list li{break-inside:avoid;border-bottom:1px dotted var(--rule)}
.bill-list a{display:grid;grid-template-columns:3.4rem 1fr auto;grid-template-rows:auto auto;column-gap:10px;padding:12px 2px;color:var(--ink);text-decoration:none}
.bill-list a:hover .t{color:var(--accent);text-decoration:underline}
.bill-list .yr{grid-row:1/3;font:700 1rem/1.5 var(--display);color:var(--gold)}
.bill-list .t{font:700 1.15rem/1.3 var(--display)}
.bill-list .d{grid-column:2;font-size:.88rem;color:var(--muted)}
.bill-list .stars{grid-column:3;grid-row:1/3;align-self:center}
.stars{color:var(--gold);letter-spacing:.05em;white-space:nowrap}
.reel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:12px}
.reel{border:1px solid var(--rule);padding:18px 18px 8px;background:var(--card);position:relative}
.reel::before{content:"";position:absolute;inset:6px;border:1px solid var(--rule);opacity:.4;pointer-events:none}
.reel-no{font:700 .72rem/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.reel h2,.reel h3{font-size:1.25rem}
.reel h2 a,.reel h3 a{color:var(--ink);text-decoration:none}
.reel h2 a:hover,.reel h3 a:hover{color:var(--accent);text-decoration:underline}
.reel p:last-child{color:var(--ink2);font-size:.95rem}
.faq details{border-bottom:1px solid var(--rule);padding:4px 0}
.faq summary{cursor:pointer;font:700 1.12rem/1.4 var(--display);padding:12px 0;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"\25B8";display:inline-block;width:1.2em;color:var(--gold);transition:transform .15s}
.faq details[open] summary::before{transform:rotate(90deg)}
.faq p{color:var(--ink2);padding-left:1.2em}

/* review page */
.page-head{padding:34px 0 14px;border-bottom:3px double var(--rule);margin-bottom:28px}
.rv-head{padding:34px 0 0;text-align:center}
.rv-yr{font-weight:500;color:var(--muted)}
.credits-line{display:flex;flex-wrap:wrap;justify-content:center;gap:0;margin:12px 0 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.credits-line div{padding:10px 18px;text-align:center}
.credits-line div+div{border-left:1px solid var(--rule)}
.credits-line dt{font:700 .7rem/1.2 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.credits-line dd{margin:3px 0 0;font-weight:700}
.credits-line .num{color:var(--muted);font-weight:400;font-size:.9rem}
.the-take{margin:30px 0 30px;background:#17130f;color:#f3ebdb;padding:34px clamp(18px,5vw,48px) 22px;border:3px double #b59a62;outline:1px solid #b59a62;outline-offset:-10px;text-align:center}
.the-take blockquote{margin:0}
.the-take p{font:600 italic clamp(1.25rem,3vw,1.6rem)/1.45 var(--display);margin:0 0 14px}
.the-take figcaption{font:700 .74rem/1.3 var(--body);letter-spacing:.18em;text-transform:uppercase;color:#d8b46a}
.prose{font-size:1.08rem}
.prose h2{margin-top:1.6em}
.prose h3{margin-top:1.3em}
.prose li{margin-bottom:.4em}
.prose blockquote{margin:1.2em 0;padding-left:1em;border-left:3px solid var(--gold);color:var(--ink2);font-style:italic}
.prose table{border-collapse:collapse;width:100%;font-size:.95rem}
.prose th,.prose td{border-bottom:1px solid var(--rule);padding:8px 10px;text-align:left;vertical-align:top}
.prose th{font-weight:700;background:var(--paper2)}
.scroll-x{overflow-x:auto;margin:0 0 1.2em}
.prose > p:first-child::first-letter{font:700 3.4em/0.8 var(--display);float:left;margin:.08em .1em 0 0;color:var(--accent)}
.tryit{border:1px solid var(--rule);background:var(--card);padding:18px 20px 6px;margin:32px 0 16px}
.tryit h2{font-size:1.25rem}
.byline{font-size:.9rem;color:var(--muted)}
.pager{display:flex;justify-content:space-between;gap:16px;border-top:3px double var(--rule);padding-top:16px;margin-top:22px}
.pager a{text-decoration:none;font:700 1.05rem/1.3 var(--display);color:var(--ink);max-width:48%}
.pager a span{display:block;font:700 .72rem/1.4 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.pager a[rel=next]{text-align:right;margin-left:auto}
.pager a:hover{color:var(--accent)}

/* reviews index */
.takes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.take-card{border:1px solid var(--rule);background:var(--card);padding:18px 20px 6px;display:flex;flex-direction:column}
.take-card h2{font-size:1.45rem;margin-bottom:.35em}
.take-card h2 a{color:var(--ink);text-decoration:none}
.take-card h2 a:hover{color:var(--accent);text-decoration:underline}
.tc-meta{font-size:.86rem;color:var(--muted);margin-bottom:.5em}
.tc-meta span{font-weight:700;color:var(--gold)}
.tc-take{font:600 italic 1.05rem/1.5 var(--display);color:var(--ink2);flex:1}
.tc-v{font:700 .72rem/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}

/* guide */
.guide-grid{display:grid;grid-template-columns:220px minmax(0,720px);gap:44px}
.toc{position:sticky;top:16px;align-self:start;font-size:.92rem}
.toc p{font:700 .74rem/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.toc ol{margin:0;padding-left:1.2em}
.toc li{margin-bottom:.5em}
.toc a{color:var(--ink2)}
.related{max-width:720px;margin:36px 0 0 264px;border-top:3px double var(--rule);padding-top:12px}
.related h2{font-size:1.3rem}

/* footer */
.credits{border-top:1px solid var(--rule);background:var(--paper2);text-align:center;padding:34px 20px 40px;font-size:.9rem;color:var(--ink2)}
.credits-in{max-width:760px;margin:0 auto}
.fin{font:600 italic 2rem/1 var(--display);color:var(--gold);margin-bottom:16px}
.credits nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-bottom:16px}
.credits nav a{color:var(--ink);font-weight:700}

@media (max-width:900px){
  .builder{grid-template-columns:1fr}
  .b-out{position:static}
  .guide-grid{grid-template-columns:1fr;gap:0}
  .toc{position:static;border:1px solid var(--rule);padding:14px 16px 6px;margin-bottom:24px;background:var(--card)}
  .related{margin-left:0}
}
@media (max-width:640px){
  .bill-list{columns:1}
  .bill a{padding:12px 10px;font-size:.76rem;letter-spacing:.12em}
  .intertitle{padding:26px 16px 18px}
  .wrap,.builder{padding-left:16px;padding-right:16px}
  .crumbs{padding-left:16px;padding-right:16px}
  .credits-line div{padding:8px 10px;flex:1 1 45%}
  .credits-line div+div{border-left:0}
  .takes{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.faq-sect{margin-top:56px}
