:root{--paper:#eef0f6;--surface:#fff;--surface-2:#f5f7fb;--ink:#1a2233;--ink-soft:#57617a;--ink-faint:#8a93a8;--line:#d6dae6;--line-soft:#e7eaf2;--indigo:#2a3a5c;--mat:#0d827e;--mat-soft:#d3ecea;--mat-line:#a4d5d2;--fis:#c56a16;--fis-soft:#f7e6d0;--easy:#2e8b57;--med:#c56a16;--hard:#c0392b;--shadow:0 1px 2px #1a22330d, 0 6px 20px -12px #1a223338;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--paper:#0e131d;--surface:#161d2b;--surface-2:#1b2433;--ink:#e6eaf3;--ink-soft:#9aa5bd;--ink-faint:#6b7691;--line:#2a3345;--line-soft:#222b3b;--indigo:#b7c6ea;--mat:#3fbcb5;--mat-soft:#0f2f2d;--mat-line:#1f4a47;--fis:#eba24f;--fis-soft:#38290f;--easy:#5bbd85;--med:#eba24f;--hard:#e5675a;--shadow:0 1px 2px #0000004d, 0 10px 28px -14px #0009}}*{box-sizing:border-box}html,body{max-width:100vw}body{background-color:var(--paper);background-image:linear-gradient(var(--line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;background-position:-1px -1px;background-size:26px 26px;margin:0;font-size:18px;line-height:1.62}.wrap{max-width:52rem;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}h1,h2,h3,h4,.eyebrow,.label,.badge,.num,th{font-family:var(--sans)}h1,h2,h3{color:var(--indigo);text-wrap:balance;margin:0;line-height:1.15}h2{letter-spacing:-.02em;font-size:1.5rem;font-weight:800}h3{font-size:1.12rem;font-weight:700}p{margin:0 0 .8em}strong{color:var(--ink);font-weight:700}code,.mono{font-family:var(--mono)}a{color:var(--mat)}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--mat);margin:0 0 .4rem;font-size:.72rem;font-weight:700}header.top{border-bottom:1px solid var(--line);background:radial-gradient(120% 140% at 90% -30%, color-mix(in srgb, var(--mat) 14%, transparent), transparent 55%), var(--surface)}header.top.day2{background:radial-gradient(120% 140% at 90% -30%, color-mix(in srgb, var(--hard) 12%, transparent), transparent 55%), var(--surface)}.top-in{padding:2.4rem 0 1.8rem}.kicker{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mat);background:var(--mat-soft);border:1px solid var(--mat-line);border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.32rem .7rem;font-size:.72rem;font-weight:700;display:inline-flex}.kicker.day2{color:var(--hard);background:color-mix(in srgb, var(--hard) 14%, transparent);border-color:color-mix(in srgb, var(--hard) 35%, transparent)}h1{letter-spacing:-.03em;color:var(--indigo);font-size:clamp(1.8rem,5vw,2.6rem);font-weight:850}.sub{color:var(--ink-soft);margin-top:.6rem;font-size:1.05rem}section{border-bottom:1px solid var(--line-soft);padding:2.2rem 0}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin:1rem 0;padding:1.2rem 1.4rem}.card>:last-child{margin-bottom:0}.fr{text-align:center;vertical-align:middle;font-family:var(--mono);flex-direction:column;margin:0 .1em;line-height:1.05;display:inline-flex}.fr b{border-bottom:1.6px solid;padding:0 .28em;font-weight:600;display:block}.fr i{padding:0 .28em;font-style:normal;display:block}.eq{font-family:var(--mono);color:var(--mat);font-weight:600}.keybox{background:var(--mat-soft);border:1px solid var(--mat-line);border-radius:10px;margin:1rem 0;padding:.9rem 1.1rem}.keybox .label{letter-spacing:.1em;text-transform:uppercase;color:var(--mat);margin-bottom:.3rem;font-size:.66rem;font-weight:800;display:block}.warn{background:var(--fis-soft);border:1px solid color-mix(in srgb, var(--fis) 35%, transparent);border-left:4px solid var(--fis);border-radius:10px;margin:1rem 0;padding:.9rem 1.1rem}.warn .label{letter-spacing:.1em;text-transform:uppercase;color:var(--fis);margin-bottom:.3rem;font-size:.66rem;font-weight:800;display:block}.solo{background:color-mix(in srgb, var(--hard) 9%, transparent);border:1px solid color-mix(in srgb, var(--hard) 30%, transparent);border-left:4px solid var(--hard);border-radius:10px;margin:1rem 0;padding:.9rem 1.1rem}.solo .label{letter-spacing:.1em;text-transform:uppercase;color:var(--hard);margin-bottom:.3rem;font-size:.66rem;font-weight:800;display:block}table.mini{border-collapse:collapse;width:100%;font-family:var(--mono);margin:.6rem 0;font-size:.92rem}table.mini td{border:1px solid var(--line);text-align:center;background:var(--surface);padding:.4rem .6rem}table.mini td:first-child{color:var(--ink-soft)}.ladder{font-family:var(--mono);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin:.8rem 0;display:flex}.ladder .u{background:var(--surface-2);border:1px solid var(--line);color:var(--indigo);border-radius:8px;padding:.5rem .9rem;font-weight:700}.ladder .op{font-family:var(--sans);color:var(--mat);text-align:center;font-size:.8rem;font-weight:700;line-height:1.2}.drill{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin:1rem 0;padding:1.1rem 1.3rem}.drill h3{margin-bottom:.2rem}.drill .hint{color:var(--ink-soft);margin-bottom:.9rem;font-size:.9rem}ol.items{counter-reset:it;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.55rem .9rem;margin:0;padding:0;list-style:none;display:grid}ol.items li{counter-increment:it;font-family:var(--mono);border-bottom:1px dotted var(--line);align-items:center;gap:.5rem;padding-bottom:.35rem;font-size:1rem;display:flex}ol.items li:before{content:counter(it);color:var(--ink-faint);min-width:1.3rem;font-size:.7rem}ol.items .q{white-space:nowrap;align-items:center;gap:.15rem;display:flex}.prob{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;margin:1rem 0;padding:1.1rem 1.3rem}.prob.challenge{border-left:4px solid var(--hard)}.prob .head{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.badge{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#fff;border-radius:999px;padding:.2rem .55rem;font-size:.64rem;font-weight:800}.badge.easy{background:var(--easy)}.badge.med{background:var(--med)}.badge.hard{background:var(--hard)}.prob .pn{font-family:var(--mono);color:var(--indigo);font-weight:700}.solve{border:1px dashed var(--line);background:var(--surface-2);border-radius:8px;margin-top:.8rem;padding:.6rem .8rem}.solve .lab{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:.62rem;font-weight:800}.lines{background-image:repeating-linear-gradient(var(--surface-2), var(--surface-2) 27px, var(--line-soft) 27px, var(--line-soft) 28px);border-radius:4px;min-height:112px;margin-top:.4rem}.prob.challenge .lines{min-height:140px}.note{color:var(--ink-faint);font-size:.86rem;font-family:var(--sans)}footer{color:var(--ink-faint);font-size:.82rem;font-family:var(--sans);padding:1.8rem 0 3rem}.answer-field{align-items:center;gap:.4rem;margin-left:.3rem;display:inline-flex}.answer-field input{font-family:var(--mono);border:none;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;width:6rem;padding:0 .2rem;font-size:.95rem}.answer-field input:focus{border-bottom-color:var(--mat);outline:none}.answer-field.correct input{border-bottom-color:var(--easy);color:var(--easy);font-weight:700}.answer-field .feedback{font-family:var(--sans);font-size:.78rem}.answer-field .feedback.correct{color:var(--easy)}.answer-field .feedback.retry{color:var(--fis)}.answer-field .feedback.persist{color:var(--hard);font-weight:700}.answer-field button{font-family:var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--mat);background:var(--mat-soft);border:1px solid var(--mat-line);cursor:pointer;border-radius:999px;padding:.2rem .6rem;font-size:.68rem;font-weight:700}.answer-field button:hover{filter:brightness(.95)}ol.items .answer-field{flex:1;min-width:2.2rem;margin-left:.2rem}ol.items .answer-field input{width:100%;min-width:3.5rem}.subpart-row{font-family:var(--sans);align-items:center;gap:.5rem;margin:.5rem 0;font-size:.92rem;display:flex}.subpart-row .subpart-label{color:var(--indigo);min-width:1.6rem;font-weight:700}.xp-toast{font-family:var(--sans);color:var(--mat);font-size:.8rem;font-weight:700}@media print{body{color:#000;background:#fff;font-size:11pt}.card,.drill,.prob{box-shadow:none;break-inside:avoid}header.top{background:#fff}.lines{min-height:80px}.answer-field{display:none}}
