:root{--bg: #e9e9e9;--card: #ffffff;--card-soft: #f3f3f3;--ink: #161616;--ink-soft: #9a9a9a;--accent: #206a5d;--line: #1c1c1c;--radius: 0;--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:1.5px 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;margin-right: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-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}.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-old(root),::view-transition-new(root){animation-duration:.5s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-group(*){animation-duration:.55s;animation-timing-function:cubic-bezier(.22,1,.36,1)}@media(min-width:860px){.app--projects,.hero--projects{view-transition-name:vt-projects}.app--blog,.hero--blog{view-transition-name:vt-blog}.app--business,.hero--business{view-transition-name:vt-business}.card--more,.hero--about{view-transition-name:vt-about}.app--current,.hero--current{view-transition-name:vt-current}}@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:0}.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}}
