@property --bg{syntax: "<color>"; inherits: true; initial-value: #b4c0cc;}@property --bg-deep{syntax: "<color>"; inherits: true; initial-value: #8e9aab;}:root{transition:--bg 1s cubic-bezier(.25,.75,.75,1),--bg-deep 1s cubic-bezier(.25,.75,.75,1);--bg: #b4c0cc;--bg-deep: #8e9aab;--surface: #fbf8f4;--surface-2: #f4ece3;--fg: #2b211b;--muted: #6d5f54;--line: #e2d5c6;--accent: #6a4630;--accent-ink: #ffffff;--accent-soft: #efe1d1;--danger: #b3261e;--shadow: 0 18px 48px -18px rgba(70, 45, 25, .3);--font-display: "Unbounded", "Trebuchet MS", system-ui, sans-serif;--font-body: "Figtree", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--step--1: .8125rem;--step-0: 1rem;--step-1: 1.2rem;--step-2: 1.5rem}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #141a2b;--bg-deep: #0d1120;--surface: #161616;--surface-2: #1f1f1f;--fg: #f2f2f2;--muted: #a3a3a3;--line: #333333;--accent: #f2f2f2;--accent-ink: #111111;--accent-soft: #2e2e2e;--danger: #ff8a80;--shadow: 0 18px 48px -18px rgba(0, 0, 0, .75);color-scheme:dark}}:root[data-theme=dark]{--bg: #141a2b;--bg-deep: #0d1120;--surface: #161616;--surface-2: #1f1f1f;--fg: #f2f2f2;--muted: #a3a3a3;--line: #333333;--accent: #f2f2f2;--accent-ink: #111111;--accent-soft: #2e2e2e;--danger: #ff8a80;--shadow: 0 18px 48px -18px rgba(0, 0, 0, .75);color-scheme:dark}:root[data-mode=day]{--bg: #b4c0cc;--bg-deep: #8e9aab;--surface: #fbf8f4;--surface-2: #f4ece3;--fg: #2b211b;--muted: #6d5f54;--line: #e2d5c6;--accent: #6a4630;--accent-ink: #ffffff;--accent-soft: #efe1d1;--danger: #b3261e;--shadow: 0 18px 48px -18px rgba(70, 45, 25, .3);color-scheme:light}:root[data-mode=night]{--bg: #141a2b;--bg-deep: #0d1120;--surface: #161616;--surface-2: #1f1f1f;--fg: #f2f2f2;--muted: #a3a3a3;--line: #333333;--accent: #f2f2f2;--accent-ink: #111111;--accent-soft: #2e2e2e;--danger: #ff8a80;--shadow: 0 18px 48px -18px rgba(0, 0, 0, .75);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--step-0);line-height:1.55;overflow:hidden}body.is-flat{overflow:auto}#root{height:100%}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}p{margin:0}h2,h3{text-wrap:balance}.muted{color:var(--muted)}.topbar{position:fixed;inset:0 0 auto 0;z-index:30;display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 12px;pointer-events:none}.topbar>*{pointer-events:auto}.app-flat .topbar{background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);min-width:0}.brand-mark{display:grid;flex-shrink:0;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:.72rem;font-weight:500}.brand-name{font-family:var(--font-display);font-weight:600;font-size:.85rem;letter-spacing:.01em;white-space:nowrap}.nav{margin-inline:auto;display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.nav-link{border:0;background:none;padding:7px 14px;border-radius:999px;font-weight:600;font-size:.9rem;color:var(--muted);white-space:nowrap}.nav-link:hover,.nav-link[aria-current=page]{background:var(--accent-soft);color:var(--fg)}.tools{display:flex;gap:6px;margin-left:auto}.nav+.tools{margin-left:0}.tool{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:40px;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-family:var(--font-mono);font-size:.8rem;font-weight:500;flex-shrink:0}.tool:hover{border-color:var(--accent)}.tool-text{font-family:var(--font-body);font-weight:600}@media(max-width:899.98px){.tool-text{display:none}.nav-link{padding-inline:10px}}.stage{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 50% 35%,var(--bg) 0%,var(--bg-deep) 100%)}.stage canvas{touch-action:none}.loading,.hint{position:absolute;left:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);margin:0;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--surface) 85%,transparent);border:1px solid var(--line);color:var(--muted);font-size:var(--step--1);max-width:calc(100% - 32px)}.loading{left:50%;bottom:50%;transform:translate(-50%,50%);display:flex;flex-direction:column;gap:8px;min-width:220px;padding:12px 18px;border-radius:16px;text-align:center}.loading b{color:var(--fg);font-variant-numeric:tabular-nums}.loading-barra{display:block;height:4px;border-radius:999px;background:var(--line);overflow:hidden}.loading-barra i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .25s ease-out}@media(max-width:759.98px){.hint{left:50%;transform:translate(-50%);white-space:nowrap;bottom:calc(env(safe-area-inset-bottom,0px) + 76px)}}.credits-link{position:absolute;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);display:inline-flex;align-items:center;gap:6px;padding:8px 14px 8px 10px;border-radius:999px;background:color-mix(in srgb,var(--surface) 85%,transparent);border:1px solid var(--line);color:var(--muted);font-size:var(--step--1);font-weight:600}.credits-link svg{width:16px;height:16px}.credits-link:hover{color:var(--fg);border-color:var(--accent)}@media(max-width:759.98px){.credits-link{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 72px)}}.credits{display:grid;gap:12px;min-width:0}.credits-intro,.credits-note{margin:0;color:var(--muted)}.credits-note{font-size:var(--step--1)}.credits-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.credits-list li{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);min-width:0}.credits-list a{font-weight:600;overflow-wrap:anywhere}.credits-list span{font-size:var(--step--1);color:var(--muted)}.credits a{color:var(--fg);text-underline-offset:2px}.credits a:hover{color:var(--accent)}.flat-credits{padding-top:28px;border-top:1px solid var(--line)}.tag{display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 9px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);font-size:var(--step--1);font-weight:600;white-space:nowrap;box-shadow:0 6px 18px -8px #00000059;transition:background-color .2s ease,color .2s ease,transform .2s ease;-webkit-user-select:none;user-select:none}@media(max-width:759.98px){.tag{padding:4px 9px 4px 7px;font-size:.72rem;gap:5px}}.tag.is-hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);transform:translateY(-2px)}.tag-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent);animation:pulse 2.2s ease-out infinite}.tag.is-hover .tag-dot{background:var(--accent-ink)}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%,to{box-shadow:0 0 0 9px transparent}}.panel{position:absolute;z-index:25;top:calc(env(safe-area-inset-top,0px) + 76px);right:16px;bottom:16px;width:min(460px,42vw);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);animation:slide-in .45s cubic-bezier(.2,.8,.2,1) both}@keyframes slide-in{0%{transform:translate(24px);opacity:.2}to{transform:none;opacity:1}}.panel-top{position:absolute;top:14px;right:14px;z-index:1}.panel-body{flex:1;overflow-y:auto;padding:18px 20px 24px;display:grid;align-content:start;gap:14px;min-width:0}@media(max-width:759.98px){.panel{top:auto;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 64px);width:auto;height:58%;border-radius:22px 22px 0 0;border-bottom:0;animation-name:sheet-in}@keyframes sheet-in{0%{transform:translateY(32px);opacity:.2}to{transform:none;opacity:1}}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.screen{position:absolute;left:0;top:0;z-index:22;visibility:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;container-type:size;background:var(--scr-bg);color:var(--scr-fg);color-scheme:dark;animation:screen-on .24s cubic-bezier(.2,.8,.2,1) both}@keyframes screen-on{0%{clip-path:inset(50% 0 50% 0);opacity:.3}to{clip-path:inset(0);opacity:1}}.screen--monitor{--scr-bg: #0d1117;--scr-bar: #161b22;--scr-card: #0d1117;--scr-line: #30363d;--scr-fg: #e6edf3;--scr-muted: #9198a1;--scr-accent: #238636;--scr-accent-soft: #1f6feb33;--scr-link: #4493f8;--scr-dot-1: #f47067;--scr-dot-2: #e0b354;--scr-dot-3: #57ab5a;--accent-ink: #ffffff;--gh-l0: #161b22;--gh-l1: #0e4429;--gh-l2: #006d32;--gh-l3: #26a641;--gh-l4: #39d353;--surface: var(--scr-bg);--surface-2: var(--scr-bar);--fg: var(--scr-fg);--muted: var(--scr-muted);--line: var(--scr-line);--accent: var(--scr-link)}:root[data-mode=night] .screen--monitor{--scr-bg: #191c24;--scr-bar: #252a34;--scr-card: #191c24;--scr-line: #3b414c;--gh-l0: #252a34}.win-bar{position:relative;display:flex;align-items:center;justify-content:center;height:3.6cqw;background:var(--scr-bar)}.win-dots{position:absolute;left:1.45cqw;display:flex;gap:.5cqw}.win-dots i{width:.9cqw;height:.9cqw;border-radius:50%;background:var(--scr-dot-1)}.win-dots i:nth-child(2){background:var(--scr-dot-2)}.win-dots i:nth-child(3){background:var(--scr-dot-3)}.win-path{font-family:var(--font-mono);font-weight:500;font-size:1.25cqw;line-height:1;color:var(--scr-muted)}.win-close{position:absolute;right:calc(2.2cqw - (max(2.6cqw,28px)/2));display:grid;place-items:center;width:max(2.6cqw,28px);height:max(2.6cqw,28px);padding:0;border:0;border-radius:6px;background:none;color:var(--scr-muted)}.win-close svg{width:2cqw;height:2cqw}.win-close:hover{background:var(--scr-line);color:var(--scr-fg)}.win-scroll{container:win / inline-size;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:var(--scr-line) transparent;display:grid;align-content:start;gap:.9em;padding:2.4cqw 2.6cqw 3cqw;font-size:clamp(14px,1.4cqw,32px);--step--1: .8125em;--step-0: 1em;--step-1: 1.2em;--step-2: 1.5em}.win-task{display:flex;align-items:center;gap:.8cqw;height:max(4cqw,40px);padding:0 1cqw 0 2.6cqw;background:var(--scr-bar)}.win-hint{margin-right:auto;font-family:var(--font-mono);font-size:max(1.1cqw,12px);line-height:1;color:var(--scr-muted);white-space:nowrap}@media(hover:none){.win-hint{visibility:hidden}}.win-btn{display:inline-flex;align-items:center;gap:.5em;height:max(2.7cqw,30px);padding:0 1.1em;border:1px solid var(--scr-line);border-radius:999px;background:none;color:var(--scr-fg);font-size:max(1.15cqw,13px);font-weight:600;white-space:nowrap}.win-btn svg{width:1.3em;height:1.3em}.win-btn:hover{border-color:var(--scr-accent)}.win-btn-primary{border-color:var(--scr-accent);background:var(--scr-accent);color:var(--accent-ink)}.section-head{padding-right:52px;display:flex;align-items:center;gap:12px}.section-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--fg);flex-shrink:0}.section-head h2{margin:0;font-family:var(--font-display);font-weight:600;font-size:var(--step-2);letter-spacing:-.01em;line-height:1.15}.section-head h2:focus{outline:none}.mini-title{margin:6px 0 0;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.chips li{padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:var(--step--1);font-weight:500}.chips-mono li{font-family:var(--font-mono);font-size:.72em}.about{display:grid;gap:12px}.about-hero{display:flex;align-items:center;gap:14px}.avatar{display:grid;place-items:center;width:60px;height:60px;border-radius:18px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);font-weight:600;font-size:1.1rem;flex-shrink:0}img.avatar{object-fit:cover}.about-id{display:grid;gap:2px;min-width:0}.about-name{font-weight:700;font-size:var(--step-1)}.about-place{display:inline-flex;align-items:center;gap:4px;font-size:var(--step--1);color:var(--muted)}.edu{list-style:none;margin:0;padding:0;display:grid;gap:8px}.edu li{display:grid;gap:2px}.edu-course{font-weight:600}.facts{margin:4px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 20px}.facts dd{margin:4px 0 0}.lang-switch{display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;width:fit-content;background:var(--surface-2)}.lang-switch-label{padding:0 8px;font-size:var(--step--1);color:var(--muted)}.lang-switch button{border:0;background:none;padding:4px 12px;border-radius:999px;font-size:var(--step--1);font-weight:600}.lang-switch button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.timeline{list-style:none;margin:14px 0 0;padding:0 0 0 22px;border-left:2px solid var(--line);display:grid;gap:22px}.timeline-item{position:relative;display:grid;gap:8px;min-width:0}.timeline-item:before{content:"";position:absolute;left:-30px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--accent)}.timeline-date{font-family:var(--font-mono);font-size:.75em;color:var(--muted);font-variant-numeric:tabular-nums}.project{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);min-width:0}.project-body{display:grid;gap:8px;min-width:0}.project h3,.job h3{margin:0;font-size:var(--step-1);line-height:1.25}.project-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.project-role{color:var(--muted);font-size:.92em}.project-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:2px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;background:var(--accent-soft);font-size:.75em;font-weight:600;white-space:nowrap}.badge-quiet{background:none;border:1px dashed var(--line);color:var(--muted)}.project-media{width:100%;aspect-ratio:16 / 9;max-width:100%;border-radius:10px;object-fit:cover;border:1px solid var(--line)}.project-media-empty{display:grid;place-content:center;justify-items:center;gap:4px;color:var(--muted);font-family:var(--font-mono);font-size:.72em;background:repeating-linear-gradient(-45deg,transparent 0 10px,color-mix(in srgb,var(--line) 70%,transparent) 10px 11px),var(--surface);border:1px solid var(--line)}.text-link{display:inline-flex;align-items:center;gap:4px;width:fit-content;font-weight:600;color:var(--accent);text-decoration:none;border-bottom:1px solid currentColor}.jobs{list-style:none;margin:12px 0 0;padding:0;display:grid}.job{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--line)}.job:first-child{border-top:0;padding-top:4px}.job-period{font-family:var(--font-mono);font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.job-org{display:inline-flex;align-items:center;gap:4px;width:fit-content;font-weight:600;color:var(--accent);text-decoration:none}a.job-org:hover{text-decoration:underline}.job .chips{margin-top:6px}.job-highlights{margin:6px 0 0;padding-left:18px;display:grid;gap:6px}.job-highlights li::marker{color:var(--muted)}.apps{list-style:none;margin:16px 0 4px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}:where(.apps) .app{display:grid;justify-items:center;gap:7px;width:100%;padding:6px 0;border:0;border-radius:16px;background:none;color:var(--fg);text-decoration:none}.app-art{display:block;width:60px;height:60px;filter:drop-shadow(0 6px 10px rgba(40,20,30,.18));transition:transform .2s ease}:where(.apps) .app:hover .app-art{transform:translateY(-2px)}.app-name{font-size:var(--step--1);font-weight:600;line-height:1.2}.mail{--mail-bg: var(--surface-2);--mail-bar: var(--surface-2);--mail-fg: var(--fg);--mail-muted: var(--muted);--mail-line: var(--line);--mail-accent: var(--accent);--mail-accent-ink: var(--accent-ink);--mail-danger: var(--danger);--mail-pad: 14px;container:mail / inline-size;display:flex;flex-direction:column;margin-top:10px;border:1px solid var(--mail-line);border-radius:20px;background:var(--mail-bg);color:var(--mail-fg)}.mail-bar{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"cancel title send";align-items:center;gap:8px;padding:.6em var(--mail-pad);border-bottom:1px solid var(--mail-line);border-radius:20px 20px 0 0;background:var(--mail-bar)}.flat .mail{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 84px)}.flat .mail-bar{position:sticky;top:calc(env(safe-area-inset-top,0px) + 70px);z-index:1}.mail-cancel,.mail-bar-side{grid-area:cancel;justify-self:start}.mail-cancel{padding:.35em .8em;border:0;border-radius:999px;background:color-mix(in srgb,var(--mail-fg) 10%,transparent);color:var(--mail-fg);font-weight:500;white-space:nowrap}.mail-title{grid-area:title;margin:0;font-size:1.05em;font-weight:700;line-height:1.2;text-align:center;white-space:nowrap}.mail-send{grid-area:send;justify-self:end;display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:var(--mail-accent);color:var(--mail-accent-ink)}.mail-send svg{width:55%;height:55%}.mail-send:disabled{opacity:.55;cursor:progress}.mail-row{display:flex;align-items:baseline;gap:.5em;margin-left:var(--mail-pad);padding:.75em var(--mail-pad) .75em 0;border-bottom:1px solid var(--mail-line)}.mail-row:focus-within{border-bottom-color:var(--mail-accent);box-shadow:0 1px 0 var(--mail-accent)}.mail-label{flex-shrink:0;color:var(--mail-muted)}.mail-row:focus-within .mail-label{color:var(--mail-fg)}.mail-input{flex:1;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;line-height:1.35}.mail-input::placeholder{color:var(--mail-muted);opacity:.75}.mail-input:focus-visible{outline:none}.mail-input[aria-invalid=true]::placeholder{color:var(--mail-danger)}.mail-to{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"label address actions";align-items:center}.mail-to .mail-label{grid-area:label}.mail-address{grid-area:address;min-width:0;color:var(--mail-accent);font-weight:600;overflow-wrap:anywhere}.mail-actions{grid-area:actions;display:flex;gap:6px}.mail-icon{display:grid;place-items:center;width:2.1em;height:2.1em;min-width:28px;min-height:28px;padding:0;border:1px solid var(--mail-line);border-radius:50%;background:none;color:var(--mail-fg)}.mail-icon svg{width:55%;height:55%}.mail-icon:hover{border-color:var(--mail-accent)}.mail-body{display:block;margin-right:var(--mail-pad);padding-right:0;border-bottom:0}.mail-text{display:block;width:100%;min-height:8em;resize:vertical;line-height:1.45}.mail-body:focus-within{border-bottom:1px solid var(--mail-accent)}@container mail (width < 360px){.mail-to{grid-template-columns:auto 1fr;grid-template-areas:"label actions" "address address";row-gap:.3em}.mail-actions{justify-self:end}}@container mail (width < 260px){.mail-bar{grid-template-columns:1fr auto;grid-template-areas:"cancel send" "title title";row-gap:.5em}.mail-title{font-size:1.3em;text-align:left}}.mail-error{margin:.4em var(--mail-pad) 0;color:var(--mail-danger);font-size:.85em;line-height:1.35}.mail .form-note{margin:.4em var(--mail-pad) var(--mail-pad)}.form-note{padding:.7em .85em;border-radius:12px;background:color-mix(in srgb,var(--mail-accent, var(--accent)) 18%,transparent);font-size:.9em;line-height:1.4}@media(max-width:759.98px){.form-note{scroll-margin-bottom:calc(76px + env(safe-area-inset-bottom,0px))}}.form-note.is-error{background:none;border:1px solid var(--mail-danger, var(--danger));color:var(--mail-danger, var(--danger))}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.flat{max-width:720px;margin:0 auto;padding-inline:16px;padding-block:calc(env(safe-area-inset-top,0px) + 92px) 120px;display:grid;gap:40px}.flat-section{display:grid;gap:14px;scroll-margin-top:90px;min-width:0}.tabbar{position:fixed;inset:auto 0 0 0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);padding:6px 8px calc(env(safe-area-inset-bottom,0px) + 6px);background:var(--surface);border-top:1px solid var(--line);height:calc(64px + env(safe-area-inset-bottom,0px))}.tab{display:grid;justify-items:center;align-content:center;gap:2px;border:0;background:none;border-radius:12px;color:var(--muted);font-size:.7rem;font-weight:600;min-width:0}.tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab[aria-current=page]{color:var(--fg);background:var(--accent-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.win-scroll.gh{gap:1.1em;padding-top:0;font-size:clamp(13px,1.15cqw,28px)}.gh button{font:inherit}.gh-tabs{position:sticky;top:0;z-index:1;display:flex;gap:.4em;margin:0 -2.6cqw;padding:.7em 2.6cqw 0;border-bottom:1px solid var(--scr-line);background:var(--scr-bg)}.gh-tab{display:inline-flex;align-items:center;gap:.5em;padding:.55em .8em .75em;border:0;border-bottom:2px solid transparent;background:none;color:var(--scr-fg)}.gh-tab svg{width:1.1em;height:1.1em;color:var(--scr-muted)}.gh-tab:hover{border-bottom-color:var(--scr-line)}.gh-tab[aria-current=page]{border-bottom-color:#f78166;font-weight:600}.gh-count{padding:0 .55em;border-radius:2em;background:var(--scr-line);font-size:.85em;line-height:1.5}.gh-overview{display:grid;grid-template-columns:minmax(0,15em) minmax(0,1fr);gap:2em;align-items:start}.gh-profile{display:grid;gap:.5em}.gh-avatar{width:100%;aspect-ratio:1;border:1px solid var(--scr-line);border-radius:50%;object-fit:cover}.gh-name{margin:.4em 0 0;font-size:1.6em;font-weight:600;line-height:1.2}.gh-login{margin:0;font-size:1.15em;color:var(--scr-muted)}.gh-bio{margin:.3em 0}.gh-follow,.gh-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.45em 1em;border:1px solid var(--scr-line);border-radius:.45em;background:var(--scr-bar);color:var(--scr-fg);font-weight:600;text-decoration:none}.gh-follow:hover,.gh-btn:hover{border-color:var(--scr-muted)}.gh-follow svg,.gh-btn svg,.gh-meta svg,.gh-foot svg,.gh-pin-head svg,.gh-readme-bar svg{width:1.05em;height:1.05em;flex-shrink:0}.gh-meta{display:flex;align-items:center;gap:.4em;margin:0;color:var(--scr-muted)}.gh-meta b{color:var(--scr-fg)}.gh-sub{margin:.6em 0;font-size:1em;font-weight:400}.gh-box{border:1px solid var(--scr-line);border-radius:.45em}.gh-social{min-width:5.4em;color:var(--scr-muted);font-size:.85em}.gh-profile-readme{padding:1.5em}.gh-readme-path{margin:0 0 .9em;font-family:var(--font-mono);font-size:.8em;color:var(--scr-fg)}.gh-readme-path span{color:var(--scr-muted)}.gh-md{display:grid;gap:.8em;line-height:1.55}.gh-md :is(h1,h2,h3,h4,p,ul,pre){margin:0}.gh-md h2{padding-bottom:.3em;border-bottom:1px solid var(--scr-line);font-size:1.5em;font-weight:600;line-height:1.25}.gh-md h3{font-size:1.25em;font-weight:600}.gh-md hr{width:100%;height:.25em;margin:.4em 0;border:0;background:var(--scr-line)}.gh-md code{padding:.2em .4em;border-radius:.4em;background:var(--scr-bar);font-family:var(--font-mono);font-size:.85em}.gh-md a{color:var(--scr-link)}.gh-md pre{overflow-x:auto;padding:1em;border-radius:.45em;background:var(--scr-bar);font-size:.85em;line-height:1.45}.gh-md pre code{padding:0;background:none;font-size:1em}.gh-md .pl-k{color:#ff7b72}.gh-md :is(.pl-en,.pl-smi){color:#d2a8ff}.gh-md .pl-s,.gh-md .pl-s .pl-pds{color:#a5d6ff}.gh-md :is(.pl-c1,.pl-v){color:#79c0ff}.gh-md .pl-c{color:#8b949e}.gh-tools{display:flex;flex-wrap:wrap;gap:.4em;padding:0;list-style:none}.gh-tools li{padding:.15em .7em;border:1px solid var(--scr-line);border-radius:.4em;background:var(--scr-bar);font-family:var(--font-mono);font-size:.8em}.gh-md .gh-chip-link{display:inline-block;margin-right:.4em;padding:.2em .8em;border-radius:.4em;background:var(--scr-accent-soft);font-size:.85em;font-weight:600;text-decoration:none}.gh-pins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1em;margin:0;padding:0;list-style:none}.gh-pin{display:flex;flex-direction:column;gap:.5em;padding:1em}.gh-pin-head{display:flex;align-items:center;gap:.5em;margin:0;color:var(--scr-muted)}.gh-link{padding:0;border:0;background:none;color:var(--scr-link);font-weight:600;text-align:left;overflow-wrap:anywhere}.gh-link:hover{text-decoration:underline}.gh-link-big{font-size:1.25em}.gh-label{padding:0 .6em;border:1px solid var(--scr-line);border-radius:2em;color:var(--scr-muted);font-size:.8em;font-weight:500;line-height:1.6;white-space:nowrap}.gh-desc{flex:1;margin:0;color:var(--scr-muted);font-size:.92em}.gh-pin .gh-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.gh-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.4em 1.2em;margin:0;color:var(--scr-muted);font-size:.85em}.gh-foot span{display:inline-flex;align-items:center;gap:.3em}.gh-lang i{width:.85em;height:.85em;border:1px solid rgb(255 255 255 / .15);border-radius:50%}.gh-contrib{margin-top:1.2em;padding:1em}.gh-contrib h4{margin:0 0 .8em;font-size:1em;font-weight:400}.gh-grid{display:grid;grid-template-columns:repeat(53,minmax(0,1fr));gap:.22em}.gh-week{display:grid;gap:.22em;align-content:start}.gh-grid i,.gh-legend i{display:block;aspect-ratio:1;border-radius:.15em;background:var(--gh-l0);outline:1px solid rgb(255 255 255 / .04);outline-offset:-1px}.gh-grid i[data-l="1"],.gh-legend i[data-l="1"]{background:var(--gh-l1)}.gh-grid i[data-l="2"],.gh-legend i[data-l="2"]{background:var(--gh-l2)}.gh-grid i[data-l="3"],.gh-legend i[data-l="3"]{background:var(--gh-l3)}.gh-grid i[data-l="4"],.gh-legend i[data-l="4"]{background:var(--gh-l4)}.gh-legend{display:flex;align-items:center;justify-content:flex-end;gap:.25em;margin:.6em 0 0;color:var(--scr-muted);font-size:.8em}.gh-legend i{width:.9em}.gh-showcase-wrap{display:grid;gap:.9em}.gh-showcase-intro{margin:0;color:var(--scr-muted)}.gh-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2em;margin:0;padding:0;list-style:none}.gh-card{display:flex;flex-direction:column;overflow:hidden;transition:border-color .15s}.gh-card:hover{border-color:var(--scr-muted)}.gh-card-media{display:block;width:100%;aspect-ratio:16 / 9;padding:0;overflow:hidden;border:0;border-bottom:1px solid var(--scr-line);background:var(--scr-bar);cursor:pointer}.gh-card-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .35s ease}.gh-card:hover .gh-card-media img{transform:scale(1.03)}.gh-card-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4em;height:100%;color:var(--scr-muted)}.gh-card-empty svg{width:2em;height:2em}.gh-card-body{display:flex;flex:1;flex-direction:column;gap:.65em;padding:1em 1.1em 1.1em}.gh-card-head{display:flex;align-items:center;gap:.6em;margin:0}.gh-card-title{font-size:1.15em}.gh-card-date{margin-left:auto;color:var(--scr-muted);font-size:.85em;white-space:nowrap}.gh-card-desc{margin:0;line-height:1.5}.gh-card-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;margin:auto 0 0;padding-top:.2em}.gh-card-foot .gh-btn{padding:.3em .85em;font-size:.9em}.gh-repos{margin:0;padding:0;list-style:none}.gh-repo{display:grid;gap:.6em;padding:1.3em 0;border-bottom:1px solid var(--scr-line)}.gh-topics{display:flex;flex-wrap:wrap;gap:.4em;margin:0;padding:0;list-style:none}.gh-topics li{padding:.1em .7em;border-radius:2em;background:var(--scr-accent-soft);color:var(--scr-link);font-size:.82em;font-weight:500}.gh-repo-page{display:grid;gap:1em;padding-top:.4em}.gh-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.4em;margin:0;font-size:1.3em}.gh-crumb .gh-link{font-weight:400}.gh-crumb .gh-label{font-size:.65em}.gh-readme-bar{display:flex;align-items:center;gap:.5em;margin:0;padding:.7em 1em;border-bottom:1px solid var(--scr-line);font-weight:600}.gh-readme-body{display:grid;gap:.7em;padding:1.2em 1.6em 1.6em}.gh-readme-body h3{margin:0;padding-bottom:.3em;border-bottom:1px solid var(--scr-line);font-size:1.7em;font-weight:600}.gh-readme-body h4{margin:.5em 0 0;font-size:1.15em;font-weight:600}.gh-readme-body p{margin:0}.gh-readme-body .project-media{max-width:40em}.gh-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6em;margin-top:.4em!important}@container win (width < 640px){.gh-overview{grid-template-columns:1fr}.gh-profile{grid-template-columns:5em 1fr;column-gap:1em}.gh-avatar{grid-row:span 3}.gh-pins,.gh-showcase{grid-template-columns:1fr}}.screen--phone{display:block;overflow:visible;background:none;color:inherit;color-scheme:inherit;animation:none}.phone-display{--ph-white: #dfdfe2;--ph-ink: #141417;--ph-soft: #6c6c73;--ph-note-ink: #3a3a3f;--ph-bg: #dfdfe2;--ph-line: #c2c2c8;--ph-accent: #0a6ee0;--ph-accent-ink: #e0e0e0;--ph-danger: #d8392f;--ph-red: #d8392f;--ph-notes: #b88400;--ph-glass: rgba(232, 234, 240, .45);--ph-glass-edge: rgba(240, 242, 248, .5);position:absolute;top:0;right:0;bottom:0;left:0;overflow:clip;border-radius:13cqw;color:var(--ph-ink);color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,system-ui,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.2;background:radial-gradient(circle 80cqw at 88cqw 40cqw,#d6def099,#d6def000),radial-gradient(circle 90cqw at 12cqw 190cqw,#e0c6b08c,#e0c6b000),linear-gradient(180deg,#cdd5e6,#c4cde2 45%,#bcc5dc);animation:phone-wake .22s ease-out both}@keyframes phone-wake{0%{opacity:0}to{opacity:1}}.phone-home p{margin:0}.phone-island{position:absolute;z-index:3;left:35cqw;top:2.6cqw;width:30cqw;height:8.8cqw;border-radius:4.4cqw;background:#000}.phone-status{position:absolute;z-index:3;inset:0 0 auto 0;height:13cqw;pointer-events:none}.phone-status-time{position:absolute;left:4cqw;width:27cqw;top:4.85cqw;font-size:4.3cqw;font-weight:600;line-height:1;text-align:center}.phone-status-icons{position:absolute;left:74.2cqw;top:5.3cqw;width:16.6cqw;height:3.4cqw}.phone-homebar{position:absolute;z-index:3;left:33cqw;bottom:2.2cqw;width:34cqw;height:1.3cqw;border-radius:.65cqw;background:var(--ph-ink)}.phone-home{position:absolute;top:0;right:0;bottom:0;left:0}.phone-widget{position:absolute;border-radius:5.8cqw;background:var(--ph-white);box-shadow:0 .8cqw 2.4cqw #2834501f}.phone-widget p{position:absolute;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phone-contact{left:6.7cqw;top:16cqw;width:86.6cqw;height:40.5cqw}.phone-photo{position:absolute;left:4.5cqw;top:7.75cqw;width:25cqw;height:25cqw;border-radius:50%;object-fit:cover}.phone-name,.phone-card-line{left:34.8cqw;right:3cqw}.phone-name{top:9cqw;font-size:5.2cqw;font-weight:700}.phone-card-line{font-size:3.3cqw;font-weight:500;color:var(--ph-soft)}.phone-card-line-1{top:17cqw}.phone-card-line-2{top:22.5cqw}.phone-cal,.phone-clock{top:61cqw;width:41.3cqw;height:41.3cqw}.phone-cal{left:6.7cqw}.phone-clock{left:52cqw}.phone-cal p,.phone-clock p{left:4.5cqw;right:3cqw}.phone-cal-weekday,.phone-clock-city{top:5cqw;font-size:3.2cqw;font-weight:700}.phone-cal-weekday{color:var(--ph-red)}.phone-clock-city{color:var(--ph-soft)}.phone-cal-day{top:10cqw;font-size:15cqw;font-weight:400}.phone-clock-time{top:12cqw;font-size:12.5cqw;font-weight:600}.phone-cal-month,.phone-clock-today{top:32cqw;font-size:3.4cqw;font-weight:500;color:var(--ph-soft)}.phone-note{left:6.7cqw;top:106.3cqw;width:86.6cqw;height:40.5cqw}.phone-note p{left:4.5cqw;right:3cqw}.phone-note-app{top:4.5cqw;font-size:3.2cqw;font-weight:700;color:var(--ph-notes)}.phone-note-title{top:10.2cqw;font-size:4.6cqw;font-weight:700}.phone-note-line{font-size:3.4cqw;font-weight:400;color:var(--ph-note-ink)}.phone-note-line-1{top:18cqw}.phone-note-line-2{top:23.5cqw}.phone-note-line-3{top:29cqw}.phone-search{position:absolute;left:34.5cqw;top:165.5cqw;width:31cqw;height:7.6cqw;display:flex;align-items:center;justify-content:center;gap:1.3cqw;border-radius:3.8cqw;background:var(--ph-glass);color:var(--ph-soft);font-size:3.3cqw;font-weight:500;line-height:1}.phone-search svg{width:3.2cqw;height:3.2cqw}.phone-dock{position:absolute;left:4.2cqw;top:176.3cqw;width:91.6cqw;height:24.6cqw;border-radius:10.2cqw;background:var(--ph-glass);box-shadow:inset 0 0 0 .3cqw var(--ph-glass-edge)}.phone-apps{position:absolute;left:4.2cqw;top:180.35cqw;width:91.6cqw;margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0}.phone-apps .app{display:grid;justify-items:center;width:100%;padding:0;border:0;border-radius:3cqw;background:none;color:var(--ph-ink);font:inherit;text-decoration:none}.phone-apps .app-art{display:block;width:16.5cqw;height:16.5cqw;filter:none}.phone-apps .app-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.phone-display :focus-visible:not(.mail-input){outline:max(2px,.6cqw) solid var(--ph-accent);outline-offset:max(2px,.6cqw)}.phone-apps .app:active .app-art{filter:brightness(.85)}.phone-app{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;padding-top:13cqw;border-radius:13cqw;background:var(--ph-bg);transform-origin:var(--ox) var(--oy);animation:phone-app-open .42s cubic-bezier(.2,.85,.25,1) both;outline:none}.phone-app.is-closing{animation:phone-app-close .34s cubic-bezier(.3,0,.2,1) both}@keyframes phone-app-open{0%{transform:scale(var(--os));opacity:0}35%{opacity:1}to{transform:none;opacity:1}}@keyframes phone-app-close{0%{transform:none;opacity:1}65%{opacity:1}to{transform:scale(var(--os));opacity:0}}.phone-app .mail{--mail-bg: var(--ph-bg);--mail-bar: var(--ph-bg);--mail-fg: var(--ph-ink);--mail-muted: var(--ph-soft);--mail-line: var(--ph-line);--mail-accent: var(--ph-accent);--mail-accent-ink: var(--ph-accent-ink);--mail-danger: var(--ph-danger);--mail-pad: max(4.5cqw, 10px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;margin:0;padding-bottom:7cqw;border:0;border-radius:0;font-size:clamp(12px,4.1cqw,17px)}.phone-app .mail-bar{border-radius:0}.phone-app .mail-cancel{padding-inline:0;background:none;color:var(--mail-accent);font-weight:400}.phone-app .mail-send{width:max(8.4cqw,26px);height:max(8.4cqw,26px)}.phone-app .mail-text{min-height:7.5em;resize:none}.phone-exits{position:absolute;left:calc(100% + 32px);top:50%;transform:translateY(-50%);display:grid;justify-items:start;gap:10px;width:max-content;animation:phone-exits-in .35s .1s cubic-bezier(.2,.8,.2,1) both}@keyframes phone-exits-in{0%{opacity:0;transform:translate(-12px,-50%)}}.phone-exit{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--fg);font-size:.9rem;font-weight:600;white-space:nowrap;box-shadow:var(--shadow)}.phone-exit:hover{border-color:var(--accent)}.phone-exit-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.phone-esc{margin:2px 0 0;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--muted);font-family:var(--font-mono);font-size:.75rem}@media(hover:none){.phone-esc{display:none}}.screen--tv{--scr-bg: #e2e0df;--scr-bar: #e6e6e6;--scr-card: #e6e6e6;--scr-line: #d0cfcc;--scr-fg: #191919;--scr-muted: #666666;--scr-accent: #0a66c2;--scr-accent-soft: #e8f1fb;--scr-link: #0a66c2;--scr-dot-1: #e7685f;--scr-dot-2: #dfb04f;--scr-dot-3: #5aae6a;--accent-ink: #ffffff;--li-cover-1: #0a66c2;--li-cover-2: #6aa6de;--li-logo: #dbe7f2;--li-logo-ink: #2b5a85;color-scheme:light}:root[data-mode=night] .screen--tv{--scr-bg: #000000;--scr-bar: #181d24;--scr-card: #22272e;--scr-line: #38434f;--scr-fg: #e9e9e9;--scr-muted: #a6a6a6;--scr-accent: #71b7fb;--scr-accent-soft: #23303d;--scr-link: #71b7fb;--accent-ink: #000000;--li-cover-1: #0b3d6e;--li-cover-2: #2c6aa3;--li-logo: #2a3440;--li-logo-ink: #b9cde0;color-scheme:dark}.win-scroll.li{grid-auto-rows:max-content;gap:1em;font-size:clamp(13px,1.1cqw,28px)}.li button{font:inherit}.li a{color:inherit}.li-card{border:1px solid var(--scr-line);border-radius:.6em;background:var(--scr-card);overflow:hidden}.li-cover{display:block;width:100%;height:9em}.li-top{position:relative}.li-avatar{position:absolute;top:3.6em;left:1.8em;width:9.5em;aspect-ratio:1;border:.25em solid var(--scr-card);border-radius:50%;object-fit:cover}.li-top-body{display:flex;justify-content:space-between;gap:2em;padding:4.4em 1.8em 1.6em}.li-name{display:flex;flex-wrap:wrap;align-items:center;gap:.3em;margin:0;font-size:1.8em;font-weight:600;line-height:1.2}.li-verified{width:.7em;height:.7em;color:var(--scr-muted)}.li-pronouns{color:var(--scr-muted);font-size:.5em;font-weight:400}.li-headline{max-width:40em;margin:.3em 0 .5em;font-size:1.1em}.li-connections{display:block;margin-top:.3em;color:var(--scr-link)!important;font-weight:600;text-decoration:none}.li-muted{margin:0;color:var(--scr-muted)}.li-connect{display:inline-flex;align-items:center;gap:.4em;margin-top:1em;padding:.4em 1.2em;border-radius:2em;background:var(--scr-accent);color:var(--accent-ink)!important;font-weight:600;text-decoration:none}.li-connect svg{width:1em;height:1em}.li-connect:hover{filter:brightness(1.1)}.li-now{display:grid;align-content:start;gap:.7em;margin:0;padding:0;list-style:none;font-weight:600}.li-now li{display:flex;align-items:center;gap:.6em}.li-now .li-logo{width:2.2em;font-size:.8em}.li-logo{align-self:flex-start;display:grid;place-items:center;flex-shrink:0;width:3.6em;aspect-ratio:1;border-radius:.25em;background:var(--li-logo);color:var(--li-logo-ink);font-weight:700;font-size:1em;letter-spacing:-.02em}.li-section{padding:0 1.8em 1.2em}.li-tabs{display:flex;gap:.4em;overflow-x:auto;margin:0 -1.8em .4em;padding:0 1.8em;border-bottom:1px solid var(--scr-line)}.li-tab{flex-shrink:0;padding:.9em .8em .7em;border:0;border-bottom:2px solid transparent;background:none;color:var(--scr-muted);font-weight:600}.li-tab:hover{color:var(--scr-fg)}.li-tab[aria-current=page]{border-bottom-color:var(--scr-accent);color:var(--scr-accent)}.li-list{margin:0;padding:0;list-style:none}.li-item{display:flex;gap:1em;padding:1em 0}.li-item+.li-item{border-top:1px solid var(--scr-line)}.li-item-body{display:grid;gap:.25em;min-width:0}.li-item-body h4{margin:0;font-size:1.1em;font-weight:600}.li-item-body p{margin:0}.li-text{margin-top:.5em!important}.li-more{justify-self:start;margin-top:.3em;padding:.2em 0;border:0;background:none;color:var(--scr-link);font-weight:600}.li-more:hover{text-decoration:underline}.li-highlights{display:grid;gap:.25em;margin:.2em 0 0;padding-left:1.2em}.li-skills{margin-top:.4em!important;color:var(--scr-muted)}.li-skills b{color:var(--scr-fg)}.li-skill-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2em;margin:0;padding:0;list-style:none}.li-skill-list li{display:grid;gap:.15em;padding:.8em 0;border-bottom:1px solid var(--scr-line)}.li-about{display:grid;gap:.6em;padding:1.4em 1.8em}.li-about h3{margin:0;font-size:1.3em;font-weight:600}.li-about p{margin:0}.li-top-skills{display:grid;gap:.2em;margin-top:.4em;padding:.9em 1em;border:1px solid var(--scr-line);border-radius:.5em}.li-outline{display:inline-flex;align-items:center;justify-self:start;gap:.4em;margin-top:.4em;padding:.3em 1em;border:1px solid var(--scr-muted);border-radius:2em;font-weight:600;text-decoration:none}.li-outline svg{width:1em;height:1em}
