:root{--malang-generator-overlay-z-index:2300}.malang-generator-history-empty{display:grid;justify-items:center;grid-gap:12px;gap:12px;min-height:132px;color:var(--muted);text-align:center}.malang-generator-history-empty p{max-width:360px;margin:0;line-height:1.45}.malang-generator-shell{position:relative;width:100%;min-height:100vh;margin:0;padding:0;background:var(--bg);color:var(--text)}.malang-generator-topbar{position:absolute;z-index:var(--malang-generator-overlay-z-index,2300);top:18px;right:22px;display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:0}.malang-generator-settings{position:relative;justify-self:end}.malang-generator-settings-menu{position:absolute;z-index:var(--malang-generator-overlay-z-index,2300);top:calc(100% + 6px);right:0;width:min(270px,calc(100vw - 32px));gap:12px;padding:10px}.malang-generator-settings-section{display:grid;grid-gap:7px;gap:7px}.malang-generator-settings-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.malang-generator-settings-section-title{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.malang-generator-settings-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.malang-generator-settings-options.is-three{grid-template-columns:repeat(3,minmax(0,1fr))}.malang-generator-settings-check,.malang-generator-settings-options button{min-height:34px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;font-weight:850;padding:0 10px}.malang-generator-settings-options button.is-selected,.malang-generator-settings-options button:focus-visible,.malang-generator-settings-options button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface2));color:var(--text);outline:none}.malang-generator-settings-check{display:inline-flex;align-items:center;gap:7px}.malang-generator-settings-check input{width:14px;height:14px;accent-color:var(--accent)}.malang-generator-workspace{display:grid;grid-template-columns:clamp(380px,29vw,460px) minmax(0,1fr);grid-gap:0;gap:0;align-items:stretch;min-height:100vh}.malang-generator-controls{position:-webkit-sticky;position:sticky;z-index:30;top:0;height:100vh;display:grid;grid-gap:0;gap:0;border:0;border-radius:0;border-right:1px solid color-mix(in srgb,var(--border) 72%,transparent);background:color-mix(in srgb,var(--bg) 92%,var(--panel));box-shadow:none;align-content:start;overflow:auto;padding:74px clamp(22px,2.4vw,34px) 34px}.malang-generator-controls:before{content:none}.malang-generator-rail-section{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));grid-gap:10px 14px;gap:10px 14px;align-items:end;padding:0 0 30px 30px;border-bottom:0}.malang-generator-rail-section:last-child{border-bottom:0}.malang-generator-rail-section.is-generate{background:transparent}.malang-generator-step-header{grid-column:1/-1;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:start;grid-gap:14px;gap:14px;margin-left:-30px;margin-bottom:10px}.malang-generator-step-number{position:relative;z-index:1;width:22px;height:22px;display:grid;place-items:center;border-radius:0;background:transparent;color:var(--accent);font-size:15px;font-weight:850;box-shadow:none}.malang-generator-step-header h2{margin:0;color:var(--text);font-size:17px;line-height:1.2;font-weight:850}.malang-generator-step-title{min-width:0;display:grid;grid-gap:5px;gap:5px}.malang-generator-icon-button,.malang-generator-inline-toggle,.malang-generator-step-toggle{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--muted2);cursor:pointer;padding:0}.malang-generator-icon-button.is-active,.malang-generator-icon-button:hover,.malang-generator-inline-toggle:hover,.malang-generator-step-toggle:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface2));color:var(--accent)}.malang-generator-step-toggle{display:none}.malang-generator-field{min-width:0;display:grid;grid-gap:5px;gap:5px;align-self:end}.malang-generator-field.is-wide,.malang-generator-note,.malang-generator-wide{grid-column:1/-1}.malang-generator-label{color:var(--text);font-size:12px;font-weight:800}.malang-generator-label-row{width:max-content;max-width:100%;display:inline-flex;align-items:center;gap:6px}.malang-generator-help-hint{position:relative;width:17px;height:17px;display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);cursor:help;font-size:11px;font-weight:850;line-height:1}.malang-generator-help-tooltip{position:fixed;z-index:var(--malang-generator-overlay-z-index,2300);left:0;top:0;width:max-content;max-width:min(300px,calc(100vw - 32px));display:grid;grid-gap:5px;gap:5px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 18px 44px var(--shadow);color:var(--text);font-size:12px;font-weight:500;line-height:1.35;pointer-events:none;padding:8px 10px;text-transform:none}.malang-generator-input,.malang-generator-input-button,.malang-generator-textarea{width:100%;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:8px;background:color-mix(in srgb,var(--inputBg) 72%,transparent);color:var(--text);outline:none}.malang-generator-input,.malang-generator-input-button{height:40px;padding:0 12px}.malang-generator-input-button{cursor:pointer;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.malang-generator-textarea{min-height:88px;resize:vertical;padding:10px 12px;line-height:1.45}.malang-generator-textarea.is-tall{min-height:112px}.malang-generator-textarea.is-short{min-height:72px}.malang-generator-segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:3px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);overflow:hidden}.malang-generator-segmented.is-disabled{opacity:.55}.malang-generator-segment-button{min-height:32px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);cursor:pointer;font-weight:750}.malang-generator-segment-button.is-selected{border-color:var(--accent);background:var(--panel);color:var(--accent)}.malang-generator-segment-button:disabled{cursor:not-allowed}.malang-generator-length-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:7px;gap:7px}.malang-generator-length-options.is-four{grid-template-columns:1fr 1.28fr .95fr .95fr}.malang-generator-length-button{min-width:0;min-height:40px;display:grid;align-content:center;justify-items:center;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);cursor:pointer;font-size:clamp(12px,.92vw,14px);font-weight:850;line-height:1;padding:0 8px;text-align:center;white-space:nowrap}.malang-generator-length-button.is-selected,.malang-generator-length-button:hover{border-color:color-mix(in srgb,var(--accent) 72%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--panel));color:var(--accent)}html[data-theme=ink] .malang-generator-length-button.is-selected,html[data-theme=ink] .malang-generator-length-button:hover{background:var(--accent);color:white}.malang-generator-note{margin:0;color:var(--muted2);font-size:12px;line-height:1.35}.malang-generator-error,.malang-generator-note.is-danger{color:var(--danger)}.malang-generator-block-header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;padding-top:5px;border-top:1px solid var(--border);color:var(--malang-brown);font-size:12px;font-weight:850;text-transform:uppercase}.malang-generator-generate-actions,.malang-generator-output,.malang-generator-output-column,.malang-generator-tooltip-anchor{min-width:0;display:grid;grid-gap:12px;gap:12px}.malang-generator-output-column{height:100vh;min-height:0;align-content:start;border-left:0;overflow:hidden;padding:72px clamp(24px,2.5vw,42px) 0 clamp(36px,4vw,62px)}.malang-generator-output{min-height:0;height:100%}.malang-generator-generate-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:10px}.malang-generator-generate-actions.has-settings{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}.malang-generator-tooltip-anchor{position:relative}.malang-generator-primary,.malang-generator-secondary{width:100%;min-height:44px;border:1px solid var(--malang-red-dark);border-radius:8px;background:var(--malang-red);color:white;cursor:pointer;font-size:13px;font-weight:850;line-height:1;padding:0 10px}.malang-generator-secondary{background:color-mix(in srgb,var(--malang-red) 88%,var(--surface2));color:white}.malang-generator-settings-action{width:44px;min-width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--panel) 76%,transparent);color:var(--text);cursor:pointer}.malang-generator-settings-action.is-active,.malang-generator-settings-action:hover{border-color:color-mix(in srgb,var(--accent) 58%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface2));color:var(--accent)}.malang-generator-primary:disabled,.malang-generator-secondary:disabled{border-color:var(--border);background:var(--surface2);color:var(--muted);cursor:not-allowed}.malang-generator-button-content{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;white-space:nowrap}.malang-generator-button-content span:last-child{overflow:hidden;text-overflow:ellipsis}.malang-generator-tooltip{position:absolute;left:50%;bottom:50px;z-index:var(--malang-generator-overlay-z-index,2300);width:max-content;max-width:300px;transform:translateX(-50%);border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 18px 50px var(--shadow);color:var(--danger);font-size:12px;line-height:1.35;padding:9px 11px}.malang-generator-deck,.malang-generator-result{border:0;border-radius:0;background:transparent;box-shadow:none}.malang-generator-empty{min-height:min(720px,calc(100vh - 120px));display:grid;place-items:center;align-content:center;grid-gap:10px;gap:10px;align-items:center;padding:32px 24px 28px;border:0;background:transparent;box-shadow:none;color:var(--muted);text-align:center}.malang-generator-deck h2,.malang-generator-empty h2,.malang-generator-result-title h2{margin:0;color:var(--text)}.malang-generator-empty h2{font-size:22px;line-height:1.12}.malang-generator-empty-copy{display:grid;place-items:center;grid-gap:7px;gap:7px}.malang-generator-empty-copy span{max-width:390px;color:var(--muted);line-height:1.45}.malang-generator-empty-stage{position:relative;width:clamp(118px,13vw,158px);height:clamp(118px,13vw,158px);display:grid;place-items:center}.malang-generator-empty-mascot{width:clamp(96px,11vw,138px);height:clamp(96px,11vw,138px);display:block;object-fit:contain;filter:drop-shadow(0 16px 22px rgba(107,58,30,.18))}.malang-generator-empty:not(.is-loading) .malang-generator-empty-mascot{transform-origin:50% 82%;animation:malang-generator-empty-mascot-think 4.8s ease-in-out infinite}.malang-generator-empty.is-loading .malang-generator-empty-mascot{animation:malang-generator-empty-mascot-cook 1.12s cubic-bezier(.45,0,.42,1) infinite;transform-origin:50% 76%}.malang-generator-thought-bubble{position:absolute;z-index:2;top:1px;right:0;width:29px;height:22px;border:1px solid color-mix(in srgb,var(--text) 42%,var(--border));border-radius:50%;background:color-mix(in srgb,var(--panel) 82%,transparent);opacity:0;animation:malang-generator-thought-appear 4.8s ease-in-out infinite}.malang-generator-thought-bubble i{position:absolute;left:-7px;bottom:-6px;width:7px;height:7px;border:1px solid color-mix(in srgb,var(--text) 38%,var(--border));border-radius:50%;background:var(--panel)}.malang-generator-thought-bubble i:last-child{left:-12px;bottom:-11px;width:4px;height:4px}.malang-generator-stir-mark{position:absolute;bottom:10px;width:14px;height:4px;border-top:2px solid color-mix(in srgb,var(--accent) 62%,transparent);border-radius:50%;opacity:0;animation:malang-generator-stir-mark 1.12s ease-in-out infinite}.malang-generator-stir-mark.is-left{left:0}.malang-generator-stir-mark.is-right{right:0;animation-delay:90ms}@keyframes malang-generator-empty-mascot-think{0%,to{transform:translateY(0) rotate(-1deg)}45%{transform:translateY(-2px) rotate(1deg)}68%{transform:translateY(-1px) rotate(.3deg)}}@keyframes malang-generator-thought-appear{0%,15%,88%,to{opacity:0;transform:translate(-4px,5px) scale(.72)}34%,64%{opacity:.62;transform:translate(0) scale(1)}78%{opacity:.25;transform:translate(2px,-3px) scale(1.04)}}@keyframes malang-generator-empty-mascot-cook{0%,to{transform:translateY(0) rotate(-1.7deg) scale(1)}32%{transform:translateY(-5px) rotate(1.6deg) scale(1.018)}58%{transform:translateY(0) rotate(-.9deg) scale(.99,1.015)}78%{transform:translateY(-2px) rotate(1deg) scale(1.008)}}@keyframes malang-generator-stir-mark{0%,to{opacity:0;transform:translateX(5px) scaleX(.55)}46%{opacity:.62;transform:translateX(0) scaleX(1)}78%{opacity:0;transform:translateX(-4px) scaleX(.7)}}@media (prefers-reduced-motion:reduce){.malang-generator-empty.is-loading .malang-generator-empty-mascot,.malang-generator-empty:not(.is-loading) .malang-generator-empty-mascot{animation:none}.malang-generator-thought-bubble{animation:none;opacity:.55;transform:none}.malang-generator-stir-mark{animation:none;opacity:0}}.malang-generator-result{display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-gap:20px;gap:20px;height:calc(100vh - 72px);min-height:0;overflow:hidden;padding:0}.malang-generator-result-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;flex-wrap:wrap;margin-bottom:0}.malang-generator-result-title{min-width:0;display:grid;grid-gap:6px;gap:6px}.malang-generator-result-title h2{font-size:21px}.malang-generator-result-badges{display:flex;flex-wrap:wrap;gap:6px}.malang-generator-result-badges span{width:max-content;max-width:100%;border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);border-radius:7px;background:color-mix(in srgb,var(--accent) 28%,transparent);color:color-mix(in srgb,var(--accent) 82%,white);font-size:12px;font-weight:800;padding:3px 9px}.malang-generator-result-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end}.malang-generator-icon-action{width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:0;transition:color .14s ease,transform .14s ease}.malang-generator-icon-action.is-active,.malang-generator-icon-action:focus-visible,.malang-generator-icon-action:hover{color:var(--accent);outline:none}.malang-generator-icon-action:focus-visible{transform:translateY(-1px)}.malang-generator-icon-action svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.malang-generator-icon-action .is-filled{fill:currentColor}.malang-generator-vocab-close{width:28px;height:28px;display:inline-grid;flex:0 0 auto;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;font-weight:800;line-height:1;padding:0}.malang-generator-vocab-close:focus-visible,.malang-generator-vocab-close:hover{background:color-mix(in srgb,var(--surface2) 78%,transparent);color:var(--text);outline:none}.malang-generator-result-audio,.malang-generator-result-text{min-width:0}.malang-generator-result-text{min-height:0;overflow:hidden}.malang-generator-result-audio{display:grid;grid-gap:10px;gap:10px;align-self:end;border-top:1px solid color-mix(in srgb,var(--border) 54%,transparent);padding:12px 0 14px;position:relative;z-index:2}.malang-generator-audio-player{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:18px;gap:18px;min-height:42px;color:var(--text);padding:0}.malang-generator-audio-play-button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;font:inherit;padding:0}.malang-generator-audio-play-button:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 44%,transparent);outline-offset:3px}.malang-generator-audio-play-icon{width:28px;height:28px;display:inline-grid;place-items:center;color:var(--text);transition:color .16s ease,transform .16s ease}.malang-generator-audio-play-icon .malang-class-plan-media-icon{width:25px;height:25px;display:block;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25}.malang-generator-audio-play-button.is-playing .malang-generator-audio-play-icon,.malang-generator-audio-play-button:focus-visible .malang-generator-audio-play-icon,.malang-generator-audio-play-button:hover .malang-generator-audio-play-icon{color:var(--accent);transform:translateY(-1px)}.malang-generator-audio-play-button.is-playing+.malang-generator-audio-main .malang-generator-audio-waveform i{background:color-mix(in srgb,var(--accent) 78%,var(--text))}.malang-generator-audio-main{min-width:0;display:grid;grid-template-columns:minmax(48px,auto) minmax(0,1fr) minmax(48px,auto);align-items:center;grid-gap:18px;gap:18px}.malang-generator-audio-scrubber{grid-column:2;min-width:0;border-radius:8px;cursor:default;touch-action:none}.malang-generator-audio-scrubber.is-seekable{cursor:ew-resize}.malang-generator-audio-scrubber:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 44%,transparent);outline-offset:3px}.malang-generator-audio-waveform{--malang-generator-audio-marker-size:10px;--malang-generator-audio-marker-offset:calc(var(--malang-generator-audio-marker-size) / 2);position:relative;height:12px;display:grid;grid-template-columns:1fr;align-items:center;border:0;background:transparent;overflow:hidden;padding:0 var(--malang-generator-audio-marker-offset)}.malang-generator-audio-waveform i{display:none}.malang-generator-audio-waveform-track{position:relative;display:block;width:100%;height:3px;border-radius:999px;background:color-mix(in srgb,var(--text) 28%,transparent)}.malang-generator-audio-scrubber:not(.is-seekable) .malang-generator-audio-waveform-progress{opacity:0}.malang-generator-audio-waveform-progress{position:absolute;inset:50% auto auto 0;width:0;height:3px;border-radius:inherit;background:var(--accent);pointer-events:none;transform:translateY(-50%);transition:width 60ms linear}.malang-generator-audio-play-button.is-playing+.malang-generator-audio-main .malang-generator-audio-waveform-progress{transition:none}.malang-generator-audio-waveform-progress:after{position:absolute;top:50%;right:0;width:var(--malang-generator-audio-marker-size);height:var(--malang-generator-audio-marker-size);border-radius:999px;background:var(--accent);box-shadow:none;content:"";transform:translate(50%,-50%)}.malang-generator-audio-scrubber.is-scrubbing .malang-generator-audio-waveform-progress{background:color-mix(in srgb,var(--accent) 20%,transparent);transition:none}.malang-generator-audio-scrubber.is-scrubbing .malang-generator-audio-waveform-progress:after{background:var(--text)}.malang-generator-audio-time-row{display:contents}.malang-generator-audio-time-row span{display:block;color:var(--text);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:750}.malang-generator-audio-time-row span:first-child{grid-column:1}.malang-generator-audio-time-row span:last-child{grid-column:3}.malang-generator-audio-speed-control{min-height:34px;display:inline-flex;align-items:center;gap:4px;border:0;border-radius:0;background:transparent;color:var(--text);padding:0}.malang-generator-audio-speed-control:focus-within{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));color:var(--accent)}.malang-generator-audio-speed-control select{min-width:54px;border:0;background:transparent;color:var(--text);cursor:pointer;font:inherit;font-size:12px;font-weight:850;outline:none}.malang-generator-audio-speed-icon{display:none}@media (max-width:720px){.malang-generator-audio-player{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:0}.malang-generator-audio-speed-control{grid-column:1/-1;justify-self:start}}.malang-generator-text-viewport{max-height:none;height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.malang-generator-text-split{--malang-generator-text-split:56%;position:relative;min-width:0;display:grid;grid-template-columns:minmax(0,var(--malang-generator-text-split)) 0 minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);align-items:stretch}.malang-generator-text-split.is-english-collapsed{grid-template-columns:minmax(0,1fr) 0 0}.malang-generator-text-split-pane{grid-row:2;min-width:0}.malang-generator-text-split-pane.is-hanzi{grid-column:1;padding-right:clamp(18px,2.4vw,30px)}.malang-generator-text-split-pane.is-english{grid-column:3;padding-left:clamp(18px,2.4vw,30px)}.malang-generator-text-split-heading{min-width:0;padding:0 0 18px;color:var(--text);font-size:15px;font-weight:850;line-height:1.2}.malang-generator-text-split-heading.is-hanzi{grid-column:1;padding-right:clamp(18px,2.4vw,30px)}.malang-generator-text-split-heading.is-english{grid-column:3;padding-left:clamp(18px,2.4vw,30px)}.malang-generator-text-split-divider{position:relative;z-index:4;grid-column:2;grid-row:2;min-height:100%;border-left:1px solid color-mix(in srgb,var(--border) 62%,transparent)}.malang-generator-text-split-divider.is-heading{grid-row:1;min-height:100%}.malang-generator-text-split-handle{position:absolute;top:50%;left:0;width:34px;height:46px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:8px;background:color-mix(in srgb,var(--panel) 96%,transparent);color:var(--muted);box-shadow:0 12px 28px color-mix(in srgb,var(--shadow) 72%,transparent);cursor:ew-resize;padding:0;transform:translate(-50%,-50%);touch-action:none;transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.malang-generator-text-split-handle:focus-visible,.malang-generator-text-split-handle:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--panel) 88%,var(--accent));color:var(--text);outline:none;box-shadow:0 16px 34px color-mix(in srgb,var(--shadow) 82%,transparent)}.malang-generator-text-split.is-english-collapsed .malang-generator-text-split-handle{cursor:pointer}.malang-generator-text-split-arrow-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.malang-generator-hanzi-ruby-line{color:var(--text);font-size:30px;font-weight:620;letter-spacing:0;line-height:1.72;overflow-wrap:anywhere}.malang-generator-hanzi-ruby-line.is-dialogue{font-size:27px;line-height:1.68}.malang-generator-ruby-token{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;margin:0 0 .08em;line-height:1;vertical-align:text-bottom;white-space:nowrap}.malang-generator-ruby-token.is-without-pinyin{margin-right:0}.malang-generator-reading-token{--generator-reading-highlight:transparent;--generator-reading-outline:transparent;--generator-reading-shadow:none;--generator-reading-pinyin-surface:var(--panel);--generator-reading-pinyin-background:var(--panel);--generator-reading-pinyin-border:var(--border);border-radius:6px;cursor:default}html[data-theme=ink] .malang-generator-reading-token{--generator-reading-pinyin-surface:#171717;--generator-reading-pinyin-background:#171717}html[data-theme=rice] .malang-generator-reading-token{--generator-reading-pinyin-surface:#fffdf9;--generator-reading-pinyin-background:#fffdf9}.malang-generator-reading-token .malang-generator-ruby-token{border-radius:6px;background:var(--generator-reading-highlight);box-shadow:var(--generator-reading-shadow);outline:1px solid var(--generator-reading-outline);padding:1px 0;transition:background .12s ease,box-shadow .12s ease,outline-color .12s ease}.malang-generator-reading-token.is-hovered,.malang-generator-reading-token:hover{--generator-reading-highlight:rgba(90,140,255,0.22);--generator-reading-pinyin-background:color-mix(in srgb,#5a8cff 18%,var(--generator-reading-pinyin-surface));--generator-reading-pinyin-border:rgba(160,190,255,0.46)}.malang-generator-reading-token.is-pinned{--generator-reading-highlight:rgba(90,140,255,0.20);--generator-reading-outline:rgba(160,190,255,0.35);--generator-reading-pinyin-background:color-mix(in srgb,#5a8cff 18%,var(--generator-reading-pinyin-surface));--generator-reading-pinyin-border:rgba(160,190,255,0.46)}.malang-generator-reading-token.is-unknown{--generator-reading-highlight:transparent;--generator-reading-pinyin-background:var(--generator-reading-pinyin-surface);--generator-reading-pinyin-border:var(--border)}.malang-generator-reading-token.is-unknown.is-hovered,.malang-generator-reading-token.is-unknown:hover{--generator-reading-highlight:rgba(90,140,255,0.22);--generator-reading-pinyin-background:color-mix(in srgb,#5a8cff 18%,var(--generator-reading-pinyin-surface));--generator-reading-pinyin-border:rgba(160,190,255,0.46)}.malang-generator-reading-token.is-active{--generator-reading-highlight:color-mix(in srgb,var(--learning-active) 22%,transparent);--generator-reading-shadow:0 6px 16px var(--shadow);--generator-reading-pinyin-background:color-mix(in srgb,var(--learning-active) 18%,var(--generator-reading-pinyin-surface));--generator-reading-pinyin-border:color-mix(in srgb,var(--learning-active-border) 42%,transparent)}.malang-generator-ruby-pinyin{color:var(--muted);font-size:11px;font-style:normal;font-weight:700;letter-spacing:0;line-height:1;opacity:.68;pointer-events:none;white-space:nowrap}.malang-generator-ruby-char{line-height:1.1}.malang-generator-ruby-token.is-pinyin-always{padding-top:13px}.malang-generator-ruby-token.is-pinyin-always .malang-generator-ruby-pinyin{position:absolute;z-index:3;top:0;left:50%;opacity:.76;transform:translateX(-50%)}.malang-generator-ruby-token.is-pinyin-hover .malang-generator-ruby-pinyin{position:absolute;z-index:4;bottom:calc(100% + 4px);left:50%;border:1px solid var(--generator-reading-pinyin-border,var(--border));border-radius:6px;background:var(--generator-reading-pinyin-background,var(--panel));box-shadow:0 10px 26px var(--shadow);opacity:0;padding:3px 6px;transform:translate(-50%,2px);transition:opacity .12s ease,transform .12s ease}.malang-generator-reading-token.is-hovered .malang-generator-ruby-token.is-pinyin-hover .malang-generator-ruby-pinyin,.malang-generator-reading-token:hover .malang-generator-ruby-token.is-pinyin-hover .malang-generator-ruby-pinyin,.malang-generator-ruby-token.is-pinyin-hover:hover .malang-generator-ruby-pinyin{opacity:1;transform:translate(-50%)}.malang-generator-hanzi-ruby-line.is-dialogue .malang-generator-ruby-pinyin{font-size:10px}.malang-generator-dialogue-box{display:grid;grid-gap:0;gap:0;border:1px solid var(--border2);border-radius:8px;background:var(--surface);overflow:hidden}.malang-generator-dialogue-line{display:grid;grid-template-columns:58px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start;border-bottom:1px solid var(--border2);padding:10px 12px}.malang-generator-dialogue-line:last-child{border-bottom:0}.malang-generator-dialogue-line.is-active{background:color-mix(in srgb,var(--accent) 12%,var(--surface));box-shadow:inset 3px 0 0 var(--accent)}.malang-generator-dialogue-speaker{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:850}.malang-generator-dialogue-line.is-active .malang-generator-dialogue-speaker{color:var(--accent)}.malang-generator-dialogue-turn-number{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid var(--border);border-radius:999px;color:var(--muted2);font-size:11px;font-weight:800;line-height:1}.malang-generator-dialogue-line.is-active .malang-generator-dialogue-turn-number{border-color:color-mix(in srgb,var(--accent) 44%,var(--border));color:var(--accent)}.malang-generator-dialogue-turn-text{display:grid;grid-gap:6px;gap:6px;min-width:0}.malang-generator-dialogue-comparison{--malang-generator-dialogue-split:56%;--malang-generator-dialogue-gap:clamp(14px,1.8vw,28px);position:relative;min-width:0;display:grid;grid-gap:0;gap:0}.malang-generator-dialogue-comparison:before{content:"";position:absolute;z-index:1;top:0;bottom:0;left:calc(var(--malang-generator-dialogue-split) - 18px + var(--malang-generator-dialogue-gap) + var(--malang-generator-dialogue-gap));border-left:1px solid color-mix(in srgb,var(--border) 62%,transparent);pointer-events:none}.malang-generator-dialogue-comparison-heading,.malang-generator-dialogue-comparison-row{display:grid;grid-template-columns:42px minmax(0,calc(var(--malang-generator-dialogue-split) - 42px - 18px)) 18px minmax(280px,1fr);grid-gap:var(--malang-generator-dialogue-gap);gap:var(--malang-generator-dialogue-gap);align-items:start}.malang-generator-dialogue-comparison.is-translation-collapsed:before{display:none}.malang-generator-dialogue-comparison.is-translation-collapsed .malang-generator-dialogue-comparison-heading,.malang-generator-dialogue-comparison.is-translation-collapsed .malang-generator-dialogue-comparison-row{grid-template-columns:42px minmax(0,1fr) 0 0}.malang-generator-dialogue-comparison.is-translation-collapsed .malang-generator-dialogue-comparison-heading span:last-child,.malang-generator-dialogue-comparison.is-translation-collapsed .malang-generator-dialogue-comparison-row .malang-generator-dialogue-comparison-divider,.malang-generator-dialogue-comparison.is-translation-collapsed .malang-generator-dialogue-comparison-translation{display:none}.malang-generator-dialogue-comparison-heading{padding:0 0 18px;color:var(--text);font-size:15px;font-weight:850}.malang-generator-dialogue-comparison-row{position:relative;min-height:96px;padding:22px 0 18px}.malang-generator-dialogue-comparison-row:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent 0 10px,color-mix(in srgb,var(--border) 54%,transparent) 10px calc(var(--malang-generator-dialogue-split) - 18px + var(--malang-generator-dialogue-gap) + var(--malang-generator-dialogue-gap) - 18px),transparent calc(var(--malang-generator-dialogue-split) - 18px + var(--malang-generator-dialogue-gap) + var(--malang-generator-dialogue-gap) - 18px) calc(var(--malang-generator-dialogue-split) - 18px + var(--malang-generator-dialogue-gap) + var(--malang-generator-dialogue-gap) + 18px),color-mix(in srgb,var(--border) 54%,transparent) calc(var(--malang-generator-dialogue-split) - 18px + var(--malang-generator-dialogue-gap) + var(--malang-generator-dialogue-gap) + 18px) calc(100% - 10px),transparent calc(100% - 10px) 100%);pointer-events:none}.malang-generator-dialogue-comparison.is-translation-collapsed .malang-generator-dialogue-comparison-row:before{background:linear-gradient(to right,transparent 0 10px,color-mix(in srgb,var(--border) 54%,transparent) 10px calc(100% - 10px),transparent calc(100% - 10px) 100%)}.malang-generator-dialogue-comparison-heading+.malang-generator-dialogue-comparison-row{padding-top:8px}.malang-generator-dialogue-comparison-heading+.malang-generator-dialogue-comparison-row:before{content:none}.malang-generator-dialogue-comparison-row.is-active{background:color-mix(in srgb,var(--accent) 6%,transparent)}.malang-generator-dialogue-comparison-speaker{color:var(--malang-red);font-size:18px;font-weight:900;line-height:2.2}.malang-generator-dialogue-comparison-chinese,.malang-generator-dialogue-comparison-divider,.malang-generator-dialogue-comparison-translation{min-width:0}.malang-generator-dialogue-comparison-divider{position:relative;z-index:2;align-self:stretch;min-height:100%}.malang-generator-dialogue-comparison-handle{position:absolute;top:calc(100% + 26px);left:0;width:30px;height:44px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--border) 82%,transparent);border-radius:8px;background:color-mix(in srgb,var(--panel) 96%,transparent);color:var(--muted);cursor:ew-resize;padding:0;transform:translate(-50%);touch-action:none}.malang-generator-dialogue-comparison-handle:focus-visible,.malang-generator-dialogue-comparison-handle:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--panel) 88%,var(--accent));color:var(--text);outline:none}.malang-generator-dialogue-comparison-handle .malang-generator-text-split-arrow-icon{width:17px;height:17px}.malang-generator-dialogue-comparison-translation{padding-top:7px}.malang-generator-dialogue-comparison .malang-generator-hanzi-ruby-line.is-dialogue{font-size:clamp(25px,1.9vw,32px);line-height:1.95}.malang-generator-dialogue-comparison .malang-text-english-display{max-width:440px;color:color-mix(in srgb,var(--text) 88%,var(--muted));font-size:17px;line-height:1.55}@media (max-width:720px){.malang-generator-text-split,.malang-generator-text-split.is-english-collapsed{grid-template-columns:minmax(0,1fr);gap:12px}.malang-generator-text-split-heading.is-english,.malang-generator-text-split-heading.is-hanzi,.malang-generator-text-split-pane.is-english,.malang-generator-text-split-pane.is-hanzi{grid-column:1;padding-inline:0}.malang-generator-text-split-heading.is-hanzi{grid-row:1;padding-bottom:0}.malang-generator-text-split-pane.is-hanzi{grid-row:2}.malang-generator-text-split-heading.is-english{grid-row:3;border-top:1px solid color-mix(in srgb,var(--border) 62%,transparent);padding-top:12px;padding-bottom:0}.malang-generator-text-split-pane.is-english{grid-row:4}.malang-generator-text-split-divider{display:none}.malang-generator-hanzi-ruby-line{font-size:27px}.malang-generator-hanzi-ruby-line.is-dialogue{font-size:25px}.malang-generator-dialogue-comparison-heading,.malang-generator-dialogue-comparison-row{grid-template-columns:28px minmax(0,1fr);gap:12px}.malang-generator-dialogue-comparison:before{display:none}.malang-generator-dialogue-comparison-row:before{background:color-mix(in srgb,var(--border) 54%,transparent)}.malang-generator-dialogue-comparison-divider,.malang-generator-dialogue-comparison-heading span:last-child{display:none}.malang-generator-dialogue-comparison-translation{grid-column:2;padding-top:4px}.malang-generator-dialogue-comparison .malang-text-english-display{max-width:none;font-size:15px}}.malang-generator-hover-card{--malang-generator-hover-card-bg:var(--panel);--malang-generator-hover-card-inner-bg:var(--surface2);position:fixed;z-index:var(--malang-generator-overlay-z-index,2300);width:min(640px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:min(560px,calc(100vh - 24px));overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--malang-generator-hover-card-bg);color:var(--text);box-shadow:0 22px 70px var(--shadow),0 0 0 1px color-mix(in srgb,var(--panel) 84%,var(--border));padding:0;pointer-events:auto;white-space:normal}html[data-theme=ink] .malang-generator-hover-card{--malang-generator-hover-card-bg:#171717;--malang-generator-hover-card-inner-bg:#202020}html[data-theme=rice] .malang-generator-hover-card{--malang-generator-hover-card-bg:#fffdf9;--malang-generator-hover-card-inner-bg:#fff8f0}.malang-generator-hover-definition-card{border:0;border-radius:8px;background:var(--malang-generator-hover-card-bg);box-shadow:none;padding:12px}.malang-generator-hover-card .malang-lookup-definition-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.malang-generator-hover-card .malang-ai-explanation-panel{max-height:none;background:var(--malang-generator-hover-card-inner-bg)}@media (max-width:760px){.malang-generator-hover-card{width:calc(100vw - 24px)}.malang-generator-hover-card .malang-lookup-definition-grid{grid-template-columns:minmax(0,1fr)}}.malang-generator-deck{padding:16px}.malang-generator-deck-actions,.malang-generator-deck-chip,.malang-generator-deck-header,.malang-generator-deck-items{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.malang-generator-deck-header{justify-content:space-between}.malang-generator-deck h2{font-size:16px}.malang-generator-deck-items{margin-top:12px}.malang-generator-deck-chip{border:1px solid var(--border2);border-radius:999px;background:var(--surface2);color:var(--text);padding:4px 8px 4px 10px}.malang-generator-chip-remove{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:0}.malang-modal-backdrop{position:fixed;inset:0;z-index:2700;display:grid;place-items:center;padding:24px;background:rgba(26,26,26,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.malang-modal-panel{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--panel-opaque);color:var(--text);box-shadow:0 24px 80px var(--shadow);padding:20px}.malang-popover-menu{display:inline-flex;flex-direction:column;align-items:stretch;gap:3px;width:max-content;max-width:100%;min-width:0;box-sizing:border-box;overflow:visible;border:1px solid color-mix(in srgb,var(--border2) 82%,transparent);border-radius:0;background:var(--panel-opaque);box-shadow:0 18px 44px color-mix(in srgb,black 18%,transparent);padding:6px}.malang-popover-menu-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;align-self:stretch;min-width:0;min-height:30px;box-sizing:border-box;border:0;border-radius:0;background:transparent;color:var(--text);cursor:pointer;padding:8px 9px;text-align:left;font:inherit;font-size:11px;font-weight:760}.malang-popover-menu-option>span:first-child{flex:1 1 auto;min-width:0;overflow:visible;overflow-wrap:normal;white-space:nowrap;line-height:1.25}.malang-popover-menu-option:focus-visible,.malang-popover-menu-option:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--text);outline:0}.malang-popover-menu-check{flex:0 0 auto;color:var(--accent);font-weight:900}.malang-popover-menu-branch{position:relative;min-width:0;display:grid;grid-gap:3px;gap:3px}.malang-popover-menu-chevron{flex:0 0 auto;color:var(--muted);font-size:17px;font-weight:700;line-height:1}.malang-popover-menu-branch>.malang-popover-menu-option[aria-expanded=true] .malang-popover-menu-chevron{transform:rotate(90deg)}.malang-popover-menu-branch>.malang-popover-menu-option[aria-expanded=true]{color:var(--accent)}.malang-popover-menu-branch>.malang-popover-menu-option:focus-visible .malang-popover-menu-chevron,.malang-popover-menu-branch>.malang-popover-menu-option:hover .malang-popover-menu-chevron,.malang-popover-menu-branch>.malang-popover-menu-option[aria-expanded=true] .malang-popover-menu-chevron{color:var(--accent)}.malang-popover-menu-submenu{position:static;width:calc(100% - 8px);max-width:calc(100% - 8px);box-sizing:border-box;margin-left:8px;border:0;border-left:2px solid color-mix(in srgb,var(--accent) 42%,var(--border));background:var(--panel-opaque);box-shadow:none;padding:0 0 0 8px}.malang-card-hover{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.malang-card-hover:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 34%,var(--border));box-shadow:0 20px 58px var(--shadow)}.malang-icon-tooltip{position:relative}.malang-viewport-tooltip{position:fixed;z-index:3200;width:max-content;max-width:min(240px,calc(100vw - 24px));max-height:calc(100vh - 24px);box-sizing:border-box;overflow:auto;border:1px solid color-mix(in srgb,var(--border2) 82%,transparent);border-radius:6px;background:var(--panel-opaque);color:var(--text);box-shadow:0 8px 24px color-mix(in srgb,black 18%,transparent);padding:5px 7px;pointer-events:none;opacity:0;visibility:hidden;white-space:normal;font-size:11px;font-weight:700;line-height:1.25;text-align:center;overflow-wrap:anywhere;transition:opacity .12s ease,visibility .12s ease}.malang-viewport-tooltip.is-positioned{opacity:1;visibility:visible}.malang-sidebar-nav-icon{width:24px;height:24px;display:block;object-fit:contain}.malang-tutorial-app-root{display:contents}.malang-tutorial-app-root[data-tutorial-sequence=pepperling] .malang-pepperling-teacher-launcher,.malang-tutorial-app-root[data-tutorial-sequence=pepperling] .malang-pepperling-teacher-workspace:not([data-tutorial-example]){display:none}.malang-pepperling-tutorial-label{position:fixed;top:12px;left:24px;z-index:2801;color:var(--muted);font-size:11px}.malang-pepperling-tutorial-sample .malang-pepperling-teacher-panel{top:36px;left:24px;right:auto;width:min(420px,calc(100vw - 48px));height:min(580px,calc(100dvh - 60px));animation:none}@media (max-width:759px){.malang-pepperling-tutorial-label{left:16px}.malang-pepperling-tutorial-sample .malang-pepperling-teacher-panel{top:24px;left:16px;width:calc(100vw - 32px);height:max(240px,calc(100dvh - 310px))}.malang-pepperling-tutorial-sample .malang-pepperling-teacher-messages{gap:8px;padding:8px}.malang-pepperling-tutorial-sample .malang-pepperling-teacher-composer{display:none}}.malang-tutorial-layer{position:fixed;inset:0;z-index:5000;pointer-events:none}.malang-tutorial-scrim,.malang-tutorial-scrim-grid span{position:fixed;background:rgba(8,8,8,.76);pointer-events:auto}.malang-tutorial-scrim.is-full{inset:0}.malang-tutorial-spotlight{position:fixed;border:2px solid var(--accent);border-radius:4px;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent),0 0 24px color-mix(in srgb,var(--accent) 28%,transparent);pointer-events:auto;transition:inset .18s ease,width .18s ease,height .18s ease}.malang-tutorial-panel{position:fixed;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;pointer-events:auto;transition:opacity .16s ease,filter .16s ease}.malang-tutorial-panel.is-route-transitioning{opacity:.62;filter:saturate(.84)}.malang-tutorial-panel.is-centered{top:50%;left:50%;transform:translate(-50%,-50%)}.malang-tutorial-header{display:flex;align-items:baseline;justify-content:space-between;gap:18px}.malang-tutorial-count,.malang-tutorial-eyebrow{font-size:11px;font-weight:780;letter-spacing:.13em;text-transform:uppercase}.malang-tutorial-eyebrow{color:var(--accent-readable)}.malang-tutorial-count{color:var(--muted2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.malang-tutorial-progress{height:2px;margin:10px 0 18px;background:color-mix(in srgb,var(--text) 10%,transparent);overflow:hidden}.malang-tutorial-progress span{display:block;height:100%;background:var(--accent);transition:width .18s ease}.malang-tutorial-route-status{display:block;margin-top:14px;color:var(--muted2);font-size:12px}.malang-tutorial-artwork{position:relative}.malang-tutorial-artwork.has-positioned-mascot{width:min(100%,420px);margin-inline:auto}.malang-tutorial-artwork.is-welcome-hotpot{width:min(100%,504px);aspect-ratio:420/220;margin-top:-36px;margin-bottom:12px;--tutorial-mascot-size:calc(100% * 185 / 420);--tutorial-mascot-center-x:calc(100% * 259 / 420);--tutorial-mascot-center-y:calc(100% * 135 / 220)}.is-welcome-hotpot .malang-tutorial-mascot-stage>.malang-tutorial-mascot{width:calc(100% * 128 / 185);height:calc(100% * 128 / 185)}.malang-tutorial-artwork.is-tutorial-sketch{aspect-ratio:420/200;margin-bottom:12px;--tutorial-mascot-center-x:50%}.is-ecosystem-sketch{--tutorial-mascot-size:calc(100% * 160 / 420);--tutorial-mascot-center-y:calc(100% * 122 / 236)}.malang-tutorial-artwork.is-ecosystem-sketch{aspect-ratio:420/236}.malang-tutorial-orbit-icon{offset-path:path("M 96.863 40.946 A 160 92 0 1 1 323.137 171.054 A 160 92 0 1 1 96.863 40.946 Z");offset-position:0 0;offset-anchor:0 0;offset-rotate:0deg;offset-distance:var(--orbit-start);animation:malang-tutorial-orbit 32s linear infinite}.malang-tutorial-orbit-ring{stroke-dasharray:6 10;animation:malang-tutorial-orbit-stroke 4s linear infinite}@keyframes malang-tutorial-orbit{0%{offset-distance:var(--orbit-start)}to{offset-distance:calc(var(--orbit-start) + 100%)}}@keyframes malang-tutorial-orbit-stroke{to{stroke-dashoffset:-32}}html[data-malang-reduced-motion=true] .malang-tutorial-orbit-icon,html[data-malang-reduced-motion=true] .malang-tutorial-orbit-ring{animation:none}@media (prefers-reduced-motion:reduce){.malang-tutorial-orbit-icon,.malang-tutorial-orbit-ring{animation:none}}.is-gym-sketch,.is-ready-path-sketch{--tutorial-mascot-size:calc(100% * 128 / 420);--tutorial-mascot-center-y:65%}.is-graph-sketch{--tutorial-mascot-size:calc(100% * 160 / 420);--tutorial-mascot-center-y:60%}.is-graph-sketch .malang-tutorial-mascot-stage>.malang-tutorial-mascot{width:80%;height:80%}.is-gym-sketch .malang-tutorial-mascot-stage>.malang-tutorial-mascot,.is-ready-path-sketch .malang-tutorial-mascot-stage>.malang-tutorial-mascot{width:100%;height:100%}.is-gym-sketch .malang-tutorial-mascot-callout{top:12%;right:100%}.malang-tutorial-artwork-backdrop,.malang-tutorial-artwork-foreground{position:absolute;inset:0;overflow:hidden;pointer-events:none}.malang-tutorial-artwork-foreground{z-index:2}.malang-tutorial-mascot,.malang-tutorial-mascot-stage{display:block;width:128px;height:128px}.malang-tutorial-mascot{object-fit:contain}.malang-tutorial-mascot-stage{position:relative;margin:-6px auto 12px}.malang-tutorial-mascot-stage.has-callout{width:270px}.malang-tutorial-mascot-stage.is-panel-centered{width:128px}.malang-tutorial-artwork>.malang-tutorial-mascot,.malang-tutorial-panel>.malang-tutorial-mascot{margin:-6px auto 12px}.malang-tutorial-artwork>.malang-tutorial-mascot{position:relative}.malang-tutorial-artwork.has-positioned-mascot>.malang-tutorial-mascot,.malang-tutorial-artwork.has-positioned-mascot>.malang-tutorial-mascot-stage{position:absolute;top:var(--tutorial-mascot-center-y);left:var(--tutorial-mascot-center-x,50%);width:min(var(--tutorial-mascot-size),48%);height:auto;aspect-ratio:1;margin:0;transform:translate(-50%,-50%)}.malang-tutorial-mascot-stage.is-tea>.malang-tutorial-mascot,.malang-tutorial-tea-motion{position:absolute;inset:0;width:100%;height:100%}.malang-tutorial-tea-motion{z-index:1;pointer-events:none}.malang-tutorial-tea-blink{opacity:0;animation:malang-tea-blink 9s step-end infinite}.malang-tutorial-tea-steam path{opacity:0;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--text) 55%,transparent));animation:malang-tea-steam 5s ease-in-out infinite}.malang-tutorial-tea-steam .is-second{animation-delay:2.5s}@keyframes malang-tea-blink{0%,28%,31%,73%,76%,to{opacity:0}29%,74%{opacity:1}}@keyframes malang-tea-steam{0%,to{opacity:0;transform:translateY(6px)}20%{opacity:.95}75%{opacity:.12;transform:translateY(-24px)}90%{opacity:0;transform:translateY(-28px)}}html[data-malang-reduced-motion=true] .malang-tutorial-tea-motion{display:none}@media (prefers-reduced-motion:reduce){.malang-tutorial-tea-motion{display:none}}.malang-tutorial-mascot-stage .malang-tutorial-mascot{position:absolute;inset:0}.malang-tutorial-mascot-stage.has-callout .malang-tutorial-mascot{right:0;left:auto}.malang-tutorial-mascot-stage.is-panel-centered .malang-tutorial-mascot{inset:0}.malang-tutorial-mascot.is-static{display:none}.malang-tutorial-mascot-callout{position:absolute;top:29px;right:126px;z-index:1;font-size:13px;font-weight:740;letter-spacing:-.015em;line-height:1.2;white-space:nowrap}.malang-tutorial-immersion-artwork{position:relative}.malang-tutorial-immersion-subtitle{position:absolute;top:82px;left:calc(50% - 135px);width:144px;color:var(--text);font-size:21px;font-weight:600;letter-spacing:.04em;line-height:1.6;text-align:center}@media (max-width:640px){.malang-tutorial-artwork.is-welcome-hotpot{width:110%;margin-top:-20px;margin-inline:-5%}.malang-tutorial-immersion-artwork{min-height:104px}.malang-tutorial-immersion-subtitle{top:66px;left:calc(50% - 110px);width:143px;font-size:19px}}.malang-tutorial-panel h2{max-width:none;margin:0;color:var(--text);font-size:clamp(21px,2.4vw,28px);line-height:1.08;letter-spacing:-.035em}.malang-tutorial-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.malang-tutorial-side-trigger{border:0;background:transparent;color:var(--accent-readable);cursor:pointer;white-space:nowrap;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:4px}.malang-tutorial-side-trigger:focus-visible,.malang-tutorial-side-trigger:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.malang-tutorial-side-trigger:focus-visible{outline:1px solid currentColor;outline-offset:2px}.malang-tutorial-side-trigger:disabled{opacity:.36;cursor:default}.malang-tutorial-panel p{max-width:52ch;margin:14px 0 0;color:var(--muted);font-size:15px;line-height:1.62}.malang-tutorial-bullets{display:grid;grid-gap:8px;gap:8px;margin:18px 0 0;padding:0;color:var(--muted);font-size:15px;line-height:1.5;list-style:none}.malang-tutorial-bullets li{display:flex;align-items:baseline;gap:9px}.malang-tutorial-bullets li.has-detail{align-items:flex-start}.malang-tutorial-bullets li.has-detail:before{margin-top:.62em}.malang-tutorial-bullet-copy{display:grid;grid-gap:1px;gap:1px}.malang-tutorial-bullets strong{color:var(--text)}.malang-tutorial-bullets li:before{width:5px;height:5px;border-radius:50%;background:var(--accent);content:"";flex:0 0 auto}.malang-tutorial-anchor-note{display:block;margin-top:12px;color:var(--muted2);font-size:12px}.malang-tutorial-save-error{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:14px;color:var(--danger);font-size:12px}.malang-tutorial-back,.malang-tutorial-exit,.malang-tutorial-save-error button{border:0;background:transparent;color:var(--muted);cursor:pointer;font:inherit;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:4px}.malang-tutorial-back:focus-visible,.malang-tutorial-back:hover,.malang-tutorial-exit:focus-visible,.malang-tutorial-exit:hover,.malang-tutorial-save-error button:focus-visible,.malang-tutorial-save-error button:hover{color:var(--text);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.malang-tutorial-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px}.malang-tutorial-actions>div{display:flex;align-items:center;gap:10px}.malang-tutorial-actions.has-side-tutorial{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-gap:4px;gap:4px}.malang-tutorial-actions.has-side-tutorial>.malang-tutorial-exit{justify-self:start}.malang-tutorial-actions.has-side-tutorial>div{justify-self:end;gap:0}.malang-tutorial-actions button{min-height:40px;padding:0 12px;border-radius:8px;font-size:13px;font-weight:740}.malang-tutorial-actions .malang-tutorial-exit{padding-left:0}.malang-tutorial-actions button:disabled{opacity:.36;cursor:default;text-decoration:none}.malang-tutorial-back{display:inline-grid;width:40px;padding:0;place-items:center;font-size:20px;line-height:1;text-decoration:none}.malang-tutorial-back:focus-visible,.malang-tutorial-back:hover{color:var(--accent);box-shadow:none;outline:none;text-decoration:none}.malang-tutorial-next{min-width:86px;border:0;background:transparent;color:var(--text);cursor:pointer}.malang-tutorial-next.is-finish{min-width:auto;border:0;background:transparent;color:var(--accent-readable)}.malang-tutorial-next:not(.is-finish){display:inline-grid;width:40px;min-width:40px;padding:0;place-items:center;font-size:20px;line-height:1}.malang-tutorial-next.is-finish:focus-visible,.malang-tutorial-next.is-finish:hover{border:0;background:transparent;color:var(--accent);box-shadow:none;outline:none;text-decoration:underline;text-underline-offset:4px}.malang-tutorial-next:not(.is-finish):focus-visible,.malang-tutorial-next:not(.is-finish):hover{border:0;border-radius:0;background:transparent;color:var(--accent);box-shadow:none;outline:none}.malang-tutorial-back:focus-visible span,.malang-tutorial-next:not(.is-finish):focus-visible span{border-bottom:1px solid}.malang-tutorial-next.is-finish:disabled:focus-visible,.malang-tutorial-next.is-finish:disabled:hover{border:0;background:transparent;outline:none;text-decoration:none}.malang-profile-tutorial{display:grid;grid-gap:24px;gap:24px}.malang-profile-tutorial-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:4px 0 22px;border-bottom:1px solid color-mix(in srgb,var(--border) 74%,transparent)}.malang-profile-tutorial-intro strong{color:var(--text);font-size:18px}.malang-profile-tutorial-intro p{max-width:58ch;margin:8px 0 0;color:var(--muted);line-height:1.55}.malang-profile-tutorial-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}.malang-profile-text-button{border:0;background:transparent;color:var(--muted);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:4px}.malang-profile-text-button:focus-visible,.malang-profile-text-button:hover{color:var(--text);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.malang-profile-tutorial-chapters{display:grid}.malang-profile-tutorial-chapters>button{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 2px;border:0;border-bottom:1px solid color-mix(in srgb,var(--border) 62%,transparent);background:transparent;color:var(--text);cursor:pointer;text-align:left}.malang-profile-tutorial-chapters>button:focus-visible,.malang-profile-tutorial-chapters>button:hover{color:var(--accent-readable)}.malang-profile-tutorial-chapters span:first-child{display:grid;grid-gap:4px;gap:4px}.malang-profile-tutorial-chapters strong{font-size:14px}.malang-profile-tutorial-chapters small{color:var(--muted2);font-size:12px}.malang-profile-tutorial-chapter-status{color:var(--muted2);font-size:11px;letter-spacing:.08em;text-transform:uppercase}@media (max-width:759px){.malang-tutorial-panel,.malang-tutorial-panel.is-anchored,.malang-tutorial-panel.is-centered{top:auto!important;right:10px!important;bottom:max(10px,env(safe-area-inset-bottom))!important;left:10px!important;width:auto!important;max-height:min(70vh,560px);max-height:min(70dvh,560px);padding:18px 18px 16px;transform:none}.malang-tutorial-panel h2{font-size:25px}.malang-tutorial-mascot,.malang-tutorial-mascot-stage{width:82px;height:82px}.malang-tutorial-mascot-stage.has-callout{width:220px}.malang-tutorial-mascot-stage.is-panel-centered{width:82px}.malang-tutorial-mascot-callout{top:17px;right:77px;padding:7px 9px;font-size:11px}.malang-profile-tutorial-intro{display:grid}.malang-profile-tutorial-actions{align-items:flex-start;flex-direction:column}}html[data-malang-reduced-motion=true] .malang-tutorial-progress span,html[data-malang-reduced-motion=true] .malang-tutorial-spotlight{transition:none}@media (prefers-reduced-motion:reduce){.malang-tutorial-progress span,.malang-tutorial-spotlight{transition:none}}.malang-tutorial-graph-sketch{display:block;width:100%;height:100%}.malang-tutorial-graph-branch{fill:none;stroke:var(--malang-red);stroke-width:1;stroke-linecap:round;opacity:var(--bond-opacity);stroke-dasharray:1;animation:malang-tutorial-graph-connect 1.2s ease-out both}.malang-tutorial-graph-peppercorn{opacity:var(--node-opacity);transform-box:fill-box;transform-origin:center;animation:malang-tutorial-graph-settle .85s cubic-bezier(.2,.7,.3,1) both}@keyframes malang-tutorial-graph-connect{0%{stroke-dashoffset:1;opacity:0}to{stroke-dashoffset:0;opacity:var(--bond-opacity)}}@keyframes malang-tutorial-graph-settle{0%{opacity:0;transform:translateY(4px) scale(.8)}to{opacity:var(--node-opacity);transform:translateY(0) scale(1)}}:root[data-malang-reduced-motion=true] .malang-tutorial-graph-sketch *{animation:none}@media (prefers-reduced-motion:reduce){.malang-tutorial-graph-sketch *{animation:none}}.malang-keyboard-shortcuts-panel{width:min(540px,100%);border:0;border-radius:var(--radius-card);background:var(--panel);box-shadow:0 24px 80px var(--shadow);padding:24px}.malang-keyboard-shortcuts-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.malang-keyboard-shortcuts-header h2{margin:0;color:var(--text);font-size:30px;letter-spacing:-.04em;line-height:1.1}.malang-keyboard-shortcuts-close{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:0;font:inherit;font-size:26px;line-height:1}.malang-keyboard-shortcuts-close:focus-visible,.malang-keyboard-shortcuts-close:hover{color:var(--accent);outline:none}.malang-keyboard-shortcuts-search{width:100%}.malang-keyboard-shortcuts-content{padding-top:22px}.malang-keyboard-shortcuts-sections{display:grid;grid-gap:22px;gap:22px}.malang-keyboard-shortcuts-section{display:grid;grid-gap:8px;gap:8px}.malang-keyboard-shortcuts-section h3{margin:0;color:var(--text);font-size:11px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.malang-keyboard-shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:28px}.malang-keyboard-shortcut-keys{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--accent);font-family:var(--font-mono,monospace);font-size:13px;font-weight:800;white-space:nowrap}.malang-keyboard-shortcut-row p{margin:0;color:var(--muted);font-size:13px;line-height:1.35;text-align:right}.malang-keyboard-shortcut-key+.malang-keyboard-shortcut-key:before{color:var(--muted2);content:"+";margin-right:6px}.malang-keyboard-shortcut-hint,.malang-keyboard-shortcut-or{color:var(--muted2);font-size:10px;font-weight:750}.malang-keyboard-shortcut-hint{margin-left:2px;font-style:italic}.malang-keyboard-shortcuts-empty{margin:0;color:var(--muted);font-size:13px}@media (max-width:560px){.malang-keyboard-shortcut-row{gap:7px;align-items:flex-start}}.malang-immersion-shell{width:min(1640px,100%);margin:0 auto;padding:16px clamp(14px,2vw,24px) 24px}.malang-immersion-shell.is-focus-mode{position:fixed;inset:0;z-index:2000;width:100vw;height:100dvh;max-width:none;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;margin:0;padding:0;background:var(--bg)}:-webkit-full-screen{background:var(--bg)}:fullscreen{background:var(--bg)}.malang-immersion-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:16px;gap:16px;align-items:center;margin-bottom:14px}.malang-immersion-shell.is-focus-mode .malang-immersion-topbar{display:none}.malang-immersion-title{min-width:0;display:grid;grid-template-columns:68px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:center}.malang-immersion-title img{width:68px;height:68px;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(107,58,30,.14))}.malang-immersion-title p,.malang-panel-heading p{margin:0 0 4px;color:var(--muted);font-size:12px;font-weight:850;letter-spacing:0;text-transform:uppercase}.malang-immersion-title h1{margin:0;color:var(--text);font-size:clamp(26px,3vw,44px);line-height:1.04;letter-spacing:0}.malang-immersion-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.malang-immersion-watch-topbar{grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;margin-bottom:18px}.malang-immersion-controls,.malang-immersion-watch-actions{min-height:34px;display:flex;align-items:center;justify-content:flex-end;gap:8px;justify-self:end}.malang-immersion-watch-actions .malang-app-settings-trigger,.malang-immersion-watch-actions .malang-immersion-history-trigger,.malang-immersion-watch-actions .malang-profile-topbar-link{width:34px;min-width:34px;height:34px;min-height:34px;border-radius:8px;padding:0}.malang-immersion-watch-topbar .malang-watch-import{width:min(480px,100%);min-width:0;border-bottom:0;justify-self:center;padding:0}.malang-immersion-watch-topbar .malang-import-shell{grid-template-columns:minmax(0,1fr)}.malang-immersion-focus-trigger{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;font-weight:720;padding:0 9px;transition:background .14s ease,color .14s ease}.malang-immersion-focus-trigger.is-active,.malang-immersion-focus-trigger:focus-visible,.malang-immersion-focus-trigger:hover{background:transparent;color:var(--text);outline:none}.malang-immersion-focus-trigger:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.malang-immersion-focus-icon{position:relative;width:15px;height:15px;flex:0 0 auto}.malang-immersion-focus-icon span{position:absolute;width:6px;height:6px;border-color:currentColor;opacity:.9}.malang-immersion-focus-icon span:first-child{top:0;left:0;border-top:1.6px solid;border-left:1.6px solid}.malang-immersion-focus-icon span:nth-child(2){top:0;right:0;border-top:1.6px solid;border-right:1.6px solid}.malang-immersion-focus-icon span:nth-child(3){right:0;bottom:0;border-right:1.6px solid;border-bottom:1.6px solid}.malang-immersion-focus-icon span:nth-child(4){bottom:0;left:0;border-bottom:1.6px solid;border-left:1.6px solid}.malang-immersion-history{position:relative}.malang-immersion-history.is-open:after{content:"";position:absolute;z-index:39;top:100%;right:0;width:min(390px,calc(100vw - 32px));height:12px}.malang-immersion-history-trigger{display:inline-grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer;transition:background .14s ease,color .14s ease}.malang-immersion-history-trigger:focus-visible,.malang-immersion-history-trigger:hover,.malang-immersion-history.is-open .malang-immersion-history-trigger{background:transparent;color:var(--text);outline:none}.malang-immersion-history-trigger:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.malang-immersion-history-glyph{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.malang-immersion-history-menu{position:absolute;z-index:40;top:calc(100% + 6px);right:0;width:min(520px,calc(100vw - 32px));display:grid;grid-gap:8px;gap:8px;border:1px solid color-mix(in srgb,var(--border) 86%,transparent);border-radius:0;background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 18px 44px color-mix(in srgb,black 22%,transparent);padding:10px}.malang-immersion-history-heading{display:flex;align-items:center;justify-content:space-between;min-height:30px;color:var(--text);font-size:12px}.malang-immersion-history-search{min-width:0}.malang-immersion-history-search .malang-search-input{min-height:34px;grid-template-columns:18px minmax(0,1fr);gap:8px}.malang-immersion-history-search .malang-search-input-icon{width:18px;height:18px}.malang-immersion-history-search .malang-search-input input{height:33px;font-size:13px;font-weight:560}.malang-immersion-history-filters{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.malang-immersion-history-filters button{min-height:28px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-size:11px;font-weight:800;padding:0 0 5px}.malang-immersion-history-filters button.is-selected,.malang-immersion-history-filters button:focus-visible,.malang-immersion-history-filters button:hover{border-bottom-color:color-mix(in srgb,var(--accent) 72%,transparent);color:var(--accent);outline:none}.malang-immersion-history-list{display:grid;grid-gap:5px;gap:5px;max-height:min(360px,calc(100vh - 160px));overflow-y:auto}.malang-immersion-history-empty{margin:0;color:var(--muted);font-size:12px;line-height:1.45;padding:8px 2px 4px}.malang-immersion-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto 30px;grid-gap:4px;gap:4px;align-items:stretch}.malang-immersion-history-delete,.malang-immersion-history-main,.malang-immersion-history-priority{border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;transition:background .14s ease,color .14s ease}.malang-immersion-history-main{min-width:0;display:grid;grid-template-columns:82px minmax(0,1fr) auto;grid-gap:9px;gap:9px;align-items:center;border-radius:0;text-align:left;padding:6px}.malang-immersion-history-main:focus-visible,.malang-immersion-history-main:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.malang-immersion-history-thumb{position:relative;width:82px;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:6px;background:color-mix(in srgb,var(--surface2) 82%,transparent);color:var(--muted);font-size:10px;font-weight:900;letter-spacing:0}.malang-immersion-history-thumb img{width:100%;height:100%;display:block;object-fit:cover}.malang-immersion-history-progress{position:absolute;right:0;bottom:0;left:0;height:3px;min-width:3px;background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 54%,transparent)}.malang-immersion-history-copy{min-width:0;display:grid;grid-gap:3px;gap:3px}.malang-immersion-history-title{max-width:100%;overflow:hidden;color:var(--text);font-size:12px;font-weight:820;line-height:1.28;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;text-overflow:ellipsis}.malang-immersion-history-copy small{max-width:100%;overflow:hidden;color:var(--muted);font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.malang-immersion-history-status{width:max-content;max-width:100%;border-radius:999px;background:color-mix(in srgb,var(--surface2) 84%,transparent);color:var(--muted);padding:2px 6px;font-size:10px;font-weight:900;line-height:1}.malang-immersion-history-status.is-ready{background:color-mix(in srgb,var(--success,#2fbf71) 14%,var(--surface2))}.malang-immersion-history-status.is-processing,.malang-immersion-history-status.is-queued,.malang-immersion-history-status.is-ready,.malang-immersion-history-status.is-retrying{color:var(--text);background:color-mix(in srgb,var(--accent) 12%,var(--surface2))}.malang-immersion-history-status.is-cancelled,.malang-immersion-history-status.is-failed{background:color-mix(in srgb,var(--danger,#e05252) 12%,var(--surface2));color:var(--text)}.malang-immersion-history-delete:focus-visible,.malang-immersion-history-delete:hover,.malang-immersion-history-main:focus-visible,.malang-immersion-history-main:hover,.malang-immersion-history-priority:focus-visible,.malang-immersion-history-priority:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface2));color:var(--text);outline:none}.malang-immersion-history-main:focus-visible,.malang-immersion-history-main:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)}.malang-immersion-history-main:focus-visible .malang-immersion-history-thumb,.malang-immersion-history-main:hover .malang-immersion-history-thumb{border-color:color-mix(in srgb,var(--accent) 56%,var(--border))}.malang-immersion-history-main:disabled{cursor:not-allowed;opacity:.54}.malang-immersion-history-delete{min-width:30px;display:inline-grid;place-items:center;color:var(--muted);font-size:12px;font-weight:900}.malang-immersion-history-delete:focus-visible,.malang-immersion-history-delete:hover{background:transparent;color:var(--text)}.malang-immersion-history-delete .malang-class-plan-media-icon{width:14px;height:14px}.malang-immersion-history-priority{min-width:46px;padding:0 8px;color:var(--muted);font-size:11px;font-weight:900}@media (max-width:620px){.malang-immersion-history-menu{width:min(420px,calc(100vw - 20px))}.malang-immersion-history-main{grid-template-columns:68px minmax(0,1fr)}.malang-immersion-history-thumb{width:68px}}.malang-class-ready-toast{position:fixed;z-index:90;top:18px;right:18px;width:min(360px,calc(100vw - 32px));display:grid;grid-template-columns:44px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:center;border:1px solid color-mix(in srgb,var(--border) 90%,transparent);border-left:3px solid var(--malang-red);border-radius:0;background:color-mix(in srgb,var(--panel) 98%,transparent);box-shadow:0 14px 36px color-mix(in srgb,black 18%,transparent);padding:10px;animation:malang-class-ready-toast-enter .19s cubic-bezier(.2,.8,.2,1) both}@keyframes malang-class-ready-toast-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes malang-class-ready-toast-exit{to{opacity:0;transform:translateY(-4px)}}.malang-class-ready-toast.is-leaving{animation:malang-class-ready-toast-exit .15s ease-in both}@media (prefers-reduced-motion:reduce){.malang-class-ready-toast,.malang-class-ready-toast.is-leaving{animation:none}}.malang-class-ready-toast-mascot{width:44px;height:44px;object-fit:contain}.malang-class-ready-toast-copy{min-width:0;display:grid;grid-gap:3px;gap:3px}.malang-class-ready-toast-copy span,.malang-class-ready-toast-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.malang-class-ready-toast-copy strong{color:var(--text);font-size:13px;font-weight:880}.malang-class-ready-toast-copy span{color:var(--muted);font-size:12px;font-weight:760}.malang-learning-mode-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;padding:4px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface2) 88%,transparent)}.malang-learning-mode-toggle button{min-height:34px;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;font-weight:900;padding:0 12px}.malang-learning-mode-toggle button.is-active{background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)}.malang-file-row button,.malang-file-row label,.malang-import-row button,.malang-popover-actions button,.malang-primary-action,.malang-privacy-actions button,.malang-sample-row button,.malang-secondary-action,.malang-shadow-toolbar button,.malang-source-tabs button{min-height:40px;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-weight:800;text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.malang-secondary-action{display:inline-grid;place-items:center;padding:0 14px;background:var(--surface2);color:var(--text)}.malang-file-row button:hover,.malang-file-row label:hover,.malang-import-row button:hover,.malang-popover-actions button:hover,.malang-privacy-actions button:hover,.malang-sample-row button:hover,.malang-secondary-action:hover,.malang-shadow-toolbar button:hover,.malang-source-tabs button:hover{border-color:color-mix(in srgb,var(--accent) 32%,var(--border));transform:translateY(-1px)}.malang-primary-action{width:100%;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 62%,var(--accent2)));color:var(--accentText);box-shadow:0 14px 32px rgba(var(--malang-red-rgb),.18)}.malang-primary-action:disabled{cursor:not-allowed;opacity:.62;transform:none}.malang-immersion-workspace{display:grid;grid-template-columns:minmax(300px,360px) minmax(460px,1fr) minmax(300px,380px);grid-gap:14px;gap:14px;align-items:start}.malang-compact-toggle{display:flex;border:1px solid var(--border);border-radius:999px;background:var(--surface2);color:var(--text);padding:0 12px}.malang-compact-toggle,.malang-focus-top-toggle{min-height:36px;align-items:center;gap:8px;font-size:12px;font-weight:850}.malang-focus-top-toggle{display:inline-flex;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--surface2) 78%,transparent);color:var(--muted);cursor:pointer;padding:0 10px 0 12px;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}.malang-focus-top-toggle span{min-width:20px;min-height:20px;display:inline-grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:999px;color:var(--accent);font-size:11px;line-height:1}.malang-focus-top-toggle.is-active,.malang-focus-top-toggle:hover{border-color:color-mix(in srgb,var(--accent) 32%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--surface2));color:var(--text);transform:translateY(-1px)}