@font-face{font-family:Clarendon Sub;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/clarendon-regular.woff2) format("woff2")}@font-face{font-family:Clarendon Sub;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/clarendon-bold.woff2) format("woff2")}@font-face{font-family:Seravek Sub;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/seravek-regular.woff2) format("woff2")}@font-face{font-family:Seravek Sub;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/seravek-medium.woff2) format("woff2")}:root{--paper: #f5f6f1;--paper-raised: #ffffff;--ink: #1b1f1b;--ink-soft: #565f55;--ink-faint: #8b927f;--line: #dbdec9;--line-strong: #c7cbb4;--accent: #2f6f5b;--accent-strong: #1f5041;--accent-tint: #e4efe6;--warn: #93641f;--warn-tint: #f3e8d2;--danger: #8c3a2e;--danger-tint: #f1dcd6;--mono-tint: #edf0e6;--font-display: "Clarendon Sub", Georgia, "Iowan Old Style", serif;--font-body: "Seravek Sub", -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--rail-w: 260px}@media (prefers-color-scheme: dark){:root{--paper: #12140f;--paper-raised: #191c15;--ink: #e9ece1;--ink-soft: #aab291;--ink-faint: #6f7863;--line: #2a2e22;--line-strong: #383d2c;--accent: #5cba97;--accent-strong: #85d1b3;--accent-tint: rgba(92, 186, 151, .13);--warn: #d6ab5c;--warn-tint: rgba(214, 171, 92, .14);--danger: #d98d7e;--danger-tint: rgba(217, 141, 126, .14);--mono-tint: #1c2017}}:root[data-theme=dark]{--paper: #12140f;--paper-raised: #191c15;--ink: #e9ece1;--ink-soft: #aab291;--ink-faint: #6f7863;--line: #2a2e22;--line-strong: #383d2c;--accent: #5cba97;--accent-strong: #85d1b3;--accent-tint: rgba(92, 186, 151, .13);--warn: #d6ab5c;--warn-tint: rgba(214, 171, 92, .14);--danger: #d98d7e;--danger-tint: rgba(217, 141, 126, .14);--mono-tint: #1c2017}:root[data-theme=light]{--paper: #f5f6f1;--paper-raised: #ffffff;--ink: #1b1f1b;--ink-soft: #565f55;--ink-faint: #8b927f;--line: #dbdec9;--line-strong: #c7cbb4;--accent: #2f6f5b;--accent-strong: #1f5041;--accent-tint: #e4efe6;--warn: #93641f;--warn-tint: #f3e8d2;--danger: #8c3a2e;--danger-tint: #f1dcd6;--mono-tint: #edf0e6}*{box-sizing:border-box}html{color-scheme:light dark}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent-strong)}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font-family:inherit;cursor:pointer}.app{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100vh}.rail{position:sticky;top:0;height:100vh;padding:2rem 1.5rem 1.5rem;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto}.rail-mark{display:flex;flex-direction:column;gap:.35rem}.rail-mark .eyebrow{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.rail-mark strong{font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--ink)}.rail-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:1rem}.theme-toggle-btn{background:none;border:1px solid var(--line-strong);border-radius:4px;color:var(--ink-soft);font-size:.8rem;padding:.45rem .8rem;transition:background-color .15s ease,color .15s ease}.theme-toggle-btn:hover{background:var(--accent-tint);color:var(--ink)}.file-explorer ul{list-style:none;margin:0;padding:0}.file-explorer .tree-folder-label{display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:.5rem 0}.file-explorer .tree-doc{font-size:.9rem;color:var(--ink-soft);padding:.5rem .6rem;margin:0 -.6rem;border-radius:3px;cursor:pointer;transition:background-color .15s ease,color .15s ease}.file-explorer .tree-doc:hover{background:var(--accent-tint);color:var(--ink)}.file-explorer .tree-doc.active{background:var(--accent-tint);color:var(--accent-strong);font-weight:600}.file-explorer .tree-doc-link{display:block;color:inherit;text-decoration:none}.rail-tools{display:flex;flex-direction:column;gap:.25rem}.rail-tools-label{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:.5rem 0 .25rem;border-top:1px solid var(--line)}.rail-tools-link{display:block;font-size:.9rem;color:var(--ink-soft);padding:.5rem .6rem;margin:0 -.6rem;border-radius:3px;text-decoration:none;transition:background-color .15s ease,color .15s ease}.rail-tools-link:hover{background:var(--accent-tint);color:var(--accent-strong)}.viewer{padding:3rem 3rem 6rem;min-width:0}.menu-btn{display:none;background:none;border:none;font-size:1.3rem;color:var(--ink);margin-bottom:1rem}.placeholder,.loading,.error{color:var(--ink-faint)}.error{color:var(--danger)}.overlay{display:none}.viewer-content{max-width:1100px}.markdown-body h1,.markdown-body h2,.markdown-body h3{font-family:var(--font-display);font-weight:700;line-height:1.15;text-wrap:balance}.markdown-body h1{font-size:clamp(1.7rem,1.3rem + 1.6vw,2.2rem);margin:0 0 .9rem}.markdown-body h2{font-size:1.4rem;margin:2.2rem 0 .8rem;padding-top:1.4rem;border-top:1px solid var(--line)}.markdown-body h3{font-size:1.1rem;margin:1.6rem 0 .6rem}.markdown-body h2:first-child,.markdown-body h3:first-child{margin-top:0;padding-top:0;border-top:none}.markdown-body p{margin:0 0 1.1rem;max-width:68ch}.markdown-body ul,.markdown-body ol{margin:0 0 1.1rem;padding-left:1.4rem}.markdown-body li{margin-bottom:.35rem}.markdown-body blockquote{margin:0 0 1.1rem;padding:.2rem 0 .2rem 1rem;border-left:2px solid var(--accent);color:var(--ink-soft)}.markdown-body code{font-family:var(--font-mono);font-size:.88em;background:var(--mono-tint);padding:.1em .4em;border-radius:3px}.markdown-body pre{background:var(--mono-tint);border:1px solid var(--line);padding:1rem 1.2rem;overflow-x:auto;border-radius:4px;margin:0 0 1.1rem}.markdown-body pre code{background:none;padding:0;font-size:.85rem;line-height:1.55}.markdown-body table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.9rem}.markdown-body th,.markdown-body td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}.markdown-body thead th{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}.markdown-body hr{border:none;border-top:1px solid var(--line);margin:2rem 0}.markdown-body strong{font-weight:600}.markdown-body a{text-decoration:underline;text-underline-offset:2px}.table-scroll{overflow-x:auto;margin:0 0 1.5rem}.table-scroll table{margin:0}.plantuml-wrap{overflow-x:auto}.plantuml-img{max-width:100%;height:auto;display:block}.sim-root{display:flex;flex-direction:column;gap:1.5rem}.sim-heading{font-family:var(--font-display);font-size:1.5rem;color:var(--accent);margin:0 0 .25rem}.sim-subheading{color:var(--ink-soft);font-size:.9rem;margin:0 0 1rem}.sim-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.sim-card{display:flex;flex-direction:column;gap:.3rem;padding:.85rem 1rem;border:1.5px solid var(--line-strong);border-radius:6px;background:var(--paper-raised);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.sim-card:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-tint)}.sim-card--active{border-color:var(--accent);background:var(--accent-tint)}.sim-card:disabled{opacity:.55;cursor:not-allowed}.sim-card-title{font-weight:600;font-size:.85rem;color:var(--ink)}.sim-card-desc{font-size:.78rem;color:var(--ink-soft);line-height:1.4}.sim-controls{display:flex;gap:.6rem;align-items:center}.sim-btn{padding:.5rem 1.25rem;border:none;border-radius:5px;font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .15s}.sim-btn:disabled{opacity:.45;cursor:not-allowed}.sim-btn--run{background:var(--accent);color:#fff}.sim-btn--stop{background:var(--danger);color:#fff}.sim-btn--reset{background:transparent;border:1.5px solid var(--line-strong);color:var(--ink-soft)}.sim-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.72rem;font-weight:700;font-family:var(--font-mono);white-space:nowrap;letter-spacing:.02em}.sim-badge--success{background:var(--accent-tint);color:var(--accent-strong)}.sim-badge--warn{background:var(--warn-tint);color:var(--warn)}.sim-badge--danger{background:var(--danger-tint);color:var(--danger)}.sim-badge--neutral{background:var(--mono-tint);color:var(--ink-soft)}.sim-pipeline{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:1rem;background:var(--paper-raised);border:1px solid var(--line);border-radius:8px;min-height:80px}.sim-node{display:flex;flex-direction:column;align-items:center;gap:4px;opacity:.35;transition:opacity .25s,transform .25s;position:relative}.sim-node--past{opacity:.65}.sim-node--active{opacity:1;transform:scale(1.08)}.sim-node--future{opacity:.3}.sim-node-badge{display:inline-block;padding:4px 10px;border-radius:5px;font-size:.7rem;font-weight:700;font-family:var(--font-mono);white-space:nowrap}.sim-node-worker{font-size:.62rem;color:var(--ink-faint);white-space:nowrap;text-align:center}.sim-node-arrow{font-size:1.1rem;color:var(--line-strong);position:absolute;right:-.85rem;top:.35rem;transition:color .25s}.sim-node-arrow--live{color:var(--accent)}.sim-note{padding:.75rem 1rem;border-radius:6px;font-size:.875rem;line-height:1.5;border-left:4px solid}.sim-note--success{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-strong)}.sim-note--warn{background:var(--warn-tint);border-color:var(--warn);color:var(--warn)}.sim-note--danger{background:var(--danger-tint);border-color:var(--danger);color:var(--danger)}.sim-note--neutral{background:var(--mono-tint);border-color:var(--line-strong);color:var(--ink)}.sim-audit{display:flex;flex-direction:column;gap:.5rem}.sim-audit-heading{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);margin:0;text-transform:uppercase;letter-spacing:.06em}.sim-audit-scroll{overflow-x:auto;border-radius:6px;border:1px solid var(--line)}.sim-audit-table{width:100%;border-collapse:collapse;font-size:.8rem}.sim-audit-table th{background:var(--mono-tint);color:var(--ink-soft);font-family:var(--font-mono);font-size:.7rem;padding:6px 10px;text-align:left;font-weight:600;border-bottom:1px solid var(--line-strong);white-space:nowrap}.sim-audit-table td{padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.sim-audit-row:last-child td{border-bottom:none;background:var(--accent-tint)}.sim-audit-id{color:var(--ink-faint);font-family:var(--font-mono)}.sim-duration{font-family:var(--font-mono);color:var(--ink-soft)}.sim-at{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-faint)}.sim-null{color:var(--ink-faint)}.sim-audit-note{font-size:.8rem;color:var(--ink-soft);margin:0;font-style:italic}.sim-done{padding:.75rem 1rem;border-radius:6px;font-size:.9rem;font-weight:600;text-align:center}.sim-done--success{background:var(--accent-tint);color:var(--accent-strong)}.sim-done--danger{background:var(--danger-tint);color:var(--danger)}.sim-done--warn{background:var(--warn-tint);color:var(--warn)}.sim-done--neutral{background:var(--mono-tint);color:var(--ink)}.sim-layout{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:start}.sim-left{display:flex;flex-direction:column;gap:1.5rem;min-width:0}.phone-wrap{position:sticky;top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.phone-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint)}.phone-frame{width:260px;min-height:540px;background:#1a1a1e;border-radius:36px;padding:12px 4px 8px;box-shadow:0 0 0 2px #3a3a3e,0 0 0 4px #1a1a1e,0 20px 60px #0006;display:flex;flex-direction:column;position:relative}.phone-notch{width:90px;height:24px;background:#1a1a1e;border-radius:0 0 16px 16px;margin:0 auto 4px;position:relative;z-index:2}.phone-screen{flex:1;background:#f7f7f8;border-radius:26px;overflow:hidden;display:flex;flex-direction:column}.phone-status-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 16px 2px;background:#f7f7f8;font-size:.65rem;font-weight:700;color:#1a1a1e}.phone-time{font-variant-numeric:tabular-nums}.phone-icons{letter-spacing:.1em;font-size:.55rem}.phone-app-header{display:flex;justify-content:space-between;align-items:center;padding:8px 14px 6px;background:#f7f7f8;border-bottom:1px solid #e0e0e5}.phone-app-back{font-size:1rem;color:#007aff;cursor:pointer}.phone-app-title{font-size:.82rem;font-weight:700;color:#1a1a1e}.phone-card{margin:10px 10px 8px;border-radius:14px;padding:14px 14px 12px;display:flex;flex-direction:column;gap:4px;background:#fff;box-shadow:0 2px 8px #00000014}.phone-card--success{background:#e8f5e9}.phone-card--danger{background:#fce8e6}.phone-card--warn{background:#fff3e0}.phone-card-amount{font-size:1.25rem;font-weight:800;color:#1a1a1e;letter-spacing:-.02em}.phone-card-to{font-size:.72rem;color:#666}.phone-card-id{font-size:.62rem;font-family:var(--font-mono);color:#aaa;margin-top:4px}.phone-card-status{display:inline-block;margin-top:6px;align-self:flex-start;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700}.phone-badge--success{background:#c8e6c9;color:#1b5e20}.phone-badge--warn{background:#ffe0b2;color:#e65100}.phone-badge--danger{background:#ffcdd2;color:#b71c1c}.phone-badge--neutral{background:#e0e0e0;color:#424242}.phone-section-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#999;padding:0 14px 4px}.phone-timeline{flex:1;overflow-y:auto;padding:0 10px 10px;display:flex;flex-direction:column;gap:6px;scrollbar-width:none}.phone-timeline::-webkit-scrollbar{display:none}.phone-timeline-empty{font-size:.72rem;color:#bbb;text-align:center;padding:12px 0}.phone-event{display:flex;align-items:flex-start;gap:8px;background:#fff;border-radius:10px;padding:8px 10px;box-shadow:0 1px 4px #0000000f;animation:phone-slide-in .3s ease}.phone-event--new{animation:phone-slide-in .3s ease,phone-flash .6s ease}.phone-event--success{border-left:3px solid #4caf50}.phone-event--danger{border-left:3px solid #f44336}.phone-event--warn{border-left:3px solid #ff9800}.phone-event--neutral{border-left:3px solid #9e9e9e}.phone-event-dot{width:6px;height:6px;border-radius:50%;margin-top:5px;flex-shrink:0;background:#ccc}.phone-event--success .phone-event-dot{background:#4caf50}.phone-event--danger .phone-event-dot{background:#f44336}.phone-event--warn .phone-event-dot{background:#ff9800}.phone-event-body{display:flex;flex-direction:column;gap:2px;min-width:0}.phone-event-name{font-size:.7rem;font-weight:700;font-family:var(--font-mono);color:#333}.phone-event-desc{font-size:.67rem;color:#666;line-height:1.4}.phone-event-at{font-size:.6rem;font-family:var(--font-mono);color:#aaa;margin-top:2px}.phone-toast{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);white-space:nowrap;padding:7px 14px;border-radius:20px;font-size:.72rem;font-weight:600;box-shadow:0 4px 16px #0000002e;animation:phone-toast-in .3s ease,phone-toast-out .4s ease 3.6s forwards;z-index:10;max-width:260px;text-align:center;white-space:normal}.phone-toast--success{background:#4caf50;color:#fff}.phone-toast--danger{background:#f44336;color:#fff}.phone-toast--warn{background:#ff9800;color:#fff}.phone-toast--neutral{background:#424242;color:#fff}.phone-home-bar{width:80px;height:4px;background:#555;border-radius:2px;margin:8px auto 0}@keyframes phone-slide-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes phone-flash{0%{box-shadow:0 0 0 3px #63b36480}to{box-shadow:none}}@keyframes phone-toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes phone-toast-out{0%{opacity:1}to{opacity:0}}@media (max-width: 880px){.app{grid-template-columns:1fr}.rail{position:fixed;inset:0 auto 0 0;width:min(280px,82vw);height:100vh;background:var(--paper);transform:translate(-100%);transition:transform .2s ease;z-index:20}.rail-open{transform:translate(0)}.overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:15}.menu-btn{display:inline-block}.viewer{padding:1.75rem 1.25rem 4rem}.sim-layout{grid-template-columns:1fr}.phone-wrap{position:static}}@media (prefers-reduced-motion: reduce){.rail{transition:none}}
