:root{--bg-paper: #f6f5fb;--bg-card: #ffffff;--text-primary: #1d1b2e;--text-secondary: #5d5b72;--text-tertiary: #9b99ad;--text-on-accent: #ffffff;--text-note: #211f1c;--accent-primary: #6b5cf6;--accent-record: #f2484b;--border-line: #ebe9f5;--fill-soft: #f0eefc;--blk0: #ffd9c2;--blk0-ink: #8f3a12;--blk1: #cfe4ff;--blk1-ink: #1a468c;--blk2: #d6f0c4;--blk2-ink: #2a611b;--blk3: #e3d9ff;--blk3-ink: #45309c;--blk4: #fff0b3;--blk4-ink: #6e5100;--blk5: #ffd3e2;--blk5-ink: #942050;--blk6: #c6f0e6;--blk6-ink: #0f5f4f;--blk7: #d9e2ec;--blk7-ink: #2e4155;--accent-deep: #5646e0;--line-deep: #e2dff2;--leaf: #22b573;--shadow-card: 0 2px 10px rgb(60 50 140 / .06), 0 1px 2px rgb(60 50 140 / .04);--ico-violet: #6b5cf6;--ico-blue: #3b82f6;--ico-yellow: #f5b70a;--ico-orange: #f97316;--ico-red: #ef4444;--ico-pink: #ec4899;--ico-green: #22b573;--ico-slate: #64748b;--shadow-note: 0 4px 8px rgb(0 0 0 / .1);--note-explanation-paper: #ffed94;--note-explanation-ink: #d99e00;--note-example-paper: #c2f0cc;--note-example-ink: #219e54;--note-emphasis-paper: #ffd6a8;--note-emphasis-ink: #ed7312;--note-exam-paper: #ffbfcc;--note-exam-ink: #e02e54;--note-notice-paper: #d9d1ff;--note-notice-ink: #6b54e6;--note-tip-paper: #c7ebff;--note-tip-ink: #0d85cc;--note-qa-paper: #fbd9f5;--note-qa-ink: #bf389e;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 999px;--font-sans: "Noto Sans KR", system-ui, -apple-system, sans-serif;--font-display: "Noto Sans KR", system-ui, -apple-system, sans-serif;color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-paper: #121220;--bg-card: #1c1c2e;--text-primary: #f2f1fa;--text-secondary: #adabc4;--text-tertiary: #6f6d88;--text-on-accent: #ffffff;--accent-primary: #8b7fff;--accent-record: #ff5e61;--border-line: #2b2a42;--fill-soft: #26253c;--accent-deep: #6b5cf6;--line-deep: #0d0d18;--leaf: #3ccf8e;--blk0: #5a2f1a;--blk0-ink: #ffd9c2;--blk1: #1d3a66;--blk1-ink: #cfe4ff;--blk2: #264d1c;--blk2-ink: #d6f0c4;--blk3: #3a2c78;--blk3-ink: #e3d9ff;--blk4: #5c4700;--blk4-ink: #fff0b3;--blk5: #6b1d3d;--blk5-ink: #ffd3e2;--blk6: #0f4d41;--blk6-ink: #c6f0e6;--blk7: #2b3a49;--blk7-ink: #d9e2ec;color-scheme:dark}}:root[data-theme=dark]{--bg-paper: #121220;--bg-card: #1c1c2e;--text-primary: #f2f1fa;--text-secondary: #adabc4;--text-tertiary: #6f6d88;--text-on-accent: #ffffff;--accent-primary: #8b7fff;--accent-record: #ff5e61;--border-line: #2b2a42;--fill-soft: #26253c;--accent-deep: #6b5cf6;--line-deep: #0d0d18;--leaf: #3ccf8e;--blk0: #5a2f1a;--blk0-ink: #ffd9c2;--blk1: #1d3a66;--blk1-ink: #cfe4ff;--blk2: #264d1c;--blk2-ink: #d6f0c4;--blk3: #3a2c78;--blk3-ink: #e3d9ff;--blk4: #5c4700;--blk4-ink: #fff0b3;--blk5: #6b1d3d;--blk5-ink: #ffd3e2;--blk6: #0f4d41;--blk6-ink: #c6f0e6;--blk7: #2b3a49;--blk7-ink: #d9e2ec;color-scheme:dark}.t-title-l{font:900 28px/36px var(--font-sans)}.t-title-m{font:700 20px/28px var(--font-sans)}.t-body{font:400 15px/22px var(--font-sans)}.t-note{font:700 14px/20px var(--font-sans)}.t-caption{font:500 12px/16px var(--font-sans)}*{box-sizing:border-box;margin:0}html,body,#root{min-height:100%}body{background:var(--bg-paper);color:var(--text-primary);font:400 15px/22px var(--font-sans);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}a{color:inherit;text-decoration:none}.screen{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.screen-body{flex:1;display:flex;flex-direction:column;gap:var(--space-md);padding:0 var(--space-lg) var(--space-xl)}.muted{color:var(--text-secondary)}.faint{color:var(--text-tertiary)}.row{display:flex;gap:var(--space-md);align-items:center}.grow{flex:1;min-width:0}.scroll-x{display:flex;gap:var(--space-sm);overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.icon{width:22px;height:22px;flex:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:52px;padding:var(--space-md) var(--space-xl);border-radius:var(--radius-lg);font:700 16px/22px var(--font-sans);white-space:nowrap}.btn-primary{background:var(--accent-primary);color:var(--text-on-accent)}.btn-secondary{background:var(--bg-card);color:var(--accent-primary);box-shadow:var(--shadow-card)}.btn-record{background:var(--accent-record);color:var(--text-on-accent)}.btn:disabled{opacity:.5;cursor:default}.btn-block{width:100%}.chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font:500 12px/16px var(--font-sans);white-space:nowrap}.chip-default{background:var(--border-line);color:var(--text-secondary)}.chip-accent{background:var(--bg-card);color:var(--accent-primary)}.chip-selected{background:var(--accent-primary);color:var(--text-on-accent)}.list-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:left;width:100%}.list-item-icon{width:40px;height:40px;border-radius:var(--radius-md);display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--accent-primary) 12%,transparent);color:var(--accent-primary)}.list-item-sub{display:block;margin-top:2px;color:var(--text-secondary);font:500 12px/17px var(--font-sans)}.top-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:var(--space-md);min-height:56px;padding:calc(var(--space-sm) + env(safe-area-inset-top)) var(--space-lg) var(--space-sm);background:var(--bg-paper)}.top-bar-back{width:36px;height:36px;display:grid;place-items:center;color:var(--accent-primary);margin-left:-8px}.top-bar-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.postit{position:relative;padding:var(--space-md);background:var(--paper);box-shadow:var(--shadow-note);color:var(--text-note);display:flex;flex-direction:column;gap:var(--space-sm)}.postit:nth-child(odd){transform:rotate(-.8deg)}.postit:nth-child(2n){transform:rotate(.7deg)}.postit-head{display:flex;align-items:center;gap:var(--space-sm);color:var(--ink);font:500 12px/16px var(--font-sans)}.postit-badge{margin-left:auto;width:20px;height:20px;border-radius:10px;background:var(--ink);color:var(--text-on-accent);display:grid;place-items:center;font:700 11px/1 var(--font-sans)}.postit-tag{color:var(--accent-primary);font:700 11px/16px var(--font-sans)}.postit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-md)}.term-card{padding:var(--space-md) var(--space-lg);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border-left:4px solid var(--note-tip-ink);display:flex;flex-direction:column;gap:var(--space-xs)}.note-sheet{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);background-image:linear-gradient(color-mix(in srgb,var(--accent-primary) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent-primary) 7%,transparent) 1px,transparent 1px);background-size:16px 16px;display:flex;flex-direction:column;gap:22px}.note-section{display:flex;flex-direction:column;gap:var(--space-sm);color:var(--text-note)}@media(prefers-color-scheme:dark){.note-section{color:var(--text-primary)}}.note-num{width:24px;height:24px;border-radius:12px;background:var(--accent-primary);color:var(--text-on-accent);display:grid;place-items:center;font:700 12px/1 var(--font-sans);flex:none}.note-hl{align-self:flex-start;background:var(--note-tip-paper);color:var(--text-note);padding:0 4px}.home-head{padding:calc(var(--space-xl) + env(safe-area-inset-top)) var(--space-lg) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs)}.home-actions{position:sticky;bottom:0;display:flex;gap:var(--space-md);padding:var(--space-md) var(--space-lg) calc(var(--space-xl) + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg-paper) 30%)}.home-actions .btn{flex:1;padding-inline:var(--space-lg)}.empty{padding:48px var(--space-lg);text-align:center;color:var(--text-secondary);display:flex;flex-direction:column;gap:var(--space-sm);align-items:center}.section-title{margin-top:var(--space-md)}.banner{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-sm)}.flashcard{min-height:320px;border-radius:var(--radius-xl);background:var(--bg-card);box-shadow:var(--shadow-card);padding:32px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);text-align:center;width:100%}.flashcard[data-flipped=true]{background:color-mix(in srgb,var(--accent-primary) 8%,var(--bg-card))}.heat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:var(--space-sm)}.heat-cell{aspect-ratio:1;border-radius:var(--radius-md);display:grid;place-items:center;font:500 12px/1 var(--font-sans)}.mind-branch{border-left:3px solid var(--accent-primary);padding-left:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.cloze-answer{background:var(--note-explanation-paper);color:var(--text-note);padding:0 6px;border-radius:4px;font-weight:700}.cloze-blank{border-bottom:2px solid var(--accent-primary);padding:0 18px}.chat{display:flex;flex-direction:column;gap:var(--space-sm)}.bubble{max-width:85%;padding:var(--space-md);border-radius:var(--radius-lg);white-space:pre-wrap}.bubble-me{align-self:flex-end;background:var(--accent-primary);color:var(--text-on-accent)}.bubble-ai{align-self:flex-start;background:var(--bg-card);box-shadow:var(--shadow-card)}.input{flex:1;min-height:48px;border-radius:var(--radius-lg);border:1px solid var(--border-line);background:var(--bg-card);color:var(--text-primary);padding:0 var(--space-lg);font:inherit}.lecture .lecture-body{padding-bottom:180px}.lecture-head{margin-top:var(--space-sm);flex-wrap:wrap;gap:var(--space-sm)}.lecture-empty{padding:var(--space-xl) 0;text-align:center}.badge{position:absolute;top:2px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--accent-primary);color:var(--text-on-accent);font:700 10px/16px var(--font-sans)}.slide{position:relative;width:100%;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);touch-action:pan-y}.slide canvas{display:block;width:100%;height:auto}.slide-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.marks{position:absolute;top:0;right:0;bottom:0;left:0}.hl{position:absolute;border-radius:4px;mix-blend-mode:multiply;animation:draw .55s ease-out .1s both;transform-origin:left center}.flag{position:absolute;transform:translate(-50%,-50%);width:24px;height:22px;display:grid;place-items:center;color:var(--text-note);font:900 12px/1 var(--font-sans);clip-path:polygon(0 0,100% 0,100% 70%,72% 100%,0 100%);box-shadow:0 1px 2px #00000040;animation:pop .35s cubic-bezier(.3,1.6,.5,1)}.flag:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink)}.flag.sel{transform:translate(-50%,-50%) scale(1.3)}.flag.preview,.postit-slot.preview,.nb-line.preview{opacity:.65}.callout{position:absolute;width:min(62%,260px);padding:7px 9px;color:var(--text-note);text-align:left;white-space:pre-line;font:700 12px/1.35 var(--font-sans);clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%);filter:drop-shadow(0 3px 6px rgb(0 0 0 / .22));animation:stick .45s cubic-bezier(.3,1.4,.5,1)}.postit-slot{cursor:pointer;transition:transform .15s}.postit-slot.sel .postit{outline:2px solid var(--accent-primary);outline-offset:2px}.postit-slot.fresh{animation:stick .45s cubic-bezier(.3,1.4,.5,1)}.notebook{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}.notebook .note-sheet{border-radius:0;min-height:50vh}.notebook-band{background:var(--accent-primary);color:var(--text-on-accent);padding:var(--space-lg) var(--space-xl);display:flex;flex-direction:column;gap:2px}.note-section.now .note-num{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-primary) 25%,transparent)}.nb-line{cursor:pointer}.nb-line.fresh{animation:write .6s ease-out}.nb-mark{font-weight:900}.bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:5;max-width:480px;margin:0 auto;background:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:0 -4px 14px #00000012;padding:var(--space-md) var(--space-xl) calc(var(--space-lg) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-sm)}.caption-line{display:flex;gap:6px;align-items:center;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rec-dot{width:8px;height:8px;border-radius:4px;background:var(--accent-record);flex:none;animation:blink 1.2s infinite}.pager{display:flex;align-items:center;gap:var(--space-xs)}.pager button{width:32px;height:32px;display:grid;place-items:center;color:var(--accent-primary)}.round{width:60px;height:60px;border-radius:30px;display:grid;place-items:center;flex:none}.round-record{background:var(--accent-record);color:var(--text-on-accent)}.round-record.on{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent-record) 22%,transparent)}.round-record .stop{width:20px;height:20px;border-radius:4px;background:var(--text-on-accent)}.round-soft{width:44px;height:44px;background:color-mix(in srgb,var(--accent-primary) 12%,transparent);color:var(--accent-primary)}.term-stack{position:fixed;left:var(--space-lg);bottom:150px;z-index:6;display:grid;gap:6px;width:min(280px,calc(100% - 32px))}.term-toast{text-align:left;animation:stick .4s ease-out}.term-toast .term-card p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.live-banner{position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:8;width:min(448px,calc(100% - 32px));display:flex;gap:var(--space-md);align-items:center;text-align:left;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:var(--note-exam-paper);color:var(--text-note);box-shadow:var(--shadow-note)}.live-banner .icon{color:var(--note-exam-ink)}.live-banner b{display:block;color:var(--note-exam-ink)}.toast{position:fixed;left:50%;bottom:170px;transform:translate(-50%);z-index:9;background:var(--text-primary);color:var(--bg-paper);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);font:500 13px/18px var(--font-sans);max-width:calc(100% - 32px)}.sheet-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#00000059}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:11;max-width:480px;margin:0 auto;max-height:80dvh;overflow-y:auto;background:var(--bg-paper);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-xl) var(--space-lg) calc(var(--space-xl) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-md);animation:up .25s ease-out}.spin{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:.3}}@keyframes draw{0%{transform:scaleX(0)}}@keyframes pop{0%{transform:translate(-50%,-50%) scale(0)}}@keyframes stick{0%{opacity:0;transform:translateY(-6px) scale(.96)}}@keyframes write{0%{opacity:0;transform:translate(-6px)}}@keyframes up{0%{transform:translateY(30px);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.top-bar-back.on{background:color-mix(in srgb,var(--accent-primary) 14%,transparent);border-radius:var(--radius-md)}.postit-slot{position:relative}.play-chip{position:absolute;right:6px;bottom:-10px;display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:var(--radius-full);background:var(--bg-card);color:var(--accent-primary);box-shadow:var(--shadow-card);font:700 11px/1 var(--font-sans)}.player{gap:var(--space-sm)}.player input[type=range]{accent-color:var(--accent-primary)}.caption-big{display:flex;flex-direction:column;gap:4px;max-height:40vh;overflow:hidden}.caption-big p{font:500 16px/24px var(--font-sans);color:var(--text-secondary)}.caption-big p.now{font:700 22px/32px var(--font-sans);color:var(--text-primary)}.here{position:absolute;border:3px solid var(--accent-primary);border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-primary) 20%,transparent);transition:all .3s ease-out;pointer-events:none}.here span{position:absolute;top:-22px;left:-3px;background:var(--accent-primary);color:var(--text-on-accent);font:700 11px/1 var(--font-sans);padding:4px 6px;border-radius:4px;white-space:nowrap}textarea.draft{min-height:220px;padding:var(--space-md) var(--space-lg);resize:vertical;line-height:1.6}a.btn{text-decoration:none}.banner>.chip{align-self:flex-start}.review-banner{background:color-mix(in srgb,var(--accent-primary) 10%,var(--bg-card))}.confused-btn{position:relative}.grade-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm)}.grade-row .btn{padding-inline:0;min-height:48px}.privacy-list{display:flex;flex-direction:column;gap:var(--space-sm);padding-left:18px}.jokbo-head{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) 0}.jokbo-section{background:var(--bg-card);border-radius:var(--radius-lg);border-left:4px solid var(--accent-primary);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);box-shadow:var(--shadow-card);break-inside:avoid}.jokbo-line{padding:2px 0}.jokbo-page{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm) 0;border-top:1px solid var(--border-line)}.jokbo-page:first-of-type{border-top:0}.jokbo-terms{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-sm)}.hidden-answer{filter:blur(5px);-webkit-user-select:none;user-select:none}@media print{.no-print,.top-bar-back,.top-bar button{display:none!important}body{background:#fff}.screen{max-width:none}.jokbo-section{box-shadow:none;border:1px solid #ddd;border-left-width:4px}.hidden-answer{filter:none}.term-card{box-shadow:none;border:1px solid #eee}}.replay-start{display:flex;align-items:center;gap:6px;color:var(--accent-primary);font-weight:700;padding:2px 0;text-align:left}.caption-line.t-body{white-space:normal;color:var(--text-primary)}.home-shortcuts{flex-wrap:wrap;gap:var(--space-sm)}.concept-map{width:100%;height:auto;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);touch-action:manipulation}.concept-label{font:600 10px var(--font-sans);fill:var(--text-primary);paint-order:stroke;stroke:var(--bg-card);stroke-width:3px;pointer-events:none}.term-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.dot{display:inline-block;width:8px;height:8px;border-radius:4px}.dday{font:900 12px/1 var(--font-sans);width:auto;min-width:48px;padding:0 6px}.exam-banner{background:color-mix(in srgb,var(--note-exam-ink) 10%,var(--bg-card))}.exam-banner .dday{color:var(--note-exam-ink);background:color-mix(in srgb,var(--note-exam-ink) 14%,transparent)}.plan{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm) 0 var(--space-md)}.plan-day{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-card)}.plan-day.today{outline:2px solid var(--accent-primary)}input[type=date].input{padding:0 var(--space-lg)}.notebook-band.meeting{background:var(--note-tip-ink)}.postit-photo{width:100%;max-height:160px;object-fit:cover;border-radius:4px}.nb-photo{display:block;max-width:220px;max-height:140px;margin:6px 0 2px;border-radius:6px;object-fit:cover}.loud-tag{flex:none;padding:1px 6px;border-radius:var(--radius-full);background:var(--note-emphasis-paper);color:var(--note-emphasis-ink);font-weight:700}.action-row{display:flex;align-items:center;gap:var(--space-sm);padding:4px 0}.bi-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);padding:var(--space-sm) 0;border-top:1px solid var(--border-line)}.bi-row:first-of-type{border-top:0}@media(max-width:420px){.bi-row{grid-template-columns:1fr;gap:2px}}:root{--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.3, 1.5, .5, 1)}.route{animation:route-in .28s ease-out both}.screen-body>*{animation:rise .5s var(--ease-out) both}.screen-body>*:nth-child(1){animation-delay:30ms}.screen-body>*:nth-child(2){animation-delay:70ms}.screen-body>*:nth-child(3){animation-delay:.11s}.screen-body>*:nth-child(4){animation-delay:.15s}.screen-body>*:nth-child(5){animation-delay:.19s}.screen-body>*:nth-child(6){animation-delay:.23s}.screen-body>*:nth-child(7){animation-delay:.26s}.screen-body>*:nth-child(n+8){animation-delay:.29s}.home-head>*{animation:rise .5s var(--ease-out) both}.home-head>*:nth-child(2){animation-delay:60ms}.home-actions{animation:rise-far .55s var(--ease-out) .2s both}.list-item,.btn,.chip,.round,.flashcard,.top-bar-back,.term-toast,.play-chip{transition:transform .16s var(--ease-out),box-shadow .2s ease,background-color .2s ease,color .2s ease,opacity .2s ease;-webkit-tap-highlight-color:transparent}@media(hover:hover){.list-item:hover{transform:translateY(-2px);box-shadow:0 10px 22px #00000017}.btn:not(:disabled):hover{transform:translateY(-1px)}.postit-slot:hover .postit{transform:rotate(0) translateY(-3px) scale(1.02)}}.list-item:active,.btn:not(:disabled):active,.round:active,.top-bar-back:active,.play-chip:active{transform:scale(.96)}.chip:active{transform:scale(.92)}.chip-selected{animation:chip-pop .32s var(--ease-spring)}.postit{transition:transform .25s var(--ease-out),box-shadow .25s ease}.flip-in{animation:flip .45s var(--ease-out);backface-visibility:hidden}.round-record.on{position:relative}.round-record.on:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;border:3px solid var(--accent-record);animation:ripple 1.6s ease-out infinite;pointer-events:none}.rec-dot{animation:blink 1.2s infinite,breathe 1.2s ease-in-out infinite}.live-banner{animation:drop-in .45s var(--ease-spring)}.term-toast{animation:slide-in-left .45s var(--ease-spring)}.toast{animation:toast-in .3s var(--ease-out)}.sheet{animation:up .32s var(--ease-out)}.sheet-bg{animation:route-in .25s ease-out}.heat-cell{animation:cell-in .45s var(--ease-spring) both}.concept-map circle{transform-box:fill-box;transform-origin:center;animation:node-pop .5s var(--ease-spring) both}.concept-map line{animation:route-in .8s ease-out both}.bubble{animation:rise .35s var(--ease-out) both}.plan-day{transition:transform .2s var(--ease-out)}.empty .icon{animation:float 3.2s ease-in-out infinite}.nb-line.fresh,.postit-slot.fresh{animation:stick .5s var(--ease-spring)}@keyframes route-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes rise-far{0%{opacity:0;transform:translateY(40px)}}@keyframes chip-pop{40%{transform:scale(1.08)}}@keyframes flip{0%{transform:perspective(900px) rotateY(-90deg);opacity:.4}}@keyframes ripple{0%{transform:scale(1);opacity:.7}to{transform:scale(1.6);opacity:0}}@keyframes breathe{50%{transform:scale(1.35)}}@keyframes drop-in{0%{opacity:0;transform:translate(-50%,-24px)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}}@keyframes cell-in{0%{opacity:0;transform:scale(.6)}}@keyframes node-pop{0%{opacity:0;transform:scale(0)}}@keyframes float{50%{transform:translateY(-6px)}}.course-group{display:flex;flex-direction:column;gap:var(--space-md)}.course-title{color:var(--text-secondary);font-weight:700;letter-spacing:.02em;margin-top:var(--space-sm)}.source-chip{position:absolute;left:6px;bottom:-10px;display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:var(--radius-full);background:var(--accent-primary);color:var(--text-on-accent);box-shadow:var(--shadow-card);font:700 11px/1 var(--font-sans);animation:chip-pop .3s var(--ease-spring)}.source-list{display:flex;flex-direction:column;gap:6px;max-height:40dvh;overflow-y:auto}.source-list mark{background:var(--note-explanation-paper);color:var(--text-note);border-radius:3px;padding:0 2px}.star-btn{color:var(--note-emphasis-ink);background:color-mix(in srgb,var(--note-emphasis-ink) 14%,transparent)}.star-btn:active .icon{animation:chip-pop .3s var(--ease-spring)}.bottom-bar .round-soft{width:42px;height:42px}.bottom-bar .row{gap:8px}.search-box{display:flex;align-items:center;gap:var(--space-sm);color:var(--accent-primary)}.search-box .input{flex:1}.search-hit{align-items:flex-start}.search-hit mark,.bubble mark{background:var(--note-explanation-paper);color:var(--text-note);border-radius:3px;padding:0 2px}.postit-slot.unsure .postit{outline:2px dashed var(--note-emphasis-ink);outline-offset:2px;opacity:.88}.confirm-chip{position:absolute;left:6px;top:-10px;padding:3px 8px;border-radius:var(--radius-full);background:var(--note-emphasis-ink);color:var(--text-on-accent);font:700 11px/1 var(--font-sans);box-shadow:var(--shadow-card);animation:chip-pop .3s var(--ease-spring)}.onboarding{align-items:center;text-align:center;gap:var(--space-md)}.onboarding .row{width:100%}.ob-art{width:112px;height:112px;border-radius:36px;display:grid;place-items:center;color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-card));animation:node-pop .5s var(--ease-spring) both}.ob-dots{display:flex;gap:6px}.ob-dots span{width:8px;height:8px;border-radius:4px;background:var(--border-line);transition:width .25s var(--ease-out),background .25s}.ob-dots span.on{width:22px;background:var(--accent-primary)}.bottom-bar>.row{flex-wrap:wrap;justify-content:flex-end;row-gap:var(--space-sm)}.bottom-bar>.row>.grow{flex:1 1 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.lecture .lecture-body{padding-bottom:230px}.term-stack{bottom:200px}.toast{bottom:210px}.timetable{display:flex;flex-direction:column;gap:var(--space-xs)}.class-now{background:var(--bg-card)}.class-now.live{background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-card));outline:2px solid var(--accent-primary)}.timetable-row{align-items:center;gap:var(--space-sm);padding:0 var(--space-xs)}.timetable-edit{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);box-shadow:var(--shadow-card)}.timetable-day{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.timetable-class{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 10px;border-radius:999px;background:color-mix(in srgb,var(--accent-primary) 10%,transparent)}.timetable-class button{display:grid;place-items:center;width:24px;height:24px;border:0;background:none;color:var(--text-tertiary);border-radius:50%}.timetable-form{display:flex;flex-direction:column;gap:var(--space-sm)}.timetable-form .row{gap:var(--space-sm)}.timetable-form .input{min-width:0;padding:0 var(--space-md)}@supports (view-transition-name: none){@media(prefers-reduced-motion:no-preference){.route{animation:none}::view-transition-old(root){animation:vt-out .26s var(--ease-out) both}::view-transition-new(root){animation:vt-in .34s var(--ease-out) both}:root[data-nav=back]::view-transition-old(root){animation-name:vt-out-back}:root[data-nav=back]::view-transition-new(root){animation-name:vt-in-back}:root[data-nav=same]::view-transition-old(root){animation-name:vt-fade-out}:root[data-nav=same]::view-transition-new(root){animation-name:route-in}}}@keyframes vt-out{to{opacity:0;transform:translate(-28px) scale(.98)}}@keyframes vt-in{0%{opacity:0;transform:translate(44px)}}@keyframes vt-out-back{to{opacity:0;transform:translate(44px)}}@keyframes vt-in-back{0%{opacity:0;transform:translate(-28px) scale(.98)}}@keyframes vt-fade-out{to{opacity:0}}.list-item.stagger{animation:rise .5s var(--ease-out) both}.btn-primary{position:relative;overflow:hidden}.btn-primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 35%,rgb(255 255 255 / .28) 50%,transparent 65%);transform:translate(-120%);animation:sweep 4.5s ease-in-out 1.2s infinite;pointer-events:none}@keyframes sweep{0%,70%{transform:translate(-120%)}to{transform:translate(120%)}}.home-actions{background:color-mix(in srgb,var(--bg-paper) 72%,transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4)}@supports (animation-timeline: scroll()){.top-bar{animation:bar-glass linear both;animation-timeline:scroll();animation-range:0 80px}@keyframes bar-glass{to{background:color-mix(in srgb,var(--bg-paper) 78%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--border-line)}}}.skeleton{display:flex;flex-direction:column;gap:10px;padding:var(--space-lg);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.skeleton span{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--border-line) 25%,color-mix(in srgb,var(--border-line) 40%,var(--bg-card)) 50%,var(--border-line) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.skeleton span:first-child{height:20px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.voice-bars{display:inline-flex;align-items:center;gap:2px;height:16px;flex:none}.voice-bars i{width:3px;height:100%;border-radius:2px;background:var(--accent-record);transform-origin:center;animation:voice .9s ease-in-out infinite}.voice-bars i:nth-child(1){animation-delay:-.5s}.voice-bars i:nth-child(2){animation-delay:-.2s}.voice-bars i:nth-child(3){animation-delay:-.7s}.voice-bars i:nth-child(4){animation-delay:-.35s}.voice-bars i:nth-child(5){animation-delay:-.6s}.voice-bars.loud i{animation-duration:.45s;background:var(--note-emphasis-ink)}@keyframes voice{0%,to{transform:scaleY(.25)}50%{transform:scaleY(1)}}.caption-text{min-width:0;overflow:hidden;text-overflow:ellipsis;animation:caption-in .35s var(--ease-out)}@keyframes caption-in{0%{opacity:0;transform:translateY(6px);filter:blur(3px)}}.word{display:inline-block;animation:word-in .5s var(--ease-out) both}@keyframes word-in{0%{opacity:0;transform:translateY(.5em) rotate(2deg);filter:blur(4px)}}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:1}.confetti i{position:absolute;top:-20px;border-radius:2px;opacity:0;animation:confetti-fall linear both}@keyframes confetti-fall{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--drift),105vh) rotate(var(--spin))}}.streak{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-card)}.streak-flame{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;color:var(--text-tertiary);background:var(--border-line)}.streak.lit .streak-flame{color:#fff;background:radial-gradient(circle at 50% 70%,#ffb020,#f0454a 70%);box-shadow:0 6px 18px #f0454a59;animation:flame 1.8s ease-in-out infinite}.streak.lit .streak-flame .icon{animation:flicker .5s ease-in-out infinite alternate;transform-origin:50% 90%}@keyframes flame{50%{box-shadow:0 6px 26px #ffb0208c;transform:scale(1.05)}}@keyframes flicker{0%{transform:rotate(-4deg) scaleY(.96)}to{transform:rotate(4deg) scaleY(1.06)}}.streak-week{display:flex;gap:4px;flex:none}.streak-week span{display:flex;flex-direction:column;align-items:center;gap:3px;font:500 10px/1 var(--font-sans);color:var(--text-tertiary);animation:rise .4s var(--ease-spring) both}.streak-week i{width:12px;height:12px;border-radius:50%;background:var(--border-line)}.streak-week .done i{background:var(--accent-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 20%,transparent)}.streak-week .done{color:var(--text-secondary)}.story-entry{display:flex;align-items:center;gap:var(--space-md);width:100%;text-align:left;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:linear-gradient(120deg,color-mix(in srgb,var(--accent-primary) 16%,var(--bg-card)),color-mix(in srgb,var(--note-exam-ink) 12%,var(--bg-card)));box-shadow:var(--shadow-card);transition:transform .16s var(--ease-out)}.story-entry:active{transform:scale(.97)}.story-ring{position:relative;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none;color:#fff;background:var(--accent-primary)}.story-ring:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;padding:2px;background:conic-gradient(var(--note-exam-ink),var(--note-explanation-ink),var(--accent-primary),var(--note-tip-ink),var(--note-exam-ink));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 5s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.story-count{padding:4px 10px;border-radius:var(--radius-full);background:var(--bg-card);color:var(--accent-primary);font-weight:700}.story{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;max-width:480px;margin:0 auto;color:#fff;background:color-mix(in srgb,var(--tone) 38%,#14121c);overflow:hidden;transition:background .8s ease;animation:story-open .4s var(--ease-out);--tone: var(--accent-primary)}.story.tone-exam{--tone: var(--note-exam-ink)}.story.tone-emphasis{--tone: var(--note-emphasis-ink)}.story.tone-qa{--tone: var(--note-qa-ink)}.story.tone-tip{--tone: var(--note-tip-ink)}.story.tone-example{--tone: var(--note-example-ink)}.story.tone-explanation{--tone: var(--note-explanation-ink)}.story.tone-notice{--tone: var(--note-notice-ink)}@keyframes story-open{0%{opacity:0;transform:scale(.92);border-radius:32px}}.story-bg{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:0;filter:blur(60px);opacity:.95;transition:opacity .6s}.story-bg i{position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:var(--tone);transition:background .8s ease;animation:drift 12s ease-in-out infinite alternate}.story-bg i:nth-child(1){left:-10%;top:-5%}.story-bg i:nth-child(2){right:-15%;bottom:5%;opacity:.6;animation-duration:16s;animation-direction:alternate-reverse;filter:hue-rotate(40deg)}.story-bg i:nth-child(3){left:20%;top:40%;width:45%;opacity:.45;animation-duration:20s;filter:hue-rotate(-50deg)}.story:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#00000047,#00000014 30%,#0000006b);pointer-events:none}.story>*{position:relative;z-index:2}.story>.story-bg{z-index:0;position:absolute}.story-bars{display:flex;gap:4px;padding:calc(10px + env(safe-area-inset-top)) 12px 0}.story-bars span{flex:1;height:3px;border-radius:2px;background:#ffffff4d;overflow:hidden}.story-bars b{display:block;height:100%;width:0;background:#fff;border-radius:2px}.story-bars b.done{width:100%}.story-bars b.run{animation:bar-fill linear forwards}@keyframes bar-fill{to{width:100%}}.story-head{display:flex;align-items:center;gap:var(--space-md);padding:10px 12px 0 16px;opacity:.9}.story-head button{width:40px;height:40px;display:grid;place-items:center;color:#fff;z-index:4;position:relative}.story-tap{position:absolute!important;top:90px;bottom:110px;width:34%;z-index:3!important}.story-tap.left{left:0}.story-tap.right{right:0;width:66%}.story-card{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--space-lg);padding:var(--space-xl);pointer-events:none}.story-label{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:6px 12px;border-radius:var(--radius-full);background:#ffffff2e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:700 13px/18px var(--font-sans);animation:slide-in-left .5s var(--ease-spring) both}.story-text{font:700 22px/32px var(--font-sans);letter-spacing:-.01em;text-wrap:balance;word-break:keep-all}.story-text.big{font:900 30px/40px var(--font-sans)}.story-quote{font:400 14px/22px var(--font-sans);opacity:.8;padding-left:var(--space-md);border-left:2px solid rgb(255 255 255 / .5);animation:rise .6s var(--ease-out) .5s both;word-break:keep-all}.story-meta{opacity:.7;animation:rise .6s var(--ease-out) .7s both}.story-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.story-stats div{padding:var(--space-lg);border-radius:var(--radius-lg);background:#ffffff24;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:2px;animation:rise .6s var(--ease-spring) both}.story-stats div:nth-child(2){animation-delay:.1s}.story-stats div:nth-child(3){animation-delay:.2s}.story-stats div:nth-child(4){animation-delay:.3s}.story-stats b{font:900 34px/40px var(--font-sans);font-variant-numeric:tabular-nums}.story-stats span{font:500 13px/18px var(--font-sans);opacity:.8}.story-foot{padding:0 var(--space-xl) calc(var(--space-xl) + env(safe-area-inset-bottom));min-height:100px;display:flex;align-items:flex-end;z-index:4!important}.story-foot .btn{flex:1;animation:rise-far .5s var(--ease-out) .4s both}.story-foot .btn-secondary{background:#ffffffeb;color:#1f1d1b}.flow{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-card)}.flow-bars{display:grid;align-items:end;gap:2px;height:72px}.flow-bar{position:relative;height:var(--h);min-width:0;border-radius:3px 3px 1px 1px;background:var(--accent-primary);opacity:var(--o);transform-origin:bottom;animation:bar-grow .6s var(--ease-spring) both;transition:opacity .2s,transform .2s var(--ease-out)}.flow-bar.exam{background:var(--note-exam-ink)}.flow-bar.on{opacity:1;transform:scaleY(1.08);outline:2px solid color-mix(in srgb,currentColor 25%,transparent);outline-offset:1px}.flow-bar i{position:absolute;left:50%;top:-8px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--note-tip-ink)}@keyframes bar-grow{0%{transform:scaleY(0);opacity:0}}.flow-info{display:flex;align-items:center;gap:var(--space-sm);text-align:left;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent-primary) 8%,transparent);color:var(--text-secondary)}.flow-info b{color:var(--text-primary)}.flow-go{display:inline-flex;align-items:center;gap:4px;flex:none;color:var(--accent-primary);font-weight:700}.postit-grid .postit{animation:stick .5s var(--ease-spring) both}.postit-grid .postit:nth-child(2){animation-delay:60ms}.postit-grid .postit:nth-child(3){animation-delay:.12s}.postit-grid .postit:nth-child(4){animation-delay:.18s}.postit-grid .postit:nth-child(n+5){animation-delay:.24s}.postit:active{transform:rotate(0) scale(1.03) translateY(-2px);box-shadow:0 14px 22px #0000002e}.review-note{display:flex;align-items:center;gap:6px;color:var(--note-example-ink);font-weight:500}@keyframes drift{0%{transform:translate(-6%,-4%) scale(.9)}to{transform:translate(10%,8%) scale(1.15)}}.intro{position:relative;--p: 0;--s1: 0;--s2: 0;--s3: 0;--s4: 0;--mx: 0;--my: 0}.intro-stage{position:sticky;top:0;height:100dvh;overflow:hidden;max-width:560px;margin:0 auto;isolation:isolate;perspective:900px;color:#2a211b}.intro-sky{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:#ff7a1a;transition:background-color .7s ease}.scene-1 .intro-sky{background:#fff1dc}.scene-2 .intro-sky{background:#ffc7d3}.scene-3 .intro-sky{background:#cfeaff}.scene-4 .intro-sky{background:#ff7a1a}.intro-sky:after{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(circle at calc(50% + var(--mx) * 12%) calc(42% + var(--my) * 8%),rgb(255 255 255 / .55),transparent 55%)}.intro-word{position:absolute;left:50%;top:16%;z-index:-1;font:400 min(46vw,250px)/1 var(--font-display);color:#fff;opacity:calc(1 - var(--s1) * 1.4);white-space:nowrap;transform:translate(calc(-50% + var(--mx) * -14px),calc(var(--s1) * -40vh + var(--my) * -10px)) scale(calc(1 + var(--s1) * .5));letter-spacing:-.04em;text-shadow:0 8px 0 rgb(0 0 0 / .08)}.intro-mascot{position:absolute;left:50%;top:50%;z-index:3;margin:-110px 0 0 -110px;transition:transform .7s var(--ease-bounce);transform:translate(calc(var(--mx) * 10px),calc(-4vh + var(--my) * 8px)) scale(1.25) rotate(calc(var(--mx) * 4deg))}.scene-1 .intro-mascot{transform:translate(calc(-22vw + var(--mx) * 8px),-17vh) scale(.82)}.scene-2 .intro-mascot{transform:translate(calc(var(--mx) * 8px),-19vh) scale(1.08)}.scene-3 .intro-mascot{transform:translate(calc(20vw + var(--mx) * 8px),-18vh) scale(.84) rotate(4deg)}.scene-4 .intro-mascot{transform:translate(calc(var(--mx) * 8px),-20vh) scale(1.12)}.intro-floaters{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;transform-style:preserve-3d}.floater{position:absolute;--d: 1;transition:opacity .5s;opacity:calc(1 - var(--s1) * 1.6);transform:translate3d(calc(var(--mx) * var(--d) * 26px),calc(var(--my) * var(--d) * 20px + var(--s1) * var(--d) * -70vh),0) rotate(calc(var(--r, 0deg) + var(--p) * 300deg)) scale(var(--sc, 1))}.floater .icon{animation:bob 4s ease-in-out infinite;filter:drop-shadow(0 10px 12px rgb(80 30 0 / .25))}.floater:nth-child(2n) .icon{animation-duration:5.2s;animation-direction:reverse}@keyframes bob{50%{transform:translateY(-12px) rotate(6deg)}}.f0{left:6%;top:12%;--d: 1.4;--r: -14deg;--sc: 1.1}.f1{right:8%;top:9%;--d: .7;--r: 12deg}.f2{left:12%;top:60%;--d: 1.1;--r: 8deg;--sc: .9}.f3{right:6%;top:58%;--d: 1.5;--r: -10deg;--sc: 1.15}.f4{left:40%;top:4%;--d: .5;--r: 20deg;--sc: .7}.f5{right:26%;top:63%;--d: 1.2;--r: -22deg}.f6{left:2%;top:36%;--d: .6;--r: 16deg;--sc: .75}.f7{right:2%;top:34%;--d: .9;--r: -6deg;--sc: .8}.f8{left:30%;top:30%;--d: .8;--r: 10deg;--sc: .7}.f9{right:18%;top:24%;--d: .4;--r: -18deg;--sc: .6}.scene-3 .floater{opacity:1;transition:transform .8s var(--ease-bounce),opacity .4s;left:auto;right:auto;top:12%;transform:translate3d(calc(8vw + (var(--i) - 0) * 0px),0,0) rotate(0) scale(.62)}.scene-3 .f0{left:4%;top:12%}.scene-3 .f1{left:22%;top:12%}.scene-3 .f2{left:40%;top:12%}.scene-3 .f3{left:4%;top:24%}.scene-3 .f4{left:22%;top:24%}.scene-3 .f5{left:40%;top:24%}.scene-3 .f6,.scene-3 .f7,.scene-3 .f8,.scene-3 .f9{opacity:0}.scene-3 .floater .icon{animation:none}.intro-wave{position:absolute;left:8%;right:8%;top:47%;height:64px;z-index:1;display:grid;grid-template-columns:repeat(28,1fr);gap:4px;align-items:center;opacity:0;transform:scaleX(.3);transition:opacity .5s,transform .7s var(--ease-bounce)}.scene-1 .intro-wave{opacity:1;transform:scaleX(1)}.intro-wave i{height:100%;border-radius:99px;background:#ff7a1a;animation:voice 1s ease-in-out infinite}.intro-wave i:nth-child(3n){animation-duration:.7s}.intro-wave i:nth-child(4n){animation-duration:1.3s}.intro-notes{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.intro-note{position:absolute;padding:12px 14px;border-radius:14px;border:2px solid;font:400 17px/22px var(--font-display);color:#2a211b;box-shadow:0 5px #0000001f;opacity:0;transition:transform .7s var(--ease-bounce),opacity .35s}.n0{left:6%;top:40%;transform:translate(-120vw,-20vh) rotate(-40deg)}.n1{right:6%;top:44%;transform:translate(120vw,-10vh) rotate(40deg)}.n2{left:12%;top:52%;transform:translate(-120vw,30vh) rotate(30deg)}.n3{right:10%;top:55%;transform:translate(120vw,30vh) rotate(-30deg)}.scene-2 .intro-note{opacity:1}.scene-2 .n0{transform:rotate(-5deg)}.scene-2 .n1{transform:rotate(4deg);transition-delay:.08s}.scene-2 .n2{transform:rotate(3deg);transition-delay:.16s}.scene-2 .n3{transform:rotate(-4deg);transition-delay:.24s}.intro-copy{position:absolute;left:0;right:0;bottom:13dvh;padding:0 28px;z-index:4;text-align:center;opacity:0;transform:translateY(40px) scale(.96);pointer-events:none;transition:opacity .45s ease,transform .6s var(--ease-out);display:flex;flex-direction:column;align-items:center;gap:10px}.intro-copy h1{font:400 min(17vw,84px)/1.05 var(--font-display);color:#fff;letter-spacing:-.02em;text-shadow:0 5px 0 rgb(0 0 0 / .1)}.intro-copy h2{font:400 min(9.4vw,44px)/1.2 var(--font-display);letter-spacing:-.01em;text-wrap:balance;word-break:keep-all}.intro-copy p{font:500 16px/24px var(--font-sans);max-width:30ch;word-break:keep-all;opacity:.85}.intro-kicker{font:400 18px/24px var(--font-display)!important;color:#fff;opacity:1!important;background:#00000024;padding:4px 14px;border-radius:99px}.scene-0 .c0,.scene-1 .c1,.scene-2 .c2,.scene-3 .c3,.scene-4 .c4{opacity:1;transform:none;pointer-events:auto}.scene-4 .intro-copy h2,.scene-4 .intro-copy p{color:#fff}.scene-4 .intro-copy .btn{background:#fff;color:#d95f00;box-shadow:0 5px #0000002e;min-width:200px;font-size:22px;min-height:60px;margin-top:8px;animation:boing .6s var(--ease-bounce) .3s both}.intro-hint{position:absolute;left:0;right:0;bottom:4dvh;z-index:4;text-align:center;font:500 13px/1 var(--font-sans);color:#fff;opacity:calc(1 - var(--s1) * 3);display:flex;flex-direction:column;align-items:center;gap:8px}.intro-hint span{width:22px;height:34px;border:2px solid #fff;border-radius:12px;position:relative}.intro-hint span:after{content:"";position:absolute;left:50%;top:6px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:scroll-dot 1.5s ease-in-out infinite}@keyframes scroll-dot{60%{transform:translateY(10px);opacity:0}to{opacity:0}}.intro-skip{position:absolute;right:14px;top:calc(12px + env(safe-area-inset-top));z-index:5;padding:8px 14px;border-radius:99px;background:#00000024;color:inherit;font:600 13px/1 var(--font-sans)}.scene-0 .intro-skip,.scene-4 .intro-skip{color:#fff}.intro-dots{position:absolute;left:14px;top:50%;z-index:5;display:flex;flex-direction:column;gap:8px;transform:translateY(-50%)}.intro-dots i{width:6px;height:6px;border-radius:3px;background:#00000038;transition:height .3s var(--ease-bounce),background-color .3s}.intro-dots i.on{height:22px;background:#0009}@media(prefers-reduced-motion:reduce){.floater,.intro-mascot,.intro-word{transform:none!important}}.slide.turn-next-0{animation:turn-next-a .32s var(--ease-out)}.slide.turn-next-1{animation:turn-next-b .32s var(--ease-out)}.slide.turn-prev-0{animation:turn-prev-a .32s var(--ease-out)}.slide.turn-prev-1{animation:turn-prev-b .32s var(--ease-out)}@keyframes turn-next-a{0%{opacity:.3;transform:translate(34px) rotate(1.2deg)}}@keyframes turn-next-b{0%{opacity:.3;transform:translate(34px) rotate(1.2deg)}}@keyframes turn-prev-a{0%{opacity:.3;transform:translate(-34px) rotate(-1.2deg)}}@keyframes turn-prev-b{0%{opacity:.3;transform:translate(-34px) rotate(-1.2deg)}}.quiz-choice{animation:rise .4s var(--ease-out) both;white-space:normal;text-align:left;justify-content:flex-start;height:auto}.quiz-choice.fx-right{animation:right-pop .5s var(--ease-bounce);background:var(--leaf);box-shadow:0 4px #1f8a50;color:#fff}.quiz-choice.fx-wrong{animation:wrong-shake .4s ease-in-out}@keyframes right-pop{0%{transform:scale(.94)}50%{transform:scale(1.05)}}@keyframes wrong-shake{20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.quiz-result{display:flex;align-items:flex-end;gap:12px}.quiz-result .says{flex:1;font:500 14px/21px var(--font-sans)}.flashcard.card-in{animation:card-in .45s var(--ease-bounce)}@keyframes card-in{0%{opacity:0;transform:translate(60px) rotate(6deg) scale(.92)}}.grade-row .btn{animation:rise .35s var(--ease-out) both}.grade-row .btn:nth-child(2){animation-delay:40ms}.grade-row .btn:nth-child(3){animation-delay:80ms}.grade-row .btn:nth-child(4){animation-delay:.12s}.search-hit,.jokbo-section,.plan-day,.term-card,.mind-branch,.timetable-class{animation:rise .45s var(--ease-out) both}.search-hit:nth-child(2),.jokbo-section:nth-of-type(2),.plan-day:nth-child(2),.term-card:nth-child(2){animation-delay:50ms}.search-hit:nth-child(3),.jokbo-section:nth-of-type(3),.plan-day:nth-child(3),.term-card:nth-child(3){animation-delay:.1s}.search-hit:nth-child(n+4),.jokbo-section:nth-of-type(n+4),.plan-day:nth-child(n+4),.term-card:nth-child(n+4){animation-delay:.15s}.postit-slot.fresh .postit,.nb-line.fresh{animation:drop-stick .6s var(--ease-bounce)}@keyframes drop-stick{0%{opacity:0;transform:translateY(-26px) rotate(-8deg) scale(1.15)}70%{transform:translateY(2px) rotate(1deg) scale(.98)}}.live-banner{animation:drop-in .5s var(--ease-bounce)}.toast{animation:toast-in .4s var(--ease-bounce)}.sheet{animation:sheet-up .42s var(--ease-bounce)}@keyframes sheet-up{0%{transform:translateY(60%);opacity:.4}}.dday{animation:boing .5s var(--ease-bounce) .2s both}.course-group .list-item{animation:rise .42s var(--ease-out) both}.carrots{flex-direction:column;align-items:stretch;gap:10px}.carrots-top{gap:var(--space-md)}.level{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px}.level-name{font:400 15px/20px var(--font-display);color:var(--accent-primary)}.level-bar{height:10px;border-radius:99px;background:var(--fill-soft);overflow:hidden;border:2px solid var(--border-line)}.level-bar i{display:block;height:100%;border-radius:99px;background:var(--accent-primary);animation:level-fill 1s var(--ease-out) .3s both}@keyframes level-fill{0%{width:0}}.level-next{grid-column:1 / -1;color:var(--text-tertiary)}.tasks-card{gap:6px}.task-row{display:flex;align-items:flex-start;gap:10px;padding:6px 0;animation:rise .4s var(--ease-out) both}.task-check{flex:none;width:28px;height:28px;border-radius:10px;border:2px solid var(--border-line);background:var(--bg-card);color:transparent;display:grid;place-items:center;box-shadow:0 2px 0 var(--line-deep);transition:transform .1s,background-color .2s,color .2s;margin-top:1px}.task-check:active{transform:translateY(2px) scale(.92);background:var(--leaf);color:#fff;border-color:#1f8a50;box-shadow:none}.task-text{text-align:left}.week-block{animation:block-in .45s var(--ease-bounce) both}@keyframes block-in{0%{opacity:0;transform:scale(.7)}}.timetable-edit{animation:rise .35s var(--ease-out)}.privacy-list li,.screen-body>ul>li{animation:rise .4s var(--ease-out) both}.concept-map text{animation:route-in .6s ease-out .3s both}.empty-art{display:inline-block;animation:float 3.2s ease-in-out infinite}.empty-art .icon.art{filter:drop-shadow(0 10px 14px rgb(80 30 0 / .2))}.intro-hero{display:grid;place-items:center;width:220px;height:220px;animation:orb-in .6s var(--ease-bounce)}.intro-hero .icon.art{filter:drop-shadow(0 18px 24px rgb(80 30 0 / .3));animation:bob 3.6s ease-in-out infinite}@keyframes orb-in{0%{transform:scale(.5) rotate(-12deg);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.hero-title{margin-top:6px}.quiz-result{padding:12px 14px;border-radius:14px;border:2px solid;animation:rise .4s var(--ease-out)}.quiz-result.right{border-color:var(--leaf);background:color-mix(in srgb,var(--leaf) 10%,var(--bg-card))}.quiz-result.wrong{border-color:var(--accent-record);background:color-mix(in srgb,var(--accent-record) 8%,var(--bg-card))}.quiz-result b{display:block;font:400 17px/22px var(--font-display);margin-bottom:2px}.quiz-result.right b{color:var(--leaf)}.quiz-result.wrong b{color:var(--accent-record)}.listen-row .spin{flex:none}.switch{flex:none;width:50px;height:30px;border-radius:99px;background:var(--fill-soft);border:2px solid var(--border-line);position:relative;transition:background-color .2s}.switch i{position:absolute;left:2px;top:2px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0003;transition:transform .3s var(--ease-bounce)}.switch.on{background:var(--accent-primary);border-color:var(--accent-deep)}.switch.on i{transform:translate(20px)}.home-actions{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:8px}.home-actions .btn{padding-inline:8px;font-size:16px;min-width:0}.home-actions .btn .icon{width:20px;height:20px}.blk-0{--blk: var(--blk0);--blk-ink: var(--blk0-ink)}.blk-1{--blk: var(--blk1);--blk-ink: var(--blk1-ink)}.blk-2{--blk: var(--blk2);--blk-ink: var(--blk2-ink)}.blk-3{--blk: var(--blk3);--blk-ink: var(--blk3-ink)}.blk-4{--blk: var(--blk4);--blk-ink: var(--blk4-ink)}.blk-5{--blk: var(--blk5);--blk-ink: var(--blk5-ink)}.blk-6{--blk: var(--blk6);--blk-ink: var(--blk6-ink)}.blk-7{--blk: var(--blk7);--blk-ink: var(--blk7-ink)}.blk-none{--blk: var(--fill-soft);--blk-ink: var(--text-secondary)}body{background:var(--bg-paper);color:var(--text-primary);letter-spacing:-.01em}.icon.art{filter:none}.tone-violet{color:var(--ico-violet)}.tone-blue{color:var(--ico-blue)}.tone-yellow{color:var(--ico-yellow)}.tone-orange{color:var(--ico-orange)}.tone-red{color:var(--ico-red)}.tone-pink{color:var(--ico-pink)}.tone-green{color:var(--ico-green)}.tone-slate{color:var(--ico-slate)}.t-title-l,.hero-title{font:800 26px/34px var(--font-sans);letter-spacing:-.02em}.t-title-m{font:700 20px/28px var(--font-sans);letter-spacing:-.02em}.t-title-s{font:700 16px/22px var(--font-sans)}.top-bar-title{font:700 18px/26px var(--font-sans);text-align:center}.section-title{font:700 17px/24px var(--font-sans);background:none;padding:0}.num{font-variant-numeric:tabular-nums}.list-item,.banner,.flow,.skeleton,.plan-day,.jokbo-section,.timetable-edit,.flashcard,.bubble-ai,.term-card,.note-sheet,.carrots,.tasks-card,.tile{background:var(--bg-card);border:1px solid var(--border-line);border-radius:18px;box-shadow:var(--shadow-card)}.list-item{transition:transform .15s var(--ease-out),box-shadow .2s}button.list-item:active{transform:scale(.98);box-shadow:var(--shadow-card)}@media(hover:hover){.list-item:hover{transform:translateY(-1px);box-shadow:0 8px 24px #3c328c1a;border-color:var(--border-line)}}.jokbo-section{border-left:4px solid}.list-item-icon{width:44px;height:44px;border-radius:14px;background:var(--fill-soft);color:var(--accent-primary);transform:none;box-shadow:none}.list-item:nth-child(2n) .list-item-icon{transform:none}.list-item-icon.is-art{background:var(--fill-soft);padding:0;width:44px;height:44px}.list-item-icon.is-art .icon{width:26px!important;height:26px!important}.list-item-icon.has-art{background:var(--fill-soft);padding:8px 7px}.list-item-sub{color:var(--text-secondary);font:400 13px/18px var(--font-sans)}.list-item-chev{color:var(--text-tertiary)}.btn{border-radius:14px;font:700 16px/22px var(--font-sans);min-height:52px;box-shadow:none;border:0;transition:transform .12s var(--ease-out),filter .15s,background-color .2s}.btn-primary{background:var(--accent-primary);color:#fff;box-shadow:0 6px 16px #6b5cf647}.btn-primary:after{display:none}.btn-secondary{background:var(--bg-card);color:var(--accent-primary);border:1px solid var(--border-line);box-shadow:var(--shadow-card)}.btn-record{background:var(--accent-record);color:#fff;box-shadow:0 6px 16px #f2484b47}.btn:not(:disabled):active{transform:scale(.97);filter:brightness(.96);box-shadow:none}.btn:not(:disabled):hover{transform:none}.chip,button.chip,a.chip{font:600 13px/18px var(--font-sans);padding:8px 14px;border:1px solid transparent;box-shadow:none;margin-bottom:0;border-radius:999px}.chip-default,button.chip-default{background:var(--fill-soft);color:var(--text-secondary)}.chip-accent{background:var(--bg-card);color:var(--accent-primary);border-color:var(--border-line)}.chip-selected,button.chip-selected{background:var(--accent-primary);color:#fff;border-color:transparent;box-shadow:0 4px 10px #6b5cf640}button.chip:active,a.chip:active{transform:scale(.96);box-shadow:none}.scroll-x[role=tablist]{background:var(--fill-soft);border-radius:14px;padding:4px;gap:4px}.scroll-x[role=tablist] .chip{flex:1;justify-content:center;background:transparent;color:var(--text-secondary);box-shadow:none;padding:9px 12px;border-radius:11px;font-size:14px}.scroll-x[role=tablist] .chip-selected{background:var(--bg-card);color:var(--accent-primary);box-shadow:0 2px 8px #3c328c1a}.pick{box-shadow:none;margin-bottom:0;border:1px solid var(--border-line);background:var(--bg-card);color:var(--text-secondary);font:600 13px/18px var(--font-sans);border-radius:999px;padding:8px 14px;display:inline-flex;align-items:center;gap:6px;flex:none;white-space:nowrap}.pick i{width:8px;height:8px;border-radius:50%;background:var(--blk-ink, var(--text-tertiary))}.pick.on{background:var(--accent-primary);color:#fff;border-color:transparent;box-shadow:0 4px 10px #6b5cf640;animation:none}.pick.on i{background:#fff}.picks{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.top-bar{background:color-mix(in srgb,var(--bg-paper) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.top-bar-back{width:40px;height:40px;border-radius:12px;background:transparent;border:0;box-shadow:none;color:var(--text-primary);margin-left:-6px}.top-bar-back:active{transform:scale(.92);background:var(--fill-soft);box-shadow:none}.top-bar-back.on{background:var(--fill-soft);color:var(--accent-primary);border:0;box-shadow:none}.pager button{width:34px;height:34px;border-radius:10px;background:var(--fill-soft);border:0;box-shadow:none;color:var(--text-primary)}.pager button:active{transform:scale(.92);box-shadow:none}.home-head{padding-bottom:6px}.home-brand{display:flex;align-items:center;gap:8px;font:800 22px/28px var(--font-sans);letter-spacing:-.02em}.home-brand .icon{width:28px;height:28px}.hero-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:4px;padding:20px 20px 22px;border-radius:22px;color:#fff;text-align:left;background:linear-gradient(120deg,#6b5cf6,#8f7dff 55%,#a99bff);box-shadow:0 12px 28px #6b5cf64d}.hero-card b{font:800 21px/28px var(--font-sans);letter-spacing:-.02em}.hero-card span{font:500 14px/20px var(--font-sans);opacity:.9}.hero-card .hero-art{position:absolute;right:14px;bottom:10px;width:86px;height:86px;opacity:.95;color:#fff;filter:drop-shadow(0 6px 10px rgb(40 20 120 / .3))}.hero-card:before{content:"";position:absolute;right:-40px;top:-50px;width:170px;height:170px;border-radius:50%;background:#ffffff1f}.hero-card:active{transform:scale(.985)}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;text-align:left;transition:transform .15s var(--ease-out);animation:rise .45s var(--ease-out) both}.tile .icon.art{width:30px!important;height:30px!important}.tile b{display:block;font:700 15px/20px var(--font-sans)}.tile small{display:block;font:400 12px/16px var(--font-sans);color:var(--text-tertiary);margin-top:2px}.tile:active{transform:scale(.97)}.tile:nth-child(2){animation-delay:40ms}.tile:nth-child(3){animation-delay:80ms}.tile:nth-child(4){animation-delay:.12s}.tile:nth-child(5){animation-delay:.16s}.tile:nth-child(6){animation-delay:.2s}.tabbar{position:fixed;left:0;right:0;max-width:480px;margin:0 auto;bottom:0;z-index:4;display:grid;grid-template-columns:repeat(4,1fr);padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg-card) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border-line)}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font:600 11px/14px var(--font-sans);color:var(--text-tertiary);border-radius:12px}.tabbar button.on{color:var(--accent-primary)}.tabbar button:active{background:var(--fill-soft)}.home-actions{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:8px;position:static;background:none;border:0;padding:4px 0 0;animation:none;-webkit-backdrop-filter:none;backdrop-filter:none}.home-actions .btn{padding-inline:8px;font-size:15px;min-height:48px;min-width:0}.class-now{background:var(--bg-card);color:var(--text-primary);border:1.5px solid var(--accent-primary);box-shadow:0 8px 20px #6b5cf624;padding:14px 16px}.class-now .list-item-sub,.class-now .list-item-chev{color:var(--text-secondary);opacity:1}.class-now .list-item-icon{background:var(--fill-soft);color:var(--accent-primary)}.class-tag{display:inline-flex;align-items:center;gap:5px;font:700 12px/16px var(--font-sans);color:var(--accent-primary)}.class-tag i{width:7px;height:7px;border-radius:50%;background:var(--accent-record);animation:blink 1.2s infinite}.timetable-class{background:var(--fill-soft);color:var(--text-primary);border:0}.week-block{background:color-mix(in srgb,var(--blk-ink) 14%,var(--bg-card));border-left:3px solid var(--blk-ink);color:var(--text-primary);border-radius:6px}.course-group{display:flex;flex-direction:column;gap:10px}.course-title{display:flex;align-items:center;gap:8px;margin-top:8px;font:700 16px/22px var(--font-sans);color:var(--text-primary)}.course-title:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blk-ink)}.course-title span{background:none;padding:0;animation:none}.course-title small{font:600 12px/1 var(--font-sans);color:var(--text-tertiary)}.carrots{padding:14px 16px}.carrots b{display:block;font:800 26px/30px var(--font-sans);letter-spacing:-.02em}.carrots b small{font:700 14px/1 var(--font-sans);margin-left:2px}.carrot-row{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;flex:1}.carrot-row span{display:flex;flex-direction:column;align-items:center;gap:4px;font:600 10px/1 var(--font-sans);color:var(--text-tertiary)}.carrot{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--fill-soft)}.carrot .icon{opacity:.25;filter:grayscale(1)}.done .carrot{background:color-mix(in srgb,var(--ico-orange) 14%,var(--bg-card))}.done .carrot .icon{opacity:1;filter:none}.level-name{font:700 13px/18px var(--font-sans);color:var(--accent-primary)}.level-bar{border:0;height:8px;background:var(--fill-soft)}.task-check{border:1.5px solid var(--border-line);border-radius:8px;box-shadow:none;width:24px;height:24px}.task-check:active{background:var(--leaf);color:#fff;border-color:var(--leaf)}.review-banner,.exam-banner{background:var(--bg-card)}.exam-banner .dday,.dday{background:color-mix(in srgb,var(--ico-red) 12%,var(--bg-card));color:var(--ico-red);font:800 13px/1 var(--font-sans);border-radius:12px}.empty{color:var(--text-secondary)}.empty strong{font:700 17px/24px var(--font-sans);color:var(--text-primary)}.empty-art{display:grid;place-items:center;width:84px;height:84px;border-radius:26px;background:var(--fill-soft);animation:float 3.2s ease-in-out infinite}.empty-art .icon{width:44px!important;height:44px!important}.postit{border-radius:12px;border:0;box-shadow:0 3px 10px #0000000f}.postit:before{display:none}.exam-stamp{position:absolute;right:8px;top:8px;padding:2px 7px;border-radius:6px;background:var(--note-exam-ink);color:#fff;font:700 11px/16px var(--font-sans);transform:none;opacity:1;border:0}.flashcard{min-height:300px;border-radius:24px;box-shadow:0 10px 30px #3c328c14}.flashcard[data-flipped=true]{background:color-mix(in srgb,var(--accent-primary) 6%,var(--bg-card));border-color:color-mix(in srgb,var(--accent-primary) 30%,var(--border-line));box-shadow:0 10px 30px #3c328c14}.flashcard .chip{background:color-mix(in srgb,var(--accent-primary) 10%,var(--bg-card));color:var(--accent-primary)}.grade-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.flow h2{font:700 16px/22px var(--font-sans)}.flow-bar{background:color-mix(in srgb,var(--accent-primary) 70%,transparent);border-radius:99px}.flow-bar.exam{background:var(--accent-record)}.flow-bar.on{outline:2px solid var(--accent-primary);outline-offset:2px}.flow-info{background:var(--fill-soft);border:0;box-shadow:none}.flow-go{color:var(--accent-primary)}.story-entry{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-line);border-radius:18px;box-shadow:var(--shadow-card)}.story-ring{background:var(--accent-primary);color:#fff;border:0}.story-ring:before{display:none}.story-count{background:var(--fill-soft);color:var(--accent-primary);font:700 12px/16px var(--font-sans)}.story{background:#15142a;color:#f2f1fa;--tone: #a99bff}.story.tone-exam{--tone: #ff7d96}.story.tone-emphasis{--tone: #ffa861}.story.tone-qa{--tone: #f08fe0}.story.tone-tip{--tone: #6cc4ff}.story.tone-example{--tone: #6fdc8f}.story.tone-explanation{--tone: #ffd65c}.story.tone-notice{--tone: #a99bff}.story-bg{display:block;filter:blur(70px);opacity:.45}.story-bg i{background:var(--tone)}.story:after{display:none}.story-label{background:color-mix(in srgb,var(--tone) 22%,transparent);color:var(--tone);font:700 13px/18px var(--font-sans);-webkit-backdrop-filter:none;backdrop-filter:none}.story-text{font:700 25px/36px var(--font-sans);letter-spacing:-.02em}.story-text.big{font:800 32px/42px var(--font-sans)}.story-stats div{background:#ffffff12;border:1px solid rgb(255 255 255 / .1);box-shadow:none}.story-stats b{font:800 34px/40px var(--font-sans);color:var(--tone)}.story-bars b{background:var(--tone)}.story-foot .btn-secondary{background:#fff;color:#15142a;border:0}.story-foot .btn-primary{background:var(--tone);color:#15142a;box-shadow:none}.bottom-bar{border-radius:24px 24px 0 0;border:1px solid var(--border-line);border-bottom:0;box-shadow:0 -6px 24px #3c328c14;background:var(--bg-card)}.bottom-bar.rec{background:linear-gradient(180deg,#23214a,#15142a);color:#f2f1fa;border-color:#2e2c55;box-shadow:0 -10px 30px #140f3c59}.bottom-bar.rec .t-caption.muted,.bottom-bar.rec .muted{color:#b9b6d8}.bottom-bar.rec .pager button{background:#ffffff14;color:#fff}.bottom-bar.rec .round-soft{background:#ffffff14;color:#fff;border:0}.bottom-bar.rec .caption-line{background:#ffffff0f;border:1px solid rgb(255 255 255 / .08);border-radius:14px;padding:10px 12px;color:#f2f1fa;white-space:normal}.rec-clock{font:800 34px/40px var(--font-sans);letter-spacing:.02em;font-variant-numeric:tabular-nums;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px}.rec-clock i{width:10px;height:10px;border-radius:50%;background:var(--accent-record);animation:blink 1.2s infinite}.rec-pill{align-self:center;display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:#ffffff14;font:500 12px/16px var(--font-sans);color:#d6d3f0}.rec-pill i{width:7px;height:7px;border-radius:50%;background:#3ccf8e}.live-wave i{background:linear-gradient(180deg,#a99bff,#6b5cf6)}.live-wave.loud i{background:linear-gradient(180deg,#ffb27a,#f2484b)}.round-soft{width:48px;height:48px;border-radius:16px;background:var(--fill-soft);color:var(--text-primary);border:0;box-shadow:none}.bottom-bar .round-soft{width:48px;height:48px}.round-soft:active{transform:scale(.92);box-shadow:none}.round-soft .icon.art{width:26px!important;height:26px!important}.round-record{width:64px;height:64px;border-radius:50%;background:var(--accent-record);border:4px solid color-mix(in srgb,var(--accent-record) 25%,var(--bg-card));box-shadow:0 8px 18px #f2484b59;color:#fff}.round-record .icon.art{color:#fff!important;width:30px!important;height:30px!important}.round-record.on{background:var(--accent-record);border-color:#ffffff2e}.round-record.on:after{border-radius:50%}.round-record:active{transform:scale(.94)}.star-btn{color:var(--ico-yellow)}.replay-start{border:1px solid var(--border-line);border-radius:14px;box-shadow:none;background:var(--fill-soft);color:var(--accent-primary)}.quiz-result b{font:700 15px/20px var(--font-sans)}.slide,.notebook{border:1px solid var(--border-line);border-radius:16px;box-shadow:var(--shadow-card)}.toast{border-radius:14px;font:600 14px/20px var(--font-sans)}.sheet{border-radius:24px 24px 0 0;border:0;box-shadow:0 -12px 40px #1e145033}.switch.on{background:var(--accent-primary);border-color:var(--accent-primary)}.review-note{color:var(--leaf)}.keywords{display:flex;flex-wrap:wrap;gap:6px}.keywords span{padding:6px 12px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border-line);font:600 13px/18px var(--font-sans);color:var(--text-primary)}.summary-block{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:18px;background:color-mix(in srgb,var(--accent-primary) 6%,var(--bg-card));border:1px solid color-mix(in srgb,var(--accent-primary) 14%,var(--border-line))}.summary-block h3{display:flex;align-items:center;gap:8px;font:700 16px/22px var(--font-sans)}.intro-sky{background:#6b5cf6}.scene-1 .intro-sky{background:#f0eefc}.scene-2 .intro-sky{background:#ffe3ea}.scene-3 .intro-sky{background:#e3efff}.scene-4 .intro-sky{background:#6b5cf6}.intro-copy h1,.intro-copy h2,.intro-word{font-family:var(--font-sans);font-weight:800}.intro-hero .icon{width:150px!important;height:150px!important}.intro-note{font:700 15px/20px var(--font-sans)}.scene-4 .intro-copy .btn{color:#6b5cf6}.floater .icon.art{padding:12px;width:64px!important;height:64px!important;border-radius:18px;background:#fff;box-shadow:0 10px 22px #2814782e}body:has(.tabbar) .screen{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.quiz-choice{justify-content:flex-start;gap:12px;min-height:48px;padding:10px 14px;font:500 15px/21px var(--font-sans);box-shadow:none;border:1px solid var(--border-line)}.quiz-choice.btn-secondary{background:var(--bg-card);color:var(--text-primary)}.choice-letter{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--fill-soft);color:var(--text-secondary);font:700 13px/1 var(--font-sans)}.quiz-choice.btn-primary .choice-letter,.quiz-choice.fx-right .choice-letter,.quiz-choice.btn-record .choice-letter{background:#ffffff40;color:#fff}.quiz-choice.fx-right{background:var(--leaf);color:#fff;box-shadow:none;border-color:transparent}.quiz-head{align-items:center}.quiz-making{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 16px;text-align:center;background:var(--bg-card);border:1px solid var(--border-line);border-radius:18px;box-shadow:var(--shadow-card)}.quiz-making b{font:700 16px/22px var(--font-sans)}.qz{display:flex;flex-direction:column;gap:14px}.qz-stack{position:relative}.qz-under{position:absolute;top:10px;right:14px;bottom:-10px;left:14px;border-radius:24px;background:var(--bg-card);box-shadow:var(--shadow-card);opacity:.6;transform:scale(.96)}.qz-card{position:relative;width:100%;min-height:360px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:14px;text-align:left;padding:22px 20px}.qz-card.qz-intro,.qz-card.qz-end{align-items:center;justify-content:center;text-align:center}.qz-head{display:flex;align-items:center;gap:8px}.qz-head .chip{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qz-type{padding:3px 10px;border-radius:99px;font:700 12px/18px var(--font-sans);color:#fff;background:var(--ico-violet)}.qz-type.t-ox{background:var(--ico-blue)}.qz-type.t-fill{background:var(--ico-orange)}.qz-type.t-short{background:var(--ico-green)}.qz-type.t-essay{background:var(--ico-pink)}.qz-no{margin-left:auto;font:600 12px/16px var(--font-sans);color:var(--text-tertiary)}.qz-q{font:800 20px/30px var(--font-sans);color:var(--text-primary);white-space:pre-wrap;word-break:keep-all}.qz-kinds{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.qz-kinds span{padding:3px 10px;border-radius:99px;background:var(--fill-soft);color:var(--accent-primary);font:600 12px/18px var(--font-sans)}.qz-counts{display:flex;gap:8px;width:100%}.qz-counts button{flex:1;padding:10px 0;border-radius:12px;border:1.5px solid var(--border-line);background:var(--bg-paper);color:var(--text-primary);font:600 14px/20px var(--font-sans);cursor:pointer}.qz-counts button.on{border-color:var(--accent-primary);background:var(--fill-soft);color:var(--accent-primary)}.qz-choices{display:flex;flex-direction:column;gap:8px;margin-top:auto}.qz-choices button{display:flex;align-items:center;gap:10px;text-align:left;padding:12px 14px;border-radius:14px;border:1.5px solid var(--border-line);background:var(--bg-paper);color:var(--text-primary);font:500 15px/21px var(--font-sans);cursor:pointer;transition:border-color .2s,transform .1s}.qz-choices button b,.qz-plain b{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--fill-soft);color:var(--accent-primary);font-size:13px}.qz-choices button:not(:disabled):hover{border-color:var(--accent-primary)}.qz-choices button:not(:disabled):active{transform:scale(.98)}.qz-plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font:500 14px/20px var(--font-sans)}.qz-plain li{display:flex;gap:8px;align-items:center}.qz-ox{display:flex;gap:12px;margin-top:auto}.qz-ox button{flex:1;height:96px;border-radius:20px;border:0;cursor:pointer;display:grid;place-items:center;background:color-mix(in srgb,var(--ico-blue) 13%,var(--bg-card));transition:transform .1s}.qz-ox button+button{background:color-mix(in srgb,var(--accent-record) 13%,var(--bg-card))}.qz-ox button:active{transform:scale(.96)}.qz-ox svg{width:46px;height:46px;fill:none;stroke:var(--ico-blue);stroke-width:3;stroke-linecap:round}.qz-ox button+button svg{stroke:var(--accent-record)}.qz-write{display:flex;flex-direction:column;gap:10px;margin-top:auto}.qz-write textarea{resize:none;padding:12px 14px;border-radius:14px;border:1.5px solid var(--border-line);background:var(--bg-paper);color:var(--text-primary);font:400 15px/22px var(--font-sans);outline:none}.qz-write textarea:focus{border-color:var(--accent-primary)}.flashcard.qz-back[data-flipped=true]{border-top:6px solid var(--leaf);background:color-mix(in srgb,var(--leaf) 5%,var(--bg-card))}.flashcard.qz-back.partial[data-flipped=true]{border-top-color:var(--ico-yellow);background:color-mix(in srgb,var(--ico-yellow) 6%,var(--bg-card))}.flashcard.qz-back.wrong[data-flipped=true]{border-top-color:var(--accent-record);background:color-mix(in srgb,var(--accent-record) 4%,var(--bg-card))}.qz-verdict{display:flex;align-items:center;gap:8px;font:800 22px/28px var(--font-sans)}.qz-back.correct .qz-verdict{color:var(--leaf)}.qz-back.partial .qz-verdict{color:#c98f00}.qz-back.wrong .qz-verdict{color:var(--accent-record)}.qz-mark{animation:qz-stamp .45s .15s cubic-bezier(.3,1.6,.5,1) both}.qz-mark circle{fill:var(--leaf)}.qz-mark.partial circle{fill:var(--ico-yellow)}.qz-mark.wrong circle{fill:var(--accent-record)}.qz-mark path{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;animation:qz-draw .45s .35s ease-out both}.qz-given,.qz-model{margin:0;padding:10px 12px;border-radius:12px;background:var(--fill-soft);font:600 15px/22px var(--font-sans);white-space:pre-wrap}.qz-given{background:var(--bg-paper);font-weight:500}.qz-given span,.qz-model span{display:block;font:700 11px/16px var(--font-sans);color:var(--text-secondary);margin-bottom:2px}.qz-feedback{margin:0;font:500 15px/23px var(--font-sans)}.qz-why{margin:0;color:var(--text-secondary);font:400 14px/21px var(--font-sans)}.qz-dots{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.qz-dots i{width:8px;height:8px;border-radius:99px;background:var(--border-line);transition:width .3s,background .3s}.qz-dots i.now{width:22px;background:var(--accent-primary)}.qz-dots i.correct{background:var(--leaf)}.qz-dots i.partial{background:var(--ico-yellow)}.qz-dots i.wrong{background:var(--accent-record)}.qz-ring{transform:rotate(-90deg)}.qz-ring circle{fill:none;stroke-width:10;stroke-linecap:round}.qz-ring .track{stroke:var(--fill-soft)}.qz-ring .fill{stroke:var(--accent-primary);animation:qz-ring 1.1s cubic-bezier(.2,.8,.2,1) both}.qz-score{font:800 28px/34px var(--font-display)}.qz-error{color:var(--accent-record);font:500 13px/18px var(--font-sans);margin:0}@keyframes qz-draw{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}@keyframes qz-stamp{0%{transform:scale(0)}}@keyframes qz-ring{0%{stroke-dasharray:0 314}}@media(prefers-reduced-motion:reduce){.qz-mark,.qz-mark path,.qz-ring .fill{animation:none}}.review-guide{margin:0;padding:12px 14px 12px 34px;border-radius:14px;background:var(--fill-soft);color:var(--text-secondary);font:500 13px/21px var(--font-sans)}.review-guide li::marker{color:var(--accent-primary);font-weight:700}.review-q{align-self:stretch;padding:8px 10px;border-radius:10px;background:var(--bg-card);color:var(--text-secondary);text-align:left}.grade-row .btn{min-height:58px}.grade-label{display:flex;flex-direction:column;align-items:center;gap:2px;font:700 13px/17px var(--font-sans)}.grade-label small{font:500 11px/14px var(--font-sans);opacity:.75}.slide-tabs{position:relative;display:flex;gap:2px;padding:4px;border-radius:16px;background:var(--fill-soft);overflow:hidden}.slide-tabs.scroll{overflow-x:auto;scrollbar-width:none}.slide-tabs.scroll::-webkit-scrollbar{display:none}.slide-tabs button{position:relative;z-index:1;flex:1 0 auto;padding:9px 14px;border:0;border-radius:12px;background:none;color:var(--text-secondary);font:600 14px/20px var(--font-sans);white-space:nowrap;cursor:pointer;transition:color .25s}.slide-tabs:not(.scroll) button{flex:1 1 0}.slide-tabs button.on{color:var(--accent-primary);font-weight:700}.slide-pill{position:absolute;z-index:0;top:4px;bottom:4px;left:0;border-radius:12px;background:var(--bg-card);box-shadow:0 2px 8px #3c328c1f;transition:transform .42s cubic-bezier(.3,1.35,.5,1),width .42s cubic-bezier(.3,1.35,.5,1)}.swipe-card{touch-action:pan-y;-webkit-user-select:none;user-select:none;will-change:transform}.swipe-card[data-swipe=right]{box-shadow:0 0 0 3px color-mix(in srgb,var(--leaf) 55%,transparent),0 10px 30px #3c328c1a}.swipe-card[data-swipe=left]{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-record) 50%,transparent),0 10px 30px #3c328c1a}.swipe-hint{display:flex;justify-content:space-between;padding:0 6px;font:600 11px/16px var(--font-sans);color:var(--text-tertiary)}.swipe-hint span:first-child{color:color-mix(in srgb,var(--accent-record) 70%,var(--text-tertiary))}.swipe-hint span:last-child{color:color-mix(in srgb,var(--leaf) 75%,var(--text-tertiary))}.hero-carousel{display:flex;flex-direction:column;gap:8px}.hero-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:22px;gap:0}.hero-track::-webkit-scrollbar{display:none}.hero-track .hero-card{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;min-height:112px}.hero-card.tone-rose{background:linear-gradient(120deg,#f2486e,#ff7a93 60%,#ff9eb0);box-shadow:0 12px 28px #f2486e47}.hero-card.tone-sky{background:linear-gradient(120deg,#2f7bf6,#5a9bff 60%,#86b6ff);box-shadow:0 12px 28px #2f7bf647}.hero-card .hero-art{transition:transform .6s cubic-bezier(.3,1.4,.5,1)}.hero-card:not(.on) .hero-art{transform:translateY(14px) rotate(-12deg) scale(.85)}.hero-card.on b,.hero-card.on span{animation:rise .5s cubic-bezier(.2,.8,.2,1) both}.hero-card.on span{animation-delay:.06s}.hero-dots{display:flex;justify-content:center;gap:6px}.hero-dots i{width:6px;height:6px;border-radius:99px;background:var(--border-line);transition:width .35s cubic-bezier(.3,1.4,.5,1),background .3s}.hero-dots i.on{width:20px;background:var(--accent-primary)}.dday{white-space:nowrap;letter-spacing:-.02em;font-size:12px}.input:focus,input.input:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 18%,transparent)}.tabbar button.on svg{animation:tab-hop .45s cubic-bezier(.3,1.6,.5,1)}@keyframes tab-hop{40%{transform:translateY(-4px) scale(1.12)}}@media(prefers-reduced-motion:reduce){.slide-pill,.hero-card .hero-art{transition:none}.hero-card.on b,.hero-card.on span,.tabbar button.on svg{animation:none}}.wave{display:grid;align-items:center;gap:1.5px;width:100%;height:100%;color:var(--accent-primary)}.wave i{background:linear-gradient(180deg,color-mix(in srgb,currentColor 55%,#fff),currentColor);border-radius:99px;min-height:2px;animation:wave-in .5s cubic-bezier(.3,1.5,.5,1) both;transform-origin:center}.wave i.exam{background:var(--accent-record)}.wave.empty i{opacity:.35}.list-item:hover .wave i,.list-item:focus-visible .wave i{animation:wave-dance .9s ease-in-out infinite alternate}.list-item:hover .wave i:nth-child(2n){animation-delay:-.3s}.list-item:hover .wave i:nth-child(3n){animation-delay:-.6s}@keyframes wave-in{0%{transform:scaleY(.1);opacity:0}}@keyframes wave-dance{to{transform:scaleY(.55)}}.live-wave{flex:1;display:grid;grid-template-columns:repeat(44,1fr);align-items:center;gap:2px;height:44px}.live-wave i{height:100%;border-radius:99px;transform:scaleY(.04);transition:transform .16s ease-out}.live-wave i:nth-child(-n+8){opacity:.35}.live-wave i:nth-child(n+9):nth-child(-n+18){opacity:.6}@media(prefers-reduced-motion:reduce){.wave i,.list-item:hover .wave i{animation:none}}.week{display:flex;flex-direction:column;gap:6px;padding-right:2px}.week-head{display:grid;padding-left:26px;gap:3px}.week-head span{text-align:center;font:700 12px/18px var(--font-sans);color:var(--text-tertiary);border-radius:9px}.week-head span.today{background:var(--accent-primary);color:#fff}.week-body{position:relative;display:grid;padding-left:26px;gap:3px}.week-hour{position:absolute;left:0;width:22px;text-align:right;font:500 10px/1 var(--font-sans);color:var(--text-tertiary);transform:translateY(-50%)}.week-col{position:relative;border-radius:6px;background:repeating-linear-gradient(var(--fill-soft) 0 1px,transparent 1px var(--hour))}.week-now{position:absolute;left:-2px;right:-2px;height:2px;background:var(--accent-record);border-radius:1px;z-index:1}.week-block{position:absolute;left:0;right:0;padding:3px 4px;overflow:hidden;text-align:left;font:700 10.5px/13px var(--font-sans)}.week-block small{display:none}.sound-preview{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:18px;background:var(--bg-card);box-shadow:var(--shadow-card);animation:rise .35s both}.sound-preview div{display:flex;flex-wrap:wrap;gap:6px}.boot{min-height:100vh;background:var(--bg-paper)}.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:32px 20px;background:radial-gradient(120% 60% at 50% 0%,color-mix(in srgb,var(--accent-primary) 16%,transparent),transparent 70%),var(--bg-paper)}.login h1{margin:10px 0 0;font:900 26px/34px var(--font-sans);letter-spacing:-.02em;color:var(--text-primary)}.login-mark{width:76px;height:76px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#6b5cf6,#a99bff);box-shadow:0 14px 30px #6b5cf659;animation:login-pop .7s cubic-bezier(.3,1.5,.5,1) both}.login-mark svg{width:40px;height:40px;color:#fff}.login-card{width:100%;max-width:380px;margin-top:18px;display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:22px;background:var(--bg-card);box-shadow:var(--shadow-card);animation:rise .5s .1s cubic-bezier(.2,.8,.2,1) both}.login-card label{display:flex;flex-direction:column;gap:6px;font:600 13px/18px var(--font-sans);color:var(--text-secondary)}.login-card .input{padding:0 14px;font:500 16px/22px var(--font-sans)}.login-error{margin:0;color:var(--accent-record);font:600 13px/18px var(--font-sans)}@keyframes login-pop{0%{transform:scale(.4) rotate(-12deg);opacity:0}}.retry-row{align-items:flex-start;gap:10px}.retry-why{display:block;margin-top:4px;color:var(--accent-record);font-size:12px;line-height:17px;word-break:break-all}.home-brand{gap:10px;color:var(--text-primary)}.home-brand .lune-mark{border-radius:9px;box-shadow:0 4px 12px #4a3ad940}.lune-word{display:block;width:auto}.lune-mark .lune-pen{stroke-dasharray:200;animation:lune-pen 1.1s .25s cubic-bezier(.4,0,.2,1) both}@keyframes lune-pen{0%{stroke-dashoffset:200}to{stroke-dashoffset:0}}.login .login-mark{width:84px;height:84px;background:none;border-radius:22px;box-shadow:0 16px 34px #4a3ad959;animation:login-pop .7s cubic-bezier(.3,1.5,.5,1) both}.login h1{color:var(--text-primary);margin-top:16px}.login-tag{margin:2px 0 0;font:600 14px/20px var(--font-sans);letter-spacing:.08em;color:var(--accent-primary)}.intro-word{letter-spacing:.12em}@media(prefers-reduced-motion:reduce){.lune-mark .lune-pen{animation:none}}
