@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/46a9e2f250689b4a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6131cbbf5549afa2-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/45462fd7b7c12654-s.1way2z9fj6cig.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.0szrwpqb9mkwe.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.45535valc9rzk.woff2)format("woff2");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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/46a9e2f250689b4a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6131cbbf5549afa2-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/45462fd7b7c12654-s.1way2z9fj6cig.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.0szrwpqb9mkwe.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.45535valc9rzk.woff2)format("woff2");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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/46a9e2f250689b4a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6131cbbf5549afa2-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/45462fd7b7c12654-s.1way2z9fj6cig.woff2)format("woff2");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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.0szrwpqb9mkwe.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.45535valc9rzk.woff2)format("woff2");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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/46a9e2f250689b4a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6131cbbf5549afa2-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/45462fd7b7c12654-s.1way2z9fj6cig.woff2)format("woff2");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;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.0szrwpqb9mkwe.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.45535valc9rzk.woff2)format("woff2");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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.qqrwVG_className{font-family:Inter,Inter Fallback;font-style:normal}.qqrwVG_variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c64053b510252f55-s.1zakzi6q17d4o.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/733da6bd8dac84c8-s.2htf8h-pf57mm.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/784318cea1dfcfa4-s.3skwie1wjplzh.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e114457660b62ed-s.3zhbgtelpa5ua.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9fecbd3e5ea9bccb-s.3vf5yzuqk3fsd.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9a321a2c78eff0b5-s.p.1wmoa0e_blxrz.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c64053b510252f55-s.1zakzi6q17d4o.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/733da6bd8dac84c8-s.2htf8h-pf57mm.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/784318cea1dfcfa4-s.3skwie1wjplzh.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e114457660b62ed-s.3zhbgtelpa5ua.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9fecbd3e5ea9bccb-s.3vf5yzuqk3fsd.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9a321a2c78eff0b5-s.p.1wmoa0e_blxrz.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.iY0vUW_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.iY0vUW_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
body{background:#fafaf7;margin:0}body:has(.site.dark){background:#111}.site{--bg:#fafaf7;--ink:#111;--muted:#5e5e5a;--line:#e3e2dc;--hl:#ffe14d;--hl-ink:#111;box-sizing:border-box;background:var(--bg);width:100%;min-height:100vh;color:var(--ink);font-family:var(--font-inter),Inter,system-ui,sans-serif;transform-origin:50% 0;transition:background .4s,color .4s,transform .8s cubic-bezier(.3,1.6,.5,1);overflow-x:clip}.site.dark{--bg:#111;--ink:#ededea;--muted:#a3a39e;--line:#2a2a28}.site.tilted{transform:rotate(-.6deg)}.mono{font-family:var(--font-mono),"JetBrains Mono",ui-monospace,monospace}.site a{color:var(--ink);text-decoration:none}.site a:hover{color:var(--ink)}.u{background-image:linear-gradient(var(--hl),var(--hl));background-position:0 88%;background-repeat:no-repeat;background-size:100% 0;transition:background-size .25s}.u:hover{color:var(--hl-ink);background-size:100% 40%}.dark .u:hover{color:var(--ink)}.btn{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.chip{border:1px solid var(--line);border-radius:999px;transition:background .2s,border-color .2s,transform .2s}.chip:hover{border-color:var(--ink);transform:translateY(-2px)}.trom-host{align-items:center;min-height:44px;display:inline-flex;position:relative}.trom-text{transition:opacity .25s,transform .35s cubic-bezier(.3,1.6,.5,1);display:inline-block}.trom{opacity:0;pointer-events:none;width:72px;height:27px;margin:-14px 0 0 -36px;transition:opacity .25s,transform .45s cubic-bezier(.3,1.6,.5,1);position:absolute;top:50%;left:50%;overflow:visible;transform:scale(.4)rotate(20deg)}.trom-host:hover .trom-text,.trom-host:focus-visible .trom-text{opacity:0;transform:scale(.4)rotate(-20deg)}.trom-host:hover .trom,.trom-host:focus-visible .trom{opacity:1;transform:none}.rk{transform-box:fill-box;transform-origin:50% 100%}.trom-host:hover .rk,.trom-host:focus-visible .rk{animation:.16s ease-in-out .3s infinite alternate rk}@keyframes rk{0%{transform:translate(-.4px)}to{transform:translate(.4px,-1.5px)}}.rk-flame{transform-box:fill-box;transform-origin:50% 0}.trom-host:hover .rk-flame,.trom-host:focus-visible .rk-flame{animation:.12s infinite alternate flame}@keyframes flame{0%{transform:scaleY(.7)}to{transform:scaleY(1.2)}}.puff{opacity:0;pointer-events:none;width:8px;height:8px;position:absolute;top:36px;left:calc(50% - 4px);overflow:visible}.trom-host:hover .puff.f1,.trom-host:focus-visible .puff.f1{animation:1s ease-out .35s infinite puff1}.trom-host:hover .puff.f2,.trom-host:focus-visible .puff.f2{animation:1s ease-out .68s infinite puff2}.trom-host:hover .puff.f3,.trom-host:focus-visible .puff.f3{animation:1s ease-out 1s infinite puff3}@keyframes puff1{0%{opacity:.8;transform:scale(.4)}to{opacity:0;transform:translate(-12px,5px)scale(1.5)}}@keyframes puff2{0%{opacity:.8;transform:scale(.4)}to{opacity:0;transform:translate(11px,6px)scale(1.4)}}@keyframes puff3{0%{opacity:.8;transform:scale(.4)}to{opacity:0;transform:translateY(10px)scale(1.6)}}.trom-host:hover .trom .slide,.trom-host:focus-visible .trom .slide{animation:.55s ease-in-out .35s infinite alternate slide}@keyframes slide{0%{transform:translate(0)}to{transform:translate(-9px)}}.note{opacity:0;pointer-events:none;width:10px;height:14px;position:absolute;top:4px;left:calc(50% + 30px);overflow:visible}.trom-host:hover .note.n1,.trom-host:focus-visible .note.n1{animation:1.8s ease-out .35s infinite note1}.trom-host:hover .note.n2,.trom-host:focus-visible .note.n2{animation:1.8s ease-out .95s infinite note2}.trom-host:hover .note.n3,.trom-host:focus-visible .note.n3{animation:1.8s ease-out 1.55s infinite note3}@keyframes note1{0%{opacity:0;transform:translateY(4px)scale(.5)}20%{opacity:1}to{opacity:0;transform:translate(26px,-16px)rotate(18deg)scale(1)}}@keyframes note2{0%{opacity:0;transform:translateY(4px)scale(.5)}20%{opacity:1}to{opacity:0;transform:translate(34px,-2px)rotate(-12deg)scale(1.1)}}@keyframes note3{0%{opacity:0;transform:translateY(4px)scale(.5)}20%{opacity:1}to{opacity:0;transform:translate(18px,-26px)rotate(8deg)scale(.9)}}.wl{transform-box:fill-box;transform-origin:0;transform:scaleX(0)}.trom-host:hover .wl,.trom-host:focus-visible .wl{animation:2s ease-out .3s infinite type}.trom-host:hover .wl2,.trom-host:focus-visible .wl2{animation-delay:.6s}.trom-host:hover .wl3,.trom-host:focus-visible .wl3{animation-delay:.9s}@keyframes type{0%{opacity:1;transform:scaleX(0)}30%,85%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.exp-flag{transform-box:fill-box;transform-origin:0 100%;transform:scaleY(0)}.trom-host:hover .exp-flag,.trom-host:focus-visible .exp-flag{animation:.5s cubic-bezier(.3,1.6,.5,1) .5s forwards flag}@keyframes flag{to{transform:scaleY(1)}}.exp-cloth{transform-box:fill-box;transform-origin:0}.trom-host:hover .exp-cloth,.trom-host:focus-visible .exp-cloth{animation:.5s ease-in-out 1s infinite alternate wave-flag}@keyframes wave-flag{0%{transform:skewY(0)}to{transform:skewY(-12deg)scaleX(.85)}}.exp-trail{stroke-dasharray:2 3}.trom-host:hover .exp-trail,.trom-host:focus-visible .exp-trail{animation:.6s linear infinite trail}@keyframes trail{to{stroke-dashoffset:-10px}}.env-flap{transform-box:fill-box;transform-origin:50% 0}.trom-host:hover .env-flap,.trom-host:focus-visible .env-flap{animation:.4s ease-out .35s forwards flap}@keyframes flap{to{transform:scaleY(-1)}}.plane{opacity:0;pointer-events:none;width:14px;height:12px;position:absolute;top:4px;left:calc(50% - 7px);overflow:visible}.trom-host:hover .plane.p1,.trom-host:focus-visible .plane.p1{animation:1.6s ease-out .7s infinite fly}.trom-host:hover .plane.p2,.trom-host:focus-visible .plane.p2{animation:1.6s ease-out 1.5s infinite fly2}@keyframes fly{0%{opacity:0;transform:translateY(6px)scale(.4)}20%{opacity:1}to{opacity:0;transform:translate(40px,-20px)rotate(-8deg)scale(1)}}@keyframes fly2{0%{opacity:0;transform:translateY(6px)scale(.4)}20%{opacity:1}to{opacity:0;transform:translate(30px,-30px)rotate(-18deg)scale(.9)}}.letter{transition:transform .25s cubic-bezier(.3,1.8,.5,1),color .2s;display:inline-block}.letter:hover{color:var(--muted);transform:translateY(-10px)rotate(-6deg)}.letter:nth-child(2n):hover{transform:translateY(-8px)rotate(7deg)}.dot{background:#1f9d55;border-radius:50%;width:8px;height:8px;position:relative}.dot:after{content:"";background:#1f9d55;border-radius:50%;animation:1.8s infinite ping;position:absolute;inset:0}@keyframes ping{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}.proj{border-top:1px solid var(--line)}.tag{color:var(--ink);background:var(--bg);border:1px solid var(--muted);border-radius:999px;padding:3px 10px;font-weight:500}.tech{color:var(--ink);background-image:linear-gradient(var(--hl),var(--hl));background-position:0 92%;background-repeat:no-repeat;background-size:100% 30%;font-weight:600}.dark .tech{background-size:100% 12%}.arrow{transition:transform .25s;display:inline-block}.proj:hover .arrow{transform:translate(4px,-4px)}.wave{transform-origin:70% 80%;cursor:default;display:inline-block}.wave:hover{animation:.8s wave}@keyframes wave{0%,to{transform:rotate(0)}20%{transform:rotate(16deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(14deg)}80%{transform:rotate(-6deg)}}.nope{border:1px dashed var(--muted);border-radius:999px;transition:transform .15s}.nope:hover{transform:scale(1.04)}.nope:active{transform:scale(.92)}.secret{opacity:0;transition:opacity .4s}.secret:hover{opacity:1}.pop{animation:.35s cubic-bezier(.3,1.8,.5,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.cursorblink{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.wrap{box-sizing:border-box;max-width:1040px;margin:0 auto;padding:0 24px}.header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:28px 0;display:flex}.logo{font-size:15px;font-weight:500}.nav{flex-wrap:wrap;align-items:center;gap:24px;margin-left:auto;font-size:15px;display:flex}.theme-btn{min-height:44px;margin-left:8px;padding:10px 16px;font-size:13px}@media (max-width:720px){.header{row-gap:4px;padding:20px 0}.theme-btn{order:2;margin-left:auto}.nav{order:3;justify-content:space-between;gap:8px;width:100%;margin-left:0}}.hero{flex-direction:column;gap:28px;padding:120px 0 96px;display:flex}.greeting{color:var(--muted);align-items:center;gap:10px;margin:0;font-size:14px;display:flex}.greeting svg{border-radius:3px;flex-shrink:0}.name{letter-spacing:-.045em;margin:0;font-size:clamp(56px,11vw,132px);font-weight:700;line-height:.95}.name .btn{text-align:left;letter-spacing:inherit;line-height:inherit}.name-msg{color:var(--muted);margin:-12px 0 0;font-size:13px}.lead{max-width:620px;color:var(--ink);margin:0;font-size:22px;line-height:1.5}.status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:14px;display:flex}.status .mono{color:var(--ink)}.section{flex-direction:column;gap:32px;padding:48px 0 96px;display:flex}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.section-title{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600}.projects{border-bottom:1px solid var(--line);flex-direction:column;display:flex}.project{grid-template-columns:104px minmax(0,1fr) auto;align-items:baseline;gap:8px 24px;padding:28px 0;display:grid}.project-years{color:var(--muted);font-size:13px}.project-body{flex-direction:column;gap:6px;display:flex}.project-head{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.project-name{letter-spacing:-.02em;font-size:24px;font-weight:600}.badge{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 9px;font-size:11px}.project-desc{color:var(--muted);font-size:15px}.tags{flex-wrap:wrap;gap:6px;font-size:12px;display:flex}@media (max-width:720px){.project{grid-template-columns:104px minmax(0,1fr)}.tags{grid-column:2}}@media (max-width:520px){.project{grid-template-columns:minmax(0,1fr)}.tags{grid-column:1}}.exp-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;display:grid}.exp-col{flex-direction:column;gap:16px;display:flex}.exp-label{color:var(--muted);margin:0;font-size:13px;font-weight:500}.exp-list{border-bottom:1px solid var(--line);flex-direction:column;display:flex}.exp-item{flex-direction:column;gap:6px;padding:20px 0;display:flex}.exp-years{color:var(--muted);font-size:12px}.exp-role{letter-spacing:-.01em;font-size:19px;font-weight:600}.exp-org{color:var(--muted);font-weight:400}.exp-desc{color:var(--muted);font-size:15px;line-height:1.5}.about{flex-wrap:wrap;align-items:flex-start;gap:48px;padding:48px 0 96px;display:flex}.portrait{object-fit:cover;border-radius:20px;flex:none;width:180px;height:180px;transition:transform .4s cubic-bezier(.3,1.6,.5,1)}.portrait:hover{transform:rotate(-3deg)scale(1.03)}.about-text{flex-direction:column;flex:1.4 320px;gap:20px;min-width:0;display:flex}.about-intro{margin:0;font-size:18px;line-height:1.6}.about-hobbies{color:var(--muted);margin:0;font-size:15px;line-height:1.6}.skills{flex-direction:column;flex:260px;gap:20px;min-width:0;display:flex}.skill-list{flex-direction:column;gap:12px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.skill-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding-bottom:12px;display:flex}.skill-level{color:var(--muted)}.contact{flex-direction:column;gap:28px;padding:48px 0 120px;display:flex}.say-hi{letter-spacing:-.04em;margin:0;font-size:clamp(40px,7vw,80px);font-weight:700;line-height:1}.say-hi span{color:var(--muted)}.contact-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.contact-btn{min-height:44px;padding:12px 20px;font-size:15px}.contact-link{box-sizing:border-box;align-items:center;min-height:44px;padding:12px 20px;font-size:15px;display:inline-flex}.footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:32px 0 48px;font-size:13px;display:flex}.nope-btn{min-height:44px;color:var(--ink);padding:10px 18px;font-size:13px}.footer-links{flex-wrap:wrap;gap:16px;display:flex}.secret-line{color:var(--muted);text-align:center;margin:0;padding:0 0 24px;font-size:12px}
