:root{color-scheme:dark;--page: #0c0d0e;--ink: #e7e5df;--ink-muted: #91918b;--ink-faint: #686a66;--line: rgb(238 239 231 / 9%);--line-strong: rgb(238 239 231 / 22%);--glass: rgb(25 27 28 / 72%);--glass-raised: rgb(25 27 28 / 96%);--selection: rgb(232 229 218 / 19%);--serif: "Songti SC", "Noto Serif CJK SC", "SimSun", serif;--kai: "Kaiti SC", "KaiTi", "LXGW WenKai", serif;--sans: "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif;--rounded: "Yuanti SC", "Muzo Round", "PingFang SC", sans-serif;--writing-font: var(--serif);font-family:var(--sans);font-weight:400;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:root[data-theme=light]{color-scheme:light;--page: #f1f0eb;--ink: #272a29;--ink-muted: #6e736c;--ink-faint: #899087;--line: rgb(30 39 34 / 9%);--line-strong: rgb(30 39 34 / 24%);--glass: rgb(248 248 243 / 72%);--glass-raised: rgb(249 249 243 / 97%);--selection: rgb(28 36 30 / 13%)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{min-width:320px;overflow:hidden;background:var(--page);color:var(--ink)}button,input{font:inherit}button{color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:1px solid var(--ink-muted);outline-offset:3px}button:disabled{cursor:default}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.app-shell{position:relative;width:100%;height:100%;isolation:isolate;overflow:hidden;background:var(--page);transition:background-color .4s ease,color .4s ease}.ambient{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;opacity:.25;pointer-events:none;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 2px,color-mix(in srgb,var(--ink) 1.6%,transparent) 3px);-webkit-mask-image:radial-gradient(circle at 50% 48%,black,transparent 70%);mask-image:radial-gradient(circle at 50% 48%,black,transparent 70%)}.writing-surface{--axis-position: 50%;--horizontal-position: .5;--writing-gutter: clamp(28px, 5vw, 64px);--writing-width: min(calc(var(--preferred-writing-width) + 2 * var(--writing-gutter) + var(--writing-scrollbar-width, 0px) + 2px), calc(100vw - 48px) );position:absolute;top:40px;left:calc(24px + (100% - 48px - var(--writing-width)) * var(--horizontal-position));width:var(--writing-width);height:calc(100dvh - 56px);overflow:visible;border-inline:1px solid transparent;transition:border-color .25s ease;animation:fade-in .4s ease both}.writing-surface:before,.writing-surface:after{content:"";position:absolute;z-index:2;top:0;bottom:0;width:1px;background:linear-gradient(transparent,var(--line-strong) 20%,var(--line-strong) 80%,transparent);opacity:0;pointer-events:none;transition:opacity .25s ease}.writing-surface:before{left:calc(var(--writing-gutter) - 1px)}.writing-surface:after{right:calc(var(--writing-gutter) + var(--writing-scrollbar-width, 0px) - 1px)}.writing-surface:is(.is-adjusting,.is-width-preview):before,.writing-surface:is(.is-adjusting,.is-width-preview):after{opacity:1}.writing-surface.is-width-preview:before,.writing-surface.is-width-preview:after{background:linear-gradient(transparent,color-mix(in srgb,var(--ink) 42%,transparent) 12%,color-mix(in srgb,var(--ink) 42%,transparent) 88%,transparent)}.writing-surface.is-adjusting .editor-host{pointer-events:none;-webkit-user-select:none;user-select:none}.writing-surface.is-new-page .editor-host{animation:new-page-in .3s ease-out}.editor-host,.editor-host>.cm-editor{width:100%;height:100%}.editor-host>.cm-editor{-webkit-mask-image:linear-gradient(to bottom,transparent,black 32px);mask-image:linear-gradient(to bottom,transparent,black 32px)}.editor-host[data-font=serif]{--writing-font: var(--serif)}.editor-host[data-font=kai]{--writing-font: var(--kai)}.editor-host[data-font=sans]{--writing-font: var(--sans)}.editor-host[data-font=rounded]{--writing-font: var(--rounded)}.cm-editor .cm-content{font-size:var(--writing-font-size, 18px);font-weight:400;font-style:normal;font-synthesis:none;letter-spacing:.025em}.cm-editor .cm-line{overflow-wrap:anywhere}.editor-host[data-font=sans] .cm-content,.editor-host[data-font=rounded] .cm-content{letter-spacing:.015em}.editor-host.is-focus-mode .cm-content{-webkit-mask-image:linear-gradient(to bottom,rgb(0 0 0 / 12%) 0,rgb(0 0 0 / 12%) var(--focus-top, 0px),black var(--focus-top, 0px),black var(--focus-bottom, 0px),rgb(0 0 0 / 12%) var(--focus-bottom, 0px),rgb(0 0 0 / 12%) 100%);mask-image:linear-gradient(to bottom,rgb(0 0 0 / 12%) 0,rgb(0 0 0 / 12%) var(--focus-top, 0px),black var(--focus-top, 0px),black var(--focus-bottom, 0px),rgb(0 0 0 / 12%) var(--focus-bottom, 0px),rgb(0 0 0 / 12%) 100%)}.editor-host .cm-scroller{scrollbar-color:transparent transparent;overscroll-behavior:contain}.editor-host.is-scrolling .cm-scroller{scrollbar-color:var(--ink-faint) transparent}.editor-host .cm-scroller::-webkit-scrollbar{width:7px}.editor-host .cm-scroller::-webkit-scrollbar-track{background:transparent}.editor-host .cm-scroller::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:8px;background:transparent;background-clip:padding-box}.editor-host.is-scrolling .cm-scroller::-webkit-scrollbar-thumb{background-color:var(--ink-faint)}.document-start{position:relative;height:0;-webkit-user-select:none;user-select:none;pointer-events:none}.document-start-name{position:absolute;bottom:20px;display:flex;align-items:baseline;gap:10px;color:var(--ink-muted);font-family:"Songti TC",var(--serif);font-size:15px;font-weight:400;line-height:1.5;letter-spacing:.18em;white-space:nowrap}.document-start-name small{font-family:var(--sans);font-size:10px;letter-spacing:.12em}.editor-loading{position:absolute;top:var(--axis-position);left:50%;width:3px;height:3px;border-radius:50%;background:var(--ink-faint)}.position-handle{position:absolute;z-index:5;top:calc(var(--axis-position) - 38px);left:50%;width:120px;height:44px;padding:0;border:0;border-radius:6px;background:transparent;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transform:translate(-50%,-50%);animation:fade-in .18s ease both}.position-scale{position:absolute;top:50%;left:50%;width:88px;height:10px;color:var(--ink-muted);pointer-events:none;opacity:.7;transform:translate(-50%,-50%) scaleX(.78);transition:transform .18s ease,opacity .18s ease}.position-rule{position:absolute;top:3px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,currentColor 22%,currentColor 78%,transparent)}.position-tick{position:absolute;top:4px;width:1px;height:3px;background:currentColor;opacity:.5}.position-tick.is-center{top:0;height:8px;opacity:1}.position-handle:hover .position-scale,.position-handle:focus-visible .position-scale{opacity:1;transform:translate(-50%,-50%) scaleX(1)}.position-handle:focus-visible{outline:1px dotted var(--line-strong);outline-offset:1px}.position-handle.is-dragging{cursor:grabbing}.position-handle.is-dragging .position-scale{opacity:1;transform:translate(-50%,-50%) scaleX(.92)}.position-handle.is-leaving{pointer-events:none;animation:scale-out .22s ease both}.workspace-header{position:fixed;z-index:20;top:17px;right:24px;display:flex;align-items:center;gap:6px;animation:fade-in .42s ease both}.tool-dock{display:flex;align-items:center}.menu-trigger{display:grid;place-items:center;min-width:40px;height:36px;padding:0 6px;border:0;border-radius:5px;background:transparent;color:var(--ink-muted);cursor:pointer;font-size:11px;font-weight:400;letter-spacing:.13em;transition:color .18s ease}.menu-trigger:hover,.menu-trigger.active{color:var(--ink)}.document-meta{position:relative;display:flex;align-items:center;gap:8px;min-height:15px;padding:0 2px 0 14px;border-left:1px solid var(--line);color:var(--ink-muted);font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:.035em;white-space:nowrap;-webkit-user-select:none;user-select:none}.character-count{display:flex;align-items:baseline;gap:5px}.character-count small{color:var(--ink-faint);font-size:10px}.save-dot{width:3px;height:3px;border-radius:50%;background:currentColor;transition:opacity .2s ease}.status-saving .save-dot{opacity:.35}.status-error{color:#bd8e7e}.save-label{position:absolute;top:30px;right:0;width:max-content;padding:5px 8px;opacity:0;border-radius:5px;background:var(--glass);pointer-events:none;transition:opacity .18s ease}.document-meta:hover .save-label,.document-meta.status-error .save-label{opacity:1}.tool-overlay-layer{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;pointer-events:none}.tool-overlay{color-scheme:light;--ink: #303236;--ink-muted: #686c72;--ink-faint: #7c8085;--line: rgb(30 32 36 / 9%);--line-strong: rgb(30 32 36 / 24%);--glass: rgb(255 255 255 / 88%);--glass-raised: rgb(255 255 255 / 97%);--glass-blur: 28px;--glass-border: rgb(255 255 255 / 70%);--glass-shadow: 0 14px 48px rgb(0 0 0 / 14%), inset 0 1px 0 rgb(255 255 255 / 70%);--danger: #92594f;position:absolute;top:60px;right:24px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 80px);overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--glass-border);border-radius:12px;color:var(--ink);background:var(--glass);background-image:var(--glass-sheen, none);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(0);backdrop-filter:blur(var(--glass-blur)) saturate(0);box-shadow:var(--glass-shadow);animation:fade-in .22s ease both;pointer-events:auto;-webkit-user-select:none;user-select:none;scrollbar-width:thin}:root:not([data-theme=light]) .tool-overlay{color-scheme:dark;--ink: #e6e6e6;--ink-muted: #b6b6b6;--ink-faint: #979797;--line: rgb(255 255 255 / 10%);--line-strong: rgb(255 255 255 / 24%);--glass: rgb(255 255 255 / 12%);--glass-raised: #303030;--glass-blur: 18px;--glass-border: rgb(255 255 255 / 16%);--glass-sheen: linear-gradient(145deg, rgb(255 255 255 / 7%), transparent 45%, rgb(255 255 255 / 2%));--glass-shadow: 0 16px 48px rgb(0 0 0 / 22%), inset 0 1px 0 rgb(255 255 255 / 12%);--danger: #d7b1a8}.tool-overlay:focus{outline:none}.writing-menu{width:248px;padding:8px}.menu-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;height:38px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:var(--ink);text-align:left;font-size:12px;font-weight:400;letter-spacing:.045em;cursor:pointer;transition:background-color .12s ease}.menu-row small{color:var(--ink-muted);font-size:10px;letter-spacing:.025em;font-variant-numeric:tabular-nums}.menu-row:hover,.menu-row:focus-visible{background:color-mix(in srgb,var(--ink) 6%,transparent)}.menu-row:focus-visible{outline:1px solid var(--line-strong);outline-offset:-1px}.menu-row[aria-pressed=true] small,.menu-row[aria-checked=true] small{color:var(--ink)}.menu-divider{height:1px;margin:6px 12px;background:var(--line)}.tool-sheet{padding:14px 20px 20px}.tool-sheet.typography{width:288px}.tool-sheet.documents{width:312px}.sheet-header{display:flex;align-items:center;justify-content:space-between;height:30px}.sheet-title{color:var(--ink-muted);font-size:11px;letter-spacing:.08em}.quiet-text{display:grid;place-items:center;min-width:32px;min-height:32px;padding:0 2px;border:0;border-radius:4px;background:transparent;color:var(--ink-muted);font-size:11px;font-weight:400;letter-spacing:.06em;cursor:pointer}.quiet-text:hover{color:var(--ink)}.quiet-text:disabled{opacity:.35;cursor:default}.font-options{display:flex;gap:16px;margin:18px 0 22px;border-bottom:1px solid var(--line)}.font-options button{position:relative;flex:1;height:36px;padding:0 0 9px;color:var(--ink-muted);border:0;background:transparent;font-size:13px;font-weight:400;cursor:pointer}.font-options [data-font=serif]{font-family:var(--serif)}.font-options [data-font=kai]{font-family:var(--kai)}.font-options [data-font=sans]{font-family:var(--sans)}.font-options [data-font=rounded]{font-family:var(--rounded)}.font-options [aria-checked=true]{color:var(--ink)}.font-options [aria-checked=true]:after{content:"";position:absolute;height:1px;bottom:-1px;left:0;right:0;background:var(--ink-muted)}.font-options button:hover{color:var(--ink)}.typography-controls{display:grid;gap:18px}.type-control{display:block}.type-label{display:flex;align-items:baseline;justify-content:space-between;font-size:12px;letter-spacing:.045em}.type-label output{color:var(--ink-muted);font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:0}.type-label small{margin-left:6px;font-size:10px}.type-value{display:flex;align-items:baseline;gap:12px}.type-value output{min-width:56px;text-align:right}.width-auto{position:relative;padding:0;border:0;background:transparent;color:var(--ink-muted);font-size:10px;font-weight:400;letter-spacing:.05em;cursor:pointer}.width-auto:before{content:"";position:absolute;top:-9px;right:-6px;bottom:-9px;left:-6px}.width-auto:hover,.width-auto[aria-pressed=true]{color:var(--ink)}.width-auto[aria-pressed=true]{text-decoration:underline;text-decoration-color:var(--ink-muted);text-underline-offset:4px}.type-hint{margin:2px 0 0;color:var(--ink-muted);font-size:10px;line-height:1.7;letter-spacing:.02em}.type-control input{display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:32px;margin:5px 0 0;padding:0;background:transparent;cursor:ew-resize}.type-control input::-webkit-slider-runnable-track{height:1px;background:linear-gradient(to right,var(--ink-muted) var(--range-progress),var(--line-strong) var(--range-progress))}.type-control input::-moz-range-track{height:1px;background:var(--line-strong)}.type-control input::-moz-range-progress{height:1px;background:var(--ink-muted)}.type-control input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:8px;height:8px;margin-top:-3.5px;border:0;border-radius:50%;background:var(--ink)}.type-control input::-moz-range-thumb{width:8px;height:8px;border:0;border-radius:50%;background:var(--ink)}.type-control input:focus-visible{outline:1px dotted var(--line-strong);outline-offset:2px;border-radius:3px}.type-control input:disabled{cursor:default;opacity:.45}.document-actions{display:flex;align-items:center;justify-content:space-between;height:42px;margin-top:6px;padding:3px 4px 0;border-top:1px solid var(--line)}.document-actions button{flex:1;height:32px;padding:0;border:0;border-radius:4px;color:var(--ink-muted);background:transparent;font-size:11px;font-weight:400;letter-spacing:.05em;cursor:pointer}.document-actions button:hover{color:var(--ink)}.document-actions button:disabled{opacity:.3;cursor:default}.document-list{display:grid;gap:3px;max-height:min(380px,calc(100dvh - 226px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;margin:12px -8px 0;padding:2px 4px}.document-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-radius:6px;transition:background-color .12s ease}.document-row:hover,.document-row:has(.document-item[aria-current=true]){background:color-mix(in srgb,var(--ink) 5%,transparent)}.document-item{display:grid;gap:9px;width:100%;min-width:0;padding:12px 8px;border:0;border-radius:6px;color:var(--ink-muted);background:transparent;text-align:left;font-weight:400;cursor:pointer}.document-delete{min-width:40px;min-height:36px;margin-right:3px;padding:0 8px;border:0;border-radius:4px;background:transparent;color:var(--ink-muted);font-size:10px;font-weight:400;cursor:pointer;transition:color .12s ease}.document-delete:hover{color:var(--danger)}.document-delete:disabled{opacity:.35;cursor:default}.document-title{overflow:hidden;color:var(--ink);font-size:13px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.document-detail{display:flex;justify-content:space-between;gap:12px;font-size:10px;font-variant-numeric:tabular-nums}.library-footer{display:grid;justify-items:start;gap:10px;margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}.library-footer>span{color:var(--ink-muted);font-size:10px;letter-spacing:.02em}.tool-overlay-layer.is-modal{display:grid;place-items:center;padding:16px;pointer-events:auto}.tool-overlay-layer.is-modal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000001f;animation:fade-in .22s ease both}.tool-overlay.clear,.tool-overlay.delete{position:relative;top:auto;right:auto;width:360px;max-height:calc(100dvh - 32px);padding:26px}.tool-overlay:is(.clear,.delete) h2{margin:0;font-size:17px;line-height:1.5;font-weight:400;letter-spacing:.03em}.tool-overlay:is(.clear,.delete) p{margin:13px 0 0;color:var(--ink-muted);font-size:12px;line-height:1.9}.tool-overlay:is(.clear,.delete) .export-note{font-size:11px}.tool-overlay.delete .delete-title{color:var(--ink);overflow-wrap:anywhere}.clear-actions{display:flex;align-items:center;gap:18px;margin-top:22px}.clear-actions .export-first{margin-left:auto;color:var(--ink)}.clear-actions .destructive{color:var(--danger)}.tool-overlay-layer.is-leaving{pointer-events:none}.tool-overlay-layer.is-leaving .tool-overlay,.tool-overlay-layer.is-leaving:before{animation:fade-out .16s ease both;pointer-events:none}.action-notice{position:fixed;z-index:40;bottom:24px;left:50%;width:max-content;max-width:calc(100vw - 40px);margin:0;padding:9px 14px;border:1px solid var(--line);border-radius:7px;color:var(--ink-muted);background:var(--glass);font-size:11px;line-height:1.7;transform:translate(-50%)}.mobile-notice{--notice-rest-opacity: .66;--notice-glow: rgb(255 255 255 / 40%);--notice-halo: rgb(255 255 255 / 12%);display:grid;place-items:center;min-height:100dvh;padding:32px 24px;background:var(--page)}:root[data-theme=light] .mobile-notice{--notice-rest-opacity: .76;--notice-glow: rgb(35 40 45 / 16%);--notice-halo: rgb(35 40 45 / 6%)}.mobile-notice-content{margin-bottom:10dvh;text-align:center}.mobile-brand{display:inline-flex;align-items:baseline;gap:10px;color:var(--ink-muted);font-family:"Songti TC",var(--serif);font-size:15px;letter-spacing:.18em}.mobile-brand small{font-family:var(--sans);font-size:10px;letter-spacing:.12em}.mobile-notice-content p{margin:24px 0 0;color:var(--ink);font-size:12px;line-height:2.1;letter-spacing:.04em;animation:notice-breathe 4.4s ease-in-out infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes new-page-in{0%{opacity:.15}to{opacity:1}}@keyframes scale-out{0%{opacity:1}to{opacity:0}}@keyframes notice-breathe{0%,to{opacity:var(--notice-rest-opacity);text-shadow:0 0 9px transparent,0 0 24px transparent}50%{opacity:1;text-shadow:0 0 9px var(--notice-glow),0 0 24px var(--notice-halo)}}@media(max-width:480px){.workspace-header{top:13px;right:19px}.tool-overlay{top:56px;right:16px}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.tool-overlay{background:var(--glass-raised)}}@media(prefers-reduced-motion:reduce){.mobile-notice-content p{animation:none;text-shadow:0 0 12px var(--notice-glow)}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:0s!important}}
