:root{--bg:#1e1530;--bg2:#271c3f;--pn:#2f2350;--cr:#fff4e0;--cr2:#fff4e0b8;--cr3:#fff4e033;--pe:#f6c28b;--te:#6bd1c4;--co:#ff7a7a;--go:#ffd166;--px:'Pixelify Sans',monospace;--sans:'Atkinson Hyperlegible',system-ui,sans-serif;--mono:'Space Mono',ui-monospace,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--cr);font:400 17.5px/1.7 var(--sans);background-image:radial-gradient(#fff4e014 1px,transparent 1px);background-size:8px 8px}
img{max-width:100%;display:block}
a{color:var(--te);text-underline-offset:3px}
a:hover{color:var(--go)}
h1,h2,h3{font-family:var(--px);font-weight:700;line-height:1.1;margin:0 0 .5em}
h1{font-size:clamp(2.2rem,5vw,4rem)}
h2{font-size:clamp(1.6rem,3vw,2.4rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em}
.wrap{width:min(1200px,100% - 32px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--go);color:var(--bg);padding:8px 14px;z-index:99}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--go);outline-offset:3px}
.stage{font:700 13px var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--pe);margin-bottom:10px}
.stage::before{content:'▶ ';color:var(--co)}
.lede{font-size:1.14rem;max-width:62ch;color:var(--cr2)}
.small{font-size:.86rem}.muted{color:var(--cr2)}
/* pixel borders */
.box,.dlg,.cart,.pxframe,.savedata{border:4px solid var(--cr);box-shadow:0 0 0 4px var(--bg),0 0 0 8px var(--pn),8px 8px 0 8px #00000055;background:var(--bg2)}
.btn{display:inline-block;font:600 17px/1 var(--px);background:var(--go);color:var(--bg);padding:14px 20px;text-decoration:none;border:0;box-shadow:inset -4px -4px 0 #c99a32,inset 4px 4px 0 #ffe7a6,0 0 0 4px var(--bg),0 0 0 6px var(--cr);transition:transform .1s}
.btn:hover{transform:translateY(-2px);color:var(--bg)}
.btn:active{transform:translateY(2px)}
.btn-2{background:var(--te);box-shadow:inset -4px -4px 0 #3c9b90,inset 4px 4px 0 #a9efe6,0 0 0 4px var(--bg),0 0 0 6px var(--cr)}
.btns{display:flex;flex-wrap:wrap;gap:20px;margin-top:24px}
.wide{display:block;text-align:center;margin-top:20px}
.dlg-name{display:inline-block;font:600 14px var(--px);background:var(--co);color:var(--bg);padding:4px 10px;margin:-30px 0 12px -6px;border:3px solid var(--cr);text-transform:uppercase;letter-spacing:.06em}

/* header */
.hd{background:var(--bg2);border-bottom:4px solid var(--cr);position:sticky;top:0;z-index:20}
.hd-in{display:flex;align-items:center;gap:20px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;color:var(--cr);text-decoration:none;font:700 1.4rem var(--px)}
.brand b{color:var(--go);font-weight:700}
.brand svg{image-rendering:pixelated}
.nav{margin-left:auto}
.nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.nav a{display:block;padding:8px 12px 8px 22px;color:var(--cr);text-decoration:none;font:500 1rem var(--px);position:relative}
.nav a::before{content:'▶';position:absolute;left:6px;top:9px;font-size:.7rem;color:var(--go);opacity:0}
.nav a:hover::before,.nav a[aria-current]::before{opacity:1}
.nav a[aria-current]{color:var(--go)}
.hd-saved{margin:0;font:400 12px var(--mono);color:var(--te);white-space:nowrap}
.blink{animation:bl 1.4s steps(2) infinite}
@keyframes bl{50%{opacity:0}}
.burger{display:none;margin-left:auto;font:600 15px var(--px);background:var(--pn);color:var(--cr);border:3px solid var(--cr);padding:8px 14px;cursor:pointer}
.drawer ul{list-style:none;margin:0 auto;padding:6px 0 14px}
.drawer a{display:block;padding:12px 0;border-bottom:2px dashed var(--cr3);color:var(--cr);text-decoration:none;font:500 1.1rem var(--px)}
@media(max-width:1100px){.hd-saved{display:none}}
@media(max-width:900px){.nav{display:none}.burger{display:block}}

/* pictures */
.pic{display:block;background:var(--pn);overflow:hidden}
.pic img{width:100%;height:100%;object-fit:cover}
.art{display:block;position:relative;background:var(--pn);overflow:hidden;aspect-ratio:616/353}
.art img{width:100%;height:100%;object-fit:cover}
.art-header{aspect-ratio:460/215}
.art-tall{aspect-ratio:2/3}
.art-text::after{content:attr(data-title);position:absolute;inset:0;display:grid;place-items:center;padding:12px;text-align:center;font:700 1.35rem/1.1 var(--px);color:var(--go);background:linear-gradient(45deg,#ffffff08 25%,transparent 25% 75%,#ffffff08 75%) 0 0/16px 16px,var(--pn)}
.pxframe{margin:0;padding:6px}
.pxframe figcaption{font:400 11px var(--mono);color:var(--cr2);padding-top:6px}

/* hero */
.hero{position:relative;min-height:min(74vh,660px);display:flex;align-items:center;border-bottom:4px solid var(--cr);overflow:hidden}
.hero-pic{position:absolute;inset:0}
.hero-pic img{object-position:65% 50%}
.hero-in{position:relative;padding:70px 0}
.dlg{position:relative;padding:30px 30px 24px}
.dlg-hero{max-width:620px;background:#1e1530ee}
.dlg-hero h1 em{font-style:normal;color:var(--go)}
.dlg-more{position:absolute;right:16px;bottom:8px;color:var(--go);animation:bob 1s steps(2) infinite}
@keyframes bob{50%{transform:translateY(4px)}}
@media(max-width:700px){.hero{min-height:0}.hero-in{padding:180px 0 30px}.dlg{padding:26px 20px 22px}}

section{scroll-margin-top:90px}
.sec-h{margin:100px 0 34px;max-width:720px}

/* finder */
.opts{display:flex;flex-wrap:wrap;gap:16px 30px;align-items:flex-end;margin-bottom:34px;padding:20px;border:3px dashed var(--cr3)}
.opt{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.opt>span{width:100%;font:700 12px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--pe)}
.opt button{font:500 15px var(--px);background:var(--pn);color:var(--cr);border:3px solid var(--cr3);padding:7px 12px;cursor:pointer}
.opt button[aria-pressed=true]{border-color:var(--go);color:var(--go);background:var(--bg)}
.opt button[aria-pressed=true]::before{content:'▶ ';font-size:.75em}
.count{margin:0 0 4px auto;font:400 13px var(--mono);color:var(--cr2)}
.carts{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:40px 34px;padding:8px}
.cart{display:flex;flex-direction:column;min-width:0}
.cart[hidden]{display:none}
.cart-art{display:block;border-bottom:4px solid var(--cr)}
.cart-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.cart-g{font:400 11px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--te);margin-bottom:6px}
.cart h3 a{color:var(--cr);text-decoration:none}
.cart h3 a:hover{color:var(--go)}
.cart-body>p:not(.cart-g):not(.cart-foot){font-size:.95rem;color:var(--cr2)}
.cart-d{margin:0 0 12px;display:grid;gap:6px}
.cart-d div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.9rem}
.cart-d dt{font:400 11px var(--mono);text-transform:uppercase;color:var(--cr2)}
.cart-d dd{margin:0}
.cart-foot{margin:auto 0 0;display:flex;justify-content:space-between;align-items:center;border-top:3px dotted var(--cr3);padding-top:12px;font:400 12px var(--mono);color:var(--cr2)}
.cart-foot b{font:700 1.6rem var(--px);color:var(--go)}
.hearts{display:inline-flex;gap:3px}
.hearts i{width:14px;height:12px;background:var(--cr3);clip-path:polygon(0 25%,25% 0,50% 25%,75% 0,100% 25%,100% 50%,50% 100%,0 50%)}
.hearts i.on{background:var(--co)}
.empty{padding:28px;text-align:center;border:3px dashed var(--co);font-family:var(--px)}

/* campfire */
.camp{background:var(--bg2);border-block:4px solid var(--cr);margin-top:110px}
.camp-in{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;padding:76px 0}
.camp-pic{aspect-ratio:4/3}
.dlgs{display:grid;grid-template-columns:1fr 1fr;gap:34px 26px;margin-top:40px}
.dlgs .dlg{padding:26px 18px 16px;font-size:.95rem}
.dlgs .dlg p:not(.dlg-name){color:var(--cr2);margin-bottom:8px}
.dlgs ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px 12px}
.dlgs a{color:var(--te);font-family:var(--px)}
@media(max-width:900px){.camp-in{grid-template-columns:1fr}}
@media(max-width:520px){.dlgs{grid-template-columns:1fr}}

/* table */
.tbl-wrap{overflow-x:auto;border:4px solid var(--cr);position:relative;background:var(--bg2)}
.tbl{border-collapse:collapse;width:100%;min-width:900px;font-size:.92rem}
.tbl th,.tbl td{text-align:left;padding:12px 14px;border-bottom:2px solid var(--cr3);vertical-align:top}
.tbl thead th{background:var(--pn);font:600 14px var(--px);color:var(--go);border-bottom:4px solid var(--cr)}
.tbl thead button{all:unset;cursor:pointer}
.tbl thead button::after{content:' ⇅';color:var(--cr2)}
.tbl tbody th a{color:var(--cr);font-family:var(--px);font-size:1.02rem}
.tbl td b{font:700 1.2rem var(--px);color:var(--go)}

/* shelf */
.shelf-sec{margin-top:110px}
.shelf-in{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.shelf-pic{aspect-ratio:1/1}
.quests{list-style:none;counter-reset:q;padding:0;margin:0 0 26px}
.quests li{counter-increment:q;padding:12px 0 12px 50px;position:relative;border-bottom:2px dashed var(--cr3)}
.quests li::before{content:counter(q);position:absolute;left:0;top:12px;width:34px;height:34px;display:grid;place-items:center;background:var(--te);color:var(--bg);font:700 1.1rem var(--px)}
.quests b{color:var(--go)}
@media(max-width:900px){.shelf-in{grid-template-columns:1fr}}

/* guides */
.gl{list-style:none;padding:8px;margin:0 0 100px;display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.gl a{display:block;height:100%;text-decoration:none;color:var(--cr2);border:4px solid var(--cr);box-shadow:0 0 0 4px var(--bg),0 0 0 8px var(--pn);background:var(--bg2)}
.gl .pic{aspect-ratio:3/2;border-bottom:4px solid var(--cr)}
.gl span{display:block;padding:16px 18px;font-size:.95rem}
.gl b{display:block;font:700 1.25rem/1.15 var(--px);color:var(--cr);margin-bottom:6px}
.gl a:hover b{color:var(--go)}
@media(max-width:900px){.gl{grid-template-columns:1fr}}

/* review */
.crumbs{font:400 12px var(--mono);padding:26px 0 22px;color:var(--cr2)}
.crumbs a{color:var(--cr)}
.rv-hd{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-bottom:56px}
.rv-t{min-width:0}
.rv-score{display:flex;align-items:center;gap:14px;font:400 12px var(--mono);text-transform:uppercase;color:var(--cr2)}
.rv-score b{font:700 3rem/1 var(--px);color:var(--go);background:var(--bg2);border:4px solid var(--go);padding:4px 14px}
.savedata{position:relative;padding:30px 26px 18px;margin:0 8px 60px}
.savedata dl{margin:0;display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr;gap:20px}
.savedata dt{font:700 11px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--pe)}
.savedata dd{margin:4px 0 0;font-size:.95rem}
.savedata dd b{display:block;font:700 1.25rem var(--px);color:var(--go)}
@media(max-width:900px){.rv-hd{grid-template-columns:1fr}.savedata dl{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.savedata dl{grid-template-columns:1fr}}
.rv-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px}
.rv-main section{margin-bottom:32px}
.rv-main p{max-width:68ch}
.rv-main h2{font-size:1.6rem;display:flex;gap:12px;align-items:center}
.lvl{font:700 12px var(--mono);background:var(--te);color:var(--bg);padding:3px 7px}
.pu{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:40px}
.pu section{margin:0;padding:18px 20px;border:3px solid var(--cr3)}
.pu h2{font-size:1.3rem}
.pu-up h2{color:var(--te)}.pu-dn h2{color:var(--co)}
.pu ul{margin:0;padding-left:18px}
.pu-up li::marker{content:'▲ ';color:var(--te)}
.pu-dn li::marker{content:'▼ ';color:var(--co)}
.tipdlg{margin:10px 8px 40px}
.tipdlg p:last-child{margin:0;font-size:1.08rem}
.verdict p{font:600 1.55rem/1.3 var(--px);color:var(--go)}
.rv-side .box{padding:20px;margin:8px 8px 34px}
.rv-side h2{font-size:1.35rem}
.st{display:grid;grid-template-columns:1fr 36px;gap:4px 10px;margin-bottom:12px}
.st>span:first-child{font-size:.9rem}
.st-bar{grid-column:1;height:14px;background:var(--bg);border:2px solid var(--cr);padding:2px}
.st-bar i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--te) 0 8px,transparent 8px 10px)}
.st b{grid-row:1/3;grid-column:2;align-self:end;font:700 1.15rem var(--px);color:var(--go)}
.info{margin:0}
.info div{padding:8px 0;border-bottom:2px dotted var(--cr3)}
.info dt{font:700 11px var(--mono);text-transform:uppercase;color:var(--pe)}
.info dd{margin:2px 0 0;font-size:.94rem}
.side-sim ul{list-style:none;padding:0;margin:0}
.side-sim li{margin-bottom:12px}
.side-sim a{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;text-decoration:none;color:var(--cr)}
.side-sim .art{border:3px solid var(--cr)}
.side-sim b{display:block;font:600 1rem var(--px)}
.side-sim small{font:400 11px var(--mono);color:var(--cr2)}
.side-sim .art-text::after{font-size:.85rem;padding:4px}
.pager{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:4px solid var(--cr3);padding:20px 0 80px;margin-top:20px}
.pager a{font:600 1.05rem var(--px);color:var(--cr)}
@media(max-width:980px){.rv-grid{grid-template-columns:1fr}}
@media(max-width:600px){.pu{grid-template-columns:1fr}}

/* pages */
.pg{padding-bottom:90px}
.pg-hd{max-width:780px;margin-bottom:34px}
.pg-fig{margin:8px 8px 50px}
.pg-fig .pic{aspect-ratio:21/9}
.prose{max-width:800px;padding:30px 34px;margin:8px}
.prose section{margin-bottom:28px}
.prose h2{font-size:1.5rem;display:flex;gap:12px;align-items:center}
@media(max-width:600px){.prose{padding:22px 18px}}
.posters{list-style:none;padding:8px;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:34px}
.posters a{display:block;text-decoration:none;color:var(--cr);border:4px solid var(--cr);box-shadow:0 0 0 4px var(--bg),0 0 0 8px var(--pn);background:var(--bg2);height:100%}
.posters .art{border-bottom:4px solid var(--cr)}
.posters span{display:block;padding:12px}
.posters b{display:block;font:600 1.1rem var(--px)}
.posters small{font:400 11px var(--mono);color:var(--cr2)}
.posters a:hover b{color:var(--go)}
.nf{text-align:center;padding-top:60px}
.nf-code{font:700 clamp(3rem,12vw,7rem)/1 var(--px);color:var(--co);text-shadow:6px 6px 0 var(--pn);margin:0 0 20px}
.nf .lede{margin-inline:auto}.nf .btns{justify-content:center}

/* footer */
.ft{margin-top:40px;background:var(--bg2)}
.ft-ground{height:24px;background:linear-gradient(90deg,var(--te) 50%,#4fb3a6 50%) 0 0/16px 8px repeat-x,#3b2a5c;border-top:4px solid var(--cr)}
.ft .wrap{padding:50px 0 26px}
.ft-grid{display:grid;grid-template-columns:1.2fr 1.5fr 1fr;gap:34px;padding:8px}
.ft-grid .box{padding:22px}
.ft h2{font:600 1.15rem var(--px);color:var(--go)}
.ft ul{list-style:none;padding:0;margin:0}
.ft li{margin-bottom:6px;font-size:.94rem}
.ft a{color:var(--cr)}
.ft-grid p{color:var(--cr2);font-size:.94rem}
.ft-cols{columns:2;column-gap:18px}
.ft-legal{margin-top:30px;font-size:.86rem;color:var(--cr2)}
@media(max-width:900px){.ft-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
*{font-variant-ligatures:none!important}
