@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-cyrillic-ext-wght-normal-okcGN4Nq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-cyrillic-wght-normal-BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-greek-ext-wght-normal-DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-greek-wght-normal-sS1B39LI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-vietnamese-wght-normal-TKKdAiBA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-latin-ext-wght-normal-B4u9PlvR.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-latin-wght-normal-DX-nOvPD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{--bg:#fff;--fg:#0a0a0a;--muted:#5e5e5e;--hair:#d9d9d9;--accent:#d10a14;--on-accent:#fff;--footer-bg:var(--fg);--footer-fg:var(--bg);--rule-soft:#ccc;--num-muted:#767676;--nav-muted:#3a3a3a;--fg-strong:#000;--panel:#fff;--panel-hover:#f3f3f3;--menu-current:#ffc9cb;--code-bg:#fafafa;--code-key:#5e5e5e;--code-value:#d10a14;--code-gutter:#9a9a9a;--gutter:clamp(16px, 4vw, 48px);--font:"Inter Tight Variable", system-ui, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, monospace}[data-theme=dark]{--bg:#0b0b0b;--fg:#f2f2f2;--muted:#9b9b9b;--hair:#2e2e2e;--accent:#ff3b30;--on-accent:#fff;--footer-bg:#1c1c1c;--footer-fg:#f2f2f2;--rule-soft:#3a3a3a;--num-muted:#8a8a8a;--nav-muted:#c8c8c8;--fg-strong:#fff;--panel:#161616;--panel-hover:#242424;--menu-current:#ffeceb;--code-bg:#111;--code-key:#a8a8a8;--code-value:#ff6b5e;--code-gutter:#5e5e5e}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;transition:background .25s,color .25s}a{color:var(--fg)}a:hover,.accent{color:var(--accent)}.page{overflow:hidden}.wrap{padding:28px var(--gutter) 0}.wrap-main{padding-top:0}.site-header{border-bottom:1px solid var(--fg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding-bottom:20px;display:flex}.site-id{flex-direction:column;gap:4px;text-decoration:none;display:flex}.site-name{color:var(--fg);font-size:16px;font-weight:700}.site-role{color:var(--muted);font-size:14px;font-weight:500}.site-id:hover .site-name{color:var(--accent)}.site-nav{gap:6px;margin-left:auto;display:flex}.site-nav a{white-space:nowrap;border-top:4px solid var(--rule-soft);flex-direction:column;gap:6px;min-width:104px;min-height:44px;padding:12px 6px 4px 0;text-decoration:none;transition:border-color .15s,color .15s;display:flex}.nav-num{color:var(--num-muted);font-size:12px;font-weight:700;line-height:1;transition:color .15s}.nav-label{letter-spacing:-.01em;color:var(--nav-muted);font-size:17px;font-weight:800;line-height:1.1;transition:color .15s}.site-nav a:hover,.site-nav a:focus-visible{border-top-color:var(--fg)}.site-nav a:hover .nav-label,.site-nav a:focus-visible .nav-label{color:var(--fg-strong)}.site-nav a[aria-current=page]{border-top-color:var(--accent)}.site-nav a[aria-current=page] .nav-num{color:var(--accent)}.site-nav a[aria-current=page] .nav-label{color:var(--fg-strong)}.site-controls{align-items:center;gap:20px;display:flex}.lang{position:relative}.lang-trigger{border:1px solid var(--fg);height:44px;color:var(--fg);font:inherit;letter-spacing:.04em;cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:800;transition:border-color .15s,color .15s;display:inline-flex}.lang-trigger:hover{border-color:var(--accent);color:var(--accent)}.lang-trigger svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.lang-globe{stroke-width:2px}.lang-chevron{stroke-width:2.5px;transition:transform .2s}.lang-trigger[aria-expanded=true] .lang-chevron{transform:rotate(180deg)}.lang-panel{z-index:20;background:var(--panel);border:1px solid var(--fg);width:min(220px,100vw - 32px);box-shadow:6px 6px 0 var(--accent);animation:.2s ease-out lang-in;position:absolute;top:calc(100% + 12px);right:0}@keyframes lang-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.lang-item{border:0;border-bottom:1px solid var(--rule-soft);width:100%;min-height:44px;font:inherit;text-align:left;cursor:pointer;background:0 0;border-left:4px solid #0000;border-radius:0;align-items:center;gap:12px;padding:14px 16px;font-size:16px;font-weight:700;transition:background-color .15s;display:flex}.lang-item:last-child{border-bottom:0}.lang-item:hover{background:var(--panel-hover)}.lang-item:focus-visible{outline-offset:-3px}.lang-name{color:var(--nav-muted);flex:1}.lang-code{color:var(--num-muted);font-size:12px}.lang-check{width:14px;color:var(--accent)}.lang-item[aria-checked=true]{border-left-color:var(--accent)}.lang-item[aria-checked=true] .lang-name{color:var(--fg-strong)}.theme-toggle{border:1px solid var(--fg);width:44px;height:44px;color:var(--fg);cursor:pointer;background:0 0;border-radius:22px;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}[data-theme=light] .icon-sun,[data-theme=dark] .icon-moon{display:none}@media (width<=1120px){.site-controls{margin-left:auto}.site-nav{flex:0 0 100%;order:3;margin-left:0}.site-nav a{flex:1 1 0}}.menu-toggle,.mobile-menu{display:none}@media (width<=860px){.site-id{flex:1 1 0;min-width:0}.site-controls{gap:12px}.site-nav,.theme-toggle-desktop{display:none}.menu-toggle{border:1px solid var(--fg);width:44px;height:44px;color:var(--fg);cursor:pointer;background:0 0;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.menu-toggle span,.menu-toggle span:before,.menu-toggle span:after{background:currentColor;width:20px;height:2px;transition:transform .2s,background-color .2s;display:block}.menu-toggle span{position:relative}.menu-toggle span:before,.menu-toggle span:after{content:"";position:absolute;left:0}.menu-toggle span:before{transform:translateY(-7px)}.menu-toggle span:after{transform:translateY(7px)}.menu-toggle[aria-expanded=true] span{background:0 0}.menu-toggle[aria-expanded=true] span:before{transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span:after{transform:rotate(-45deg)}.site-header.is-menu-open{z-index:40;border-bottom-color:var(--on-accent);position:relative}.is-menu-open .site-name,.is-menu-open .site-role{color:var(--on-accent)}.is-menu-open .lang-trigger,.is-menu-open .lang-trigger:hover,.is-menu-open .menu-toggle{border-color:var(--on-accent);color:var(--on-accent)}.mobile-menu{z-index:-1;padding:calc(var(--menu-top,96px) + 24px) var(--gutter) 32px;background:var(--accent);color:var(--on-accent);flex-direction:column;gap:32px;animation:.2s ease-out menu-in;display:flex;position:fixed;inset:0;overflow-y:auto}.mobile-menu[hidden]{display:none}.mobile-nav{flex-direction:column;display:flex}.mobile-nav a{border-top:1px solid var(--on-accent);min-height:44px;color:var(--on-accent);align-items:baseline;gap:16px;padding:14px 0 12px;text-decoration:none;display:flex}.mobile-nav a[aria-current=page]{border-bottom:6px solid var(--on-accent);padding-bottom:6px}.mobile-nav a[aria-current=page]+a{border-top:0}.mobile-nav a[aria-current=page] .nav-label,.mobile-nav a[aria-current=page] .nav-num{color:var(--menu-current)}.mobile-nav .nav-num{color:inherit;font-size:13px;font-weight:700}.mobile-nav .nav-label{letter-spacing:-.04em;color:inherit;font-size:clamp(28px,9vw,40px);font-weight:900;line-height:1}.mobile-theme{border-top:1px solid var(--on-accent);justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;font-size:17px;font-weight:800;display:flex}.mobile-theme .theme-toggle,.mobile-theme .theme-toggle:hover{border-color:var(--on-accent);color:var(--on-accent)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.hero{flex-wrap:wrap;align-items:center;gap:24px;padding:40px 0 32px;display:flex}.hero-main{flex-direction:column;flex:999 560px;gap:32px;min-width:0;display:flex}.hero-title{letter-spacing:-.055em;margin:0;font-size:clamp(52px,9.5vw,150px);font-weight:900;line-height:1.04}.mask{margin-bottom:-.16em;padding-bottom:.16em;display:block;overflow:hidden}.rise{animation:.9s cubic-bezier(.2,.8,.1,1) both rise;display:block}@keyframes rise{0%{transform:translateY(105%)}to{transform:none}}.hero-sub{flex-direction:column;align-items:flex-start;gap:24px;display:flex}.hero-sub p{max-width:640px;margin:0;font-size:20px;font-weight:500;line-height:1.45}.hero-ctas{flex-wrap:wrap;gap:12px;display:flex}.btn{padding:16px 22px;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-outline{border:1px solid var(--fg);padding:15px 22px}.btn:hover{background:var(--fg);color:var(--bg)}.editor{aspect-ratio:1;border:3px solid var(--fg);flex-direction:column;flex:240px;width:100%;max-width:300px;display:flex}.editor-bar{border-bottom:3px solid var(--fg);gap:6px;padding:10px 12px;display:flex}.dot{width:10px;height:10px}.dot-accent{background:var(--accent)}.dot-fg{background:var(--fg)}.dot-outline{border:2px solid var(--fg)}.editor-body{flex-direction:column;flex:1;justify-content:center;gap:12px;padding:12px 16px;display:flex}.code-line{align-items:center;gap:12px;display:flex}.code-num{width:16px;color:var(--muted);text-align:right;font-size:11px;font-weight:600}.code-bar{transform-origin:0;background:var(--fg);height:12px;animation:7s cubic-bezier(.3,0,.2,1) infinite both type}.code-bar.is-accent{background:var(--accent)}.code-cursor{background:var(--accent);width:10px;height:18px;animation:1s step-end infinite blink}@keyframes type{0%{transform:scaleX(0)}6%,84%{transform:scaleX(1)}92%,to{transform:scaleX(0)}}@keyframes blink{50%{opacity:0}}.marquee{background:var(--accent);color:var(--on-accent);white-space:nowrap;letter-spacing:-.03em;padding:16px 0;font-size:56px;font-weight:900;overflow:hidden}.marquee-track{width:max-content;animation:36s linear infinite marquee;display:flex}.marquee-item{align-items:center;gap:16px;padding-right:56px;display:inline-flex}.marquee-item svg{fill:currentColor;flex:none;width:44px;height:44px}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.stats{border-bottom:1px solid var(--fg);grid-template-columns:repeat(4,1fr);display:grid}.stat{padding:28px var(--gutter);flex-direction:column;gap:8px;transition:background .2s,color .2s;display:flex}.stat:not(:last-child){border-right:1px solid var(--fg)}@media (width<=1023px){.stats{grid-template-columns:repeat(2,1fr)}.stat:not(:last-child){border-right:0}.stat:nth-child(odd){border-right:1px solid var(--fg)}.stat:nth-child(-n+2){border-bottom:1px solid var(--fg)}}@media (width<=560px){.stats{grid-template-columns:1fr}.stat:nth-child(odd){border-right:0}.stat:not(:last-child){border-bottom:1px solid var(--fg)}}.stat:hover{background:var(--fg);color:var(--bg)}.stat-n{font-size:14px;font-weight:500}.stat-v{letter-spacing:-.05em;white-space:nowrap;font-size:clamp(52px,5.2vw,72px);font-weight:900;line-height:1}@media (width<=1023px){.stat-v{font-size:72px}}.stat-t{font-size:15px;line-height:1.4}.section{padding:72px var(--gutter) 64px;flex-direction:column;gap:32px;display:flex}.section-ruled{border-bottom:1px solid var(--fg)}.section-head{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:end;gap:24px;display:grid}.section-num{color:var(--accent);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.section-title{letter-spacing:-.05em;margin:0;font-size:clamp(48px,6vw,88px);font-weight:900;line-height:.9}.section-lede{color:var(--muted);margin:0;font-size:18px;line-height:1.5}.timeline-scroll{overflow-x:auto}.timeline{aspect-ratio:1200/320;min-width:760px;position:relative}.timeline svg{width:100%;height:100%;position:absolute;inset:0}.tl-grid{stroke:var(--hair);stroke-width:1px}.tl-pre{stroke:var(--muted);stroke-width:3px;stroke-dasharray:4 8}.tl-line{stroke:var(--fg);stroke-width:6px}.tl-merge{stroke:var(--accent);stroke-width:8px}.tl-branch-accent{stroke:var(--accent);stroke-width:6px}.tl-branch-muted{stroke:var(--muted);stroke-width:6px}.draw{stroke-dasharray:1600;animation:2.4s cubic-bezier(.3,.7,.2,1) both draw}@keyframes draw{0%{stroke-dashoffset:1600px}to{stroke-dashoffset:0}}.tl-years{font-family:var(--font);fill:var(--fg);font-size:13px;font-weight:600}.tl-labels{font-family:var(--font);font-size:14px;font-weight:600}.tl-labels .fg{fill:var(--fg)}.tl-labels .muted{fill:var(--muted)}.tl-labels .accent{fill:var(--accent)}.tl-labels .strong{font-weight:800}.tl-commit{border:5px solid var(--c);background:var(--bg);cursor:pointer;width:26px;height:26px;margin:-13px 0 0 -13px;padding:0;transition:transform .15s;animation:.4s cubic-bezier(.3,1.6,.5,1) backwards pop;position:absolute}.tl-commit:hover,.tl-commit:focus-visible{transform:scale(1.3)}.tl-commit[aria-pressed=true]{background:var(--c)}.tl-merge-ring{border:2px solid var(--accent);pointer-events:none;border-radius:22px;width:44px;height:44px;margin:-22px 0 0 -22px;animation:1.8s ease-out infinite pulse;position:absolute}.tl-head{background:var(--accent);width:16px;height:16px;margin:-8px 0 0 -8px;animation:1.8s ease-out infinite pulse;position:absolute}.tl-today{background:var(--fg);color:var(--bg);padding:3px 8px;font-size:12px;font-weight:600;position:absolute;transform:translate(-50%)}@keyframes pop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--accent)}60%{box-shadow:0 0 0 12px #0000}}.tl-detail{border-top:6px solid var(--fg);flex-wrap:wrap;gap:24px;padding-top:20px;display:flex}.tl-detail.is-swapping{animation:.35s ease-out both fade-in}.tl-detail-meta{flex-direction:column;flex:200px;gap:6px;font-size:15px;display:flex}.tl-date{color:var(--muted);font-weight:500}.tl-org{color:var(--accent);font-size:20px;font-weight:800}.tl-detail-body{flex-direction:column;flex:999 560px;gap:10px;min-width:0;display:flex}.tl-msg{letter-spacing:-.03em;font-size:32px;font-weight:800;line-height:1.1}.tl-text{color:var(--muted);font-size:17px;line-height:1.5}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.tl-v{margin:0;padding:0;list-style:none;display:none}@media (width<=1023px){.timeline-scroll,.tl-detail{display:none}.tl-v{display:block}}.tl-v-row{grid-template-columns:76px minmax(0,1fr);display:grid}.tl-v-gutter{min-height:76px;position:relative}.tl-v-line{background:var(--fg);width:4px;margin-left:-2px;position:absolute}.tl-v-line.is-accent{background:var(--accent)}.tl-v-line.is-muted{background:var(--muted)}.tl-v-line.is-pre{border-left:2px dashed var(--muted);background:0 0;width:0;margin-left:-1px}.tl-v-curve{fill:none;stroke-width:4px;position:absolute;left:0;overflow:visible}.tl-v-curve.is-fg{stroke:var(--fg)}.tl-v-curve.is-accent{stroke:var(--accent)}.tl-v-curve.is-muted{stroke:var(--muted)}.tl-v-dot{border:4px solid var(--c);background:var(--bg);width:20px;height:20px;margin:-10px 0 0 -10px;transition:background-color .15s;position:absolute}.tl-v-dot.is-open{background:var(--c)}.tl-v-head{background:var(--accent);width:14px;height:14px;margin:-7px 0 0 -7px;animation:1.8s ease-out infinite pulse;position:absolute}.tl-v-gutter .tl-merge-ring{width:40px;height:40px;margin:-20px 0 0 -20px}.tl-v-today{align-items:start}.tl-v-today .tl-v-gutter{min-height:44px}.tl-v-today .tl-today{justify-self:start;margin-top:10px;position:static;transform:none}.tl-v-content{padding:8px 0 18px}.tl-v-item{width:100%;min-height:44px;color:var(--fg);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:4px;padding:0;display:flex}.tl-v-item .tl-date{font-size:14px;line-height:24px}.tl-v-org{color:var(--accent);font-weight:800}.tl-v-msg{letter-spacing:-.02em;font-size:20px;font-weight:800;line-height:1.2}.tl-v-item:hover .tl-v-msg{color:var(--accent)}.tl-v-body{color:var(--muted);margin:10px 0 0;font-size:16px;line-height:1.5;animation:.3s ease-out both fade-in}.skills{flex-direction:column;display:flex}.skill-group{border-top:1px solid var(--fg);flex-wrap:wrap;gap:24px;padding:24px 0;display:flex}.skill-group-head{flex:260px;align-items:baseline;gap:16px;display:flex}.skill-group-head span{color:var(--accent);font-size:14px;font-weight:500}.skill-group-head h3{letter-spacing:-.03em;margin:0;font-size:28px;font-weight:800}.skill-tiles{flex-wrap:wrap;flex:999 560px;gap:10px;min-width:0;display:flex}.tile{border:1px solid var(--hair);align-items:center;gap:10px;padding:12px 16px;font-size:16px;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.tile svg{fill:currentColor;flex:none;width:22px;height:22px}.tile:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}.tile:hover svg{fill:var(--accent)}.footer{background:var(--footer-bg);color:var(--footer-fg);padding:72px var(--gutter) 40px;flex-direction:column;gap:48px;display:flex}.footer-title{letter-spacing:-.055em;margin:0;font-size:clamp(56px,9vw,140px);font-weight:900;line-height:.88}.footer-meta{border-top:1px solid var(--footer-fg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;padding-top:20px;font-size:16px;font-weight:500;display:grid}.footer-meta a{color:var(--footer-fg)}.footer-meta a:hover{color:var(--accent)}.halo{z-index:-1;pointer-events:none;opacity:0;transition:opacity .8s;position:fixed;inset:0;overflow:hidden}.halo.is-on{opacity:1}.halo-blob{transform-origin:0 0;will-change:transform;width:0;height:0;position:absolute;top:0;left:0}.halo-blob span{width:var(--s);height:var(--s);left:calc(var(--s) / -2);top:calc(var(--s) / -2);background:color-mix(in srgb, var(--accent) 3%, transparent);filter:blur(96px);border-radius:42% 58% 63% 37%/45% 39% 61% 55%;animation:14s ease-in-out infinite alternate blob;position:absolute}.halo-blob.is-main{--s:680px}.halo-blob.is-trail{--s:480px}.halo-blob.is-trail span{animation-duration:10s;animation-delay:-4s}@keyframes blob{0%{border-radius:42% 58% 63% 37%/45% 39% 61% 55%;transform:rotate(0)}33%{border-radius:61% 39% 41% 59%/58% 62% 38% 42%}66%{border-radius:37% 63% 55% 45%/36% 55% 45% 64%}to{border-radius:55% 45% 38% 62%/62% 41% 59% 38%;transform:rotate(120deg)}}@media (hover:none){.halo{display:none}}.project-index{border-top:1px solid var(--fg);border-bottom:1px solid var(--fg);flex-direction:column;display:flex}.project-index-row{padding:18px var(--gutter);color:var(--fg);grid-template-columns:48px minmax(0,3fr) minmax(0,2fr) 120px;align-items:baseline;gap:24px;font-size:16px;font-weight:500;text-decoration:none;transition:background .2s,color .2s;display:grid}.project-index-row+.project-index-row{border-top:1px solid var(--hair)}.project-index-row strong{letter-spacing:-.03em;font-size:22px;font-weight:800}.project-index-row:hover{background:var(--fg);color:var(--bg)}.project-index-n{color:var(--accent);font-size:14px}.project-index-date{text-align:right;color:var(--muted)}.project-index-row:hover .project-index-date{color:inherit}@media (width<=720px){.project-index-row{grid-template-columns:32px minmax(0,1fr);gap:4px 16px}.project-index-row>span:not(.project-index-n){text-align:left;grid-column:2}}.projects{gap:0;padding-top:0}.project{border-top:6px solid var(--fg);flex-wrap:wrap;gap:24px 48px;padding:32px 0 64px;scroll-margin-top:24px;display:flex}.projects>.project:first-child{border-top:0;padding-top:72px}.project-meta{flex-direction:column;flex:200px;gap:6px;font-size:15px;display:flex}.project-meta .section-num{margin-bottom:4px}.project-role{font-weight:600}.project-stat{border-top:1px solid var(--fg);flex-direction:column;gap:6px;margin-top:20px;padding-top:16px;display:flex}.project-stat strong{letter-spacing:-.05em;font-size:72px;font-weight:900;line-height:1}.project-stat span{font-size:15px;line-height:1.4}.project-body{flex-direction:column;flex:999 560px;gap:28px;min-width:0;display:flex}.project-title{letter-spacing:-.05em;margin:0;font-size:clamp(36px,4.5vw,64px);font-weight:900;line-height:.95}.project-summary{margin:0;font-size:20px;font-weight:500;line-height:1.45}.project-cols{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;display:grid}.project-label{color:var(--accent);margin:0 0 10px;font-size:14px;font-weight:600}.project-text{color:var(--muted);margin:0;font-size:17px;line-height:1.5}.project-list{columns:2 300px;column-gap:24px;margin:0;padding:0;list-style:none}.project-list li{break-inside:avoid;border-top:1px solid var(--hair);padding:12px 0 12px 20px;font-size:17px;line-height:1.45;position:relative}.project-list li:before{content:"";background:var(--fg);width:8px;height:8px;position:absolute;top:21px;left:0}.project-quote{border-left:6px solid var(--accent);margin:0;padding-left:20px}.project-quote p{letter-spacing:-.02em;margin:0 0 8px;font-size:22px;font-weight:600;line-height:1.35}.project-quote cite{color:var(--muted);font-size:15px;font-style:normal}.todo{border:1px dashed var(--muted);color:var(--muted);align-self:flex-start;padding:6px 10px;font-size:13px;font-weight:600}.earlier{flex-direction:column;display:flex}.earlier-item{border-top:1px solid var(--fg);flex-wrap:wrap;gap:24px 48px;padding:24px 0;display:flex}.earlier-item .project-body{gap:10px}.earlier-title{letter-spacing:-.03em;margin:0;font-size:28px;font-weight:800}.project-body .skill-tiles{flex:none}.app-index{border-top:1px solid var(--fg);border-bottom:1px solid var(--fg);overflow:hidden}.app-index-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.app-index-item{padding:18px var(--gutter);box-shadow:1px 0 0 var(--hair), 0 1px 0 var(--hair), 1px 1px 0 var(--hair);color:var(--fg);align-items:center;gap:16px;text-decoration:none;transition:background .2s,color .2s;display:flex}.app-index-item img{flex:none;width:56px;height:56px}.app-index-item:hover{background:var(--fg);color:var(--bg)}.app-index-text{flex-direction:column;gap:2px;min-width:0;font-size:14px;font-weight:500;display:flex}.app-index-text strong{letter-spacing:-.03em;font-size:22px;font-weight:800;line-height:1.1}.app-index-text>span:last-child{color:var(--muted)}.app-index-item:hover .app-index-text>span:last-child{color:inherit}.app-index-n{color:var(--accent)}@media (width<=767px){.app-index-grid{grid-template-columns:1fr 1fr}}@media (width<=560px){.app-index-item,.section .app-index-item{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 16px}.app-index-item img{width:40px;height:40px}.app-index-text strong{font-size:19px}}.section .app-index-item{padding:16px}.app-more{color:var(--fg);align-self:flex-start}.app-index-item img,.app-logo{box-sizing:border-box;object-fit:cover;border:1px solid var(--hair);background:#fff;border-radius:22.5%}.app-logo{width:96px;height:96px;margin-bottom:12px}.app-status{border:1px solid var(--fg);align-self:flex-start;margin-top:6px;padding:6px 10px;font-size:13px;font-weight:600;line-height:1.35}.app .project-stat strong{font-size:clamp(48px,5vw,72px)}.app-challenges{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;display:grid}.app-challenge{border-top:1px solid var(--fg);padding-top:14px}.app-challenge h4{letter-spacing:-.02em;margin:0 0 8px;font-size:19px;font-weight:800;line-height:1.25}.gallery{gap:12px;display:grid}.gallery.is-desktop{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.gallery.is-desktop .gallery-item:first-child{grid-row:span 2;position:relative}.gallery.is-desktop .gallery-item:first-child img{aspect-ratio:auto;height:100%;position:absolute;inset:0}.gallery.is-phone{grid-template-columns:repeat(3,minmax(0,220px))}.gallery-item{border:1px solid var(--hair);cursor:zoom-in;line-height:0;transition:border-color .15s;display:block}.gallery-item img{width:100%;height:auto;display:block}.gallery-item:hover{border-color:var(--accent)}.is-desktop .gallery-item img{aspect-ratio:16/9;object-fit:cover;object-position:top left}.is-phone .gallery-item img{aspect-ratio:1170/2532;object-fit:cover}@media (width<=560px){.gallery.is-desktop{grid-template-columns:1fr}.gallery.is-desktop .gallery-item:first-child{grid-row:auto}.gallery.is-desktop .gallery-item:first-child img{aspect-ratio:16/9;height:auto;position:static}.gallery.is-phone{gap:8px}}.lightbox{width:100vw;max-width:none;height:100vh;max-height:none;padding:var(--gutter);background:var(--bg);color:var(--fg);border:0;margin:0}.lightbox::backdrop{background:var(--bg)}.lightbox figure{flex-direction:column;gap:16px;height:100%;margin:0;display:flex}.lightbox img{object-fit:contain;flex:1;width:100%;min-height:0}.lightbox figcaption{border-top:6px solid var(--fg);flex-wrap:wrap;align-items:center;gap:8px 24px;padding-top:16px;font-size:16px;font-weight:500;display:flex}.lightbox-count{color:var(--accent);font-weight:600}.lightbox-nav{gap:8px;margin-left:auto;display:flex}.lightbox-nav button{border:1px solid var(--fg);color:var(--fg);font:inherit;cursor:pointer;background:0 0;padding:10px 16px;font-weight:600;transition:background .15s,color .15s}.lightbox-nav button:hover{background:var(--fg);color:var(--bg)}.person-hero{border-bottom:1px solid var(--fg);align-items:flex-end;padding-bottom:0}.person-hero .hero-main{align-self:center;padding-bottom:40px}.person-portrait{flex:0 380px;width:380px;max-width:100%;height:auto;margin-left:auto;display:block}.person-story{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:32px 48px;display:grid}.person-text{flex-direction:column;gap:16px;max-width:720px;display:flex}.person-text .project-summary{margin-bottom:4px}.person-grid{grid-template-columns:repeat(4,1fr);gap:32px 24px;display:grid}@media (width<=1023px){.person-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.person-grid{grid-template-columns:1fr}}.person-item h3{letter-spacing:-.03em;margin:0 0 8px;font-size:22px;font-weight:800;line-height:1.2}.person-art{border-bottom:1px solid var(--fg);margin-bottom:14px;padding-bottom:18px}.person-art svg{width:80px;height:80px;fill:var(--accent);display:block}.person-item-n{color:var(--accent);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.person-cat{border-bottom:6px solid var(--fg);justify-content:space-between;align-items:flex-end;gap:24px;margin-top:24px;padding-right:8px;display:flex}.person-cat img{flex:none;width:140px;height:auto;display:block}.person-cat>div{padding-bottom:20px}.person-cat-title{letter-spacing:-.04em;margin:0 0 6px;font-size:clamp(26px,3vw,36px);font-weight:900;line-height:1.05}@media (width<=720px){.person-hero{gap:56px}.person-hero .hero-sub p{font-size:22px}.person-portrait{flex-basis:260px;width:260px;margin:0 auto}.person-cat img{width:100px}}.contact{align-items:center;gap:48px;padding:72px 0 96px;display:flex}.contact-text{flex-direction:column;flex:340px;gap:24px;display:flex}.hero-title.contact-title{letter-spacing:-.055em;font-size:clamp(64px,8vw,120px);line-height:.92}.contact-lede{max-width:380px;color:var(--muted);margin:0;font-size:20px;font-weight:500;line-height:1.45}.contact-editor{border:3px solid var(--fg);background:var(--code-bg);flex:560px;min-width:0}.contact-bar{border-bottom:3px solid var(--fg);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 14px;display:flex}.contact-bar-file{align-items:center;gap:6px;min-width:0;display:flex}.contact-filename{font-family:var(--mono);color:var(--muted);margin-left:12px;font-size:13px;font-weight:600}.contact-copy{border:1px solid var(--fg);height:36px;color:var(--fg);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:0;flex:none;padding:0 14px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.contact-copy:hover{background:var(--fg);color:var(--bg)}.contact-code{font-family:var(--mono);color:var(--fg);margin:0;padding:24px 20px 28px;font-size:clamp(15px,1.6vw,21px);font-weight:500;line-height:1.9;overflow-x:auto}.contact-code code{width:max-content;min-width:100%;font:inherit;display:block}.cl{align-items:center;gap:20px;animation:.45s steps(24,end) both contact-type;display:flex}.cl-n{text-align:right;width:20px;color:var(--code-gutter);-webkit-user-select:none;user-select:none;flex:none}.cj-p{color:var(--fg)}.cj-k{color:var(--code-key)}.cj-v{color:var(--fg)}.cj-v a,.cj-v>span{color:var(--code-value)}.cj-v a{text-underline-offset:5px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:2px;transition:color .15s,text-decoration-color .15s}.cj-v a:hover,.cj-v a:focus-visible{color:var(--fg-strong);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.cl-cursor{background:var(--accent);width:12px;height:24px;animation:1s step-end infinite blink}@keyframes contact-type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.email-at:before{content:"@"}.email-dot:before{content:"."}.phone-masked{flex-direction:row-reverse;gap:1ch;display:inline-flex}@media (width<=899px){.contact{flex-direction:column;align-items:stretch;padding-top:48px}.contact-text,.contact-editor{flex:none}.cl{min-height:44px}}html:lang(ja){--font:"Inter Tight Variable", "Noto Sans JP Variable", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;--mono:"JetBrains Mono Variable", "Noto Sans JP Variable", ui-monospace, monospace;line-break:strict;word-break:auto-phrase}html:lang(ja) .hero-title,html:lang(ja) .section-title,html:lang(ja) .footer-title,html:lang(ja) .project-title,html:lang(ja) .person-cat-title,html:lang(ja) .tl-msg,html:lang(ja) .tl-v-msg,html:lang(ja) .skill-group-head h3,html:lang(ja) .earlier-title,html:lang(ja) .project-stat strong,html:lang(ja) .stat-v,html:lang(ja) .project-index-row strong,html:lang(ja) .app-index-item strong,html:lang(ja) .person-item h3,html:lang(ja) .app-challenge h4,html:lang(ja) .project-summary,html:lang(ja) .project-quote p,html:lang(ja) .nav-label,html:lang(ja) .marquee{letter-spacing:0}html:lang(ja) .hero-title,html:lang(ja) .section-title,html:lang(ja) .footer-title,html:lang(ja) .project-title{line-height:1.15}html:lang(ja) p,html:lang(ja) li{line-height:1.8}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
