:root{color-scheme:light;--ink:#2B2B2B;--ink2:#5b5b5b;--bg:#FFF7E8;--card:#fff;--line:#2B2B2B;--accent:#EE4D2D;--brand:#2563EB;--soft:#FFF1D6}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.7 Nunito,"Segoe UI",system-ui,sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--brand)}
img{max-width:100%;height:auto}
.wrap{width:100%;max-width:820px;margin:0 auto;padding:0 16px}
.top{position:sticky;top:0;z-index:5;background:linear-gradient(180deg,#FF9A5C,#FFB26B);border-bottom:3px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.top .wrap{display:flex;align-items:center;gap:10px;min-height:60px;max-width:1040px}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font:800 21px/1 "Baloo 2",system-ui}
.logo img{width:40px;height:40px;object-fit:contain}
.top nav{margin-left:auto;display:flex;gap:8px;align-items:center}
.top nav a{font-weight:800;font-size:14px;text-decoration:none;color:var(--ink);background:#fff;border:2px solid var(--line);border-radius:999px;padding:8px 12px;white-space:nowrap}
.top nav a.play{background:var(--ink);color:#fff}
@media (max-width:420px){.top nav a:not(.play){display:none}}
.crumbs{font-size:14px;color:var(--ink2);padding:16px 0 4px}
.crumbs a{color:var(--ink2)}
.eyebrow{margin:12px 0 0;font-weight:800;font-size:14px;color:var(--accent)}
h1{font:800 clamp(30px,6vw,44px)/1.12 "Baloo 2",system-ui;margin:6px 0 8px;text-wrap:balance}
.meta{color:var(--ink2);font-size:14px;margin:0}
.lead{font-size:19px;line-height:1.6;margin:14px 0 0}
.toc{margin:20px 0;background:var(--card);border:3px solid var(--line);border-radius:16px;padding:14px 18px;box-shadow:4px 4px 0 var(--line)}
.toc b{font-size:15px}
.toc ol{margin:6px 0 0;padding-left:20px;font-size:16px}
.toc li{margin:4px 0}
.prose h2{font:800 26px/1.2 "Baloo 2",system-ui;margin:34px 0 8px;scroll-margin-top:80px}
.prose p{margin:12px 0}
.prose ul{padding-left:22px}
.prose li{margin:7px 0}
.prose li::marker{color:var(--accent)}
.tbl{overflow-x:auto;margin:16px 0;border:3px solid var(--line);border-radius:14px;background:var(--card)}
.tbl table{border-collapse:collapse;width:100%;min-width:460px;font-size:15px}
.tbl th,.tbl td{text-align:left;padding:10px 14px;border-bottom:1px solid #e8dcc5;vertical-align:top}
.tbl th{background:var(--soft)}
.tbl tr:last-child td{border-bottom:0}
.callout{margin:24px 0;background:#FFF3C4;border:3px solid var(--line);border-radius:16px;padding:14px 18px}
.picks h2,.faq h2,.related h2,.hubsec h2{font:800 26px/1.2 "Baloo 2",system-ui;margin:36px 0 12px;scroll-margin-top:80px}
.pbox{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.prod{background:var(--card);border:3px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:4px 4px 0 var(--line)}
.prod .ph{height:120px;display:grid;place-items:center;font-size:54px;background:var(--soft);border-bottom:3px solid var(--line);position:relative}
.prod .ph img{max-height:110px}
.prod .off{position:absolute;top:8px;left:8px;background:#FF3B3B;color:#fff;font-weight:800;font-size:13px;padding:2px 8px;border-radius:999px}
.prod .bd{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1}
.prod b{font-size:16px;line-height:1.3}
.prod .rt{font-size:13px;color:var(--ink2)}
.prod .pr{font-weight:800;font-size:19px;color:var(--accent)}
.prod .pr s{font-size:13px;color:#999;font-weight:600;margin-left:6px}
.prod a.buy{margin-top:auto;display:block;text-align:center;background:var(--accent);color:#fff;text-decoration:none;font-weight:800;border:3px solid var(--line);border-radius:12px;padding:10px;font-size:15px}
.prod .na{margin-top:auto;text-align:center;background:#ddd;border-radius:12px;padding:10px;font-weight:800;color:#777}
.muted{color:var(--ink2)}
.faq details{background:var(--card);border:3px solid var(--line);border-radius:14px;padding:0 16px;margin:10px 0}
.faq summary{cursor:pointer;font-weight:800;padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:800 22px/1 "Baloo 2";color:var(--accent)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 14px}
.cta{margin:34px 0 0;display:flex;align-items:center;gap:14px;background:#2B2B2B;color:#fff;border-radius:18px;padding:14px 16px;flex-wrap:wrap}
.cta img{width:64px;height:64px;object-fit:contain;background:#fff;border-radius:14px}
.cta div{flex:1;min-width:180px}
.cta b{display:block;font-size:18px;color:#FFD571}
.cta span{font-size:15px;color:#eee}
.cta a{background:#FFD571;color:#2B2B2B;text-decoration:none;font-weight:800;border-radius:999px;padding:10px 16px}
.related{padding-bottom:30px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.card{display:flex;gap:12px;align-items:center;background:var(--card);border:3px solid var(--line);border-radius:16px;padding:12px;text-decoration:none;color:var(--ink)}
.card .ic{flex:none;width:48px;height:48px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-size:26px;border:2px solid var(--line)}
.card small{display:block;font-weight:800;color:var(--accent);font-size:12px}
.card b{display:block;line-height:1.3;font-size:16px}
.card.big{align-items:flex-start}
.card em{display:block;font-style:normal;color:var(--ink2);font-size:14px;line-height:1.45;margin-top:4px}
.hub .hero{display:flex;gap:16px;align-items:center;margin:12px 0 4px}
.hub .hero img{width:96px;height:96px;object-fit:contain;flex:none}
.hub .hero p{margin:0;color:var(--ink2)}
.hub{padding-bottom:30px}
.foot{background:#2B2B2B;color:#ddd;font-size:14px;padding:18px 0 calc(18px + env(safe-area-inset-bottom,0px));margin-top:20px}
.foot a{color:#FFD571}
.foot p{margin:6px 0}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.prose h3{font:800 21px/1.25 "Baloo 2",system-ui;margin:24px 0 6px;scroll-margin-top:80px}
.prose img,.art .cover{display:block;width:100%;border:3px solid var(--line);border-radius:16px;margin:16px 0;background:var(--soft)}
.prose ol{padding-left:22px}
.nf{text-align:center;padding:50px 0}
.nf h1{font-size:30px}
.btnl{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;font-weight:800;border-radius:999px;padding:10px 18px}
.newsec[hidden]{display:none}
