:root{--ink:#141414;--mut:#6b6b6b;--line:#e4e2dd;--acc:#e8442a;--paper:#ffffff;--wash:#faf9f7}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:15px/1.6 Inter,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:Fraunces,serif;font-weight:600;letter-spacing:-.01em}
.secno{font:600 12px Inter;letter-spacing:.22em;color:var(--acc)}
.sec-head{display:flex;align-items:baseline;gap:18px;border-top:2px solid var(--ink);padding:16px 0 22px;margin-top:56px}
.sec-head h2{font-size:30px}
.dots{flex:1;border-bottom:2px dotted #cfcabf;margin:0 8px;transform:translateY(-4px)}
.btn{display:inline-block;padding:13px 24px;font:700 14px Inter;letter-spacing:.04em;border:1.5px solid var(--ink);transition:.15s}
.btn.fill{background:var(--ink);color:#fff}
.btn.fill:hover{background:var(--acc);border-color:var(--acc)}
.btn.ghost:hover{color:var(--acc);border-color:var(--acc)}

.util{border-bottom:1px solid var(--line);font:500 12px Inter;color:var(--mut)}
.util .wrap{display:flex;justify-content:space-between;padding-top:8px;padding-bottom:8px}
.util b{color:var(--ink)}
.mast{border-bottom:1px solid var(--ink)}
.mast .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:20px;padding-bottom:20px;gap:24px}
.logo{font-family:Fraunces,serif;font-weight:700;font-size:30px;letter-spacing:-.02em}
.logo i{font-style:normal;color:var(--acc)}
nav.menu{display:flex;gap:30px;font:600 13px Inter;letter-spacing:.14em;text-transform:uppercase}
nav.menu a:hover{color:var(--acc)}
.mast .cta{border:1.5px solid var(--ink);padding:10px 20px;font:700 13px Inter;letter-spacing:.06em;transition:.15s}
.mast .cta:hover{background:var(--ink);color:#fff}
.burger{display:none;flex-direction:column;gap:5px;width:26px;cursor:pointer}
.burger span{height:2px;background:var(--ink)}

.crumbs{border-bottom:1px solid var(--line);font:500 12.5px Inter;color:var(--mut)}
.crumbs .wrap{padding-top:12px;padding-bottom:12px}
.crumbs b{color:var(--ink)}
.crumbs a:hover{color:var(--acc)}

.shero .wrap{display:grid;grid-template-columns:.95fr 1.3fr;gap:52px;padding-top:52px;padding-bottom:44px;align-items:start}
.shero .covbox{border:1px solid var(--ink);position:relative}
.shero .covbox .tag{position:absolute;top:-11px;left:18px;background:var(--acc);color:#fff;font:700 11px Inter;letter-spacing:.18em;padding:4px 10px;z-index:2}
.shero .covbox img{width:100%;aspect-ratio:1/1;object-fit:cover}
.shero .covbox .demo{display:block;text-align:center;border-top:1px solid var(--ink);padding:13px;font:700 13px Inter;letter-spacing:.08em}
.shero .covbox .demo:hover{background:var(--wash);color:var(--acc)}
.kick{font:600 12px Inter;letter-spacing:.24em;text-transform:uppercase;color:var(--acc);margin-bottom:14px}
.shero h1{font-size:clamp(34px,4.2vw,52px);line-height:1.06}
.sprov{display:flex;flex-wrap:wrap;gap:8px 10px;margin:16px 0;font:600 12px Inter}
.sprov a{border:1px solid var(--line);padding:5px 12px;color:var(--mut);letter-spacing:.06em;text-transform:uppercase}
.sprov a.pv{border-color:var(--ink);color:var(--ink)}
.sprov a:hover{color:var(--acc);border-color:var(--acc)}
.slead{font-size:16.5px;color:var(--mut);max-width:58ch}
.shero .ctas{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:22px 0 0}
.shero .rg{font:600 12px Inter;color:var(--mut)}
nav.toc{display:flex;flex-wrap:wrap;gap:6px 18px;border-top:1px solid var(--line);margin-top:24px;padding-top:14px;font:600 12.5px Inter;color:var(--mut)}
nav.toc a:hover{color:var(--acc)}

.facts{border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0 40px;padding-top:18px;padding-bottom:18px}
.fact{display:flex;align-items:baseline;font:500 13px Inter;color:var(--mut);padding:6px 0}
.fact b{font:600 15px Inter;color:var(--ink);white-space:nowrap}

.byline{font:500 13px Inter;color:var(--mut);border-bottom:1px solid var(--line)}
.byline .wrap{display:flex;gap:10px;align-items:center;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.byline .ava{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font:700 13px Fraunces,serif}
.byline b{color:var(--ink)}
.byline .dot2{color:var(--line)}

.layout{display:grid;grid-template-columns:1fr 300px;gap:56px;align-items:start}
aside .sb{border-top:2px solid var(--ink);padding-top:16px;margin-bottom:40px}
aside .sb h4{font:700 12px Inter;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px}
aside .author-card{font-size:13.5px;color:var(--mut)}
aside .author-card .an{font:600 18px Fraunces,serif;color:var(--ink);display:block;margin-bottom:6px}
aside .mini{display:block;padding:10px 0;border-bottom:1px solid var(--line)}
aside .mini .mc{font:700 10.5px Inter;letter-spacing:.18em;color:var(--acc)}
aside .mini .mt{font:600 15px Fraunces,serif;line-height:1.3;display:block;margin-top:3px}
aside .mini:hover .mt{color:var(--acc)}
aside .casr{display:flex;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font:500 13.5px Inter}
aside .casr b{font:600 16px Fraunces,serif}
aside .casr small{color:var(--mut)}
aside .rg-mini{font:500 11.5px Inter;color:var(--mut);margin-top:10px;display:block}

.chart{border-top:1px solid var(--ink)}
.crow{display:grid;grid-template-columns:64px 1.1fr 1.5fr auto;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.crow .no{font:600 34px Fraunces,serif;color:var(--line);line-height:1}
.crow:first-child .no,.crow:hover .no{color:var(--acc)}
.crow .cn{font:600 20px Fraunces,serif}
.crow .lic{font:500 11px Inter;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin-top:3px}
.crow .bo{font:500 13.5px Inter}
.crow .bo small{display:block;color:var(--mut);font-size:12px;margin-top:2px}
.crow .act{display:flex;gap:10px;align-items:center}
.crow .act .rev{font:600 13px Inter;border-bottom:1px solid var(--ink)}
.rgline{font:500 12px Inter;color:var(--mut);margin-top:14px}

.review h3{font-size:21px;margin:30px 0 10px;display:flex;align-items:baseline;gap:14px}
.review h3 .num{font:600 12px Inter;letter-spacing:.18em;color:var(--acc)}
.review p{color:#3d3d3d;margin-bottom:12px;max-width:72ch}

.tagsec .tg{font:700 12px Inter;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin:18px 0 10px}
.tagpills{display:flex;flex-wrap:wrap;gap:8px}
.tagpills a{border:1px solid var(--line);padding:6px 14px;font:600 13px Inter;transition:.15s}
.tagpills a:hover{border-color:var(--acc);color:var(--acc)}

.rules h3{font-size:19px;margin:24px 0 8px}
.rules p{color:#3d3d3d;margin-bottom:10px;max-width:72ch}
.buylist{max-width:480px;margin:10px 0}
.buylist .lrow{display:flex;align-items:baseline;font:500 14px Inter;color:var(--mut);padding:6px 0;border-bottom:1px solid var(--line)}
.buylist .lrow b{color:var(--ink)}
.resp-note{border:1px solid var(--line);background:var(--wash);padding:14px 18px;font:500 13px Inter;color:var(--mut);margin-top:22px;max-width:72ch}

table.pt{width:100%;border-collapse:collapse;border:1px solid var(--line)}
table.pt th{font:700 11.5px Inter;letter-spacing:.14em;text-transform:uppercase;text-align:left;background:var(--wash);padding:12px 16px;border-bottom:1px solid var(--ink)}
table.pt td{padding:11px 16px;border-bottom:1px solid var(--line);font:500 13.5px Inter;color:#3d3d3d;vertical-align:top}
table.pt td:first-child{font:600 15px Fraunces,serif;color:var(--ink);white-space:nowrap}
table.pt tr.grp td{font:700 11.5px Inter;letter-spacing:.16em;text-transform:uppercase;color:var(--acc);background:var(--wash)}
.pt-note{font:500 12.5px Inter;color:var(--mut);margin-top:12px;max-width:76ch}

.pshots{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
.pshot{border:1px solid var(--ink)}
.pshot img{width:100%}
.pshot figcaption{padding:12px 16px;font:500 13px Inter;color:var(--mut);border-top:1px solid var(--ink)}
.pshot .role{font:700 11px Inter;letter-spacing:.16em;color:var(--acc);display:block;margin-bottom:3px}
.play p{color:#3d3d3d;margin-bottom:12px;max-width:72ch}
.play-author{font:500 13px Inter;color:var(--mut);margin-top:16px}
.play-author b{color:var(--ink)}

.vgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.vbox{background:var(--paper);padding:24px}
.vbox h3{font-size:18px;margin-bottom:12px}
.vbox.pros h3{color:#1e7d43}
.vbox.cons h3{color:var(--acc)}
.vbox li{list-style:none;padding:7px 0;border-bottom:1px solid var(--line);font:500 14px Inter;color:#3d3d3d;display:flex;gap:10px}
.vbox li:before{content:"—";color:var(--mut)}
.scorebar{display:flex;align-items:center;gap:24px;border:1px solid var(--ink);border-top:0;padding:20px 24px;flex-wrap:wrap}
.score{font:600 40px Fraunces,serif}
.score small{font:600 18px Fraunces,serif;color:var(--mut)}
.sl{font:500 13.5px Inter;color:var(--mut);max-width:52ch}

.grid{display:grid;grid-template-columns:repeat(4,1fr);background:var(--line);gap:1px;border:1px solid var(--line)}
.cell{background:var(--paper);padding:16px;transition:.15s}
.cell:hover{background:var(--wash)}
.cell .cov{display:block;aspect-ratio:4/3;overflow:hidden;margin-bottom:12px}
.cell .cov img{width:100%;height:100%;object-fit:cover}
.cell .n{display:block;font:600 15.5px Fraunces,serif;line-height:1.25;min-height:2.5em}
.cell .p{display:block;font:500 11px Inter;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin-top:5px}

.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--ink)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:18px 4px;font:600 17px Fraunces,serif}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font:400 24px Inter;color:var(--mut)}
.faq details[open] summary:after{content:"–";color:var(--acc)}
.faq .fa{padding:0 4px 20px;color:var(--mut);max-width:72ch}

footer{border-top:2px solid var(--ink);margin-top:80px;background:var(--wash)}
.fgrid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:36px;padding:48px 0}
.fgrid h4{font:700 12px Inter;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px}
.fgrid a{display:block;font:500 13.5px Inter;color:var(--mut);padding:4px 0}
.fgrid a:hover{color:var(--acc)}
.fbrand p{color:var(--mut);font-size:13px;margin-top:12px;max-width:34ch}
.frg{border-top:1px solid var(--line);padding:18px 0;display:flex;justify-content:space-between;gap:16px;font:500 12px Inter;color:var(--mut);flex-wrap:wrap}
.badge18{border:1.5px solid var(--ink);color:var(--ink);font:700 11px Inter;padding:2px 7px;margin-right:10px}

@media(max-width:960px){
 nav.menu,.mast .cta{display:none}
 .burger{display:flex}
 .shero .wrap{grid-template-columns:1fr;gap:30px}
 .facts .wrap{grid-template-columns:1fr 1fr;gap:0 24px}
 .layout{grid-template-columns:1fr}
 .crow{grid-template-columns:44px 1fr;grid-template-rows:auto auto auto;row-gap:8px}
 .crow .no{font-size:26px}
 .crow .bo{grid-column:2}
 .crow .act{grid-column:2}
 .pshots{grid-template-columns:1fr}
 .vgrid{grid-template-columns:1fr}
 .grid{grid-template-columns:1fr 1fr}
 .fgrid{grid-template-columns:1fr 1fr}
 .sec-head h2{font-size:24px}
}
@media(max-width:560px){
 .facts .wrap{grid-template-columns:1fr}
 .fgrid{grid-template-columns:1fr}
}