:root{--ink:#1c1917;--ink-muted:#57534e;--paper:#faf7f2;--paper-edge:#e7e0d4;--shelf:#2a2622;--shelf-warm:#3d3530;--accent:#b45309;--accent-soft:#b4530926;--bloom:#fcd34d;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}body{min-height:100svh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(120% 80% at 50% 0%, #3d3530 0%, var(--shelf) 55%);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}#root{min-height:100svh}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html.vellum-reduce-motion *,html.vellum-reduce-motion :before,html.vellum-reduce-motion :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html.vellum-reduce-motion .paper--saving{animation:none!important}html.vellum-reduce-motion .streak-glow,html.vellum-reduce-motion .spine-breathe{opacity:.35;animation:none!important}.app-shell{max-width:960px;min-height:100svh;margin:0 auto;padding:clamp(1rem,4vw,2.5rem)}.vellum-sync-banner{color:var(--ink,#1a1a1a);background:#b91c1c14;border:1px solid #b91c1c59;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-bottom:1rem;padding:.65rem .85rem;font-size:.85rem;display:flex}.vellum-sync-banner p{flex:12rem;margin:0;line-height:1.4}.vellum-sync-banner-actions{flex-wrap:wrap;gap:.4rem;display:flex}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--bloom);margin:0;font-size:.75rem}.onboarding{text-align:center;padding:2rem 0 4rem}.onboarding h1{font-family:var(--font-display);color:var(--paper);margin:.35rem 0 .75rem;font-size:clamp(2rem,5vw,3rem);font-weight:600}.onboarding .eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--bloom);margin:0;font-size:.75rem}.onboarding .lede{color:#faf7f2b8;max-width:28rem;margin:0 auto 2.5rem}.template-grid{text-align:left;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.template-card{cursor:pointer;background:var(--paper);border:none;border-radius:12px;align-items:stretch;width:100%;min-height:120px;padding:0;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 4px 24px #00000040,0 0 0 1px #ffffff0f}.template-card:hover{transform:translateY(-3px);box-shadow:0 12px 40px #00000059,0 0 0 1px #ffffff1a}.template-card:focus-visible{outline:2px solid var(--bloom);outline-offset:3px}.template-spine{background:linear-gradient(90deg, hsl(var(--spine), 42%, 32%) 0%, hsl(var(--spine), 38%, 48%) 45%, hsl(var(--spine), 35%, 36%) 100%);flex-shrink:0;width:1.25rem;box-shadow:inset -2px 0 4px #0003}.template-body{flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem;display:flex}.template-body strong{font-family:var(--font-display);font-size:1.35rem;font-weight:600}.template-body span{color:var(--ink-muted);font-size:.875rem}.shelf-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2.5rem;display:flex}.shelf-header h1{font-family:var(--font-display);color:var(--paper);margin:.25rem 0 0;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:600}.shelf-tagline{color:#faf7f273;margin:.5rem 0 0;font-size:.8rem}.linkish{color:var(--bloom);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.linkish:hover{color:#fde68a}.shelf-kbd{color:#faf7f280;border:1px solid #faf7f226;border-radius:4px;margin-left:.15rem;padding:.1rem .35rem;font-size:.65rem;font-weight:600;display:inline-block}.shelf-icon-btn{min-width:2.5rem;padding-inline:.65rem;font-size:1.1rem;line-height:1}.shelf-meta{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.streak-pill{color:var(--shelf);background:linear-gradient(135deg, var(--bloom), #fbbf24);border-radius:999px;align-items:center;padding:.35rem .85rem;font-size:.8rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.streak-glow{pointer-events:none;background:radial-gradient(circle,#ffffff80,#0000 55%);animation:3s ease-in-out infinite streak-shine;position:absolute;inset:-40%}@keyframes streak-shine{0%,to{opacity:.3;transform:translate(-20%,-20%)}50%{opacity:.7;transform:translate(10%,10%)}}.empty-shelf-block{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:3rem 1rem 4rem;display:flex}.empty-shelf{color:#faf7f28c;margin:0}.spine-row{flex-wrap:wrap;align-items:flex-end;gap:1.25rem;min-height:200px;margin:0;padding:0;list-style:none;display:flex}.spine{cursor:pointer;writing-mode:vertical-rl;text-orientation:mixed;background:linear-gradient(90deg, hsl(var(--hue), 38%, 28%) 0%, hsl(var(--hue), 42%, 42%) 40%, hsl(var(--hue), 36%, 32%) 100%);color:#ffffffeb;width:3.25rem;height:11rem;font-family:var(--font-display);letter-spacing:.06em;border:none;border-radius:6px 10px 10px 6px;justify-content:center;align-items:center;padding:.5rem .35rem;font-size:1.05rem;font-weight:600;transition:transform .2s;display:flex;position:relative;transform:rotate(0);box-shadow:4px 8px 20px #00000059,inset 2px 0 #ffffff1f}.spine:hover{transform:translateY(-6px)scale(1.02)}.spine:focus-visible{outline:2px solid var(--bloom);outline-offset:4px}.spine-ridge{pointer-events:none;background:linear-gradient(#0000,#ffffff40 40%,#0000);border-radius:1px;width:2px;position:absolute;top:8%;bottom:8%;left:3px}.spine-label{z-index:1;text-overflow:ellipsis;max-height:9rem;position:relative;overflow:hidden}.spine-breathe{border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff1f,#0000 60%);position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.spine-breathe,.streak-glow{opacity:.35;animation:none!important}}.btn{font-family:var(--font-body);cursor:pointer;border:1px solid #0000;border-radius:999px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:background .2s,color .2s,border-color .2s}.btn.primary{background:var(--bloom);color:var(--shelf)}.btn.primary:hover{filter:brightness(1.05)}.btn.ghost{color:var(--paper);background:#faf7f214;border-color:#faf7f233}.btn.ghost:hover{background:#faf7f224}.btn:focus-visible{outline:2px solid var(--bloom);outline-offset:2px}.editor{flex-direction:column;min-height:calc(100svh - 2*clamp(1rem,4vw,2.5rem));display:flex}.editor--focus .editor-bar{opacity:.35}.editor--focus .editor-bar:hover{opacity:1}.editor-workspace{flex:1;align-items:stretch;gap:1rem;min-height:0;display:flex}.page-rail{background:#2a26228c;border:1px solid #faf7f21a;border-radius:12px;flex-direction:column;flex:0 0 11.5rem;gap:.5rem;max-height:min(70vh,28rem);padding:.65rem .75rem;display:flex}.page-rail-head{border-bottom:1px solid #faf7f21a;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;padding-bottom:.35rem;display:flex}.page-rail-hint{color:#faf7f261;margin:.2rem 0 0;font-size:.65rem;line-height:1.3}.page-rail-title{letter-spacing:.14em;text-transform:uppercase;color:#faf7f280;font-size:.7rem}.page-rail-count{color:var(--bloom);font-size:.75rem;font-weight:600}.page-rail-feedback{flex:100%;margin:.45rem 0 0;font-size:.72rem;line-height:1.35}.page-rail-feedback.is-success{color:#86efac}.page-rail-feedback.is-error{color:#fca5a5}.page-rail-list{flex-direction:column;flex:1;gap:.35rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.page-rail-reorder-item{list-style:none;position:relative}.page-rail-grip{color:#faf7f259;cursor:grab;touch-action:none;background:#00000026;border:none;border-radius:6px 0 0 6px;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;padding:0;display:flex}.page-rail-grip:hover{color:#faf7f2a6;background:#00000038}.page-rail-grip:active{cursor:grabbing}.page-rail-grip-dots{width:7px;height:12px;display:block}.page-rail-grip-dots:before{content:"";background:currentColor;border-radius:50%;width:2px;height:2px;display:block;box-shadow:0 5px,0 10px,5px 0,5px 5px,5px 10px}.page-rail-row{background:#0000001f;border:1px solid #0000;border-radius:8px;align-items:stretch;gap:.25rem;display:flex}.page-rail-row.is-active{background:#fcd34d14;border-color:#fcd34d73}.page-rail-item{color:#faf7f2e0;font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;align-items:center;gap:.5rem;padding:.45rem .5rem;font-size:.8rem;display:flex}.page-rail-item:hover{color:var(--paper)}.page-rail-index{color:#faf7f2bf;background:#faf7f21a;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.65rem;font-weight:700;display:flex}.page-rail-row.is-active .page-rail-index{color:var(--shelf);background:#fcd34d40}.page-rail-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-rail-delete{color:#faf7f273;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;width:1.75rem;font-size:1.1rem;line-height:1}.page-rail-delete:hover{color:#fca5a5;background:#f871711f}.page-rail-add{justify-content:center;width:100%;margin-top:.25rem;font-size:.8rem}.spine-activity{font-family:var(--font-body);color:#fff6;z-index:2;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 4px);font-size:.5rem;font-weight:500;position:absolute;bottom:22px;left:50%;overflow:hidden;transform:translate(-50%)}.spine-pages{font-family:var(--font-body);color:#ffffff8c;z-index:2;font-size:.6rem;font-weight:700;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.paper-stage{justify-content:center;width:100%;display:flex}.paper--saving{animation:.45s ease-out paper-save-pulse}@keyframes paper-save-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.008)}}@media (prefers-reduced-motion:reduce){.paper--saving{animation:none}}@media (width<=720px){.editor-workspace{flex-direction:column}.page-rail{flex:none;width:100%;max-height:11rem}.page-rail-list{flex-flow:wrap}.page-rail-list li{flex:45%;min-width:8rem}}.editor-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;transition:opacity .3s;display:flex}.editor-bar-left{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.editor-title-block{text-align:center;flex:1;min-width:140px}.notebook-name{font-family:var(--font-display);color:var(--paper);font-size:1.25rem;font-weight:600;display:block}.streak-mini{color:#faf7f280;font-size:.75rem}.editor-actions{gap:.5rem;display:flex}.editor-body{flex:1;justify-content:center;align-items:stretch;min-width:0;display:flex}.paper{background:var(--paper);width:100%;max-width:42rem;min-height:28rem;box-shadow:0 2px 0 var(--paper-edge), 0 24px 48px #00000059, 0 0 0 1px #0000000f;border-radius:4px;padding:2rem 2rem 5rem;position:relative}.paper-texture{border-radius:inherit;pointer-events:none;opacity:.45;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");position:absolute;inset:0}.page-title,.page-body{z-index:1;width:100%;font-family:var(--font-body);color:var(--ink);background:0 0;border:none;position:relative}.page-title{font-family:var(--font-display);border-bottom:1px solid var(--paper-edge);margin-bottom:1rem;padding:0 0 .35rem;font-size:1.75rem;font-weight:600}.page-title::placeholder{color:#1c191759}.page-body{resize:vertical;min-height:18rem;padding:0;font-size:1rem;line-height:1.65}.page-body:focus,.page-title:focus{outline:none}.sticker-layer{z-index:2;pointer-events:none;position:absolute;inset:0}.sticker-layer .sticker{pointer-events:auto}.sticker{cursor:grab;background:#ffffffe0;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;margin:-1.375rem 0 0 -1.375rem;font-size:1.35rem;line-height:1;display:flex;position:absolute;box-shadow:0 4px 12px #0000001f}.sticker:active{cursor:grabbing}.sticker-tray{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#2a2622eb;border:1px solid #faf7f21a;border-radius:14px;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;padding:.75rem 1rem;display:flex;position:sticky;bottom:0}.tray-label{letter-spacing:.14em;text-transform:uppercase;color:#faf7f273;font-size:.7rem}.tray-emojis{flex-wrap:wrap;gap:.35rem;display:flex}.tray-chip{cursor:pointer;background:#faf7f20f;border:1px solid #faf7f21f;border-radius:10px;width:2.5rem;height:2.5rem;font-size:1.2rem;transition:background .15s,transform .15s}.tray-chip:hover{background:#faf7f224;transform:scale(1.06)}.tray-chip:focus-visible{outline:2px solid var(--bloom);outline-offset:2px}.notebook-name-btn{max-width:100%;font-family:var(--font-display);color:var(--paper);cursor:pointer;background:0 0;border:none;border-radius:6px;margin:0 auto;padding:.1rem .35rem;font-size:1.25rem;font-weight:600;display:block}.notebook-name-btn:hover{background:#faf7f214}.notebook-name-input{width:100%;max-width:16rem;color:var(--paper);font-family:var(--font-display);text-align:center;background:#0003;border:1px solid #faf7f240;border-radius:6px;margin:0 auto;padding:.25rem .5rem;font-size:1.15rem;font-weight:600;display:block}.export-menu{position:relative}.export-menu-summary{cursor:pointer;list-style:none}.export-menu-summary::-webkit-details-marker{display:none}.export-menu-panel{z-index:30;background:#1e1b18fa;border:1px solid #faf7f21f;border-radius:10px;flex-direction:column;gap:.2rem;min-width:10rem;padding:.35rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 40px #00000073}.export-menu-panel button{color:#faf7f2e6;font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.45rem .65rem;font-size:.85rem}.export-menu-panel button:hover:not(:disabled){background:#faf7f214}.export-menu-panel button:disabled{opacity:.5;cursor:default}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f0c0ab8;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-backdrop--elevated{z-index:1100}.modal-panel--confirm{max-width:400px}.confirm-dialog-message{color:var(--ink-muted);margin:0 0 1.1rem;font-size:.9rem;line-height:1.5}.confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.modal-panel{background:var(--paper);width:100%;max-width:420px;max-height:min(88vh,640px);color:var(--ink);border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000073,0 0 0 1px #0000000f}.modal-panel--wide{max-width:520px}.modal-header{border-bottom:1px solid var(--paper-edge);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex}.modal-header h2{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.35rem;font-weight:600}.modal-close{cursor:pointer;width:2.25rem;height:2.25rem;color:var(--ink-muted);background:#0000000d;border:none;border-radius:8px;flex-shrink:0;font-size:1.35rem;line-height:1}.modal-close:hover{background:#00000014}.modal-body{padding:1rem 1.1rem 1.25rem;overflow-y:auto}.modal-panel .btn.ghost{color:var(--ink);border-color:var(--paper-edge);background:#0000000a}.modal-panel .btn.ghost:hover{color:var(--ink);background:#00000012}.modal-panel .btn.primary{color:var(--shelf)}.modal-search-input{border:1px solid var(--paper-edge);width:100%;font-family:var(--font-body);border-radius:10px;margin-bottom:.35rem;padding:.65rem .85rem;font-size:1rem}.modal-hint{color:var(--ink-muted);margin:0 0 .75rem;font-size:.75rem}.modal-field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.35rem;font-size:.75rem;font-weight:600;display:block}.modal-text-input{border:1px solid var(--paper-edge);border-radius:8px;width:100%;margin-bottom:1rem;padding:.55rem .75rem;font-size:1rem}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.search-hit-list{flex-direction:column;gap:.35rem;max-height:min(50vh,360px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.search-hit-empty{text-align:center;color:var(--ink-muted);padding:1.5rem .5rem;font-size:.9rem}.search-hit{border:1px solid var(--paper-edge);cursor:pointer;text-align:left;background:#faf7f299;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.65rem .75rem;display:flex}.search-hit:hover{background:#fff;border-color:#b4530959}.search-hit-title{font-size:.95rem;font-weight:600}.search-hit-meta{color:var(--ink-muted);font-size:.75rem}.search-hit-snippet{color:var(--ink-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}.settings-section{margin-bottom:1.35rem}.settings-section:last-child{margin-bottom:0}.settings-heading{font-family:var(--font-display);margin:0 0 .35rem;font-size:1.1rem;font-weight:600}.settings-copy{color:var(--ink-muted);margin:0 0 .65rem;font-size:.85rem;line-height:1.45}.settings-copy.muted{font-style:italic}.settings-code{background:#0000000f;border-radius:4px;padding:.1rem .35rem;font-family:ui-monospace,monospace;font-size:.78rem}.settings-sync-msg{color:#15803d;margin:.5rem 0 0;font-size:.85rem}.settings-sync-err{color:#b91c1c;margin:0 0 .5rem;font-size:.85rem}.settings-auth-subsection{border-bottom:1px solid var(--paper-edge,#00000014);margin-bottom:.85rem;padding-bottom:.35rem}.settings-collapse-trigger{margin-bottom:.5rem}.btn.link-inline{font:inherit;color:var(--bloom,#6b4f2a);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.btn.link-inline:hover:not(:disabled){color:var(--ink,#1a1a1a)}.btn.link-inline:disabled{opacity:.5;cursor:not-allowed}.google-oauth-btn{color:#1f1f1f;background:#fff;border:1px solid #dadce0;justify-content:center;width:100%;margin-bottom:.25rem;font-weight:600}.google-oauth-btn:hover{background:#f8f9fa;box-shadow:0 1px 2px #00000014}.settings-oauth-divider{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.75rem;margin:.85rem 0 .65rem;font-size:.75rem;display:flex}.settings-oauth-divider:before,.settings-oauth-divider:after{content:"";background:var(--paper-edge);flex:1;height:1px}.settings-oauth-divider span{flex-shrink:0}.settings-radio-group{flex-direction:column;gap:.4rem;display:flex}.settings-radio{cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.settings-button-row{flex-wrap:wrap;gap:.5rem;margin-bottom:.65rem;display:flex}.btn.danger-ghost{color:#b91c1c;background:0 0;border:1px solid #b91c1c59}.btn.danger-ghost:hover{background:#b91c1c14}.settings-nb-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.settings-nb-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.settings-nb-name{border:1px solid var(--paper-edge);border-radius:6px;flex:1;min-width:8rem;padding:.4rem .5rem;font-size:.9rem}.settings-nb-pages{color:var(--ink-muted);white-space:nowrap;font-size:.75rem}.settings-nb-delete{padding:.35rem .65rem;font-size:.75rem}.settings-kbd-list{color:var(--ink-muted);margin:0;padding-left:1.1rem;font-size:.85rem;line-height:1.6}.settings-kbd-list kbd{font-size:.7rem;font-family:var(--font-body);border:1px solid var(--paper-edge);background:#0000000f;border-radius:4px;padding:.1rem .35rem;display:inline-block}@media print{body{background:#fff!important}body.vellum-printing .app-shell,body.vellum-printing .app-shell *{visibility:hidden}body.vellum-printing .paper,body.vellum-printing .paper *{visibility:visible}body.vellum-printing .paper{-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:0;width:100%;max-width:none;min-height:auto;position:absolute;top:0;left:0;box-shadow:none!important}body.vellum-printing .sticker-layer{visibility:visible}}
