:root{--bg:#fff8dc;--card:#fffdf4;--text:#3c2f12;--muted:#7c6a3a;--line:#ead99a;--accent:#d29a00;--accent2:#f5c84c;--soft:#fff4c8;--good:#287a45;--bad:#a9473c;--gold:#d9a514;--gold-deep:#a66f00;--cream:#fffaf0}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 12% 10%,rgba(255,225,94,.34) 0 3px,transparent 4px),radial-gradient(circle at 78% 18%,rgba(255,201,44,.25) 0 2px,transparent 3px),linear-gradient(135deg,#fff9df 0%,#fff1a8 45%,#fff8e7 100%);background-size:88px 88px,120px 120px,auto;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100dvh;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,.choice{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wrap{max-width:1040px;margin:auto;padding:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left))}.home{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.card{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,250,224,.96));border:2px solid #efd77f;border-radius:24px;padding:26px;box-shadow:0 12px 32px rgba(159,111,0,.12),inset 0 1px 0 rgba(255,255,255,.9)}.card:before{content:"✦ ✧ ★ ✧ ✦";position:absolute;right:18px;top:12px;color:rgba(211,154,0,.22);font-size:20px;letter-spacing:8px;pointer-events:none}.kicker{font-size:13px;font-weight:900;color:var(--gold-deep);letter-spacing:.055em;text-shadow:0 1px 0 #fff7c8}h1{font-size:40px;line-height:1.08;margin:8px 0 12px;color:#8d6100;text-shadow:0 2px 0 #fff,0 5px 14px rgba(206,152,0,.18)}.titleStar{color:#e3ad12;display:inline-block;filter:drop-shadow(0 0 6px rgba(255,204,42,.65));animation:twinkle 2.2s ease-in-out infinite alternate}.titleStar:last-child{animation-delay:.8s}h2{margin:0}.small{font-size:13px}.muted{color:var(--muted)}.fine{font-size:12px;color:var(--muted);line-height:1.5}.modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.modes button,.btn{min-height:56px;border:1px solid #e6c85e;border-radius:16px;background:linear-gradient(180deg,#fffef8,#fff5c8);color:var(--text);font-weight:800;padding:12px 16px;text-align:left;box-shadow:0 4px 10px rgba(167,116,0,.08),inset 0 1px 0 #fff}.modes button.primary,.btn.primary{background:linear-gradient(135deg,#b97900,#e7b51d 55%,#f4d45e);border-color:#c89100;color:#fff;text-shadow:0 1px 2px rgba(87,54,0,.3);box-shadow:0 7px 16px rgba(179,125,0,.22),inset 0 1px 0 rgba(255,255,255,.45)}.modes button:last-child{grid-column:1/-1}.parent{display:flex;align-items:center;gap:10px;margin-top:18px}.parent input{width:22px;height:22px}.resume{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;background:linear-gradient(135deg,#fff9db,#fff0a8);border:1px solid #ecd270;border-radius:16px;padding:14px;margin-top:16px}.resume .btn{margin-left:6px}.hidden{display:none!important}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.top>div:last-child{display:flex;gap:8px}.sticky{position:sticky;top:0;z-index:10;background:rgba(255,248,220,.94);backdrop-filter:blur(14px);padding:10px 0}.bar{height:9px;background:#f1df9d;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#b77900,#ffd85a,#d49a00);box-shadow:0 0 9px rgba(255,201,38,.55);transition:.2s}.qcard{margin-top:14px;padding:30px 34px;border-color:#ebcf68;box-shadow:0 14px 34px rgba(170,117,0,.12)}.question{font-size:28px;line-height:1.35;margin:0}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.choice{position:relative;display:flex;align-items:center;gap:12px;min-height:68px;border:1.5px solid #e7cf79;border-radius:18px;padding:15px 18px;background:linear-gradient(180deg,#fffef9,#fff9df);font-size:18px;box-shadow:0 4px 10px rgba(176,127,0,.06)}.choice:after{content:"✦";position:absolute;right:14px;color:rgba(205,151,0,.18);font-size:18px}.choice:has(input:checked){border-color:#d39b00;background:linear-gradient(135deg,#fff7c9,#ffe890);box-shadow:0 0 0 3px rgba(225,174,23,.14),0 6px 14px rgba(173,119,0,.10)}.choice input{width:24px;height:24px;flex:none}.choice.correct{border:2px solid var(--good);background:#f3fbf7}.choice.wrong{border:2px solid var(--bad);background:#fff6f6}.passage,.listen{font-size:18px;line-height:1.7;background:linear-gradient(135deg,#fff9df,#fff2bd);border:1px solid #ecd170;border-radius:18px;padding:20px;margin-bottom:20px;box-shadow:inset 0 1px 0 #fff}.listen{background:linear-gradient(135deg,#fffdf5,#fff3c4);border:1px solid #e8cc67}.listen .btn{margin-right:8px}.transcript{margin-top:12px;line-height:1.65}.feedback{margin-top:16px;padding:14px;border-radius:14px;border:1px solid var(--line);line-height:1.5}.feedback.good{background:#f3fbf7;border-color:#a9d5bc}.feedback.bad{background:#fff6f6;border-color:#e2abab}.actions{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-top:18px}.btn{text-align:center;cursor:pointer}.btn:disabled{opacity:.42}.danger{color:var(--bad);border-color:#e2abab}.tocSection{background:linear-gradient(180deg,#fffef8,#fff7d8);border:1px solid #e9cf70;border-radius:18px;padding:18px;margin:14px 0}.tocHead{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.tocGrid{display:grid;grid-template-columns:repeat(8,1fr);gap:9px;margin-top:12px}.tocQ{min-height:52px;border:1px solid #e5c960;border-radius:14px;background:linear-gradient(180deg,#fffef8,#fff4c4);font-weight:800;box-shadow:0 3px 8px rgba(159,107,0,.06)}.tocQ.current{outline:3px solid #e2e7ff;border-color:var(--accent)}.tocQ.correct{background:#f3fbf7;color:var(--good)}.tocQ.wrong{background:#fff6f6;color:var(--bad)}.tocQ.selected{background:#fff9e8}.score{font-size:42px;font-weight:850;margin-top:8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{border:1px solid var(--line);border-radius:14px;padding:14px}.stat b{font-size:25px;display:block}.rec{margin-top:15px;padding:15px;background:linear-gradient(135deg,#fff9da,#ffefaa);border:1px solid #ead071;border-radius:14px}@media(max-width:900px){.wrap{max-width:820px}.home{grid-template-columns:1fr}h1{font-size:38px}.qcard{padding:26px}.question{font-size:27px}.choices{grid-template-columns:1fr}.tocGrid{grid-template-columns:repeat(6,1fr)}}@media(max-width:600px){.wrap{padding:14px}.card{padding:20px}.modes{grid-template-columns:1fr}.modes button:last-child{grid-column:auto}h1{font-size:30px}.question{font-size:22px}.choice{font-size:16px;min-height:60px}.top{align-items:flex-start}.top>div:last-child{width:100%}.top{flex-wrap:wrap}.top .btn{flex:1}.tocGrid{grid-template-columns:repeat(4,1fr)}.stats{grid-template-columns:1fr}}@media(pointer:coarse){.btn,.modes button,.tocQ{min-height:58px}.choice{min-height:66px}}

/* iPad / iPadOS refinements */
@supports (-webkit-touch-callout:none){
  html,body{min-height:-webkit-fill-available}
  button,.choice{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
}
@media (orientation:portrait) and (min-width:700px) and (max-width:1100px){
  .wrap{max-width:900px;padding:max(24px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}
  .home{grid-template-columns:1fr;gap:18px}.card{padding:28px}h1{font-size:42px}.question{font-size:30px}.choices{grid-template-columns:1fr;gap:14px}.choice{min-height:72px;padding:16px 20px;font-size:19px}.modes{grid-template-columns:1fr 1fr}.modes button:last-child{grid-column:1/-1}.tocGrid{grid-template-columns:repeat(6,1fr)}
}
@media (orientation:landscape) and (min-width:900px) and (max-width:1400px){
  .wrap{max-width:1180px;padding:max(18px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}.home{grid-template-columns:1.12fr .88fr;gap:18px}.qcard{padding:26px 32px}.question{font-size:28px}.choices{grid-template-columns:1fr 1fr;gap:12px}.choice{min-height:68px;font-size:18px}.passage,.listen{font-size:18px;line-height:1.65}.tocGrid{grid-template-columns:repeat(10,1fr)}
}
@media (pointer:coarse) and (min-width:700px){
  .sticky{top:env(safe-area-inset-top)}#quiz .actions{position:sticky;bottom:env(safe-area-inset-bottom);z-index:8;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:12px 0 2px;margin-top:20px}#quiz .actions .btn{min-width:150px;min-height:60px;font-size:17px}.top .btn{min-height:54px}.tocQ{min-height:60px;font-size:16px}
}
.sparkleSky{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.wrap{position:relative;z-index:1}.sparkleSky span{position:absolute;color:#d9a514;text-shadow:0 0 10px rgba(255,210,60,.75);opacity:.45;animation:floatStar 6s ease-in-out infinite alternate}.sparkleSky span:nth-child(1){left:4%;top:8%;font-size:24px}.sparkleSky span:nth-child(2){left:17%;top:28%;font-size:16px;animation-delay:.8s}.sparkleSky span:nth-child(3){left:33%;top:6%;font-size:20px;animation-delay:1.7s}.sparkleSky span:nth-child(4){left:48%;top:18%;font-size:14px;animation-delay:2.4s}.sparkleSky span:nth-child(5){left:66%;top:7%;font-size:26px;animation-delay:.4s}.sparkleSky span:nth-child(6){left:84%;top:24%;font-size:18px;animation-delay:1.2s}.sparkleSky span:nth-child(7){left:92%;top:9%;font-size:22px;animation-delay:2.8s}.sparkleSky span:nth-child(8){left:8%;top:68%;font-size:18px;animation-delay:1.9s}.sparkleSky span:nth-child(9){left:29%;top:82%;font-size:22px;animation-delay:.5s}.sparkleSky span:nth-child(10){left:58%;top:74%;font-size:17px;animation-delay:1.4s}.sparkleSky span:nth-child(11){left:78%;top:88%;font-size:24px;animation-delay:2.2s}.sparkleSky span:nth-child(12){left:94%;top:62%;font-size:15px;animation-delay:3s}@keyframes twinkle{from{transform:scale(.92) rotate(-5deg);opacity:.68}to{transform:scale(1.08) rotate(5deg);opacity:1}}@keyframes floatStar{from{transform:translateY(0) rotate(0deg);opacity:.26}to{transform:translateY(-10px) rotate(10deg);opacity:.62}}@media (prefers-reduced-motion:reduce){.titleStar,.sparkleSky span{animation:none}}