:root{--bg: #e9e9e9;--card: #ffffff;--card-soft: #f3f3f3;--ink: #161616;--ink-soft: #9a9a9a;--accent: #206a5d;--line: #1c1c1c;--radius: 5px;--radius-sm: 0;--gap: 12px;--bar-h: 60px;--font: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:16px;line-height:1.4;letter-spacing:0;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}svg{display:block}.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.bar,.card,.section,.hero,.apps-grid>.app,.now-card{border:1px solid var(--line);box-shadow:#0006 0 2px 4px,#0000004d 0 7px 13px -3px,#0003 0 -3px inset}.app[data-view]{padding:var(--gap);display:grid;gap:var(--gap);min-height:100vh}.bar{background:var(--card);height:var(--bar-h);display:flex;align-items:center;padding:0 14px;gap:10px}.bar--apps{font-weight:500;font-size:15px}.apps-mark{display:grid;place-items:center;width:30px;height:30px}.brand{width:40px;height:40px;display:grid;place-items:center;color:var(--ink);flex-shrink:0}.brand:hover{background:var(--card-soft)}.tabset{display:flex;gap:8px;margin-left:auto}.tab{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1.5px solid var(--line);background:transparent;color:var(--ink);font-weight:500;font-size:15px;white-space:nowrap;cursor:pointer;user-select:none;transition:background .15s ease,color .15s ease}.tab:hover{background:#e3e3e3}.tab .ico{position:relative;width:13px;height:13px;flex-shrink:0}.tab .ico:before,.tab .ico:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:currentColor;border-radius:2px}.tab .ico:before{width:13px;height:2px}.tab .ico:after{width:2px;height:13px;transition:transform .2s ease,opacity .2s ease}.app:has(#view-info:checked) .tab[for=view-info] .ico:after,.app:has(#view-contact:checked) .tab[for=view-contact] .ico:after{transform:translate(-50%,-50%) scaleY(0);opacity:0}.app:has(#view-info:checked) .tab[for=view-info],.app:has(#view-contact:checked) .tab[for=view-contact]{background:var(--accent);color:#fff;border-color:var(--line)}.panels{display:contents}.panel{min-width:0}.card{background:var(--card);border-radius:var(--radius);padding:22px}.card--profile,.card--foot,.card--more{position:relative}.card--profile:before,.card--foot:before,.card--more:before{position:absolute;top:0;left:18px;transform:translateY(-50%);background:var(--bg);padding:0 8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.card--profile:before{content:"[ info ]"}.card--foot:before{content:"[ contact ]"}.card--more:before{content:"[ about ]"}.panel--info{display:flex;flex-direction:column;gap:var(--gap)}.card--profile{padding-bottom:26px}.profile-top{display:flex;align-items:center;gap:18px;margin-bottom:28px}.avatar{width:84px;height:84px;flex-shrink:0;display:grid;place-items:center;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:13px/1.18 var(--font);white-space:pre;text-align:center}.avatar:before{content:".----.\a|o  o|\a| <> |\a'----'"}.clock{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:500}.clock:before{content:"[ "}.clock:after{content:" ]"}.bio{font-size:clamp(18px,1.4vw,22px);line-height:1.45;max-width:38ch}.card--foot{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}.email{display:inline-flex;align-items:center;gap:10px;padding:9px 16px;border:1.5px solid var(--accent);color:var(--ink);font-weight:500;transition:background .15s ease}.email:before{content:"> ";color:var(--accent)}.email:hover{background:#206a5d14}.email svg{color:var(--accent)}.socials{display:flex;gap:8px}.soc{width:34px;height:34px;display:grid;place-items:center;border:1.5px solid var(--line);background:transparent;color:var(--ink);font-size:14px;transition:color .15s,background .15s}.soc:hover{background:var(--accent);color:#fff}.card--more{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}.more-pill{display:inline-flex;align-items:center;padding:9px 16px;border:1.5px solid var(--accent);color:var(--ink);font-weight:500}.more-pill:before{content:"> ";color:var(--accent)}.card--more .app-arrow{position:static;color:var(--ink-soft)}.card--more:hover .more-pill{background:#206a5d14}.card--more:hover .app-arrow{color:var(--ink)}.panel--contact{display:flex}.card--contact{width:100%;display:flex;flex-direction:column;gap:18px;padding:30px}.contact-kicker{color:var(--accent);font-weight:600}.contact-head{font-size:clamp(26px,3vw,40px);font-weight:600;line-height:1.1;max-width:16ch}.email--lg{align-self:flex-start;font-size:17px;padding:12px 20px}.contact-links{list-style:none;display:flex;flex-direction:column;gap:2px;margin-top:6px}.contact-links a{display:flex;justify-content:space-between;padding:14px 4px;border-top:1px solid #ececec;font-size:18px;font-weight:500}.contact-links li:last-child a{border-bottom:1px solid #ececec}.contact-links a span{color:var(--ink-soft)}.contact-links a:hover{color:var(--accent)}.contact-foot{color:var(--ink-soft);font-size:14px;margin-top:auto}.apps-grid{display:grid;gap:var(--gap);grid-template-columns:1fr 1fr;grid-template-areas:"projects blog" "business business" "current  current";grid-template-rows:1fr 1.25fr 1fr;height:100%}.app--projects{grid-area:projects}.app--blog{grid-area:blog}.app--business{grid-area:business}.app--current{grid-area:current}.apps-grid>.app{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:22px;min-height:150px;overflow:hidden;background:var(--card);border-radius:var(--radius);transition:transform .12s ease,box-shadow .12s ease}.apps-grid>.app:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--line)}.apps-grid>.app:hover .app-arrow{transform:translate(2px,-2px);color:var(--ink)}.app-ico{width:54px;height:54px;flex-shrink:0;display:grid;place-items:center;border:1.5px solid var(--line);background:transparent;color:var(--ink);font-weight:700}.app-ico svg{display:none}.app-ico:before{font-size:22px;line-height:1}.app-ico--projects:before{content:"#"}.app-ico--blog:before{content:"¶"}.app-ico--about:before{content:"@"}.app-ico--current:before{content:"*"}.app-meta{display:flex;flex-direction:column;gap:3px}.app-eyebrow{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.app-title{font-size:21px;font-weight:600}.app-title:before{content:"> ";color:var(--accent)}.app-sub{color:var(--ink-soft);font-size:15px}.app-eyebrow:before,.hero-eyebrow:before{content:"// "}.app-arrow{position:absolute;top:20px;right:22px;font-size:0;color:var(--ink-soft);transition:transform .18s ease,color .18s ease}.app-arrow:before{content:"->";font-size:16px;letter-spacing:-1px}.apps-grid>.app--feature{background:#0a0a0a;color:#fff;justify-content:flex-end}.app--feature .app-sub{color:#fff9}.app--feature .app-arrow{color:#ffffff8c}.app--feature:hover .app-arrow{color:#fff}.app--feature:before{content:"[ $ ]";position:absolute;top:20px;left:22px;color:var(--accent);font-weight:700}.feature-mark{display:none}.page-shell{padding:var(--gap);min-height:100vh;display:flex;flex-direction:column;gap:var(--gap)}.page-wrap{width:100%;max-width:920px;margin:0 auto;display:flex;flex-direction:column;gap:var(--gap)}.back{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1.5px solid var(--line);background:var(--card-soft);font-weight:500;font-size:15px}.back:hover{background:#e3e3e3}.hero{background:var(--card);border-radius:var(--radius);padding:38px;display:flex;flex-direction:column;gap:16px}.hero .app-ico{width:64px;height:64px}.hero-eyebrow{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.hero h1{font-size:clamp(30px,4.4vw,48px);font-weight:600;line-height:1.05}.hero p{color:var(--ink-soft);font-size:18px;line-height:1.5;max-width:48ch}.hero--business{background:#0a0a0a;color:#fff}.hero--business .hero-eyebrow{color:#fff;opacity:.55}.hero--business p{color:#fff9}.section{background:var(--card);border-radius:var(--radius);padding:30px}.section>h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:4px}.section>h2:before{content:"// "}.entry{display:flex;gap:20px;padding:22px 0;border-top:1px solid #ececec;align-items:flex-start}.entry:first-of-type{border-top:none;padding-top:8px}.entry[hidden]{display:none}.entry-thumb{width:88px;height:88px;flex-shrink:0;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:repeating-linear-gradient(45deg,#e2e2e2,#e2e2e2 3px,#f2f2f2 3px 6px)}.entry-body{flex:1;min-width:0}.entry-top{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.entry-body h3{font-size:19px;font-weight:600}.entry-date{color:var(--ink-soft);font-size:14px;white-space:nowrap}.entry-body p{color:var(--ink-soft);font-size:15.5px;line-height:1.5;margin-top:6px}.tag{display:inline-block;margin-top:10px;padding:4px 10px;font-size:12px;font-weight:600;color:var(--accent);background:#206a5d1a}.filters{display:flex;align-items:center;gap:10px;margin-bottom:20px}.filter-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.filter-select{font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;padding:9px 36px 9px 14px;border-radius:var(--radius);box-shadow:#0000001f 0 1px 3px,#0000003d 0 1px 2px;-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 13px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.filter-select:hover{color:var(--accent)}.filter-select:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.cat-chip{display:inline-block;padding:3px 9px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#206a5d1a}.cat-chip--stamped{color:#fff;background:var(--accent)}.filter-empty{color:var(--ink-soft);font-size:15px;padding:8px 0}.proof{margin-top:28px;padding:14px 16px;border:1px solid var(--accent);background:#206a5d0f;color:var(--ink)}.proof-head{display:flex;align-items:center;gap:8px}.proof-head strong{font-size:14px}.proof-lock{font-size:18px;line-height:1;flex-shrink:0}.proof-blurb{color:var(--ink-soft);font-size:13.5px;margin:6px 0 12px}.proof-list{list-style:none;display:flex;flex-direction:column;gap:10px}.proof-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding-top:10px;border-top:1px solid rgba(32,106,93,.2)}.proof-list li:first-child{border-top:none;padding-top:0}.proof-when{font-weight:600;font-size:13.5px}.proof-tag{margin-left:6px;padding:1px 7px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--accent)}.proof-list a{color:var(--accent);font-size:13.5px;font-weight:600}.proof-list a:hover{text-decoration:underline}.proof-list code{flex-basis:100%;font-size:11px;color:var(--ink-soft);word-break:break-all}.timeline{list-style:none}.timeline li{display:flex;gap:18px;padding:14px 0;border-top:1px solid #ececec}.timeline li:first-child{border-top:none}.timeline .yr{width:90px;flex-shrink:0;color:var(--ink-soft);font-variant-numeric:tabular-nums;font-weight:500}.timeline .role{font-weight:500}.timeline .role span{color:var(--ink-soft);font-weight:400}.now-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}.now-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:22px;min-height:120px;background:var(--card)}.now-cat{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.now-cat:before{content:"// "}.now-card h3{font-size:19px;font-weight:600}.now-card p{color:var(--ink-soft);font-size:14.5px;line-height:1.5}a.now-card{transition:transform .12s ease,box-shadow .12s ease}a.now-card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--line)}a.now-card:hover .app-arrow{transform:translate(2px,-2px);color:var(--ink)}.prose{color:var(--ink);font-size:17px;line-height:1.6;max-width:62ch}.prose>*+*{margin-top:1em}.prose h2{font-size:20px;font-weight:600;margin-top:1.4em;text-transform:none;color:var(--ink)}.prose h3{font-size:18px;font-weight:600;margin-top:1.2em}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.prose ul,.prose ol{padding-left:1.2em}.prose li{margin-top:.35em}.prose code{font-family:var(--font);background:var(--card-soft);padding:2px 6px;border:1.5px solid var(--line);font-size:.9em}.prose blockquote{border-left:3px solid var(--accent);padding-left:14px;color:var(--ink-soft)}@view-transition{navigation:auto}::view-transition-image-pair(root){isolation:isolate}::view-transition-group(root){animation-duration:.18s;animation-timing-function:cubic-bezier(.2,.9,.1,1)}::view-transition-old(root){animation:vt-fade-out .14s ease both}::view-transition-new(root){animation:vt-fade-in .18s ease both}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}:root:active-view-transition-type(crt)::view-transition{background:#05060a}:root:active-view-transition-type(crt)::view-transition-group(root){animation-duration:.56s;animation-timing-function:linear}:root:active-view-transition-type(crt)::view-transition-old(root),:root:active-view-transition-type(crt)::view-transition-new(root){mix-blend-mode:normal;animation-fill-mode:both;transform-origin:center center}:root:active-view-transition-type(crt)::view-transition-old(root){z-index:1;animation:vt-crt-off .26s cubic-bezier(.55,0,.9,.35) both}:root:active-view-transition-type(crt)::view-transition-new(root){z-index:2;animation:vt-crt-on .34s .24s cubic-bezier(.16,.9,.3,1) both}@keyframes vt-crt-off{0%{opacity:1;transform:scale(1);filter:brightness(1) contrast(1)}60%{opacity:1;transform:scaleY(.004);filter:brightness(2.4) contrast(1.2)}92%{opacity:1;transform:scale(.16,.004);filter:brightness(5) contrast(1.4)}to{opacity:0;transform:scale(0,.004);filter:brightness(7)}}@keyframes vt-crt-on{0%{opacity:0;transform:scale(0,.004);filter:brightness(7)}18%{opacity:1;transform:scale(.16,.004);filter:brightness(5) contrast(1.4)}46%{opacity:1;transform:scaleY(.004);filter:brightness(2.6) contrast(1.2)}72%{opacity:1;transform:scale(1);filter:brightness(1.5) contrast(1.05)}to{opacity:1;transform:scale(1);filter:brightness(1)}}::view-transition-group(*){animation-duration:.16s;animation-timing-function:cubic-bezier(.22,1.2,.3,1)}::view-transition-group(vt-brand){animation-duration:.34s;animation-timing-function:cubic-bezier(.2,1,.3,1)}::view-transition-new(vt-brand){animation:vt-brand-roll .34s cubic-bezier(.2,1,.3,1) both;transform-origin:center}@keyframes vt-brand-roll{0%{opacity:0;transform:rotate(-360deg) scale(.55);filter:brightness(1.3)}to{opacity:1;transform:rotate(0) scale(1);filter:none}}::view-transition-old(vt-brand),::view-transition-new(vt-brand),::view-transition-old(vt-projects),::view-transition-new(vt-projects),::view-transition-old(vt-blog),::view-transition-new(vt-blog),::view-transition-old(vt-business),::view-transition-new(vt-business),::view-transition-old(vt-about),::view-transition-new(vt-about),::view-transition-old(vt-current),::view-transition-new(vt-current){mix-blend-mode:normal}::view-transition-new(vt-projects),::view-transition-new(vt-blog),::view-transition-new(vt-business),::view-transition-new(vt-about),::view-transition-new(vt-current){animation:vt-card-lock .14s cubic-bezier(.2,1,.3,1) both}@keyframes vt-card-lock{0%{clip-path:inset(0 0 100% 0);transform:translateY(5px);filter:brightness(1.4)}to{clip-path:inset(0);transform:translateY(0);filter:none}}.app:has(#view-info:checked) .panel--info,.app:has(#view-contact:checked) .panel--contact{animation:vt-panel-snap .14s cubic-bezier(.2,1,.3,1) both}@media(max-width:859px){.app:has(#view-info:checked) .panel--apps{animation:vt-panel-snap .14s .02s cubic-bezier(.2,1,.3,1) both}}@keyframes vt-panel-snap{0%{opacity:0;transform:translate3d(8px,0,0) scale(.99);clip-path:inset(0 100% 0 0)}to{opacity:1;transform:translateZ(0) scale(1);clip-path:inset(0)}}@media(max-width:859px){.app[data-view]{display:flex;flex-direction:column;min-height:100dvh}.bar,.card,.section,.hero,.apps-grid>.app,.now-card,.tab,.email,.soc,.back,.more-pill,.app-ico,.avatar,.entry-thumb{border-radius:8px}.bar{padding:0 10px;gap:6px;height:54px}.brand{width:36px;height:36px}.brand svg{width:18px;height:18px}.tabset{gap:6px;margin-left:auto}.tab{padding:6px 11px;gap:6px;font-size:13px}.tab .ico{width:11px;height:11px}.tab .ico:before{width:11px}.tab .ico:after{height:11px}.bar--apps,.card--foot,.panel{display:none}.app:has(#view-info:checked) .panel--info,.app:has(#view-info:checked) .panel--apps,.app:has(#view-contact:checked) .panel--contact{display:flex}.apps-grid{flex:1;grid-template-columns:1fr 1fr;grid-template-areas:none;grid-template-rows:none;grid-auto-rows:minmax(170px,auto)}.apps-grid>.app{grid-area:auto;grid-column:auto;min-height:170px;padding:18px;gap:10px}.profile-top{flex-wrap:wrap;gap:14px;margin-bottom:22px}.avatar{width:72px;height:72px;font-size:12px}.clock{font-size:15px}.bio{max-width:none;font-size:17px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.card{padding:20px}.card--profile{padding-top:22px}.card--profile:before{left:14px;font-size:10px}.app-ico{width:44px;height:44px}.app-ico:before{font-size:18px}.app-title{font-size:17px}.app-sub{font-size:13px}.app-arrow{top:14px;right:16px}.app--feature:before{top:14px;left:16px}.page-shell{padding:10px}.hero{padding:22px;gap:12px}.hero .app-ico{width:52px;height:52px}.hero h1{font-size:clamp(26px,8vw,34px)}.hero p{font-size:16px}.section{padding:20px}.now-grid{gap:10px}.now-card{padding:16px;min-height:0}.entry{gap:14px;padding:18px 0}.entry-thumb{width:64px;height:64px}.entry-top{flex-direction:column;align-items:flex-start;gap:2px}.entry-body h3{font-size:17px}.entry-body p{font-size:14.5px}.back{padding:7px 12px;font-size:13px}.timeline li{flex-direction:column;gap:2px}.timeline .yr{width:auto;font-size:13px}}@media(min-width:860px){.app[data-view]{grid-template-columns:minmax(360px,36%) 1fr;grid-template-rows:var(--bar-h) 1fr;grid-template-areas:"barmain barapps" "left    apps";height:100vh}.bar--main{grid-area:barmain}.bar--apps{grid-area:barapps}.panel--info,.panel--contact{grid-area:left;overflow-y:auto}.panel--apps{grid-area:apps;overflow-y:auto;display:block}.app:has(#view-info:checked) .panel--contact{display:none}.app:has(#view-contact:checked) .panel--info{display:none}.panel::-webkit-scrollbar{width:0}}@media(min-width:860px)and (max-width:1100px){.app[data-view]{grid-template-columns:minmax(320px,44%) 1fr}}@media(max-width:380px){.bar{padding:0 8px}.tab{padding:6px 9px;font-size:12px}}@media(prefers-reduced-motion:reduce){.app,.app *{transition:none!important}::view-transition-group(*){animation:none!important}}
