:root{--paper: #fafafa;--ink: #1a1a1a;--text: #333;--text-2: #444;--muted: #666;--faint: #999;--rule: #eee;--wash: #eaf6ff;--accent: #258db7;--accent-soft: #8fbddd;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--serif: var(--sans);--measure: 700px;--gutter: 40px}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);line-height:1.7;color:var(--text);background-color:var(--paper);padding:80px 40px;max-width:var(--measure);margin:0 auto}::selection{background:var(--wash);color:var(--ink)}::-moz-selection{background:var(--wash);color:var(--ink)}a{color:var(--ink);text-decoration:underline;transition:color .2s ease}a:hover,a:focus-visible{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}a.plain{text-decoration:none}h1,h2,h3{font-weight:600;color:var(--ink);letter-spacing:-.01em;text-wrap:balance;margin:0;line-height:1.3}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1.05rem}p{margin:0 0 1.15em}em{font-style:italic}strong{font-weight:600;color:var(--ink)}hr{border:0;border-top:1px solid var(--rule);margin:2.75rem 0}blockquote{margin:1.75rem 0;padding-left:1.1rem;border-left:2px solid var(--rule);color:var(--muted);font-style:italic}.util{font-size:.9rem;color:var(--muted)}.util a{color:var(--muted)}.util a:hover{color:var(--ink)}.label{display:block;font-size:.9rem;color:var(--faint);letter-spacing:.01em;margin-bottom:1rem}.muted{color:var(--faint)}.header{display:flex;align-items:baseline;justify-content:center;gap:60px;margin-bottom:60px;flex-wrap:wrap}.name{font-size:1.5rem;font-weight:600;color:var(--ink);cursor:pointer;text-decoration:none}.name:hover{color:var(--ink)}.nav{display:flex;gap:30px;flex-wrap:wrap;justify-content:center}.nav a{text-decoration:none;color:var(--muted);font-size:1rem;transition:color .2s ease}.nav a:hover{color:var(--ink)}.nav a.active,.nav a[aria-current=page]{color:var(--accent)}.content{max-width:600px;margin:0 auto}main{max-width:600px;margin:0 auto}section{margin-bottom:2.75rem}section[id]{scroll-margin-top:2rem}section:last-of-type{margin-bottom:0}.article-head{margin-bottom:2.5rem}.article-head h1{margin-bottom:.6rem}.dek{color:var(--muted);font-size:1rem;line-height:1.6;margin:0}.prose>h2{margin:2.5rem 0 .8rem}.prose>h3{margin:2rem 0 .6rem}.prose ul,.prose ol{margin:0 0 1.15em;padding-left:1.25rem}.prose li{margin-bottom:.4em}.claim{font-size:1.15rem;line-height:1.5;font-style:italic;color:var(--text-2);border-left:2px solid var(--accent);padding-left:1rem;margin:0 0 1.15em;text-wrap:pretty}.claim.lead{font-size:1.4rem;line-height:1.4;border-left-width:3px;padding-left:1.15rem;font-style:normal;color:var(--ink)}.stack{list-style:none;margin:0;padding:0}.stack>li{margin-bottom:1.35rem}.stack>li:last-child{margin-bottom:0}.entry-title{color:var(--ink);font-size:1.05rem;line-height:1.4;text-decoration:underline}.entry-title:hover{color:var(--accent)}.entry-teaser{display:block;color:var(--muted);font-size:.95rem;line-height:1.55;margin-top:.15rem}.entry-meta{display:inline-block;color:var(--muted);font-size:.85rem;letter-spacing:.01em}.now{font-size:1.15rem;line-height:1.6;margin:0 0 2.5rem}.now p{margin:0 0 .7em}.now .tick{display:inline-block;width:1.05rem;height:1px;background:var(--accent);vertical-align:.3em;margin-right:.55rem}.noted{position:relative}.term{border-bottom:1px dotted var(--accent-soft);cursor:help}.understory{display:block;font-size:.8rem;line-height:1.55;color:var(--faint);border-left:2px solid var(--accent-soft);padding-left:.75rem;margin:1.1rem 0 1.4rem}.site-foot{border-top:1px solid var(--rule);margin-top:4rem;padding-top:1.5rem;color:var(--faint);font-size:.85rem;text-align:center}.site-foot a{color:var(--faint);text-decoration:none}.site-foot a:hover{color:var(--accent)}.bio{font-size:1rem;line-height:1.7;color:var(--text-2)}.bio a{color:var(--ink);text-decoration:underline}.bio a:hover{color:var(--accent)}.bio-group{margin-bottom:32px}.bio-label{color:var(--faint);font-size:.85rem;margin-bottom:8px}.dinner-link{color:var(--faint)!important;text-decoration:none!important;transition:color .2s ease}.dinner-link:hover{color:#555!important}.section{display:none}.section.active{display:block}html[data-initial-section] .section.active{display:none}html[data-initial-section=writing] #writing-section,html[data-initial-section=projects] #projects-section,html[data-initial-section=contact] #contact-section{display:block}html[data-initial-section] .token-widgets{display:none}.project-item,.writing-item{margin-bottom:15px;display:flex;justify-content:space-between;align-items:baseline}.project-title,.writing-title{color:var(--ink);text-decoration:underline;font-weight:400}.project-title:hover,.writing-title:hover{color:var(--accent)}.project-description{color:var(--muted);font-size:.95rem;margin-left:5px}.project-year,.writing-date{color:var(--muted);font-size:.95rem;flex-shrink:0}.project-left{display:flex;align-items:baseline}.more-to-come{color:var(--faint);font-style:italic;font-size:.95rem}.writing-signup{margin-bottom:25px;padding-bottom:18px;border-bottom:1px solid var(--rule)}.signup-label{display:block;font-size:.8rem;color:var(--faint);margin-bottom:6px}.signup-form{display:flex;gap:14px;align-items:baseline}.signup-form input[type=email]{flex:1;padding:4px 0;border:none;border-bottom:1px solid #ddd;background:transparent;font-family:inherit;font-size:.9rem;color:var(--text);outline:none;border-radius:0;-webkit-appearance:none;transition:border-color .2s ease}.signup-form input[type=email]::placeholder{color:#bbb}.signup-form input[type=email]:focus{border-bottom-color:var(--ink)}.signup-form button{padding:0;border:none;background:transparent;color:var(--muted);font-family:inherit;font-size:.9rem;cursor:pointer;text-decoration:underline;-webkit-appearance:none;transition:color .2s ease;white-space:nowrap}.signup-form button:hover{color:var(--ink)}.signup-form button:disabled{opacity:.5;cursor:default}.signup-status{display:block;font-size:.78rem;color:var(--faint);margin-top:6px;min-height:1.1em;font-style:italic}.signup-status.success{color:#5a8a6a;font-style:normal}.signup-status.error{color:#a06060;font-style:normal}.section-header{font-size:.9rem;color:var(--faint);margin-top:20px;margin-bottom:15px;font-weight:400}.section-header:first-child{margin-top:0}.footer{position:fixed;bottom:0;left:0;right:0;background-color:var(--paper);color:var(--faint);padding:15px 40px;font-size:.85rem;text-align:center;z-index:100}.time-separator{animation:pulse 5s steps(2,jump-none) infinite}@keyframes pulse{0%{opacity:1}40%{opacity:1}60%{opacity:0}to{opacity:1}}.link-preview{position:relative;display:inline}.link-preview-card{position:fixed;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:0;box-shadow:0 6px 24px #0000001f;width:320px;height:220px;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1100}.link-preview-card.show{opacity:1;pointer-events:auto}.link-preview-card iframe{width:960px;height:660px;border:none;transform:scale(.333);transform-origin:top left;pointer-events:none}.link-preview-url{display:block;padding:6px 10px;font-size:9px;font-family:monospace;color:#aaa;background:#f8f8f8;border-top:1px solid rgba(0,0,0,.06);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute;bottom:0;left:0;right:0}.token-widgets{display:grid;gap:18px;margin-top:min(374px,24vh);position:relative;z-index:200}.token-widget-link{display:inline-block;margin-bottom:6px;color:#888;font-size:.78rem;text-decoration:none}.token-widget-link:hover{color:var(--ink);text-decoration:underline}.token-widget{min-width:min(650px,100%);width:100%;opacity:0;transition:opacity .3s ease}.token-widget[data-force-oai-white=true]::part(promo-link){filter:invert(1) brightness(1.35)}@media(max-width:600px){.token-widget::part(promo-link){top:22px!important;right:24px!important;bottom:auto!important}}@media(max-width:600px){body{padding:40px 20px}.footer{position:static;margin:28px 0 0;padding:0}.header{flex-direction:column;gap:30px;align-items:center}.nav{gap:20px}.project-item,.writing-item{flex-direction:column;align-items:flex-start;gap:2px}.token-widgets{margin-top:min(320px,22vh)!important}.link-preview-card{display:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
