:root{--bg: #0d1117;--bg-soft: #161b22;--bg-elev: #1c2330;--border: #2a313c;--fg: #c9d1d9;--fg-dim: #8b949e;--accent: #2dd4bf;--accent-2: #7c93ff;--green: #56d364;--yellow: #e3b341;--red: #f47067;--radius: 10px;--mono: "JetBrains Mono", "Fira Code", ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;background-image:radial-gradient(800px 400px at 80% -10%,rgba(45,212,191,.06),transparent),radial-gradient(700px 400px at 0% 10%,rgba(124,147,255,.05),transparent);background-attachment:fixed}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--fg-dim)}.container{max-width:880px;margin:0 auto;padding:0 20px}.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 20px;max-width:880px;margin:0 auto;background:#0d1117cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.nav__brand{color:var(--fg);font-weight:700}.nav__brand:hover{color:var(--accent);text-decoration:none}.nav__links{display:flex;gap:18px;list-style:none;margin:0;padding:0}.nav__links a{color:var(--fg-dim)}.nav__links a:hover{color:var(--fg);text-decoration:none}.nav__dot{color:var(--accent);margin-right:1px}.prompt__user{color:var(--green)}.prompt__at,.prompt__path{color:var(--fg-dim)}.prompt__host{color:var(--accent-2)}.line{margin:0 0 2px}.hero{padding:48px 0 24px}.window{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);overflow:hidden;box-shadow:0 24px 60px -30px #000c}.window__bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-elev);border-bottom:1px solid var(--border)}.window__btn{width:12px;height:12px;border-radius:50%;display:inline-block}.window__btn--red{background:var(--red)}.window__btn--yellow{background:var(--yellow)}.window__btn--green{background:var(--green)}.window__title{margin-left:8px;color:var(--fg-dim);font-size:12px}.window__body{padding:22px 22px 26px}.hero__name{font-size:clamp(28px,6vw,44px);margin:6px 0 0;color:var(--fg);letter-spacing:-.5px}.hero__role{margin:2px 0 18px;color:var(--accent);font-size:16px}.hero__tagline{margin:4px 0 18px;max-width:60ch}.hero__cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.btn{display:inline-block;padding:8px 14px;border:1px solid var(--border);border-radius:8px;color:var(--fg);background:var(--bg-elev);transition:border-color .15s,transform .05s,color .15s}.btn:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.btn:active{transform:translateY(1px)}.btn--primary{border-color:var(--accent);color:var(--accent)}.section{padding:40px 0;border-top:1px solid var(--border)}.section__title{font-size:18px;margin:0 0 20px;color:var(--fg);font-weight:600}.prose{max-width:68ch}.prose p{margin:0 0 12px}.exp{list-style:none;margin:22px 0 0;padding:0}.exp__item{padding:12px 0;border-top:1px dashed var(--border)}.exp__head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}.exp__role{color:var(--fg);font-weight:600}.exp__period{margin-left:auto;color:var(--fg-dim);font-size:13px}.exp__notes{margin:4px 0 0}.skills{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.skills__heading{margin:0 0 10px;color:var(--accent-2);font-size:14px;text-transform:lowercase}.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.tag{padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-soft);font-size:13px;color:var(--fg)}.tag--sm{font-size:12px;padding:3px 8px}.tags--sm{margin-top:12px}.projects{display:grid;gap:16px}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);padding:18px;transition:border-color .15s,transform .1s}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.card__name{margin:0;font-size:16px;color:var(--fg)}.card__links{display:flex;gap:14px;font-size:13px}.card__blurb{margin:10px 0 0;color:var(--fg);max-width:64ch}.card__highlights{margin:12px 0 0;padding:0;list-style:none;max-width:66ch}.card__highlights li{position:relative;padding-left:18px;margin:6px 0;color:var(--fg-dim);font-size:13px}.card__highlights li:before{content:"→";position:absolute;left:0;color:var(--accent)}.contact{list-style:none;margin:18px 0 0;padding:0}.contact__row{padding:6px 0}.contact__key{display:inline-block;white-space:pre}.footer{max-width:880px;margin:0 auto;padding:28px 20px 40px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);font-size:13px}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@keyframes bootIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.cursor{display:inline-block;width:8px;height:1.05em;margin-left:3px;vertical-align:-2px;background:var(--accent);animation:blink 1.05s steps(1) infinite}.boot-out{animation:bootIn .32s ease-out both}.hero__loc{margin:4px 0 18px;color:var(--fg-dim)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease-out,transform .55s ease-out}.reveal--in{opacity:1;transform:translateY(0)}.reveal .card,.reveal .skills__group{opacity:0;transform:translateY(12px);transition:opacity .5s ease-out,transform .5s ease-out}.reveal--in .card,.reveal--in .skills__group{opacity:1;transform:translateY(0)}.reveal--in .card:nth-child(2),.reveal--in .skills__group:nth-child(2){transition-delay:.07s}.reveal--in .card:nth-child(3),.reveal--in .skills__group:nth-child(3){transition-delay:.14s}.reveal--in .card:nth-child(4),.reveal--in .skills__group:nth-child(4){transition-delay:.21s}.reveal--in .card:nth-child(n+5){transition-delay:.28s}@media(prefers-reduced-motion:reduce){.cursor,.boot-out{animation:none}.reveal,.reveal .card,.reveal .skills__group{opacity:1;transform:none;transition:none}}@media(max-width:600px){.skills{grid-template-columns:1fr}.nav__links{gap:12px;font-size:13px}.exp__period{margin-left:0}}.blog{min-height:100vh;background:var(--b-bg);color:var(--b-fg);font-family:var(--b-font-body);font-size:18px;line-height:1.7;transition:background-color .7s ease,color .7s ease}.blog[data-vibe=tech]{--b-bg: #0a0e16;--b-fg: #d7e3f4;--b-muted: #6b7c93;--b-accent: #38bdf8;--b-accent-2: #818cf8;--b-card: #11161f;--b-card-hover: #141b26;--b-border: #1d2632;--b-font-head: ui-monospace, "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--b-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, sans-serif;--b-radius: 10px;background-image:radial-gradient(900px 500px at 85% -10%,rgba(56,189,248,.1),transparent),radial-gradient(700px 500px at 0% 0%,rgba(129,140,248,.08),transparent),linear-gradient(rgba(56,189,248,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.035) 1px,transparent 1px);background-size:auto,auto,44px 44px,44px 44px;background-attachment:fixed}.blog[data-vibe=philosophy]{--b-bg: #f4eee2;--b-fg: #2d2620;--b-muted: #8c8071;--b-accent: #b4541f;--b-accent-2: #9a7b3f;--b-card: #fbf7ee;--b-card-hover: #fffdf7;--b-border: #e2d8c6;--b-font-head: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--b-font-body: Georgia, "Times New Roman", "Iowan Old Style", serif;--b-radius: 4px;background-image:radial-gradient(800px 600px at 80% -5%,rgba(180,84,31,.08),transparent),radial-gradient(700px 500px at 0% 10%,rgba(154,123,63,.07),transparent);background-attachment:fixed}.blog a{color:var(--b-accent);text-decoration:none}.blog a:hover{text-decoration:underline}.blog .b-muted{color:var(--b-muted)}.blog__wrap{max-width:760px;margin:0 auto;padding:0 24px}.blog__header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;max-width:760px;margin:0 auto;padding:22px 24px}.blog__back{color:var(--b-muted)!important;font-family:var(--b-font-body);font-size:14px}.blog__back:hover{color:var(--b-accent)!important;text-decoration:none}.blog__wordmark{font-family:var(--b-font-head);font-weight:600;letter-spacing:.02em;color:var(--b-fg)}.blog[data-vibe=tech] .blog__wordmark:before{content:"./";color:var(--b-accent)}.blog[data-vibe=philosophy] .blog__wordmark{font-style:italic;letter-spacing:0}.vibe-chips{display:inline-flex;align-items:center;gap:6px;padding:4px;background:var(--b-card);border:1px solid var(--b-border);border-radius:999px;box-shadow:0 2px 8px #0000000f;transition:border-color .4s ease,background-color .4s ease}.vibe-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--b-muted);font-family:var(--b-font-head);font-size:13px;font-weight:500;cursor:pointer;outline:none;transition:all .25s cubic-bezier(.16,1,.3,1);position:relative;-webkit-user-select:none;user-select:none}.vibe-chip:hover{color:var(--b-fg);background:#ffffff0a}.blog[data-vibe=philosophy] .vibe-chip:hover{background:#00000008}.vibe-chip__dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.4;transition:transform .3s ease,opacity .3s ease,background-color .3s ease}.vibe-chip__label{letter-spacing:.02em}.vibe-chip__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:600;background:#78787824;color:var(--b-muted);transition:all .3s ease}.vibe-chip--active{background:var(--b-bg);color:var(--b-fg);border-color:var(--b-accent);box-shadow:0 2px 8px #00000026}.blog[data-vibe=tech] .vibe-chip--active{background:#38bdf81f;color:#fff;border-color:var(--b-accent);box-shadow:0 0 14px #38bdf840}.blog[data-vibe=philosophy] .vibe-chip--active{background:#fbf7ee;color:var(--b-accent);border-color:var(--b-accent);box-shadow:0 2px 10px #b4541f24}.vibe-chip--active .vibe-chip__dot{opacity:1;background:var(--b-accent);transform:scale(1.35);box-shadow:0 0 6px var(--b-accent)}.vibe-chip--active .vibe-chip__count{background:var(--b-accent);color:#0a0e16}.blog[data-vibe=philosophy] .vibe-chip--active .vibe-chip__count{background:var(--b-accent);color:#fff}.vibe-chip:active{transform:scale(.96)}.blog__hero{padding:30px 0 18px}.blog__kicker{font-family:var(--b-font-head);text-transform:uppercase;letter-spacing:.22em;font-size:12px;color:var(--b-accent);margin:0 0 14px}.blog[data-vibe=philosophy] .blog__kicker{text-transform:none;letter-spacing:.04em;font-style:italic}.blog__headline{font-family:var(--b-font-head);font-weight:600;font-size:clamp(30px,6vw,50px);line-height:1.12;letter-spacing:-.01em;margin:0 0 18px;color:var(--b-fg);max-width:18ch}.blog[data-vibe=philosophy] .blog__headline{font-weight:500;letter-spacing:0}.blog__blurb{font-size:18px;color:var(--b-muted);max-width:56ch;margin:0 0 30px}.blog__fade{animation:blogFade .55s ease both}@keyframes blogFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.blog__list{display:grid;gap:16px;padding-bottom:40px}.post-card{display:flex;align-items:stretch;gap:0;padding:24px 28px;border-radius:var(--b-radius);border:1px solid var(--b-border);background:var(--b-card);color:inherit!important;text-decoration:none!important;transition:all .35s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.post-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;opacity:0;transition:opacity .35s ease;pointer-events:none}.blog[data-vibe=tech] .post-card:before{background:linear-gradient(135deg,#38bdf80f,#818cf80a)}.blog[data-vibe=philosophy] .post-card:before{background:linear-gradient(135deg,#b4541f0a,#9a7b3f08)}.post-card:hover{border-color:var(--b-accent);transform:translateY(-2px)}.blog[data-vibe=tech] .post-card:hover{box-shadow:0 8px 30px #00000040,0 0 20px #38bdf814}.blog[data-vibe=philosophy] .post-card:hover{box-shadow:0 8px 24px #0000000f,0 0 0 1px #b4541f14;background:var(--b-card-hover)}.post-card:hover:before{opacity:1}.post-card__body{flex:1;min-width:0}.post-card__title{font-family:var(--b-font-head);font-size:clamp(18px,2.8vw,24px);font-weight:600;margin:0 0 8px;color:var(--b-fg);line-height:1.3;transition:color .25s ease}.blog[data-vibe=philosophy] .post-card__title{font-weight:500}.post-card:hover .post-card__title{color:var(--b-accent)}.post-card__meta{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:13px;font-family:var(--b-font-head);color:var(--b-muted)}.post-card__sep{opacity:.4}.post-card__summary{margin:0 0 16px;color:var(--b-muted);font-size:15px;line-height:1.6;max-width:56ch}.post-card__foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.post-card__action{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;margin-left:16px;border-left:1px solid var(--b-border);padding-left:16px;transition:border-color .35s ease}.post-card:hover .post-card__action{border-color:var(--b-accent)}.post-card__arrow{font-size:20px;color:var(--b-muted);transition:all .3s cubic-bezier(.16,1,.3,1)}.post-card:hover .post-card__arrow{color:var(--b-accent);transform:translate(4px)}.post-card{animation:postCardIn .5s ease both}.post-card:nth-child(2){animation-delay:.06s}.post-card:nth-child(3){animation-delay:.12s}.post-card:nth-child(4){animation-delay:.18s}.post-card:nth-child(5){animation-delay:.24s}@keyframes postCardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.b-tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.b-tag{font-family:var(--b-font-head);font-size:11px;padding:3px 10px;border:1px solid var(--b-border);border-radius:999px;color:var(--b-muted);background:transparent;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.post-card:hover .b-tag{border-color:color-mix(in srgb,var(--b-accent) 30%,transparent);color:var(--b-fg)}.blog[data-vibe=philosophy] .b-tag{border-radius:4px;font-style:italic}.article{padding:8px 0 60px;animation:blogFade .5s ease both}.article__back{display:inline-block;margin-bottom:26px;font-family:var(--b-font-head);font-size:14px;color:var(--b-muted)!important}.article__back:hover{color:var(--b-accent)!important;text-decoration:none}.article__kicker{font-family:var(--b-font-head);text-transform:uppercase;letter-spacing:.2em;font-size:12px;color:var(--b-accent);margin:0 0 12px}.blog[data-vibe=philosophy] .article__kicker{text-transform:none;letter-spacing:.04em;font-style:italic}.article__title{font-family:var(--b-font-head);font-weight:600;font-size:clamp(28px,5.5vw,46px);line-height:1.15;letter-spacing:-.01em;margin:0 0 16px;color:var(--b-fg)}.blog[data-vibe=philosophy] .article__title{font-weight:500;letter-spacing:0}.article__meta{color:var(--b-muted);font-size:14px;font-family:var(--b-font-head);margin:0 0 16px}.article__tags{margin-bottom:36px}.article__body p{margin:0 0 22px}.article__body{font-size:19px}.blog[data-vibe=philosophy] .article__body{font-size:20px;line-height:1.78}.article__h{font-family:var(--b-font-head);font-size:22px;font-weight:600;margin:40px 0 14px;color:var(--b-fg)}.blog[data-vibe=philosophy] .article__h{font-weight:500;font-style:italic}.article__quote{margin:30px 0;padding:6px 0 6px 24px;border-left:3px solid var(--b-accent);font-size:22px;line-height:1.5;color:var(--b-fg)}.blog[data-vibe=philosophy] .article__quote{font-style:italic;font-size:24px}.blog[data-vibe=tech] .article__quote{font-family:var(--b-font-head);font-size:19px}.article__list{margin:0 0 22px;padding:0;list-style:none}.article__list li{position:relative;padding-left:26px;margin:10px 0;color:var(--b-fg)}.article__list li:before{content:"";position:absolute;left:4px;top:.7em;width:8px;height:8px;border-radius:2px;background:var(--b-accent)}.blog[data-vibe=philosophy] .article__list li:before{content:"—";background:none;top:0;left:0;width:auto;height:auto;color:var(--b-accent)}.article__code{margin:0 0 24px;padding:18px 20px;background:var(--b-card);border:1px solid var(--b-border);border-radius:var(--b-radius);overflow-x:auto;font-family:ui-monospace,JetBrains Mono,Fira Code,monospace;font-size:14px;line-height:1.6;color:var(--b-fg)}.blog[data-vibe=philosophy] .article__code{background:#efe7d7}.article__divider{margin:44px 0 0;border:0;border-top:1px solid var(--b-border)}.blog__footer{max-width:760px;margin:0 auto;padding:26px 24px 48px;border-top:1px solid var(--b-border);color:var(--b-muted);font-size:14px;font-family:var(--b-font-head);transition:border-color .7s ease}@media(max-width:600px){.blog{font-size:17px}.vibe-chip{min-width:0;padding:5px 10px;font-size:12px}.vibe-chip__count{min-width:18px;height:18px;font-size:10px}.post-card{padding:18px 20px}.post-card__action{width:36px;margin-left:10px;padding-left:10px}.post-card__arrow{font-size:16px}}@media(prefers-reduced-motion:reduce){.blog,.vibe-chips,.vibe-chip,.post-card,.b-tag,.blog__footer{transition:none}.blog__fade,.article,.post-card{animation:none}}
