:root{--ink: #393e41;--ink-light: #3a3a3c;--ink-faint: #52525a;--ink-ghost: #88888f;--paper: #eff2f0;--border: #c8c8cc;--rule: rgba(57,62,65,.1);--accent: #e94f37;--green: #2d6a4f;--font-mono: "DM Mono", monospace;--font-serif: "Spectral", serif;--font-body: "Source Serif 4", serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);min-height:100vh}strong{font-weight:700}a{color:var(--accent)}a:hover{opacity:.75}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle,rgba(57,62,65,.11) 1px,transparent 1px);background-size:22px 22px}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");opacity:.3}.form-block{display:flex;flex-direction:column;gap:0;min-width:200px}.form-field{display:grid;grid-template-columns:60px 1fr;align-items:baseline;gap:0 12px;margin-bottom:12px;border-bottom:1px solid var(--ink-faint)}.form-field:last-child{margin-bottom:0}.form-field-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-ghost);padding-top:2px}.form-field-value{font-family:var(--font-serif);font-size:15px;font-weight:300;color:var(--ink);letter-spacing:.01em}.footer{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:24px 40px 48px;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:center;gap:8px}.footer-meta,.footer-sep,.footer-link{font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ink-ghost)}.footer-sep{opacity:.5;letter-spacing:0}.footer-link{text-decoration:none;color:var(--accent)}.footer-link:hover{color:var(--accent)}.main{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:56px 40px 100px}.header{margin-bottom:52px;display:grid;grid-template-columns:1fr auto;gap:0 48px;align-items:end}.header-left{display:flex;flex-direction:column}.header h1{font-family:var(--font-serif);font-size:clamp(26px,3.83vw,44px);font-weight:300;line-height:1.2;color:var(--ink);letter-spacing:.01em;margin-bottom:0}.header-title-sub{display:block;font-size:20px;color:var(--ink-light)}.header-indicator{margin-bottom:8px}.pulse-wrap{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 2.2s ease-in-out infinite}.section-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:4px}.section-label:before{content:"— ";color:var(--accent)}.projects-section{margin-bottom:44px}.breadcrumb{margin-bottom:48px}.breadcrumb a{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--ink-faint);text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.project-header{margin-bottom:40px}.project-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:6px}.project-title{font-family:var(--font-serif);font-size:clamp(28px,4vw,42px);font-weight:300;line-height:1.1;color:var(--ink);letter-spacing:.01em}.project-status{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);white-space:nowrap;display:flex;align-items:center;gap:6px}.project-desc{font-family:var(--font-body);font-size:16px;line-height:1.5;color:var(--ink-light)}.project-live-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--accent);text-decoration:none;margin-top:16px}.project-live-link:hover{text-decoration:underline}.project-live-note{display:inline-block;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ink-ghost);margin-top:16px}.meta-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0;margin:32px 0;display:grid;grid-template-columns:repeat(4,auto) 1fr;gap:0 40px;align-items:start}.meta-item{display:flex;flex-direction:column;gap:4px}.meta-label,.meta-spark-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-ghost)}.meta-value{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);letter-spacing:.04em}.meta-spark{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.tech-tags{display:flex;flex-wrap:wrap;gap:8px}.tech-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--ink-faint);padding:3px 10px;border:1px solid var(--border)}.project-cta{background:#1c1c1e;padding:40px 48px;margin-top:40px;margin-bottom:52px}.project-cta .cta-title{font-family:var(--font-serif);font-size:22px;font-weight:300;color:var(--paper);letter-spacing:.01em;line-height:1.2;margin-bottom:12px}.project-cta .cta-text{font-family:var(--font-body);font-size:15px;line-height:1.7;color:#eff2f0a6;margin-bottom:20px;max-width:560px}.project-cta .cta-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--accent);text-decoration:none}.calendly-cta{margin-top:24px;padding:14px 20px;border-left:2px solid var(--accent);background:#e94f3712;color:var(--accent);font-family:var(--font-serif);font-size:17px;font-style:italic;font-weight:300;line-height:1.6;display:inline-block}.project-media{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:24px 0}.project-media img{width:100%;border-radius:4px;display:block;cursor:zoom-in}.project-media figure{margin:0}.project-media figcaption,.project-media figcaption p{text-align:center;font-size:.78rem;color:var(--ink-ghost);font-family:var(--font-mono);line-height:1.4}.project-media-video{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;margin:24px 0;border:1px solid var(--border);border-radius:4px}.project-media-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.lb-overlay{display:none;position:fixed;inset:0;z-index:1000;background:#393e41eb;align-items:center;justify-content:center;cursor:zoom-out}.lb-overlay.open{display:flex}.lb-overlay img{max-width:90vw;max-height:90vh;border-radius:4px;object-fit:contain}.project-body{margin-top:8px}.project-body h2{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:48px 0 16px;padding-bottom:10px;border-bottom:1px solid var(--rule)}.project-body p,.project-body li{font-family:var(--font-body);font-size:15px;line-height:1.75;color:var(--ink-light);max-width:720px}.project-body p+p{margin-top:12px}.project-body ul{padding-left:20px;display:flex;flex-direction:column;gap:4px;margin:20px 0}.project-body ul li:has(>input[type=checkbox]){list-style:none;margin-left:-20px}.project-body p+ul{margin-top:8px}.project-body blockquote{border-left:2px solid var(--accent);margin:0;padding-left:16px;color:var(--ink-light);font-style:italic;max-width:720px}.project-body .pull-quote{border-left:2px solid var(--accent);padding-left:16px}.project-body .pull-quote blockquote{border-left:none;padding-left:0}.project-body cite{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-ghost);font-style:normal;margin-top:8px}.register,#notes-list{animation:fadeUp .5s ease .15s both}.cols,.register-row{display:grid;gap:0 20px;align-items:center}.register--active .cols,.register--active .register-row,.register--archive .cols,.register--archive .register-row{grid-template-columns:32px 1fr 200px 90px}.cols{margin-top:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.cols span{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);text-align:left}.register-row{padding:18px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit;transition:background .1s}a.register-row{cursor:pointer;opacity:1}a.register-row:hover{opacity:1}a.register-row:hover{background:#393e4106}a.register-row:hover .row-name{color:var(--accent)}.row-num{font-family:var(--font-mono);font-size:12px;color:var(--ink-ghost);letter-spacing:.04em}.row-cell{display:flex;flex-direction:column;gap:3px}.row-name{font-family:var(--font-serif);font-size:18px;font-weight:600;color:var(--ink);transition:color .1s;line-height:1.2}.row-name-link-indicator{font-family:var(--font-mono);font-size:16px;color:var(--accent);margin-left:6px;font-weight:300;vertical-align:middle;display:inline-block;transition:transform .15s ease}a.register-row:hover .row-name-link-indicator{transform:translate(4px)}.row-desc{font-family:var(--font-mono);font-size:12px;color:var(--ink-light);letter-spacing:.04em;line-height:1.4}.row-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.row-audience,.row-type{font-family:var(--font-mono);font-size:12px;color:var(--ink-light);letter-spacing:.04em;min-width:0;text-decoration:none}.row-spark{display:flex;justify-content:flex-start;align-items:center}.pill{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:3px 10px;border:1px solid;display:inline-block;white-space:nowrap}.pill-live{color:#2d6a4f;background:#eaf3ee;border-color:#2d6a4f}.pill-paused{color:#6e6e73;background:#f5f5f7;border-color:#6e6e73}.pill-retired{color:#3a3a3c;background:#f5f5f7;border-color:#3a3a3c}.register-row--retired{opacity:.5}.tabs{display:flex;margin-top:2px;margin-bottom:24px;border-bottom:1px solid var(--border)}.tab{font-family:var(--font-mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);background:none;border:none;text-decoration:none;padding:0 0 12px;margin-right:32px;cursor:pointer;position:relative;transition:color .15s}.tab:hover,.tab.active{color:var(--ink-light)}.tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ink)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.filter-bar{display:flex;gap:20px;align-items:center;margin-bottom:20px}.filter-item{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--ink-ghost);cursor:pointer;user-select:none}.filter-item input[type=checkbox]{appearance:none;-webkit-appearance:none;width:13px;height:13px;border:1px solid var(--border);background:transparent;cursor:pointer;flex-shrink:0}.filter-item input[type=checkbox]:checked{border-color:var(--ink-ghost);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='%2388888f' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:10px 10px}.rss-link{margin-left:auto;display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-ghost);text-decoration:none}.rss-link:hover{color:var(--accent)}.note-lesson-title{font-family:var(--font-serif);font-size:18px;font-weight:400;line-height:1.2;color:var(--ink)}.note--resolved{opacity:.45}.note{display:grid;grid-template-columns:140px 1fr;gap:0 40px;padding:36px 0;border-bottom:1px solid var(--rule);align-items:start}.filter-bar~#notes-list .note:first-of-type{border-top:1px solid var(--rule)}.note-left{display:flex;flex-direction:column;gap:6px;padding-top:3px}.note-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-ghost);letter-spacing:.04em;text-decoration:none}.note-type-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--ink-ghost)}.note-type-tag--draft{color:var(--accent);opacity:.6}.note-date:hover{color:var(--accent)}.note-body{display:flex;flex-direction:column;gap:16px}.note-text{font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--ink-light)}.note-text p+p{margin-top:1em}.note-link-block{border-left:2px solid var(--accent);padding-left:12px;display:flex;flex-direction:column;gap:6px}.note-quote{font-family:var(--font-body);font-size:14px;line-height:1.55;color:var(--ink);& p{margin:0}& p+p{margin-top:1em}}.note-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;color:var(--accent);text-decoration:none}.note-link:hover{text-decoration:underline}.content{max-width:620px;animation:fadeUp .5s ease .15s both}.content h1{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:48px 0 16px;padding-bottom:10px;border-bottom:1px solid var(--rule)}.content h1:first-child{margin-top:0}.content h2{font-family:var(--font-serif);font-size:18px;font-weight:400;color:var(--ink);line-height:1.2;margin-top:40px;margin-bottom:16px}.content h2:first-child{margin-top:0}.content p{font-family:var(--font-body);font-size:15px;line-height:1.75;color:var(--ink-light);margin-bottom:12px}.content p:last-child{margin-bottom:0}.content ul{list-style:none;display:flex;flex-direction:column;gap:8px}.content li{font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--ink-light);position:relative;padding-left:20px}.content li:before{content:"—";font-family:var(--font-mono);font-size:12px;color:var(--ink-ghost);position:absolute;left:0;top:4px}.content a{color:var(--accent);text-decoration:none}.content a:hover{text-decoration:underline}.note-media{margin-top:4px}.note-media img{max-width:100%;height:auto;display:block;border:1px solid var(--border)}.note-youtube{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.note-youtube iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.idea-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:14px}.idea-card{padding:20px;border:1px dashed var(--border);display:flex;flex-direction:column;gap:6px}.idea-card-title{font-family:var(--font-serif);font-size:17px;font-weight:400;color:var(--ink);line-height:1.2}.idea-card-desc{font-family:var(--font-mono);font-size:12px;color:var(--ink-ghost);letter-spacing:.03em;line-height:1.5}@media(max-width:640px){.main{padding:32px 20px 60px}.footer{padding:20px 20px 32px;display:block}.footer-meta,.footer-sep,.footer-link{display:inline}.header{margin-bottom:36px;grid-template-columns:1fr;align-items:start}.form-block{margin-top:24px}.tab{margin-right:20px;font-size:11px}.cols,.rss-link{display:none}.register--active .register-row,.register--archive .register-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 0}.row-spark{display:none}.row-meta{display:flex;flex-direction:row;gap:0}.row-type:before{content:" · ";color:var(--ink-ghost)}.note{display:flex;flex-direction:column;gap:16px}.note-body{order:1}.note-left{order:2;flex-direction:row;align-items:center;gap:12px;padding-top:0}.project-title-row{flex-direction:column;align-items:flex-start;gap:8px}.meta-strip{grid-template-columns:1fr 1fr;gap:20px 24px}.meta-spark{grid-column:1 / -1;align-items:flex-start}.project-media{grid-template-columns:1fr}}
