@font-face{font-family:geistSans;src:url(../media/Geist_Variable-s.p.2f6gsmzeok7d9.woff2)format("woff2");font-display:optional;font-weight:100 900}@font-face{font-family:geistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.pvQyDq_className{font-family:geistSans,geistSans Fallback}.pvQyDq_variable{--font-geist-sans:"geistSans", "geistSans Fallback"}
@font-face{font-family:geistMono;src:url(../media/GeistMono_Variable-s.3x4ptlur59b2g.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:geistMono Fallback;src:local(Arial);ascent-override:76.43%;descent-override:22.43%;line-gap-override:0.0%;size-adjust:131.49%}.INn2jq_className{font-family:geistMono,geistMono Fallback}.INn2jq_variable{--font-geist-mono:"geistMono", "geistMono Fallback"}
:root{--wall-a:#ffd3ae;--wall-b:#f2a1a6;--wall-c:#a7a4f0;--win:#fafafce0;--win-solid:#f7f7f9;--bar:#ececf0eb;--fg:#1c1c1e;--soft:#5f5f66;--line:#0000001f;--sel:#5856d6;--on-sel:#fff;--hover:#0000000f;--menubar:#ffffff8c;--dock:#ffffff73;--shadow:0 22px 60px #141e3c47, 0 0 0 .5px #0000002e;--term-bg:#fff;--term-fg:#1c1c1e;--term-dim:#6b6b73;--term-ok:#1b7f3b;--term-key:#0a64d8;--sys:var(--font-geist-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--mono:var(--font-geist-mono), ui-monospace, Menlo, Consolas, monospace;--menubar-h:28px;--dock-space:84px;--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--wall-a:#2a1d57;--wall-b:#5a2944;--wall-c:#110e2a;--win:#242428db;--win-solid:#26262a;--bar:#303036eb;--fg:#f2f2f5;--soft:#a5a5ae;--line:#ffffff1f;--sel:#5e5ce6;--on-sel:#fff;--hover:#ffffff12;--menubar:#14141a80;--dock:#28283073;--shadow:0 22px 60px #0000008c, 0 0 0 .5px #ffffff29;--term-bg:#1b1b1f;--term-fg:#e9e9ee;--term-dim:#9a9aa3;--term-ok:#5ad37f;--term-key:#7ab4ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--wall-a:#2a1d57;--wall-b:#5a2944;--wall-c:#110e2a;--win:#242428db;--win-solid:#26262a;--bar:#303036eb;--fg:#f2f2f5;--soft:#a5a5ae;--line:#ffffff1f;--sel:#5e5ce6;--on-sel:#fff;--hover:#ffffff12;--menubar:#14141a80;--dock:#28283073;--shadow:0 22px 60px #0000008c, 0 0 0 .5px #ffffff29;--term-bg:#1b1b1f;--term-fg:#e9e9ee;--term-dim:#9a9aa3;--term-ok:#5ad37f;--term-key:#7ab4ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{color:var(--fg);font:400 14px/1.5 var(--sys);-webkit-font-smoothing:antialiased;background-color:var(--wall-a);background-image:radial-gradient(120% 90% at 0% 100%, var(--wall-c) 0 30%, transparent 60%), radial-gradient(90% 80% at 100% 0%, var(--wall-b) 0 25%, transparent 65%), linear-gradient(160deg, var(--wall-a), var(--wall-b) 55%, var(--wall-c));background-attachment:fixed;margin:0;overflow:hidden}button{font:inherit;color:inherit}a{color:var(--sel)}img{max-width:100%}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--sel);outline-offset:2px;border-radius:6px}.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}.sr-defs{position:absolute}.menubar{z-index:1000;height:calc(var(--menubar-h) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-left:max(14px, env(safe-area-inset-left,0px));padding-right:max(14px, env(safe-area-inset-right,0px));background:var(--menubar);-webkit-backdrop-filter:blur(24px)saturate(1.6);align-items:center;gap:4px;font-size:13px;display:flex;position:fixed;inset:0 0 auto}.menubar .brand{white-space:nowrap;padding:0 10px 0 2px;font-weight:700}.menus{scrollbar-width:none;gap:2px;min-width:0;display:flex;overflow-x:auto}.menus button,.menubar .right button,.menubar .lang{cursor:default;white-space:nowrap;color:var(--fg);background:0 0;border:0;border-radius:5px;padding:2px 9px;text-decoration:none}.menus button:hover,.menubar .right button:hover,.menubar .lang:hover{background:var(--hover)}.menubar .right{white-space:nowrap;align-items:center;gap:6px;margin-left:auto;display:flex}.clock{font-variant-numeric:tabular-nums}.desk{inset:calc(var(--menubar-h) + env(safe-area-inset-top,0px)) 0 0 0;position:fixed}.icons{right:max(18px, env(safe-area-inset-right,0px));z-index:1;justify-items:center;gap:14px;display:grid;position:absolute;top:18px}.icon{cursor:default;width:92px;color:var(--fg);background:0 0;border:0;border-radius:8px;justify-items:center;gap:4px;padding:6px 4px;display:grid}.icon:hover{background:var(--hover)}.icon svg{filter:drop-shadow(0 3px 6px #0000002e);width:56px;height:56px}.icon span{text-align:center;font-size:12px;line-height:1.25}.win{--ww:min(var(--w), 100% - 40px);--wh:min(var(--h,400px), 100% - var(--dock-space) - 20px);left:clamp(12px, calc(var(--x) * 100%), calc(100% - var(--ww) - 12px));top:clamp(8px, calc(var(--y) * (100% - var(--dock-space))), calc(100% - var(--dock-space) - var(--wh)));width:var(--ww);height:var(--wh);background:var(--win);min-width:280px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(30px)saturate(1.5);transition:opacity .18s ease, transform .22s var(--ease);border-radius:12px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.win.auto-height{height:auto;max-height:calc(100% - var(--dock-space) - 20px);top:clamp(8px, calc(var(--y) * (100% - var(--dock-space))), 40%)}.win.closed{display:none}.win.min{opacity:0;pointer-events:none;transform:translateY(40px)scale(.6)}.win.zoomed{width:calc(100% - 16px)!important;height:calc(100% - var(--dock-space) - 20px)!important;top:8px!important;left:8px!important}.bar{background:var(--bar);border-bottom:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;flex:none;grid-template-columns:76px minmax(0,1fr) 76px;align-items:center;height:38px;padding:0 12px;display:grid}.bar:active{cursor:grabbing}.bar.tall{height:auto;min-height:38px;padding-block:6px}.lights{gap:8px;display:flex}.l{cursor:default;color:#0009;border:0;border-radius:50%;place-items:center;width:12px;height:12px;padding:0;display:grid}.l.close{background:#ff5f57}.l.min{background:#febc2e}.l.zoom{background:#28c840}.win:not(.front) .l{background:var(--line)}.l svg{opacity:0;width:8px;height:8px}.lights:hover .l svg,.l:focus-visible svg{opacity:1}.wt{text-align:center;color:var(--soft);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;font-weight:600;overflow:hidden}.win.front .wt{color:var(--fg)}.wt .sub{color:var(--soft);white-space:normal;font-size:11px;font-weight:400;line-height:1.3;display:block}.body{flex:1;min-height:0;overflow:auto}.rz{z-index:5;touch-action:none;position:absolute}.rz-n,.rz-s{cursor:ns-resize;height:6px;left:12px;right:12px}.rz-n{top:0}.rz-s{bottom:0}.rz-e,.rz-w{cursor:ew-resize;width:6px;top:12px;bottom:12px}.rz-e{right:0}.rz-w{left:0}.rz-ne,.rz-nw,.rz-se,.rz-sw{width:14px;height:14px}.rz-ne{cursor:nesw-resize;top:0;right:0}.rz-sw{cursor:nesw-resize;bottom:0;left:0}.rz-nw{cursor:nwse-resize;top:0;left:0}.rz-se{cursor:nwse-resize;bottom:0;right:0}.win.zoomed .rz{display:none}.about{gap:14px;padding:24px 28px 26px;display:grid}.about h1{letter-spacing:-.04em;text-wrap:balance;margin:0;font-size:clamp(34px,3.8vw,50px);font-weight:800;line-height:.98}.about .role{margin:0;font-size:17px;font-weight:600}.about p{max-width:54ch;color:var(--soft);margin:0;font-size:15px}.about .lead{color:var(--fg)}.btns{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.btns.center{align-items:center}.btn{border:.5px solid var(--line);background:var(--win-solid);color:var(--fg);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:6px 14px;font-weight:500;text-decoration:none;display:inline-flex;box-shadow:0 1px 1.5px #00000014}.btn.primary{background:var(--sel);color:var(--on-sel);border-color:#0000}.btn:hover{filter:brightness(1.05)}.mail{font:13px var(--mono);-webkit-user-select:all;user-select:all}.term-body{background:var(--term-bg)}.term{color:var(--term-fg);font:400 13px/1.55 var(--mono);min-height:100%;padding:12px 14px 16px}.tl{white-space:pre-wrap;word-break:break-word;margin:0}.tl-hint{color:var(--term-dim)}.term .p{color:var(--term-ok)}html.js .term-out[data-phase=ssr]{visibility:hidden}.term-form{gap:8px;margin-top:2px;display:flex}.term-form label{white-space:nowrap}.term-form input{min-width:0;color:inherit;font:inherit;caret-color:var(--term-ok);background:0 0;border:0;outline:none;flex:1;padding:0}.term-form:focus-within{outline:2px solid var(--sel);outline-offset:2px;border-radius:4px}.split{grid-template-columns:210px minmax(0,1fr);height:100%;display:grid}.side{border-right:1px solid var(--line);background:#7f7f7f0d;padding:8px;overflow:auto}.side-label{color:var(--soft);margin:6px 8px;font-size:11px;font-weight:600}.tab{text-align:left;cursor:default;background:0 0;border:0;border-radius:7px;grid-template-columns:28px minmax(0,1fr);align-items:center;column-gap:10px;width:100%;padding:8px 10px;display:grid}.tab .logo{grid-row:span 2}.tab strong{font-size:13.5px;font-weight:600}.tab span{color:var(--soft);font-size:12px}.tab:hover{background:var(--hover)}.tab[aria-selected=true]{background:var(--sel);color:var(--on-sel)}.tab[aria-selected=true] span{color:inherit}.logo{border:.5px solid var(--line);width:28px;height:28px;font:700 10.5px/1 var(--sys);color:#5f5f66;object-fit:cover;background:#fff;border-radius:7px;place-items:center;font-style:normal;display:grid;box-shadow:0 1px 2px #00000014}.logo.lg{border-radius:11px;width:44px;height:44px;margin-bottom:12px;font-size:14px}.pane{padding:22px 26px 26px;overflow:auto}.pane h3{letter-spacing:-.03em;margin:0;font-size:22px;line-height:1.2}.pane .meta{color:var(--soft);margin:4px 0 0}.pane ul{max-width:62ch;margin:16px 0 0;padding-left:18px;font-size:14.5px}.pane li{margin-bottom:7px}.tags{flex-wrap:wrap;gap:6px;list-style:none;display:flex;padding:0!important}.tags li{background:var(--hover);border:.5px solid var(--line);border-radius:999px;margin:0;padding:2px 8px;font-size:12px}.finder{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:18px 14px;margin:0;padding:18px;list-style:none;display:grid}.file{cursor:default;text-align:center;background:0 0;border:0;border-radius:10px;justify-items:center;gap:7px;width:100%;padding:8px;display:grid}.file:hover{background:var(--hover)}.thumb{aspect-ratio:16/10;background:#000;border-radius:6px;width:100%;position:relative;overflow:hidden;box-shadow:0 2px 8px #0003}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb .play{background:#0000008c;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;inset:auto 6px 6px auto}.file b{word-break:break-word;font-size:12.5px;font-weight:500;line-height:1.3}.file small{color:var(--soft);margin-top:-4px;font-size:11.5px}.viewer video{aspect-ratio:16/9;object-fit:contain;background:#000;width:100%;display:block}.viewer .info{padding:16px 20px 20px}.viewer h3{margin:0;font-size:18px}.viewer .info p{color:var(--soft);max-width:64ch;margin:6px 0 0}.preview{background:#7f7f7f1f}.cv-tools{z-index:1;background:var(--bar);border-bottom:1px solid var(--line);color:var(--soft);justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;font-size:12px;display:flex;position:sticky;top:0}.paper{color:#1c1c1e;background:#fff;max-width:640px;margin:20px auto 28px;padding:40px 44px 44px;font-size:13.5px;line-height:1.55;box-shadow:0 2px 10px #0000002e}.paper a{color:#4a48c4}.paper .cv-name{letter-spacing:-.02em;margin:0;font-size:26px;line-height:1.1}.paper .cv-title{color:#3a3a40;margin:4px 0 0;font-weight:600}.paper .cv-contact{color:#4a4a52;flex-wrap:wrap;gap:2px 16px;margin:10px 0 0;padding:0;font-size:12.5px;list-style:none;display:flex}.paper :is(h2,h3):not(.cv-name){border-bottom:1px solid #d5d5da;margin:22px 0 8px;padding-bottom:4px;font-size:13px}.paper p{margin:0 0 8px}.paper .job{margin-bottom:12px}.paper :is(h3,h4):is(.job *){border:0;margin:0;padding:0;font-size:14px}.paper .jm{color:#55555d;margin:0 0 4px;font-size:12.5px}.paper ul{margin:0;padding-left:18px}.paper li{margin-bottom:3px}.paper .skills{gap:4px;margin:0;display:grid}.paper .skills div{grid-template-columns:11rem minmax(0,1fr);gap:14px;display:grid}.paper .skills dt{font-weight:600}.paper .skills dd{margin:0}.dock{left:50%;bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:1000;background:var(--dock);-webkit-backdrop-filter:blur(26px)saturate(1.6);box-shadow:0 0 0 .5px var(--line), 0 10px 30px #0000002e;border-radius:20px;align-items:flex-end;gap:6px;max-width:calc(100% - 24px);padding:6px 8px;display:flex;position:fixed;transform:translate(-50%)}.dock .sep{background:var(--line);align-self:stretch;width:1px;margin:6px 4px}.app{width:52px;height:52px;transition:transform .18s var(--ease);transform-origin:bottom;background:0 0;border:0;place-items:center;padding:0;text-decoration:none;display:grid;position:relative}.app svg{width:100%;height:100%}.app:hover{transform:scale(1.35)translateY(-6px)}.app:hover+.app{transform:scale(1.14)translateY(-2px)}.app:has(+.app:hover){transform:scale(1.14)translateY(-2px)}.app .tip{background:var(--win-solid);color:var(--fg);white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 0 0 .5px var(--line), 0 4px 12px #00000026;border-radius:6px;padding:3px 9px;font-size:12px;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%)scale(.74)}.app:hover .tip,.app:focus-visible .tip{opacity:1}.app.running:after{content:"";background:var(--fg);opacity:.7;border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:-5px;left:50%}@media (max-width:899px),(max-height:599px){body{background-attachment:scroll;overflow:auto}.desk{padding:calc(var(--menubar-h) + env(safe-area-inset-top,0px) + 14px) max(12px, env(safe-area-inset-right,0px)) 110px max(12px, env(safe-area-inset-left,0px));gap:16px;display:grid;position:static}.menus,.icons{display:none}.win,.win.auto-height{min-width:0;max-height:none;scroll-margin-top:calc(var(--menubar-h) + 12px);position:relative;width:auto!important;height:auto!important;top:auto!important;left:auto!important}.win.min{display:none}.win.desk-hidden{display:flex}.win.zoomed{width:auto!important;height:auto!important;top:auto!important;left:auto!important}.bar{cursor:default;grid-template-columns:96px minmax(0,1fr) 96px}.lights{gap:14px}.l{width:14px;height:14px;position:relative}.l:after{content:"";border-radius:50%;position:absolute;inset:-5px}.rz{display:none}.body{overflow:visible}.split{grid-template-columns:1fr;height:auto}.side{border-right:0;border-bottom:1px solid var(--line);gap:4px;display:flex;overflow-x:auto}.side-label{display:none}.tab{flex:none;width:auto}.term{max-height:340px;overflow:auto}#w-resume,#w-viewer{right:8px;bottom:calc(84px + env(safe-area-inset-bottom,0px));top:calc(var(--menubar-h) + 8px + env(safe-area-inset-top,0px))!important;z-index:950!important;position:fixed!important;left:8px!important}#w-resume .body,#w-viewer .body{overflow:auto}.finder{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 8px;padding:12px}.paper{margin:12px 8px 20px;padding:24px 20px}.paper .skills div{grid-template-columns:1fr;gap:0}.app{width:44px;height:44px}.app:hover,.app:hover+.app{transform:none}.app:has(+.app:hover){transform:none}}@media (max-width:479px){.clock{display:none}}@media (min-width:900px) and (min-height:600px){.win.desk-hidden{display:none}}@media (prefers-reduced-motion:reduce){.win,.app,.btn{transition:none}.app:hover,.app:hover+.app{transform:none}.app:has(+.app:hover){transform:none}}:is(body:has(.resume-page),body:has(.not-found)){overflow:auto}.resume-page .cv-tools{padding:calc(10px + env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) 10px max(16px, env(safe-area-inset-left,0px));-webkit-backdrop-filter:blur(20px);font-size:13px}.resume-page main{padding:8px max(16px, env(safe-area-inset-right,0px)) 48px max(16px, env(safe-area-inset-left,0px))}.not-found{min-height:100%;padding:24px max(16px, env(safe-area-inset-right,0px)) 24px max(16px, env(safe-area-inset-left,0px));place-items:center;display:grid}.not-found .win{width:min(440px,100%);min-width:0;height:auto;position:relative;top:auto;left:auto}.not-found .wt{color:var(--fg)}
