.writing-page{}.writing-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-s);flex-wrap:wrap;margin-bottom:var(--space-m)}.writing-header h1{margin:0 0 .2rem}.writing-lead{margin:0;color:var(--color-ink-faded);font-size:var(--step-0)}.writing-topics-link{font-family:var(--font-mono);font-size:var(--step--2);text-decoration:none;color:var(--color-ink);padding:.35rem .65rem;border:1.5px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-paper-elevated);transition:transform .15s ease,box-shadow .15s ease,color .15s ease}.writing-topics-link:hover{color:var(--color-accent);transform:translate(-1.5px,-1.5px);box-shadow:var(--shadow-stamp-sm);text-decoration:none}.archive-sparkline-wrap{margin-bottom:var(--space-m);padding:var(--space-xs)var(--space-s);border:1.5px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-paper-elevated)}.archive-sparkline-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faded)}.archive-sparkline{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;align-items:end}.spark-col{display:flex;flex-direction:column;align-items:center;gap:3px;border:none;background:0 0;padding:0;cursor:pointer;color:var(--color-ink-faded);transition:opacity .15s ease}.spark-col.is-empty{opacity:.25}.spark-count{font-family:var(--font-mono);font-size:.65rem;opacity:0;transform:translateY(2px);transition:opacity .15s ease,transform .15s ease;color:var(--color-accent);font-weight:700}.spark-col:hover .spark-count,.spark-col:focus-visible .spark-count{opacity:1;transform:translateY(0)}.spark-bar-track{width:100%;height:44px;display:flex;align-items:flex-end;background:color-mix(in srgb,var(--color-border-light) 35%,transparent);border-radius:2px;overflow:hidden}.spark-bar{width:100%;background:var(--color-ink);border-radius:2px 2px 0 0;transition:background-color .15s ease,transform .15s ease}.spark-col:hover .spark-bar,.spark-col:focus-visible .spark-bar{background:var(--color-accent)}.spark-label{font-family:var(--font-mono);font-size:.68rem}.writing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-s);flex-wrap:wrap;padding-bottom:var(--space-s);border-bottom:2px solid var(--color-border)}.writing-filters{display:flex;flex-wrap:wrap;gap:.35rem}.writing-filters button{display:inline-flex;align-items:center;gap:.38rem;font-family:var(--font-mono);font-size:.76rem;padding:.38rem .65rem;border:1.5px solid var(--color-border-light);border-radius:var(--radius-s);background:var(--color-paper-elevated);color:var(--color-ink);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;font-weight:600;transition:border-color .15s ease,background-color .15s ease,color .15s ease,transform .15s ease}.writing-filters button .section-dot{width:6px;height:6px;border-radius:1px}.section-dot--articles{background:var(--color-articles)}.section-dot--howto{background:var(--color-howto)}.section-dot--labnotes{background:var(--color-labnotes)}.section-dot--fragments{background:var(--color-fragments)}.writing-filters button .filter-count{font-size:.68rem;color:var(--color-ink-faded)}.writing-filters button:hover{border-color:var(--color-border);transform:translateY(-1px)}.writing-filters button.active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.writing-filters button.active .filter-count{color:color-mix(in srgb,var(--color-paper) 75%,transparent)}.writing-search-box{position:relative;display:flex;align-items:center;flex:1 1 250px;max-width:340px}.writing-search-box svg{position:absolute;left:.65rem;width:15px;height:15px;color:var(--color-ink-faded);pointer-events:none}.writing-search-box input{width:100%;font-family:var(--font-mono);font-size:.82rem;padding:.42rem 2rem .42rem 2.1rem;border:1.5px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-paper-elevated);color:var(--color-ink)}.writing-search-box input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-tint)}.writing-clear{position:absolute;right:.4rem;border:none;background:0 0;color:var(--color-ink-faded);font-size:1.1rem;line-height:1;cursor:pointer;padding:.15rem .35rem}.writing-clear:hover{color:var(--color-accent)}.writing-status-bar{display:flex;align-items:center;gap:var(--space-s);flex-wrap:wrap;margin-top:var(--space-xs);font-family:var(--font-mono);font-size:.75rem;color:var(--color-ink-faded)}.writing-active-tag{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .45rem;border-radius:var(--radius-xs);background:var(--color-accent-tint);color:var(--color-accent)}.writing-active-tag button{border:none;background:0 0;color:inherit;cursor:pointer;font-size:.95rem;line-height:1;padding:0}.writing-empty{margin:var(--space-xl)0;padding:var(--space-l);text-align:center;border:1.5px dashed var(--color-border-light);border-radius:var(--radius-s)}.writing-empty button{font-family:var(--font-mono);font-size:.8rem;padding:.4rem .85rem;border:1.5px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-paper-elevated);color:var(--color-ink);cursor:pointer}.writing-empty button:hover{color:var(--color-accent);box-shadow:var(--shadow-stamp-sm)}.writing-year-group{scroll-margin-top:84px}.writing-year{display:flex;align-items:baseline;justify-content:space-between;font-family:var(--font-display);font-size:var(--step-3);color:var(--color-ink);margin:var(--space-l)0 var(--space-xs);padding-bottom:var(--space-3xs);border-bottom:2px solid var(--color-border)}.writing-year.is-pulsed{animation:yearPulse .9s ease}@keyframes yearPulse{0%{color:var(--color-accent);border-bottom-color:var(--color-accent)}100%{color:var(--color-ink);border-bottom-color:var(--color-border)}}.year-count{font-family:var(--font-mono);font-size:var(--step--2);color:var(--color-ink-faded);font-weight:400}.writing-list{list-style:none;padding:0;margin:0}.writing-item{display:grid;grid-template-columns:7.2rem 1fr auto;align-items:baseline;gap:var(--space-s);padding:.68rem .35rem;border-bottom:1px solid var(--color-border-light);transition:background-color .14s ease,padding-left .14s ease}.writing-item:hover{background:var(--color-paper-elevated);padding-left:.6rem}.writing-item-main{min-width:0}.writing-item-link{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .65rem;text-decoration:none;color:inherit}.writing-item-link:hover{text-decoration:none}.writing-item-link:hover .writing-title{color:var(--color-accent)}.writing-item .writing-title{color:var(--color-ink);font-size:var(--step-0);font-weight:600;transition:color .15s ease}.writing-item .writing-subtitle{color:var(--color-ink-faded);font-size:var(--step--1);font-style:italic}.writing-item-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.22rem}.row-tag{border:none;background:0 0;padding:0;text-decoration:none;font-family:var(--font-mono);font-size:.72rem;color:var(--color-ink-faded);cursor:pointer;transition:color .12s ease}.row-tag:hover{color:var(--color-accent);text-decoration:underline}.row-backlinks{font-family:var(--font-mono);font-size:.7rem;padding:.02rem .32rem;border-radius:var(--radius-xs);background:var(--color-accent-tint);color:var(--color-accent);font-weight:700}.writing-item-meta{display:flex;align-items:baseline;gap:.55rem;white-space:nowrap;flex-shrink:0;font-family:var(--font-mono);font-size:.76rem;color:var(--color-ink-faded)}.writing-readtime{opacity:.7}@media(max-width:680px){.archive-sparkline{gap:3px}.writing-search-box{max-width:none}.writing-item{grid-template-columns:1fr auto;gap:.2rem var(--space-xs);padding:.7rem .15rem}.writing-item-badge{grid-column:1/-1}.writing-item-main{grid-column:1}.writing-item-meta{grid-column:2;align-self:start}}