:root{--surface: #F7F3EC;--surface-dim: #EFE9DF;--surface-bright: #FCFAF5;--sc-lowest: #FCFAF5;--sc-low: #F2EDE3;--sc: #EDE7DB;--sc-high: #E5DECF;--sc-highest: #DCD3C0;--ink: #1A1814;--ink-soft: #5A554A;--on-surface: #1A1814;--on-surface-variant: #5A554A;--outline: #8E8775;--outline-variant: #D4CCB9;--primary: #1A1814;--on-primary: #F7F3EC;--primary-container: #2A2520;--tertiary: #9A3A1E;--tertiary-container: #F4DCD0;--rb-brand-accent: #9A3A1E;--error: #B91C1C;--serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--s-xs: 4px;--s-sm: 8px;--s-md: 16px;--s-lg: 32px;--s-xl: 64px;--r-sm: 0;--r-md: 2px;--r-lg: 4px;--r-full: 9999px;--rb-font-scale: 1}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--surface);color:var(--on-surface);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;display:flex;flex-direction:column;height:100dvh;overflow:hidden}#root{flex:1;min-height:0}button{font-family:inherit}a{color:var(--tertiary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}::selection{background:var(--sc-high)}astro-island{display:contents}.app{display:grid;grid-template-columns:220px 400px 1fr;flex:1;min-height:0;overflow:hidden}.app>*{min-width:0}.rail{background:var(--surface);border-right:1px solid var(--outline-variant);overflow-y:auto;display:flex;flex-direction:column;padding:22px 0 16px;scrollbar-width:thin;scrollbar-color:var(--outline-variant) transparent}.rail::-webkit-scrollbar{width:8px}.rail::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:var(--r-full)}.rail-head{padding:0 20px 14px;border-bottom:1px solid var(--outline-variant);margin-bottom:10px}.rail-head h1{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:-.01em;margin:0;color:var(--ink)}.rail-head p{margin:4px 0 0;font-size:12.5px;color:var(--on-surface-variant);line-height:1.45}.rail-group-label{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);padding:14px 20px 6px}.rail-item{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;text-align:left;padding:8px 12px 8px 8px;margin:1px 8px;width:calc(100% - 16px);border-radius:var(--r-md);cursor:pointer;color:var(--ink);font-size:13.5px;font-weight:500;font-family:var(--sans);position:relative;transition:background .14s ease,color .14s ease}.rail-item:hover{background:var(--sc-low)}.rail-item.active{background:var(--sc)}.rail-item.active:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;background:var(--tertiary);border-radius:var(--r-full)}.rail-item .grip{color:var(--outline-variant);display:inline-flex;cursor:grab;padding:2px;border-radius:var(--r-md);flex:none;transition:color .12s ease}.rail-item:hover .grip{color:var(--outline)}.rail-item .grip:active{cursor:grabbing}.rail-item .grip svg{width:10px;height:14px;display:block}.rail-item .ico{flex:none;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:var(--on-surface-variant)}.rail-item.active .ico{color:var(--ink)}.rail-item .ico svg{width:16px;height:16px}.rail-item .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-item .vis-dot{flex:none;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--outline);opacity:0;transition:opacity .14s ease,color .14s ease;cursor:pointer;border-radius:var(--r-full)}.rail-item:hover .vis-dot{opacity:.7}.rail-item .vis-dot:hover{opacity:1;color:var(--ink);background:var(--sc-high)}.rail-item .vis-dot.is-hidden{opacity:1;color:var(--outline)}.rail-item .vis-dot svg{width:12px;height:12px}.rail-item.is-hidden .label{color:var(--outline)}.rail-item.is-hidden .ico{color:var(--outline-variant)}.rail-item.drag-over-before{box-shadow:inset 0 2px 0 0 var(--tertiary)}.rail-item.drag-over-after{box-shadow:inset 0 -2px 0 0 var(--tertiary)}.rail-item.dragging{opacity:.45}.rail-divider{height:1px;background:var(--outline-variant);margin:10px 16px}.rail-add{display:flex;align-items:center;gap:8px;width:calc(100% - 16px);margin:6px 8px 4px;padding:8px 12px 8px 8px;border:1px dashed var(--outline-variant);background:transparent;color:var(--on-surface-variant);font-size:13px;font-weight:500;font-family:var(--sans);border-radius:var(--r-md);cursor:pointer;transition:border-color .14s ease,color .14s ease,background .14s ease}.rail-add:hover{border-color:var(--outline);color:var(--ink);background:var(--sc-lowest)}.rail-add .ico{width:18px;display:inline-flex;justify-content:center}.rail-add .ico svg{width:14px;height:14px}.rail-foot{margin-top:auto;padding:12px 16px 4px;border-top:1px solid var(--outline-variant)}.rail-foot button{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;background:transparent;color:var(--on-surface-variant);font-size:13px;font-family:var(--sans);cursor:pointer;padding:8px 10px;border-radius:var(--r-md)}.rail-foot button:hover{color:var(--ink);background:var(--sc-low)}.rail-foot button svg{width:13px;height:13px}.rail-progress{margin:12px 20px 6px;display:flex;flex-direction:column;gap:5px}.rail-progress .track{height:2px;background:var(--sc-high);border-radius:var(--r-full);position:relative;overflow:hidden}.rail-progress .fill{position:absolute;inset:0 auto 0 0;background:var(--ink);border-radius:var(--r-full);transition:width .4s cubic-bezier(.22,1,.36,1)}.rail-progress .label{font-size:11px;color:var(--on-surface-variant);display:flex;justify-content:space-between;font-family:var(--sans)}.form-col{background:var(--sc-lowest);border-right:1px solid var(--outline-variant);overflow-y:auto;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--outline-variant) transparent}.form-col::-webkit-scrollbar{width:8px}.form-col::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:var(--r-full);border:2px solid var(--sc-lowest)}.form-head{padding:24px 28px 14px;position:sticky;top:0;background:linear-gradient(var(--sc-lowest) 80%,rgba(252,250,245,0));z-index:2}.form-eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-bottom:6px;display:flex;align-items:center;gap:8px}.form-eyebrow .bar{display:inline-block;width:18px;height:1px;background:var(--tertiary)}.form-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.form-title h2{margin:0;font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:-.012em;color:var(--ink);line-height:1.15}.form-title-actions{display:flex;gap:4px;flex:none}.form-subtitle{margin:6px 0 0;font-size:13.5px;color:var(--on-surface-variant);line-height:1.5}.form-body{padding:6px 28px 28px;display:flex;flex-direction:column;gap:18px;flex:1}.form-body.fade-in{animation:formFadeIn .28s cubic-bezier(.22,1,.36,1) both}@keyframes formFadeIn{0%{transform:translateY(4px)}to{transform:none}}.form-foot{padding:12px 28px 24px;border-top:1px solid var(--outline-variant);background:var(--sc-lowest);position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.form-foot .hint{font-size:12.5px;color:var(--on-surface-variant)}.form-foot .nav-pair{display:flex;gap:6px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:8px}.field label .optional{font-size:11px;font-weight:500;color:var(--on-surface-variant);text-transform:lowercase;letter-spacing:.02em}.field .helper{font-size:12px;color:var(--on-surface-variant);line-height:1.45}.field input,.field textarea{width:100%;font-family:var(--sans);font-size:14.5px;color:var(--ink);background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);padding:10px 12px;height:40px;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}.field textarea{height:auto;min-height:76px;line-height:1.5;resize:none;overflow:hidden;field-sizing:content}.field input::placeholder,.field textarea::placeholder{color:var(--on-surface-variant);opacity:.55}.field input:hover,.field textarea:hover{border-color:var(--outline)}.field input:focus,.field textarea:focus{outline:none;border-color:var(--ink);background:var(--surface-bright)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.bullets{display:flex;flex-direction:column;gap:6px}.bullet-row{display:flex;align-items:stretch;gap:0;position:relative;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);transition:border-color .14s ease}.bullet-row:hover{border-color:var(--outline)}.bullet-row:focus-within{border-color:var(--ink);background:var(--surface-bright)}.bullet-row .marker{flex:none;font-family:var(--serif);color:var(--outline);width:28px;text-align:center;font-size:16px;line-height:1.45;user-select:none;border-right:1px solid var(--outline-variant);align-self:stretch;display:flex;justify-content:center;padding-top:9px}.bullet-row:focus-within .marker{color:var(--ink)}.bullet-row textarea{flex:1;font-family:var(--sans);font-size:14px;background:transparent;border:none;border-radius:0;padding:9px 10px 9px 12px;min-height:38px;line-height:1.5;resize:none;overflow:hidden;color:var(--ink);field-sizing:content}.bullet-row textarea:focus{outline:none}.bullet-row textarea::placeholder{color:var(--on-surface-variant);opacity:.55}.bullet-row .remove{flex:none;border:none;background:transparent;cursor:pointer;color:var(--outline-variant);padding:0 10px;display:inline-flex;align-items:center;justify-content:center;transition:color .14s ease,background .14s ease;border-left:1px solid transparent;border-radius:0 var(--r-md) var(--r-md) 0}.bullet-row:hover .remove{color:var(--outline)}.bullet-row .remove:hover{color:var(--error);background:var(--sc-low);border-left-color:var(--outline-variant)}.bullet-row .remove svg{width:14px;height:14px}.entry{background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);padding:16px;display:flex;flex-direction:column;gap:14px;position:relative;transition:border-color .14s ease}.entry.dragging{opacity:.4}.entry.drag-over-before{box-shadow:inset 0 2px 0 0 var(--tertiary)}.entry.drag-over-after{box-shadow:inset 0 -2px 0 0 var(--tertiary)}.entry-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.entry-head .head-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.entry-head .grip{color:var(--outline-variant);display:inline-flex;cursor:grab;padding:2px;border-radius:var(--r-md);flex:none}.entry-head .grip:hover{color:var(--outline);background:var(--sc-low)}.entry-head .grip svg{width:10px;height:14px}.entry-head .tag{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant)}.entry-head .title-preview{font-family:var(--sans);font-size:13.5px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.entry-actions{display:flex;align-items:center;gap:0;flex:none}.btn{font-family:var(--sans);font-size:13.5px;font-weight:500;border:none;border-radius:var(--r-md);padding:0 14px;height:38px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;transition:background .14s ease,color .14s ease,transform .05s ease}.btn:active{transform:translateY(.5px)}.btn svg{width:14px;height:14px}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-container)}.btn-secondary{background:var(--sc);color:var(--ink)}.btn-secondary:hover{background:var(--sc-high)}.btn-ghost{background:transparent;color:var(--on-surface-variant);padding:0 10px}.btn-ghost:hover{color:var(--ink);background:var(--sc-low)}.btn-mini{height:32px;font-size:12.5px;padding:0 10px;gap:5px}.btn-mini svg{width:13px;height:13px}.btn-tiny{height:26px;font-size:12px;padding:0 8px;gap:4px;border-radius:var(--r-md)}.icon-btn{border:none;background:transparent;cursor:pointer;color:var(--on-surface-variant);padding:7px;border-radius:var(--r-md);display:inline-flex;line-height:0;transition:color .14s ease,background .14s ease}.icon-btn:hover{background:var(--sc);color:var(--ink)}.icon-btn.danger:hover{color:var(--error);background:var(--sc)}.icon-btn svg{width:15px;height:15px}.add-btn{border:1px dashed var(--outline-variant);background:transparent;color:var(--on-surface-variant);font-family:var(--sans);font-size:13px;font-weight:500;padding:12px;border-radius:var(--r-md);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:border-color .14s ease,color .14s ease,background .14s ease}.add-btn:hover{border-color:var(--outline);color:var(--ink);background:var(--surface)}.add-btn svg{width:13px;height:13px}.segment{display:flex;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);padding:3px;gap:2px}.segment button{flex:1;border:none;background:transparent;cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--on-surface-variant);padding:7px 10px;border-radius:1px;transition:background .14s ease,color .14s ease}.segment button.active{background:var(--ink);color:var(--on-primary)}.segment button:hover:not(.active){color:var(--ink)}.swatches{display:flex;gap:12px;align-items:center}.swatch{width:28px;height:28px;padding:0;border-radius:var(--r-full);border:1px solid rgba(26,24,20,.16);background:var(--swatch);cursor:pointer;transition:transform .14s ease;position:relative}.swatch:hover{transform:scale(1.08)}.swatch.active:after{content:"";position:absolute;inset:-4px;border-radius:var(--r-full);border:1.5px solid var(--ink)}.hidden-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--sc-high);border-radius:var(--r-md);font-size:12.5px;color:var(--ink)}.hidden-banner svg{width:14px;height:14px;flex:none;color:var(--ink-soft)}.hidden-banner .pill{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;background:var(--surface);border-radius:var(--r-md);color:var(--ink)}.hidden-banner button{margin-left:auto;border:none;background:transparent;cursor:pointer;color:var(--ink);font-size:12px;font-weight:500;text-decoration:underline;text-underline-offset:2px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 18px;border:1px dashed var(--outline-variant);border-radius:var(--r-md);gap:10px;background:var(--surface-bright)}.empty .icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--outline)}.empty .icon svg{width:24px;height:24px}.empty h4{margin:0;font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink)}.empty p{margin:0;font-size:13px;color:var(--on-surface-variant);max-width:28ch;line-height:1.5}.photo-row{display:flex;align-items:center;gap:14px}.photo-thumb{width:76px;height:76px;border-radius:var(--r-md);object-fit:cover;border:1px solid var(--outline-variant);background:var(--sc);flex:none;display:flex;align-items:center;justify-content:center;color:var(--outline)}.photo-thumb svg{width:28px;height:28px}.photo-actions{display:flex;flex-direction:column;gap:6px;flex:1;align-items:flex-start}.photo-actions .btn{width:auto}.preview-pane{background:var(--sc-low);display:flex;flex-direction:column;overflow:hidden;min-width:0}.preview-pane::-webkit-scrollbar{width:10px}.preview-toolbar{flex:none;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 24px;background:var(--sc-low);border-bottom:1px solid var(--outline-variant);z-index:5}.preview-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:28px 32px 64px;display:flex;flex-direction:column;align-items:center;gap:14px;scrollbar-width:thin;scrollbar-color:var(--outline-variant) transparent}.preview-scroll::-webkit-scrollbar{width:10px}.preview-scroll::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:var(--r-full);border:2px solid var(--sc-low)}.preview-toolbar .left{display:flex;align-items:center;gap:10px}.preview-toolbar .eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rb-brand-accent);display:inline-flex;align-items:center;gap:8px}.preview-toolbar .eyebrow:before{content:"";display:inline-block;width:18px;height:1px;background:var(--rb-brand-accent)}.preview-toolbar .meta{font-size:12.5px;color:var(--on-surface-variant)}.save-pip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--on-surface-variant)}.save-pip .pip{width:6px;height:6px;border-radius:var(--r-full);background:#4f8a4f}.save-pip .pip.saving{background:var(--outline);animation:pulse .9s infinite ease-in-out}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.preview-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.zoom{display:inline-flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);padding:2px}.zoom button{border:none;background:transparent;width:26px;height:26px;border-radius:var(--r-md);cursor:pointer;font-size:14px;line-height:1;color:var(--ink);display:inline-flex;align-items:center;justify-content:center}.zoom button:hover{background:var(--sc-low)}.zoom .label{min-width:38px;text-align:center;font-size:12.5px;color:var(--on-surface-variant);font-variant-numeric:tabular-nums}.paper-frame{position:relative;flex:none;overflow:hidden;transition:width .18s ease,height .18s ease}.paper-wrap{position:relative;flex:none}.paper{position:absolute;top:0;left:0;width:8.5in;height:auto;visibility:hidden;pointer-events:none;background:#fff;padding:.65in .8in .6in;font-family:var(--serif);font-feature-settings:"kern" 1,"liga" 1;color:var(--ink);line-height:1.4}[data-paper-size=a4] .paper{width:210mm;padding:18mm 20mm 15mm}[data-density=compact] .paper{padding:.5in .7in .45in;line-height:1.32}.r-zone{position:relative;border-radius:var(--r-md);transition:background .3s ease,box-shadow .3s ease}.r-zone.active{background:#9a3a1e0b;box-shadow:0 0 0 4px #9a3a1e0b}.r-header{display:flex;gap:18px;align-items:center;margin-bottom:6px}.r-photo{width:1.1in;height:1.1in;object-fit:cover;flex:none;background:var(--sc);border-radius:var(--r-md)}.r-photo.hidden{display:none}.r-head-text{flex:1;min-width:0}.r-name{font-family:var(--serif);font-size:calc(30px * var(--rb-font-scale, 1));font-weight:600;margin:0 0 4px;line-height:1.05;letter-spacing:-.015em;color:var(--ink)}.r-title{font-family:var(--serif);font-size:calc(14px * var(--rb-font-scale, 1));font-style:italic;font-weight:400;margin:0 0 8px;line-height:1.3;color:var(--ink-soft)}.r-contact{font-family:var(--sans);font-size:calc(11.5px * var(--rb-font-scale, 1));line-height:1.45;color:var(--ink-soft)}.r-contact a{color:var(--tertiary)}.r-contact .sep{color:var(--outline);margin:0 7px}.r-summary{font-family:var(--serif);font-size:calc(12.5px * var(--rb-font-scale, 1));line-height:1.5;margin:14px 0 0;color:var(--ink)}.r-section-title{font-family:var(--serif);font-size:calc(12px * var(--rb-font-scale, 1));font-weight:600;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:4px;margin:22px 0 10px;color:var(--ink)}.r-job,.r-edu,.r-proj,.r-vol,.r-cert,.r-award,.r-ref,.r-hobby{break-inside:avoid}.r-job{margin-bottom:12px}.r-job:last-child{margin-bottom:0}.r-job-title{font-family:var(--serif);font-size:calc(13.5px * var(--rb-font-scale, 1));font-weight:600;line-height:1.25}.r-job-meta{font-family:var(--serif);font-size:calc(12px * var(--rb-font-scale, 1));font-style:italic;margin:1px 0 5px;color:var(--ink-soft)}.r-bullets{margin:0;padding:0;list-style:none}.r-bullets li{font-family:var(--serif);font-size:calc(12px * var(--rb-font-scale, 1));line-height:1.45;padding-left:16px;position:relative;margin-bottom:2px}.r-bullets li:before{content:"-";position:absolute;left:0;top:0;color:var(--outline)}.r-proj{font-family:var(--serif);font-size:calc(12px * var(--rb-font-scale, 1));line-height:1.45;margin-bottom:6px}.r-proj .pname{font-weight:600;font-size:calc(12.5px * var(--rb-font-scale, 1))}.r-proj .pdash{margin:0 6px;color:var(--outline)}.r-edu{margin-bottom:7px}.r-edu-title{font-family:var(--serif);font-size:calc(13px * var(--rb-font-scale, 1));font-weight:600}.r-edu-meta{font-family:var(--serif);font-size:calc(12px * var(--rb-font-scale, 1));font-style:italic;margin-top:2px;color:var(--ink-soft)}.r-skill,.r-langs,.r-cert,.r-award,.r-vol-desc,.r-ref,.r-hobby{font-family:var(--serif);font-size:calc(12px * var(--rb-font-scale, 1));line-height:1.5;color:var(--ink)}.r-skill{margin-bottom:3px}.r-skill .k,.r-langs .k,.r-cert .k,.r-award .k,.r-hobby .k{font-weight:600}.r-langs{display:grid;grid-template-columns:1fr;gap:3px}.r-langs .lvl,.r-cert .meta,.r-award .meta,.r-hobby .meta{color:var(--ink-soft);font-style:italic}.r-cert{margin-bottom:4px}.r-cert .meta:before{content:" - ";color:var(--outline);font-style:normal}.r-vol{margin-bottom:9px}.r-vol-title{font-family:var(--serif);font-size:calc(13px * var(--rb-font-scale, 1));font-weight:600}.r-vol-meta{font-family:var(--serif);font-size:calc(12px * var(--rb-font-scale, 1));font-style:italic;margin:1px 0 3px;color:var(--ink-soft)}.r-award{margin-bottom:5px}.r-ref{margin-bottom:8px}.r-ref .quote{display:block;font-style:italic}.r-ref .attrib{display:block;margin-top:2px;color:var(--ink-soft)}.r-hobby{margin-bottom:3px}.empty-hint{color:var(--outline);font-style:italic;font-size:calc(11.5px * var(--rb-font-scale, 1))}body[data-font-size=small]{--rb-font-scale: .9}body[data-font-size=large]{--rb-font-scale: 1.1}.modal-backdrop{position:fixed;inset:0;background:#1a181473;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--r-lg);max-width:640px;width:100%;padding:32px;position:relative;animation:pop .22s cubic-bezier(.22,1,.36,1)}@keyframes pop{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}.modal .close{position:absolute;top:16px;right:16px;border:none;background:transparent;cursor:pointer;color:var(--on-surface-variant);padding:6px;border-radius:var(--r-md);display:inline-flex;line-height:0}.modal .close:hover{background:var(--sc);color:var(--ink)}.modal .eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--tertiary);margin:0 0 6px;display:inline-flex;align-items:center;gap:8px}.modal .eyebrow:before{content:"";display:inline-block;width:18px;height:1px;background:var(--tertiary)}.modal h2{font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:-.01em;line-height:1.2;margin:0 0 4px}.modal .lede{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--on-surface-variant);margin:0 0 22px}.struct-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}.struct-card{text-align:left;border:1px solid var(--outline-variant);background:var(--surface-bright);border-radius:var(--r-md);padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:10px;transition:border-color .14s ease,background .14s ease,transform .05s ease;font-family:var(--sans)}.struct-card:hover{border-color:var(--outline);background:var(--surface)}.struct-card.selected{border-color:var(--ink)}.struct-card.selected .check{opacity:1}.struct-card .preview{display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--sc-lowest);border-radius:var(--r-md);height:72px;justify-content:center}.struct-card .preview .ln{height:5px;background:var(--sc-highest);border-radius:var(--r-full)}.struct-card .preview .ln.head{background:var(--ink);width:60%;height:6px}.struct-card .preview .ln.meta{width:40%;background:var(--outline-variant)}.struct-card .preview .ln.body{width:92%}.struct-card .preview .ln.short{width:70%}.struct-card .preview .pair{display:flex;gap:6px;align-items:center}.struct-card .preview .dot{width:4px;height:4px;background:var(--outline);border-radius:var(--r-full);flex:none}.struct-card .meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.struct-card .name{font-size:13.5px;font-weight:600;color:var(--ink)}.struct-card .desc{font-size:12px;color:var(--on-surface-variant);line-height:1.45}.struct-card .check{flex:none;width:16px;height:16px;border-radius:var(--r-full);background:var(--ink);color:var(--surface);display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .14s ease}.struct-card .check svg{width:10px;height:10px}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px}.modal-foot .field{flex:1;max-width:280px;margin-right:auto}.welcome-back{position:fixed;inset:0;background:#1a181480;display:flex;align-items:center;justify-content:center;z-index:90;padding:24px;animation:fadeIn .2s ease}.welcome{background:var(--surface);border-radius:var(--r-lg);max-width:560px;width:100%;padding:36px;animation:pop .24s cubic-bezier(.22,1,.36,1);position:relative}.welcome .eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--tertiary);margin:0 0 8px;display:inline-flex;align-items:center;gap:8px}.welcome .eyebrow:before{content:"";display:inline-block;width:18px;height:1px;background:var(--tertiary)}.welcome h2{font-family:var(--serif);font-size:32px;font-weight:600;letter-spacing:-.012em;line-height:1.15;margin:0 0 8px;color:var(--ink)}.welcome p{font-family:var(--serif);font-size:16px;line-height:1.55;color:var(--ink-soft);margin:0 0 22px}.welcome-choices{display:flex;flex-direction:column;gap:8px}.welcome-choice{text-align:left;border:1px solid var(--outline-variant);background:var(--surface-bright);border-radius:var(--r-md);padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:14px;transition:border-color .14s ease,background .14s ease;font-family:var(--sans)}.welcome-choice:hover{border-color:var(--ink);background:var(--surface)}.welcome-choice .ico{width:36px;height:36px;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--sc);border-radius:var(--r-md);color:var(--ink)}.welcome-choice .ico svg{width:18px;height:18px}.welcome-choice .text{flex:1;min-width:0}.welcome-choice .name{font-size:14px;font-weight:600;color:var(--ink)}.welcome-choice .desc{font-size:12.5px;color:var(--on-surface-variant);margin-top:2px;line-height:1.45}.welcome-choice .chev{color:var(--outline);flex:none}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(8px);background:var(--ink);color:var(--on-primary);padding:12px 18px;border-radius:var(--r-md);font-size:14px;font-family:var(--sans);opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;z-index:200}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:1100px){.app{grid-template-columns:200px 360px 1fr}}@media(max-width:900px){body{display:block;height:auto;overflow:visible}#root{display:block}.app{grid-template-columns:1fr;height:auto;overflow:visible}.rail{position:sticky;top:56px;z-index:5;padding:12px 0;height:auto;border-right:none;border-bottom:1px solid var(--outline-variant);overflow-x:auto;overflow-y:hidden;display:block;background:var(--surface)}.rail-head,.rail-foot,.rail-divider,.rail-group-label,.rail-add,.rail-progress{display:none}.rail .rail-row-mobile{display:flex;gap:6px;padding:0 16px;align-items:center;flex-wrap:nowrap}.rail .rail-item{flex:none;width:auto;margin:0;padding:8px 12px;border-radius:var(--r-full);background:var(--sc-low)}.rail .rail-item .grip,.rail .rail-item .vis-dot{display:none}.rail .rail-item.active{background:var(--ink);color:var(--on-primary)}.rail .rail-item.active:before{display:none}.rail .rail-item.active .ico,.rail .rail-item.active .label{color:var(--on-primary)}.form-col,.preview-pane,.preview-scroll{overflow:visible;height:auto;padding-bottom:32px}.form-head,.form-foot{position:static}.preview-pane{padding:0;display:block}.preview-toolbar{padding:12px 16px;position:static}.preview-scroll{padding:20px 16px 32px}.paper{position:static;visibility:visible;width:100%;height:auto;padding:28px 24px 32px}[data-paper-size=a4] .paper{width:100%;padding:28px 24px 32px}.paper-frame,.paper-wrap{width:100%!important;height:auto!important;transform:none!important}.field-row,.field-row-3{grid-template-columns:1fr}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.page-stack{display:flex;flex-direction:column;gap:18px}.export-pages{gap:0}.export-pages .page-sheet{border:none}.page-sheet{width:8.5in;--rb-page-h: 11in;height:var(--rb-page-h);background:#fff;padding:.65in .8in .6in;font-family:var(--serif);font-feature-settings:"kern" 1,"liga" 1;color:var(--ink);line-height:1.4;overflow:hidden;border:1px solid var(--outline-variant)}[data-paper-size=a4] .page-sheet{width:210mm;--rb-page-h: 297mm;padding:18mm 20mm 15mm}[data-density=compact] .page-sheet{padding:.5in .7in .45in;line-height:1.32}.page-sheet a{color:var(--tertiary);text-decoration:underline;text-decoration-thickness:1px}@media(max-width:900px){.page-stack{display:none}}.modal-actions{display:flex;gap:10px;margin-top:18px;align-items:center}.modal-actions .spacer{flex:1}.modal .err-msg{color:var(--error);font-size:13px;margin-top:6px;font-family:var(--sans);min-height:1em}.modal .success{text-align:left}.modal .success .check{width:48px;height:48px;border-radius:var(--r-full);background:var(--tertiary-container);color:var(--tertiary);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.modal .success .meta{font-family:var(--sans);font-size:14px;color:var(--on-surface-variant);margin-top:8px;line-height:1.55}.modal .success .meta a{color:var(--tertiary);cursor:pointer}.modal--cropper{max-width:420px}.crop-frame{position:relative;width:320px;max-width:100%;aspect-ratio:1 / 1;margin:6px auto 18px;overflow:hidden;border-radius:var(--r-md);background:var(--sc);touch-action:none;cursor:grab;user-select:none}.crop-frame.dragging{cursor:grabbing}.crop-frame:after{content:"";position:absolute;inset:0;pointer-events:none;outline:1px solid var(--outline-variant);outline-offset:-1px;border-radius:var(--r-md)}.crop-img{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform;pointer-events:none;-webkit-user-drag:none;user-drag:none}.crop-zoom{display:flex;align-items:center;gap:14px;margin-bottom:10px}.crop-zoom label{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--on-surface-variant)}.crop-zoom input[type=range]{flex:1;height:24px;cursor:pointer;accent-color:var(--tertiary)}.rb-bar[data-astro-cid-vdkvwyww]{flex:none;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px;padding:0 var(--container-padding, 32px);background:var(--surface);border-bottom:1px solid var(--outline-variant)}.rb-bar__brand[data-astro-cid-vdkvwyww]{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-family:"Source Serif 4",Georgia,serif;font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--on-surface);text-decoration:none}.rb-bar__mark[data-astro-cid-vdkvwyww]{height:28px;width:auto;display:block;flex-shrink:0}.rb-bar__dot[data-astro-cid-vdkvwyww]{color:var(--tertiary)}.rb-bar__back[data-astro-cid-vdkvwyww]{display:inline-flex;align-items:center;gap:6px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;color:var(--on-surface-variant);text-decoration:none}.rb-bar__back[data-astro-cid-vdkvwyww]:hover{color:var(--on-surface)}@media(max-width:900px){.rb-bar[data-astro-cid-vdkvwyww]{padding:0 20px}}
