@font-face{font-family:Source Han Serif SC;font-style:normal;font-weight:400;src:url(/interactive-typst-tutorial/assets/fonts/SourceHanSerifSC-Regular.otf)format("opentype");font-display:swap}@font-face{font-family:Source Han Serif SC;font-style:normal;font-weight:700;src:url(/interactive-typst-tutorial/assets/fonts/SourceHanSerifSC-Bold.otf)format("opentype");font-display:swap}@font-face{font-family:Charter;font-style:normal;font-weight:400;src:url(/interactive-typst-tutorial/assets/fonts/Charter%20Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:Charter;font-style:normal;font-weight:700;src:url(/interactive-typst-tutorial/assets/fonts/Charter%20Bold.ttf)format("truetype");font-display:swap}@font-face{font-family:Charter;font-style:italic;font-weight:400;src:url(/interactive-typst-tutorial/assets/fonts/Charter%20Italic.ttf)format("truetype");font-display:swap}@font-face{font-family:Charter;font-style:italic;font-weight:700;src:url(/interactive-typst-tutorial/assets/fonts/Charter%20Bold%20Italic.ttf)format("truetype");font-display:swap}@font-face{font-family:BlexMono Nerd Font Mono;font-style:normal;font-weight:400;src:url(/interactive-typst-tutorial/assets/fonts/BlexMonoNerdFontMono-Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:BlexMono Nerd Font Mono;font-style:normal;font-weight:700;src:url(/interactive-typst-tutorial/assets/fonts/BlexMonoNerdFontMono-Bold.ttf)format("truetype");font-display:swap}@font-face{font-family:BlexMono Nerd Font Mono;font-style:italic;font-weight:400;src:url(/interactive-typst-tutorial/assets/fonts/BlexMonoNerdFontMono-Italic.ttf)format("truetype");font-display:swap}:root{color-scheme:var(--color-scheme);--color-scheme:dark;--app-bg:#0f1117;--app-bg-glow:#7dcfff1f;--app-text:#d9e2f1;--app-muted:#8794aa;--app-soft:#aab6ca;--border:#263044;--border-soft:#a8b9d629;--topbar-bg:#0f121be6;--topbar-border:#7dcfff2e;--brand-text:#f1f6ff;--brand-mark-bg:linear-gradient(145deg, #7dcfff, #7aa2f7 58%, #bb9af7);--input-bg:#171b26;--input-text:#e2e8f7;--input-border:#303b52;--source-bg:#1a1b26;--source-header-bg:#16161e;--source-header-border:#101014;--source-muted:#787c99;--preview-bg:#11141d;--preview-bg-glow:#7dcfff17;--book-bg:#1a1d26;--book-border:#2d3547;--book-text:#e8dfd2;--book-heading:#fff5e8;--book-muted:#9fa9ba;--book-code-bg:#242b39;--book-code-text:#ffb86c;--book-shadow:#0000006b;--tip-bg:#234a5275;--tip-border:#7dcfff;--tip-title:#9bdcff;--footer-bg:#0f121beb;--button-primary-bg:linear-gradient(135deg, #1f8f86, #4f74dc);--button-primary-text:#fff;--button-secondary-bg:#171b26;--button-secondary-text:#dce7f7;--toggle-bg:#171b26;--toggle-border:#7dcfff52;--toggle-shadow:#00000057;color:var(--app-text);background:var(--app-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;line-height:1.5}:root[data-theme=light]{--color-scheme:light;--app-bg:#eceff1;--app-bg-glow:#0f766e14;--app-text:#20211f;--app-muted:#687278;--app-soft:#4f595f;--border:#d2d8dc;--border-soft:#525f6a26;--topbar-bg:#fafbfbf0;--topbar-border:#d2d8dc;--brand-text:#20211f;--brand-mark-bg:#1f6f68;--input-bg:#fff;--input-text:#20211f;--input-border:#cbd3d7;--source-bg:#fbfaf7;--source-header-bg:#f3f6f5;--source-header-border:#dce4e2;--source-muted:#6e787f;--preview-bg:#f7f8f8;--preview-bg-glow:#b54e2b14;--book-bg:#fffdf8;--book-border:#d9d5ce;--book-text:#25221f;--book-heading:#191816;--book-muted:#77716a;--book-code-bg:#f3e9df;--book-code-text:#7b341e;--book-shadow:#23252429;--tip-bg:#e9f3f1;--tip-border:#1f6f68;--tip-title:#174c47;--footer-bg:#fafbfbf5;--button-primary-bg:#1f6f68;--button-primary-text:#fff;--button-secondary-bg:#fff;--button-secondary-text:#20211f;--toggle-bg:#fff;--toggle-border:#1f6f6847;--toggle-shadow:#1f6f682e}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{min-width:1180px;color:var(--app-text);background:var(--app-bg);margin:0}button,select{font:inherit}button{border:0}.app-shell{background:radial-gradient(circle at 8% 0%, var(--app-bg-glow), transparent 36%), linear-gradient(90deg, var(--app-bg-glow), transparent 38%), var(--app-bg);grid-template-rows:72px 1fr;min-width:1180px;height:100vh;min-height:0;display:grid}.topbar{z-index:30;border-bottom:1px solid var(--topbar-border);background:var(--topbar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:relative}.brand{align-items:center;min-width:0;display:flex}.brand p,.pane-header span,.eyebrow{color:var(--app-muted);margin:0;font-size:12px}.breadcrumb{min-width:0;max-width:min(920px,100vw - 240px);color:var(--brand-text);white-space:nowrap;align-items:center;gap:9px;display:flex}.breadcrumb-item{text-overflow:ellipsis;min-width:0;overflow:hidden}.breadcrumb-root{flex:none;font-size:16px;font-weight:760}.breadcrumb-chapter{color:var(--app-soft);flex:0 auto;font-size:13px;font-weight:620}.breadcrumb-menu{flex:0 auto;min-width:0;position:relative}.breadcrumb-menu-button{max-width:min(360px,34vw);height:32px;color:var(--app-soft);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:9px;padding:0 8px 0 0;transition:color .16s,background .16s;display:inline-flex}.breadcrumb-menu-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.breadcrumb-menu-button:hover,.breadcrumb-menu-button[aria-expanded=true]{color:var(--brand-text);background:#7dcfff14}:root[data-theme=light] .breadcrumb-menu-button:hover,:root[data-theme=light] .breadcrumb-menu-button[aria-expanded=true]{background:#1f6f6814}.breadcrumb-menu-button:focus-visible{outline:2px solid var(--tip-border);outline-offset:2px}.breadcrumb-menu-separator{transition:transform .16s}.breadcrumb-menu-button[aria-expanded=true] .breadcrumb-menu-separator{transform:rotate(90deg)}.chapter-menu{z-index:20;border:1px solid var(--border-soft);background:var(--topbar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:8px;width:min(360px,100vw - 56px);max-height:min(420px,100vh - 104px);padding:6px;position:absolute;top:calc(100% + 10px);left:0;overflow:auto;box-shadow:0 18px 42px #00000042}:root[data-theme=light] .chapter-menu{box-shadow:0 18px 42px #1f2a3029}.chapter-menu-item{width:100%;min-height:38px;color:var(--app-text);cursor:pointer;text-align:left;background:0 0;border-radius:7px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:7px 9px;display:grid}.chapter-menu-item:hover,.chapter-menu-item:focus-visible,.chapter-menu-item.is-current{background:#7dcfff1a}:root[data-theme=light] .chapter-menu-item:hover,:root[data-theme=light] .chapter-menu-item:focus-visible,:root[data-theme=light] .chapter-menu-item.is-current{background:#1f6f681a}.chapter-menu-item:focus-visible{outline:2px solid var(--tip-border);outline-offset:-2px}.chapter-menu-number{color:var(--app-muted);font-size:12px;font-weight:620}.chapter-menu-title{min-width:0;color:var(--brand-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.breadcrumb-step{color:var(--app-muted);flex:0 auto;font-size:13px}.breadcrumb-separator{color:var(--app-muted);opacity:.64;flex:none;display:inline-flex}.breadcrumb-separator-icon{width:9px;height:9px}.topbar-actions{align-items:center;gap:6px;display:flex}.theme-toggle,.nav-icon-button{width:38px;height:38px;color:var(--app-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;transition:color .16s,opacity .16s,transform .16s;display:grid;position:relative;overflow:hidden}.theme-toggle:before,.nav-icon-button:before{content:"";opacity:0;background:linear-gradient(135deg,#7dcfff29,#bb9af724),#ffffff08;border-radius:8px;transition:opacity .18s,filter .18s;position:absolute;inset:3px}.theme-toggle:focus-visible,.nav-icon-button:focus-visible,.primary-button:focus-visible,.ghost-button:focus-visible{outline:2px solid var(--tip-border);outline-offset:3px}.theme-toggle:hover:not(:disabled),.nav-icon-button:hover:not(:disabled){color:var(--brand-text);transform:translateY(-1px)}.theme-toggle:hover:not(:disabled):before,.nav-icon-button:hover:not(:disabled):before{opacity:1;filter:brightness(1.22)}.theme-toggle-icon-only{z-index:1;place-items:center;animation:.22s themeIconSwap;display:grid;position:absolute;inset:0}.theme-toggle-icon-only[data-theme-mode=light]{color:#e0af68}.theme-toggle-icon-only[data-theme-mode=dark]{color:#9db5ff}.theme-toggle-fa{width:16px;height:16px}.step-nav-group{align-items:center;gap:6px;display:flex}.nav-icon-button:disabled{cursor:not-allowed;opacity:.28}.nav-icon-button-fa{z-index:1;width:12px;height:12px;position:relative}@keyframes themeIconSwap{0%{opacity:0;transform:scale(.72)rotate(-26deg)}to{opacity:1;transform:scale(1)rotate(0)}}.eyebrow{text-transform:uppercase;letter-spacing:.08em}.workspace{grid-template-columns:minmax(520px,1fr) minmax(560px,1fr);gap:0;min-height:0;display:grid;overflow:hidden}.source-pane,.preview-pane{grid-template-rows:1fr;min-height:0;display:grid;overflow:hidden}.source-pane{color:var(--app-text);background:var(--source-bg)}.preview-pane{background:var(--book-bg);--typst-preview-background-color:var(--book-bg);--typst-preview-foreground-color:var(--book-text);--typst-preview-toolbar-fg-color:var(--book-text);--typst-preview-toolbar-border-color:transparent;--typst-preview-toolbar-bg-color:var(--book-bg)}.pane-header{border-bottom:1px solid var(--border-soft);justify-content:flex-start;align-items:center;min-width:0;padding:0 20px;display:flex}.source-pane .pane-header{background:var(--source-header-bg);border-bottom-color:var(--source-header-border)}.preview-pane .pane-header{border-bottom-color:var(--border)}.pane-header div{min-width:0}.pane-header strong{color:currentColor;text-overflow:ellipsis;white-space:nowrap;font-size:15px;display:block;overflow:hidden}.monaco-host{background:var(--source-bg);width:100%;min-width:0;height:100%;min-height:0;overflow:hidden}.monaco-host .monaco-editor,.monaco-host .monaco-editor-background,.monaco-host .margin{background-color:var(--source-bg)}.preview-stage{background:var(--book-bg);width:100%;height:100%;min-height:0;padding:0;display:block;overflow:hidden}.tinymist-preview{cursor:grab;background:var(--book-bg);flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex}#typst-container-top{z-index:1;width:100%;height:0;overflow:hidden}#typst-container-main{background:var(--book-bg);scrollbar-width:thin;scrollbar-color:#8794aa57 transparent;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}#typst-container-main[data-page-mode=multi]{overflow:auto}#typst-container-main::-webkit-scrollbar{width:10px;height:10px}#typst-container-main::-webkit-scrollbar-track{background:0 0}#typst-container-main::-webkit-scrollbar-thumb{background:#8794aa57 padding-box content-box;border:3px solid #0000;border-radius:999px}#typst-app{transform-origin:0 0;background:var(--book-bg);width:100%;min-width:100%;height:100%;min-height:100%;margin:0}.tinymist-svg-pages{background:var(--book-bg);width:100%;height:100%}.tinymist-svg-pages[data-page-count]:not([data-page-count="1"]){height:auto}.tinymist-svg-page{background:var(--book-bg);width:100%;height:100%}.tinymist-svg-pages[data-page-count]:not([data-page-count="1"]) .tinymist-svg-page{height:100vh;min-height:520px}.tinymist-svg-page svg{background:var(--book-bg);width:100%;height:100%;display:block;overflow:hidden}.typst-doc{background:var(--book-bg);display:block}.typst-page-inner,.typst-page-outer{stroke:none}.tinymist-preview-status{color:var(--book-muted);background:var(--book-bg);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.tinymist-preview-status-error{color:#f7768e;text-align:center;padding:32px}.tinymist-preview-status-compact{color:#ffb3c0;text-align:left;background:#1a1d26e6;border:1px solid #f7768e61;border-radius:6px;place-items:start;max-width:min(420px,100% - 32px);padding:10px 12px;font-size:12px;line-height:1.45;inset:auto 16px 16px auto;box-shadow:0 14px 34px #00000047}.hide-scrollbar-x{overflow-x:hidden}.hide-scrollbar-y{overflow-y:hidden}.typst-text{pointer-events:bounding-box;cursor:text}.tsel span,.tsel{color:#0000;text-align:justify;text-align-last:justify;white-space:pre;width:100%;height:100%;position:fixed;left:0}.tsel span::selection{color:#0000;background:#7db9de9e}.tsel::selection{color:#0000;background:#7db9de9e}.pseudo-link{fill:#0000;cursor:pointer;pointer-events:all}.image_glyph image,.outline_glyph path,path.outline_glyph{transform:matrix(1, 0, 0, 1, var(--o), 0)}.outline_glyph path,path.outline_glyph{fill:var(--glyph_fill);stroke:var(--glyph_stroke)}.hover .typst-text{--glyph_fill:#66bab7;--glyph_stroke:#66bab7}.typst-text:hover{--glyph_fill:#f75c2f;--glyph_stroke:#f75c2f}.typst-svg-cursor{animation:1.2s step-start infinite blink}@keyframes blink{50%{opacity:0}}.book-page{width:var(--typst-page-width,100%);height:var(--typst-page-height,100%);min-height:0;padding:var(--typst-page-margin-y,48px) var(--typst-page-margin-x,72px);color:var(--book-text);background:var(--book-bg);box-shadow:none;border:0;border-radius:0;font-family:Source Han Serif SC,Noto Serif CJK SC,Songti SC,serif;overflow:hidden}.book-label{color:var(--book-muted);margin:0 0 20px;font-size:13px}.book-page h1,.book-page h2{color:var(--book-heading);letter-spacing:0;margin:0 0 24px;font-weight:760;line-height:1.2}.book-page h1{font-size:36px}.book-page h2{font-size:28px}.book-page p{margin:0 0 18px;font-size:17px;line-height:1.9}.book-page code{color:var(--book-code-text);background:var(--book-code-bg);border-radius:4px;padding:2px 5px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.9em}.book-page ul,.book-page ol{margin:0 0 18px;padding-left:1.3em}.book-page li{margin:0 0 10px;font-size:17px;line-height:1.8}.pro-tip{border-left:4px solid var(--tip-border);background:var(--tip-bg);border-radius:4px;margin-top:28px;padding:18px 20px}.pro-tip strong{color:var(--tip-title);margin-bottom:6px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:13px;display:block}.pro-tip p{margin:0}.primary-button,.ghost-button{cursor:pointer;border-radius:6px;height:40px;font-weight:700}.primary-button{color:var(--button-primary-text);background:var(--button-primary-bg);box-shadow:0 10px 26px var(--toggle-shadow)}.ghost-button{border:1px solid var(--input-border);color:var(--button-secondary-text);background:var(--button-secondary-bg)}.primary-button:disabled,.ghost-button:disabled{opacity:.45;cursor:not-allowed}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.loading-screen{min-width:1180px;min-height:100vh;color:var(--app-text);background:var(--app-bg);place-items:center;padding:32px;display:grid}.loading-screen>div{border:1px solid var(--border);background:var(--topbar-bg);width:420px;box-shadow:0 22px 60px var(--book-shadow);border-radius:8px;padding:32px}.loading-screen h1{margin:8px 0 0;font-size:24px}.error-screen h1{color:#f7768e;margin-bottom:22px}.boot-panel{width:520px}.boot-screen h1{margin-bottom:24px}.boot-progress{gap:8px;margin-bottom:22px;display:grid}.boot-progress-bar{background:#8794aa38;border-radius:999px;width:100%;height:8px;overflow:hidden}.boot-progress-bar span{border-radius:inherit;background:linear-gradient(90deg,#7dcfff,#73daca 52%,#bb9af7);height:100%;transition:width .12s;display:block}.boot-progress-meta{color:var(--app-muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.boot-resource-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.boot-resource-list li{color:var(--app-soft);grid-template-columns:10px 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.boot-resource-dot{background:#7dcfff;border-radius:999px;width:8px;height:8px;box-shadow:0 0 16px #7dcfffb3}.boot-resource-list li.is-complete .boot-resource-dot{background:#9ece6a;box-shadow:0 0 16px #9ece6a8c}.boot-resource-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.boot-resource-size{color:var(--app-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
