.pp-root{--sc-ink:var(--color-ink-900);--sc-ink-2:var(--color-ink-600);--sc-muted:var(--color-ink-500);--sc-line:var(--color-ink-200);--sc-line-2:var(--color-ink-300);--sc-primary:var(--color-primary-500);--sc-primary-ink:var(--color-primary-600);--sc-primary-soft:var(--color-primary-50);--sc-gold:#f4c64e;--sc-gold-ink:#8a6508;--sc-gold-soft:#fcf1cf;--sc-on-gold:#0a2e57;--sc-good:#10b981;--sc-on-good:#ffffff;--sc-good-ink:#04774f;--sc-good-soft:#e1f7ed;--sc-bad:#e5484d;--sc-bad-ink:#b4232a;--sc-bad-soft:#fdeaea;--sc-warn:#f59e0b;--sc-warn-ink:#93560a;--sc-warn-soft:#fff2d6;--sc-app:#f3f7ff;--sc-surface:#ffffff;--sc-surface-2:#f1f5fc;--sc-paper:#fcfdff;--sc-grid:rgba(5,102,242,0.085);--sc-margin:rgba(229,72,77,0.35);--sc-scrim:rgba(15,31,74,0.32);color:var(--sc-ink)}.pp-root.theme-ocean,.theme-ocean .pp-root{--sc-primary:#2f86ff;--sc-primary-ink:#9cc4f8;--sc-primary-soft:#0f3168;--sc-gold-ink:#f7d069;--sc-gold-soft:#30270a;--sc-good:#34d399;--sc-on-good:#04281b;--sc-good-ink:#6ee7b7;--sc-good-soft:#0b3326;--sc-bad:#f87171;--sc-bad-ink:#fca5a5;--sc-bad-soft:#3a1519;--sc-warn:#fbbf24;--sc-warn-ink:#fcd34d;--sc-warn-soft:#33270a;--sc-app:#061433;--sc-surface:#0b1f45;--sc-surface-2:#0d2550;--sc-line:#17345f;--sc-line-2:#28497a;--sc-paper:#081a3d;--sc-grid:rgba(156,196,248,0.075);--sc-margin:rgba(248,113,113,0.32);--sc-scrim:rgba(1,6,18,0.6)}.pp-page{background-color:var(--sc-paper);background-image:linear-gradient(var(--pp-grid) 1px,transparent 1px),linear-gradient(90deg,var(--pp-grid) 1px,transparent 1px);background-size:20px 20px;--pp-grid:color-mix(in srgb,var(--sc-grid) 80%,transparent)}.pp-column{position:relative;padding-left:52px;padding-right:16px;padding-bottom:calc(var(--dock-h, env(safe-area-inset-bottom)) + 16px)}.pp-column:before{content:"";position:absolute;top:0;bottom:0;left:44px;width:1.5px;background:var(--sc-margin);pointer-events:none}.pp-figure{margin-left:-44px}.pp-past{opacity:.62}.pp-mark{position:absolute;left:-40px;width:32px;text-align:center;font-weight:800;font-size:18px;line-height:1.6}.pp-dock{background:color-mix(in srgb,var(--sc-surface) 94%,transparent);border-top:1px solid var(--sc-line);box-shadow:0 -10px 30px -18px rgba(0,0,0,.35);backdrop-filter:blur(6px)}.pp-key{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;min-width:44px;padding:6px 10px;border-radius:14px;border:1.5px solid var(--sc-line-2);background:var(--sc-paper);color:var(--sc-ink);font-weight:600;box-shadow:0 2px 0 var(--sc-line-2);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;transition:transform .08s,box-shadow .08s,background .15s,border-color .15s}.pp-key:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 0 var(--sc-line-2)}.pp-key[data-state=selected]{border-color:var(--sc-primary);background:var(--sc-primary-soft);box-shadow:0 2px 0 var(--sc-primary),0 0 0 2px color-mix(in srgb,var(--sc-primary) 35%,transparent)}.pp-key[data-state=good]{border-color:var(--sc-good);background:var(--sc-good-soft);box-shadow:0 2px 0 var(--sc-good)}.pp-key[data-state=bad]{border-color:var(--sc-bad);background:var(--sc-bad-soft);box-shadow:0 2px 0 var(--sc-bad)}.pp-key[data-state=off]{opacity:.45}.pp-key-letter{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:800;background:var(--sc-surface-2);color:var(--sc-ink-2)}.pp-key[data-layout=letters] .pp-key-letter{width:auto;height:auto;background:none;font-size:18px;color:inherit}.pp-key[data-multiple] .pp-key-letter{border-radius:6px;border:1.5px solid var(--sc-line-2)}.pp-key[data-state=selected] .pp-key-letter{color:var(--sc-primary)}.pp-key[data-multiple][data-state=selected] .pp-key-letter{background:var(--sc-primary);color:#fff;border-color:var(--sc-primary)}.pp-key-dot{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:999px;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}.pp-key-dot[data-tone=good]{background:var(--sc-good);color:var(--sc-on-good)}.pp-key-dot[data-tone=bad]{background:var(--sc-bad);color:#fff}.pp-check{min-height:48px;border-radius:16px;background:var(--sc-gold);color:var(--sc-on-gold);font-weight:800;box-shadow:0 3px 0 #c99a1f}.pp-check:disabled{background:var(--sc-surface-2);color:var(--sc-muted);box-shadow:none}.pp-check[aria-busy=true]{background:var(--sc-gold);color:var(--sc-on-gold);opacity:.8}.pp-check:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #c99a1f}.pp-written[data-state=selected] .pp-written-letter{background:var(--sc-primary);color:#fff}.pp-written-letter{display:inline-flex;align-items:center;justify-content:center;flex:none;width:24px;height:24px;border-radius:999px;font-size:12px;font-weight:800;border:1.5px solid var(--sc-line-2);color:var(--sc-ink-2)}.pp-navbar{background:color-mix(in srgb,var(--sc-paper) 88%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--sc-line)}.pp-page .jr-figure-paper{border-color:transparent;background-color:initial;background-image:none;padding-left:.25rem}.pp-page section[data-figure]{background:transparent;border-color:transparent;box-shadow:none}.pp-page.theme-ocean .jr-figure-paper,.theme-ocean .pp-page .jr-figure-paper{--fig-ink:#dbe4f5;--fig-text:#f1f5ff;--fig-muted:#9fb0cf;--fig-grid:rgba(255,255,255,0.08);--fig-axis:#6f80a3;--fig-blue:#6aa8ff;--fig-halo:var(--sc-paper,#081a3d)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [stroke="#374151"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [stroke="#374151"]{stroke:var(--fig-ink)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [fill="#374151"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [fill="#374151"]{fill:var(--fig-ink)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [fill="#0f172a"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [fill="#0f172a"]{fill:var(--fig-text)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [fill="#64748b"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [fill="#64748b"]{fill:var(--fig-muted)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [stroke="#eef2f7"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [stroke="#eef2f7"]{stroke:var(--fig-grid)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [stroke="#94a3b8"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [stroke="#94a3b8"]{stroke:var(--fig-axis)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [stroke="#2563eb"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [stroke="#2563eb"]{stroke:var(--fig-blue)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [fill="#2563eb"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [fill="#2563eb"]{fill:var(--fig-blue)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [stroke="#6366f1"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [stroke="#6366f1"]{stroke:#a5b4fc}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [fill="#6366f1"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [fill="#6366f1"]{fill:#a5b4fc}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [fill="rgba(99,102,241,0.08)"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [fill="rgba(99,102,241,0.08)"]{fill:rgba(150,175,255,.1)}.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [stroke="#fcfdff"],.pp-page.theme-ocean .jr-figure-paper svg:not(.lucide) [stroke="#fff"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [stroke="#fcfdff"],.theme-ocean .pp-page .jr-figure-paper svg:not(.lucide) [stroke="#fff"]{stroke:var(--fig-halo)}.pp-page.theme-ocean .jr-figure-paper [data-visual-toolbar] button,.pp-page.theme-ocean [data-figure-measure],.pp-page.theme-ocean [data-figure-slider],.pp-page.theme-ocean [data-figure-step],.theme-ocean .pp-page .jr-figure-paper [data-visual-toolbar] button,.theme-ocean .pp-page [data-figure-measure],.theme-ocean .pp-page [data-figure-slider],.theme-ocean .pp-page [data-figure-step]{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#dbe7ff}.pp-page.theme-ocean [data-figure-slider] *,.theme-ocean .pp-page [data-figure-slider] *{color:inherit}.pp-page .sc-entry-paper{background:none;border:0;box-shadow:none;padding-left:0}main:has(.pp-dock-fixed){padding-bottom:calc(var(--dock-h, 0px) + env(safe-area-inset-bottom) + 16px)}main:has(.pp-dock-fixed):has(.pp-column){padding-bottom:0}.pp-check[aria-busy=true]{opacity:1;transform:translateY(2px);box-shadow:0 1px 0 #c99a1f}.pp-written{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.pp-sheet-card{position:relative;--pp-pen:#d4262c;background-color:var(--sc-paper);background-image:linear-gradient(var(--sc-grid) 1px,transparent 1px),linear-gradient(90deg,var(--sc-grid) 1px,transparent 1px);background-size:20px 20px;background-position:-1px -1px}.theme-ocean .pp-sheet-card{--pp-pen:#ff7a7a}.pp-sheet-card:before{content:"";position:absolute;top:0;bottom:0;left:14px;width:1.5px;background:var(--sc-margin);pointer-events:none}:root{--pp-font-hand:var(--font-hand,"Caveat"),"Caveat","Bradley Hand","Segoe Print","Comic Sans MS",cursive;--pp-font-prof:var(--font-rounded,"Comfortaa"),"Comfortaa","Nunito",ui-rounded,system-ui,sans-serif}.pp-hand-grade{display:inline-flex;align-items:baseline;font-family:var(--pp-font-hand);font-weight:700;font-size:42px;line-height:.9;color:var(--pp-pen,#d4262c);transform:rotate(-8deg);transform-origin:center;padding:2px 6px 6px;background-image:linear-gradient(var(--pp-pen,#d4262c),var(--pp-pen,#d4262c));background-size:88% 2.5px;background-position:30% 100%;background-repeat:no-repeat}.pp-hand-grade-pct{font-size:26px;margin-left:1px}.pp-final-grade,.pp-teacher-note{--pp-pen:#d4262c;color:var(--sc-ink,inherit);font-family:var(--pp-font-prof);margin:10px 0 6px}.theme-ocean .pp-final-grade,.theme-ocean .pp-teacher-note{--pp-pen:#ff7a7a}.pp-hand-grade{--pp-pen:#d4262c}.pp-final-grade[data-ink=good],.pp-hand-grade[data-ink=good],.pp-teacher-note[data-ink=good]{--pp-pen:#12804b}.pp-final-grade[data-ink=mid],.pp-hand-grade[data-ink=mid],.pp-teacher-note[data-ink=mid]{--pp-pen:#d9700b}.theme-ocean .pp-final-grade[data-ink=good],.theme-ocean .pp-hand-grade[data-ink=good],.theme-ocean .pp-teacher-note[data-ink=good]{--pp-pen:#6ee7b7}.theme-ocean .pp-final-grade[data-ink=mid],.theme-ocean .pp-hand-grade[data-ink=mid],.theme-ocean .pp-teacher-note[data-ink=mid]{--pp-pen:#fdba74}.theme-ocean .pp-hand-grade[data-ink=bad]{--pp-pen:#ff7a7a}.pp-teacher-note{animation:pp-ink-in .42s ease-out both}.pp-teacher-note-past{animation:none;opacity:.85}@keyframes pp-ink-in{0%{opacity:0;transform:translateY(4px) rotate(-1deg)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.pp-teacher-note{animation:none}}.pp-teacher-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;transform:rotate(-2deg);transform-origin:left center}.pp-teacher-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:2.5px solid var(--pp-pen);border-radius:48% 52% 45% 55%;font-size:28px}.pp-teacher-mark,.pp-teacher-remark{color:var(--pp-pen);font-family:var(--pp-font-hand);font-weight:700;line-height:1}.pp-teacher-remark{font-size:30px}.pp-teacher-gain{font-size:17px;font-weight:700;line-height:1;padding:0 4px 2px;background-image:linear-gradient(currentColor,currentColor);background-size:92% 2px;background-position:30% 100%;background-repeat:no-repeat}.pp-teacher-note-past .pp-teacher-mark{width:30px;height:30px;font-size:20px}.pp-teacher-note-past .pp-teacher-remark{font-size:22px}.pp-teacher-note-past .pp-teacher-gain{font-size:16px}.pp-teacher-small{font-size:14px;line-height:1.2;margin-top:2px}.pp-teacher-detail{margin-top:6px;font-size:15px;line-height:1.3}.pp-teacher-detail .katex{font-size:.82em}.pp-teacher-label{font-weight:700;margin-right:6px;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.pp-teacher-detail p{display:inline}.pp-teacher-extra{margin-top:8px;font-family:var(--font-sans,inherit);color:var(--sc-ink,inherit)}.pp-final-grade-detail{margin-top:6px;font-weight:500}.pp-final-grade{margin:18px 0 10px}.pp-final-grade-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.pp-final-grade-value{display:inline-flex;align-items:baseline;padding:6px 16px 8px;border:3px solid var(--pp-pen);border-radius:50% 46% 52% 48%/55% 50% 50% 45%;color:var(--pp-pen);font-family:var(--pp-font-hand);font-size:54px;font-weight:700;line-height:.9;transform:rotate(-6deg);animation:pp-stamp-in .52s cubic-bezier(.2,.9,.3,1.25) both}.pp-score-stamp .pp-final-grade-value{font-size:64px;border-width:4px}.pp-score-stamp .pp-final-grade-remark{animation:pp-ink-in .42s ease-out .42s both}@keyframes pp-stamp-in{0%{opacity:0;transform:scale(2.6) rotate(-18deg)}55%{opacity:1;transform:scale(.9) rotate(-5deg)}75%{transform:scale(1.06) rotate(-7deg)}to{opacity:1;transform:scale(1) rotate(-6deg)}}@media (prefers-reduced-motion:reduce){.pp-final-grade-value,.pp-score-stamp .pp-final-grade-remark{animation:none}}.pp-final-grade-on{font-family:var(--pp-font-hand);font-size:30px;margin-left:2px}.pp-final-grade-remark{color:var(--pp-pen);font-family:var(--pp-font-hand);font-size:32px;font-weight:700;line-height:1.05;transform:rotate(-2deg)}.pp-teacher-waiting{font-family:var(--pp-font-prof);font-size:15px;font-weight:700;line-height:1.3;color:var(--sc-muted,#6b7a93);margin:6px 0 4px;transform:rotate(-1deg);transform-origin:left center;animation:pp-waiting-blink 1.6s ease-in-out infinite}@keyframes pp-waiting-blink{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.pp-teacher-waiting{animation:none}}.pp-hand-ranking{--pp-pen:#d4262c;font-family:var(--pp-font-prof);color:var(--sc-ink,inherit);margin:16px 0 8px}.theme-ocean .pp-hand-ranking{--pp-pen:#ff7a7a}.pp-hand-ranking-title{font-size:19px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;margin-bottom:4px}.pp-hand-ranking-line{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:500;line-height:1.35;padding:3px 8px}.pp-hand-ranking-rank{min-width:1.4em;font-weight:700}.pp-hand-ranking-name{flex:1;min-width:0;line-height:1.15;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.pp-hand-ranking-score{font-weight:700;white-space:nowrap}.pp-hand-ranking-me{font-weight:700}