@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/lora-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/lora/v37/0QIvMX1D_JOuMwr7Iw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/lora-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/lora/v37/0QIvMX1D_JOuMwT7I-NP.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lora;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/lora-italic-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/lora/v37/0QIhMX1D_JOuMw_LIftL.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lora;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/lora-italic-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/lora/v37/0QIhMX1D_JOuMw_LL_tLp_A.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2"),url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTOlOV.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.woff2) format("woff2"),url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTNFOVgaY.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--surface-paper: #FAF8F3;--surface-base: #F4F1EA;--surface-raised: #FFFFFF;--surface-sunken: #ECE8DF;--surface-overlay: rgba(30, 28, 24, .45);--text-primary: #1E1C18;--text-secondary: #5A544A;--text-tertiary: #8A8477;--text-inverse: #FAF8F3;--border-subtle: #E4DFD4;--border-default: #D1CABD;--border-strong: #A8A090;--pattern-line: #E4DFD4;--pattern-line-dense: #EAE5DB;--ink: #2C5F7C;--ink-hover: #224D66;--ink-active: #1A3B51;--ink-subtle: #D9E6EE;--amber: #C17A2B;--amber-subtle: #F2E3CF;--success: #5A7D3C;--success-subtle: #E3ECD7;--warning: #B8811F;--warning-subtle: #F4E8CD;--danger: #A8392E;--danger-subtle: #F2D9D5;--surface-info-bg: #E8F0FE;--text-info: #1A53C0;--surface-success-bg: #E6F4EA;--text-success: #1B5E20;--surface-error-bg: #FCE8E6;--text-error: #C62828;--author-ink: #1E1C18;--author-stone: #706A5E;--author-rust: #B0401F;--author-amber: #C17A2B;--author-moss: #5A7D3C;--author-teal: #2F7070;--author-blue: #2C5F7C;--author-indigo: #3F3A82;--author-plum: #7A3A6D;--author-ink-bg: color-mix(in srgb, var(--author-ink) 20%, var(--surface-paper));--author-stone-bg: color-mix(in srgb, var(--author-stone) 20%, var(--surface-paper));--author-rust-bg: color-mix(in srgb, var(--author-rust) 20%, var(--surface-paper));--author-amber-bg: color-mix(in srgb, var(--author-amber) 20%, var(--surface-paper));--author-moss-bg: color-mix(in srgb, var(--author-moss) 20%, var(--surface-paper));--author-teal-bg: color-mix(in srgb, var(--author-teal) 20%, var(--surface-paper));--author-blue-bg: color-mix(in srgb, var(--author-blue) 20%, var(--surface-paper));--author-indigo-bg: color-mix(in srgb, var(--author-indigo) 20%, var(--surface-paper));--author-plum-bg: color-mix(in srgb, var(--author-plum) 20%, var(--surface-paper));--space-0: 0;--space-1: 2px;--space-2: 4px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 24px;--space-7: 32px;--space-8: 48px;--space-9: 64px;--space-10: 96px;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(30, 28, 24, .06);--shadow-sm: 0 2px 6px rgba(30, 28, 24, .08);--shadow-md: 0 6px 16px rgba(30, 28, 24, .1);--shadow-lg: 0 16px 40px rgba(30, 28, 24, .14);--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s;--duration-lazy: .5s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-emphasised: cubic-bezier(.2, 0, 0, 1.2);--ease-exit: cubic-bezier(.4, 0, 1, 1);--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-writing: "Lora", Georgia, "Iowan Old Style", serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;--ui-xs-font-size: 11px;--ui-xs-line-height: 14px;--ui-xs-font-weight: 500;--ui-sm-font-size: 13px;--ui-sm-line-height: 18px;--ui-sm-font-weight: 500;--ui-base-font-size: 14px;--ui-base-line-height: 20px;--ui-base-font-weight: 500;--ui-md-font-size: 16px;--ui-md-line-height: 22px;--ui-md-font-weight: 500;--ui-lg-font-size: 20px;--ui-lg-line-height: 26px;--ui-lg-font-weight: 600;--ui-xl-font-size: 28px;--ui-xl-line-height: 34px;--ui-xl-font-weight: 600;--body-font-size: 17px;--body-line-height: 28px;--body-font-weight: 400;--blockquote-font-size: 17px;--blockquote-line-height: 28px;--blockquote-font-weight: 400;--blockquote-font-style: italic;--h3-font-size: 20px;--h3-line-height: 28px;--h3-font-weight: 600;--h2-font-size: 26px;--h2-line-height: 34px;--h2-font-weight: 600;--h1-font-size: 34px;--h1-line-height: 42px;--h1-font-weight: 700;--caption-font-size: 14px;--caption-line-height: 20px;--caption-font-weight: 400;--caption-font-style: italic;--heading-letter-spacing: -.01em;--code-inline-font-size: 15px;--code-inline-line-height: 22px;--code-inline-font-weight: 400;--code-block-font-size: 15px;--code-block-line-height: 24px;--code-block-font-weight: 400}[data-theme=dark]{--surface-paper: #23201C;--surface-base: #1A1816;--surface-raised: #2C2925;--surface-sunken: #15130F;--surface-overlay: rgba(0, 0, 0, .55);--text-primary: #F2EFE9;--text-secondary: #BDB6A8;--text-tertiary: #8A8477;--text-inverse: #1E1C18;--border-subtle: #322E29;--border-default: #42382F;--border-strong: #6B5F52;--pattern-line: #322E29;--pattern-line-dense: #3A352F;--ink: #7AB3CF;--ink-hover: #8BC0D9;--ink-active: #9CCEE3;--ink-subtle: #24384A;--amber: #E5A159;--amber-subtle: #3D2E1A;--success: #9FBF7B;--success-subtle: #2A3620;--warning: #E8B761;--warning-subtle: #3A2F18;--danger: #E57373;--danger-subtle: #3A1E1A;--surface-info-bg: #1A2A4A;--text-info: #7AB3CF;--surface-success-bg: #1A2E1A;--text-success: #9FBF7B;--surface-error-bg: #3A1A1A;--text-error: #E57373;--author-ink: #F2EFE9;--author-stone: #B9B2A4;--author-rust: #E8997C;--author-amber: #E5A159;--author-moss: #A8C785;--author-teal: #6DB3B3;--author-blue: #7AB3CF;--author-indigo: #9D97D9;--author-plum: #C294B5;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .45);--shadow-md: 0 6px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .55)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;color-scheme:light;scroll-behavior:smooth}html[data-theme=dark]{color-scheme:dark}body{min-height:100vh;overflow-x:hidden;font-family:var(--font-ui);font-size:var(--ui-base-font-size);line-height:var(--ui-base-line-height);font-weight:var(--ui-base-font-weight);color:var(--text-primary);background-color:var(--surface-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard)}img,picture,video,canvas,svg{display:block;max-width:100%}svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}a{color:var(--ink);text-decoration:none;text-underline-offset:2px}a:hover{color:var(--ink-hover);text-decoration:underline}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}:focus{outline:none}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--radius-sm)}dialog:focus-visible{outline:none}::selection{background-color:var(--ink-subtle);color:var(--text-primary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn,.btn-primary,.btn-secondary,.btn-ghost,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);height:36px;padding:0 var(--space-5);border-radius:var(--radius-md);font-family:var(--font-ui);font-size:var(--ui-base-font-size);line-height:1;font-weight:600;letter-spacing:0;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard);user-select:none}.btn--compact{height:28px;padding:0 var(--space-4);font-size:var(--ui-sm-font-size)}.btn--block{width:100%}.btn svg,.btn-primary svg,.btn-secondary svg,.btn-ghost svg,.btn-danger svg{width:16px;height:16px;flex-shrink:0}.btn-primary{background-color:var(--ink);color:var(--text-inverse);border:1px solid var(--ink)}.btn-primary:hover{background-color:var(--ink-hover);border-color:var(--ink-hover)}.btn-primary:active{background-color:var(--ink-active);border-color:var(--ink-active)}.btn-secondary{background-color:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover{background-color:var(--surface-sunken);border-color:var(--border-strong)}.btn-ghost{background-color:transparent;color:var(--text-primary);border:1px solid transparent}.btn-ghost:hover{background-color:var(--surface-sunken)}.btn-danger{background-color:transparent;color:var(--danger);border:1px solid transparent}.btn-danger:hover{background-color:var(--danger-subtle)}.btn-danger.is-confirm{background-color:var(--danger);color:var(--text-inverse);border-color:var(--danger)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);background-color:transparent;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.btn-icon svg{width:20px;height:20px}.btn-icon:hover{background-color:var(--surface-sunken);color:var(--text-primary)}.btn-icon.is-active{background-color:var(--ink-subtle);color:var(--ink)}.btn-icon--danger{color:var(--danger)}.btn-icon--danger:hover{background-color:var(--danger-subtle);color:var(--danger)}.btn-icon[disabled]{color:var(--text-tertiary);cursor:not-allowed}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);font-weight:600;color:var(--text-primary)}.field .field-helper{font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary)}.field .field-error{font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--danger);display:flex;align-items:center;gap:var(--space-2)}.field .field-error svg{width:14px;height:14px}.field .field-success{font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--success)}.input{height:36px;width:100%;padding:0 var(--space-4);background-color:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--ui-base-font-size);line-height:var(--ui-base-line-height);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard)}.input::placeholder{color:var(--text-tertiary)}.input:hover{border-color:var(--border-strong)}.input:focus,.input:focus-visible{outline:none;border-color:var(--ink);background-color:var(--surface-raised);box-shadow:0 0 0 3px var(--ink-subtle)}.input--error{border-color:var(--danger)}.input--error:focus,.input--error:focus-visible{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-subtle)}.input--readonly{background-color:var(--surface-base);color:var(--text-secondary);cursor:not-allowed}textarea.input{height:auto;min-height:calc(var(--ui-base-line-height) * 3 + var(--space-5));padding:var(--space-3) var(--space-4);resize:vertical;line-height:var(--ui-base-line-height)}.select-wrapper{position:relative}.select-wrapper:after{content:"";position:absolute;right:var(--space-4);top:50%;width:10px;height:10px;transform:translateY(-70%) rotate(45deg);border-right:1.5px solid var(--text-secondary);border-bottom:1.5px solid var(--text-secondary);pointer-events:none}.select-wrapper .input{appearance:none;padding-right:calc(var(--space-6) + var(--space-3));cursor:pointer}.toolbar{display:flex;align-items:center;height:48px;padding:0 var(--space-4);background-color:var(--surface-raised);border-bottom:1px solid var(--border-subtle);gap:0}.toolbar-group{display:flex;align-items:center;gap:var(--space-1);padding:0 var(--space-4);position:relative}.toolbar-group+.toolbar-group:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:20px;background-color:var(--border-subtle)}.toolbar-spacer{flex:1}.toolbar-title{font-family:var(--font-ui);font-size:var(--ui-md-font-size);line-height:var(--ui-md-line-height);font-weight:600;color:var(--text-primary);padding:0 var(--space-3);max-width:42ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);background-color:transparent;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.toolbar-btn svg{width:20px;height:20px}.toolbar-btn:hover{background-color:var(--surface-sunken);color:var(--text-primary)}.toolbar-btn.is-active{background-color:var(--ink-subtle);color:var(--ink)}.toolbar-btn[disabled]{color:var(--text-tertiary);cursor:not-allowed}.toolbar--note .toolbar-btn svg{width:22px;height:22px}.toolbar-swatch{position:relative}.toolbar-swatch:after{content:"";position:absolute;left:50%;bottom:6px;transform:translate(-50%);width:14px;height:3px;background-color:var(--text-primary);border-radius:1px}.toolbar-swatch--text:after{background-color:var(--author-blue)}.toolbar-swatch--bg:after{background-color:var(--author-amber-bg)}.layer-toggle{display:inline-flex;align-items:center;gap:0;padding:2px;background-color:var(--surface-sunken);border-radius:var(--radius-md)}.layer-toggle .layer-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:28px;padding:0 var(--space-3);border:none;background:transparent;color:var(--text-secondary);font-size:var(--ui-sm-font-size);font-weight:600;border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.layer-toggle .layer-btn svg{width:14px;height:14px}.layer-toggle .layer-btn.is-active{background-color:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-xs)}.menu{display:flex;flex-direction:column;min-width:240px;padding:var(--space-2);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.menu-heading{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--ui-xs-font-size);line-height:var(--ui-xs-line-height);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.menu-item{display:flex;align-items:center;gap:var(--space-3);min-height:32px;padding:0 var(--space-3);border:none;background:transparent;text-align:left;color:var(--text-primary);font-size:var(--ui-base-font-size);line-height:var(--ui-base-line-height);font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.menu-item:hover,.menu-item.is-highlighted{background-color:var(--surface-sunken)}.menu-item svg{width:16px;height:16px;flex-shrink:0;color:var(--text-secondary)}.menu-item-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.menu-item-label{font-size:var(--ui-base-font-size);line-height:var(--ui-base-line-height);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item-desc{font-size:var(--ui-xs-font-size);line-height:var(--ui-xs-line-height);color:var(--text-tertiary)}.menu-shortcut{margin-left:auto;font-family:var(--font-ui);font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.menu-separator{height:1px;margin:var(--space-2) var(--space-1);background-color:var(--border-subtle);border:none}.menu-item--danger{color:var(--danger)}.menu-item--danger svg{color:var(--danger)}.menu-item--danger:hover{background-color:var(--danger-subtle)}.menu-item--disabled{opacity:.5;cursor:not-allowed}.menu-item--disabled:hover{background:transparent}.context-menu{position:fixed;z-index:100}.modal-backdrop{position:fixed;inset:0;background-color:var(--surface-overlay);z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-5);animation:modal-backdrop-in var(--duration-slow) var(--ease-standard)}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;display:flex;flex-direction:column;max-height:calc(100vh - 2 * var(--space-7));background-color:var(--surface-raised);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:modal-in var(--duration-slow) var(--ease-emphasised)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal--sm{width:480px;max-width:90vw}.modal--md{width:640px;max-width:90vw}.modal--lg{width:800px;max-width:90vw}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-7) var(--space-7) var(--space-5)}.modal-title{font-family:var(--font-ui);font-size:var(--ui-lg-font-size);line-height:var(--ui-lg-line-height);font-weight:var(--ui-lg-font-weight);color:var(--text-primary);letter-spacing:var(--heading-letter-spacing)}.modal-subtitle{font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary);margin-top:var(--space-2)}.modal-body{padding:0 var(--space-7) var(--space-5);overflow-y:auto}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-5) var(--space-7) var(--space-7);border-top:1px solid var(--border-subtle)}.card{position:relative;display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-6);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:inherit;text-decoration:none;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.card:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm)}.card:hover{text-decoration:none}.card-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background-color:var(--surface-sunken);color:var(--text-secondary)}.card-icon svg{width:20px;height:20px}.card-icon--folder{background-color:var(--amber-subtle);color:var(--amber)}.card-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.card-title{font-family:var(--font-ui);font-size:var(--ui-md-font-size);line-height:var(--ui-md-line-height);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:var(--space-3)}.card-meta-sep{width:3px;height:3px;border-radius:50%;background-color:var(--text-tertiary);display:inline-block}.card-preview{font-family:var(--font-writing);font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:48ch}.card-pin{flex-shrink:0;width:20px;height:20px;color:var(--amber);fill:var(--amber);stroke:var(--amber)}.card-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.canvas{position:relative;min-height:100%;background-color:var(--surface-paper);color:var(--text-primary)}.canvas-inner{max-width:min(780px,calc(100% / var(--canvas-zoom, 1)));margin:0 auto;padding:var(--space-8) var(--space-6) var(--space-10);font-family:var(--font-writing);font-size:var(--body-font-size);line-height:var(--body-line-height);font-weight:var(--body-font-weight);color:var(--text-primary);zoom:var(--canvas-zoom, 1)}.note-content .ProseMirror{min-height:60vh;outline:none}.note-content .ProseMirror:focus{outline:none}.canvas-zoom-90{--canvas-zoom: .9}.canvas-zoom-100{--canvas-zoom: 1}.canvas-zoom-110{--canvas-zoom: 1.1}.canvas-zoom-125{--canvas-zoom: 1.25}.canvas-zoom-150{--canvas-zoom: 1.5}.canvas-zoom-200{--canvas-zoom: 2}@media(max-width:720px){.canvas-inner{--canvas-zoom: 1}}.pattern-plain{background-image:none}.pattern-lines{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--body-line-height) - 1px),var(--pattern-line) calc(var(--body-line-height) - 1px),var(--pattern-line) var(--body-line-height));background-position:0 var(--space-8)}.pattern-lines--dense{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 13px,var(--pattern-line-dense) 13px,var(--pattern-line-dense) 14px);background-position:0 var(--space-8)}.pattern-grid{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,var(--pattern-line) 27px,var(--pattern-line) 28px),repeating-linear-gradient(to right,transparent 0,transparent 27px,var(--pattern-line) 27px,var(--pattern-line) 28px)}.pattern-grid--dense{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 13px,var(--pattern-line-dense) 13px,var(--pattern-line-dense) 14px),repeating-linear-gradient(to right,transparent 0,transparent 13px,var(--pattern-line-dense) 13px,var(--pattern-line-dense) 14px)}.pattern-dots{background-image:radial-gradient(circle,var(--pattern-line) 1px,transparent 1.5px);background-size:28px 28px}.pattern-dots--dense{background-image:radial-gradient(circle,var(--pattern-line-dense) .8px,transparent 1.2px);background-size:14px 14px}.toast{display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-full);box-shadow:var(--shadow-md);font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary)}.toast-dot{width:8px;height:8px;border-radius:50%;background-color:var(--success);flex-shrink:0}.toast[data-state=saving] .toast-dot{background-color:var(--warning)}.toast[data-state=error] .toast-dot{background-color:var(--danger)}.toast-retry{margin-left:var(--space-2);padding:2px var(--space-2);background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--ui-xs-font-size);color:var(--text-primary);cursor:pointer}.toast-retry:hover{background-color:var(--surface-sunken)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:2px var(--space-3);background-color:var(--surface-sunken);border-radius:var(--radius-full);font-size:var(--ui-xs-font-size);line-height:var(--ui-xs-line-height);font-weight:600;color:var(--text-secondary);letter-spacing:.02em}.chip--ink{background-color:var(--ink-subtle);color:var(--ink)}.chip--amber{background-color:var(--amber-subtle);color:var(--amber)}.chip--success{background-color:var(--success-subtle);color:var(--success)}.chip--warning{background-color:var(--warning-subtle);color:var(--warning)}.chip--danger{background-color:var(--danger-subtle);color:var(--danger)}.breadcrumb{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary);min-width:0}.breadcrumb-item{color:inherit;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-decoration:none;max-width:24ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-item:hover{color:var(--text-primary);background-color:var(--surface-sunken);text-decoration:none}.breadcrumb-item.is-current{color:var(--text-primary);font-weight:600}.breadcrumb-sep{color:var(--text-tertiary);opacity:.6}.theme-toggle,.theme-toggle .sun{display:inline-flex}.theme-toggle .moon,[data-theme=dark] .theme-toggle .sun{display:none}[data-theme=dark] .theme-toggle .moon{display:inline-flex}.app-frame{min-height:100vh;display:flex;flex-direction:column;background-color:var(--surface-base)}.app-bar{display:flex;align-items:center;gap:var(--space-5);height:56px;padding:0 var(--space-5);background-color:var(--surface-raised);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:10}.app-wordmark{font-family:var(--font-writing);font-size:var(--ui-lg-font-size);line-height:1;font-weight:700;letter-spacing:var(--heading-letter-spacing);color:var(--text-primary);white-space:nowrap;padding:var(--space-2) 0;text-decoration:none}.app-wordmark:hover{text-decoration:none}.app-wordmark em{font-style:italic;color:var(--ink);font-weight:600}.app-bar-divider{width:1px;height:24px;background-color:var(--border-subtle);flex-shrink:0}.group-switch{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background-color:transparent;color:var(--text-primary);font-size:var(--ui-sm-font-size);line-height:1;font-weight:600;white-space:nowrap;flex-shrink:0;transition:background-color var(--duration-fast) var(--ease-standard)}.group-switch:hover{background-color:var(--surface-sunken)}.group-switch .group-dot{width:8px;height:8px;border-radius:50%;background-color:var(--author-moss);flex-shrink:0}.group-switch svg{width:14px;height:14px;color:var(--text-tertiary)}.app-breadcrumb{display:inline-flex;align-items:center;min-width:0;flex:1}.app-bar-right{display:inline-flex;align-items:center;gap:var(--space-3);margin-left:auto}.user-menu{display:inline-flex;align-items:center;gap:var(--space-3);height:36px;padding:0 var(--space-3) 0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-full);background-color:transparent;color:var(--text-primary);font-size:var(--ui-sm-font-size);font-weight:600;transition:background-color var(--duration-fast) var(--ease-standard)}.user-menu:hover{background-color:var(--surface-sunken)}.user-menu .avatar{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background-color:var(--author-teal);color:var(--text-inverse);font-size:11px;font-weight:700;letter-spacing:.04em}.user-menu .user-name{white-space:nowrap}.user-menu svg{width:14px;height:14px;color:var(--text-tertiary)}.user-menu-anchor{position:relative;display:inline-block}.user-menu-popover{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:30;min-width:180px;background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-2);display:flex;flex-direction:column;gap:2px}.user-menu-item{display:block;width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;border-radius:var(--radius-md);font-size:var(--ui-sm-font-size);color:var(--text-primary);cursor:pointer;text-align:left}.user-menu-item:hover{background-color:var(--surface-sunken)}.user-menu-error{padding:var(--space-2) var(--space-3);font-size:var(--ui-xs-font-size);color:var(--danger)}.hamburger{display:none}.app-body{flex:1;display:grid;grid-template-columns:268px 1fr;min-height:0}.sidebar{background-color:var(--surface-base);border-right:1px solid var(--border-subtle);padding:var(--space-5) var(--space-3) var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-2);color:var(--text-tertiary);font-size:var(--ui-xs-font-size);line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2)}.sidebar-section-head .btn-icon{width:24px;height:24px}.sidebar-section-head .btn-icon svg{width:14px;height:14px}.folder-tree,.folder-tree ul{list-style:none;padding:0;margin:0}.folder-tree ul{margin-left:18px;border-left:1px solid var(--border-subtle);padding-left:var(--space-2)}.folder-item{display:flex;align-items:center;gap:var(--space-2);width:100%;height:30px;padding:0 var(--space-2);border:none;background:transparent;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--ui-sm-font-size);line-height:1;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background-color var(--duration-fast) var(--ease-standard);text-decoration:none}.folder-item:hover{background-color:var(--surface-sunken);text-decoration:none}.folder-item.is-selected{background-color:var(--ink-subtle);color:var(--ink)}.folder-item.is-selected .folder-icon{color:var(--ink)}.folder-item .chevron{width:14px;height:14px;color:var(--text-tertiary);flex-shrink:0;transition:transform var(--duration-fast) var(--ease-standard)}.folder-item .chevron.is-placeholder{visibility:hidden}.folder-item[aria-expanded=true] .chevron{transform:rotate(90deg)}.folder-item .folder-icon{width:16px;height:16px;color:var(--text-secondary);flex-shrink:0}.folder-item .folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-item .count{font-size:var(--ui-xs-font-size);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.folder-item.is-selected .count{color:var(--ink);opacity:.75}.sidebar-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-1)}.content{padding:var(--space-7) var(--space-8) var(--space-9);min-width:0}.content-inner{max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}.content-head{display:flex;align-items:baseline;gap:var(--space-5);flex-wrap:wrap}.content-title{font-family:var(--font-ui);font-size:var(--ui-xl-font-size);line-height:var(--ui-xl-line-height);font-weight:var(--ui-xl-font-weight);color:var(--text-primary);letter-spacing:var(--heading-letter-spacing)}.content-meta{font-size:var(--ui-sm-font-size);color:var(--text-secondary);font-variant-numeric:tabular-nums}.content-actions{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-3)}.sort-button{display:inline-flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);background-color:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--ui-sm-font-size);font-weight:500;transition:background-color var(--duration-fast) var(--ease-standard)}.sort-button:hover{background-color:var(--surface-sunken)}.sort-button .label{color:var(--text-secondary)}.sort-button .value{color:var(--text-primary);font-weight:600}.sort-button svg{width:14px;height:14px;color:var(--text-tertiary)}.sort-button-anchor{position:relative;display:inline-flex}.sort-menu{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:30;min-width:220px}.sort-menu .menu-item{justify-content:space-between}.sort-menu .menu-item .check{width:16px;height:16px;color:var(--ink);flex-shrink:0}.sort-menu .menu-item:not(.is-selected) .check{visibility:hidden}.sort-menu .menu-item.is-selected{color:var(--ink);font-weight:600}@media(max-width:1080px){.app-body{grid-template-columns:240px 1fr}.content{padding:var(--space-6) var(--space-6) var(--space-8)}}@media(max-width:820px){.app-body{grid-template-columns:1fr}.sidebar{display:none}.hamburger{display:inline-flex}.app-breadcrumb,.user-menu .user-name{display:none}}@media(max-width:520px){.content{padding:var(--space-5) var(--space-5) var(--space-8)}.content-actions{width:100%;margin-left:0;justify-content:flex-end}.app-wordmark{font-size:var(--ui-md-font-size)}}.editor-frame{min-height:100vh;display:flex;flex-direction:column;background-color:var(--surface-base)}.note-header{display:flex;align-items:center;gap:var(--space-4);height:64px;padding:0 var(--space-5);background-color:var(--surface-raised);border-bottom:1px solid var(--border-subtle)}.note-title-input{flex:1;min-width:0;border:1px solid transparent;background-color:transparent;padding:var(--space-2) var(--space-3);font-family:var(--font-ui);font-size:var(--ui-xl-font-size);line-height:var(--ui-xl-line-height);font-weight:var(--ui-xl-font-weight);letter-spacing:var(--heading-letter-spacing);color:var(--text-primary);border-radius:var(--radius-md);transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.note-title-input::placeholder{color:var(--text-tertiary)}.note-title-input:hover{background-color:var(--surface-sunken)}.note-title-input:focus{outline:none;background-color:var(--surface-raised);border-color:var(--border-default)}.note-actions,.note-actions-group{display:inline-flex;align-items:center;gap:var(--space-1)}.note-actions-divider{width:1px;height:20px;background-color:var(--border-subtle);margin:0 var(--space-2);flex-shrink:0}.note-actions .btn-icon{width:36px;height:36px}.note-actions .btn-icon svg{width:20px;height:20px}.zoom-control{display:inline-flex;align-items:center;padding:2px;background-color:var(--surface-sunken);border-radius:var(--radius-md);height:36px;flex-shrink:0}.zoom-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--space-2);border:none;border-radius:var(--radius-sm);background-color:transparent;color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--ui-sm-font-size);font-weight:600;line-height:1;letter-spacing:0;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.zoom-btn:hover{background-color:var(--surface-raised);color:var(--text-primary)}.zoom-btn--smaller{font-size:12px}.zoom-btn--larger{font-size:17px}.zoom-value{min-width:48px;text-align:center;font-variant-numeric:tabular-nums;color:var(--text-primary)}.zoom-value:hover{background-color:var(--surface-raised)}.zoom-control [disabled]{color:var(--text-tertiary);cursor:not-allowed}.zoom-control [disabled]:hover{background-color:transparent;color:var(--text-tertiary)}.zoom-popover{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:4px;z-index:20;font-family:var(--font-ui)}.zoom-popover-list{list-style:none;margin:0;padding:0}.zoom-popover-item{display:block;width:100%;padding:6px 12px;border:0;background:transparent;text-align:left;font:inherit;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer}.zoom-popover-item:hover{background:var(--surface-sunken)}.zoom-popover-item.is-checked{background:var(--surface-sunken);font-weight:600}.zoom-popover-divider{height:1px;background:var(--border-subtle);margin:4px 0}.zoom-popover-action{display:block;width:100%;padding:6px 12px;border:0;background:transparent;text-align:left;font:inherit;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer}.zoom-popover-action:hover{background:var(--surface-sunken)}.text-subtoolbar{display:flex;align-items:center;gap:var(--space-1);height:48px;padding:0 var(--space-5);background-color:var(--surface-raised);border-bottom:1px solid var(--border-subtle)}.text-subtoolbar-group{display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-3);position:relative}.text-subtoolbar-group+.text-subtoolbar-group:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:20px;background-color:var(--border-subtle)}.text-subtoolbar-spacer{flex:1}.conflict-banner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background-color:color-mix(in srgb,var(--warning) 12%,var(--surface-paper));border-bottom:1px solid var(--border-subtle)}.conflict-banner-icon{width:20px;height:20px;color:var(--warning);flex-shrink:0}.conflict-banner-message{flex:1;font-size:var(--ui-sm-font-size);color:var(--text-primary)}.conflict-banner-close{flex-shrink:0}.fab-plus{position:fixed;bottom:calc(var(--space-7) + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);width:48px;height:48px;border-radius:var(--radius-full);background-color:var(--ink);color:var(--text-inverse);border:1px solid var(--ink-active);box-shadow:var(--shadow-md);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard);z-index:20}.fab-plus:hover{background-color:var(--ink-hover);box-shadow:var(--shadow-lg);transform:translate(-50%) translateY(-2px)}.fab-plus:active{background-color:var(--ink-active)}.fab-plus svg{width:22px;height:22px}.editor-toast{position:fixed;bottom:var(--space-7);right:var(--space-7);z-index:20}.canvas-inner h1,.canvas-inner h2,.canvas-inner h3{font-family:var(--font-writing);color:var(--text-primary);letter-spacing:var(--heading-letter-spacing);margin-top:var(--space-6);margin-bottom:var(--space-3)}.canvas-inner h1{font-size:var(--h1-font-size);line-height:var(--h1-line-height);font-weight:var(--h1-font-weight);margin-top:0;margin-bottom:var(--space-4)}.canvas-inner h2{font-size:var(--h2-font-size);line-height:var(--h2-line-height);font-weight:var(--h2-font-weight)}.canvas-inner h3{font-size:var(--h3-font-size);line-height:var(--h3-line-height);font-weight:var(--h3-font-weight)}.canvas-inner p{font-family:var(--font-writing);font-size:var(--body-font-size);line-height:var(--body-line-height);font-weight:var(--body-font-weight);margin-bottom:var(--space-4);max-width:68ch}.canvas-inner p:last-child{margin-bottom:0}.canvas-inner a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.canvas-inner a:hover{color:var(--ink-hover)}.canvas-inner blockquote{font-family:var(--font-writing);font-style:italic;font-size:var(--blockquote-font-size);line-height:var(--blockquote-line-height);font-weight:var(--blockquote-font-weight);color:var(--text-secondary);border-left:3px solid var(--border-strong);padding-left:var(--space-5);margin:var(--space-5) 0;max-width:68ch}.canvas-inner ul,.canvas-inner ol{font-family:var(--font-writing);font-size:var(--body-font-size);line-height:var(--body-line-height);padding-left:var(--space-6);margin-bottom:var(--space-5);max-width:68ch}.canvas-inner ul{list-style:disc}.canvas-inner ol{list-style:decimal}.canvas-inner li{margin-bottom:var(--space-2);padding-left:var(--space-2)}.canvas-inner li::marker{color:var(--text-tertiary)}.canvas-inner p code,.canvas-inner li code{font-family:var(--font-mono);font-size:var(--code-inline-font-size);line-height:var(--code-inline-line-height);background-color:var(--surface-sunken);padding:1px 6px;border-radius:var(--radius-xs);color:var(--text-primary);border:1px solid var(--border-subtle)}.canvas-inner pre{font-family:var(--font-mono);font-size:var(--code-block-font-size);line-height:var(--code-block-line-height);background-color:var(--surface-sunken);color:var(--text-primary);padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow-x:auto;margin:var(--space-5) 0}.canvas-inner pre code{font:inherit;background:none;padding:0;border:none;border-radius:0}.code-block{margin:var(--space-5) 0}.code-block-lang{display:inline-flex;font-family:var(--font-mono);font-size:var(--ui-xs-font-size);line-height:1;color:var(--text-tertiary);background-color:var(--surface-sunken);border:1px solid var(--border-subtle);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:var(--space-2) var(--space-4);margin-bottom:-1px}.code-block pre{margin:0;border-top-left-radius:0}.canvas-inner figure{margin:var(--space-6) 0}.canvas-inner figure img,.canvas-inner figure .fig-media{display:block;width:100%;max-width:100%;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background-color:var(--surface-raised)}.canvas-inner figure .fig-svg{height:auto;aspect-ratio:16 / 9}.canvas-inner figcaption{font-family:var(--font-writing);font-style:var(--caption-font-style);font-size:var(--caption-font-size);line-height:var(--caption-line-height);color:var(--text-secondary);text-align:center;margin-top:var(--space-3)}.video-embed{margin:var(--space-6) 0}.video-thumb{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius-lg);overflow:hidden;background-color:#1a1a1a;background-image:linear-gradient(135deg,#2a2a2a,#121212);display:flex;align-items:center;justify-content:center;border:1px solid var(--border-subtle)}.video-thumb .play-badge{width:72px;height:72px;border-radius:50%;background-color:#ffffff1f;border:2px solid rgba(255,255,255,.9);display:inline-flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);transition:background-color var(--duration-fast) var(--ease-standard)}.video-thumb .play-badge svg{width:28px;height:28px;fill:#fff;stroke:none;transform:translate(2px)}.video-thumb .video-source{position:absolute;left:var(--space-4);top:var(--space-4);font-family:var(--font-ui);font-size:var(--ui-xs-font-size);line-height:1;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;background-color:#00000080;padding:4px var(--space-3);border-radius:var(--radius-sm)}.video-thumb .video-overlay-title{position:absolute;bottom:var(--space-4);left:var(--space-4);right:var(--space-4);font-family:var(--font-ui);font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);font-weight:600;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7)}.link-card{display:flex;align-items:stretch;gap:0;margin:var(--space-6) 0;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background-color:var(--surface-raised);text-decoration:none;color:inherit;overflow:hidden;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);max-width:68ch}.link-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm);text-decoration:none}.link-card-body{flex:1;padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.link-card-title{font-family:var(--font-ui);font-size:var(--ui-md-font-size);line-height:var(--ui-md-line-height);font-weight:600;color:var(--text-primary);letter-spacing:var(--heading-letter-spacing);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.link-card-desc{font-family:var(--font-writing);font-size:var(--ui-sm-font-size);line-height:1.5;color:var(--text-secondary);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.link-card-host{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--ui-xs-font-size);line-height:1;color:var(--text-tertiary);margin-top:auto}.link-card-host svg{width:14px;height:14px}.link-card-thumb{flex-shrink:0;width:160px;background-color:var(--surface-sunken);background-image:linear-gradient(135deg,var(--surface-sunken),var(--author-teal-bg));display:flex;align-items:center;justify-content:center;color:var(--author-teal)}.link-card-thumb svg{width:48px;height:48px}.math-block{position:relative;margin:var(--space-6) 0;padding:var(--space-5) var(--space-6);font-size:110%;text-align:center;background-color:var(--surface-paper);border-radius:var(--radius-lg);border:1px dashed var(--border-subtle)}.canvas-inner math[display=block]{display:block;margin:0 auto}.canvas-inner hr{border:none;border-top:1px solid var(--border-subtle);margin:var(--space-7) 0}.mark-text-color-ink{color:var(--author-ink)}.mark-text-color-stone{color:var(--author-stone)}.mark-text-color-rust{color:var(--author-rust)}.mark-text-color-amber{color:var(--author-amber)}.mark-text-color-moss{color:var(--author-moss)}.mark-text-color-teal{color:var(--author-teal)}.mark-text-color-blue{color:var(--author-blue)}.mark-text-color-indigo{color:var(--author-indigo)}.mark-text-color-plum{color:var(--author-plum)}.mark-bg-color-ink{background-color:var(--author-ink-bg)}.mark-bg-color-stone{background-color:var(--author-stone-bg)}.mark-bg-color-rust{background-color:var(--author-rust-bg)}.mark-bg-color-amber{background-color:var(--author-amber-bg)}.mark-bg-color-moss{background-color:var(--author-moss-bg)}.mark-bg-color-teal{background-color:var(--author-teal-bg)}.mark-bg-color-blue{background-color:var(--author-blue-bg)}.mark-bg-color-indigo{background-color:var(--author-indigo-bg)}.mark-bg-color-plum{background-color:var(--author-plum-bg)}.popover-anchor{position:relative;display:inline-block}.slash-anchor{position:relative}.slash-trigger{font-family:var(--font-writing);font-size:var(--body-font-size);line-height:var(--body-line-height);margin-bottom:var(--space-4)}.slash-typed{color:var(--text-secondary)}.caret{display:inline-block;width:1.5px;height:1.2em;background-color:var(--text-primary);vertical-align:text-bottom;margin-left:1px;animation:caret-blink 1.1s steps(2,start) infinite}@keyframes caret-blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.caret{animation:none}}.slash-menu{position:absolute;top:calc(100% + var(--space-2));left:0;min-width:340px;z-index:15;animation:menu-pop var(--duration-base) var(--ease-standard)}@keyframes menu-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.menu-shortcut{font-family:var(--font-mono);letter-spacing:0}.menu-item .menu-item-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background-color:var(--surface-sunken);color:var(--text-secondary);flex-shrink:0}.menu-item .menu-item-icon svg{width:16px;height:16px}.menu-item.is-highlighted .menu-item-icon{background-color:var(--ink-subtle);color:var(--ink)}.slash-shadow-below{opacity:.55}@media(max-width:720px){.slash-anchor:after{content:"";position:fixed;inset:0;background-color:var(--surface-overlay);z-index:14;animation:modal-backdrop-in var(--duration-slow) var(--ease-standard)}.slash-menu{position:fixed;inset:auto 0 0;width:100%;min-width:0;max-height:70vh;overflow-y:auto;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding-top:var(--space-3);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-lg);z-index:15;animation:sheet-up var(--duration-slow) var(--ease-emphasised)}.slash-menu:before{content:"";display:block;width:40px;height:4px;border-radius:2px;background-color:var(--border-default);margin:0 auto var(--space-3)}.fab-plus{display:none}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.insert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}@media(max-width:640px){.insert-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:420px){.insert-grid{grid-template-columns:1fr}}.insert-tile{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-5);background-color:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard)}.insert-tile:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm);text-decoration:none}.insert-tile:active{transform:translateY(1px)}.insert-tile-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background-color:var(--ink-subtle);color:var(--ink);flex-shrink:0}.insert-tile-icon svg{width:22px;height:22px}.insert-tile--image .insert-tile-icon{background-color:var(--author-moss-bg);color:var(--author-moss)}.insert-tile--video .insert-tile-icon{background-color:var(--author-plum-bg);color:var(--author-plum)}.insert-tile--code .insert-tile-icon{background-color:var(--author-teal-bg);color:var(--author-teal)}.insert-tile--math .insert-tile-icon{background-color:var(--ink-subtle);color:var(--ink)}.insert-tile--link .insert-tile-icon{background-color:var(--author-amber-bg);color:var(--author-amber)}.insert-tile--draw .insert-tile-icon{background-color:var(--author-rust-bg);color:var(--author-rust)}.insert-tile-title{font-family:var(--font-ui);font-size:var(--ui-md-font-size);line-height:var(--ui-md-line-height);font-weight:600;letter-spacing:var(--heading-letter-spacing);color:var(--text-primary)}.insert-tile-desc{font-family:var(--font-writing);font-size:var(--ui-sm-font-size);line-height:1.5;color:var(--text-secondary)}.insert-tile-shortcut{font-family:var(--font-mono);font-size:var(--ui-xs-font-size);line-height:1;color:var(--text-tertiary);margin-top:auto;padding-top:var(--space-3)}.insert-grid-break{grid-column:1 / -1;display:flex;align-items:center;gap:var(--space-3);color:var(--text-tertiary);font-size:var(--ui-xs-font-size);line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-top:var(--space-3)}.insert-grid-break:before,.insert-grid-break:after{content:"";flex:1;height:1px;background-color:var(--border-subtle)}.insert-modal .modal-close{align-self:flex-start;margin-left:auto}.insert-modal .modal-header{align-items:flex-start;padding-bottom:var(--space-4)}.insert-modal .modal-body{padding-bottom:var(--space-7)}@media(max-width:720px){.modal-backdrop{padding:0;align-items:flex-end}.insert-modal.modal--lg{width:100%;max-width:100%;max-height:85vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}.insert-modal .modal-header{padding:var(--space-5) var(--space-5) var(--space-3)}.insert-modal .modal-header>div{min-width:0;flex:1 1 0}.insert-modal .modal-body{padding:0 var(--space-5) var(--space-5)}.insert-modal:before{content:"";display:block;width:40px;height:4px;border-radius:2px;background-color:var(--border-default);margin:var(--space-3) auto 0;flex-shrink:0}}.math-anchor{position:relative;margin:calc(220px + var(--space-6)) 0 var(--space-6)}.math-popover{position:absolute;bottom:calc(100% + var(--space-3));left:0;width:min(520px,100%);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;z-index:15}.math-popover:after{content:"";position:absolute;bottom:-6px;left:var(--space-7);width:12px;height:12px;background-color:var(--surface-raised);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);transform:rotate(45deg)}.math-popover--below{top:calc(100% + var(--space-3));bottom:auto}.math-popover--below:after{top:-6px;bottom:auto;border-right:none;border-bottom:none;border-left:1px solid var(--border-subtle);border-top:1px solid var(--border-subtle)}.math-inline{position:relative;display:inline-block}.math-popover--inline{display:inline-flex;flex-direction:column;gap:var(--space-2);width:auto;min-width:240px;max-width:min(420px,calc(100vw - var(--space-6) * 2));padding:var(--space-3)}.math-popover--inline:after{display:none}.math-popover--inline .math-latex{width:100%;height:32px;font-family:var(--font-mono);font-size:var(--ui-sm-font-size);padding:0 var(--space-3);background-color:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary)}.math-popover--inline .math-latex:focus,.math-popover--inline .math-latex:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--ink-subtle)}.math-popover--inline .math-latex.is-error{border-color:var(--danger)}.math-popover--inline .math-preview-error{font-size:var(--ui-xs-font-size);line-height:var(--ui-xs-line-height);color:var(--danger)}.math-preview-inline{display:block;min-height:28px;padding:var(--space-2) var(--space-3);background-color:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);text-align:center;font-size:110%}.math-popover-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);border-bottom:1px solid var(--border-subtle);background-color:var(--surface-raised)}.math-popover-title{font-family:var(--font-ui);font-size:var(--ui-sm-font-size);line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.math-popover-title .block-marker{color:var(--ink);margin-right:var(--space-2)}.math-popover-actions{display:inline-flex;align-items:center;gap:var(--space-1)}.math-popover-body{padding:var(--space-5) var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.math-latex{font-family:var(--font-mono);font-size:var(--code-block-font-size);line-height:var(--code-block-line-height);width:100%;min-height:calc(var(--code-block-line-height) * 3 + var(--space-4));padding:var(--space-3) var(--space-4);background-color:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);resize:vertical;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.math-latex:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--ink-subtle)}.math-latex.is-error{border-color:var(--danger)}.math-latex.is-error:focus{box-shadow:0 0 0 3px var(--danger-subtle)}.math-preview-label{font-family:var(--font-ui);font-size:var(--ui-xs-font-size);line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.math-preview{padding:var(--space-5) var(--space-5);background-color:var(--surface-paper);border:1px dashed var(--border-default);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;min-height:80px;text-align:center}.math-preview-error{display:flex;align-items:flex-start;gap:var(--space-3);padding:0;text-align:left;width:100%}.math-preview-error svg{width:18px;height:18px;color:var(--danger);flex-shrink:0;margin-top:2px}.math-preview-error .error-title{font-family:var(--font-ui);font-size:var(--ui-sm-font-size);font-weight:700;color:var(--danger);display:block;margin-bottom:var(--space-1)}.math-preview-error .error-detail{font-family:var(--font-mono);font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary)}.math-preview-error .error-detail .bad-token{color:var(--danger);background-color:var(--danger-subtle);padding:1px 4px;border-radius:var(--radius-xs)}.math-preview-error .error-hint{font-family:var(--font-writing);font-size:var(--ui-sm-font-size);line-height:1.5;color:var(--text-tertiary);margin-top:var(--space-2)}.math-popover-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-subtle);background-color:var(--surface-base)}.math-popover-foot .hint{font-family:var(--font-ui);font-size:var(--ui-xs-font-size);color:var(--text-tertiary);display:inline-flex;align-items:center;gap:var(--space-2)}.math-popover-foot .hint kbd{font-family:var(--font-mono);font-size:calc(var(--ui-xs-font-size) + 1px);background-color:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-xs);padding:1px 5px;color:var(--text-secondary)}.math-popover-foot-actions{display:inline-flex;gap:var(--space-2)}.math-block.is-invalid{border-color:var(--danger);border-style:dashed;background-color:var(--surface-paper);font-family:var(--font-mono);font-size:var(--code-inline-font-size);line-height:var(--code-inline-line-height);color:var(--text-secondary);text-align:left;position:relative;padding-right:calc(var(--space-7) + var(--space-4))}.math-block.is-invalid .invalid-chip{position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--ui-xs-font-size);font-weight:700;color:var(--danger);letter-spacing:.02em}.math-block.is-invalid .invalid-chip svg{width:14px;height:14px}.math-block.is-editing{box-shadow:0 0 0 2px var(--ink-subtle)}.popover-shadow{opacity:.55}.color-popover{position:absolute;top:calc(100% + var(--space-2));left:0;z-index:30;background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-3);min-width:132px}.color-grid{display:grid;grid-template-columns:repeat(3,28px);gap:var(--space-2)}.color-swatch{width:28px;height:28px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:var(--font-writing);font-size:var(--ui-xs-font-size)}.color-swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--surface-raised),0 0 0 4px var(--ink)}.color-swatch[data-color=ink]{--swatch-fill: var(--author-ink);--swatch-tint: var(--author-ink-bg)}.color-swatch[data-color=stone]{--swatch-fill: var(--author-stone);--swatch-tint: var(--author-stone-bg)}.color-swatch[data-color=rust]{--swatch-fill: var(--author-rust);--swatch-tint: var(--author-rust-bg)}.color-swatch[data-color=amber]{--swatch-fill: var(--author-amber);--swatch-tint: var(--author-amber-bg)}.color-swatch[data-color=moss]{--swatch-fill: var(--author-moss);--swatch-tint: var(--author-moss-bg)}.color-swatch[data-color=teal]{--swatch-fill: var(--author-teal);--swatch-tint: var(--author-teal-bg)}.color-swatch[data-color=blue]{--swatch-fill: var(--author-blue);--swatch-tint: var(--author-blue-bg)}.color-swatch[data-color=indigo]{--swatch-fill: var(--author-indigo);--swatch-tint: var(--author-indigo-bg)}.color-swatch[data-color=plum]{--swatch-fill: var(--author-plum);--swatch-tint: var(--author-plum-bg)}.color-popover[data-mode=text] .color-swatch{background-color:var(--swatch-fill)}.color-popover[data-mode=bg] .color-swatch{background-color:var(--swatch-tint);color:var(--swatch-fill)}.color-popover[data-mode=bg] .color-swatch:before{content:"a"}.color-remove{display:block;width:100%;margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-subtle);background:none;font-size:var(--ui-sm-font-size);color:var(--text-secondary);cursor:pointer;text-align:center}.color-remove:hover{color:var(--text-primary);background-color:var(--surface-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.link-popover{position:absolute;top:calc(100% + var(--space-2));left:0;z-index:30;width:280px;background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-5)}.link-popover-close{position:absolute;top:var(--space-2);right:var(--space-2)}.link-input{width:100%;padding:var(--space-2) 0;background:none;border:none;border-bottom:1px solid var(--border-default);font-family:var(--font-ui);font-size:var(--ui-sm-font-size);color:var(--text-primary)}.link-input:focus{outline:none;border-bottom-color:var(--ink)}.link-popover-foot{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-4);gap:var(--space-3)}.link-popover-remove{background:none;border:none;color:var(--danger);font-size:var(--ui-sm-font-size);cursor:pointer}.link-popover-remove:hover{text-decoration:underline}.pattern-picker{position:relative;display:inline-block}.pattern-picker-popover{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:30;min-width:200px;background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-2)}.pattern-picker-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;border-radius:var(--radius-md);font-size:var(--ui-sm-font-size);color:var(--text-primary);cursor:pointer;text-align:left}.pattern-picker-item:hover{background-color:var(--surface-sunken)}.pattern-picker-preview{width:32px;height:32px;border-radius:var(--radius-sm);background-color:var(--surface-paper);border:1px solid var(--border-subtle);flex-shrink:0}.pattern-picker-item.is-active .pattern-picker-preview{box-shadow:0 0 0 2px var(--ink)}.list-section-head{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--ui-xs-font-size);line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:var(--space-1) 0}.list-section-head svg{width:12px;height:12px;color:var(--amber);fill:var(--amber);stroke:var(--amber)}.note-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.note-list+.list-section-head{margin-top:var(--space-5)}.note-card{position:relative;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5) var(--space-6);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:inherit;text-decoration:none;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.note-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm);text-decoration:none}.note-card-title-row{display:flex;align-items:flex-start;gap:var(--space-4)}.note-card-title{font-family:var(--font-ui);font-size:var(--ui-md-font-size);line-height:var(--ui-md-line-height);font-weight:600;color:var(--text-primary);letter-spacing:var(--heading-letter-spacing);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-card-pin{flex-shrink:0;width:16px;height:16px;color:var(--amber);fill:var(--amber);stroke:var(--amber);margin-top:3px}.note-card-folder-icon{flex-shrink:0;width:18px;height:18px;color:var(--text-secondary);margin-top:1px}.note-card-preview{font-family:var(--font-writing);font-style:italic;font-size:var(--body-font-size);line-height:1.5;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-card-meta{display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-ui);font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.note-card-meta .dot{width:3px;height:3px;border-radius:50%;background-color:currentColor;opacity:.5}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);padding:var(--space-9) var(--space-6);text-align:center;border:1px dashed var(--border-default);border-radius:var(--radius-xl);background-color:var(--surface-raised)}.empty-illo{width:140px;height:160px;color:var(--border-default)}.empty-illo .page{fill:var(--surface-paper);stroke:currentColor;stroke-width:1.5}.empty-illo .corner{fill:var(--surface-sunken);stroke:currentColor;stroke-width:1.5}.empty-illo .rule{stroke:var(--pattern-line);stroke-width:1}.empty-illo .plus{stroke:var(--ink);stroke-width:2;stroke-linecap:round;opacity:.65}.empty-title{font-family:var(--font-writing);font-style:italic;font-size:var(--h2-font-size);line-height:var(--h2-line-height);font-weight:500;color:var(--text-primary);letter-spacing:var(--heading-letter-spacing);max-width:36ch}.empty-sub{font-family:var(--font-ui);font-size:var(--ui-base-font-size);line-height:var(--ui-base-line-height);color:var(--text-secondary);max-width:48ch}.empty-cta{display:inline-flex;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center}.empty-hint{font-size:var(--ui-xs-font-size);line-height:var(--ui-xs-line-height);color:var(--text-tertiary);margin-top:var(--space-4);font-family:var(--font-ui)}.empty-hint kbd{font-family:var(--font-mono);background-color:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-xs);padding:1px 6px;font-size:calc(var(--ui-xs-font-size) + 1px);line-height:1.4;color:var(--text-secondary)}@media(max-width:520px){.empty{padding:var(--space-6) var(--space-5);gap:var(--space-4)}.empty-illo{width:96px;height:110px}.empty-hint{margin-top:var(--space-2)}}.sidebar-backdrop{position:fixed;inset:0;background-color:var(--surface-overlay);z-index:90}.sidebar-drawer{position:fixed;top:0;left:0;bottom:0;z-index:100;background-color:var(--surface-paper);border-right:1px solid var(--border-subtle);box-shadow:var(--shadow-md)}.sidebar-drawer-close{position:absolute;top:var(--space-2);right:var(--space-2)}.hamburger{margin:var(--space-3)}.settings-wrap{max-width:820px;margin:0 auto}.settings-section{padding:var(--space-7) 0;border-bottom:1px solid var(--border-subtle)}.settings-section:last-child{border-bottom:none}.settings-section-title{font-family:var(--font-ui);font-size:var(--ui-lg-font-size);line-height:var(--ui-lg-line-height);font-weight:var(--ui-lg-font-weight);color:var(--text-primary);letter-spacing:var(--heading-letter-spacing);margin-bottom:var(--space-2)}.settings-section-lede{font-family:var(--font-writing);font-size:var(--ui-base-font-size);line-height:1.5;color:var(--text-secondary);margin-bottom:var(--space-6);max-width:64ch}.settings-field{display:grid;grid-template-columns:240px 1fr;gap:var(--space-6);padding:var(--space-5) 0;align-items:start;border-top:1px dashed var(--border-subtle)}.settings-field:first-of-type{border-top:none;padding-top:0}.settings-field-label{font-family:var(--font-ui);font-size:var(--ui-base-font-size);line-height:var(--ui-base-line-height);font-weight:600;color:var(--text-primary)}.settings-field-help{font-family:var(--font-writing);font-size:var(--ui-sm-font-size);line-height:1.5;color:var(--text-secondary);margin-top:var(--space-2);max-width:32ch}.settings-field-control{min-width:0;display:flex;flex-direction:column;gap:var(--space-3)}.input-row{display:flex;align-items:center;gap:var(--space-3)}.password-form{display:flex;flex-direction:column;gap:var(--space-5)}.seg-group{display:inline-flex;align-items:stretch;padding:2px;background-color:var(--surface-sunken);border-radius:var(--radius-md);flex-wrap:wrap}.seg-option{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 var(--space-4);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--ui-sm-font-size);font-weight:600;line-height:1;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);font-variant-numeric:tabular-nums}.seg-option:hover{color:var(--text-primary)}.seg-option.is-selected{background-color:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-xs)}.tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}@media(max-width:640px){.tile-grid{grid-template-columns:repeat(2,1fr)}}.tile{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;position:relative;transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.tile:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm)}.tile.is-selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink-subtle)}.tile.is-selected:after{content:"";position:absolute;top:var(--space-2);right:var(--space-2);width:14px;height:14px;border-radius:50%;background-color:var(--ink);border:2px solid var(--surface-raised)}.tile-label{font-family:var(--font-ui);font-size:var(--ui-sm-font-size);line-height:1;font-weight:600;color:var(--text-primary);text-align:center}.pattern-swatch{width:100%;aspect-ratio:7 / 5;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background-color:var(--surface-paper)}.pattern-swatch--lines{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 9px,var(--pattern-line) 9px,var(--pattern-line) 10px)}.pattern-swatch--lines-dense{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 4px,var(--pattern-line-dense) 4px,var(--pattern-line-dense) 5px)}.pattern-swatch--grid{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 9px,var(--pattern-line) 9px,var(--pattern-line) 10px),repeating-linear-gradient(to right,transparent 0,transparent 9px,var(--pattern-line) 9px,var(--pattern-line) 10px)}.pattern-swatch--grid-dense{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 4px,var(--pattern-line-dense) 4px,var(--pattern-line-dense) 5px),repeating-linear-gradient(to right,transparent 0,transparent 4px,var(--pattern-line-dense) 4px,var(--pattern-line-dense) 5px)}.pattern-swatch--dots{background-image:radial-gradient(circle,var(--pattern-line) .9px,transparent 1.4px);background-size:10px 10px}.pattern-swatch--dots-dense{background-image:radial-gradient(circle,var(--pattern-line-dense) .7px,transparent 1.1px);background-size:5px 5px}.theme-tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);max-width:540px}@media(max-width:560px){.theme-tile-grid{grid-template-columns:1fr}}.theme-preview{width:100%;aspect-ratio:16 / 10;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);display:block}.settings-section--danger{margin-top:var(--space-7);padding:var(--space-6);border:1px solid var(--danger);border-radius:var(--radius-lg);background-color:var(--surface-raised)}.danger-row{display:flex;gap:var(--space-6);align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:var(--space-5)}.danger-row+.danger-row{padding-top:var(--space-5);border-top:1px dashed var(--danger)}.danger-title{font-family:var(--font-ui);font-size:var(--ui-md-font-size);line-height:var(--ui-md-line-height);font-weight:600;color:var(--danger)}.danger-detail{font-family:var(--font-writing);font-size:var(--ui-sm-font-size);line-height:1.5;color:var(--text-secondary);margin-top:var(--space-1);max-width:48ch}@media(max-width:720px){.settings-field{grid-template-columns:1fr;gap:var(--space-3)}}.signin-page{min-height:100vh;display:grid;place-items:center;padding:var(--space-7) var(--space-5)}.signin-wrap{width:100%;max-width:440px;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-6)}.signin-wordmark{text-align:center;font-family:var(--font-writing);font-size:var(--h1-font-size);line-height:var(--h1-line-height);font-weight:var(--h1-font-weight);letter-spacing:var(--heading-letter-spacing);color:var(--text-primary)}.signin-wordmark em{font-style:italic;color:var(--ink);font-weight:600}.signin-tag{text-align:center;font-family:var(--font-writing);font-style:italic;font-size:var(--caption-font-size);line-height:var(--caption-line-height);color:var(--text-tertiary);margin-top:calc(var(--space-3) * -1)}.signin-card{background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-8) var(--space-7)}.signin-title{font-family:var(--font-ui);font-size:var(--ui-lg-font-size);line-height:var(--ui-lg-line-height);font-weight:var(--ui-lg-font-weight);color:var(--text-primary);letter-spacing:var(--heading-letter-spacing)}.signin-subtitle{font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary);margin-top:var(--space-2);margin-bottom:var(--space-6)}.signin-form{display:flex;flex-direction:column;gap:var(--space-5)}.signin-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}.signin-label-row .forgot{font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--ink);font-weight:500}.signin-input-wrap{position:relative}.signin-input-wrap .reveal{position:absolute;top:50%;right:var(--space-3);transform:translateY(-50%);width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary);border-radius:var(--radius-sm)}.signin-input-wrap .reveal:hover{color:var(--text-secondary);background-color:var(--surface-sunken)}.signin-input-wrap .reveal svg{width:18px;height:18px}.signin-input-wrap input.input{padding-right:40px}.signin-footer{text-align:center;font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-secondary)}.signin-footer a{font-weight:600}.signin-locale{display:flex;justify-content:center;align-items:center;gap:var(--space-4);font-size:var(--ui-sm-font-size);line-height:var(--ui-sm-line-height);color:var(--text-tertiary)}.signin-locale a{color:inherit;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.signin-locale a.is-active{color:var(--text-primary);font-weight:600}.signin-locale-sep{opacity:.5}.top-right{position:fixed;top:var(--space-5);right:var(--space-5)}.image-block{position:relative;display:block;margin:12px auto;max-width:100%;outline:none}.image-block.is-selected{outline:2px solid var(--ink);outline-offset:2px}.image-block__img{display:block;width:100%;height:100%;object-fit:contain;border-radius:var(--radius-sm)}.image-block__placeholder{position:absolute;inset:0;background:linear-gradient(90deg,var(--surface-paper) 0%,var(--surface-sunken) 50%,var(--surface-paper) 100%);background-size:200% 100%;animation:image-block-shimmer 1.2s linear infinite;border-radius:var(--radius-sm)}@keyframes image-block-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.image-block__broken{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%;background:var(--surface-sunken);border:1px dashed var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary)}.image-block__handle{position:absolute;width:12px;height:12px;background:var(--surface-paper);border:2px solid var(--ink);border-radius:50%;cursor:nwse-resize}.image-block__handle--nw{top:-6px;left:-6px;cursor:nwse-resize}.image-block__handle--ne{top:-6px;right:-6px;cursor:nesw-resize}.image-block__handle--sw{bottom:-6px;left:-6px;cursor:nesw-resize}.image-block__handle--se{bottom:-6px;right:-6px;cursor:nwse-resize}.image-block__full-bleed-badge{position:absolute;top:8px;right:8px;padding:2px 6px;font-family:var(--font-mono);font-size:11px;background:var(--text-primary);color:var(--surface-paper);border-radius:var(--radius-xs);letter-spacing:.04em;pointer-events:none}.alt-popover{position:absolute;top:-52px;left:0;background:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:6px 8px;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-sm)}.alt-popover__editor textarea{width:240px;font-family:var(--font-ui);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:4px 6px;resize:vertical}.alt-popover__display{display:flex;align-items:center;gap:8px}.alt-popover__buttons{display:flex;gap:6px;margin-top:6px}.image-picker-dialog{background:var(--surface-paper);border-radius:var(--radius-lg);padding:16px;width:480px;max-width:90vw;box-shadow:var(--shadow-md)}.image-picker-dialog__tabs{display:flex;border-bottom:1px solid var(--border-subtle);margin:-16px -16px 12px}.image-picker-dialog__tabs button{flex:1 0 0;padding:10px 0;background:transparent;border:0;cursor:pointer;font-family:var(--font-ui)}.image-picker-dialog__tabs button.is-active{border-bottom:2px solid var(--ink);font-weight:600}.image-picker-dialog__upload,.image-picker-dialog__url{display:flex;flex-direction:column;gap:10px;align-items:stretch}.image-picker-dialog__upload{border:2px dashed transparent;border-radius:var(--radius-md, 6px);padding:24px 16px;transition:border-color .12s ease,background .12s ease}.image-picker-dialog__upload.is-drag-over{border-color:var(--ink, var(--ink-300));background:var(--surface-sunken)}.image-picker-dialog__preview{max-width:100%;max-height:200px;align-self:center;border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.editor-error-banner{position:fixed;bottom:16px;left:50%;transform:translate(-50%);background:var(--text-primary);color:var(--surface-paper);padding:10px 14px;border-radius:var(--radius-md);display:flex;gap:10px;align-items:center;box-shadow:var(--shadow-md);font-family:var(--font-ui);z-index:1000}.editor-error-banner__close{background:transparent;border:0;color:inherit;font-size:18px;cursor:pointer;line-height:1}.banner{display:flex;gap:8px;align-items:center;padding:8px 12px;border-radius:var(--radius-sm);margin:8px 0;font-family:var(--font-ui),sans-serif;font-size:14px}.banner--info{background:var(--surface-info-bg);color:var(--text-info)}.banner--success{background:var(--surface-success-bg);color:var(--text-success)}.banner--error{background:var(--surface-error-bg);color:var(--text-error)}.banner-action{margin-left:auto;padding:4px 10px;border:1px solid currentColor;background:transparent;color:inherit;border-radius:var(--radius-xs, 4px);cursor:pointer}.spinner{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.video-embed{margin:var(--space-6) 0;position:relative;aspect-ratio:16 / 9;border-radius:var(--radius-lg);overflow:hidden;background-color:var(--surface-sunken);border:1px solid var(--border-subtle)}.video-embed--loaded{border:none}.video-embed iframe{width:100%;height:100%;border:0;display:block}.video-embed__poster-button{width:100%;height:100%;display:block;padding:0;border:0;background:transparent;cursor:pointer;position:relative}.video-embed__poster-img{width:100%;height:100%;object-fit:cover;display:block}.video-embed__poster-fallback{width:100%;height:100%;background-image:linear-gradient(135deg,var(--surface-sunken),var(--author-teal-bg))}.video-embed__play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:64px;line-height:1;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45);pointer-events:none}.url-paste-chooser{background:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:4px;min-width:220px;font-family:var(--font-ui);z-index:30}.url-paste-chooser__item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 12px;border:0;background:transparent;text-align:left;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--ui-sm-font-size);color:var(--text-primary)}.url-paste-chooser__item:hover,.url-paste-chooser__item--active{background:var(--surface-sunken)}.url-paste-chooser__shortcut{margin-left:auto;color:var(--text-tertiary);font-family:var(--font-mono);font-size:11px}.url-input-dialog__backdrop{position:fixed;inset:0;background:#00000052;display:flex;align-items:center;justify-content:center;z-index:50}.url-input-dialog{background:var(--surface-paper);border-radius:var(--radius-lg);padding:24px;width:380px;box-shadow:var(--shadow-lg);font-family:var(--font-ui)}.url-input-dialog__title{margin:0 0 16px;font-size:var(--ui-md-font-size)}.url-input-dialog__input{width:100%;padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-sm);font:inherit;margin-bottom:8px}.url-input-dialog__error{color:var(--danger);font-size:var(--ui-sm-font-size);margin-bottom:12px}.url-input-dialog__actions{display:flex;gap:8px;justify-content:flex-end}.embed-edit-popover{background:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:4px;display:flex;gap:4px;font-family:var(--font-ui);z-index:30}.embed-edit-popover button{border:0;background:transparent;padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--ui-sm-font-size);color:var(--text-primary)}.embed-edit-popover button:hover{background:var(--surface-sunken)}.embed-edit-popover button[aria-busy=true]{opacity:.6;cursor:progress}body.bonnot-presentation .app-bar,body.bonnot-presentation .note-header,body.bonnot-presentation .text-subtoolbar{display:none}.presentation-hint{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:8px 16px;background:#000000a8;color:var(--text-inverse);border-radius:var(--radius-md);font-family:var(--font-ui);font-size:14px;pointer-events:none;z-index:100;animation:presentation-hint-fade var(--duration-base) var(--ease-standard) forwards}@keyframes presentation-hint-fade{0%,70%{opacity:1}to{opacity:0}}.duplicated-toast{position:fixed;bottom:var(--space-6);right:var(--space-6);padding:var(--space-3) var(--space-5);background:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-family:var(--font-ui);font-size:var(--ui-base-font-size);z-index:100;animation:duplicated-toast-fade var(--duration-base) var(--ease-standard) 2.5s forwards}@keyframes duplicated-toast-fade{0%{opacity:1}to{opacity:0}}
