:root{--ox:#7A1F2B;--oxd:#551520;--br:#B8862E;--brt:#8A6316;--sl:#35577D;--ol:#5E7D3A;--te:#2A7F8E;--pl:#5B4B8A;--bk:#A63A2B;
--bg:#FBF6EC;--card:#FFFFFF;--ink:#2B1A1D;--mut:#6B5A5C;--line:#E4D7C2;--tint:#F6E9EB;--acc:var(--ox);
--disp:"Didot","Bodoni 72","Bodoni MT","Playfair Display","Hoefler Text",Georgia,"Times New Roman",serif;
--body:"Hoefler Text","Iowan Old Style",Georgia,"Times New Roman",serif;--ui:"Avenir Next","Trebuchet MS",system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-variant-numeric:lining-nums;margin:0;background:var(--bg);color:var(--ink);font:18px/1.55 var(--body);min-height:100vh}
body[data-mode=child]{font-size:20px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
button{font-family:var(--ui);cursor:pointer;color:inherit}
button:focus-visible,a:focus-visible{outline:3px solid var(--br);outline-offset:2px}
.top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:var(--ox);color:#fff;position:sticky;top:0;z-index:20;border-bottom:4px solid var(--br)}
.brand{display:flex;align-items:center;gap:10px;background:none;border:0;color:#fff;text-align:left;min-height:48px;padding:0}
.logo{width:38px;height:38px;border-radius:10px;background:var(--br);position:relative;flex:none;box-shadow:inset 0 0 0 3px #fff3}
.logo:before{content:"";position:absolute;inset:9px 14px 9px 9px;background:var(--ox);border-radius:50%}
.logo:after{content:"";position:absolute;width:12px;height:12px;right:6px;top:13px;background:#fff;border-radius:3px;transform:rotate(45deg)}
.brandtxt{display:flex;flex-direction:column;line-height:1.1}.brandtxt b{font:700 19px var(--disp);white-space:nowrap}.brandtxt small{font:13px var(--ui);opacity:.85}
.modes{display:flex;background:#0003;border-radius:30px;padding:4px;gap:4px}
.modebtn{min-height:48px;min-width:72px;border:0;border-radius:26px;background:transparent;color:#fff;font-weight:700;font-size:16px;padding:0 14px}
.modebtn[aria-pressed=true]{background:#fff;color:var(--ox)}
main{max-width:980px;margin:0 auto;padding:18px 16px 90px;outline:0}
.pad{padding:20px}
h1,h2,h3{font-family:var(--disp);color:var(--ox);line-height:1.12;margin:.2em 0 .4em}
h1{font-size:clamp(34px,7vw,56px);font-weight:700}h2{font-size:clamp(26px,5vw,36px)}h3{font-size:22px}
p{margin:.5em 0}
.hero{background:linear-gradient(135deg,var(--ox),var(--oxd));color:#fff;border-radius:22px;padding:26px 22px;position:relative;overflow:hidden;margin-bottom:22px}
.hero h1{color:#fff;margin:0 0 8px}.hero p{max-width:34em;font-size:1.05em;opacity:.95}
.hero:after{content:"";position:absolute;right:-30px;top:-30px;width:170px;height:170px;border-radius:50%;background:var(--br);opacity:.28}
.hero:before{content:"";position:absolute;right:70px;bottom:-40px;width:110px;height:110px;transform:rotate(45deg);background:var(--te);opacity:.35;border-radius:14px}
.shapes{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;position:relative;z-index:1}
.shapes i{width:34px;height:34px;display:block;background:#fff;opacity:.92}
.shapes i:nth-child(1){border-radius:50%;background:var(--br)}.shapes i:nth-child(2){background:var(--te);transform:rotate(45deg) scale(.8)}.shapes i:nth-child(3){clip-path:polygon(50% 0,100% 100%,0 100%);background:#fff}.shapes i:nth-child(4){background:var(--pl);border-radius:8px}.shapes i:nth-child(5){background:var(--ol);border-radius:50% 0}
.sechead{display:flex;align-items:center;gap:10px;margin:28px 0 10px}.sechead h2{margin:0}.sechead:after{content:"";flex:1;height:3px;background:linear-gradient(90deg,var(--br),transparent)}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{background:var(--card);border:2px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 3px 0 #e4d7c2}
.tcard{display:flex;flex-direction:column;gap:6px;border-top:10px solid var(--acc)}
.tcard h3{margin:0;color:var(--acc)}.tcard .meta{font:15px var(--ui);color:var(--mut)}
.tcard.main{border-top-color:var(--ox)}
.badge{display:inline-block;font:700 12px var(--ui);letter-spacing:.08em;text-transform:uppercase;background:var(--br);color:#fff;border-radius:20px;padding:3px 10px;align-self:flex-start}
.badge.alt{background:var(--sl)}
.btn{min-height:52px;padding:0 22px;border-radius:30px;border:0;font:700 18px var(--ui);background:var(--acc);color:#fff;box-shadow:0 4px 0 #0003;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.btn:active{transform:translateY(2px);box-shadow:0 2px 0 #0003}
.btn.alt{background:#fff;color:var(--acc);border:3px solid var(--acc);box-shadow:none}
.btn.small{min-height:48px;font-size:16px;padding:0 16px}
.btn.gold{background:var(--br)}
.btn[disabled]{opacity:.45}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.note{font:15px/1.5 var(--ui);color:var(--mut)}
.callout{border-left:6px solid var(--br);background:#FBF0D8;padding:12px 14px;border-radius:0 12px 12px 0;font:16px/1.5 var(--ui);margin:12px 0}
.callout.te{border-color:var(--te);background:#E3F1F3}.callout.ol{border-color:var(--ol);background:#EAF1E0}.callout.ox{border-color:var(--ox);background:var(--tint)}
.dcard{display:flex;gap:12px;align-items:center;min-height:72px;text-align:left;width:100%;background:#fff;border:2px solid var(--line);border-left:10px solid var(--acc);border-radius:14px;padding:10px 14px;font-size:17px}
.dcard b{display:block;font:700 19px var(--disp);color:var(--acc)}.dcard small{font:14px var(--ui);color:var(--mut)}
.bat{font:700 13px var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin:16px 0 6px}
table{border-collapse:collapse;width:100%;font:16px var(--ui)}th{background:var(--ox);color:#fff;text-align:left;padding:8px 10px}td{padding:8px 10px;border-bottom:1px solid var(--line)}tr:nth-child(even) td{background:#fbf3e6}
.tscroll{overflow-x:auto}
.fine{font:14px/1.5 var(--ui);color:var(--mut);margin-top:34px;border-top:3px double var(--line);padding-top:14px}
/* run */
.runbar{position:sticky;top:66px;z-index:10;background:var(--bg);padding:6px 0 8px;border-bottom:2px solid var(--line);margin-bottom:12px}
.runtop{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.chip{font:700 14px var(--ui);color:#fff;background:var(--acc);border-radius:20px;padding:5px 12px}
.timer{font:700 18px var(--ui);color:var(--acc)}
.tbar{height:10px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:6px}.tbar i{display:block;height:100%;background:var(--acc);transition:width .9s linear}
.tbar.low i{background:var(--bk)}
.q{background:var(--card);border:2px solid var(--line);border-top:8px solid var(--acc);border-radius:20px;padding:18px 16px}
.qno{font:700 15px var(--ui);color:var(--acc);letter-spacing:.06em;text-transform:uppercase}
.qin{font:600 clamp(24px,5.4vw,34px)/1.35 var(--body);margin:10px 0 14px;text-align:center}
.qprompt{font:17px/1.4 var(--ui);color:var(--mut);text-align:center;margin:0 0 6px}
.qcenter{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;margin:6px 0 14px}
.w{background:var(--tint);border:2px solid var(--acc);border-radius:14px;padding:8px 14px;font:700 clamp(22px,5vw,30px) var(--body);min-width:54px;text-align:center}
.w.q2{background:var(--acc);color:#fff}
.sep{font:700 clamp(22px,5vw,30px) var(--disp);color:var(--acc)}
.blank{display:inline-block;min-width:3.2em;border-bottom:4px solid var(--acc);margin:0 4px;height:1em;vertical-align:baseline}
.box{display:inline-block;width:1.15em;height:1.15em;border:3px solid var(--acc);border-radius:8px;vertical-align:-.2em;background:#fff;margin:0 2px}
.arrow{font:700 28px var(--ui);color:var(--br)}
.pair{display:flex;gap:10px;align-items:center;justify-content:center;margin:6px 0}
.fig{display:block;margin:0 auto;max-width:100%;height:auto;border-radius:10px;background:#fff}
.zoombtn{display:block;margin:6px auto 0}
.opts{display:grid;gap:10px;margin-top:14px;grid-template-columns:1fr}
.opts.pic{grid-template-columns:repeat(5,1fr);gap:8px}
.opt{display:flex;align-items:center;gap:12px;min-height:56px;width:100%;text-align:left;background:#fff;border:3px solid var(--line);border-radius:16px;padding:6px 14px;font:600 clamp(20px,4.6vw,26px) var(--body)}
.opt .l{flex:none;width:44px;height:44px;border-radius:50%;background:var(--tint);color:var(--acc);font:700 22px/44px var(--ui);text-align:center}
.opt.pic{justify-content:center;padding:4px;min-height:56px}
.opts.pic .opt{flex-direction:column;gap:0}
.opt[aria-pressed=true]{border-color:var(--acc);background:var(--tint);box-shadow:0 0 0 3px var(--acc) inset}
.opt[aria-pressed=true] .l{background:var(--acc);color:#fff}
.opt.right{border-color:var(--ol);background:#EAF1E0;box-shadow:0 0 0 3px var(--ol) inset}.opt.right .l{background:var(--ol);color:#fff}
.opt.wrong{border-color:var(--bk);background:#F7E4DF;box-shadow:0 0 0 3px var(--bk) inset}.opt.wrong .l{background:var(--bk);color:#fff}
.mark{margin-left:auto;font:700 16px var(--ui)}
.fb{margin-top:14px;border-radius:14px;padding:12px 14px;font:17px/1.5 var(--ui)}
.fb.good{background:#EAF1E0;border:2px solid var(--ol)}.fb.bad{background:#FBF0D8;border:2px solid var(--br)}
.fb b{font-family:var(--disp);font-size:22px}
.nav{display:flex;gap:10px;margin-top:16px;justify-content:space-between;flex-wrap:wrap}
.nav .btn{flex:1 1 130px}
.dots{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:8px;margin:12px 0}
.dot{min-height:52px;border-radius:12px;border:3px solid var(--line);background:#fff;font:700 18px var(--ui);position:relative}
.dot.a{background:var(--acc);border-color:var(--acc);color:#fff}.dot.cur{outline:4px solid var(--br)}
.dot.f:after{content:"\2691";position:absolute;right:3px;top:-2px;font-size:15px;color:var(--bk)}.dot.a.f:after{color:#fff}
.sc{width:100%}
.bar{height:22px;background:var(--line);border-radius:12px;overflow:hidden}.bar i{display:block;height:100%;background:var(--acc)}
.score{display:flex;gap:12px;align-items:center;margin:8px 0}.score .nm{flex:0 0 190px;font:700 16px var(--ui)}.score .bar{flex:1}.score .v{flex:0 0 74px;text-align:right;font:700 16px var(--ui)}
@media(max-width:560px){.score{flex-wrap:wrap}.score .nm{flex:1 1 100%}}
.stars{font-size:42px;color:var(--br);letter-spacing:6px}
.rev{border-top:6px solid var(--acc);margin:14px 0}
.rev .head{font:700 16px var(--ui);color:var(--acc)}
.tag{font:700 12px var(--ui);padding:2px 8px;border-radius:12px;color:#fff}.tag.ok{background:var(--ol)}.tag.no{background:var(--bk)}.tag.na{background:var(--mut)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.filters .btn{min-height:48px;font-size:15px}
.zoom{position:fixed;inset:0;background:#000d;z-index:50;display:flex;flex-direction:column}
.zoom[hidden]{display:none}.zclose{min-height:56px;font:700 18px var(--ui);background:var(--br);color:#fff;border:0}
.zscroll{overflow:auto;flex:1;padding:10px;-webkit-overflow-scrolling:touch}.zscroll img{width:max(100%,900px);background:#fff;border-radius:8px}
.tips{columns:1}
@media(min-width:700px){.opts.txt{grid-template-columns:1fr 1fr}.tips{columns:2}}
@media print{.top,.nav,.filters,.runbar,button.btn{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.nw{flex-wrap:nowrap;min-height:52px}.nw input{flex:none;accent-color:var(--ox)}
