:root{--bg:#0a0a0b;--fg:#ecebe6;--muted:#9a9890;--faint:#5f5e58;--line:#1f1f21;--accent:#bfc3cc;--serif:"Source Serif 4", Charter, Georgia, serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}:root[data-theme=light]{--bg:#fbfaf7;--fg:#16161a;--muted:#5c5b55;--faint:#9a9890;--line:#e6e4dd;--accent:#686b75}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--bg);color:var(--muted);font-family:var(--serif);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.7}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}ul{margin:0;padding:0;list-style:none}strong{color:var(--fg);font-weight:600}code{font-family:var(--mono);color:var(--fg);font-size:.85em}.mono{font-family:var(--mono);letter-spacing:.01em;font-size:.8rem}.wrap{max-width:860px;margin:0 auto;padding:0 24px}.top{z-index:50;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);position:sticky;top:0}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.top{background:color-mix(in srgb, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(16px)saturate(160%);backdrop-filter:blur(16px)saturate(160%)}}html{scroll-padding-top:80px}.top-inner{justify-content:space-between;align-items:center;height:64px;display:flex}.top a{color:var(--fg)}.theme-toggle{color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:6px;display:grid}.theme-toggle:hover{color:var(--fg)}.hero{padding:96px 24px 72px}.hero h1{letter-spacing:-.02em;color:var(--fg);margin:0 0 32px;font-size:clamp(3rem,9vw,4.5rem);font-weight:600;line-height:1.05}.hero p{max-width:62ch;margin:0;font-size:1.15rem}.links{flex-wrap:wrap;gap:8px 28px;margin-top:36px;display:flex}.links a{color:var(--fg)}.links a:hover,.feed-head a:hover{color:var(--accent)}.section{border-top:1px solid var(--line);padding-top:40px;padding-bottom:56px}.label{color:var(--faint);margin:0 0 28px;font-size:.8rem;font-weight:400}.list li+li{margin-top:8px}.row{grid-template-columns:1fr auto;column-gap:24px;padding:14px 0;display:grid}.row-title{color:var(--fg);font-size:1.2rem;font-weight:600}.row-meta{color:var(--faint);align-self:center}.row-sum{grid-column:1/-1;font-size:1rem}.row:hover .row-title{color:var(--accent)}.feed-head{justify-content:space-between;align-items:baseline;margin:8px 0 16px;display:flex}.feed-head h3{color:var(--fg);margin:0;font-size:1.05rem;font-weight:600}.feed-head a{color:var(--faint)}.feed-head:not(:first-of-type){margin-top:44px}.grid{gap:20px;display:grid}.grid-video{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.grid-reel{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.card{flex-direction:column;gap:8px;display:flex}.thumb{object-fit:cover;background:var(--line);border-radius:4px;width:100%;display:block}.thumb-video{aspect-ratio:16/9}.thumb-reel{aspect-ratio:9/16}.card-title{color:var(--fg);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.95rem;line-height:1.4;display:-webkit-box;overflow:hidden}.card-meta{color:var(--faint)}.card:hover .thumb{opacity:.85}.card:hover .card-title{color:var(--accent)}.empty{color:var(--faint);margin:0;font-size:.95rem}.foot{color:var(--faint);padding-top:32px;padding-bottom:48px}.article{padding-top:56px;padding-bottom:80px}.article h1{color:var(--fg);letter-spacing:-.015em;margin:32px 0 8px;font-size:clamp(2rem,6vw,2.75rem);line-height:1.15}.post-date{color:var(--faint);margin:0 0 40px}.back{color:var(--faint)}.back:hover{color:var(--fg)}.prose{max-width:66ch}.prose h2,.prose h3{color:var(--fg);margin-top:2em;line-height:1.25}.prose a{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.prose pre{background:var(--line);border-radius:4px;padding:16px;overflow-x:auto}.prose pre code{font-size:.85rem}.prose img{max-width:100%}.prose blockquote{border-left:2px solid var(--line);margin:1.5em 0;padding-left:20px}@media (max-width:560px){.hero{padding-top:64px}.row{grid-template-columns:1fr}.row-meta{grid-row:2}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.resume-link{align-items:center;gap:8px;display:inline-flex}.dot{background:var(--accent);border-radius:50%;width:7px;height:7px;display:inline-block}.resume{max-width:980px;padding-top:32px;padding-bottom:64px}.resume-bar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.resume-actions{gap:24px;display:flex}.resume-actions a{color:var(--muted)}.resume-actions a:hover{color:var(--fg)}.resume-actions .download{color:var(--fg);align-items:center;gap:8px;display:inline-flex}.resume-actions .download:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px}.resume-frame{border:1px solid var(--line);background:#fff;border-radius:4px;width:100%;height:80vh;min-height:560px}:root{--chrome-1:#7d808b;--chrome-2:#e8e9ee;--chrome-3:#fff}:root[data-theme=light]{--chrome-1:#15161a;--chrome-2:#4c4f5a;--chrome-3:#9097a6}.brand{align-items:center;gap:10px;display:inline-flex}.brand-star{width:18px;height:18px;display:inline-block}.brand-star svg{width:100%;height:100%;display:block;overflow:visible}@supports ((-webkit-background-clip:text) or (background-clip:text)){.hero h1{background:linear-gradient(100deg, var(--chrome-1) 0%, var(--chrome-2) 38%, var(--chrome-3) 50%, var(--chrome-2) 62%, var(--chrome-1) 100%);-webkit-text-fill-color:transparent;color:#0000;background-size:260% 100%;-webkit-background-clip:text;background-clip:text;animation:10s linear infinite shine}}@keyframes shine{0%{background-position:130% 0}to{background-position:-130% 0}}.hero-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:center;gap:48px;display:grid}.art{perspective:900px;aspect-ratio:1;justify-self:center;width:min(300px,72vw)}.art-tilt{width:100%;height:100%;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out;position:relative}.art-globe{position:absolute;inset:4%}.globe{width:100%;height:100%;color:var(--fg);display:block}.art-star{filter:drop-shadow(0 12px 18px #00000073);width:58%;animation:7s ease-in-out infinite float;position:absolute;bottom:-8%;right:-12%;transform:translateZ(70px)rotate(-8deg)}.art-star svg{width:100%;height:auto;display:block;overflow:visible}@keyframes float{50%{translate:0 -9px}}.esc-key{width:48px;height:44px;font-family:var(--mono);color:var(--fg);border:1px solid color-mix(in srgb, var(--fg) 28%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--fg) 20%, transparent), color-mix(in srgb, var(--fg) 4%, transparent));box-shadow:0 4px 0 color-mix(in srgb, var(--fg) 14%, transparent), inset 0 1px 0 color-mix(in srgb, var(--fg) 35%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;place-items:center;font-size:.8rem;transition:transform 80ms,box-shadow 80ms;display:inline-grid}.esc-key:hover{color:var(--accent)}.esc-key:active{box-shadow:0 1px 0 color-mix(in srgb, var(--fg) 14%, transparent), inset 0 1px 0 color-mix(in srgb, var(--fg) 35%, transparent);transform:translateY(3px)}.article .esc-key{margin-bottom:8px}@media (max-width:760px){.hero-grid{grid-template-columns:1fr;gap:40px}.art{justify-self:start;width:min(240px,70vw);margin-left:4px}}@media (prefers-reduced-motion:reduce){.hero h1,.art-star{animation:none}.art-tilt{transition:none}}.about-grid{grid-template-columns:340px minmax(0,1fr);align-items:center;gap:56px;display:grid}.about-copy .label{margin-bottom:20px}.about-copy p{max-width:56ch;margin:0 0 28px}.facts{gap:10px;margin:0;display:grid}.facts div{grid-template-columns:96px 1fr;gap:16px;display:grid}.facts dt{color:var(--faint)}.facts dd{color:var(--fg);margin:0}@media (max-width:760px){.about-grid{grid-template-columns:1fr;gap:32px}.facts div{grid-template-columns:88px 1fr}}html{scroll-behavior:smooth}.panel{border-top:1px solid var(--line);align-items:center;min-height:calc(100svh - 64px);padding:72px 0;display:flex;position:relative;overflow:hidden}#blog{align-items:flex-start;padding-top:120px}.panel>.wrap{width:100%}.panel-hero{border-top:0;padding:0}.panel-inner{z-index:1;position:relative}.panel .label{margin-bottom:24px}.bgword{z-index:0;letter-spacing:-.04em;white-space:nowrap;width:100%;color:color-mix(in srgb, var(--fg) 5%, transparent);pointer-events:none;-webkit-user-select:none;user-select:none;padding-left:max(24px,50vw - 406px);font-size:clamp(5rem,18vw,13rem);font-weight:600;line-height:1;position:absolute;top:24px;left:0}@supports (animation-timeline:view()){.bgword{animation:linear both drift;animation-timeline:view()}}@keyframes drift{0%{translate:14vw}to{translate:-14vw}}.top-inner{gap:20px}.nav{scrollbar-width:none;gap:22px;min-width:0;margin-left:auto;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.top .nav a{color:var(--faint);white-space:nowrap;border-bottom:1px solid #0000;padding:4px 0}.top .nav a:hover{color:var(--fg)}.top .nav a.active{color:var(--fg);border-bottom-color:var(--accent)}.rail{position:relative}.rail-head{align-items:center;gap:16px;min-height:30px;margin-bottom:14px;display:flex}.rail[data-overflow=false] .rail-head{visibility:hidden}.rail-progress{background:var(--line);border-radius:2px;flex:1;height:2px;overflow:hidden}.rail-progress span{background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform .12s linear;display:block}.rail-btns{gap:8px;display:flex}.rail-btns button{cursor:pointer;border:1px solid var(--line);width:30px;height:30px;color:var(--fg);font-family:var(--mono);background:0 0;border-radius:50%;place-items:center;font-size:.85rem;transition:border-color .15s,color .15s;display:grid}.rail-btns button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.rail-btns button:disabled{opacity:.3;cursor:default}.rail-track{--fl:0px;--fr:0px;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 var(--fl), #000 calc(100% - var(--fr)), transparent 100%);-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 var(--fl), #000 calc(100% - var(--fr)), transparent 100%);mask-image:linear-gradient(90deg, transparent 0, #000 var(--fl), #000 calc(100% - var(--fr)), transparent 100%);gap:16px;margin:0 -2px;padding:4px 2px 10px;scroll-padding-inline:2px;display:flex;overflow-x:auto}.rail-track::-webkit-scrollbar{display:none}.rail[data-start=false] .rail-track{--fl:36px}.rail[data-end=false] .rail-track{--fr:36px}.rail-item{scroll-snap-align:start;flex:none}.pcard-item{width:min(300px,78vw)}.video-item{width:min(220px,62vw)}.pcard{border:1px solid var(--line);background:color-mix(in srgb, var(--fg) 2.5%, transparent);border-radius:8px;flex-direction:column;gap:10px;height:100%;min-height:230px;padding:20px;transition:border-color .2s,translate .2s;display:flex}.pcard:hover{border-color:var(--accent);translate:0 -3px}.pcard-index{color:var(--faint)}.pcard-title{color:var(--fg);font-size:1.2rem;font-weight:600;line-height:1.25}.pcard-sum{flex:1;font-size:.95rem;line-height:1.55}.pcard-tags{color:var(--faint);font-size:.72rem}.pcard-go{color:var(--fg)}.pcard:hover .pcard-go{color:var(--accent)}@media (max-width:760px){.top .brand-name{display:none}.nav{gap:16px}.panel{padding:56px 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.bgword{animation:none}.pcard{transition:none}}.links{align-items:center;gap:14px 30px}.ilink{align-items:center;gap:10px;display:inline-flex}.ilink img{width:32px;height:32px;transition:transform .2s,filter .2s;display:block}@media (prefers-reduced-motion:reduce){.ilink img{transition:none}.ilink:hover img{transform:none}}.links{gap:16px 22px}.ilink{gap:0}.ilink img{object-fit:contain;width:24px;height:24px}.ilink:hover img,.ilink:focus-visible img{transform:translateY(-2px)rotate(-5deg)}.ilink img{transition:transform .18s}.ilink:hover img,.ilink:focus-visible img{filter:none;transform:scale(1.15)}.rail[data-overflow=false] .rail-head{display:none}.soc-block+.soc-block{border-top:1px solid var(--line);margin-top:56px;padding-top:44px}.soc-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.soc-id{align-items:center;gap:12px;min-width:0;display:inline-flex}.soc-id img{width:24px;height:24px;display:block}.soc-name{color:var(--fg);font-size:1.15rem;font-weight:600}.soc-handle{color:var(--faint)}.soc-more{color:var(--faint);white-space:nowrap}.soc-more:hover,.soc-id:hover .soc-name{color:var(--accent)}.thumb-wrap{aspect-ratio:16/9;border:1px solid var(--line);background:var(--line);border-radius:8px;display:block;position:relative;overflow:hidden}.thumb-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.reel-wrap{aspect-ratio:9/16}.play{opacity:0;place-items:center;transition:opacity .2s;display:grid;position:absolute;inset:0}.play:before{content:"";background:color-mix(in srgb, var(--bg) 55%, transparent);border:1px solid color-mix(in srgb, var(--fg) 40%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;width:46px;height:46px}.play:after{content:"";border-left:12px solid var(--fg);border-top:8px solid #0000;border-bottom:8px solid #0000;margin-left:4px;position:absolute}a:hover>.thumb-wrap .play,a:focus-visible>.thumb-wrap .play{opacity:1}a:hover>.thumb-wrap img{transform:scale(1.04)}@media (hover:none){.play{opacity:.85}}.meta{color:var(--faint)}.yt-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:36px;display:grid}.yt-feature{flex-direction:column;gap:12px;display:flex}.yt-feature-title{color:var(--fg);font-size:1.3rem;font-weight:600;line-height:1.3}.yt-feature:hover .yt-feature-title,.yt-row:hover .yt-row-title,.reel:hover .reel-cap{color:var(--accent)}.yt-list{flex-direction:column;gap:20px;display:flex}.yt-row{grid-template-columns:128px minmax(0,1fr);align-items:start;gap:14px;display:grid}.yt-row .thumb-wrap{border-radius:6px}.yt-row-text{flex-direction:column;gap:6px;display:flex}.yt-row-title{color:var(--fg);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.98rem;line-height:1.35;display:-webkit-box;overflow:hidden}.reel-item{width:150px}.reel{flex-direction:column;gap:10px;display:flex}.reel-cap{color:var(--fg);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9rem;line-height:1.35;display:-webkit-box;overflow:hidden}.soc-fallback{border:1px solid var(--line);color:var(--muted);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;transition:border-color .2s,color .2s;display:flex}.soc-fallback:hover{border-color:var(--accent);color:var(--fg)}.soc-fallback .mono{color:var(--faint)}@media (max-width:760px){.yt-grid{grid-template-columns:1fr;gap:28px}.yt-row{grid-template-columns:112px minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.thumb-wrap img,.play{transition:none}a:hover>.thumb-wrap img{transform:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.panel>.panel-full{z-index:1;width:100%;position:relative}.marquee{padding:36px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 8% 92%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 8% 92%,#0000 100%)}.marquee-track{gap:20px;width:max-content;padding-right:20px;animation:48s linear infinite marquee;display:flex}.marquee:hover .marquee-track,.marquee:focus-within .marquee-track,.marquee-track:active{animation-play-state:paused}@keyframes marquee{to{transform:translate(-50%)}}.marquee-item{flex:none;width:300px;position:relative}.marquee-item:hover,.marquee-item:focus-within{z-index:2}.pcard{background:color-mix(in srgb, var(--fg) 5%, var(--bg));height:100%;transition:border-color .2s,transform .25s,opacity .25s,box-shadow .25s;position:relative}.pcard:hover,.pcard:focus-visible{border-color:var(--accent);transform:scale(1.06);box-shadow:0 22px 44px -20px #000000a6}.marquee-track:has(.pcard:hover) .pcard:not(:hover){opacity:.4}@media (prefers-reduced-motion:reduce){.marquee{scrollbar-width:thin;overflow-x:auto;-webkit-mask-image:none;mask-image:none}.marquee-track{padding-left:24px;animation:none}.marquee-item[aria-hidden=true]{display:none}.pcard:hover,.pcard:focus-visible{transform:none}}.panel:not(.panel-hero) .panel-inner{padding-top:calc(clamp(5rem,18vw,13rem) - 3rem)}.pcard{min-height:0}.pcard-thumb{aspect-ratio:16/9;border:1px solid var(--line);background:#000;border-radius:6px;margin-bottom:4px;display:block;overflow:hidden}.pcard-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.pcard:hover .pcard-thumb img{transform:scale(1.04)}.pcard-fallback{text-align:center;color:#ecebe6;background:radial-gradient(at 30% 20%,#26272c,#0a0a0b 70%);place-items:center;width:100%;height:100%;padding:0 16px;font-size:1.15rem;font-weight:600;display:grid}@media (prefers-reduced-motion:reduce){.pcard-thumb img{transition:none}.pcard:hover .pcard-thumb img{transform:none}}.photo{perspective:900px;width:min(340px,80vw);margin:0;position:relative}.photo-tilt{transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1);will-change:transform;transition:transform .25s ease-out;position:relative}.photo:hover .photo-tilt{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.06)}.photo-frame{background:var(--line);border-radius:14px;line-height:0;position:relative;overflow:hidden}.photo-img{width:100%;height:auto;display:block}.photo:hover .photo:hover .photo:hover .photo-sheen{pointer-events:none;opacity:0;mix-blend-mode:overlay;background:linear-gradient(115deg,#0000 18%,#ffffff8c 38%,#bec3cd66 50%,#ffffff8c 62%,#0000 82%) 0 0/220% 220%;background-position:calc(var(--mx,50) * 1%) calc(var(--my,50) * 1%);transition:opacity .25s;position:absolute;inset:0}.photo-glare{pointer-events:none;opacity:0;mix-blend-mode:soft-light;background:radial-gradient(circle at calc(var(--mx,50) * 1%) calc(var(--my,50) * 1%), #ffffffe6, transparent 55%);transition:opacity .25s;position:absolute;inset:0}.photo:hover .photo-sheen,.photo:hover .photo-glare{opacity:1}.photo-spark{opacity:0;pointer-events:none;filter:drop-shadow(0 8px 12px #00000073);width:48px;transition:transform .45s cubic-bezier(.2,1.1,.3,1.4),opacity .25s;position:absolute;transform:translateZ(70px)scale(.2)rotate(-40deg)}.photo-spark svg{width:100%;height:auto;display:block;overflow:visible}.photo-spark.s1{top:-20px;right:-16px}.photo-spark.s2{width:32px;bottom:34px;left:-22px}.photo-spark.s3{width:36px;bottom:-18px;right:26px}.photo:hover .photo-spark{opacity:1;transform:translateZ(70px)scale(1)rotate(20deg)}.photo:hover .photo-spark.s2{transition-delay:50ms;transform:translateZ(40px)scale(1)rotate(-25deg)}.photo:hover .photo-spark.s3{transition-delay:.1s;transform:translateZ(90px)scale(1)rotate(35deg)}.photo-missing{aspect-ratio:4/5;text-align:center;border:1px dashed var(--line);color:var(--faint);border-radius:14px;place-content:center;line-height:1.8;display:grid}@media (hover:none){.photo-sheen{opacity:.45;animation:7s ease-in-out infinite alternate photo-drift}}@keyframes photo-drift{0%{background-position:10% 10%}to{background-position:90% 90%}}@media (max-width:760px){.photo{margin:0 auto}}@media (prefers-reduced-motion:reduce){.photo-tilt,.photo:hover .photo-tilt{transition:none;transform:none}.photo-spark{display:none}.photo-sheen{animation:none}}@keyframes chrome-sweep{0%{background-position:100%}to{background-position:0%}}.row-title,.pcard-title{transition:color .18s}.row:hover .row-title,.pcard:hover .pcard-title{color:#0000;-webkit-text-fill-color:transparent;background-image:linear-gradient(105deg,#8b8f9a 0%,#e6e8ee 22%,#fff 38%,#9da2ae 50%,#f7f8fc 64%,#858a96 78%,#e6e8ee 100%);background-position:100%;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;animation:1s forwards chrome-sweep}.top .nav a:hover{color:#0000;-webkit-text-fill-color:transparent;background-image:linear-gradient(105deg,#858a96 0%,#e6e8ee 22%,#fff 38%,#9da2ae 50%,#fff 64%,#858a96 78%,#e6e8ee 100%);background-position:100%;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;animation:1s forwards chrome-sweep}@media (prefers-reduced-motion:reduce){.row:hover .row-title,.pcard:hover .pcard-title{background-position:50%;animation:none}}
