.student-tasks-page{overflow-x:hidden}.student-growth-challenge-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;min-width:0;display:grid}.student-growth-challenge-card{border:1px solid var(--student-portal-line,var(--line));background:var(--student-portal-surface,var(--panel));min-width:0;color:var(--student-portal-ink,var(--text));overflow-wrap:anywhere;border-radius:12px;align-content:start;gap:14px;padding:16px;display:grid}.student-growth-challenge-card header{gap:8px;display:grid}.student-growth-challenge-card h3,.student-growth-challenge-card p,.student-growth-challenge-card dl,.student-growth-challenge-card dd{margin:0}.student-growth-challenge-card h3{text-wrap:balance}.student-growth-challenge-card header p{color:var(--student-portal-muted,var(--muted));text-wrap:pretty;line-height:1.6}.student-growth-challenge-state{color:#4d2d7e;background:#f2ecf7;border-radius:999px;width:fit-content;padding:4px 8px;font-size:12px;font-weight:800}.student-growth-challenge-card.is-arrived{border-color:#a9a0c7}.student-growth-challenge-card.is-conquered{background:#f4faf6;border-color:#a7cbb4}.student-growth-challenge-card.is-needs_repair{background:#fffaf0;border-color:#c8a365}.student-growth-challenge-card.is-overdue{background:#fff7f8;border-color:#d7a1a6}.student-growth-challenge-facts{gap:8px;display:grid}.student-growth-challenge-facts div{border-top:1px solid var(--student-portal-line,var(--line));gap:2px;padding-top:8px;display:grid}.student-growth-challenge-facts dt{color:var(--student-portal-muted,var(--muted));font-size:12px;font-weight:700}.student-growth-challenge-facts dd{font-variant-numeric:tabular-nums;font-weight:700}.student-growth-challenge-facts .is-reward-error,.student-growth-challenge-review,.student-growth-challenge-retry{color:#6b4a08}.student-growth-challenge-review,.student-growth-challenge-retry{border-left:3px solid #c8a365;padding-left:10px;line-height:1.5}.student-growth-challenge-form{gap:8px;display:grid}.student-growth-challenge-form label{font-weight:800}.student-growth-challenge-form label span{color:var(--student-portal-muted,var(--muted));font-size:12px;font-weight:600}.student-growth-challenge-form textarea{resize:vertical;width:100%;min-height:88px}.student-growth-challenge-form textarea:focus-visible{outline-offset:2px;outline:3px solid #4d2d7e57}.student-growth-challenge-card.is-submission-feedback{animation:.35s cubic-bezier(.16,1,.3,1) student-task-arrival}.student-growth-challenge-card.is-newly-conquered{animation:.6s cubic-bezier(.16,1,.3,1) student-task-conquered}.student-adventure-map{min-width:0;color:var(--student-portal-ink,var(--text));gap:14px;display:grid}.student-adventure-term-summary{justify-content:space-between;align-items:flex-end;gap:12px;min-width:0;padding:4px;display:flex}.student-adventure-term-summary p,.student-adventure-term-summary strong,.student-adventure-term-summary span{margin:0}.student-adventure-term-summary p{color:var(--student-portal-purple-dark,#4d2d7e);font-weight:800}.student-adventure-term-summary strong,.student-adventure-term-summary span{color:var(--student-portal-muted,var(--muted));font-size:13px}.student-week-route{overscroll-behavior-inline:contain;gap:8px;min-width:0;padding:8px 4px 14px;display:flex;overflow-x:auto}.student-week-island{border:1px solid var(--student-portal-line,var(--line));background:var(--student-portal-surface,var(--panel));min-width:72px;min-height:58px;color:var(--student-portal-muted,var(--muted));cursor:pointer;font:inherit;text-align:left;border-radius:10px;flex:0 0 96px;align-content:center;gap:2px;padding:8px 10px;transition:border-color .16s ease-out,background-color .16s ease-out,color .16s ease-out,transform .16s ease-out;display:grid}.student-week-island:hover{border-color:var(--student-portal-purple,var(--accent));color:var(--student-portal-purple-dark,var(--accent-strong));transform:translateY(-1px)}.student-week-island span{font-weight:800}.student-week-island small,.student-week-island em{font-variant-numeric:tabular-nums;font-size:12px;font-style:normal}.student-week-island em{color:var(--danger)}.portal-student .student-tasks-page .student-week-island[aria-pressed=true]{color:#4d2d7e;background:#f2ecf7;border:2px solid #4d2d7e}.portal-student .student-tasks-page .student-week-island[aria-pressed=true] em{color:#7f1d26}.portal-student .student-tasks-page .student-week-island[aria-pressed=true]:hover{color:#4d2d7e;background:#f2ecf7;border-color:#4d2d7e}.portal-student .student-tasks-page .student-week-island[aria-current=step]{border-color:var(--student-portal-purple-dark,#4d2d7e);color:#fff;background:#4d2d7e}.portal-student .student-tasks-page .student-week-island[aria-current=step] small,.portal-student .student-tasks-page .student-week-island[aria-current=step] em{color:#fff}.portal-student .student-tasks-page .student-week-island[aria-current=step]:hover{color:#fff;background:#4d2d7e;border-color:#4d2d7e}.portal-student .student-tasks-page .student-week-island[aria-current=step]:after{content:"本周";color:#4d2d7e;background:#fff;border-radius:999px;width:fit-content;padding:2px 6px;font-size:11px;font-weight:800;line-height:1.2}.portal-student .student-tasks-page .student-week-island[aria-current=step][aria-pressed=true]{color:#fff;background:#4d2d7e;border-color:#4d2d7e;box-shadow:inset 0 0 0 2px #fff}.student-dimension-tabs{border-bottom:1px solid var(--student-portal-line,var(--line));flex-wrap:wrap;gap:8px;min-width:0;padding-bottom:10px;display:flex}.student-dimension-tabs button{min-width:76px;min-height:44px;color:var(--student-portal-purple-dark,#4d2d7e);cursor:pointer;font:inherit;background:#f5f1f9;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:800;transition:border-color .16s ease-out,background-color .16s ease-out,color .16s ease-out;display:inline-flex}.student-dimension-tabs button small{font-variant-numeric:tabular-nums;font-size:12px}.student-dimension-tabs button:hover{border-color:var(--student-portal-purple,#7047a7);background:#eee6f6}.student-dimension-tabs button[aria-selected=true]{border-color:var(--student-portal-purple-dark,#4d2d7e);background:var(--student-portal-purple-dark,#4d2d7e);color:#fff}.student-adventure-state-guide{color:var(--student-portal-muted,var(--muted));margin:0;font-size:14px}.student-adventure-workspace{grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);align-items:start;gap:14px;min-width:0;display:grid}.student-adventure-side-rail{align-content:start;gap:14px;min-width:0;display:grid}.student-week-challenge-badge{color:#4d2d7e;background:#eee6f6;border-radius:999px;width:fit-content;padding:2px 6px;font-size:11px;font-weight:800;line-height:1.2}.student-adventure-routes,.student-adventure-routes [role=tabpanel]{min-width:0}.student-adventure-routes [role=tabpanel]:focus-visible{outline-offset:3px;outline:3px solid #4d2d7e57}.student-adventure-task-nodes{gap:8px;min-width:0;display:grid}.student-adventure-task-node{border:1px solid var(--student-portal-line,var(--line));background:var(--student-portal-surface,var(--panel));min-width:0;min-height:52px;color:var(--student-portal-ink,var(--text));cursor:pointer;font:inherit;text-align:left;border-radius:10px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;transition:border-color .16s ease-out,background-color .16s ease-out,transform .16s ease-out;display:grid}.student-adventure-task-node:before{border:1px solid;border-radius:50%;place-items:center;width:24px;height:24px;font-size:14px;font-weight:900;line-height:1;display:grid}.student-adventure-task-node strong{overflow-wrap:anywhere;min-width:0}.student-adventure-task-node span{color:var(--student-portal-muted,var(--muted));white-space:nowrap;font-size:13px;font-weight:700}.student-adventure-task-node:hover{border-color:var(--student-portal-purple,#7047a7);background:#fbf9fd;transform:translateY(-1px)}.student-adventure-task-node.is-submission-feedback,.student-task-node.is-submission-feedback{animation:.35s cubic-bezier(.16,1,.3,1) student-task-arrival}.student-adventure-task-node.is-newly-conquered,.student-task-node.is-newly-conquered{animation:.6s cubic-bezier(.16,1,.3,1) student-task-conquered}.portal-student .student-tasks-page .student-adventure-task-node[aria-pressed=true]{color:#4d2d7e;background:#f2ecf7;border-color:#4d2d7e}.portal-student .student-tasks-page .student-adventure-task-node[aria-pressed=true] span{color:#4d2d7e}.portal-student .student-tasks-page .student-adventure-task-node[aria-pressed=true]:hover{color:#4d2d7e;background:#f2ecf7;border-color:#4d2d7e}.student-adventure-task-node.not_started:before{content:"○"}.student-adventure-task-node.available:before{content:"→"}.student-adventure-task-node.arrived:before{content:"◆"}.student-adventure-task-node.conquered:before{content:"✓"}.student-adventure-task-node.needs_repair:before{content:"↻"}.student-adventure-task-node.overdue:before{content:"!"}.student-adventure-task-node.closed:before{content:"×"}.student-adventure-task-node.conquered{background:#f4faf6;border-color:#a7cbb4}.student-adventure-task-node.needs_repair{background:#fffaf0;border-color:#c8a365}.student-adventure-task-node.overdue{background:#fff7f8;border-color:#d7a1a6}.student-adventure-task-node.closed,.student-adventure-task-node.not_started{color:var(--student-portal-muted,var(--muted));background:#faf9fb}.student-adventure-task-detail{border:1px solid var(--student-portal-line,var(--line));background:var(--student-portal-surface,var(--panel));border-radius:12px;gap:14px;min-width:0;padding:16px;display:grid}.student-adventure-task-detail header,.student-adventure-task-detail dl{gap:8px;min-width:0;margin:0;display:grid}.student-adventure-task-detail header>span{width:fit-content;color:var(--student-portal-purple-dark,#4d2d7e);background:#f2ecf7;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.student-adventure-task-detail h3,.student-adventure-task-detail p,.student-adventure-task-detail dd{overflow-wrap:anywhere;margin:0}.student-adventure-task-detail h3{text-wrap:balance}.student-adventure-task-detail header p{max-width:65ch;color:var(--student-portal-muted,var(--muted));text-wrap:pretty;line-height:1.6}.student-adventure-task-detail dl div{border-top:1px solid var(--student-portal-line,var(--line));gap:2px;padding-top:8px;display:grid}.student-adventure-task-detail dt{color:var(--student-portal-muted,var(--muted));font-size:12px;font-weight:700}.student-adventure-task-detail dd{font-variant-numeric:tabular-nums;font-weight:700}.student-adventure-rewards{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.student-adventure-rewards li{color:var(--student-portal-purple-dark,#4d2d7e);font-variant-numeric:tabular-nums;background:#f5f1f9;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.student-adventure-reward-error,.student-adventure-unmapped-banner{color:#6b4a08;background:#fffaf0;border:1px solid #d6b66f;border-radius:8px;margin:0;padding:10px 12px}.student-adventure-pack{gap:14px;min-width:0;display:grid}.student-week-island:focus-visible,.student-dimension-tabs button:focus-visible,.student-adventure-task-node:focus-visible{outline-offset:3px;outline:3px solid #4d2d7e57}.student-task-center .button,.student-task-error .button{min-height:44px}.student-task-loading,.student-task-error{width:min(1180px,100% - 2rem);color:var(--student-portal-ink,var(--text));margin:1.5rem auto 3rem}.student-task-loading{gap:14px;display:grid}.student-task-loading>p{color:var(--student-portal-muted,var(--muted));margin:0}.student-task-loading h1,.student-task-error h1{color:var(--student-portal-purple-dark,#4d2d7e);text-wrap:balance;margin:0}.student-task-loading .student-week-island,.student-task-loading .student-dimension-tabs span,.student-task-loading .student-adventure-task-nodes span,.student-task-loading .student-adventure-task-detail span,.student-task-loading .student-growth-challenge-card span{background:#eee9f3;border-radius:8px;animation:1.2s ease-in-out infinite alternate student-adventure-pulse}.student-task-loading .student-growth-challenge-card span{height:18px;animation:1.2s ease-in-out infinite alternate student-adventure-pulse;display:block}.student-task-loading .student-growth-challenge-card span:first-child{width:42%;height:24px}.student-task-loading .student-growth-challenge-card span:nth-child(2){width:76%}.student-task-loading .student-week-island{border:0}.student-task-loading .student-dimension-tabs span{width:76px;height:44px}.student-task-loading .student-adventure-task-nodes span{height:52px}.student-task-loading .student-adventure-task-detail span{height:18px;display:block}.student-task-loading .student-adventure-task-detail span:first-child{width:44%;height:24px}.student-task-error{background:#fff7f8;border:1px solid #d7a1a6;border-radius:12px;justify-items:start;gap:12px;padding:20px;display:grid}.student-task-error p{color:#6f3238;max-width:65ch;margin:0}@keyframes student-adventure-pulse{0%{opacity:.56}to{opacity:1}}@keyframes student-task-arrival{0%{opacity:.86;filter:saturate(.9);transform:scale(.97);box-shadow:0 0 #4d2d7e00}55%{opacity:1;filter:saturate(1.12);transform:scale(1.015);box-shadow:0 0 0 3px #7047a729}to{opacity:1;filter:none;transform:scale(1);box-shadow:0 0 #4d2d7e00}}@keyframes student-task-conquered{0%{opacity:.82;filter:saturate(.82);transform:scale(.965);box-shadow:0 0 #44845d00}48%{opacity:1;filter:saturate(1.2)brightness(1.03);transform:scale(1.018);box-shadow:0 0 0 4px #44845d29}to{opacity:1;filter:none;transform:scale(1);box-shadow:0 0 #44845d00}}@media (max-width:800px){.student-adventure-workspace{grid-template-columns:minmax(0,1fr)}.student-adventure-routes{order:1}.student-adventure-task-detail,.student-adventure-side-rail{order:2}.student-adventure-pack,.student-task-side-grid{grid-template-columns:minmax(0,1fr)}.student-adventure-task-node{grid-template-columns:24px minmax(0,1fr)}.student-adventure-task-node span{white-space:normal;grid-column:2}}@media (max-width:900px){.student-growth-challenge-grid{grid-template-columns:1fr}}@media (max-width:480px){.student-dimension-tabs button{flex:calc(50% - 8px)}.student-task-loading,.student-task-error{width:min(100% - 1rem,1180px);margin-top:.75rem}}@media (prefers-reduced-motion:reduce){.student-growth-challenge-card.is-submission-feedback,.student-growth-challenge-card.is-newly-conquered,.student-adventure-task-node.is-submission-feedback,.student-adventure-task-node.is-newly-conquered,.student-task-node.is-submission-feedback,.student-task-node.is-newly-conquered{transition:none;animation:none}.student-adventure-map *,.student-adventure-map :before,.student-adventure-map :after,.student-task-loading *,.student-task-loading :before,.student-task-loading :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.student-task-completed,.student-adventure-overview-section,.student-semester-adventure{gap:16px;display:grid}.student-task-completed{background:#fff;border:1px solid #b7d2ea;border-radius:14px;padding:20px}.student-adventure-overview-section>.student-challenge-panel{box-shadow:none}.student-adventure-view-switch{flex-wrap:wrap;gap:8px;display:flex}.student-adventure-view-switch .button{min-width:72px;min-height:44px}.student-adventure-view-switch .button[aria-pressed=true]{color:#fff;background:#4d2d7e;border-color:#4d2d7e}.student-challenge-deficit{color:#936000;margin:4px 0 0;font-weight:700}.portal-student .student-tasks-page.student-page-frame>.student-page-content{background-color:#eef5ff;background-image:linear-gradient(135deg,#fafdffe6,#e0f0ffc2 55%,#fff4d2b8),url(/assets/stage/student-stage-starlight.webp);background-position:top;background-size:cover;border-color:#9eb9e7}.portal-student .student-tasks-page .student-task-center>.panel,.portal-student .student-tasks-page .student-adventure-overview-section,.portal-student .student-tasks-page .student-adventure-pack,.portal-student .student-tasks-page .student-semester-adventure,.portal-student .student-tasks-page .student-task-completed{background-color:#f7fbff;background-image:linear-gradient(135deg,#fbfdfff0,#e1f1ffcc),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border:1px solid #b7d2ea;border-radius:14px;padding:20px}.portal-student .student-tasks-page .student-task-completed{background-color:#f2fbf8;background-image:linear-gradient(135deg,#f9fffdf2,#daf7efd1),url(/assets/stage/student-stage-starlight.webp);border-color:#9fd8cc}.portal-student .student-tasks-page .student-adventure-overview-section{background-color:#fffaf0;background-image:linear-gradient(135deg,#fffdf7f2,#fff1c4cc),url(/assets/stage/student-stage-starlight.webp);border-color:#dec57e}.portal-student .student-tasks-page .student-adventure-pack{background-color:#faf7ff;background-image:linear-gradient(135deg,#fcfafff2,#eee8ffd1),url(/assets/stage/student-stage-starlight.webp);border-color:#cbbce8}.portal-student .student-tasks-page .student-task-side-grid>.panel:first-child{background-color:#fffaf0;background-image:linear-gradient(135deg,#fffdf7f5,#fff2cad6),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border-color:#dec57e}.portal-student .student-tasks-page .student-task-side-grid>.panel:last-child,.portal-student .student-tasks-page .student-page-state{background-color:#faf7ff;background-image:linear-gradient(135deg,#fcfafff5,#eee8ffd6),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border-color:#cbbce8}.portal-student .student-tasks-page .student-exam-card{background-color:#f4f8ff;background-image:linear-gradient(135deg,#fafdfff5,#e1edffd6),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border-color:#a9c3ee}.portal-student .student-tasks-page .student-growth-challenge-card,.portal-student .student-tasks-page .student-week-island,.portal-student .student-tasks-page .student-adventure-task-node,.portal-student .student-tasks-page .student-adventure-task-detail{background-color:#f3f8ff;background-image:linear-gradient(135deg,#fafdfff5,#e1eeffd6),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border-color:#a9c3ee}.portal-student .student-tasks-page .student-growth-challenge-card:nth-child(3n+2),.portal-student .student-tasks-page .student-week-island:nth-child(3n+2),.portal-student .student-tasks-page .student-adventure-task-node:nth-child(3n+2){background-color:#fff8e7;background-image:linear-gradient(135deg,#fffdf7f5,#fff1c4d1),url(/assets/stage/student-stage-starlight.webp);border-color:#dec57e}.portal-student .student-tasks-page .student-growth-challenge-card:nth-child(3n),.portal-student .student-tasks-page .student-week-island:nth-child(3n),.portal-student .student-tasks-page .student-adventure-task-node:nth-child(3n){background-color:#f8f4ff;background-image:linear-gradient(135deg,#fcfafff5,#eee8ffd6),url(/assets/stage/student-stage-starlight.webp);border-color:#cbbce8}
.student-title-gallery{background:linear-gradient(145deg,#f8fbff 0%,#edf3ff 58%,#f4efff 100%);gap:20px;display:grid;overflow:hidden}.student-title-gallery-heading,.student-title-gallery-footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.student-title-gallery-heading h2,.student-title-gallery-heading p,.student-title-gallery-footer p{margin:0}.student-title-gallery-heading p,.student-title-gallery-footer p,.student-title-gallery-empty{color:#425d88;line-height:1.6}.student-title-gallery-count{color:#64470c;background:#fff2c8;border-radius:999px;flex:none;padding:6px 10px;font-size:13px;font-weight:800}.student-title-gallery-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.student-title-gallery-item{text-align:center;background:#ffffffc2;border-radius:14px;justify-items:center;gap:8px;min-width:0;padding:12px 8px 10px;display:grid;position:relative;box-shadow:0 3px 8px #2339701f}.student-title-gallery-image{filter:drop-shadow(0 4px 5px #1c2d5e2e);width:min(100%,132px);height:auto}.student-title-gallery-item div{gap:2px;display:grid}.student-title-gallery-item strong{color:#142b59;font-family:Noto Serif SC,Songti SC,STSong,serif;font-size:16px;font-weight:900}.student-title-gallery-item span,.student-title-gallery-item small{color:#4b6190;font-size:12px;font-weight:800}.student-title-gallery-item small{background:#e7efff;border-radius:999px;padding:4px 8px}.student-title-gallery-footer{border-top:1px solid #c8d7ee;padding-top:16px}@media (max-width:760px){.student-title-gallery-list{grid-template-columns:repeat(2,minmax(0,1fr))}.student-title-gallery-heading,.student-title-gallery-footer{flex-direction:column;align-items:flex-start}.student-title-gallery-footer .button{width:100%;min-height:48px}}@media (prefers-reduced-motion:reduce){.student-title-gallery-image{animation:none!important}}
.student-weekly-recap-card,.student-weekly-recap-history-letter,.student-weekly-recap-dialog{overflow-wrap:anywhere;min-width:0;max-width:100%}.student-weekly-recap-card{background:linear-gradient(135deg,#fffffffa,#f2f6fff5);border:1px solid #5b69c433;border-radius:16px;gap:10px;padding:14px;display:grid;box-shadow:0 12px 30px #3a46911f}.student-weekly-recap-card-trigger{width:100%;min-height:44px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;gap:5px;padding:12px;display:grid}.student-weekly-recap-card-trigger span,.student-weekly-recap-letter header p{color:#5b69c4;letter-spacing:.08em;font-size:.82rem;font-weight:800}.student-weekly-recap-card-trigger small,.student-weekly-recap-muted{color:#69708c}.student-weekly-recap-book-link{border-radius:12px;justify-content:center;justify-self:start;align-items:center;min-height:44px;padding:0 14px;font-weight:700;display:inline-flex}.student-weekly-recap-backdrop{z-index:1000;background:#151b3b9e;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.student-weekly-recap-dialog{background:#fffdf8;border-radius:20px;width:min(640px,100% - 2rem);max-height:calc(100dvh - 2rem);padding:26px;position:relative;overflow-y:auto;box-shadow:0 26px 70px #1117374d}.student-weekly-recap-close{z-index:1;float:right;cursor:pointer;background:#fff;border:1px solid #5b69c440;border-radius:999px;justify-content:center;align-items:center;gap:5px;min-width:44px;min-height:44px;padding:0 10px;display:inline-flex;position:sticky;top:0}.student-weekly-recap-letter{clear:both;gap:18px;display:grid}.student-weekly-recap-letter header,.student-weekly-recap-letter section{gap:10px;display:grid}.student-weekly-recap-letter :where(h2,h3,p,blockquote){margin:0}.student-weekly-recap-letter blockquote{background:#f3f5ff;border:1px solid #b7d2ea;border-radius:10px;padding:16px;font-size:1.05rem;line-height:1.75}.student-weekly-recap-letter ul{gap:8px;margin:0;padding-left:1.25rem;display:grid}.student-weekly-recap-dimensions{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));list-style:none;padding:0!important}.student-weekly-recap-dimensions li,.student-weekly-recap-rewards p{background:#f6f7fc;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.student-weekly-recap-rewards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.student-weekly-recap-history{gap:18px;display:grid}.student-weekly-recap-latest{gap:12px;display:grid}.student-weekly-recap-latest>header span{color:#4d2d7e;font-weight:700}.student-weekly-recap-latest>header h2,.student-weekly-recap-history>h2{margin:4px 0 0}.student-weekly-recap-history-letter{background:#fffdf8;border:1px solid #5b69c42e;border-radius:18px;padding:clamp(18px,4vw,28px);box-shadow:0 10px 28px #3a469114}.student-weekly-recap-card :focus-visible,.student-weekly-recap-dialog :focus-visible{outline-offset:3px;outline:3px solid #4454c7}@media (prefers-reduced-motion:reduce){.student-weekly-recap-dialog *,.student-weekly-recap-card *{transition:none!important;animation:none!important}}@media (max-width:480px){.student-weekly-recap-dialog{width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);padding:18px}.student-weekly-recap-close-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.portal-student .student-weekly-recap-book.student-page-frame>.student-page-content{background-color:#f2f6ff;background-image:linear-gradient(135deg,#fbfdffe6,#ebe6ffbd 55%,#e1f1ffc2),url(/assets/stage/student-stage-starlight.webp);background-position:top;background-size:cover;border-color:#b7c8e8}.portal-student .student-weekly-recap-book .student-weekly-recap-latest,.portal-student .student-weekly-recap-book .student-weekly-recap-history{background-color:#faf7ff;background-image:linear-gradient(135deg,#fcfafff2,#eee8ffcc),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border:1px solid #cbbce8;border-radius:14px;padding:20px}.portal-student .student-weekly-recap-book .student-weekly-recap-history{background-color:#f4f8ff;background-image:linear-gradient(135deg,#fafdfff2,#e1edffd1),url(/assets/stage/student-stage-starlight.webp);border-color:#a9c3ee}.portal-student .student-weekly-recap-book .student-weekly-recap-history-letter,.portal-student .student-weekly-recap-book .student-page-state{background-color:#fffaf0;background-image:linear-gradient(135deg,#fffdf7f5,#fff3cdd6),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border-color:#dec57e}
.semester-print-only{display:none}@page{size:A4;margin:14mm}@media print{.topbar,.nav-links,.semester-no-print{display:none!important}.semester-print-only{display:block}.app-shell{padding:0}.semester-print-page,.semester-print-page .panel{box-shadow:none;color:#111;background:#fff;border:0}.semester-print-page .panel{break-inside:avoid;padding:10px 0}}
.adventure-admin{min-width:0}.adventure-admin h3{margin:0;font-size:1rem}.adventure-admin .lead,.adventure-section-heading p{max-width:70ch}.adventure-section-heading,.adventure-version-heading,.adventure-template-heading{justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;display:flex}.adventure-section-heading p,.adventure-version-heading p,.adventure-template-heading p{color:var(--muted);margin:6px 0 0}.adventure-gate-grid{border:1px solid var(--line);background:var(--line);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;margin:18px 0;display:grid;overflow:hidden}.adventure-gate-grid div{background:var(--panel);min-width:0;padding:14px}.adventure-gate-grid dt{color:var(--muted);font-size:12px;font-weight:700}.adventure-gate-grid dd{overflow-wrap:anywhere;margin:5px 0 0;font-weight:800}.adventure-gate-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.adventure-gate-empty{justify-content:space-between;align-items:center;gap:12px;display:flex}.adventure-gate-actions form,.adventure-activate-form{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.adventure-gate-actions form{border:1px solid var(--line);border-radius:8px;padding:14px}.adventure-gate-actions form>label:not(.confirm-line){flex:150px}.adventure-calendar-tools{grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);gap:22px;margin-top:18px;display:grid}.adventure-preset-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.adventure-exception-list{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.adventure-exception-list>h3{margin-bottom:12px}.adventure-create-disclosure{border:1px solid var(--line);border-radius:8px;margin-top:18px;padding:12px 14px}.adventure-create-disclosure summary{cursor:pointer;color:var(--foreground);font-weight:800}.adventure-template-list,.adventure-version-list{gap:12px;margin-top:16px;display:grid}.adventure-template-row,.adventure-pool-version{border:1px solid var(--line);border-radius:8px;min-width:0;padding:16px}.adventure-template-form{border-top:1px solid var(--line);padding-top:14px}.adventure-activate-form{justify-content:flex-end}.adventure-probability-list{border:1px solid var(--line);border-radius:8px;margin-top:14px;overflow-x:auto}.adventure-probability-list table{width:100%;min-width:480px;margin:0}.adventure-probability-list thead{background:#e8f4fbb3}.adventure-probability-list th,.adventure-probability-list td{text-align:left}.adventure-template-id{color:var(--muted);flex-wrap:wrap;gap:4px;margin:8px 0 0;font-size:12px;display:flex}.adventure-template-id code{-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;color:var(--foreground)}.adventure-pool-draft{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.adventure-pool-draft textarea{white-space:pre;width:100%;max-width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;overflow-x:auto}.adventure-draft-note{border:1px solid var(--line);background:#f4fafdc7;border-radius:8px;align-content:center;gap:4px;min-height:68px;padding:10px 12px;display:grid}.adventure-draft-note span,.adventure-json-help{color:var(--muted);font-size:12px}.adventure-json-help{margin:-2px 0 0;line-height:1.6}.adventure-admin .audit-log-item p{overflow-wrap:anywhere;margin:5px 0 0}.teacher-challenge-page{min-width:0}.teacher-challenge-readonly{margin:16px 0 0}.teacher-challenge-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:16px;display:grid}.teacher-challenge-rules{min-width:0}.teacher-challenge-rules .table-wrap{margin-top:10px}.teacher-challenge-rules .table-wrap table{min-width:320px}.teacher-challenge-table small{color:var(--muted);margin-top:3px;font-weight:600;display:block}.student-challenge-panel{border:1px solid var(--student-portal-line,var(--line));background:var(--student-portal-surface,var(--panel));border-radius:12px;min-width:0;padding:16px}.student-challenge-sound-toggle{border:1px solid var(--student-portal-line,var(--line));background:var(--student-portal-surface,var(--panel));min-height:44px;color:var(--student-portal-purple-dark,#4d2d7e);cursor:pointer;font:inherit;border-radius:999px;justify-content:center;justify-self:end;align-items:center;gap:7px;margin:0 0 14px;padding:8px 12px;font-size:13px;font-weight:800;display:inline-flex}.student-challenge-sound-toggle span{background:#f2ecf7;border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.student-challenge-sound-toggle[aria-pressed=true]{background:#f5f1f9;border-color:#7047a7}.student-challenge-sound-toggle:focus-visible{outline-offset:3px;outline:3px solid #4d2d7e57}.student-challenge-panel>.student-challenge-sound-toggle{width:fit-content;margin-left:auto;display:flex}.student-challenge-content,.student-challenge-content>section{gap:10px;min-width:0;display:grid}.student-challenge-content{gap:18px}.student-challenge-content>section+section{border-top:1px solid var(--student-portal-line,var(--line));padding-top:16px}.student-challenge-content h3,.student-challenge-content h4,.student-challenge-content p{margin:0}.student-challenge-content h3{font-size:1rem}.student-challenge-content h4{color:var(--student-portal-muted,var(--muted));font-size:.84rem}.student-challenge-heading{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.student-challenge-heading span{color:var(--student-portal-purple-dark,#4d2d7e);font-size:12px;font-weight:800}.student-challenge-progress{color:var(--student-portal-muted,var(--muted))}.student-challenge-progress strong{color:var(--student-portal-ink,var(--text));font-variant-numeric:tabular-nums}.student-challenge-disabled{color:#6b4a08;background:#fffaf0;border:1px solid #d6b66f;border-radius:8px;padding:10px 12px}.student-challenge-probabilities ul,.student-challenge-claim-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.student-challenge-probabilities li,.student-challenge-claim-list li{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.student-challenge-probabilities li span,.student-challenge-claim-list strong{overflow-wrap:anywhere}.student-challenge-probabilities li strong,.student-challenge-claim-list span{color:var(--student-portal-muted,var(--muted));font-variant-numeric:tabular-nums;flex:none;font-size:12px}.student-challenge-mobile-summary,.student-challenge-dialog{display:none}.student-challenge-dialog{background:var(--student-portal-surface,var(--panel));width:min(100% - 20px,520px);max-height:min(82vh,720px);color:var(--student-portal-ink,var(--text));border:0;border-radius:12px 12px 0 0;margin:auto auto 0;padding:0}.student-challenge-dialog::backdrop{background:#1c14268f}.student-challenge-dialog-body{max-height:inherit;padding:18px 18px calc(18px + env(safe-area-inset-bottom));overflow-y:auto}.student-challenge-dialog-body>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.student-challenge-dialog-body>header h2{margin:0;font-size:1.1rem}.student-challenge-dialog-actions{align-items:center;gap:8px;display:flex}.student-challenge-dialog-actions .student-challenge-sound-toggle{margin:0}.student-reward-dialog{width:min(100% - 32px,460px);max-width:100%;max-height:min(88dvh,760px);color:var(--student-portal-ink,var(--text));background:#fbf9fd;border:1px solid #c9b8dd;border-radius:14px;margin:auto;padding:0;overflow:hidden}.portal-student .student-tasks-page .student-challenge-panel{background-color:#eef6ff;background-image:linear-gradient(135deg,#fafdffeb,#e1f1ffc2 58%,#f2ebffb8),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border-color:#b7d2ea;box-shadow:inset 0 1px #ffffffb8}.portal-student .student-tasks-page .student-challenge-sound-toggle{background:linear-gradient(135deg,#f7f3ff,#e9e2ff);border-color:#b8ace7}.student-reward-dialog::backdrop{background:#1c1426a8}.student-reward-dialog-body{max-height:inherit;display:grid;overflow-y:auto}.student-reward-dialog-body>header,.student-reward-dialog-body>footer{justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.student-reward-dialog-body>header{border-bottom:1px solid #ded3e8}.student-reward-dialog-body>header p,.student-reward-dialog-body>header h2,.student-reward-result p{margin:0}.student-reward-dialog-body>header p{color:#7047a7;font-size:13px;font-weight:800}.student-reward-dialog-body>header h2{text-wrap:balance;margin-top:3px;font-size:1.15rem}.student-reward-close{color:#4d2d7e;cursor:pointer;min-width:44px;min-height:44px;font:inherit;background:#eee7f4;border:0;border-radius:999px;font-weight:800}.student-reward-close:focus-visible{outline-offset:2px;outline:3px solid #4d2d7e57}.student-reward-stage{isolation:isolate;background:#f4f0f8;align-content:center;justify-items:center;gap:24px;min-height:360px;padding:34px 24px;display:grid;position:relative;overflow:hidden}.student-reward-aura{z-index:-1;filter:blur(14px);background:radial-gradient(circle,#7c60cf52 0,#669bda29 46%,#669bda00 72%);border-radius:50%;width:230px;height:230px;position:absolute}.student-reward-crystal{clip-path:polygon(50% 0,92% 25%,78% 84%,50% 100%,18% 84%,8% 25%);filter:drop-shadow(0 7px 7px #4d2d7e3d);background:linear-gradient(145deg,#d8efff 0 18%,#6f8fd8 46%,#694aa7 100%);flex:none;width:104px;height:132px;position:relative}.student-reward-crystal:before,.student-reward-crystal:after,.student-reward-crystal span{content:"";clip-path:polygon(50% 0,50% 100%,18% 84%,8% 25%);background:#e8f7ff6b;position:absolute;inset:0}.student-reward-crystal:after{clip-path:polygon(50% 0,92% 25%,78% 84%,50% 100%);background:#3036872e}.student-reward-crystal span{clip-path:polygon(50% 0,100% 35%,75% 100%,25% 100%,0 35%);background:#ffffff85;inset:18px 32px 26px}.student-reward-crystal[data-animate=true]{animation-name:student-reward-crystal-reveal;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:both}.student-reward-crystal[data-kind=WEEKLY]{animation-duration:1.2s}.student-reward-crystal[data-kind=STAGE]{animation-duration:1.8s}.student-reward-result{text-align:center;justify-items:center;gap:7px;max-width:32ch;display:grid}.student-reward-result>span{color:#7047a7;font-size:13px;font-weight:800}.student-reward-result strong{color:#342047;overflow-wrap:anywhere;text-wrap:balance;font-size:1.65rem;line-height:1.2}.student-reward-result p{color:#65566f;font-variant-numeric:tabular-nums;font-size:14px}.student-reward-dialog-body>footer{border-top:1px solid #ded3e8}.student-reward-dialog-body>footer .button{min-height:44px}@keyframes student-reward-crystal-reveal{0%{opacity:.72;filter:saturate(.74)drop-shadow(0 2px 2px #4d2d7e1f);transform:scale(.82)rotate(-2deg)}42%{opacity:1;filter:saturate(1.24)brightness(1.08)drop-shadow(0 8px 8px #4d2d7e47);transform:scale(1.055)rotate(1deg)}to{opacity:1;filter:saturate()drop-shadow(0 7px 7px #4d2d7e3d);transform:scale(1)rotate(0)}}@media (max-width:800px){.student-tasks-page .student-task-center>.panel{-webkit-backdrop-filter:none;backdrop-filter:none}.student-challenge-desktop{display:none}.student-challenge-mobile-summary{z-index:30;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));background:var(--student-portal-purple-dark,#4d2d7e);color:#fff;cursor:pointer;min-height:48px;font:inherit;border:0;border-radius:999px;align-items:center;gap:10px;padding:10px 16px;display:flex;position:fixed;box-shadow:0 4px 8px #29184038}.student-challenge-mobile-summary:focus-visible{outline-offset:3px;outline:3px solid #4d2d7e57}.student-challenge-dialog[open]{display:block}.student-task-center{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.student-reward-dialog{width:min(100% - 20px,430px);max-height:min(92dvh,760px)}.student-reward-stage{min-height:330px;padding:28px 18px}.student-reward-dialog-body>footer{flex-direction:column-reverse;align-items:stretch}.student-reward-dialog-body>footer .button{width:100%}}@media (prefers-reduced-motion:reduce){.student-challenge-mobile-summary,.student-challenge-dialog,.student-challenge-dialog::backdrop{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.student-reward-crystal,.student-reward-aura{transition:none;animation:none}}@media (max-width:720px){.adventure-section-heading,.adventure-version-heading,.adventure-template-heading,.adventure-admin .audit-log-item,.adventure-gate-empty{display:grid}.adventure-gate-actions,.adventure-calendar-tools,.teacher-challenge-rule-grid{grid-template-columns:1fr}.adventure-gate-actions form,.adventure-activate-form{flex-direction:column;align-items:stretch}.adventure-gate-actions .button,.adventure-activate-form .button,.adventure-preset-actions form,.adventure-preset-actions .button{width:100%}.adventure-admin .audit-log-item span{white-space:normal}}
.student-role-profile-page{--role-ink:#17244b;--role-muted:#5e6d91;--role-accent:#5b4ad1;--role-line:#5567a938;width:min(100%,980px);color:var(--role-ink);margin:0 auto;padding:18px clamp(12px,3vw,28px) 96px;overflow-x:hidden}.role-profile-breadcrumb{margin-bottom:12px}.role-profile-breadcrumb a{color:#4659b9;align-items:center;min-height:44px;font-weight:800;text-decoration:none;display:inline-flex}.role-profile-breadcrumb a:hover{text-underline-offset:3px;text-decoration:underline}.role-profile-feedback{border-radius:10px;margin:0 0 12px;padding:12px 14px;font-weight:700}.role-profile-feedback.success{color:#17563a;background:#e8f7ef}.role-profile-feedback.error{color:#8a2e25;background:#fff0ee}.student-role-profile{gap:14px;display:grid}.role-profile-hero{color:#fff;background:linear-gradient(135deg,#253d92,#5b48c6 56%,#7b55c1);border-radius:18px;grid-template-columns:minmax(240px,.86fr) minmax(0,1.14fr);min-height:430px;display:grid;position:relative;overflow:hidden;box-shadow:0 7px 8px #2c36762e}.role-profile-hero:after{content:"";pointer-events:none;background:radial-gradient(circle at 17% 20%,#fffc 0 1px,#0000 2px),radial-gradient(circle at 78% 16%,#ffffffbf 0 1px,#0000 2px),radial-gradient(circle at 90% 74%,#ffffffa6 0 1px,#0000 2px);position:absolute;inset:0}.role-profile-character{z-index:1;aspect-ratio:4/5;background:radial-gradient(circle at 50% 68%,#d9e1ff4d,#0000 43%);place-items:end center;min-width:0;padding:24px 8px 0;display:grid;position:relative}.role-profile-character img{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 14px 12px #131b534d);width:100%;height:100%;display:block}.role-profile-character-fallback{aspect-ratio:1;color:#fff;background:#ffffff29;border-radius:50%;align-self:center;place-items:center;width:150px;font-size:72px;display:grid}.role-profile-identity{z-index:1;align-self:end;min-width:0;padding:42px 40px 54px 20px;position:relative}.role-profile-identity p,.role-profile-identity h1{margin:0}.role-profile-identity p{color:#e2e8ff;font-size:14px;font-weight:700}.role-profile-identity h1{letter-spacing:-.035em;text-wrap:balance;margin:8px 0 16px;font-size:3rem;line-height:1.05}.role-profile-title{color:#fff;border:1px solid #ffffff6b;border-radius:999px;align-items:center;max-width:100%;min-height:36px;padding:6px 13px;font-weight:800;display:inline-flex}.role-profile-section{border:1px solid var(--role-line);background:#fff;border-radius:14px;padding:20px}.role-profile-section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.role-profile-section-heading h2,.role-profile-section-heading p{margin:0}.role-profile-section-heading h2{letter-spacing:-.02em;font-size:1.2rem}.role-profile-section-heading p,.role-profile-empty{max-width:65ch;color:var(--role-muted);margin-top:5px;line-height:1.65}.role-profile-section .button,.role-profile-action-bar .button,.role-profile-sheet .button{min-height:44px}.role-profile-highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.role-profile-highlights>article,.role-profile-highlight-empty{border-radius:11px;min-width:0;min-height:112px}.role-profile-highlights>article{background:#f1f3ff;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;padding:12px;display:grid}.role-profile-highlights img{object-fit:contain;width:64px;height:64px;display:block}.role-profile-highlights article div{gap:4px;display:grid}.role-profile-highlights strong{overflow-wrap:anywhere}.role-profile-highlights article span,.role-profile-highlight-empty p{color:var(--role-muted);font-size:13px}.role-profile-highlight-empty{border:1px dashed #aab5d6;align-items:center;gap:10px;padding:16px;display:flex}.role-profile-highlight-empty>span{color:#52618c;background:#e8ebf8;border-radius:50%;flex:0 0 30px;place-items:center;height:30px;font-weight:800;display:grid}.role-profile-highlight-empty p{margin:0;line-height:1.45}.role-profile-encouragements,.role-profile-history{margin:0;padding:0;list-style:none}.role-profile-encouragements{flex-wrap:wrap;gap:10px;display:flex}.role-profile-encouragements li{background:#f7f8fc;border-radius:11px;flex:220px;align-items:center;gap:10px;min-width:0;padding:13px;display:flex}.encouragement-stamp{color:#3f58c9;background:#e4e9ff;border-radius:50%;flex:0 0 40px;place-items:center;width:40px;height:40px;font-size:22px;display:grid}.encouragement-stamp.willpower{color:#a95624;background:#fff0df}.encouragement-stamp.teamwork{color:#17705d;background:#e0f5ef}.encouragement-stamp.honor{color:#7e3e94;background:#f2e7f8}.role-profile-encouragements li div{gap:3px;min-width:0;display:grid}.role-profile-encouragements li span:last-child{color:var(--role-muted);font-size:13px}.role-profile-history{display:grid}.role-profile-history li{border-top:1px solid var(--role-line);grid-template-columns:130px minmax(150px,.6fr) minmax(0,1fr);gap:12px;padding:12px 2px;display:grid}.role-profile-history span,.role-profile-history p{color:var(--role-muted);margin:0}.role-profile-action-bar{z-index:20;background:#f7f8ff;border:1px solid #c8cff0;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;padding:14px 16px;display:flex;position:sticky;bottom:12px;box-shadow:0 7px 8px #303e7f29}.role-profile-action-bar>div{gap:2px;display:grid}.role-profile-action-bar span{color:var(--role-muted);font-size:13px}.role-profile-status{background:#e8eaf3;border-radius:999px;align-items:center;min-height:36px;padding:6px 12px;font-weight:800;display:inline-flex;color:#475373!important}.role-profile-sheet-backdrop{z-index:60;background:#0c132f94;place-items:end center;padding:20px;display:grid;position:fixed;inset:0}.role-profile-sheet{overscroll-behavior:contain;background:#fff;border-radius:16px 16px 10px 10px;width:min(100%,680px);max-height:min(82vh,720px);animation:.18s cubic-bezier(.22,1,.36,1) role-profile-sheet-in;overflow-y:auto;box-shadow:0 7px 8px #0c132f47}.role-profile-sheet>header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 12px;display:flex}.role-profile-sheet h2,.role-profile-sheet header p{margin:0}.role-profile-sheet header p{color:var(--role-muted);margin-top:5px}.role-profile-sheet-close{width:44px;height:44px;color:var(--role-ink);cursor:pointer;background:#eef0f7;border:0;border-radius:50%;flex:0 0 44px;place-items:center;font-size:26px;display:grid}.role-profile-sheet form{padding:8px 20px 20px}.role-profile-privacy-note{border-left:3px solid var(--role-accent);color:#3b496e;background:#f4f2ff;margin:0 0 14px;padding:10px 12px;line-height:1.55}.role-profile-highlight-controls{gap:12px;display:grid}.role-profile-highlight-controls label{color:#3b496e;gap:6px;font-weight:800;display:grid}.role-profile-highlight-controls select{width:100%;min-height:46px;color:var(--role-ink);font:inherit;background:#fff;border:1px solid #9ca9ce;border-radius:9px;padding:0 11px}.role-profile-stamp-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.role-profile-stamp-options label{border:1px solid var(--role-line);cursor:pointer;border-radius:10px;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;min-height:66px;padding:10px;display:grid;position:relative}.role-profile-stamp-options input{opacity:0;width:1px;height:1px;position:absolute}.role-profile-stamp-options label:has(input:checked){border-color:var(--role-accent);background:#f1efff}.role-profile-stamp-options label:has(input:focus-visible){outline-offset:2px;outline:3px solid #4b5ed85c}.role-profile-sheet-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.student-role-profile-page :where(a,button,select):focus-visible{outline-offset:3px;outline:3px solid #435ce266}@keyframes role-profile-sheet-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (max-width:700px){.role-profile-hero{grid-template-columns:1fr;min-height:0}.role-profile-character{width:100%;max-height:430px}.role-profile-identity{padding:20px 20px 28px}.role-profile-highlights,.role-profile-stamp-options{grid-template-columns:1fr}.role-profile-history li{grid-template-columns:1fr;gap:3px}}@media (max-width:430px){html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.student-role-profile-page{width:100%;padding:8px 10px 92px}.role-profile-hero{border-radius:12px}.role-profile-character{aspect-ratio:4/4.5;max-height:390px}.role-profile-identity h1{font-size:2.35rem}.role-profile-section{border-radius:12px;padding:16px}.role-profile-section-heading,.role-profile-action-bar{flex-direction:column;align-items:stretch}.role-profile-section-heading .button,.role-profile-action-bar .button{width:100%}.role-profile-action-bar{gap:10px;bottom:8px}.role-profile-sheet-backdrop{padding:0}.role-profile-sheet{border-radius:14px 14px 0 0;max-height:88vh}}@media (prefers-reduced-motion:reduce){.role-profile-sheet{animation:none}.student-role-profile-page *,.student-role-profile-page :before,.student-role-profile-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.portal-student .student-role-profile-page{--role-ink:#142b59;--role-muted:#405b84;--role-accent:#3156c8;--role-line:#c8d7ee;width:min(1320px,100% - 48px);padding-top:24px}.portal-student .role-profile-breadcrumb a{color:#214fc6}.portal-student .role-profile-hero{color:#142b59;min-height:430px;box-shadow:none;background-color:#edf5ff;background-image:linear-gradient(90deg,#fbfdff75,#e8f2ffb3),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border:1px solid #c6973e9e;border-radius:16px}.portal-student .role-profile-hero:after{background:radial-gradient(circle at 18% 18%,#ffffffeb 0 2px,#0000 3px),radial-gradient(circle at 82% 22%,#c6973e80 0 2px,#0000 3px),linear-gradient(115deg,#0000 60%,#ffffff57)}.portal-student .role-profile-character{background:radial-gradient(circle at 50% 68%,#ffffffd1,#0000 52%)}.portal-student .role-profile-character img{filter:drop-shadow(0 14px 14px #22468a38)}.portal-student .role-profile-identity p{color:#405b84}.portal-student .role-profile-identity h1{color:#153472;font-family:Noto Serif SC,Songti SC,STSong,serif}.portal-student .role-profile-title{color:#153472;background:#fff8dee6;border:1px solid #c6973eb8}.portal-student .role-profile-section{background-color:#f4f8ff;background-image:linear-gradient(135deg,#fafdfff2,#e1edffd1),url(/assets/stage/student-stage-starlight.webp);background-position:50%;background-size:cover;border-color:#c8d7ee;border-radius:16px}@media (max-width:900px){.portal-student .student-role-profile-page{width:min(100% - 32px,1320px)}}@media (max-width:430px){.portal-student .student-role-profile-page{width:min(100% - 24px,1320px);padding-top:12px}.portal-student .role-profile-hero{min-height:0}}
.teacher-settlement-reminder{border:2px solid var(--ds-reward);background:var(--ds-reward-soft);color:var(--ds-reward);border-radius:14px;justify-content:space-between;align-items:center;gap:24px;padding:20px 24px;display:flex}.teacher-settlement-reminder span{color:var(--ds-reward);font-size:14px;font-weight:800}.teacher-settlement-reminder h2,.teacher-settlement-reminder p{margin:0}.teacher-settlement-reminder h2{color:var(--ds-ink);text-wrap:balance;margin-top:4px}.teacher-settlement-reminder p{max-width:72ch;color:var(--ds-reward);text-wrap:pretty;margin-top:6px}.teacher-settlement-reminder .button{border-color:var(--ds-reward);background:var(--ds-surface);min-height:44px;color:var(--ds-reward);flex:none}.teacher-settlement-reminder .button:hover{border-color:var(--ds-ink);background:var(--ds-surface);color:var(--ds-ink)}@media (max-width:720px){.teacher-settlement-reminder{flex-direction:column;align-items:stretch;gap:16px;padding:18px}.teacher-settlement-reminder .button{width:100%}}
.weekly-report-share-export{border:2px solid var(--ds-primary);background:var(--ds-sky-soft);color:var(--ds-ink);border-radius:16px;justify-content:space-between;align-items:center;gap:24px;padding:20px 24px;display:flex}.weekly-report-share-export span{color:var(--ds-primary-deep);font-size:14px;font-weight:800}.weekly-report-share-export h2,.weekly-report-share-export p{margin:0}.weekly-report-share-export h2{text-wrap:balance;margin-top:4px}.weekly-report-share-export p{max-width:68ch;color:var(--ds-ink-soft);text-wrap:pretty;margin-top:6px}.weekly-report-share-export .button{flex:none;min-height:44px}.weekly-report-export-status:empty{display:none}.weekly-report-export-status:not(:empty){color:var(--ds-danger);flex-basis:100%;font-weight:700}@media (max-width:720px){.weekly-report-share-export{flex-direction:column;align-items:stretch;gap:16px;padding:18px}.weekly-report-share-export .button{width:100%}}
.virtual-privilege-marks{flex-wrap:wrap;gap:.55rem;max-width:100%;margin-top:.7rem;display:flex}.character-equipped-title{color:#fff4b8;filter:drop-shadow(0 2px 2px #132356b3);letter-spacing:.12em;text-shadow:0 0 5px #ffffffe0, 0 0 13px var(--title-accent,#ffd675), 0 2px 0 #2a265cb8;white-space:nowrap;align-items:center;gap:.45rem;padding:.12em .32em .2em;font-family:Noto Serif SC,Songti SC,STSong,serif;font-size:clamp(1.55rem,3.2vw,2.15rem);font-weight:900;line-height:1.15;animation:2.2s ease-in-out infinite character-title-breathe;display:inline-flex;position:relative;overflow:hidden}.character-equipped-title .virtual-limited-title-emblem{flex:none;width:2.65rem;height:2.65rem}.character-equipped-title:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 34%,#ffffffe6 49%,#0000 64%);animation:2.8s ease-in-out infinite character-title-sweep;position:absolute;inset:-35% -45%;transform:translate(-80%)}.character-equipped-title>span{z-index:1;position:relative}.virtual-limited-title,.virtual-dynamic-badge{color:#694610;background:#fffaf0;border:1px solid #e8bf67;border-radius:999px;align-items:center;gap:.35rem;max-width:100%;min-height:2rem;padding:.28rem .65rem;display:inline-flex}.virtual-limited-title{--title-accent:#f8d675;--title-bg-a:#17275d;--title-bg-b:#49347f;background:linear-gradient(115deg, var(--title-bg-a), var(--title-bg-b));border-color:var(--title-accent);box-shadow:0 0 12px color-mix(in srgb, var(--title-accent) 44%, transparent);color:#fff;position:relative;overflow:hidden}.virtual-limited-title>*{z-index:1;position:relative}.virtual-limited-title-emblem{filter:drop-shadow(0 2px 3px #00000047);object-fit:contain;width:2rem;height:2rem}.virtual-privilege-marks.is-compact .virtual-limited-title-emblem{width:1.35rem;height:1.35rem}.portal-student .student-store-page .store-product-card[data-template-key^=weekly-title]{--title-emblem-image:none}.portal-student .student-store-page .store-product-card[data-template-key^=weekly-title]:before{content:none;display:none}.portal-student .student-store-page .store-product-card[data-template-key^=weekly-title]>.store-product-icon{display:none}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title]{--title-emblem-image:url(/title-emblems/star-river-roamer.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-study-light]{--title-emblem-image:url(/title-emblems/study-light-seeker.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-starlight]{--title-emblem-image:url(/title-emblems/starlight-radiance.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-dawn]{--title-emblem-image:url(/title-emblems/dawn-new-star.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-cloud]{--title-emblem-image:url(/title-emblems/cloud-star-catcher.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-radiant]{--title-emblem-image:url(/title-emblems/radiant-walker.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-dream]{--title-emblem-image:url(/title-emblems/star-river-dreamer.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-brilliant]{--title-emblem-image:url(/title-emblems/brilliant-edge.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-qinglan]{--title-emblem-image:url(/title-emblems/qinglan-firefly-whisper.webp)}.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-jixue]{--title-emblem-image:url(/title-emblems/jixue-listening-wind.webp)}.virtual-limited-title:after{content:"";pointer-events:none;display:none;position:absolute;inset:0}.virtual-title-tone-astral.virtual-limited-title:after{background:radial-gradient(circle at 18% 38%,#fff4aadb 0 1px,#0000 1.7px),radial-gradient(circle at 54% 66%,#9fe0ffc7 0 1.2px,#0000 1.9px),radial-gradient(circle at 82% 28%,#ffffffe0 0 1px,#0000 1.8px);animation:5.2s cubic-bezier(.25,1,.5,1) infinite virtual-title-astral-stars;display:block;inset:-20% -12%}.virtual-title-tone-starlight.virtual-limited-title:after{background:radial-gradient(circle at 22% 32%,#ffe1f9eb 0 1.4px,#0000 2.2px),radial-gradient(circle at 70% 68%,#ffffffdb 0 1.2px,#0000 2px),radial-gradient(circle at 88% 24%,#ffbeece0 0 1px,#0000 1.8px);animation:3.2s ease-in-out infinite virtual-title-starlight-spark;display:block}.virtual-title-tone-dawn.virtual-limited-title:after{background:linear-gradient(#0000 18%,#ffe79985 52%,#0000 92%);animation:4.6s cubic-bezier(.22,1,.36,1) infinite virtual-title-dawn-sweep;display:block;inset:-45% 0;transform:translateY(72%)}.virtual-title-tone-brilliant.virtual-limited-title:after{background:linear-gradient(105deg,#0000 18%,#ffffff94 48%,#0000 76%);animation:3.8s cubic-bezier(.16,1,.3,1) infinite virtual-title-brilliant-edge;display:block;transform:translate(-130%)}.virtual-title-tone-study-light.virtual-limited-title:after{background:linear-gradient(112deg,#0000 14%,#9dffee75 46%,#0000 76%);animation:4.8s cubic-bezier(.25,1,.5,1) infinite virtual-title-study-light-flow;display:block;transform:translate(-128%)}.virtual-title-tone-cloud.virtual-limited-title:after{background:radial-gradient(at 24% 64%,#ffffff52 0 12%,#0000 30%),radial-gradient(at 72% 38%,#dcf4ff5c 0 10%,#0000 28%);animation:5.6s ease-in-out infinite virtual-title-cloud-mist;display:block;inset:-20% -16%}.virtual-title-tone-radiant.virtual-limited-title:after{background:radial-gradient(circle,#fff4b075 0 18%,#0000 62%);animation:4.2s ease-in-out infinite virtual-title-radiant-halo;display:block;inset:-70% -12%}.virtual-title-tone-dream.virtual-limited-title:after{background:radial-gradient(circle at 18% 68%,#99ebffbd 0 1px,#0000 1.8px),radial-gradient(circle at 52% 42%,#ffffffc2 0 1px,#0000 1.8px),linear-gradient(102deg,#0000 18%,#7bdfff57 50%,#0000 78%);animation:5.4s cubic-bezier(.22,1,.36,1) infinite virtual-title-dream-trail;display:block;transform:translate(-124%)}.virtual-title-tone-qinglan.virtual-limited-title:after{background:radial-gradient(circle at 20% 66%,#dcffbbdb 0 1px,#0000 2px),radial-gradient(circle at 52% 28%,#f4ffe1c7 0 1.2px,#0000 2.2px),radial-gradient(circle at 84% 58%,#b1ffddd1 0 1px,#0000 2px);animation:5.8s ease-in-out infinite virtual-title-qinglan-fireflies;display:block;inset:-24% -12%}.virtual-title-tone-jixue.virtual-limited-title:after{background:radial-gradient(circle at 18% 34%,#ffffffd1 0 1px,#0000 2px),radial-gradient(circle at 48% 72%,#cdefffbd 0 1.2px,#0000 2.2px),radial-gradient(circle at 82% 42%,#f1faffcc 0 1px,#0000 2px),linear-gradient(112deg,#0000 26%,#d6f2ff33 50%,#0000 72%);animation:6.2s ease-in-out infinite virtual-title-jixue-wind;display:block;inset:-22% -16%}:is(.virtual-title-tone-astral,.virtual-title-tone-study-light,.virtual-title-tone-starlight,.virtual-title-tone-dawn,.virtual-title-tone-cloud,.virtual-title-tone-radiant,.virtual-title-tone-dream,.virtual-title-tone-brilliant,.virtual-title-tone-qinglan,.virtual-title-tone-jixue) .virtual-limited-title-emblem{transform-origin:50%}.virtual-title-tone-astral .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-astral .student-title-gallery-image{animation:5.2s ease-in-out infinite virtual-title-astral-float}.virtual-title-tone-starlight .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-starlight] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-starlight .student-title-gallery-image{animation:3.2s ease-in-out infinite virtual-title-starlight-pulse}.virtual-title-tone-dawn .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-dawn] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-dawn .student-title-gallery-image{animation:4.6s ease-in-out infinite virtual-title-dawn-rise}.virtual-title-tone-brilliant .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-brilliant] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-brilliant .student-title-gallery-image{animation:3.8s ease-in-out infinite virtual-title-brilliant-glint}.virtual-title-tone-study-light .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-study-light] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-study-light .student-title-gallery-image{animation:4.8s ease-in-out infinite virtual-title-study-light-current}.virtual-title-tone-cloud .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-cloud] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-cloud .student-title-gallery-image{animation:5.6s ease-in-out infinite virtual-title-cloud-float}.virtual-title-tone-radiant .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-radiant] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-radiant .student-title-gallery-image{animation:4.2s ease-in-out infinite virtual-title-radiant-pulse}.virtual-title-tone-dream .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-dream] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-dream .student-title-gallery-image{animation:5.4s ease-in-out infinite virtual-title-dream-sail}.virtual-title-tone-qinglan .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-qinglan] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-qinglan .student-title-gallery-image{animation:5.8s ease-in-out infinite virtual-title-qinglan-breathe}.virtual-title-tone-jixue .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key=weekly-title-jixue] .store-title-preview img,.student-title-gallery-item.virtual-title-tone-jixue .student-title-gallery-image{animation:6.2s ease-in-out infinite virtual-title-jixue-drift}.virtual-title-tone-study-light{--title-accent:#7ef4df;--title-bg-a:#075b69;--title-bg-b:#197d9e}.virtual-title-tone-starlight{--title-accent:#ffb9ec;--title-bg-a:#5a247e;--title-bg-b:#a62b77}.virtual-title-tone-dawn{--title-accent:#ffd074;--title-bg-a:#9e2b28;--title-bg-b:#d76722}.virtual-title-tone-cloud{--title-accent:#d7efff;--title-bg-a:#2867ad;--title-bg-b:#6b61bd}.virtual-title-tone-radiant{--title-accent:#fff0a6;--title-bg-a:#97540c;--title-bg-b:#cb7a06}.virtual-title-tone-dream{--title-accent:#92eaff;--title-bg-a:#293b91;--title-bg-b:#076f91}.virtual-title-tone-brilliant{--title-accent:#ffd0f0;--title-bg-a:#7f1f69;--title-bg-b:#b74158}.virtual-title-tone-qinglan{--title-accent:#bff5d7;--title-bg-a:#075f55;--title-bg-b:#168577}.virtual-title-tone-jixue{--title-accent:#e5f6ff;--title-bg-a:#395f7c;--title-bg-b:#718eaa}.virtual-limited-title>span,.virtual-dynamic-badge>span:not(.virtual-dynamic-badge-icon){white-space:nowrap;font-weight:750}.virtual-limited-title small,.virtual-dynamic-badge small{color:#765f38;border-left:1px solid #6946103d;margin-left:.1rem;padding-left:.45rem;font-size:.74rem;font-weight:600}.virtual-limited-title small{color:#fff;border-left-color:#ffffff57}.virtual-dynamic-badge{color:#164f7e;background:#f3f9ff;border-color:#75b6ee}.virtual-privilege-marks:not(.is-compact) .virtual-dynamic-badge{animation:2.4s ease-in-out infinite virtual-badge-display-glow}.virtual-dynamic-badge-icon{justify-content:center;align-items:center;display:inline-flex;position:relative}.virtual-dynamic-badge-spark{color:#da9a20;transform-origin:45% 55%;animation:2.4s ease-in-out infinite virtual-badge-spark;position:absolute;top:-.32rem;right:-.34rem}.virtual-privilege-marks.is-compact{gap:.35rem;margin-top:.45rem}.virtual-privilege-marks.is-compact .virtual-limited-title,.virtual-privilege-marks.is-compact .virtual-dynamic-badge{min-height:1.55rem;padding:.18rem .48rem;font-size:.73rem}.virtual-spotlight-active{isolation:isolate;position:relative;box-shadow:0 0 0 3px #ffd87a59,0 12px 28px #1f5b8f24;border-color:#e6b54d!important}.virtual-spotlight-active:after{color:#76500d;content:"星辉聚光";letter-spacing:.04em;z-index:2;background:#fff0c27a;border:1px solid #dca02761;border-radius:999px;padding:.22rem .48rem;font-size:.68rem;font-weight:800;position:absolute;top:.65rem;right:.65rem}@keyframes virtual-badge-spark{0%,to{opacity:.58;transform:rotate(-10deg)scale(.88)}50%{opacity:1;transform:rotate(12deg)scale(1.12)}}@keyframes virtual-title-astral-float{0%,to{filter:drop-shadow(0 4px 5px #1c2d5e33);transform:translate(0,0)rotate(-1deg)}50%{filter:drop-shadow(0 7px 8px #5c7ee757)brightness(1.06);transform:translateY(-4px)rotate(1deg)}}@keyframes virtual-title-astral-stars{0%,to{opacity:.42;transform:translate(-2%,2%)}50%{opacity:.95;transform:translate(3%,-2%)}}@keyframes virtual-title-starlight-pulse{0%,to{filter:drop-shadow(0 3px 4px #742a7b38);transform:scale(.99)}48%{filter:drop-shadow(0 6px 9px #f675d66b)brightness(1.1);transform:scale(1.025)}}@keyframes virtual-title-starlight-spark{0%,to{opacity:.34;transform:scale(.92)}38%{opacity:1;transform:scale(1.05)}64%{opacity:.58;transform:scale(.98)}}@keyframes virtual-title-dawn-rise{0%,to{filter:drop-shadow(0 4px 5px #77381133);transform:translateY(2px)}46%{filter:drop-shadow(0 7px 9px #f49a2a66)brightness(1.1);transform:translateY(-3px)}}@keyframes virtual-title-dawn-sweep{0%,58%{opacity:0;transform:translateY(72%)}76%{opacity:.9}to{opacity:0;transform:translateY(-72%)}}@keyframes virtual-title-brilliant-glint{0%,to{filter:drop-shadow(0 4px 5px #74215b38)saturate();transform:rotate(-.7deg)scale(1)}52%{filter:drop-shadow(0 7px 10px #dc48a26b)saturate(1.15)brightness(1.08);transform:rotate(.7deg)scale(1.018)}}@keyframes virtual-title-brilliant-edge{0%,64%{opacity:0;transform:translate(-130%)}76%{opacity:.92}to{opacity:0;transform:translate(130%)}}@keyframes virtual-title-study-light-current{0%,to{filter:drop-shadow(0 4px 5px #10637433);transform:translate(-1px,1px)}50%{filter:drop-shadow(0 7px 9px #41dbcc61)brightness(1.08);transform:translate(2px,-2px)}}@keyframes virtual-title-study-light-flow{0%,58%{opacity:0;transform:translate(-128%)}76%{opacity:.88}to{opacity:0;transform:translate(128%)}}@keyframes virtual-title-cloud-float{0%,to{filter:drop-shadow(0 4px 5px #4a76b42e);transform:translateY(2px)}50%{filter:drop-shadow(0 8px 10px #7cb4e752)brightness(1.05);transform:translateY(-5px)}}@keyframes virtual-title-cloud-mist{0%,to{opacity:.34;transform:translate(-3%,1%)scale(.98)}50%{opacity:.78;transform:translate(4%,-1%)scale(1.04)}}@keyframes virtual-title-radiant-pulse{0%,to{filter:drop-shadow(0 4px 5px #89510733);transform:scale(.99)}50%{filter:drop-shadow(0 8px 11px #fab5276b)brightness(1.1);transform:scale(1.025)}}@keyframes virtual-title-radiant-halo{0%,to{opacity:.28;transform:scale(.86)}50%{opacity:.82;transform:scale(1.08)}}@keyframes virtual-title-dream-sail{0%,to{filter:drop-shadow(0 4px 5px #1e5c9138);transform:translate(-2px,1px)rotate(-.6deg)}52%{filter:drop-shadow(0 7px 10px #49b5de61)brightness(1.07);transform:translate(3px,-3px)rotate(.6deg)}}@keyframes virtual-title-dream-trail{0%,62%{opacity:0;transform:translate(-124%)}78%{opacity:.78}to{opacity:0;transform:translate(124%)}}@keyframes virtual-title-qinglan-breathe{0%,to{filter:drop-shadow(0 4px 5px #075d4f33);transform:translateY(1px)scale(.995)}50%{filter:drop-shadow(0 7px 9px #45c99e57)brightness(1.06);transform:translateY(-2px)scale(1.012)}}@keyframes virtual-title-qinglan-fireflies{0%,to{opacity:.38;transform:translate(-2%,2%)rotate(-2deg)}50%{opacity:.88;transform:translate(3%,-2%)rotate(2deg)}}@keyframes virtual-title-jixue-drift{0%,to{filter:drop-shadow(0 4px 5px #3658742e);transform:translate(-1px,1px)rotate(-.5deg)}50%{filter:drop-shadow(0 7px 9px #9adaf24d)brightness(1.055);transform:translate(2px,-2px)rotate(.5deg)}}@keyframes virtual-title-jixue-wind{0%,to{opacity:.34;transform:translate(-3%,1%)}50%{opacity:.78;transform:translate(4%,-1%)}}@keyframes virtual-badge-display-glow{0%,to{border-color:#75b6ee;box-shadow:0 0 #68baff00}50%{border-color:#d3ab47;box-shadow:0 0 18px #68baff61}}@keyframes character-title-breathe{0%,to{opacity:.9;transform:translateY(0)scale(1)}50%{opacity:1;transform:translateY(-3px)scale(1.045)}}@keyframes character-title-sweep{0%,48%{opacity:0;transform:translate(-80%)}62%{opacity:.95}82%,to{opacity:0;transform:translate(80%)}}@media (max-width:520px){.virtual-privilege-marks:not(.is-compact){flex-direction:column;align-items:flex-start}.virtual-limited-title small,.virtual-dynamic-badge small{white-space:normal}}@media (prefers-reduced-motion:reduce){.character-equipped-title,.character-equipped-title:after,.virtual-privilege-marks:not(.is-compact) .virtual-dynamic-badge,.virtual-dynamic-badge-spark{opacity:1;animation:none;transform:none}.virtual-limited-title:after{animation:none;display:none}:is(.virtual-title-tone-astral,.virtual-title-tone-study-light,.virtual-title-tone-starlight,.virtual-title-tone-dawn,.virtual-title-tone-cloud,.virtual-title-tone-radiant,.virtual-title-tone-dream,.virtual-title-tone-brilliant,.virtual-title-tone-qinglan,.virtual-title-tone-jixue) .virtual-limited-title-emblem,.portal-student .student-store-page .store-product-card[data-template-key^=weekly-title] .store-title-preview img,.student-title-gallery-item .student-title-gallery-image{filter:none;animation:none;transform:none}}
