:root{--ink:#0b1220;--panel:#111a30;--line:#2a3350;--text:#f4f1ea;--muted:#9aa3b8;--mint:#c9a24b;--mint-2:#e8c976;--gold:#e8c976;--bad:#ff8b9a}*{box-sizing:border-box}body{margin:0;background:linear-gradient(150deg,#0b1220,#111a30 55%,#152040);color:var(--text);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit}.nav{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(18px,5vw,60px);border-bottom:1px solid #ffffff18;background:#0b1220e6;position:sticky;top:0;backdrop-filter:blur(14px);z-index:5}.brand{display:inline-flex;align-items:center;gap:.55rem}.brand img{width:30px;height:30px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.4)}.brand{font-weight:800;font-size:20px;text-decoration:none;font-family:Georgia,"Iowan Old Style",serif}.brand span{color:var(--mint)}.navlinks{display:flex;gap:18px;align-items:center}.navlinks a{text-decoration:none;color:var(--muted)}.button,button{border:0;border-radius:999px;padding:13px 20px;font-weight:700;cursor:pointer;background:linear-gradient(180deg,var(--mint-2),var(--mint));color:var(--ink);text-decoration:none;display:inline-block;min-height:44px}.button.secondary,button.secondary{background:transparent;color:var(--text);border:1px solid rgba(255,255,255,.35)}main{width:min(1080px,calc(100% - 32px));margin:auto;padding:42px 0 80px}.hero{padding:64px 0 34px;display:grid;gap:26px;grid-template-columns:1.2fr .8fr;align-items:center}h1{font-size:clamp(38px,7vw,68px);line-height:1.05;margin:0;font-family:Georgia,"Iowan Old Style",serif;letter-spacing:-.01em}.lead{font-size:clamp(18px,3vw,23px);color:var(--muted);max-width:650px}.eyebrow{color:var(--mint-2);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.78rem}.card{background:#111a30dd;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 18px 48px rgba(0,0,0,.35),0 0 0 1px rgba(232,201,118,.08)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.drop{border:2px dashed #4a5578;border-radius:16px;padding:25px;text-align:center}.tabs{display:flex;gap:8px;margin-bottom:18px}.tabs button{background:#ffffff0d;color:var(--muted);border-radius:999px;min-height:44px}.tabs button.active{background:linear-gradient(180deg,var(--mint-2),var(--mint));color:var(--ink)}textarea{width:100%;min-height:230px;background:#0b1220;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:16px;resize:vertical;font:inherit}input[type=file]{max-width:100%}.status{padding:14px 0;color:var(--muted)}.question{font-size:22px;font-weight:800}.options{display:grid;gap:10px;margin:20px 0}.option{width:100%;text-align:left;background:#ffffff0b;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-height:48px;font-size:1rem}.option.selected{border-color:var(--mint);background:#c9a24b22}.option.correct{border-color:var(--mint-2);background:#e8c97633}.option.wrong{border-color:var(--bad);background:#ff8b9a22}.progress{height:8px;background:#ffffff12;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--mint),var(--mint-2))}.hidden{display:none!important}.score{font-size:56px;font-weight:900;color:var(--mint-2);font-family:Georgia,serif}.mistake{border-left:4px solid var(--gold);padding:10px 16px;margin:14px 0;background:#ffffff08;border-radius:0 10px 10px 0}.price{font-size:28px;font-weight:800;font-family:Georgia,serif}.muted{color:var(--muted)}footer{padding:35px 0;color:var(--muted)}@media(max-width:760px){.hero,.grid{grid-template-columns:1fr}.navlinks{gap:10px}.navlinks a{font-size:14px}.nav{flex-wrap:wrap;row-gap:8px}main{padding-top:20px}.hero{padding-top:34px}.card{padding:18px}}
.crest{width:30px;height:30px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.4);flex:none;vertical-align:middle;margin-right:8px}
.navlinks a.active{color:var(--text)}
.pageHead{margin-bottom:22px}
.pageHead .eyebrow{margin-bottom:4px}
.pageHead h1{font-size:clamp(30px,5vw,44px)}
.pageHead p{max-width:620px}
.statusBar{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 26px}
.statusChip{background:#ffffff0d;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.statusChip b{color:var(--text)}
.composerHead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.composerHead h2{margin:0;font-size:20px;font-family:Georgia,serif}
.helpNote{background:#ffffff08;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--muted);margin-top:14px}
.tabs button{min-height:44px;padding:10px 18px}
.drop{min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.drop input[type=file]{min-height:44px}
#generate{min-height:52px;font-size:16px;width:100%;margin-top:16px}
@media(min-width:560px){#generate{width:auto;padding-left:32px;padding-right:32px}}
.playerHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.playerHead .counter{margin:0}
.question{margin:18px 0 4px}
.options{counter-reset:opt}
.option{counter-increment:opt;position:relative;padding:16px 16px 16px 52px;min-height:56px;font-size:16px;line-height:1.4}
.option::before{content:counter(opt,upper-alpha);position:absolute;left:14px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:#ffffff14;color:var(--muted);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.option.selected::before{background:var(--mint);color:var(--ink)}
.option.correct::before{background:var(--mint-2);color:var(--ink);content:"✓"}
.option.wrong::before{background:var(--bad);color:#fff;content:"✕"}
#next{min-height:52px;width:100%;font-size:16px}
.resultsHead{text-align:center;margin-bottom:6px}
.score{display:block;text-align:center}
#resultCopy{text-align:center}
.resultActions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}
.resultActions .button{min-width:160px;text-align:center}
.dashGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:700px){.dashGrid{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.dashGrid{grid-template-columns:1fr}}
.dashCard{text-align:left}
.dashCard .label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:800}
.dashCard .value{font-family:Georgia,serif;font-size:26px;font-weight:800;margin:6px 0 2px;color:var(--mint-2)}
.dashCard .sub{font-size:13px;color:var(--muted)}
.historyList{display:grid;gap:8px}
.historyRow{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.historyRow:first-child{border-top:0}
.historyRow b{font-weight:700}
.field{display:block;margin:14px 0}
.field>span{display:block;font-size:13px;font-weight:700;color:var(--muted);margin-bottom:6px}
.field input{width:100%;min-height:48px;background:#0b1220;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit}
.field input:focus{outline:2px solid var(--mint);outline-offset:1px;border-color:var(--mint)}
.field input:invalid:not(:placeholder-shown){border-color:var(--bad)}
.formError{color:var(--bad);font-size:13px;min-height:18px;margin:6px 0 0}
.authCard{max-width:460px}
.authCard h2{font-size:20px;font-family:Georgia,serif;margin-bottom:4px}
.authSwitch{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.authSwitch summary{cursor:pointer;font-weight:700;color:var(--mint-2);min-height:44px;display:flex;align-items:center}
.billingRow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.dangerZone{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.dangerZone summary{cursor:pointer;font-weight:700;color:var(--bad);min-height:44px;display:flex;align-items:center}
.btnDanger{background:transparent;border:1px solid var(--bad);color:var(--bad)}
pre#recovery-codes-list{background:#0b1220;border:1px solid var(--line);border-radius:12px;padding:14px;font-size:14px;line-height:1.7;overflow-x:auto}
@media(max-width:480px){.nav .navlinks{font-size:13px;gap:8px}}
