:root{--color-paper:#fffbfc;--color-paper-2:#fdf1f6;--color-paper-3:#f1e3eb;--color-ink:#2b2236;--color-ink-soft:#4b4159;--color-ink-muted:#7e7290;--color-ink-faint:#b3a8bf;--color-ink-deep:#231b2d;--color-ink-panel:#33293f;--color-seal:#ee5b93;--color-seal-soft:#ff9cc0;--color-rose:#ee5b93;--color-rose-soft:#ffe6ef;--color-lilac:#7d6cf2;--color-lilac-soft:#efecff;--color-mint:#22a67c;--color-mint-soft:#ddf6ec;--color-butter:#ffcf5c;--color-butter-soft:#fff5d6;--color-sky:#4f9ef0;--color-sky-soft:#e3f0ff;--color-gold:#d9930d;--color-gold-soft:#ffcf5c;--color-gold-text:#9a6500;--color-jade:var(--color-mint);--color-jade-soft:#6fd3ae;--color-indigo:var(--color-lilac);--color-marker:#ffc6dc;--color-marker-soft:#ffeef4;--color-rule:#f3e6ee;--color-margin:#ffd0e1;--color-bg-raised:#fff;--color-action-focus:var(--color-lilac);--font-sans:var(--font-nunito), "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;--font-serif:var(--font-sans);--font-mono:var(--font-nunito), "PingFang SC", "Noto Sans SC", ui-monospace, monospace;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--shadow-paper:0 1px 2px #2b22360a, 0 4px 14px -8px #ee5b9324;--shadow-lifted:0 2px 4px #2b22360a, 0 14px 32px -14px #ee5b9347;--shadow-deep:0 30px 70px -30px #50326e61;--shadow-hard:0 2px 4px #2b22360a, 0 16px 36px -16px #ee5b9357;--ease-paper:cubic-bezier(.22, .8, .24, 1)}body{background-color:var(--color-paper);font-family:var(--font-sans);color:var(--color-ink);background-image:none}::selection{background:var(--color-marker);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-lilac);outline-offset:3px}.text-display{font-family:var(--font-sans);letter-spacing:-.03em;font-weight:900;line-height:1.15}.text-headline{font-family:var(--font-sans);letter-spacing:-.02em;font-weight:800}.text-kicker{background:var(--color-rose-soft);font-family:var(--font-sans);letter-spacing:.04em;color:var(--color-rose);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .8rem;font-size:.75rem;font-weight:800;display:inline-flex}.text-kicker:before{content:"✦";font-size:.7rem}.accent-text{color:var(--color-rose);-webkit-text-fill-color:currentColor;background:0 0}.btn-primary,.btn-ghost{letter-spacing:.01em;transition:transform .16s var(--ease-paper), box-shadow .16s var(--ease-paper), background-color .16s, color .16s, border-color .16s;border-radius:999px;font-weight:800}.btn-primary{color:#fff;background:linear-gradient(135deg,#ff7aa8 0%,#ee5b93 55%,#e04c88 100%);border:0;box-shadow:inset 0 1px #ffffff59,0 10px 22px -10px #ee5b93cc}.btn-primary:hover{background:linear-gradient(135deg,#ff6f9f 0%,#e8508b 55%,#d8417f 100%);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff59,0 14px 26px -10px #ee5b93d9}.btn-primary:active{transform:translateY(1px)}.btn-ghost{background-color:var(--color-bg-raised);color:var(--color-ink);border:1px solid var(--color-paper-3);box-shadow:0 1px 2px #2b22360a}.btn-ghost:hover{background-color:var(--color-rose-soft);border-color:var(--color-seal-soft);color:var(--color-rose)}.surface-card{background-color:var(--color-bg-raised);border:1px solid var(--color-paper-3);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper)}a.surface-card,.surface-card--interactive{transition:transform .2s var(--ease-paper), box-shadow .2s var(--ease-paper), border-color .2s}a.surface-card:hover,.surface-card--interactive:hover{border-color:var(--color-seal-soft);box-shadow:var(--shadow-lifted);transform:translateY(-3px)}.surface-flat{background-color:var(--color-paper-2);border:1px solid var(--color-paper-3);border-radius:var(--radius-md)}.surface-deep{background-color:var(--color-ink);color:var(--color-paper);background-image:radial-gradient(40rem 20rem at 0 0,#ee5b9347,#0000 60%),radial-gradient(36rem 22rem at 100% 100%,#7d6cf252,#0000 60%)}.tag-badge{font-family:var(--font-sans);background-color:var(--color-paper-2);border:1px solid var(--color-paper-3);color:var(--color-ink-soft);border-radius:999px;font-size:.75rem;font-weight:700}.tag-badge--seal{background:var(--color-rose-soft);color:var(--color-rose);border-color:#ffcadd}.tag-badge--jade{background:var(--color-mint-soft);color:var(--color-mint);border-color:#b8ead6}.tag-badge--gold{background:var(--color-butter-soft);color:var(--color-gold-text);border-color:#ffe39b}.seal-stamp{color:#fff;opacity:1;background:linear-gradient(140deg,#ff8fb6 0%,#ee5b93 50%,#9d7cf5 100%);border:0;border-radius:34%;font-weight:900;transform:none;box-shadow:0 8px 18px -8px #ee5b93bf,inset 0 1px #fff6}.course-shell-link,.course-nav-link{color:var(--color-ink-soft);border-radius:999px;font-weight:700}.course-shell-link:hover,.course-shell-link:focus-visible,.course-nav-link:hover,.course-nav-link:focus-visible{background:var(--color-rose-soft);color:var(--color-rose)}.course-nav-link[aria-current=page]{color:var(--color-rose);background:var(--color-rose-soft);box-shadow:none}.option-card{background-color:var(--color-bg-raised);border-radius:var(--radius-md)}.option-card:hover{border-color:var(--color-seal-soft);background-color:#fffafc}.option-card--selected{border-color:var(--color-lilac);background-color:var(--color-lilac-soft)}.option-card--correct{border-color:var(--color-mint);background-color:var(--color-mint-soft)}.option-card--wrong{border-color:var(--color-rose);background-color:var(--color-rose-soft)}.progress-rail{background-color:var(--color-paper-3);border-radius:999px;height:8px}.progress-fill{background:linear-gradient(90deg,#ff8fb6,#ee5b93 60%,#9d7cf5);border-radius:999px}@layer components{.nb-wrap{max-width:74rem;margin-inline:auto;padding-inline:1rem}@media (min-width:640px){.nb-wrap{padding-inline:1.5rem}}.nb-ledger{background-color:var(--color-paper);background-image:radial-gradient(42rem 26rem at 8% -10%,#ffaac86b,#0000 62%),radial-gradient(38rem 26rem at 100% 0,#b0a0ff57,#0000 60%),radial-gradient(circle,#7d6cf221 1px,#0000 1.4px);background-size:auto,auto,22px 22px;position:relative}.nb-grid-paper{background-color:#faf7ff;background-image:radial-gradient(circle,#7d6cf21f 1px,#0000 1.4px);background-size:22px 22px}.nb-hl{background-image:linear-gradient(transparent 58%, var(--color-marker) 58%, var(--color-marker) 92%, transparent 92%);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.2em;margin:0 -.04em;padding:0 .12em}.nb-hl--full{background-image:linear-gradient(transparent 30%, var(--color-marker) 30%, var(--color-marker) 94%, transparent 94%)}.nb-circled{white-space:nowrap;color:inherit;display:inline-block;position:relative}.nb-circled>svg{pointer-events:none;width:119%;height:140%;color:var(--color-rose);position:absolute;inset:-22% -10% -18% -9%;overflow:visible}.nb-circled path{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:620;stroke-dashoffset:620px;animation:nb-draw .9s .35s var(--ease-paper) forwards}@keyframes nb-draw{to{stroke-dashoffset:0}}.nb-total{color:var(--color-rose);font-variant-numeric:tabular-nums;font-weight:900;display:inline-block}.nb-stamp{background:var(--color-rose-soft);color:var(--color-rose);font-family:var(--font-sans);white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.28rem .7rem;font-size:.75rem;font-weight:800;display:inline-flex}.nb-stamp:before{content:"";background:currentColor;border-radius:999px;width:.4rem;height:.4rem}.nb-stamp--jade{background:var(--color-mint-soft);color:var(--color-mint)}.nb-stamp--blue{background:var(--color-lilac-soft);color:var(--color-lilac)}.nb-stamp--butter{background:var(--color-butter-soft);color:var(--color-gold-text)}.nb-sticky{background:var(--color-butter-soft);border:1px solid #2b22360d;border-radius:22px;padding:1.25rem 1.35rem;position:relative;transform:rotate(-1.5deg);box-shadow:0 16px 30px -18px #78501e59}.nb-sticky--pink{background:var(--color-rose-soft);box-shadow:0 16px 30px -18px #ee5b9373}.nb-sticky--blue{background:var(--color-lilac-soft);box-shadow:0 16px 30px -18px #7d6cf273}.nb-sticky--mint{background:var(--color-mint-soft);box-shadow:0 16px 30px -18px #22a67c66}.nb-voucher{background:var(--color-bg-raised);border:1px solid var(--color-paper-3);min-width:0;box-shadow:var(--shadow-paper);transition:transform .22s var(--ease-paper), box-shadow .22s var(--ease-paper), border-color .22s;border-radius:24px;flex-direction:column;display:flex;position:relative;overflow:hidden}.nb-voucher:hover{border-color:color-mix(in srgb, var(--nb-accent,var(--color-rose)) 35%, white);box-shadow:0 22px 44px -24px color-mix(in srgb, var(--nb-accent,var(--color-rose)) 70%, transparent);transform:translateY(-4px)}.nb-voucher__head{color:var(--color-ink-faint);justify-content:space-between;align-items:center;gap:.75rem;padding:1.1rem 1.4rem 0;font-size:.75rem;font-weight:700;display:flex}.nb-voucher__row{border-bottom:1px dashed var(--color-paper-3);grid-template-columns:3.5rem minmax(0,1fr);display:grid}.nb-voucher__row>dt{color:var(--color-ink-faint);padding:.7rem 0 .7rem 1.4rem;font-size:.75rem;font-weight:700}.nb-voucher__row>dd{padding:.65rem 1.4rem .65rem .5rem}.nb-voucher__foot{margin-top:auto;padding:1rem 1.4rem 1.4rem}.nb-ledger-table{border-collapse:collapse;width:100%;font-size:.9rem}.nb-ledger-table td{border-bottom:1px dashed var(--color-paper-3);padding:.6rem 0}.nb-ledger-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.nb-ledger-table tr.nb-sum td{border-bottom:0;padding-top:.9rem;font-weight:900}.nb-note{font-family:var(--font-sans);color:var(--color-lilac);font-weight:700}.nb-ticker{background:linear-gradient(90deg, var(--color-rose-soft), var(--color-lilac-soft));overflow:hidden}.nb-ticker__track{width:max-content;animation:42s linear infinite nb-ticker;display:flex}.nb-ticker__item{color:var(--color-ink-soft);white-space:nowrap;align-items:center;gap:1.25rem;padding:.8rem 1.25rem;font-size:.95rem;font-weight:800;display:inline-flex}.nb-ticker__item:after{content:"✿";color:var(--color-seal-soft);font-size:.85rem}@keyframes nb-ticker{to{transform:translate(-50%)}}.nb-ink{background-color:var(--color-ink);color:var(--color-paper);background-image:radial-gradient(40rem 22rem at 0 0,#ee5b934d,#0000 60%),radial-gradient(40rem 24rem at 100% 100%,#7d6cf257,#0000 60%)}.nb-ink .text-kicker{color:#ffc6dc;background:#ffffff1f}.nb-num{background:var(--color-rose-soft);min-width:2rem;height:2rem;color:var(--color-rose);font-variant-numeric:tabular-nums;border-radius:12px;justify-content:center;align-items:center;padding:0 .5rem;font-size:.8rem;font-weight:900;display:inline-flex}.nb-icon{border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.25rem;line-height:1;display:inline-flex}.nb-rise{animation:nb-rise .56s var(--ease-paper) both}.nb-rise-2{animation-delay:90ms}.nb-rise-3{animation-delay:.18s}.nb-rise-4{animation-delay:.27s}@keyframes nb-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.nb-float{animation:6s ease-in-out infinite nb-float}@keyframes nb-float{50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.nb-rise,.nb-ticker__track,.nb-float{animation:none}.nb-circled path{stroke-dashoffset:0;animation:none}.nb-voucher:hover{transform:none}}.nb-btn-light,.nb-btn-outline-light{transition:transform .16s var(--ease-paper), box-shadow .16s var(--ease-paper), color .16s, border-color .16s, background-color .16s;border-radius:999px;align-items:center;gap:.5rem;font-weight:800;display:inline-flex}.nb-btn-light{color:var(--color-ink);background:#fff;border:0;box-shadow:0 12px 26px -12px #ff96becc}.nb-btn-light:hover{transform:translateY(-1px)}.nb-btn-outline-light{color:#fff;background:#ffffff0f;border:1px solid #ffffff59}.nb-btn-outline-light:hover{background:#ffffff1f;border-color:#ffc6dc}.nb-fold>summary{cursor:pointer;list-style:none}.nb-fold>summary::-webkit-details-marker{display:none}.nb-fold .nb-fold__chev{transition:transform .2s var(--ease-paper)}.nb-fold[open] .nb-fold__chev{transform:rotate(180deg)}}@media (prefers-reduced-motion:reduce){a.surface-card:hover,.btn-primary:hover{transform:none}}a.btn-primary,a.btn-primary:hover{color:#fff}a.nb-btn-light{color:var(--color-ink)}a.nb-btn-outline-light,a.nb-btn-outline-light:hover{color:#fff}
