:root{--bg: #f3ecdc;--surface: #fbf7ee;--chrome: #f7f1e3;--text: #1b2a41;--muted: #5d6779;--border: #d9cdb4;--rule: #cbbd9f;--accent: #b8461b;--accent-hover: #9c3a15;--accent-fg: #fffaf0;--accent-soft: #f6dccd;--teal: #1f7a7a;--teal-soft: #d5ebe8;--hover: #ece3cf;--on: #f6dccd;--danger: #b42318;--ring: 0 0 0 3px rgba(184,70,27,.2);--shadow: 0 1px 0 rgba(27,42,65,.06), 0 12px 30px rgba(27,42,65,.1);--shadow-sm: 0 1px 2px rgba(27,42,65,.1);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--r: 8px;--r-lg: 14px;--r-pill: 999px;--font-display: Michroma, "Exo 2", system-ui, sans-serif;--font-sans: "Exo 2", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;--font-mono: "Space Mono", ui-monospace, "Courier New", monospace;--fs-label: 11px;--fs-sm: 13px;--fs-md: 14px;--fs-modal: 18px;--fs-h1: 24px;--fs-display: 32px;--fs-page: 18px;--track-wide: .14em;--page-w: 780px;--ease: cubic-bezier(.2,.7,.2,1);--dur: .16s}[data-theme=dark]{--bg: #0d1626;--surface: #142036;--chrome: #101b2e;--text: #ece4d2;--muted: #93a0b5;--border: #24324b;--rule: #2e3e5a;--accent: #ff8a4c;--accent-hover: #ffa673;--accent-fg: #0d1626;--accent-soft: #3a2a26;--teal: #5cc8c2;--teal-soft: #173a40;--hover: #1b2a44;--on: #3a2a26;--danger: #ff7b6b;--ring: 0 0 0 3px rgba(255,138,76,.25);--shadow: 0 12px 30px rgba(0,0,0,.5);--shadow-sm: 0 1px 2px rgba(0,0,0,.45);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:var(--fs-md)/1.45 var(--font-sans);-webkit-font-smoothing:antialiased}button,select,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,.brand{font-family:var(--font-display);font-weight:400;letter-spacing:var(--track-wide);text-transform:uppercase}.label,.lib-date,.status,.menu-btn,.count{font-family:var(--font-display);font-size:var(--fs-label);font-weight:400;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--muted)}.label{margin:0;display:inline-flex;align-items:center;gap:var(--s2)}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.error{color:var(--danger);font-size:var(--fs-sm);margin:0}.notice{background:var(--teal-soft);border-left:2px solid var(--teal);padding:var(--s2) var(--s3);border-radius:var(--r);font-size:var(--fs-sm)}.spacer{flex:1}.orbit{flex:none;color:var(--text)}.starburst{color:var(--teal)}.brand .orbit{color:var(--text)}.primary,.tb.primary-sm{background:var(--accent);color:var(--accent-fg);border:1px solid var(--accent);border-radius:var(--r-pill);min-height:36px;padding:0 var(--s4);font-weight:500;letter-spacing:.02em;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.primary:hover:not(:disabled),.tb.primary-sm:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.primary:disabled:hover{background:var(--accent)}.ghost{background:transparent;border:1px solid var(--rule);border-radius:var(--r-pill);min-height:36px;padding:0 var(--s4);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.ghost:hover:not(:disabled){background:var(--hover);border-color:var(--text)}.link{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;text-underline-offset:3px;font:inherit}.link:hover{color:var(--accent-hover)}.primary.danger-btn{background:var(--danger);border-color:var(--danger);color:#fff}.primary.danger-btn:hover:not(:disabled){background:var(--danger);border-color:var(--danger);filter:brightness(.92)}.dropdown .danger,.danger{color:var(--danger)}.app{display:flex;flex-direction:column;height:100%}.chrome{background:var(--chrome);border-bottom:1px solid var(--rule);flex:none}.menubar{display:flex;align-items:center;gap:var(--s1);padding:0 var(--s3);min-height:44px;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);margin-right:var(--s4);color:var(--text);white-space:nowrap}.menu{position:relative}.menu-btn,.tb{background:none;border:0;border-radius:var(--r);min-height:36px;min-width:36px;padding:0 var(--s3);display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.menu-btn{color:var(--text)}.menu-btn:hover,.tb:hover,.menu-btn.on{background:var(--hover)}.tb.on{background:var(--on);color:var(--accent)}.tb:disabled:hover,.menu-btn:disabled:hover{background:none}.back-home{font-weight:600;color:var(--accent)}.who{color:var(--muted);font-size:var(--fs-sm);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--s2)}.dropdown{position:absolute;top:calc(100% + var(--s1));left:0;z-index:30;min-width:250px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s1)}.dropdown button{display:flex;width:100%;justify-content:space-between;gap:var(--s5);align-items:center;background:none;border:0;padding:var(--s2) var(--s3);min-height:36px;border-radius:var(--r);text-align:left;transition:background var(--dur) var(--ease)}.dropdown button:hover{background:var(--hover)}.dropdown kbd{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-label)}.dropdown hr{border:0;border-top:1px solid var(--rule);margin:var(--s1) var(--s2)}.toolbar{display:flex;align-items:center;gap:var(--s1);padding:var(--s1) var(--s3);flex-wrap:wrap;border-top:1px solid var(--rule)}.toolbar select{height:36px;border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-pill);padding:0 var(--s3);max-width:150px;transition:border-color var(--dur) var(--ease)}.toolbar select:hover{border-color:var(--text)}.toolbar select:focus,.findbar input:focus,.tab input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.sep{width:1px;height:20px;background:var(--rule);margin:0 var(--s2)}.color{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r);font-weight:600;cursor:pointer;transition:background var(--dur) var(--ease)}.color:hover{background:var(--hover)}.color:focus-within{outline:2px solid var(--accent);outline-offset:2px}.color input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer}.hl{background:#ffe066;color:#222;padding:0 3px;border-radius:2px}.tabs{display:flex;align-items:flex-end;gap:var(--s1);padding:0 var(--s3);overflow-x:auto;background:var(--bg);border-top:1px solid var(--rule)}.tab{display:flex;align-items:center;gap:var(--s1);padding:0 var(--s1) 0 var(--s3);min-height:40px;max-width:220px;color:var(--muted);cursor:pointer;flex:none;border-bottom:2px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab input{width:140px;height:28px;border:1px solid var(--accent);background:var(--surface);border-radius:var(--r-pill);padding:0 var(--s3)}.tab-x,.tab-add{background:none;border:0;width:32px;height:32px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;color:var(--muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.tab-x:hover,.tab-add:hover,.tab:hover .tab-x{color:var(--text)}.tab-x:hover,.tab-add:hover{background:var(--hover)}.findbar{background:var(--surface);border-top:1px solid var(--rule);padding:var(--s2) var(--s3);display:grid;gap:var(--s2)}.findbar .row{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.findbar input[type=text],.findbar input:not([type]){height:36px;min-width:180px;flex:1 1 180px;max-width:280px;border:1px solid var(--rule);background:var(--bg);border-radius:var(--r-pill);padding:0 var(--s4)}.findbar button:not(.tab-x){min-height:36px;padding:0 var(--s4);border:1px solid var(--rule);background:transparent;border-radius:var(--r-pill);transition:background var(--dur) var(--ease)}.findbar button:not(.tab-x):hover:not(:disabled){background:var(--hover)}.findbar label{display:inline-flex;gap:6px;align-items:center;min-height:36px;color:var(--muted);font-size:var(--fs-sm)}.findbar input[type=checkbox]{accent-color:var(--accent)}.count{min-width:80px}.banner{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;padding:var(--s2) var(--s3);background:var(--teal-soft);border-bottom:1px solid var(--rule)}.banner span{flex:1 1 260px}.body{flex:1;display:flex;min-height:0}.library{width:280px;flex:none;background:var(--chrome);border-right:1px solid var(--rule);overflow-y:auto;padding:var(--s4) var(--s3)}.lib-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);margin-bottom:var(--s3)}.lib-head .primary{min-height:32px;padding:0 var(--s3)}.lib-note{color:var(--muted);font-size:var(--fs-sm);margin:0 0 var(--s3)}.library ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.library li{display:flex;align-items:center;border-radius:var(--r);border-left:2px solid transparent;transition:background var(--dur) var(--ease)}.library li:hover{background:var(--hover)}.library li.active{background:var(--on);border-left-color:var(--accent)}.lib-open{flex:1;min-width:0;background:none;border:0;text-align:left;padding:var(--s2);min-height:44px;display:grid;gap:2px}.lib-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-date{font-size:10px}.stage{flex:1;overflow:auto;padding:var(--s5) var(--s3) 96px}.page{max-width:var(--page-w);margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);min-height:100%}.editor{outline:none;min-height:60vh;padding:calc(var(--s6) * 1.5);color:var(--text);font:calc(var(--fs-page) * var(--zoom, 1))/1.75 var(--font-serif);overflow-wrap:anywhere;caret-color:var(--accent)}.editor h1,.editor h2{font-family:var(--font-serif);font-weight:600;letter-spacing:normal;text-transform:none}.editor h1{font-size:2em;line-height:1.2;margin:.6em 0 .4em}.editor h2{font-size:1.5em;line-height:1.25;margin:.6em 0 .4em}.editor h3{font-size:1.2em;margin:.6em 0 .4em}.editor p{margin:0 0 .8em}.editor blockquote{margin:1em 0;padding:.1em 1em;border-left:2px solid var(--accent);color:var(--muted);font-style:italic}.editor a{color:var(--accent)}.editor code{background:var(--hover);padding:0 4px;border-radius:3px;font-family:var(--font-mono);font-size:.86em}.editor ::selection{background:var(--accent-soft)}.status{display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap;padding:var(--s1) var(--s3);min-height:36px;border-top:1px solid var(--rule);background:var(--chrome);flex:none}.status button{background:none;border:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;min-height:28px;padding:0 var(--s2);border-radius:var(--r-pill);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.status button:hover{background:var(--hover);color:var(--text)}.save-state{display:inline-flex;align-items:center;gap:var(--s2)}.save-state:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal)}.save-state.bad{color:var(--danger)}.save-state.bad:before{background:var(--danger)}.zoom{display:inline-flex;align-items:center}.focus .chrome,.focus .status,.focus .library,.focus .banner{display:none}.focus .stage{padding-top:var(--s6)}.focus .page{border-color:transparent;box-shadow:none;background:transparent}.exit-focus{position:fixed;right:var(--s4);bottom:var(--s4);background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-pill);padding:0 var(--s4);min-height:40px;box-shadow:var(--shadow-sm);opacity:.6;transition:opacity var(--dur) var(--ease)}.exit-focus:hover,.exit-focus:focus-visible{opacity:1}.toast{position:fixed;left:50%;bottom:56px;transform:translate(-50%);background:var(--text);color:var(--bg);padding:var(--s2) var(--s5);border-radius:var(--r-pill);box-shadow:var(--shadow);z-index:40;max-width:calc(100% - var(--s6));text-align:center}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d162673;display:grid;place-items:center;z-index:50;padding:var(--s4)}.modal{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s6) var(--s5) var(--s5);width:100%;max-width:420px;display:grid;gap:var(--s3)}.modal h2{margin:0;font-size:var(--fs-modal);line-height:1.35}.modal p{margin:0}.modal-kicker,.modal-kicker .orbit{color:var(--teal)}.modal label{display:grid;gap:var(--s1);font-family:var(--font-display);font-size:var(--fs-label);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--muted)}.modal input,.home-tools input,.home-tools select,.card-rename{height:36px;border:1px solid var(--rule);background:var(--bg);border-radius:var(--r-pill);padding:0 var(--s4);font-family:var(--font-sans);font-size:var(--fs-md);letter-spacing:normal;text-transform:none;color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.modal input:focus,.home-tools input:focus,.home-tools select:focus,.card-rename:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.modal-actions{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s1)}.modal-switch{border-top:1px solid var(--rule);padding-top:var(--s3)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ac-flash{position:fixed;pointer-events:none;z-index:35;border-radius:2px;border-bottom:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}@media (prefers-reduced-motion: no-preference){.ac-flash{animation:acflash .9s var(--ease) forwards}}@keyframes acflash{0%,55%{opacity:1}to{opacity:0}}.ac-add{display:flex;gap:var(--s2)}.ac-add input{flex:1;min-width:0}.ac-list{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:240px;overflow-y:auto;border-top:1px solid var(--rule);padding-top:var(--s2)}.ac-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding-left:var(--s3);border-radius:var(--r);min-height:36px;font-family:var(--font-mono);font-size:var(--fs-sm)}.ac-list li:hover{background:var(--hover)}.home{min-height:100%;display:flex;flex-direction:column}.home-top{display:flex;align-items:center;gap:var(--s1);padding:0 var(--s3);min-height:44px;flex-wrap:wrap;background:var(--chrome);border-bottom:1px solid var(--rule)}.home-main{width:100%;max-width:1080px;margin:0 auto;padding:var(--s6) var(--s4) 96px}.home-main h1{font-size:var(--fs-h1);line-height:1.3;margin:0 0 var(--s2)}.home-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s5);padding-bottom:var(--s4);border-bottom:1px solid var(--rule)}.home-head p{margin:0}.home-tools{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s5)}.home-tools input{flex:1 1 240px;max-width:420px;background:var(--surface)}.home-tools select{background:var(--surface)}.home-loading{text-align:center;padding:var(--s6) 0}.signal{font-family:var(--font-display);font-size:var(--fs-label);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--muted)}@media (prefers-reduced-motion: no-preference){.signal{animation:signal 1.8s ease-in-out infinite}}@keyframes signal{0%,to{opacity:.35}50%{opacity:1}}.home-empty,.empty{display:grid;gap:var(--s3);justify-items:center;text-align:center;color:var(--muted);padding:var(--s6) 0}.empty{padding:var(--s5) 0;font-size:var(--fs-sm)}.home-empty p,.empty p{margin:0}.welcome{max-width:640px;padding-top:96px;display:grid;gap:var(--s4);justify-items:start}.welcome .orbit-hero{color:var(--text);margin-bottom:var(--s2)}.welcome .label{color:var(--teal)}.welcome h1{font-size:var(--fs-display);line-height:1.25;margin:0}.welcome p{margin:0;font-size:16px;line-height:1.6;max-width:60ch}.welcome p.small{font-size:var(--fs-sm)}.grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;padding:var(--s4);gap:var(--s3);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.card:after{content:"";position:absolute;top:var(--s3);right:var(--s3);width:6px;height:6px;border-radius:50%;background:var(--teal);opacity:0;transition:opacity var(--dur) var(--ease)}.card:hover,.card:focus-within{border-color:var(--accent);box-shadow:var(--shadow-sm)}.card:hover:after,.card:focus-within:after{opacity:1}.card-open{background:none;border:0;padding:0;text-align:left;display:grid;gap:var(--s2);align-content:start;flex:1;min-height:120px;border-radius:var(--r)}.card-title{font:600 18px/1.3 var(--font-serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:var(--s4)}.card-preview{color:var(--muted);font:var(--fs-md)/1.55 var(--font-serif);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.card-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);border-top:1px solid var(--rule);padding-top:var(--s2)}.card-foot .label{font-size:10px}.card-menu{position:relative}.card-menu .dropdown{left:auto;right:0;min-width:160px}@media (max-width: 760px){.body{position:relative}.library{position:absolute;z-index:20;height:100%;box-shadow:var(--shadow)}}@media (max-width: 640px){.menubar,.home-top{padding-top:var(--s1)}.brand{width:100%;margin-right:0;min-height:36px}.brand .orbit,.orbit-hero{display:none}.toolbar{flex-wrap:nowrap;overflow-x:auto}.toolbar>*{flex:none}.status{gap:var(--s2) var(--s3)}.editor{padding:var(--s5) var(--s4)}.welcome{padding-top:var(--s6)}.welcome h1{font-size:var(--fs-h1)}.who{max-width:140px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@media print{body,.app,.stage{background:#fff!important;height:auto;overflow:visible;display:block}.chrome,.status,.toast,.exit-focus,.library,.banner,.modal-back,.ac-flash{display:none!important}.stage{padding:0}.page{border:0;box-shadow:none;max-width:none;background:#fff}.editor{color:#000;padding:0;font-size:12pt}}
