.cc-root{--cc-bg: #fdfdfb;--cc-surface: #ffffff;--cc-surface-soft: #f6f5f1;--cc-ink: #1b1b18;--cc-ink-soft: #57554e;--cc-ink-faint: #8a877d;--cc-rule: #e4e2da;--cc-rule-strong: #cbc8be;--cc-accent: #9a3b29;--cc-accent-soft: #f2e7e3;--cc-positive: #43705a;--cc-positive-soft: #e3ece6;--cc-signal: #9a6b12;--cc-signal-soft: #f5eddb;--cc-muted: #b8b5aa;--cc-radius: 4px;--cc-mono: var(--font-mono, "SF Mono", Menlo, Consolas, monospace);color:var(--cc-ink);font-size:.95rem}.cc-root[data-cc-theme=dark]{--cc-bg: #17171a;--cc-surface: #1e1e22;--cc-surface-soft: #232328;--cc-ink: #e9e7e1;--cc-ink-soft: #a8a49b;--cc-ink-faint: #7b776f;--cc-rule: #32323a;--cc-rule-strong: #45454f;--cc-accent: #d0755d;--cc-accent-soft: #33241f;--cc-positive: #7fae8d;--cc-positive-soft: #1f2b24;--cc-signal: #d3a34b;--cc-signal-soft: #2e2718;--cc-muted: #55545c}.cc-page{max-width:72rem}.cc-breadcrumb{font-family:var(--cc-mono);font-size:.8rem;margin:0 0 1.5rem}.cc-root *:focus-visible{outline:2px solid var(--cc-accent);outline-offset:2px;border-radius:2px}.cc-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cc-header{display:flex;flex-wrap:wrap;gap:1.5rem 2rem;justify-content:space-between;align-items:flex-end;padding-bottom:1.25rem;border-bottom:1px solid var(--cc-rule-strong)}.cc-header__title{font-size:1.9rem;margin:0;letter-spacing:-.015em}.cc-header__subtitle{margin:.3rem 0 0;font-family:var(--cc-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-header__status{display:flex;flex-wrap:wrap;gap:0 1.75rem;margin:0}.cc-header__status dt{font-family:var(--cc-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-header__status dd{margin:.15rem 0 0;font-family:var(--cc-mono);font-size:.95rem;font-variant-numeric:tabular-nums}.cc-nav{display:flex;flex-wrap:wrap;gap:0 1.25rem;padding:.9rem 0;border-bottom:1px solid var(--cc-rule);margin-bottom:2rem}.cc-nav__link{font-family:var(--cc-mono);font-size:.8rem;color:var(--cc-ink-faint);padding:.2rem 0;border-bottom:1px solid transparent}.cc-nav__link:hover{color:var(--cc-ink);text-decoration:none}.cc-nav__link--active{color:var(--cc-accent);border-bottom-color:var(--cc-accent)}.cc-content{display:flex;flex-direction:column;gap:1.75rem}.cc-panel{border:1px solid var(--cc-rule);border-radius:var(--cc-radius);background:var(--cc-surface);padding:1.25rem 1.4rem 1.4rem}.cc-panel--today{border-color:var(--cc-rule-strong);border-left:3px solid var(--cc-accent)}.cc-panel--danger{border-color:var(--cc-accent)}.cc-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.cc-panel__title{font-family:var(--cc-mono);font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--cc-ink-soft);margin:0}.cc-panel__aside{font-family:var(--cc-mono);font-size:.8rem;color:var(--cc-ink-faint)}.cc-count{font-family:var(--cc-mono);font-size:.95rem;font-variant-numeric:tabular-nums;color:var(--cc-ink)}.cc-hint{font-size:.83rem;color:var(--cc-ink-faint);margin:.75rem 0 0;line-height:1.5}.cc-empty{font-size:.87rem;color:var(--cc-ink-faint);margin:.5rem 0 0}.cc-code{font-family:var(--cc-mono);font-size:.75rem;color:var(--cc-ink-faint);background:var(--cc-surface-soft);padding:.5rem .7rem;border-radius:var(--cc-radius);overflow-wrap:anywhere}.cc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.75rem}.cc-focus{padding:1.1rem 0 .25rem}.cc-focus__label{font-family:var(--cc-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cc-ink-faint);margin:0}.cc-focus__value{font-size:1.5rem;margin:.3rem 0 0}.cc-focus__week{margin:.35rem 0 0;color:var(--cc-ink-soft);font-size:.9rem}.cc-focus__streams{display:flex;flex-wrap:wrap;gap:.4rem 1rem;list-style:none;padding:0;margin:.7rem 0 0;font-family:var(--cc-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-today__focus{margin:0 0 1.1rem;color:var(--cc-ink-soft);font-size:.95rem}.cc-today__day{font-family:var(--cc-mono);color:var(--cc-ink)}.cc-today__sep,.cc-modal__sep{margin:0 .5rem;color:var(--cc-muted)}.cc-tier+.cc-tier{margin-top:1.1rem}.cc-tier__title{font-family:var(--cc-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cc-ink-faint);margin:0 0 .4rem;font-weight:500}.cc-task-list{list-style:none;margin:0;padding:0}.cc-task{border-top:1px solid var(--cc-rule)}.cc-task:first-child{border-top:none}.cc-task__label{display:flex;align-items:baseline;gap:.7rem;padding:.55rem 0;cursor:pointer}.cc-task__label input{position:absolute;opacity:0;width:1px;height:1px}.cc-task__check{flex:0 0 auto;width:.95rem;height:.95rem;border:1px solid var(--cc-rule-strong);border-radius:2px;position:relative;top:.15rem;transition:background-color .15s ease,border-color .15s ease}.cc-task__label input:focus-visible+.cc-task__check{outline:2px solid var(--cc-accent);outline-offset:2px}.cc-task--done .cc-task__check{background:var(--cc-positive);border-color:var(--cc-positive)}.cc-task--done .cc-task__check:after{content:"";position:absolute;left:.28rem;top:.08rem;width:.25rem;height:.5rem;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.cc-task__body{flex:1 1 auto;display:flex;flex-direction:column;gap:.1rem}.cc-task__type{font-family:var(--cc-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-task__title{line-height:1.4}.cc-task--done .cc-task__title{color:var(--cc-ink-faint);text-decoration:line-through;text-decoration-color:var(--cc-muted)}.cc-task__minutes{font-family:var(--cc-mono);font-size:.72rem;color:var(--cc-muted);font-variant-numeric:tabular-nums}.cc-today__note{margin:1.1rem 0 0;padding-top:.9rem;border-top:1px solid var(--cc-rule);font-size:.87rem;color:var(--cc-ink-soft)}.cc-today__tally{margin:.35rem 0 0;font-family:var(--cc-mono);font-size:1.05rem;font-variant-numeric:tabular-nums}.cc-today__tally-optional{color:var(--cc-ink-faint);font-size:.85rem}.cc-today__milestone{margin:.5rem 0 0;font-family:var(--cc-mono);font-size:.75rem;color:var(--cc-signal)}.cc-btn{font-family:var(--cc-mono);font-size:.78rem;color:var(--cc-ink);background:var(--cc-surface);border:1px solid var(--cc-rule-strong);border-radius:var(--cc-radius);padding:.42rem .8rem;cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.cc-btn:hover{border-color:var(--cc-ink-soft)}.cc-btn--primary{background:var(--cc-accent);border-color:var(--cc-accent);color:#fff}.cc-btn--primary:hover{filter:brightness(1.08)}.cc-btn--warning{color:var(--cc-accent);border-color:var(--cc-accent)}.cc-btn--ghost{border-color:transparent;color:var(--cc-ink-faint);padding-left:0}.cc-btn--ghost:hover{color:var(--cc-ink);border-color:transparent;text-decoration:underline}.cc-btn--tiny{font-size:.7rem;padding:.15rem .4rem}.cc-btn--icon{padding:.25rem .5rem;line-height:1}.cc-btn:disabled{opacity:.4;cursor:default}.cc-quick__grid{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.9rem}.cc-chip{font-family:var(--cc-mono);font-size:.74rem;border:1px solid var(--cc-rule-strong);border-radius:999px;background:var(--cc-surface);color:var(--cc-ink-soft);padding:.3rem .7rem;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.cc-chip:hover{color:var(--cc-ink);border-color:var(--cc-ink-faint)}.cc-chip--signal{border-color:var(--cc-signal);color:var(--cc-signal)}.cc-chip--muted{color:var(--cc-muted)}.cc-chip--flash{background:var(--cc-positive-soft);border-color:var(--cc-positive);color:var(--cc-positive)}.cc-quick__detail{margin-top:.9rem}.cc-inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}.cc-inline-form__label{font-family:var(--cc-mono);font-size:.72rem;color:var(--cc-ink-faint);flex:1 0 100%}.cc-inline-form input{flex:1 1 14rem}.cc-root input[type=text],.cc-root input[type=url],.cc-root input[type=date],.cc-root input[type=number],.cc-root select,.cc-textarea{font-family:inherit;font-size:.87rem;color:var(--cc-ink);background:var(--cc-surface);border:1px solid var(--cc-rule-strong);border-radius:var(--cc-radius);padding:.4rem .55rem;width:100%;max-width:100%}.cc-textarea{resize:vertical;line-height:1.5}.cc-field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.cc-field--inline{flex-direction:row;align-items:center;gap:.6rem;flex-wrap:wrap}.cc-field--grow{flex:1 1 16rem}.cc-field__label{font-family:var(--cc-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cc-ink-faint);white-space:nowrap}.cc-metrics{display:grid;gap:.85rem}.cc-metric__row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.28rem}.cc-metric__label{font-size:.87rem;color:var(--cc-ink-soft)}.cc-metric__value{font-family:var(--cc-mono);font-size:.87rem;font-variant-numeric:tabular-nums}.cc-metric__target{color:var(--cc-ink-faint)}.cc-bar{height:4px;background:var(--cc-surface-soft);border-radius:2px;overflow:hidden}.cc-root[data-cc-theme=dark] .cc-bar{background:var(--cc-rule)}.cc-bar__fill{display:block;height:100%;border-radius:2px;transition:width .4s ease}.cc-bar__fill--accent{background:var(--cc-accent)}.cc-bar__fill--muted{background:var(--cc-ink-faint)}.cc-bar__fill--signal{background:var(--cc-signal)}.cc-nonzero b{font-variant-numeric:tabular-nums;color:var(--cc-ink)}.cc-bignum{font-family:var(--cc-mono);font-size:2.4rem;line-height:1;margin:.5rem 0 0;font-variant-numeric:tabular-nums}.cc-bignum__target{font-size:1.1rem;color:var(--cc-ink-faint)}.cc-timeline{display:flex;flex-direction:column;gap:.7rem}.cc-timeline__week{display:flex;align-items:center;gap:.9rem}.cc-timeline__week-label{font-family:var(--cc-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cc-ink-faint);flex:0 0 5.5rem}.cc-timeline__days{display:flex;gap:.35rem;flex-wrap:wrap}.cc-day{display:flex;flex-direction:column;align-items:center;gap:.25rem;width:2.1rem;padding:.3rem 0;background:none;border:1px solid transparent;border-radius:var(--cc-radius);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.cc-day:hover{border-color:var(--cc-rule-strong)}.cc-day__number{font-family:var(--cc-mono);font-size:.62rem;color:var(--cc-ink-faint);font-variant-numeric:tabular-nums}.cc-day__mark{width:.7rem;height:.7rem;border-radius:50%;border:1px solid var(--cc-rule-strong);background:transparent;transition:background-color .2s ease,border-color .2s ease}.cc-day--started .cc-day__mark{background:var(--cc-muted);border-color:var(--cc-muted)}.cc-day--active .cc-day__mark{background:var(--cc-accent);border-color:var(--cc-accent);opacity:.55}.cc-day--complete .cc-day__mark{background:var(--cc-positive);border-color:var(--cc-positive)}.cc-day--great .cc-day__mark{background:var(--cc-positive);border-color:var(--cc-positive);box-shadow:0 0 0 2px var(--cc-positive-soft)}.cc-day--future{opacity:.45}.cc-day--today{border-color:var(--cc-accent)}.cc-day--signal .cc-day__mark{background:var(--cc-signal);border-color:var(--cc-signal);box-shadow:0 0 0 3px var(--cc-signal-soft)}.cc-day--signal .cc-day__number{color:var(--cc-signal)}.cc-day--milestone .cc-day__number:after{content:"▸";margin-left:.1rem;color:var(--cc-ink-faint)}.cc-day--achieved .cc-day__number:after{color:var(--cc-signal)}.cc-continuity{display:inline-flex;align-items:center;gap:.3rem}.cc-continuity__caption{font-size:.72rem;color:var(--cc-ink-faint);margin-right:.2rem}.cc-continuity__dot{font-size:.85rem;line-height:1;color:var(--cc-muted)}.cc-continuity__dot--full{color:var(--cc-positive)}.cc-continuity__dot--partial{color:var(--cc-accent)}.cc-continuity__dot--signal{color:var(--cc-signal)}.cc-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;list-style:none;padding:.9rem 0 0;margin:.9rem 0 0;border-top:1px solid var(--cc-rule);font-size:.75rem;color:var(--cc-ink-faint)}.cc-legend li{display:flex;align-items:center;gap:.35rem}.cc-legend__swatch{width:.6rem;height:.6rem;border-radius:50%;border:1px solid var(--cc-rule-strong);display:inline-block}.cc-legend .cc-day--started{background:var(--cc-muted);border-color:var(--cc-muted)}.cc-legend .cc-day--active{background:var(--cc-accent);border-color:var(--cc-accent);opacity:.55}.cc-legend .cc-day--complete,.cc-legend .cc-day--great{background:var(--cc-positive);border-color:var(--cc-positive)}.cc-legend__swatch--signal{background:var(--cc-signal);border-color:var(--cc-signal)}.cc-legend__swatch--milestone{border-radius:0;background:none;border:none;width:auto}.cc-legend__swatch--milestone:before{content:"▸";color:var(--cc-ink-faint)}.cc-funnel{display:grid;gap:.55rem}.cc-funnel__row{display:grid;grid-template-columns:8rem 1fr 2.5rem;align-items:center;gap:.75rem}.cc-funnel__label{font-size:.83rem;color:var(--cc-ink-soft)}.cc-funnel__bar{height:.85rem;background:var(--cc-surface-soft);border-radius:2px;overflow:hidden}.cc-root[data-cc-theme=dark] .cc-funnel__bar{background:var(--cc-rule)}.cc-funnel__fill{display:block;height:100%;background:var(--cc-accent);transition:width .4s ease}.cc-funnel__count{font-family:var(--cc-mono);font-size:.85rem;text-align:right;font-variant-numeric:tabular-nums}.cc-matrix-wrap{overflow-x:auto}.cc-matrix{width:100%;border-collapse:collapse;font-size:.85rem;min-width:34rem}.cc-matrix th,.cc-matrix td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--cc-rule);vertical-align:middle}.cc-matrix thead th{font-family:var(--cc-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-ink-faint);font-weight:500}.cc-matrix thead th:not(:first-child){text-align:center}.cc-matrix td{text-align:center}.cc-matrix__group th{font-family:var(--cc-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-ink-soft);padding-top:1rem;border-bottom-color:var(--cc-rule-strong)}.cc-matrix__priority{margin-left:.5rem;color:var(--cc-ink-faint)}.cc-matrix tbody th[scope=row]{font-weight:400;text-align:left}.cc-matrix__topic{display:block}.cc-matrix__meta{display:block;font-family:var(--cc-mono);font-size:.66rem;color:var(--cc-ink-faint)}.cc-matrix__date{font-family:var(--cc-mono);font-size:.72rem;color:var(--cc-ink-faint);text-align:right!important;white-space:nowrap}.cc-cell{display:inline-block;min-width:1.6rem;padding:.15rem .3rem;background:none;border:none;border-radius:var(--cc-radius);color:var(--cc-muted);font-size:.85rem;cursor:pointer}button.cc-cell:hover{background:var(--cc-surface-soft);color:var(--cc-ink-soft)}.cc-cell--reached{color:var(--cc-positive)}.cc-cell--current{background:var(--cc-positive-soft);color:var(--cc-positive)}.cc-stages{display:flex;flex-wrap:wrap;gap:.3rem .9rem;list-style:none;padding:0 0 .9rem;margin:0 0 1.1rem;border-bottom:1px solid var(--cc-rule);font-family:var(--cc-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cc-ink-faint);counter-reset:stage}.cc-stages li:before{content:"→ ";color:var(--cc-muted)}.cc-stages li:first-child:before{content:""}.cc-evidence{list-style:none;margin:0;padding:0;display:grid;gap:1.2rem}.cc-evidence__item{border-top:1px solid var(--cc-rule);padding-top:1rem}.cc-evidence__item:first-child{border-top:none;padding-top:0}.cc-evidence__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.cc-evidence__head h3{font-size:1rem;margin:0}.cc-badge{font-family:var(--cc-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--cc-rule-strong);color:var(--cc-ink-faint);white-space:nowrap}.cc-badge--stage-published,.cc-badge--stage-feedback,.cc-badge--stage-improved{border-color:var(--cc-positive);color:var(--cc-positive)}.cc-badge--stage-working{border-color:var(--cc-accent);color:var(--cc-accent)}.cc-evidence__summary{margin:.4rem 0 .7rem;color:var(--cc-ink-soft);font-size:.87rem;line-height:1.5}.cc-evidence__track{display:flex;align-items:center;gap:.35rem;margin-bottom:.7rem}.cc-evidence__node{flex:1 1 0;height:3px;border-radius:2px;background:var(--cc-surface-soft);transition:background-color .3s ease}.cc-root[data-cc-theme=dark] .cc-evidence__node{background:var(--cc-rule)}.cc-evidence__node--reached{background:var(--cc-positive)}.cc-evidence__controls{display:flex;flex-wrap:wrap;gap:.75rem 1.2rem;align-items:center}.cc-evidence__controls .cc-field{margin-bottom:0}.cc-link{font-family:var(--cc-mono);font-size:.75rem;color:var(--cc-accent);overflow-wrap:anywhere}.cc-readiness{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.35rem}.cc-readiness li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.85rem}.cc-readiness__label{color:var(--cc-ink-soft)}.cc-readiness__weight{font-family:var(--cc-mono);font-size:.68rem;color:var(--cc-muted);margin-left:.4rem}.cc-readiness__value{font-family:var(--cc-mono);font-variant-numeric:tabular-nums}.cc-activity{display:grid;gap:1.3rem}.cc-activity__date{font-family:var(--cc-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cc-ink-faint);margin:0 0 .4rem;font-weight:500}.cc-event-list{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}.cc-event-list li{display:flex;align-items:baseline;gap:.5rem;font-size:.87rem;padding:.15rem 0}.cc-event__tick{color:var(--cc-positive);font-size:.8rem}.cc-event__type{font-family:var(--cc-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cc-ink-faint);flex:0 0 auto}.cc-event__title{color:var(--cc-ink-soft);flex:1 1 auto}.cc-event--signal .cc-event__type,.cc-event--signal .cc-event__tick{color:var(--cc-signal)}.cc-heatmap{display:flex;gap:3px;overflow-x:auto;padding-bottom:.3rem}.cc-heatmap__col{display:flex;flex-direction:column;gap:3px}.cc-heatmap__cell{width:12px;height:12px;border-radius:2px;background:var(--cc-surface-soft);border:1px solid var(--cc-rule)}.cc-root[data-cc-theme=dark] .cc-heatmap__cell{background:var(--cc-rule);border-color:transparent}.cc-heatmap__cell--1{background:var(--cc-positive-soft);border-color:var(--cc-positive-soft)}.cc-heatmap__cell--2{background:var(--cc-positive);border-color:var(--cc-positive);opacity:.65}.cc-heatmap__cell--3{background:var(--cc-positive);border-color:var(--cc-positive)}.cc-heatmap__cell--signal{outline:1px solid var(--cc-signal);outline-offset:-1px}.cc-week__nav{display:inline-flex;gap:.3rem}.cc-week__focus{margin:0 0 1rem;color:var(--cc-ink-soft);font-size:.9rem}.cc-week__streams{list-style:none;margin:0 0 1.3rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.6rem 1.2rem}.cc-week__stream-label{display:block;font-family:var(--cc-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-week__stream-value{font-family:var(--cc-mono);font-size:1.05rem;font-variant-numeric:tabular-nums}.cc-week__split{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem;border-top:1px solid var(--cc-rule);padding-top:1.1rem}.cc-modal__section{font-family:var(--cc-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cc-ink-faint);margin:0 0 .5rem;font-weight:500}.cc-week__outcome,.cc-week__movement{list-style:none;margin:0;padding:0;font-size:.87rem;display:grid;gap:.25rem}.cc-week__movement li{display:flex;justify-content:space-between;gap:1rem;max-width:12rem}.cc-arrow{font-family:var(--cc-mono)}.cc-arrow--up{color:var(--cc-positive)}.cc-arrow--down{color:var(--cc-accent)}.cc-arrow--flat{color:var(--cc-muted)}.cc-week__signal{margin:.7rem 0 0;font-size:.85rem;color:var(--cc-signal)}.cc-milestones{list-style:none;margin:0;padding:0}.cc-milestones__item{display:flex;gap:.9rem;padding:.7rem 0;position:relative}.cc-milestones__marker{flex:0 0 auto;width:.6rem;height:.6rem;border-radius:50%;border:1px solid var(--cc-rule-strong);margin-top:.35rem}.cc-milestones__item--achieved .cc-milestones__marker{background:var(--cc-signal);border-color:var(--cc-signal)}.cc-milestones__item:before{content:"";position:absolute;left:.29rem;top:1.3rem;bottom:-.4rem;width:1px;background:var(--cc-rule)}.cc-milestones__item:last-child:before{display:none}.cc-milestones__label{margin:0;font-weight:600}.cc-milestones__meta{font-family:var(--cc-mono);font-size:.68rem;font-weight:400;color:var(--cc-ink-faint);margin-left:.6rem}.cc-milestones__desc{margin:.2rem 0 0;font-size:.85rem;color:var(--cc-ink-soft)}.cc-milestones__status{margin:.2rem 0 0;font-family:var(--cc-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-milestones__item--achieved .cc-milestones__status{color:var(--cc-signal)}.cc-milestone{border-left:3px solid var(--cc-rule-strong);padding:.6rem 0 .6rem .9rem;margin-bottom:1.2rem}.cc-milestone--achieved{border-left-color:var(--cc-signal)}.cc-milestone__label{display:block;font-family:var(--cc-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-milestone p{margin:.2rem 0 0;font-size:.85rem;color:var(--cc-ink-soft)}.cc-filter{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.cc-filter__btn{font-family:var(--cc-mono);font-size:.72rem;background:none;border:1px solid var(--cc-rule);border-radius:999px;padding:.2rem .6rem;color:var(--cc-ink-faint);cursor:pointer}.cc-filter__btn:hover{color:var(--cc-ink)}.cc-filter__btn--active{color:var(--cc-accent);border-color:var(--cc-accent)}.cc-questions{list-style:none;margin:0;padding:0}.cc-questions__item{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.6rem 0;border-top:1px solid var(--cc-rule)}.cc-questions__item:first-child{border-top:none}.cc-questions__kind{font-family:var(--cc-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-questions__text{margin:.15rem 0 0;font-size:.88rem;line-height:1.45}.cc-questions__item--done .cc-questions__text{color:var(--cc-ink-faint)}.cc-parking{list-style:none;margin:1rem 0 0;padding:0}.cc-parking li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.45rem 0;border-top:1px solid var(--cc-rule);font-size:.88rem}.cc-parking li:first-child{border-top:none}.cc-changelog{list-style:none;margin:0;padding:0}.cc-changelog__item{padding:.55rem 0;border-top:1px solid var(--cc-rule);font-size:.88rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem}.cc-changelog__item:first-child{border-top:none}.cc-changelog__day{font-family:var(--cc-mono);font-size:.7rem;color:var(--cc-ink-faint);flex:0 0 4.5rem}.cc-changelog__type{font-family:var(--cc-mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-changelog__item--milestone{border-left:2px solid var(--cc-signal);padding-left:.8rem}.cc-changelog__label{font-family:var(--cc-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cc-signal)}.cc-changelog__item p{flex:1 0 100%;margin:.15rem 0 0;font-size:.83rem;color:var(--cc-ink-soft)}.cc-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(20,20,18,.45);display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;overflow-y:auto;z-index:100}.cc-modal__dialog{background:var(--cc-surface);color:var(--cc-ink);border:1px solid var(--cc-rule-strong);border-radius:var(--cc-radius);width:100%;max-width:40rem;animation:cc-fade-in .18s ease}@keyframes cc-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.cc-modal__dialog{animation:none}.cc-bar__fill,.cc-funnel__fill,.cc-evidence__node,.cc-day__mark{transition:none}}.cc-modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.2rem 1.4rem;border-bottom:1px solid var(--cc-rule)}.cc-modal__head h2{margin:0;font-size:1.25rem}.cc-modal__meta{margin:.25rem 0 0;font-size:.8rem;color:var(--cc-ink-faint)}.cc-modal__body{padding:1.2rem 1.4rem 1.6rem;display:grid;gap:1.5rem}.cc-start{max-width:34rem;padding:2rem 0}.cc-start h2{margin:0 0 .5rem;font-size:1.6rem}.cc-start__lead{color:var(--cc-ink-soft);margin:0 0 1.5rem;line-height:1.55}.cc-start__form{display:grid;gap:.9rem;max-width:18rem}.cc-start__actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.cc-start__restore{margin-top:2rem;padding-top:1.3rem;border-top:1px solid var(--cc-rule)}.cc-start__restore .cc-btn{margin-top:.6rem}.cc-alert{margin:.9rem 0 0;padding:.6rem .8rem;border-radius:var(--cc-radius);font-size:.85rem;border:1px solid var(--cc-rule-strong)}.cc-alert--warning{border-color:var(--cc-accent);color:var(--cc-accent);background:var(--cc-accent-soft)}.cc-alert--ok{border-color:var(--cc-positive);color:var(--cc-positive);background:var(--cc-positive-soft)}.cc-panel--complete{border-color:var(--cc-signal)}.cc-complete__lead{margin:0 0 1.3rem;color:var(--cc-ink-soft)}.cc-complete__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem 1.5rem;margin:0}.cc-complete__grid dt{font-family:var(--cc-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cc-ink-faint)}.cc-complete__grid dd{margin:.2rem 0 0;font-family:var(--cc-mono);font-size:1.5rem;font-variant-numeric:tabular-nums}.cc-settings__form{display:grid;gap:.9rem;max-width:18rem}.cc-backup{font-family:var(--cc-mono);font-size:.8rem;color:var(--cc-ink-faint);margin:.9rem 0 0}@media (max-width: 720px){.cc-header{align-items:flex-start}.cc-header__status{gap:0 1.2rem}.cc-nav{gap:0 .9rem;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.cc-nav::-webkit-scrollbar{display:none}.cc-nav__link{white-space:nowrap}.cc-panel{padding:1rem 1rem 1.2rem}.cc-timeline__week{flex-direction:column;align-items:flex-start;gap:.3rem}.cc-timeline__week-label{flex-basis:auto}.cc-funnel__row{grid-template-columns:6.5rem 1fr 2rem;gap:.5rem}.cc-modal{padding:0}.cc-modal__dialog{min-height:100%;border:none;border-radius:0}}.cc-inline-form__select{flex:0 0 auto;width:auto;min-width:9rem}:root{--bg: #fdfdfb;--bg-soft: #f5f4f0;--ink: #1b1b18;--ink-soft: #57554e;--ink-faint: #8a877d;--rule: #e4e2da;--rule-strong: #c9c6bc;--accent: #9a3b29;--accent-soft: #f0e7e3;--max-read: 48rem;--max-wide: 48rem;--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:1.2;letter-spacing:-.01em;color:var(--ink)}a{color:var(--ink);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration:underline;text-decoration-color:var(--accent)}img{max-width:100%;height:auto}::-moz-selection{background:var(--accent-soft)}::selection{background:var(--accent-soft)}.app{display:flex;flex-direction:column;min-height:100vh}.app main{flex:1 0 auto;width:100%}.container{width:100%;max-width:var(--max-read);margin:0 auto;padding:0 1.5rem}.container.wide{max-width:var(--max-wide)}.site-header{border-bottom:1px solid var(--rule)}.site-header__inner{max-width:var(--max-read);margin:0 auto;padding:1.4rem 1.5rem;display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem}.brand{font-family:var(--font-serif);font-size:1.2rem;font-weight:600;letter-spacing:-.01em}.brand:hover{text-decoration:none}.site-nav{display:flex;align-items:baseline;gap:1.5rem}.site-nav a{font-size:.95rem;color:var(--ink-soft)}.site-nav a:hover{color:var(--ink);text-decoration:none}.site-nav a.active{color:var(--ink)}.lang-toggle{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;color:var(--ink-faint);background:none;border:none;cursor:pointer;padding:0}.lang-toggle:hover{color:var(--accent)}.site-footer{border-top:1px solid var(--rule);margin-top:4rem}.site-footer__inner{max-width:var(--max-read);margin:0 auto;padding:2rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--ink-faint);font-size:.85rem}.social{display:flex;gap:1.1rem;align-items:center}.social a{color:var(--ink-faint);display:inline-flex}.social a:hover{color:var(--accent);text-decoration:none}.page{padding-top:3rem;padding-bottom:1rem}.page-head{margin-bottom:3rem}.page-head h1{font-size:2.4rem;margin:0 0 .6rem}.page-head p{margin:0;color:var(--ink-soft);font-size:1.05rem;max-width:34rem}.eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 1rem}.tag-filter{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:1.5rem}.tag-filter button{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);background:none;border:none;padding:0;cursor:pointer}.tag-filter button:hover{color:var(--ink)}.tag-filter button.active{color:var(--accent)}.post-list{list-style:none;margin:0;padding:0}.post-item{padding:1.8rem 0;border-top:1px solid var(--rule)}.post-item:first-child{border-top:none;padding-top:0}.post-item__meta{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-faint);display:flex;gap:.6rem;margin-bottom:.4rem}.post-item__title{font-size:1.45rem;margin:0 0 .4rem}.post-item__title a:hover{text-decoration:none;color:var(--accent)}.post-item__excerpt{margin:0 0 .6rem;color:var(--ink-soft)}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-faint)}.tag:before{content:"#";opacity:.6}.empty{padding:2rem 0;border-top:1px solid var(--rule);color:var(--ink-soft)}.empty code{font-family:var(--font-mono);font-size:.85em;background:var(--bg-soft);padding:.1rem .4rem;border-radius:3px}.project-list{list-style:none;margin:0;padding:0}.project{display:flex;gap:1.5rem;padding:1.8rem 0;border-top:1px solid var(--rule);align-items:baseline}.project:first-child{border-top:none;padding-top:0}.project__year{flex:0 0 4.5rem;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);padding-top:.35rem}.project__body{flex:1 1 auto}.project__title{font-size:1.3rem;margin:0 0 .3rem;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.project__domain{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint)}.project__desc{margin:0 0 .7rem;color:var(--ink-soft)}.project__links{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}.project__links a{font-size:.85rem;color:var(--ink-soft);display:inline-flex;align-items:center;gap:.35rem}.project__links a:hover{color:var(--accent);text-decoration:none}.tool-list{list-style:none;margin:0;padding:0}.tool{padding:1.8rem 0;border-top:1px solid var(--rule)}.tool:first-child{border-top:none;padding-top:0}.tool__title{font-size:1.3rem;margin:0 0 .3rem;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.tool__status{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint)}.tool__desc{margin:0 0 .7rem;color:var(--ink-soft)}.tool__meta{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}.tool__meta a{font-size:.85rem;color:var(--ink-soft);display:inline-flex;align-items:center;gap:.35rem}.tool__meta a:hover{color:var(--accent);text-decoration:none}.about-section{margin-bottom:3rem}.about-section h2{font-size:1.3rem;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule)}.about-lead{font-size:1.2rem;line-height:1.6;color:var(--ink)}.about-skills{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.8rem 2rem}.about-skills li{color:var(--ink-soft);padding-left:1rem;position:relative}.about-skills li:before{content:"—";position:absolute;left:0;color:var(--ink-faint)}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:flex;gap:1.5rem;padding:1.1rem 0;border-top:1px solid var(--rule)}.timeline li:first-child{border-top:none}.timeline__when{flex:0 0 7rem;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);padding-top:.2rem}.timeline__what strong{font-weight:600}.timeline__what p{margin:.2rem 0 0;color:var(--ink-soft);font-size:.95rem}.timeline__what .tech{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-faint)}.stack-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1.5rem}.stack-groups h3{font-size:.8rem;font-family:var(--font-mono);font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .5rem}.stack-groups p{margin:0;color:var(--ink-soft)}.article{padding-top:3rem}.article__back{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);display:inline-block;margin-bottom:2rem}.article__head{margin:0 0 2.5rem}.article__category{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 .8rem}.article__head h1{font-size:2.5rem;margin:0 0 .8rem}.article__meta{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.article__lead{font-size:1.2rem;color:var(--ink-soft);margin:0 0 1rem}.tldr{margin:2.5rem 0;padding:1.4rem 1.6rem;background:var(--bg-soft);border-radius:6px}.tldr h2{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .6rem;color:var(--ink-soft)}.tldr ul{margin:0;padding-left:1.1rem;color:var(--ink-soft)}.toc{margin:2.5rem 0;padding-left:1.2rem;border-left:2px solid var(--rule)}.toc h2{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .6rem;color:var(--ink-faint)}.toc ul{list-style:none;margin:0;padding:0}.toc li{margin:.3rem 0}.toc a{font-size:.9rem;color:var(--ink-soft)}.prose{font-size:1.08rem;line-height:1.75}.prose>*+*{margin-top:1.3rem}.prose h2{font-size:1.6rem;margin-top:2.6rem}.prose h3{font-size:1.3rem;margin-top:2rem}.prose p,.prose ul,.prose ol{color:var(--ink)}.prose a{text-decoration:underline;text-decoration-color:var(--rule-strong)}.prose a:hover{text-decoration-color:var(--accent)}.prose blockquote{margin:1.6rem 0;padding-left:1.2rem;border-left:3px solid var(--rule-strong);color:var(--ink-soft);font-style:italic}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--bg-soft);padding:.12em .4em;border-radius:3px}.prose pre{background:#1b1b18;color:#f5f4f0;padding:1.1rem 1.2rem;border-radius:6px;overflow-x:auto;font-size:.9rem;line-height:1.6}.prose pre code{background:none;padding:0;color:inherit;font-size:inherit}.prose img{border-radius:6px}.prose table{width:100%;border-collapse:collapse;font-size:.95rem}.prose th,.prose td{text-align:left;padding:.5rem .8rem;border-bottom:1px solid var(--rule)}.article__foot{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:.82rem;color:var(--ink-faint);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.loading{padding:5rem 0;text-align:center;color:var(--ink-faint);font-family:var(--font-mono);font-size:.85rem}.project__thumb{flex:0 0 3rem;width:3rem;height:3rem;-o-object-fit:contain;object-fit:contain;border-radius:6px;background:var(--bg-soft);align-self:flex-start}.project__title a:hover{text-decoration:none;color:var(--accent)}.about-portrait{display:flex;gap:1.5rem;align-items:center;margin-bottom:2.5rem}.about-portrait img{width:6rem;height:6rem;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex:0 0 auto}.timeline__logo{flex:0 0 2.2rem;width:2.2rem;height:2.2rem;-o-object-fit:contain;object-fit:contain;border-radius:5px;background:var(--bg-soft)}.project-hero{margin-bottom:2.5rem}.project-hero .eyebrow{color:var(--accent)}.project-hero h1{font-size:2.4rem;margin:0 0 .6rem}.project-hero__tagline{font-size:1.15rem;color:var(--ink-soft);margin:0 0 1rem}.project-hero__links{display:flex;gap:1.1rem;flex-wrap:wrap;margin-top:1rem}.project-hero__links a{font-size:.9rem;color:var(--ink-soft);display:inline-flex;align-items:center;gap:.35rem}.project-hero__links a:hover{color:var(--accent);text-decoration:none}.proj-section{margin:2.5rem 0}.proj-section h2{font-size:1.4rem;margin:0 0 .8rem}.proj-section>p{color:var(--ink-soft);margin:0 0 1rem}.proj-meta{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.4rem 1.5rem}.proj-meta li{font-size:.92rem;color:var(--ink-soft)}.proj-meta .k{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);display:block}.proj-points{list-style:none;margin:0;padding:0}.proj-points li{padding:1rem 0;border-top:1px solid var(--rule)}.proj-points li:first-child{border-top:none}.proj-points strong{font-weight:600}.proj-points p{margin:.2rem 0 0;color:var(--ink-soft);font-size:.95rem}.proj-points .details{margin:.5rem 0 0;padding-left:1.1rem;color:var(--ink-faint);font-size:.9rem}.screens{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem}.screens img{width:100%;border-radius:8px;border:1px solid var(--rule);cursor:zoom-in;background:var(--bg-soft)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(20,19,17,.9);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:100;cursor:zoom-out}.lightbox img{max-width:100%;max-height:100%;border-radius:8px}@media (max-width: 640px){body{font-size:17px}.page-head h1,.article__head h1,.project-hero h1{font-size:2rem}.project{flex-direction:column;gap:.4rem}.project__year{padding-top:0}.project__thumb{align-self:flex-start}.timeline li{flex-direction:column;gap:.3rem}}
