:root{color-scheme:light;--bg: #faf8f3;--card: #fff;--border: #e8e4d8;--ink: #1a1a1a;--muted: #6c6862;--soft: #fafaf6;--accent: #c14b3a;--err-bg: #fdf0ee;--err-border: #f3c4ba;--err-ink: #8a2818;--warn-bg: #fcf6e8;--warn-border: #e8d59e;--warn-ink: #75561a;--motion-instant: 0ms;--motion-fast: .1s;--motion-medium: .15s;--motion-slow: .22s;--motion-emphasis:.3s;--motion-flight: .4s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1)}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-medium: 0ms;--motion-slow: 0ms;--motion-emphasis: 0ms;--motion-flight: 0ms}}button{transition:transform var(--motion-fast) var(--ease-out)}button:active{transform:scale(.97)}.popup-anim{opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity var(--motion-medium) var(--ease-out),transform var(--motion-medium) var(--ease-out)}.popup-anim.popup-open{opacity:1;transform:translateY(0);pointer-events:auto}.popup-collapse{max-height:0;overflow:hidden;opacity:0;transform:translateY(-4px);pointer-events:none;transition:max-height var(--motion-medium) var(--ease-out),opacity var(--motion-medium) var(--ease-out),transform var(--motion-medium) var(--ease-out)}.popup-collapse.popup-open{max-height:500px;opacity:1;transform:translateY(0);pointer-events:auto}.flash-highlight{animation:flash-highlight-anim 1.2s cubic-bezier(0,0,.2,1) forwards}@keyframes flash-highlight-anim{0%{background-color:#c14b3a24}to{background-color:transparent}}.pulse-outline{animation:pulse-outline-anim .35s cubic-bezier(0,0,.2,1) forwards}@keyframes pulse-outline-anim{0%{box-shadow:0 0 #c14b3a80}to{box-shadow:0 0 0 6px #c14b3a00}}.drag-handle{flex:0 0 auto;align-self:center;width:1.2rem;margin-right:.2rem;color:var(--ink);opacity:.55;font-size:1rem;line-height:1;letter-spacing:-.18em;cursor:grab;user-select:none;transition:opacity var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.item:hover .drag-handle,.drag-handle:hover{opacity:1;color:var(--accent)}.drag-handle:active,.drag-handle.grabbing{cursor:grabbing}.sortable-ghost{opacity:.35;background:var(--soft)}.sortable-chosen{background:var(--soft)}.sortable-drag{opacity:.95;box-shadow:0 8px 24px #0000002e;transform:scale(1.02);background:var(--card);border-radius:4px}@media(prefers-reduced-motion:reduce){.sortable-drag{transform:none}}.flight-ghost{background:var(--accent);color:#fff;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.78rem;font-weight:500;padding:.35rem .7rem;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 14px #0000002e;will-change:transform,opacity;letter-spacing:.01em}@media(prefers-reduced-motion:reduce){.flight-ghost{display:none}}@media(prefers-reduced-motion:reduce){.flash-highlight{animation-duration:.2s}.pulse-outline{animation:none}}.journey-section{margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--border)}.journey-header{display:flex;justify-content:space-between;align-items:baseline;gap:.7rem;margin-bottom:.7rem}.journey-hd{margin:0;font-size:1.05rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);flex:1 1 auto;cursor:pointer}.journey-hd[data-empty=true]{color:var(--muted);font-style:italic}.journey-edit-btn{font-family:ui-sans-serif,system-ui,sans-serif;font-size:.78rem;padding:.3rem .7rem;border:1px solid var(--border);border-radius:3px;background:#fff;color:var(--ink);cursor:pointer;flex:0 0 auto}.journey-collapsed{cursor:pointer;padding:.4rem 0}.journey-bar{position:relative;height:6px;background:var(--soft);border:1px solid var(--border);border-radius:999px;overflow:visible}.journey-bar-fill{position:absolute;inset:0 auto 0 0;width:0%;background:linear-gradient(90deg,#c14b3a8c,#c14b3ad9);border-radius:999px;transition:width var(--motion-emphasis) var(--ease-standard)}.journey-node{position:absolute;top:50%;width:10px;height:10px;border-radius:999px;background:var(--card);border:2px solid var(--border);transform:translate(-50%,-50%);transition:background-color var(--motion-medium) var(--ease-out),border-color var(--motion-medium) var(--ease-out),transform var(--motion-fast) var(--ease-out);cursor:pointer}.journey-node[data-completed=true]{background:var(--accent);border-color:var(--accent)}.journey-node:hover{transform:translate(-50%,-50%) scale(1.3)}.journey-next-hint{margin:.5rem 0 0;font-size:.85rem;color:var(--muted);line-height:1.5}.journey-next-hint strong{color:var(--ink);font-weight:500}.journey-empty-hint{margin:.5rem 0 0;font-size:.85rem;color:var(--muted);font-style:italic}details.journey-toggle{margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--border)}details.journey-toggle>summary{list-style:none;cursor:pointer;user-select:none;display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1.05rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);transition:color var(--motion-fast) var(--ease-out)}details.journey-toggle>summary::-webkit-details-marker{display:none}details.journey-toggle>summary:hover{color:var(--accent)}details.journey-toggle>summary:before{content:"▸";color:var(--muted);font-size:.85rem;transition:transform var(--motion-fast) var(--ease-standard);display:inline-block}details.journey-toggle[open]>summary:before{transform:rotate(90deg)}details.journey-toggle[open]>div .journey-section{margin-top:0;padding-top:0;border-top:none}details.journey-toggle[open]>div .journey-header{display:none}.journey-expanded{margin-top:.85rem;padding:.7rem .9rem;background:var(--soft);border:1px solid var(--border);border-radius:4px}.journey-milestone-row{display:flex;gap:.7rem;align-items:baseline;padding:.35rem 0;font-size:.92rem}.journey-milestone-row+.journey-milestone-row{border-top:1px dashed var(--border)}.journey-milestone-pct{flex:0 0 auto;min-width:3rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--muted);text-align:right}.journey-milestone-pct[data-completed=true]{color:var(--accent);font-weight:500}.journey-milestone-text{flex:1 1 auto;color:var(--ink)}.journey-milestone-text[data-completed=true]{color:var(--muted)}.journey-milestone-check{flex:0 0 auto;display:flex;align-items:center;cursor:pointer}.journey-milestone-check input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.journey-milestone-text[data-completed=true]{text-decoration:line-through;text-decoration-color:#c14b3a99;text-decoration-thickness:1px}.journey-edit-form .row{display:flex;gap:.5rem;align-items:center;padding:.35rem 0}.journey-edit-form .row+.row{border-top:1px dashed var(--border)}.journey-edit-form input[type=number]{width:4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;padding:.25rem .4rem;border:1px solid var(--border);border-radius:3px;background:var(--card);color:var(--ink)}.journey-edit-form input[type=text]{flex:1 1 auto;font:inherit;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.92rem;padding:.3rem .5rem;border:1px solid var(--border);border-radius:3px;background:var(--card);color:var(--ink)}.journey-edit-form button.remove-btn{flex:0 0 auto;font:inherit;font-size:.78rem;padding:.25rem .55rem;border:1px solid var(--err-border, #f3c4ba);border-radius:3px;background:var(--card);color:var(--err-ink, #8a2818);cursor:pointer}.journey-edit-form button.add-btn{margin-top:.6rem;font:inherit;font-size:.85rem;padding:.3rem .7rem;border:1px dashed var(--border);border-radius:3px;background:var(--card);color:var(--ink);cursor:pointer}.journey-edit-form .actions{margin-top:.7rem;display:flex;gap:.4rem}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:ui-serif,Georgia,Iowan Old Style,serif;background:var(--bg);color:var(--ink);min-height:100vh;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header.app{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--border);background:var(--soft)}.nav-inner{max-width:min(1400px,95vw);margin:0 auto;padding:.65rem 1.25rem;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;align-items:baseline;justify-content:space-between}.nav-brand{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-right:.6rem;flex:0 0 auto}nav.tabs{display:flex;flex-wrap:wrap;gap:.1rem 1.1rem;flex:1 1 auto}nav.tabs a{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.86rem;color:var(--muted);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}nav.tabs a:hover{color:var(--ink)}nav.tabs a.active{color:var(--ink);border-bottom-color:var(--accent)}.logout-link{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.78rem;color:var(--muted)}.logout-link:hover{color:var(--accent)}main.app{max-width:min(1400px,95vw);margin:0 auto;padding:1.6rem 1.25rem 4rem}h1.page-title{font-size:1.55rem;font-weight:500;margin:0 0 .2rem;letter-spacing:-.01em}p.page-sub{font-size:.9rem;color:var(--muted);font-style:italic;margin:0 0 1.5rem}h2.section{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:1.6rem 0 .6rem}h2.section:first-of-type{margin-top:0}.item{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:.65rem .85rem;margin:0 0 .45rem;font-size:.96rem;overflow-wrap:anywhere;word-break:break-word}.item code,.item-row code,.meta code{overflow-wrap:anywhere;word-break:break-word}.item.completed{opacity:.55;text-decoration:line-through;text-decoration-thickness:1px}.item .meta{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.72rem;color:var(--muted);margin-top:.25rem}.item-row{display:flex;align-items:flex-start;gap:.6rem}.item-row .check{flex:0 0 auto;width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.item-row .tap-target{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;margin-top:.1rem;cursor:pointer}.item-row .body{flex:1 1 auto}form.quick-add{display:flex;gap:.5rem;margin:0 0 1.4rem;align-items:stretch}form.quick-add input[type=text]{flex:1 1 auto;font:inherit;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.95rem;padding:.55rem .7rem;border:1px solid #d8d3c4;border-radius:4px;background:var(--soft);color:var(--ink);min-width:0}form.quick-add input[type=text]:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}form.quick-add select{flex:0 0 auto;font:inherit;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.92rem;padding:.55rem .6rem;border:1px solid #d8d3c4;border-radius:4px;background:var(--soft);color:var(--ink);cursor:pointer}form.quick-add select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}form.quick-add button{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.85rem;letter-spacing:.04em;padding:.55rem 1rem;border:0;border-radius:4px;background:var(--ink);color:var(--bg);cursor:pointer;transition:background-color .15s}form.quick-add button:hover,form.quick-add button:focus{background:var(--accent)}.status{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.85rem;color:var(--muted);padding:.6rem 0}.status.error{color:var(--err-ink);background:var(--err-bg);border:1px solid var(--err-border);padding:.55rem .7rem;border-radius:4px}.conflict{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-ink);padding:.85rem 1rem;border-radius:4px;margin:0 0 1rem;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.88rem}.conflict[hidden]{display:none}.conflict h3{margin:0 0 .4rem;font-size:.92rem;font-weight:600}.conflict pre{background:#0000000a;border:1px solid var(--warn-border);padding:.5rem .7rem;border-radius:3px;font-size:.78rem;max-height:220px;overflow:auto;white-space:pre-wrap}.conflict-actions{display:flex;gap:.4rem;margin-top:.6rem;flex-wrap:wrap}.conflict-actions button{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.83rem;padding:.45rem .85rem;border-radius:4px;border:1px solid var(--warn-border);background:#fff;color:var(--warn-ink);cursor:pointer}.conflict-actions button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.conflict-actions button:hover{background:var(--accent);color:var(--bg);border-color:var(--accent)}.project-card{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:.85rem 1rem;margin:0 0 .55rem;display:block;color:var(--ink)}.project-card:hover{border-color:var(--accent);text-decoration:none}.project-card .name{font-size:1.02rem;margin:0 0 .2rem}.project-card .desc{font-size:.88rem;color:var(--muted);margin:.15rem 0 .4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card .pill{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;padding:.12rem .5rem;border-radius:999px;background:var(--soft);border:1px solid var(--border);color:var(--muted)}.project-card .pill.active{color:var(--accent);border-color:var(--accent)}article.brief h1{font-size:1.55rem;font-weight:500;margin:0 0 .4rem}article.brief h2{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:1.4rem 0 .5rem}article.brief p{margin:0 0 .6rem}article.brief ul{padding-left:1.2rem}article.brief li{margin:.18rem 0}article.brief code{background:#0000000d;border-radius:3px;padding:.05rem .35rem;font-size:.92em}article.brief blockquote{margin:0 0 .8rem;padding-left:.9rem;border-left:3px solid var(--border);color:var(--muted)}#brief-body{border-radius:3px;padding:.4rem .6rem;margin:0 -.6rem;transition:background-color .12s ease;cursor:text}#brief-body:hover:not(.editing){background-color:#00000006}#brief-body.editing{padding:0;cursor:auto}#brief-body a{cursor:pointer}footer.app{border-top:1px solid var(--border);background:var(--soft);margin-top:3rem}.footer-inner{max-width:min(1400px,95vw);margin:0 auto;padding:.65rem 1.25rem;display:flex;justify-content:flex-end;gap:.85rem;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.74rem;color:var(--muted)}.footer-inner a,.footer-inner button{color:var(--muted);background:none;border:0;padding:0;cursor:pointer;font:inherit}.footer-inner a:hover,.footer-inner button:hover{color:var(--accent)}.item.hash-target{outline:2px solid var(--accent);outline-offset:2px;transition:outline-color .4s ease}.item.hash-target.hash-fade{outline-color:transparent}.age-chip{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;padding:.05rem .4rem;border-radius:999px;margin-left:.4rem;border:1px solid;line-height:1.4;vertical-align:baseline}.age-chip.age-chip-gray{color:var(--muted);border-color:var(--border);background:var(--soft)}.age-chip.age-chip-yellow{color:var(--warn-ink);border-color:var(--warn-border);background:var(--warn-bg)}.age-chip.age-chip-red{color:var(--err-ink);border-color:var(--err-border);background:var(--err-bg)}.item-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem;padding-top:.55rem;border-top:1px solid var(--border)}.item-actions .action-btn{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.78rem;padding:.32rem .7rem;border-radius:3px;border:1px solid var(--border);background:#fff;color:var(--ink);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.item-actions .action-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.item-actions .action-btn.delete:hover{background:var(--err-ink);border-color:var(--err-ink);color:var(--bg)}.item-actions select{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.82rem;padding:.3rem .55rem;border-radius:3px;border:1px solid var(--border);background:var(--soft);color:var(--ink);cursor:pointer}.item-actions .action-btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.item-actions .action-btn.primary:hover{background:var(--accent);border-color:var(--accent)}.item-actions .action-btn:disabled{opacity:.5;cursor:not-allowed}.body-text{cursor:text;border-radius:3px;padding:.1rem .25rem;margin:-.1rem -.25rem;transition:background .12s,text-decoration-color .12s}.body-text:hover,.body-text:focus-visible{background:#c14b3a0a;text-decoration:underline 1px dotted var(--ink);text-underline-offset:3px;outline:none}.body-text.editing{cursor:default;background:var(--soft);padding:.45rem .6rem;margin:0;text-decoration:none}.editable-chip{cursor:pointer;border-radius:3px;background-color:transparent;align-self:flex-start;flex-shrink:0;white-space:nowrap;transition:background-color .12s ease}.editable-chip:hover{background-color:#0000000f}.editable-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.body-text.editing:hover{background:var(--soft)}.body-text textarea{width:100%;font:inherit;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.93rem;line-height:1.45;border:1px solid var(--border);border-radius:3px;padding:.5rem .6rem;background:var(--card);color:var(--ink);resize:vertical;box-sizing:border-box}.body-text textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.edit-actions{display:flex;gap:.4rem;margin-top:.45rem}.edit-actions button{font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.78rem;padding:.35rem .85rem;border-radius:3px;border:1px solid var(--border);background:#fff;color:var(--ink);cursor:pointer}.edit-actions button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.edit-actions button.primary:hover{background:var(--accent);border-color:var(--accent)}.edit-actions button:disabled{opacity:.5;cursor:not-allowed}.toast-root{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:1000;pointer-events:none}.toast{background:var(--ink);color:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.85rem;padding:.65rem 1.1rem;border-radius:999px;box-shadow:0 4px 14px #0000002e;opacity:0;transform:translateY(8px);transition:opacity var(--motion-slow) var(--ease-out),transform var(--motion-slow) var(--ease-out);letter-spacing:.02em}.toast.toast-shown{opacity:1;transform:translateY(0)}.toast.toast-success{background:var(--ink);color:var(--bg)}.toast.toast-success:before{content:"✓ ";color:#c5e2c8;margin-right:.05rem}.toast.toast-error{background:var(--err-bg);color:var(--err-ink);border:1px solid var(--err-border)}.toast.toast-error:before{content:"⚠ "}.dev-only{display:none}body.dev-mode-on .dev-only{display:inline}nav.tabs a .count{margin-left:.3rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.7rem;color:var(--muted);font-weight:500}nav.tabs a.active .count{color:var(--accent)}nav.tabs a .count[hidden]{display:none}@media(max-width:600px){.nav-inner{padding:.5rem .85rem}.nav-brand{font-size:.72rem}nav.tabs{gap:.05rem .85rem}nav.tabs a{font-size:.82rem}main.app{padding:1.1rem .85rem 3rem}h1.page-title{font-size:1.35rem}.item{font-size:.93rem}form.quick-add{flex-direction:column}form.quick-add button{width:100%}.item-row .tap-target{min-width:44px;min-height:44px;margin-top:0}.item-row{align-items:center}}
