:root{--bg: #f4efe4;--ink: #241c14;--muted: #5e554a;--card: #fffdf8;--line: #e6d9c6;--shadow: 0 12px 30px rgba(70, 42, 16, .08);--deutsch: #0e6d72;--deutsch-soft: #e5f4f4;--mathe: #b64b24;--mathe-soft: #fde8df;--hsu: #2c6b3c;--hsu-soft: #e5f3e8;--ok: #1d7a45;--ok-soft: #e5f6ec;--bad: #a33b32;--bad-soft: #fdeceb;--part: #8a5a10;--part-soft: #fff4df;--radius: 18px;--subject: var(--mathe);--subject-soft: var(--mathe-soft);color-scheme:light;font-family:Segoe UI,Helvetica Neue,Noto Sans,DejaVu Sans,sans-serif;font-size:18px;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);background:radial-gradient(1000px 420px at 10% -10%,#f7e2c8 0%,transparent 55%),radial-gradient(800px 380px at 110% 0%,#dceee4 0%,transparent 50%),var(--bg)}body.subject-deutsch{--subject: var(--deutsch);--subject-soft: var(--deutsch-soft)}body.subject-mathematik{--subject: var(--mathe);--subject-soft: var(--mathe-soft)}body.subject-hsu{--subject: var(--hsu);--subject-soft: var(--hsu-soft)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,.serif{font-family:Georgia,Iowan Old Style,Palatino,Palatino Linotype,serif;font-weight:700;letter-spacing:-.02em}h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05;margin:.2em 0}h2{font-size:clamp(1.5rem,2.5vw,2.1rem);margin:.2em 0 .4em}h3{font-size:1.25rem;margin:0 0 .35em}p{margin:.4em 0}.wrap{width:min(1080px,calc(100% - 28px));margin:0 auto;padding:22px 0 64px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:700;color:var(--subject);margin:0}.lede{font-size:1.12rem;color:var(--muted);max-width:42rem}.subject-grid,.choice-grid,.length-grid{display:grid;gap:14px}.subject-grid{grid-template-columns:repeat(3,1fr);margin-top:22px}.length-grid{grid-template-columns:repeat(3,1fr)}.choice-grid{grid-template-columns:repeat(2,1fr)}.card,.task,.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.subject-card,.pick,.length-card{text-align:left;border:2px solid transparent;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 18px 16px;min-height:112px}.subject-card{min-height:160px;border-top:8px solid var(--accent, var(--subject))}.subject-card strong,.pick strong,.length-card strong{display:block;font-size:1.35rem;font-family:Georgia,Palatino,serif}.subject-card span,.pick span,.length-card span,.muted{color:var(--muted)}.pick,.length-card{border-color:var(--line)}.pick[aria-pressed=true],.length-card[aria-pressed=true]{border-color:var(--subject);background:var(--subject-soft)}.subject-card:hover,.pick:hover,.length-card:hover,.btn:hover{transform:translateY(-1px)}.subject-card:focus-visible,.pick:focus-visible,.length-card:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--subject);outline-offset:2px}.icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;margin-bottom:10px;color:#fff}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.btn{border:0;border-radius:999px;min-height:52px;padding:10px 18px;background:var(--subject);color:#fff;font-weight:700}.btn.secondary{background:transparent;color:var(--ink);border:2px solid var(--line)}.btn.ghost{background:#fff;color:var(--ink);border:2px solid var(--line)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.checkline{display:flex;gap:10px;align-items:flex-start;min-height:44px}.estimate{margin-top:14px;padding:14px 16px;border-radius:16px;background:var(--subject-soft);font-weight:700}.topbar{position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f4efe4eb;border-bottom:1px solid var(--line);padding:10px 0}.topbar .inner{width:min(1080px,calc(100% - 28px));margin:0 auto;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between}.progress-wrap{flex:1 1 180px;min-width:160px}.progress{height:12px;background:#e7dccb;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--subject)}.timer{font-variant-numeric:tabular-nums;font-weight:800}.task{padding:16px 16px 14px;margin:14px 0}.task-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;color:var(--muted);font-size:.92rem}.prompt{font-size:1.18rem;white-space:pre-wrap;margin:8px 0 12px}fieldset{border:0;margin:0;padding:0}.option{display:flex;gap:12px;align-items:flex-start;padding:12px;border:2px solid var(--line);border-radius:14px;margin:8px 0;background:#fff;min-height:52px}.option input{width:1.2rem;height:1.2rem;margin-top:.2rem;accent-color:var(--subject)}.option.selected{border-color:var(--subject);background:var(--subject-soft)}.option.good{border-color:var(--ok);background:var(--ok-soft)}.option.bad{border-color:var(--bad);background:var(--bad-soft)}.answer-input,select,textarea{width:100%;border-radius:14px;border:2px solid var(--line);background:#fff;padding:12px 14px;min-height:52px}textarea{min-height:180px;resize:vertical}.match-row{display:grid;grid-template-columns:1fr;gap:6px;margin:10px 0}.stimulus,.solution,.hint,.muster{border-radius:14px;padding:12px 14px;margin:8px 0}.stimulus{background:#f7f1e6;border:1px dashed #d9c7aa}.stimulus p{white-space:pre-wrap}.solution{background:var(--ok-soft);border:1px solid #b7e0c6}.hint{background:#f8f4ea;color:var(--muted)}.figure{margin:8px 0 12px;overflow-x:auto}.figure svg{max-width:100%;height:auto}table.data{width:100%;border-collapse:collapse;margin:8px 0 12px;background:#fff}table.data caption{text-align:left;font-weight:700;margin-bottom:6px}table.data th,table.data td{border:1px solid var(--line);padding:8px 10px;text-align:left}table.data th{background:var(--subject-soft)}.grade-hero{padding:20px;display:grid;gap:6px}.grade-number{font-size:clamp(3rem,8vw,5rem);line-height:.9;color:var(--subject);margin:0}.topics{width:100%;border-collapse:collapse}.topics th,.topics td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}.pill{display:inline-block;border-radius:999px;padding:2px 8px;font-size:.85rem;font-weight:700}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.part{background:var(--part-soft);color:var(--part)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#241c1473;display:grid;place-items:center;padding:16px;z-index:20}.modal{width:min(520px,100%);padding:18px}.footer-note{color:var(--muted);font-size:.92rem;margin-top:28px}.print-only{display:none}.checklist label{display:flex;gap:10px;align-items:flex-start;padding:8px 0}@media(max-width:800px){.subject-grid,.length-grid,.choice-grid{grid-template-columns:1fr}.wrap{width:min(1080px,calc(100% - 20px))}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media print{body{background:#fff;font-size:12pt}.no-print,.topbar,.footer-note,.actions,.modal-back{display:none!important}.print-only{display:block}.wrap{width:100%;padding:0}.task,.card,.panel{box-shadow:none;break-inside:avoid}.subject-card{break-inside:avoid}a{color:#000;text-decoration:none}@page{margin:12mm}}.exam-list{display:grid;gap:10px;margin-top:14px}.exam-row{text-align:left;border:2px solid var(--line);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;display:grid;gap:2px}.exam-row strong{font-family:Georgia,Palatino,serif;font-size:1.25rem}.exam-row:hover{transform:translateY(-1px)}.answer-block{border-radius:14px;padding:12px 14px;margin:8px 0;background:#f7f1e6;border:1px solid var(--line)}.pre{white-space:pre-wrap}.compare{padding:16px 18px;margin:14px 0}.plan-steps{margin:8px 0 0;padding-left:1.2em}.plan-steps li{margin:6px 0}.strong-list{margin:8px 0 0;padding-left:1.2em}.strong-list li{margin:8px 0}:root{--bg: #fff8e7;--ink: #2b2250;--muted: #5d567e;--card: #ffffff;--line: #e4dcff;--shadow: 0 6px 0 rgba(43, 34, 80, .1);--deutsch: #2f7de1;--deutsch-soft: #e3f0ff;--mathe: #f0592a;--mathe-soft: #ffe8df;--hsu: #1fa463;--hsu-soft: #dcf7e8;--radius: 24px;font-family:ui-rounded,SF Pro Rounded,Nunito,Quicksand,Trebuchet MS,Segoe UI,sans-serif;font-size:19px}body{background:radial-gradient(circle at 8% 4%,#ffe08a 0 90px,transparent 91px),radial-gradient(circle at 96% 12%,#bfe9ff 0 120px,transparent 121px),radial-gradient(circle at 90% 92%,#ffd0e4 0 140px,transparent 141px),var(--bg);background-attachment:fixed}h1,h2,h3,.serif,.subject-card strong,.pick strong,.length-card strong,.exam-row strong{font-family:inherit;font-weight:900;letter-spacing:0}h1{color:var(--subject)}.eyebrow{color:var(--subject);letter-spacing:.08em}.card,.task,.panel{border:3px solid var(--line)}.btn{font-weight:900;font-size:1.05rem;padding:12px 24px;box-shadow:0 5px #0000002e;transition:transform .12s,box-shadow .12s}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(3px);box-shadow:0 2px #0000002e}.btn.secondary,.btn.ghost{box-shadow:0 4px 0 var(--line);background:#fff;color:var(--ink);border:3px solid var(--line)}.btn.big{font-size:1.4rem;min-height:64px;padding:14px 34px;background:linear-gradient(180deg,#ffb703,#fb8500);color:#3b2300}.topbar{background:#fff8e7f2;border-bottom:3px solid var(--line)}.hero{display:flex;gap:22px;align-items:center;flex-wrap:wrap;background:#fff;border:3px solid var(--line);border-radius:32px;box-shadow:var(--shadow);padding:22px 26px;margin-bottom:8px}.hero>div{flex:1 1 300px}.hero h1{margin:.1em 0;color:#5b3df5}.owl{flex:none;animation:bob 2.6s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-8px) rotate(2deg)}}.step-title{display:flex;align-items:center;gap:10px;margin:1.1em 0 .5em}.step-no{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--subject);color:#fff;font-size:1.2rem;box-shadow:0 3px #0003}body:not([class*=subject-]) .step-no{background:#5b3df5}.subject-card{border:3px solid var(--line);border-top:3px solid var(--line);background:#fff;display:flex;flex-direction:column;gap:2px;transition:transform .15s;position:relative;overflow:hidden}.subject-card:before{content:"";position:absolute;inset:0 0 auto 0;height:14px;background:var(--accent)}.subject-card:hover{transform:translateY(-4px) rotate(-.6deg)}.subject-card strong{font-size:1.7rem;color:var(--accent)}.subject-card em{font-style:normal;font-weight:800}.big-emoji{font-size:3rem;line-height:1;margin-top:10px}.pick,.length-card{border:3px solid var(--line);transition:transform .12s}.pick-emoji{display:block;font-size:1.9rem;line-height:1.1;margin-bottom:2px}.pick[aria-pressed=true],.length-card[aria-pressed=true]{border-color:var(--subject);background:var(--subject-soft);transform:scale(1.02);box-shadow:0 6px 0 var(--subject)}.pick[aria-pressed=true]:after,.length-card[aria-pressed=true]:after{content:"✓";float:right;margin-top:-2.6rem;font-weight:900;color:#fff;background:var(--subject);border-radius:50%;width:30px;height:30px;display:grid;place-items:center}.estimate{border-radius:20px;font-size:1.1rem}.task{position:relative}.task-head>span:first-child{background:var(--subject);color:#fff;font-weight:900;border-radius:999px;padding:2px 14px}.option{border-width:3px;border-radius:18px;font-size:1.08rem;transition:transform .1s}.option:hover{transform:translate(3px);border-color:var(--subject)}.answer-input,select,textarea{border-width:3px;border-radius:18px;font-size:1.15rem}.progress{height:18px;background:#ece6ff;border:2px solid var(--line)}.progress>span{background:repeating-linear-gradient(45deg,var(--subject),var(--subject) 10px,color-mix(in srgb,var(--subject) 80%,white) 10px,color-mix(in srgb,var(--subject) 80%,white) 20px);transition:width .3s}.grade-hero{position:relative;overflow:hidden;text-align:center;justify-items:center}.grade-hero .topics{text-align:left}.cheer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}.bubble{background:#fff6cc;border:3px solid #ffd93d;border-radius:22px;padding:12px 18px;font-weight:800;max-width:26rem;margin:0}.stars{font-size:3.2rem;letter-spacing:6px}.star{color:#dcd6f0;display:inline-block}.star.on{color:#ffb703;animation:pop .6s cubic-bezier(.3,1.8,.5,1) both;text-shadow:0 3px 0 #e08a00}@keyframes pop{0%{transform:scale(0) rotate(-90deg)}to{transform:scale(1) rotate(0)}}.grade-number{font-weight:900}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-14px;width:10px;height:16px;border-radius:2px;animation:fall linear 1 both}@keyframes fall{to{transform:translateY(420px) rotate(540deg);opacity:0}}@media(prefers-reduced-motion:reduce){.owl,.confetti i,.star.on{animation:none!important}}@media print{.hero,.confetti,.stars,.cheer{display:none!important}}
