.code-card{background:var(--surface);border:1px solid var(--border);min-width:0;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.code-card-head{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);font-family:var(--font-mono);color:color-mix(in srgb, var(--fg) 80%, transparent);align-items:center;gap:8px;padding:10px 16px;font-size:12px;display:flex}.code-card-head svg{width:14px;height:14px;color:var(--signal);flex:none}.code-card-head .dot-live{background:var(--signal);border-radius:50%;width:6px;height:6px}.code-card-body{font-family:var(--font-mono);flex:1;min-width:0;padding:clamp(14px,2vw,20px);font-size:13px}.c-sig{color:var(--signal)}.c-num{color:var(--gold)}.c-fn{color:var(--fn)}.c-kw{color:var(--kw)}.about-live .section-head{max-width:46rem}.about-live .section-head p strong,.about-live .section-head p .c-sig{font-weight:500}.about-cards{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:20px;display:grid}@media (min-width:768px){.about-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.about-cards .stack-card{grid-column:1/-1}}@media (min-width:1200px){.about-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.about-cards .stack-card{grid-column:auto}}.journey-cmd{text-overflow:ellipsis;white-space:nowrap;margin-bottom:12px;overflow:hidden}.journey{padding-left:20px;list-style:none;position:relative}.journey:before{content:"";background:linear-gradient(to bottom, color-mix(in srgb, var(--signal) 60%, transparent), var(--border), color-mix(in srgb, var(--signal) 40%, transparent));width:1px;position:absolute;top:8px;bottom:8px;left:3px}.journey li{padding-bottom:16px;position:relative}.journey li:last-child{padding-bottom:0}.journey li:before{content:"";background:var(--signal);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:6px;left:-20px}.journey-line{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.journey-title{font-weight:600}.journey p{color:color-mix(in srgb, var(--fg) 70%, transparent);overflow-wrap:anywhere;margin-top:2px;line-height:1.55}.now-groups{flex-direction:column;justify-content:center;gap:16px;display:flex}.now-label{margin-bottom:6px}.now-chips{flex-wrap:wrap;gap:6px;list-style:none;display:flex}.now-chips li{color:color-mix(in srgb, var(--fg) 80%, transparent);background:color-mix(in srgb, var(--surface) 60%, var(--bg));border:1px solid var(--border);border-radius:6px;padding:3px 10px;font-size:12px}@media (max-width:639px){.hide-phone{display:none}}.approach-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:32px;display:grid}@media (min-width:1024px){.approach-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:48px}}.approach .section-head{margin-bottom:22px}@media (min-width:1024px){.approach{padding-block:calc(clamp(56px,8vw,104px) + clamp(0px,2.46vw,32px))}}.approach-points{gap:14px;max-width:34rem;list-style:none;display:grid}.approach-points li{align-items:flex-start;gap:12px;display:flex}.point-icon{width:30px;height:30px;color:var(--signal);background:var(--signal-soft);border:1px solid var(--signal-line);border-radius:8px;flex:none;place-items:center;display:grid}.point-icon svg{width:15px;height:15px}.point-title{color:var(--fg);font-size:15px;font-weight:500;line-height:1.45;display:block}.point-text{color:var(--muted);font-size:13.5px;line-height:1.5;display:block}.runner-tasks{list-style:none}.runner-task{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);grid-template-columns:22px minmax(0,1fr) 7ch;align-items:start;column-gap:12px;padding:12px 0;display:grid}.runner-task:first-child{padding-top:2px}.runner-task:last-child{border-bottom:0}.runner-icon{width:22px;height:22px;color:var(--signal);place-items:center;margin-top:1px;display:grid}.runner-icon svg{width:16px;height:16px}.runner-text{gap:2px;min-width:0;transition:opacity .25s;display:grid}.runner-title{color:var(--fg);font-family:var(--font-sans);font-size:15px;font-weight:500;line-height:1.45}.runner-line{color:var(--muted);font-family:var(--font-sans);font-size:13px;line-height:1.5}.runner-bar{background:color-mix(in srgb, var(--border) 80%, transparent);opacity:0;border-radius:3px;height:3px;margin-top:8px;transition:opacity .3s;display:block;overflow:hidden}.runner-bar i{background:var(--gold);transform-origin:0;height:100%;display:block;transform:scaleX(1)}.runner-status{color:var(--signal);justify-self:end;margin-top:3px;font-size:11.5px;transition:color .25s,opacity .25s}.runner-task.is-waiting .runner-icon{color:var(--comment)}.runner-task.is-waiting .runner-title,.runner-task.is-waiting .runner-line,.runner-task.is-waiting .runner-status{color:var(--muted)}.runner-task.is-running .runner-icon,.runner-task.is-running .runner-status{color:var(--gold)}.runner-task.is-running .runner-bar{opacity:1}.runner-foot{border-top:1px dashed var(--border);border-radius:0 0 8px 8px;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:14px -10px 0;padding:12px 10px 4px;font-size:12.5px;display:flex}.runner-result{color:var(--comment);letter-spacing:.02em;font-weight:500}.runner-sum{color:var(--comment);font-variant-numeric:tabular-nums}.runner-foot.is-ok .runner-result{color:var(--signal)}@media (prefers-reduced-motion:no-preference){.runner-task.is-running .runner-icon svg{animation:.8s linear infinite runner-spin}.runner-task.is-running .runner-bar i{animation:.9s ease-in-out both runner-fill}.runner-task.is-done .runner-icon svg{animation:.35s cubic-bezier(.34,1.56,.64,1) both runner-pop}.runner-foot.is-ok{animation:1.4s ease-out both runner-glow}.js .approach.play-in:not(.in) :is(.section-head>*,.approach-points>li){opacity:0}.approach.in .section-head>.label{animation:.5s ease-in-out both ab-up16}.approach.in .section-head>h2{animation:.6s ease-in-out 50ms both ab-up24}.approach.in .section-head>p{animation:.6s ease-in-out .15s both ab-up16}.approach.in .approach-points>li{animation:ab-up12 .4s cubic-bezier(.42, 0, .58, 1) calc(.25s + var(--i,0) * 80ms) both}}@keyframes runner-spin{to{transform:rotate(360deg)}}@keyframes runner-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes runner-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.18)}to{transform:scale(1)}}@keyframes runner-glow{0%{background:0 0}25%{background:var(--signal-soft)}to{background:0 0}}.jobs{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.jobs-head{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.jobs-title{color:color-mix(in srgb, var(--fg) 80%, transparent);align-items:center;gap:8px;font-size:12px;display:inline-flex}.jobs-title svg{width:14px;height:14px;color:var(--signal)}.jobs-ok{color:var(--signal);align-items:center;gap:6px;font-size:11px;display:inline-flex}.jobs-ok .dot{background:var(--signal);border-radius:50%;width:6px;height:6px}.job-row{border-bottom:1px solid color-mix(in srgb, var(--border) 40%, transparent)}.job-row:last-child{border-bottom:0}.job-row summary{cursor:pointer;align-items:center;gap:clamp(12px,2vw,16px);padding:12px 16px;list-style:none;transition:background-color .2s;display:flex}.job-row summary::-webkit-details-marker{display:none}.job-row summary:hover{background:color-mix(in srgb, var(--surface-2) 40%, transparent)}.job-row summary:focus-visible{outline-offset:-2px}.job-status{width:104px;font-family:var(--font-mono);flex:none;font-size:11px}@media (min-width:640px){.job-status{width:116px}}.badge-current{color:var(--signal);background:color-mix(in srgb, var(--signal) 10%, transparent);border:1px solid color-mix(in srgb, var(--signal) 25%, transparent);border-radius:6px;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.badge-current .ping{width:6px;height:6px;position:relative}.badge-current .ping i{background:var(--signal);border-radius:50%;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.badge-current .ping i:first-child{opacity:.6;animation:1.4s cubic-bezier(0,0,.2,1) infinite ping}}.badge-ready{color:color-mix(in srgb, var(--fg) 60%, transparent)}.badge-ready span{color:color-mix(in srgb, var(--signal) 75%, transparent)}.job-who{flex:1;min-width:0;display:grid}.job-co{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.job-role{color:color-mix(in srgb, var(--fg) 65%, transparent);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}@media (min-width:640px){.job-role{font-size:14px}}.job-where{text-align:right;font-family:var(--font-mono);color:color-mix(in srgb, var(--fg) 80%, transparent);flex:none;font-size:12px;display:none}@media (min-width:640px){.job-where{display:grid}}.job-years{color:color-mix(in srgb, var(--fg) 55%, transparent);font-size:11px}.job-chev{width:16px;height:16px;color:var(--muted);flex:none;transition:transform .2s}.job-row[open] .job-chev{transform:rotate(180deg)}.job-body{font-family:var(--font-mono);padding:0 16px 16px;font-size:12px}@media (min-width:640px){.job-body{padding:0 48px 16px 148px}}.job-where-phone{color:color-mix(in srgb, var(--fg) 60%, transparent);margin-bottom:8px}@media (min-width:640px){.job-where-phone{display:none}}.job-grid{grid-template-columns:minmax(0,1fr);gap:16px 40px;display:grid}@media (min-width:640px){.job-grid{grid-template-columns:minmax(0,1fr) 210px}}.job-k{color:var(--muted);margin-bottom:8px}.job-li{gap:8px;margin-top:6px;line-height:1.6;display:flex}.job-li span:last-child{color:color-mix(in srgb, var(--fg) 82%, transparent)}.job-stack{display:none}@media (min-width:640px){.job-stack{text-align:right;display:block}}.job-tags{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.job-tags code{color:var(--fn);background:color-mix(in srgb, var(--fn) 10%, transparent);border-radius:4px;padding:2px 6px;font-size:11px}.explorer{display:none}@media (min-width:1024px){.explorer{grid-template-columns:250px minmax(0,1fr);align-items:stretch;gap:24px;display:grid}.home-pgrid-phone{display:none!important}}.ex-tree,.ex-readme{background:var(--surface);border:1px solid var(--border);min-height:420px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.ex-head{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);font-family:var(--font-mono);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:11px;display:flex}.ex-title{color:var(--comment);letter-spacing:.08em}.ex-body{flex-direction:column;flex:1;gap:8px;padding:8px;display:flex}.ex-folder{font-family:var(--font-mono);color:color-mix(in srgb, var(--muted) 75%, transparent);align-items:center;gap:6px;padding:6px 8px;font-size:11px;display:flex}.ex-folder svg{width:12px;height:12px}.ex-folder .ex-folder-ico{width:14px;height:14px;color:var(--fn)}.ex-body ul{list-style:none}.ex-file{all:unset;box-sizing:border-box;cursor:pointer;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 10px 8px 24px;display:flex;position:relative}.ex-file:hover .ex-name{color:color-mix(in srgb, var(--fg) 90%, transparent)}.ex-file[aria-pressed=true]{background:color-mix(in srgb, var(--signal) 10%, transparent);box-shadow:inset 2px 0 0 var(--signal)}.ex-file[aria-pressed=true] .ex-name{color:var(--signal)}.ex-file:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}.ex-icon{background:var(--tile-bg);border:1px solid var(--tile-border);border-radius:4px;flex:none;place-items:center;width:20px;height:20px;display:grid;overflow:hidden}.ex-icon img{object-fit:cover;width:100%;height:100%}.ex-icon-sm{border-radius:3px;width:16px;height:16px}.ex-mark{font-family:var(--font-mono);color:var(--fg-2);font-size:8px;font-weight:700}.ex-name{min-width:0;font-family:var(--font-mono);color:color-mix(in srgb, var(--fg) 65%, transparent);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;transition:color .2s;overflow:hidden}.ex-star{color:var(--gold);flex:none;font-size:12px}.ex-foot{border-top:1px solid color-mix(in srgb, var(--border) 60%, transparent);font-family:var(--font-mono);color:var(--comment);padding:8px 14px;font-size:10px}.ex-path{align-items:center;gap:8px;min-width:0;font-size:12px;display:flex}.ex-repo{color:color-mix(in srgb, var(--fg) 80%, transparent);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ex-raw{color:var(--comment);flex:none;text-decoration:none}.ex-raw:hover{color:var(--signal)}.ex-doc{flex-direction:column;flex:1;gap:24px;padding:clamp(24px,2.4vw,32px);display:flex}.ex-doc h3{letter-spacing:-.02em;align-items:center;gap:8px;font-size:28px;font-weight:700;line-height:1.2;display:flex}.ex-hash{font-family:var(--font-mono);color:color-mix(in srgb, var(--comment) 60%, transparent);font-size:18px;font-weight:400}.ex-tagline{border-left:2px solid color-mix(in srgb, var(--signal) 40%, transparent);color:color-mix(in srgb, var(--fg) 60%, transparent);margin-top:10px;padding-left:12px}.ex-badges{flex-wrap:wrap;gap:6px;display:flex}.ex-badge{border:1px solid var(--border);height:20px;font-family:var(--font-mono);border-radius:3px;font-size:10px;display:inline-flex;overflow:hidden}.ex-badge span{align-items:center;padding:0 6px;display:inline-flex}.ex-badge span:first-child{background:color-mix(in srgb, var(--surface-2) 70%, transparent);color:color-mix(in srgb, var(--fg) 60%, transparent)}.ex-h{font-family:var(--font-mono);color:color-mix(in srgb, var(--fg) 80%, transparent);margin-bottom:8px;font-size:12px}.ex-about{color:color-mix(in srgb, var(--fg) 70%, transparent);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:14px;line-height:1.65;display:-webkit-box;overflow:hidden}.ex-tech{flex-wrap:wrap;gap:6px 8px;display:flex}.ex-tech code{color:var(--fn);background:color-mix(in srgb, var(--fn) 10%, transparent);border-radius:4px;padding:2px 6px;font-size:12px}.ex-actions{gap:8px;margin-top:auto;padding-top:8px;display:flex}.ex-btn{color:var(--fg);background:color-mix(in srgb, var(--surface-2) 60%, transparent);border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.ex-btn:hover{border-color:var(--signal-line)}.ex-btn-primary{color:#06210f;background:#3ddc84;border-color:#0000;font-weight:600}.ex-btn-primary:hover{box-shadow:0 10px 24px -8px #3ddc8440}.wordmark-mask{margin:-.06em 0 calc(12px - .16em);padding:.06em 0 .16em;font-size:clamp(44px,22cqi,128px);overflow:hidden}.wordmark-mask .wordmark{margin:0}.cursor-glow{pointer-events:none;z-index:50;opacity:0;will-change:transform;background:radial-gradient(circle,#3ddc840b 0%,#3ddc8400 70%);border-radius:50%;width:460px;height:460px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.device .phone-avatar,.device .phone-avatar img,.device .phone-name,.device .phone-handle{transition:opacity .3s ease-in-out}.kt-rest{visibility:hidden}@media (prefers-reduced-motion:no-preference){.hero .decl{animation:.6s ease-in-out .15s both hero-x}.wordmark-mask .wordmark{animation:.8s cubic-bezier(.33,1,.68,1) .25s both hero-rise}.hero .tagline{animation:.7s ease-in-out .5s both hero-blur}.hero .props{animation:.6s ease-in-out .7s both hero-fade}.hero .props>div{animation:.4s ease-in-out .8s both hero-x-sm}.hero .props>div:nth-child(2){animation-delay:.88s}.hero .props>div:nth-child(3){animation-delay:.96s}.hero .props>div:nth-child(4){animation-delay:1.04s}.hero .props>div:nth-child(5){animation-delay:1.12s}.hero .close-paren{animation:.4s ease-in-out 1s both hero-fade}.hero .cta{animation:.7s ease-in-out 1.05s both hero-up}.hero .phone{animation:.8s cubic-bezier(.16,1,.3,1) .4s both hero-scale}.hero .device-glow{animation:.8s cubic-bezier(.16,1,.3,1) .4s both hero-fade}.hero .profile-kt{animation:.6s ease-in-out .7s both hero-up-kt}.device.typing .phone-avatar,.device.typing .phone-avatar img,.device.typing .phone-name,.device.typing .phone-handle{opacity:0}.device.typing:is(.s-frame,.s-image,.s-name) .phone-avatar,.device.typing:is(.s-image,.s-name) .phone-avatar img,.device.typing.s-name .phone-name,.device.typing.s-name .phone-handle{opacity:1}.device.typing.s-name .phone-handle{transition-delay:.1s}.js .device[data-typing=pending] :is(.phone-avatar,.phone-name,.phone-handle,pre){animation:0s 4s both hero-late}}@keyframes hero-x{0%{opacity:0;transform:translate(-16px)}}@keyframes hero-x-sm{0%{opacity:0;transform:translate(-12px)}}@keyframes hero-rise{0%{opacity:0;transform:translateY(100%)}}@keyframes hero-blur{0%{opacity:0;filter:blur(8px);transform:translateY(16px)}}@keyframes hero-fade{0%{opacity:0}}@keyframes hero-up{0%{opacity:0;transform:translateY(20px)}}@keyframes hero-up-kt{0%{opacity:0;transform:translateY(24px)}}@keyframes hero-scale{0%{opacity:0;transform:scale(.94)}}@keyframes hero-late{0%{visibility:hidden}to{visibility:visible}}.timeline-body,.now-card{flex-direction:column;display:flex}.code-card-body{line-height:1.75}.card-groups{align-content:start;gap:10px;display:grid}.group-label{color:var(--fn)}.card-groups .now-chips{margin-top:6px}.card-note{color:var(--comment);margin-top:18px;font-size:11.5px}.timeline{--dot:9px;--rail:22px;padding-left:var(--rail);flex-direction:column;flex:1;justify-content:space-between;gap:16px;list-style:none;display:flex;position:relative}.timeline:before{content:"";left:calc((var(--dot) - 1px) / 2);background:color-mix(in srgb, var(--signal) 40%, var(--border));width:1px;position:absolute;top:11px;bottom:11px}.timeline li{gap:2px;line-height:1.5;display:grid;position:relative}.timeline li:before{content:"";left:calc(-1 * var(--rail));width:var(--dot);height:var(--dot);box-sizing:border-box;background:var(--surface);border:2px solid var(--signal);border-radius:50%;position:absolute;top:.75em;translate:0 -50%}.timeline li:last-child:before{background:var(--signal)}.timeline-year{color:var(--signal-strong);font-variant-numeric:tabular-nums;font-size:12px}:root[data-theme=light] .timeline-year{color:var(--signal)}.timeline-title{color:var(--fg);font-family:var(--font-sans);overflow-wrap:anywhere;font-size:15px;font-weight:500;line-height:1.45}.timeline-note{color:var(--comment);overflow-wrap:anywhere;font-size:12px}.now-rows{flex-direction:column;flex:1;justify-content:space-between;gap:16px;margin:0;display:flex}.now-rows>div{gap:4px;display:grid}.now-rows dt{color:var(--comment);align-items:center;gap:8px;font-size:12px;display:flex}.now-icon{width:22px;height:22px;color:var(--signal);background:var(--signal-soft);border:1px solid var(--signal-line);border-radius:6px;flex:none;place-items:center;display:inline-grid}.now-icon svg{width:12px;height:12px}.now-rows dd{color:var(--fg);font-family:var(--font-sans);overflow-wrap:anywhere;margin:0 0 0 30px;font-size:15px;font-weight:500;line-height:1.45}@media (min-width:768px) and (max-width:1199px){.stack-card .stack-toml{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));column-gap:20px}}@media (prefers-reduced-motion:no-preference){.js .about-live.play-in:not(.in) :is(.section-head>*,.code-card,.timeline>li,.now-rows>div,.now-card .card-note,.stack-toml>div),.js .about-live.play-in:not(.in) .timeline:before{opacity:0}.about-live.in .section-head>.label{animation:.5s ease-in-out both ab-up16}.about-live.in .section-head>h2{animation:.6s ease-in-out 50ms both ab-up24}.about-live.in .section-head>p{animation:.6s ease-in-out .15s both ab-up16}.about-live.in .about-cards>.code-card:first-child{animation:.6s ease-in-out .25s both ab-left}.about-live.in .timeline:before{transform-origin:top;animation:.8s cubic-bezier(.33,1,.68,1) .35s both ab-draw}.about-live.in .timeline>li{animation:ab-in-x .4s cubic-bezier(.42, 0, .58, 1) calc(.4s + var(--i,0) * .1s) both}.about-live.in .about-cards>.code-card:nth-child(2):not(.stack-card){animation:.6s ease-in-out .3s both ab-up24}.about-live.in .now-rows>div{animation:ab-up12 .4s cubic-bezier(.42, 0, .58, 1) calc(.45s + var(--i,0) * 80ms) both}.about-live.in .now-card .card-note{animation:.4s ease-in-out .9s both ab-fade}.about-live.in .stack-card{animation:.6s ease-in-out .35s both ab-right}.about-live.in .stack-toml>div{animation:ab-up12 .4s cubic-bezier(.42, 0, .58, 1) calc(.5s + var(--i,0) * 80ms) both}}@keyframes ab-up16{0%{opacity:0;transform:translateY(16px)}}@keyframes ab-up24{0%{opacity:0;transform:translateY(24px)}}@keyframes ab-up12{0%{opacity:0;transform:translateY(12px)}}@keyframes ab-left{0%{opacity:0;transform:translate(-24px)}}@keyframes ab-right{0%{opacity:0;transform:translate(24px)}}@keyframes ab-in-x{0%{opacity:0;transform:translate(-10px)}}@keyframes ab-fade{0%{opacity:0}}@keyframes ab-draw{0%{opacity:1;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.projects-home .section-head{margin-bottom:clamp(24px,3vw,32px)}.spot-stage{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:clamp(22px,3.2vw,38px);display:grid}.spot-panel{opacity:0;visibility:hidden;grid-area:1/1;grid-template-columns:minmax(0,1fr);align-items:center;gap:28px;transition:opacity .3s,visibility 0s .3s;display:grid}.spot-panel.is-on{opacity:1;visibility:visible;transition:opacity .3s,visibility}@media (min-width:768px){.spot-panel{grid-template-columns:minmax(0,1fr) auto;gap:40px}}.spot-info{min-width:0}.spot-name{letter-spacing:-.01em;color:var(--fg);margin:14px 0 8px;font-size:clamp(26px,3.4vw,34px);font-weight:800;line-height:1.15}.spot-desc{color:var(--fg-2);max-width:38rem;margin-bottom:18px;font-size:15.5px;line-height:1.7}.spot-facts{flex-wrap:wrap;gap:10px 26px;margin:0 0 22px;display:flex}.spot-facts>div{flex-direction:column-reverse;display:flex}.spot-facts dt{font-family:var(--font-mono);color:var(--comment);font-size:12px}.spot-facts dd{color:var(--fg);font-variant-numeric:tabular-nums;margin:0;font-size:18px;font-weight:600}.spot-cta{flex-wrap:wrap;gap:10px;display:flex}.spot-cta .btn svg{width:16px;height:16px}.spot-media{place-items:center;display:grid}.spot-phone{background:#15140f;border:3px solid #26251f;border-radius:30px;flex:none;width:200px;height:400px;padding:8px;position:relative;box-shadow:0 25px 50px -12px #00000080}.spot-phone-cam{z-index:2;background:#000;border:1px solid #2a2922;border-radius:50%;width:10px;height:10px;position:absolute;top:14px;left:50%;translate:-50%}.spot-phone-screen{background:linear-gradient(#1b1a14,#101009);border-radius:23px;height:100%;position:relative;overflow:hidden}.spot-phone-screen img{object-fit:cover;object-position:top}.spot-phone-screen.is-logo{place-items:center;display:grid}.spot-window{border:1px solid var(--border-strong,var(--border));background:#15140f;border-radius:12px;width:min(420px,100%);overflow:hidden;box-shadow:0 25px 50px -12px #00000080}.spot-window-bar{background:#1d1c17;gap:6px;padding:9px 12px;display:flex}.spot-window-bar i{background:#3a3933;border-radius:50%;width:9px;height:9px}.spot-window-screen{aspect-ratio:16/10;position:relative}.spot-window-screen img{object-fit:cover;object-position:top}@media (max-width:767px){.spot-media{order:2}.spot-phone{width:180px;height:360px}}.spot-dock{justify-content:center;align-items:center;gap:10px;margin-top:18px;display:flex}.spot-tabs{gap:10px;display:flex}.spot-tab,.spot-more{cursor:pointer;width:52px;height:52px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:14px;flex:none;place-items:center;padding:0;text-decoration:none;transition:opacity .2s,border-color .2s,box-shadow .2s,transform .2s;display:grid;position:relative}.spot-tab{opacity:.55}.spot-tab:hover,.spot-tab:focus-visible{opacity:.9}.spot-tab.is-on{opacity:1;border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}.spot-tab .tile{--s:44px}.spot-more{border-color:var(--border);background:var(--surface-2);font-family:var(--font-mono);font-size:12.5px}.spot-more:hover{color:var(--fg);border-color:var(--signal-line)}.spot-tip{white-space:nowrap;pointer-events:none;font-family:var(--font-mono);color:var(--fg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;border-radius:7px;padding:4px 10px;font-size:11.5px;transition:opacity .15s,translate .15s;position:absolute;bottom:calc(100% + 8px);left:50%;translate:-50% 4px}.spot-tab:hover .spot-tip,.spot-tab:focus-visible .spot-tip,.spot-more:hover .spot-tip,.spot-more:focus-visible .spot-tip{opacity:1;translate:-50%}@media (max-width:767px){.spot-dock{scrollbar-width:none;justify-content:flex-start;margin-inline:-4px;padding:14px 4px 6px;overflow-x:auto}.spot-dock::-webkit-scrollbar{display:none}.spot-tip{display:none}}@media (prefers-reduced-motion:no-preference){.spot-tab:active,.spot-more:active{transform:scale(.95)}.js .projects-home.play-in:not(.in) :is(.section-head>*,.spot-stage,.spot-tab,.spot-more){opacity:0}.projects-home.in .section-head>.label{animation:.5s ease-in-out both ab-up16}.projects-home.in .section-head>h2{animation:.6s ease-in-out 50ms both ab-up24}.projects-home.in .spot-stage{animation:.6s ease-in-out .2s both ab-up24}.projects-home.in :is(.spot-tab,.spot-more){animation:ab-up12 .4s cubic-bezier(.42, 0, .58, 1) calc(.45s + var(--i,0) * 60ms) both}}@media (prefers-reduced-motion:reduce){.spot-panel,.spot-panel.is-on{transition:none}}.career{--logo:40px;--rail:60px;padding-left:var(--rail);gap:30px;list-style:none;display:grid;position:relative}.career:before{content:"";left:calc(var(--logo) / 2 - 1px);top:calc(var(--logo) / 2);background:linear-gradient(to bottom, var(--signal), color-mix(in srgb, var(--signal) 35%, var(--border)) 45%, var(--border));border-radius:2px;width:2px;position:absolute;bottom:8px}.career>li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"company when""role role""line line";column-gap:16px;display:grid;position:relative}.career-logo{left:calc(-1 * var(--rail));background:var(--bg);border-radius:11px;position:absolute;top:0}.career-logo .tile{--s:var(--logo)}.career-head{display:contents}.career-company{color:var(--fg);min-height:calc(var(--logo) / 2 + 12px);flex-wrap:wrap;grid-area:company;align-items:center;gap:4px 10px;margin:0;font-size:17px;font-weight:600;line-height:1.45;display:flex}.career-now{font-family:var(--font-mono);color:var(--signal);background:var(--signal-soft);border:1px solid var(--signal-line);border-radius:999px;padding:1px 9px;font-size:11px;font-weight:400}.career-when{font-family:var(--font-mono);color:var(--comment);white-space:nowrap;grid-area:when;align-self:baseline;padding-top:3px;font-size:12.5px}.career-role{color:var(--signal-strong);grid-area:role;margin:0;font-size:14.5px;line-height:1.5}:root[data-theme=light] .career-role{color:var(--signal)}.career-line{color:var(--fg-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-area:line;max-width:46rem;margin:6px 0 0;font-size:15px;line-height:1.6;display:-webkit-box;overflow:hidden}@media (max-width:639px){.career{--logo:36px;--rail:50px;gap:26px}.career>li{grid-template-columns:minmax(0,1fr);grid-template-areas:"company""role""when""line"}.career-when{white-space:normal;padding-top:2px}.career-line{-webkit-line-clamp:3}}@media (prefers-reduced-motion:no-preference){.js .experience-home.play-in:not(.in) :is(.section-head>*,.link-more,.career>li),.js .experience-home.play-in:not(.in) .career:before{opacity:0}.experience-home.in .section-head>.label{animation:.5s ease-in-out both ab-up16}.experience-home.in .section-head>h2{animation:.6s ease-in-out 50ms both ab-up24}.experience-home.in .section-head>p,.experience-home.in .link-more{animation:.6s ease-in-out .15s both ab-up16}.experience-home.in .career:before{transform-origin:top;animation:1.1s cubic-bezier(.33,1,.68,1) .3s both ab-draw}.experience-home.in .career>li{animation:ab-in-x .45s cubic-bezier(.42, 0, .58, 1) calc(.35s + var(--i,0) * .15s) both}}@media (min-width:640px){.experience-home .section-row{margin-bottom:28px}.career{gap:16px}.career-company{min-height:0}.career-role{margin-top:1px}.career-line{margin-top:4px;line-height:1.5}}.writing-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:28px;display:grid}@media (min-width:1024px){.writing-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:36px}.writing-grid.is-single{grid-template-columns:minmax(0,1fr);max-width:760px}}.post-cover{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;flex:none;display:block;position:relative;overflow:hidden}.post-cover img{object-fit:cover}.post-cover-lg{aspect-ratio:16/8;width:100%}.post-cover-sm{border-radius:9px;width:96px;height:66px}.post-cover-gen{color:#ececed;background:radial-gradient(120% 120% at 0 0,#3ddc8433,#3ddc8400 60%),#121311;border-color:#3ddc8447;flex-direction:column;justify-content:space-between;padding:clamp(16px,2.4vw,24px);display:flex}.post-cover-sm.post-cover-gen{padding:8px 9px}.gen-tags{font-family:var(--font-mono);color:#3ddc84;font-size:12px}.post-cover-sm .gen-tags{font-size:10.5px}.gen-title{letter-spacing:-.01em;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:22ch;font-size:clamp(20px,2.4vw,28px);font-weight:800;line-height:1.15;display:-webkit-box;overflow:hidden}.post-meta{font-family:var(--font-mono);color:var(--comment);font-size:12px}.post-feature{color:inherit;border-radius:14px;text-decoration:none;display:block}.post-feature .post-meta{margin-top:16px;display:block}.post-feature-title{color:var(--fg);margin:6px 0 8px;font-size:clamp(21px,2.2vw,25px);font-weight:700;line-height:1.25;transition:color .2s}.post-feature:hover .post-feature-title{color:var(--signal-strong)}:root[data-theme=light] .post-feature:hover .post-feature-title{color:var(--signal)}.post-feature-excerpt{color:var(--fg-2);max-width:40rem;font-size:15px;line-height:1.65}.post-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.post-tag{font-family:var(--font-mono);color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 8px;font-size:11.5px}.post-rows{list-style:none;display:grid}.post-rows li{border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent)}.post-rows li:last-child{border-bottom:0}.post-mini{color:inherit;grid-template-columns:96px minmax(0,1fr);align-items:start;gap:14px;padding:16px 0;text-decoration:none;display:grid}.post-rows li:first-child .post-mini{padding-top:0}.post-mini-text{gap:4px;min-width:0;display:grid}.post-mini-title{color:var(--fg);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15.5px;font-weight:600;line-height:1.35;transition:color .2s;display:-webkit-box;overflow:hidden}.post-mini:hover .post-mini-title{color:var(--signal-strong)}:root[data-theme=light] .post-mini:hover .post-mini-title{color:var(--signal)}.post-feature:focus-visible,.post-mini:focus-visible{outline:2px solid var(--signal);outline-offset:4px}@media (prefers-reduced-motion:no-preference){.post-cover img{transition:transform .4s}.post-feature:hover .post-cover img,.post-mini:hover .post-cover img{transform:scale(1.03)}.js .writing-home.play-in:not(.in) :is(.section-head>*,.link-more,.post-feature,.post-rows>li){opacity:0}.writing-home.in .section-head>.label{animation:.5s ease-in-out both ab-up16}.writing-home.in .section-head>h2{animation:.6s ease-in-out 50ms both ab-up24}.writing-home.in .link-more{animation:.6s ease-in-out .15s both ab-up16}.writing-home.in .post-feature{animation:.6s ease-in-out .2s both ab-up24}.writing-home.in .post-rows>li{animation:ab-right .45s cubic-bezier(.42, 0, .58, 1) calc(.35s + var(--i,0) * .1s) both}}
