.floatbar{--brand:#667eea;--brand-dark:#4c3fb5;--text:#1e293b;--muted:#64748b;--line:#e2e8f0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#ffffffeb;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans JP,sans-serif;position:sticky;top:0;box-shadow:0 4px 18px #0f172a14}.floatbar-inner{align-items:center;gap:12px;max-width:1240px;margin:0 auto;padding:10px 20px;display:flex}.brand{color:var(--brand-dark);white-space:nowrap;font-size:1.2rem;font-weight:800;text-decoration:none}.brand:hover{color:var(--brand-dark)}.beta{text-transform:uppercase;letter-spacing:.08em;color:var(--brand-dark);background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:3px 9px;font-size:.7rem;font-weight:700}.float-menu{align-items:center;gap:4px;margin-left:auto;display:flex}.float-menu>a{color:var(--text);border-radius:8px;padding:8px 12px;font-weight:600;text-decoration:none}.float-menu>a:hover{color:var(--brand-dark);background:#f1f5f9}.menu-btn{border:1px solid var(--line);width:40px;height:40px;color:var(--text);background:#fff;border-radius:8px;margin-left:auto;font-size:1.1rem;display:none}.search-box{flex:0 240px;min-width:150px;margin-left:8px;position:relative}.search-box>i{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-box input{border:1px solid var(--line);background:#f8fafc;border-radius:10px;width:100%;padding:8px 12px 8px 36px;font-size:.95rem;transition:border-color .15s,box-shadow .15s,background .15s}.search-box input:focus{border-color:var(--brand);background:#fff;outline:none;box-shadow:0 0 0 3px #667eea40}.search-results{border:1px solid var(--line);background:#fff;border-radius:12px;width:min(380px,90vw);max-height:70vh;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 16px 40px #0f172a26}.search-results a{color:var(--text);border-radius:8px;padding:8px 10px;text-decoration:none;display:block}.search-results a strong{font-weight:600;display:block}.search-results a span{color:var(--muted);font-size:.85rem}.search-results a:hover,.search-results li[aria-selected=true] a{background:#eef2ff}.search-results .empty{color:var(--muted);padding:10px}.crumbs{border-left:1px solid var(--line);white-space:nowrap;min-width:0;color:var(--muted);align-items:center;gap:8px;margin-left:8px;padding-left:16px;font-size:.95rem;display:flex}.crumbs a{color:var(--text);text-overflow:ellipsis;font-weight:600;text-decoration:none;overflow:hidden}.crumbs a:first-child,.crumbs-count{flex:none}.crumbs a:hover{color:var(--brand-dark);text-decoration:underline}.crumbs i{font-size:.7rem}.crumbs-count a{color:inherit;font-weight:inherit}.bar-group{gap:4px;margin-left:6px;display:flex}.bar-btn{border:1px solid var(--line);min-width:38px;height:38px;color:var(--text);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:.9rem;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.bar-btn:hover{border-color:var(--brand);color:var(--brand-dark);background:#eef2ff}.bar-btn.disabled{opacity:.35;cursor:default}.bar-btn.disabled:hover{border-color:var(--line);color:var(--text);background:#fff}.bar-topics{background:var(--brand);border-color:var(--brand);color:#fff;margin-left:6px}.bar-topics:hover,.bar-topics[aria-expanded=true]{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.floatbar a:focus-visible,.floatbar button:focus-visible{outline:3px solid var(--brand);outline-offset:2px}@media (width<=860px){.floatbar-inner{flex-wrap:wrap}.menu-btn{display:block}.crumbs{display:none}.float-menu{flex-direction:column;align-items:stretch;gap:8px;width:100%;margin:0;padding:8px 0 4px;display:none}.float-menu.open{display:flex}.search-box{flex:none;margin:0}.search-box input{width:100%}.search-results{width:100%;left:0;right:auto}.bar-group{margin:0}.bar-group .bar-btn{flex:1;height:42px}.bar-topics{height:42px;margin:0}}:root{--brand:#667eea;--brand-dark:#4c3fb5;--text:#1e293b;--muted:#64748b;--line:#e2e8f0}html{scroll-behavior:smooth}section[id]{scroll-margin-top:80px}.hero{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:0 20px 64px}.hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:48px;max-width:1100px;margin:0 auto;padding-top:48px;display:grid}.hero-grid>*{min-width:0}.hero h1{margin:0 0 18px;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;line-height:1.1}.highlight{color:#fde68a;text-underline-offset:8px;-webkit-text-decoration:underline wavy #fde68a99;text-decoration:underline wavy #fde68a99}.lead-text{opacity:.95;max-width:34em;margin:0 0 28px;font-size:1.2rem;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;margin-bottom:32px;display:flex}.btn-main,.btn-ghost{border-radius:12px;align-items:center;gap:8px;padding:13px 24px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.btn-main{color:var(--brand-dark);background:#fff;box-shadow:0 6px 20px #0000002e}.btn-main:hover{color:var(--brand-dark);transform:translateY(-2px);box-shadow:0 10px 26px #0000003d}.btn-ghost{color:#fff;border:2px solid #fff9}.btn-ghost:hover{color:#fff;background:#ffffff1f}.stats{flex-wrap:wrap;gap:10px 28px;margin:0;padding:0;list-style:none;display:flex}.stats li{opacity:.9}.stats strong{opacity:1;font-size:1.6rem;line-height:1.1;display:block}.hero-demo{color:var(--text);background:#fff;border-radius:18px;margin:0;padding:16px;box-shadow:0 20px 50px #1e145059}.hero-demo figcaption{color:var(--brand-dark);margin-bottom:8px;font-weight:600}.hero-demo canvas{touch-action:none;max-width:100%;height:auto;margin:0 auto;display:block}.hero-readout{text-align:center;color:var(--muted);white-space:pre-wrap;margin-top:8px;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.95rem}.section{max-width:1100px;margin:0 auto;padding:56px 20px 8px}.section-title{margin:0 0 6px;font-size:1.8rem;font-weight:800}.section-sub{color:var(--muted);margin:0 0 24px}.subject-tabs{flex-wrap:wrap;gap:10px;margin-bottom:24px;display:flex}.subject-tab{border:2px solid var(--line);color:var(--text);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:10px 18px;font-size:1.05rem;font-weight:700;transition:border-color .15s,background .15s;display:flex}.subject-tab i{color:var(--brand)}.subject-tab:hover{border-color:#c7d2fe}.subject-tab[aria-selected=true]{border-color:var(--brand);background:#eef2ff}.subject-tab:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.tab-count{color:var(--muted);font-size:.8rem;font-weight:600}.tab-count.soon{color:#92400e;background:#fef3c7;border-radius:999px;padding:2px 8px}.coming-soon{text-align:center;border:2px dashed var(--line);background:#fff;border-radius:16px;padding:48px 20px}.coming-soon i{color:var(--brand);margin-bottom:12px;font-size:2.5rem}.coming-soon h3{font-size:1.4rem;font-weight:800}.coming-soon p{color:var(--muted);max-width:30em;margin:0 auto}.course-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.course-card{border:1px solid var(--line);border-top:5px solid var(--accent);background:#fff;border-radius:16px;padding:20px;transition:box-shadow .15s,transform .15s;box-shadow:0 2px 6px #0f172a0d}.course-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0f172a1a}.course-head{color:var(--text);align-items:center;gap:14px;text-decoration:none;display:flex}.course-head:hover{color:var(--text)}.course-icon{width:48px;height:48px;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, #fff);border-radius:12px;flex:none;place-items:center;font-size:1.3rem;display:grid}.course-name{font-size:1.3rem;font-weight:800;display:block}.course-count{color:var(--muted);font-size:.9rem;display:block}.course-go{color:var(--accent);margin-left:auto;transition:transform .15s}.course-head:hover .course-go{transform:translate(4px)}.topic-list{flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.topic-list a{color:var(--text);border:1px solid var(--line);background:#f1f5f9;border-radius:999px;padding:5px 12px;font-size:.88rem;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-block}.topic-list a:hover{background:var(--accent);border-color:var(--accent);color:#fff}.steps{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:20px 0 0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;border:1px solid var(--line);background:#fff;border-radius:16px;flex-direction:column;gap:6px;padding:20px;display:flex}.steps i{color:var(--brand);font-size:1.4rem}.steps strong:before{content:counter(step) ". ";color:var(--muted)}.steps span{color:var(--muted)}.more-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:20px;display:grid}.more-card{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:16px;align-items:center;gap:16px;padding:18px 20px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}a.more-card:hover{color:var(--text);border-color:var(--brand);box-shadow:0 8px 20px #667eea2e}.more-card i{color:var(--brand);text-align:center;width:32px;font-size:1.5rem}.more-card strong{display:block}.more-card span span{color:var(--muted);font-size:.9rem}.more-card.disabled{opacity:.6;cursor:default}.footer{text-align:center;color:var(--muted);padding:48px 20px 32px}.footer p{margin:0}a:focus-visible{outline-offset:3px;outline:3px solid #fde68a}main a:focus-visible{outline-color:var(--brand)}@media (width<=860px){.hero-grid{grid-template-columns:1fr;gap:32px}.course-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}:root{--brand:#667eea;--brand-dark:#4c3fb5;--text:#1e293b;--muted:#64748b;--line:#e2e8f0;--page-width:920px}body{color:var(--text);background:#f8fafc;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans JP,sans-serif}.note-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:32px 20px 80px}.note-header-inner{max-width:var(--page-width);margin:0 auto}.note-chips{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.note-chips a{color:#fff;background:#ffffff2e;border:1px solid #ffffff59;border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:600;text-decoration:none}.note-chips a:hover{color:#fff;background:#ffffff4d}.note-header h1{margin:0 0 12px;font-size:clamp(1.7rem,4vw,2.5rem);font-weight:800;line-height:1.2}.note-progress{opacity:.92;align-items:center;gap:12px;margin:0;display:flex}.progress-bar{background:#ffffff4d;border-radius:999px;width:120px;height:6px;overflow:hidden}.progress-bar span{border-radius:inherit;background:#fde68a;height:100%;display:block}.note-content{max-width:var(--page-width);border:1px solid var(--line);box-sizing:border-box;background:#fff;border-radius:20px;margin:-56px auto 0;padding:32px 40px 8px;position:relative;box-shadow:0 12px 32px #0f172a14}.note-content .note-title{display:none}.note-content .note-title+*{margin-top:0}.note-pager{max-width:var(--page-width);grid-template-columns:1fr 1fr;gap:16px;margin:24px auto 48px;padding:0;display:grid}.pager-card{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:16px;flex-direction:column;gap:4px;padding:18px 20px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.pager-next{text-align:right}a.pager-card:hover{color:var(--text);border-color:var(--brand);transform:translateY(-2px);box-shadow:0 8px 20px #667eea2e}.pager-label{color:var(--brand-dark);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:700}.pager-card strong{font-size:1.05rem}.pager-where{color:var(--muted);font-size:.85rem}.pager-empty{visibility:hidden}#sidebar{z-index:200;box-sizing:border-box;visibility:hidden;background:#fff;width:340px;max-width:88vw;height:100vh;padding:20px;transition:transform .25s,visibility .25s;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-105%);box-shadow:8px 0 30px #0f172a2e}#sidebar.open{visibility:visible;transform:none}.sidebar-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sidebar-head h2{margin:0;font-size:1.3rem;font-weight:800}.sidebar-close{border:1px solid var(--line);width:38px;height:38px;color:var(--text);background:#fff;border-radius:10px}.sidebar-close:hover{border-color:var(--brand);color:var(--brand-dark)}.sidebar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px;font-size:.75rem;font-weight:700;display:block}#sidebar select{border:1px solid var(--line);width:100%;color:var(--text);background:#f8fafc;border-radius:10px;padding:9px 12px;font-size:.95rem}#sidebar select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #667eea40}.note-list{counter-reset:note;margin:16px 0 0;padding:0;list-style:none}.note-list li{counter-increment:note}.note-list a{color:var(--text);border-radius:10px;gap:10px;padding:9px 10px;line-height:1.35;text-decoration:none;display:flex}.note-list a:before{content:counter(note);min-width:1.4em;color:var(--muted);font-variant-numeric:tabular-nums}.note-list a:hover{color:var(--brand-dark);background:#f1f5f9}.note-list a[aria-current=page]{color:var(--brand-dark);background:#eef2ff;font-weight:700}.note-list a[aria-current=page]:before{color:var(--brand-dark)}.sidebar-backdrop{z-index:150;background:#0f172a66;position:fixed;inset:0}.note-header a:focus-visible{outline-offset:2px;outline:3px solid #fde68a}.note-pager a:focus-visible,#sidebar a:focus-visible,#sidebar button:focus-visible{outline:3px solid var(--brand);outline-offset:2px}@media (width<=960px){.note-content,.note-pager{margin-left:16px;margin-right:16px}}@media (width<=600px){.note-header{padding:24px 16px 64px}.note-content{border-radius:16px;margin:-44px 8px 0;padding:20px 14px}.note-pager{gap:10px;margin:16px 8px 32px}.pager-card{padding:14px}.pager-card strong{font-size:.95rem}.pager-where{display:none}}@media (prefers-reduced-motion:reduce){#sidebar,.pager-card{transition:none}}.note-page{--blue:#2563eb;--indigo:#4f46e5;--grey:#64748b;--green:#16a34a;--red:#dc2626;--teal:#0d9488;--orange:#ea580c;--yellow:#ca8a04;--text:#1e293b;--muted:#475569;width:100%;color:var(--text);margin:0;padding:0 0 24px;font-size:1em;line-height:1.7}.note-page h2{color:var(--text);border:none;margin:0 0 .6em;padding:0;font-size:1.35em}.note-page h3{color:var(--text);border:none;margin:1em 0 .4em;padding:0;font-size:1.1em}.note-page p{margin:.5em 0}:where(.note-page) ol,:where(.note-page) ul{margin:8px 0;padding-left:1.6em}:where(.note-page) li{margin:6px 0;padding-left:4px}:where(.note-page) table{max-width:100%}:where(.note-page) code{color:var(--indigo);background:#eef2ff;border-radius:4px;padding:2px 6px;font-family:ui-monospace,Consolas,monospace}.note-title{text-align:center;color:var(--text);margin:24px 0 32px;font-size:2em;font-weight:700}.note-title[data-topic]:before{content:attr(data-topic);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.45em;display:block}.note-concept,.note-formula,.note-proof,.note-tip,.note-warning,.note-demo,.note-example,.note-takeaways{--accent:var(--grey);border:1px solid #e2e8f0;border-left:5px solid var(--accent);background:#fff;border-radius:10px;margin:28px 0;padding:40px 22px 18px;position:relative;overflow-x:auto;box-shadow:0 2px 8px #0f172a0f}.note-concept:before,.note-formula:before,.note-proof:before,.note-tip:before,.note-warning:before,.note-demo:before,.note-example:before,.note-takeaways:before{background:var(--accent);color:#fff;letter-spacing:.08em;border-radius:999px;padding:2px 10px;font-size:.72em;font-weight:700;position:absolute;top:8px;left:16px}.note-concept{--accent:var(--blue)}.note-concept:before{content:"CONCEPT"}.note-formula{--accent:var(--indigo);text-align:center;background:#eef2ff}.note-formula:before{content:"FORMULA"}.note-formula .formula-main{margin:8px 0 12px;font-size:1.35em;overflow:auto hidden}.note-formula .symbols{text-align:left;color:var(--muted);margin:0;display:inline-block}.note-proof{--accent:var(--grey);background:#f8fafc}.note-proof:before{content:"WHY IT WORKS"}.note-tip{--accent:var(--green);background:#f0fdf4}.note-tip:before{content:"TIP"}.note-warning{--accent:var(--red);background:#fef2f2}.note-warning:before{content:"WATCH OUT"}.note-demo{--accent:var(--teal);background:#f0fdfa}.note-demo:before{content:"TRY IT"}.note-example{--accent:var(--orange)}.note-example:before{content:"EXAMPLE"}.note-takeaways{--accent:var(--yellow);background:#fefce8}.note-takeaways:before{content:"REMEMBER"}.note-steps{margin:8px 0;padding-left:1.6em}.note-steps li{margin:6px 0;padding-left:4px}.note-steps li::marker{color:var(--accent);font-weight:700}.note-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:12px 0;display:grid}.note-grid>div{background:#ffffffb3;border:1px solid #e2e8f0;border-radius:8px;min-width:0;padding:12px 16px;overflow-x:auto}.note-grid h3{margin-top:0}.note-page table{border-collapse:collapse;margin:12px auto}.note-page th,.note-page td{text-align:center;border:1px solid #cbd5e1;padding:6px 12px}.note-page th{color:var(--text);background:#f1f5f9;font-weight:600}.note-example .question{font-weight:500}.note-example details{margin-top:10px}.note-example summary{cursor:pointer;background:var(--orange);color:#fff;border-radius:999px;padding:6px 16px;font-size:.9em;list-style:none;display:inline-block}.note-example summary::-webkit-details-marker{display:none}.note-example summary:after{content:" ▸"}.note-example details[open] summary:after{content:" ▾"}.note-example details[open] summary{margin-bottom:8px}.note-example .answer{background:#fff7ed;border-radius:6px;margin-top:8px;padding:6px 12px;font-weight:600}.note-demo .controls{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.note-demo label{align-items:center;gap:6px;display:flex}.note-demo input,.note-demo select{border:1px solid #94a3b8;border-radius:6px;width:90px;padding:6px 8px;font-size:1em}.note-demo select{width:auto}.note-demo textarea{border:1px solid #94a3b8;border-radius:6px;padding:6px 8px;font:1em monospace}.note-demo button{background:var(--teal);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:8px 18px;font-size:.95em}.note-demo button:hover{filter:brightness(1.1)}.note-demo canvas{background:#fff;border-radius:8px;width:auto;max-width:100%;height:auto;margin:12px auto;display:block}.note-demo .output{border:1px dashed var(--teal);background:#fff;border-radius:8px;min-height:1.5em;margin-top:10px;padding:10px 14px}.note-demo .output:empty{display:none}.note-demo td.hit{background:#fed7aa;font-weight:700}.note-demo input.wide{width:220px}.note-demo .choices button{color:var(--teal);border:2px solid var(--teal);background:#fff}.note-demo .choices button.active{background:var(--teal);color:#fff}.note-demo .output.table-text{white-space:pre;font-family:monospace;overflow-x:auto}.note-takeaways ul{margin:0;padding:0;list-style:none}.note-takeaways li{margin:6px 0;padding-left:1.6em;position:relative}.note-takeaways li:before{content:"✔";color:var(--yellow);position:absolute;left:0}@media (width<=600px){.note-title{font-size:1.6em}.note-concept,.note-formula,.note-proof,.note-tip,.note-warning,.note-demo,.note-example,.note-takeaways{padding:38px 14px 14px}}.note-content .practice-title{display:none}.note-content .practice-title+*{margin-top:0}.chip-practice{color:#78350f;background:#fde68a;border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:700}.chip-past{color:#fff;background:#db2777}.progress-reset{color:#fff;background:0 0;border:1px solid #ffffff80;border-radius:999px;padding:2px 10px;font-size:.8rem}.progress-reset:hover{background:#ffffff26}.practice-intro{color:var(--muted);margin:0 0 8px;font-size:1.05em}.practice-problem{--level:#2563eb;border:1px solid #e2e8f0;border-left:5px solid var(--level);background:#fff;border-radius:12px;margin:24px 0;padding:20px 22px 18px;position:relative;overflow-x:auto;box-shadow:0 2px 8px #0f172a0f}.practice-problem[data-level=basic]{--level:#16a34a}.practice-problem[data-level=standard]{--level:#2563eb}.practice-problem[data-level=challenge]{--level:#db2777}.practice-problem[data-level=exam]{--level:#6d28d9}.practice-problem h2{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 8px;font-size:1.2em;display:flex}.practice-problem h2:after{content:"Standard";text-transform:uppercase;letter-spacing:.06em;color:#fff;background:var(--level);border-radius:999px;padding:2px 10px;font-size:.65em;font-weight:700}.practice-problem[data-level=basic] h2:after{content:"Basic"}.practice-problem[data-level=challenge] h2:after{content:"Challenge"}.practice-problem[data-level=exam] h2:after{content:"Exam"}.exam-label{color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.72em;font-weight:600}.practice-problem .parts{margin:4px 0 8px;padding-left:0;list-style:none}.practice-problem .parts li{margin:4px 0}.practice-problem.is-solved{background:#f0fdf4;border-color:#bbf7d0 #bbf7d0 #bbf7d0 #16a34a}.practice-problem.is-review{border-color:#fde68a #fde68a #fde68a #ca8a04}.practice-problem.is-solved:after,.practice-problem.is-review:after{font-size:.8rem;font-weight:700;position:absolute;top:16px;right:18px}.practice-problem.is-solved:after{content:"✔ Solved";color:#15803d}.practice-problem.is-review:after{content:"↺ Review later";color:#a16207}.practice-problem .question{margin:0 0 6px;font-size:1.05em;font-weight:500}.practice-problem .related{color:var(--muted);margin:0 0 12px;font-size:.88em}.practice-problem .related a{color:#4c3fb5;font-weight:600;text-decoration:none}.practice-problem .related a:hover{text-decoration:underline}.practice-problem details{margin-top:10px}.practice-problem summary{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;padding:6px 16px;font-size:.92em;font-weight:600;list-style:none;display:inline-block}.practice-problem summary::-webkit-details-marker{display:none}.practice-problem summary:after{content:" ▸"}.practice-problem details[open]>summary:after{content:" ▾"}details.hint>summary{color:#a16207;background:#fff;border:2px solid #ca8a04}details.hint>summary:hover{background:#fefce8}details.hint[open]{padding:0 0 4px}details.hint>p{background:#fefce8;border-radius:8px;margin:10px 0 0;padding:10px 14px}details.solution>summary{color:#fff;background:#ea580c;border:2px solid #ea580c}details.solution>summary:hover{filter:brightness(1.08)}details.solution[open]>summary{margin-bottom:6px}details.solution .note-steps{--accent:#ea580c}.practice-problem summary:focus-visible{outline-offset:2px;outline:3px solid #667eea}.practice-problem .answer{background:#fff7ed;border-radius:6px;margin-top:8px;padding:6px 12px;font-weight:600}.practice-note{background:#eef2ff;border-radius:8px;margin:10px 0 0;padding:10px 14px;font-size:.95em}.practice-check{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:4px 0 6px;padding:10px 12px;display:flex}.practice-check label{font-size:.9em;font-weight:600}.practice-check input{border:1px solid #94a3b8;border-radius:8px;flex:180px;max-width:260px;padding:7px 10px;font-size:1em}.practice-check input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea40}.practice-check button{color:#fff;background:#4c3fb5;border:none;border-radius:999px;padding:7px 16px;font-weight:600}.practice-check button:hover{filter:brightness(1.1)}.check-result{font-size:.9em;font-weight:600}.practice-check.right{background:#f0fdf4;border-color:#86efac}.practice-check.right .check-result{color:#15803d}.practice-check.wrong{background:#fef2f2;border-color:#fca5a5}.practice-check.wrong .check-result{color:#b91c1c}.practice-mark{color:var(--muted);border-top:1px dashed #e2e8f0;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:12px;font-size:.9em;display:flex}.practice-mark[hidden]{display:none}.mark-btn{color:var(--text);background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:5px 14px;font-weight:600}.mark-btn:hover{border-color:#667eea}.mark-btn[data-state=solved][aria-pressed=true]{color:#fff;background:#16a34a;border-color:#16a34a}.mark-btn[data-state=review][aria-pressed=true]{color:#fff;background:#ca8a04;border-color:#ca8a04}.practice-links{max-width:var(--page-width);gap:12px;margin:24px auto 0;display:grid}.practice-link{color:var(--text);background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:1px solid #fde68a;border-radius:16px;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex}.practice-link:hover{color:var(--text);transform:translateY(-2px);box-shadow:0 8px 20px #ca8a042e}.practice-link>i{color:#ca8a04;font-size:1.6rem}.practice-link strong{display:block}.practice-link span span{color:var(--muted);font-size:.88rem}.practice-link .go{color:#a16207;white-space:nowrap;margin-left:auto;font-weight:700}.practice-more{color:var(--muted);margin:0;padding:0 20px;font-size:.92rem}.practice-more span{margin-right:4px}.practice-more a{color:#a16207;font-weight:600}@media (width<=960px){.practice-links{margin-left:16px;margin-right:16px}}@media (width<=600px){.practice-problem{padding:16px 14px 14px}.practice-problem.is-solved:after,.practice-problem.is-review:after{margin-top:8px;display:block;position:static}.practice-links{margin:16px 8px 0}}.hub-lead{opacity:.92;max-width:42em;margin:0;font-size:1.05rem}.hub-content{max-width:var(--page-width);box-sizing:content-box;margin:-56px auto 48px;padding:0 16px;position:relative}.hub-tabs{border:1px solid var(--line);background:#fff;border-radius:16px;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding:6px;display:flex;box-shadow:0 12px 32px #0f172a14}.hub-tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;flex:auto;padding:10px 14px;font-weight:700}.hub-tab:hover{color:var(--brand-dark);background:#f5f3ff}.hub-tab[aria-selected=true]{color:#fff;background:var(--brand-dark)}.hub-tab:focus-visible{outline-offset:2px;outline:3px solid #c4b5fd}.hub-panel{gap:20px;display:grid}.hub-panel[hidden]{display:none}.topic-card{border:1px solid var(--line);background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 12px 32px #0f172a14}.topic-head{border-bottom:1px solid var(--line);background:linear-gradient(90deg,#f5f3ff,#fff);align-items:center;gap:14px;padding:18px 20px;display:flex}.topic-num{color:#fff;background:var(--brand);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.topic-text{flex:1;min-width:0}.topic-text h2{margin:0;font-size:1.2rem;font-weight:800}.topic-meta{color:var(--muted);margin:2px 0 0;font-size:.9rem}.topic-solved{color:#15803d;font-weight:700}.topic-solved:before{content:"· ";color:var(--muted);font-weight:400}.topic-notes{border:1px solid var(--line);color:var(--brand-dark);background:#fff;border-radius:10px;flex:none;padding:8px 12px;font-size:.9rem;font-weight:700;text-decoration:none}.topic-notes:hover{border-color:var(--brand);color:var(--brand-dark)}.set-list{margin:0;padding:6px;list-style:none}.set-list li+li{border-top:1px solid var(--line)}.set-row{color:var(--text);border-radius:12px;align-items:center;gap:14px;padding:12px 14px;text-decoration:none;display:flex}.set-row:hover{color:var(--text);background:#f5f3ff}.set-num{width:32px;height:32px;color:var(--brand-dark);background:#ede9fe;border-radius:50%;flex:none;place-items:center;font-size:.9rem;font-weight:800;display:grid}.set-row.is-review .set-num{color:#be185d;background:#fce7f3}.set-text{flex:1;min-width:0}.set-text strong{font-size:1.02rem;display:block}.set-text>span{color:var(--muted);font-size:.88rem;display:block}.set-badge{color:#be185d;background:#fce7f3;border-radius:999px;margin-right:4px;padding:0 8px;font-size:.78rem;font-style:normal;font-weight:700;display:inline-block}.set-progress{color:var(--brand-dark);background:#ede9fe;border-radius:999px;flex:none;padding:4px 10px;font-size:.82rem;font-weight:700}.set-progress.is-done{color:#15803d;background:#dcfce7}.hub-past{border:1px solid var(--line);color:var(--text);background:#fff;border-left:5px solid #db2777;border-radius:16px;align-items:center;gap:16px;margin-top:28px;padding:20px;text-decoration:none;display:flex;box-shadow:0 12px 32px #0f172a14}.hub-past:hover{color:var(--text);background:#fdf2f8}.hub-past-icon{color:#db2777;background:#fce7f3;border-radius:12px;flex:none;place-items:center;width:48px;height:48px;font-size:1.3rem;display:grid}.hub-past-text{flex:1;min-width:0}.hub-past-text strong{font-size:1.15rem;display:block}.hub-past-text span{color:var(--muted);font-size:.92rem;display:block}.hub-past-go{color:#db2777;flex:none;font-weight:700}@media (width<=600px){.hub-content{padding:0 8px}.topic-head{gap:10px;padding:14px}.hub-past-go{display:none}.set-row{gap:10px;padding:10px 8px}}.past-lead{opacity:.92;max-width:42em;margin:0;font-size:1.05rem}.past-content{max-width:var(--page-width);box-sizing:content-box;margin:-56px auto 48px;padding:0 16px;position:relative}.past-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.past-card{--accent:var(--brand);border:1px solid var(--line);border-top:5px solid var(--accent);color:var(--text);background:#fff;border-radius:16px;flex-direction:column;gap:8px;padding:22px;text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex;box-shadow:0 12px 32px #0f172a14}.past-card:nth-child(2n){--accent:#db2777}.past-card:hover{color:var(--text);transform:translateY(-3px);box-shadow:0 16px 36px #0f172a1f}.past-icon{width:48px;height:48px;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, #fff);border-radius:12px;place-items:center;font-size:1.3rem;display:grid}.past-name{font-size:1.3rem;font-weight:800}.past-about{color:var(--muted);flex:1;font-size:.95rem}.past-foot{border-top:1px solid var(--line);color:var(--muted);align-items:center;padding-top:10px;font-size:.9rem;display:flex}.past-go{color:var(--accent);margin-left:auto;font-weight:700;transition:transform .15s}.past-card:hover .past-go{transform:translate(4px)}.past-empty{text-align:center;color:var(--muted);background:#fff;border-radius:16px;padding:24px}.paper-list{border:1px solid var(--line);background:#fff;border-radius:20px;margin:0;padding:8px;list-style:none;box-shadow:0 12px 32px #0f172a14}.paper-list li+li{border-top:1px solid var(--line)}.paper-row{color:var(--text);border-radius:12px;align-items:center;gap:16px;padding:16px;text-decoration:none;display:flex}.paper-row:hover{color:var(--text);background:#f5f3ff}.paper-num{width:36px;height:36px;color:var(--brand-dark);background:#ede9fe;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.paper-text{min-width:0}.paper-text strong{font-size:1.08rem;display:block}.paper-text span{color:var(--muted);font-size:.9rem;display:block}.paper-go{color:var(--brand-dark);flex:none;margin-left:auto;font-weight:700}@media (width<=600px){.past-content{padding:0 8px}.paper-row{gap:12px;padding:12px 8px}.paper-go{display:none}}.account-card{border:1px solid var(--line);max-width:420px;color:var(--text);background:#fff;border-radius:16px;margin:-56px auto 48px;padding:28px 24px;position:relative;box-shadow:0 12px 32px #0f172a14}.account-field{margin-bottom:16px;display:block}.account-field span{margin-bottom:6px;font-weight:600;display:block}.account-field small{color:var(--muted);margin-top:4px;display:block}.account-field input{border:1px solid #cbd5e1;border-radius:10px;width:100%;padding:10px 12px;font-size:1rem}.account-field input:focus{border-color:var(--brand);outline:3px solid #667eea59}.account-error{color:#b91c1c;background:#fef2f2;border-radius:10px;margin:0 0 16px;padding:10px 12px}.account-submit{background:var(--brand);color:#fff;border:0;border-radius:10px;width:100%;padding:12px;font-size:1rem;font-weight:700}.account-submit:hover{background:var(--brand-dark)}.account-submit:disabled{opacity:.6}.account-submit:focus-visible{outline:3px solid var(--brand-dark);outline-offset:2px}.account-switch{text-align:center;color:var(--muted);margin:16px 0 0}.bar-account{white-space:nowrap;margin-left:6px}.bar-account-email{color:var(--muted);font-weight:400;display:none}@media (width<=860px){.bar-account{height:42px;margin:0}.bar-account-email{display:inline}}.hub-lead a{color:#fff;font-weight:700;text-decoration:underline}.hub-lead a:hover{color:#fde68a}
