:root{color:var(--text);background:var(--terminal);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-variant-ligatures:none;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--terminal:#0c0c0c;--tabs:#202020;--tab-surface:#181818;--sidebar:#101010;--chrome-hover:#252525;--chrome-muted:#aaa;--text:#e6e6e6;--muted:#aaa;--secondary:#c2c2c2;--blue:#a4cdf2;--green:#a4d7a3;--yellow:#e5d6a3;--red:#efb1b7;--purple:#cdb9ee;--cyan:#a3d9de;--pink:#e6b4d8;--border:#353535;--blue-wash:#233447;--green-wash:#21382a;--yellow-wash:#383124;--red-wash:#40272d;--purple-wash:#332b43;--cyan-wash:#21363b;--pink-wash:#3b2938;--profile-surface:#141414;--portrait-surface:#0c0c0c;--font-body:1rem;--font-small:.875rem;--font-heading:1.0625rem;--font-name:1.75rem;--font-profile:1.0625rem;--record-indent:2rem;--nested-indent:1.25rem;--marker-width:.75rem;--list-gap:.5rem;--space-small:.5rem;--space-group:1rem;--space-entry:2rem;--accent:var(--blue);--accent-surface:var(--blue-wash);--hover:#292929;--scrollbar:#606060;--selection:#28405b;--motion:.18s;--comet-color:#b8dff5;--devden:#b9f3ff;--doodle-ice:#d9efff;--doodle-ice-glow:#b6ddff;--doodle-ice-surface:#111c28;--brand-ink:#fff;font-family:Cascadia Mono,Cascadia Code,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:clamp(.8125rem,.75rem + .15vw,.9375rem)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--terminal:#fff;--tabs:#eef2f6;--tab-surface:#e8e8e8;--sidebar:#f5f5f5;--chrome-hover:#dedede;--chrome-muted:#58616c;--text:#263445;--muted:#626c7a;--secondary:#536171;--blue:#155dc6;--green:#147543;--yellow:#8b5700;--red:#bb354a;--purple:#7a3bb8;--cyan:#00747e;--pink:#ab2b80;--border:#dce3ec;--blue-wash:#edf3ff;--green-wash:#ebf7ef;--yellow-wash:#fff4df;--red-wash:#fff0f3;--purple-wash:#f3ecff;--cyan-wash:#e5f7f8;--pink-wash:#fff0fa;--profile-surface:#f7f9fc;--portrait-surface:#edf3f9;--hover:#e7edf5;--scrollbar:#b0bbc8;--selection:#dceaf8;--comet-color:#557b99;--devden:#146782;--doodle-ice:#46749f;--doodle-ice-glow:#8dbbe8;--doodle-ice-surface:#edf5fc;--brand-ink:#181717}.tone-blue{--accent:var(--blue);--accent-surface:var(--blue-wash)}.tone-green{--accent:var(--green);--accent-surface:var(--green-wash)}.tone-yellow{--accent:var(--yellow);--accent-surface:var(--yellow-wash)}.tone-red{--accent:var(--red);--accent-surface:var(--red-wash)}.tone-purple{--accent:var(--purple);--accent-surface:var(--purple-wash)}.tone-cyan{--accent:var(--cyan);--accent-surface:var(--cyan-wash)}.tone-pink{--accent:var(--pink);--accent-surface:var(--pink-wash)}*{box-sizing:border-box}body{font-size:var(--font-body);margin:0}button{font:inherit;color:inherit;cursor:pointer;border:0}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent);text-decoration:underline}:is(a,button,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--selection);color:var(--text)}p,h1,h2,h3{margin:0}.profile-pane,.terminal-pane,.terminal-toolbar,.terminal-tab,.theme-toggle,a,.path,.stack-label,.section-marker,[class^=keyword-]{transition:background-color var(--motion) ease, color var(--motion) ease, border-color var(--motion) ease, box-shadow var(--motion) ease}.desktop{padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));height:100dvh}.terminal-window{border:1px solid var(--border);border-radius:13px;grid-template-columns:25% 75%;width:100%;max-width:1920px;height:100%;margin-inline:auto;display:grid;overflow:hidden}.profile-pane{--hover:var(--chrome-hover);isolation:isolate;color:var(--text);background:var(--sidebar);border-right:1px solid var(--border);min-width:0;position:relative;overflow:hidden}.profile-content{z-index:1;scrollbar-width:none;height:100%;padding:clamp(23px,4dvh,56px) 14px 23px;position:relative;overflow-y:auto}.profile-content::-webkit-scrollbar{display:none}.profile-details::-webkit-scrollbar{display:none}.falling-comets{z-index:0;pointer-events:none;color:var(--comet-color);position:absolute;inset:0;overflow:hidden}.comet-track{top:-160px;left:var(--comet-left);width:var(--comet-width);height:calc(100% + 320px);opacity:var(--comet-opacity);animation:comet-fall var(--comet-duration) var(--comet-delay) linear infinite;position:absolute}.comet{width:100%;height:var(--comet-length);background:linear-gradient(to bottom, transparent, var(--comet-color));border-radius:2px;position:absolute;top:0}.comet:after{content:"";width:calc(var(--comet-width) + 1px);height:calc(var(--comet-width) + 1px);background:currentColor;border-radius:50%;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 6px}@keyframes comet-fall{0%{transform:translateY(0)}to{transform:translateY(100%)}}.profile-command{font-size:var(--font-body);white-space:nowrap;line-height:1.6}.path,.stack-label{color:var(--accent)}.section-marker{color:var(--yellow);white-space:nowrap;font-weight:400}.profile-details{text-align:center;width:100%;margin-top:calc(clamp(88px, 17dvh, 176px) + var(--profile-drop,0px))}.profile-identity,.contact-key{min-width:0}.contact-key{overflow-wrap:anywhere}.portrait{aspect-ratio:1;background:var(--portrait-surface);border-radius:50%;width:min(220px,90%,26dvh);margin:0 auto 22px;overflow:hidden}.portrait img{object-fit:cover;object-position:50% 45%;width:100%;height:100%;display:block}h1{font-size:var(--font-name);letter-spacing:-.7px;font-weight:500}.contacts{text-align:left;grid-template-columns:max-content minmax(0,1fr);gap:20px 6px;width:100%;max-width:380px;margin:64px auto 0;padding-inline:12px 8px;font-size:clamp(.8rem,.88vw,1rem);display:grid}.contact{grid-column:1/-1;grid-template-columns:subgrid;align-items:start;column-gap:inherit;min-width:0;line-height:1.5;display:grid}.contact-label{color:var(--muted);font-size:inherit;white-space:nowrap;align-items:center;gap:.4em;display:inline-flex}.contact a{text-align:left;overflow-wrap:anywhere;max-width:100%;line-height:inherit}.contact a .brand-icon,.contact-separator{display:none}.brand-icon{vertical-align:-.18em;object-fit:contain;flex:none;width:1.15em;height:1.15em;display:inline-block}.brand-icon--mask{background-color:currentColor;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.brand-icon--light-surface{background:#fff;border-radius:2px;padding:1px}.brand-logo{object-fit:contain;width:100%;height:100%;display:block}.brand-logo--light{display:none}:root[data-theme=light] .brand-logo--light{display:block}:root[data-theme=light] .brand-logo--dark{display:none}.external-mark{color:var(--muted);margin-left:7px;font-size:.85em}.terminal-pane{background:var(--terminal);flex-direction:column;min-width:0;min-height:0;display:flex}.terminal-toolbar{--hover:var(--chrome-hover);--muted:var(--chrome-muted);background:var(--tab-surface);flex-shrink:0;min-width:0;display:flex}.tab-navigation{flex:1;align-items:center;min-width:0;display:flex}.tab-scroll{height:44px;color:var(--text);background:0 0;flex:0 0 32px;place-items:center;padding:0;font-size:1.5rem;display:grid}.tab-scroll[hidden]{display:none}.tab-scroll:disabled{opacity:.3;cursor:default}.tab-scroll:not(:disabled):hover{background:var(--hover)}.tab-scroll:focus-visible{outline-offset:-3px}.tab-strip{scrollbar-width:none;flex:1;align-items:end;gap:2px;min-width:0;height:48px;padding:6px 6px 0;display:flex;position:relative;overflow-x:auto}.tab-selection-marker{background:var(--accent);pointer-events:none;height:2px;transition:transform .22s ease, width .22s ease, background-color var(--motion);border-radius:2px;position:absolute;bottom:4px;left:0}.tab-strip::-webkit-scrollbar{display:none}.terminal-tab{min-width:128px;color:var(--muted);font-size:var(--font-small);white-space:nowrap;background:0 0;border-radius:8px 8px 0 0;flex-shrink:0;justify-content:center;align-items:center;gap:8px;height:42px;padding:0 20px;display:flex}.terminal-tab:hover{background:var(--hover);color:var(--text)}.terminal-tab.active{background:var(--terminal);color:var(--accent);box-shadow:inset 0 1px 0 var(--border), inset 1px 0 0 var(--border), inset -1px 0 0 var(--border)}.theme-toggle{min-height:36px;color:var(--muted);font-size:var(--font-small);background:0 0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;margin:6px;padding:0 10px;display:flex}.theme-toggle:hover{background:var(--hover);color:var(--text)}.terminal-tab:focus-visible{outline-offset:-4px}.tab-icon{font-size:var(--font-body);color:var(--accent)}.terminal-output{scrollbar-width:thin;scrollbar-color:var(--scrollbar) var(--terminal);min-height:0;font-size:var(--font-body);overflow-wrap:anywhere;overscroll-behavior-y:contain;flex:1;padding:26px 28px 30px;scroll-padding-top:26px;line-height:1.75;overflow:hidden auto;container:portfolio-output/inline-size}.terminal-output:focus-visible{outline-offset:-4px}.terminal-reading{border-top:1px solid var(--border);min-height:30px;color:var(--muted);background:var(--terminal);font-size:var(--font-small);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:5px 20px;line-height:1.5;display:flex}.terminal-navigation-hint{min-width:0}.navigation-hint--compact{display:none}.terminal-reading-progress{color:var(--accent);white-space:pre;font-variant-numeric:tabular-nums;flex-shrink:0}.terminal-session{animation:reveal var(--motion) ease-out}.welcome-page{min-height:100%;display:grid}.terminal-output.terminal-output--welcome{padding:0}.welcome-toolbar{min-height:48px;font-size:var(--font-small);color:var(--accent);flex:1;align-items:center;gap:8px;padding-inline:20px;display:flex}.welcome{isolation:isolate;width:100%;min-height:100%;padding-bottom:calc(clamp(0px, calc(24dvh - 144px), 120px) + var(--welcome-lift,0px) * 2);text-align:center;place-items:center;display:grid;position:relative;overflow:hidden}.welcome-content{z-index:1;width:min(100%,900px);padding:36px 24px;position:relative}.welcome-doodle{--doodle-cycle:4s;letter-spacing:0;text-align:left;width:7em;height:6em;color:var(--secondary);pointer-events:none;place-items:center;margin:0 auto 18px;padding-top:1.5em;font-family:inherit;font-size:20px;line-height:20px;display:grid}.doodle-head{width:5.6em;height:3.6em;color:var(--doodle-ice);background:var(--doodle-ice-surface);transform-origin:50%;animation:doodle-vibrate var(--doodle-cycle) linear infinite;border:1px solid;justify-content:center;align-items:center;gap:.8ch;display:flex;position:relative}.doodle-antennas{width:4.5em;height:1.5em;animation:doodle-antenna-glow var(--doodle-cycle) steps(1, end) infinite;position:absolute;bottom:calc(100% + .5px);left:50%;overflow:visible;transform:translate(-50%)}.doodle-prompt,.doodle-expression{font-size:1.3em;line-height:1}.doodle-prompt{width:2ch;height:1em;color:var(--doodle-ice);white-space:pre;display:inline-block}.doodle-command{opacity:1;animation:doodle-command-face var(--doodle-cycle) steps(1, end) infinite}.doodle-expression{color:var(--doodle-ice);opacity:0;animation:doodle-happy-face var(--doodle-cycle) steps(1, end) infinite;place-items:center;display:grid;position:absolute;inset:0}.doodle-cursor{animation:1.2s step-end infinite doodle-blink}.doodle-signal{color:var(--doodle-ice);animation:3s ease-in-out infinite doodle-signal}.doodle-signal--right{animation-delay:-1.5s}@keyframes doodle-vibrate{0%,35%,65%,to{transform:rotate(0)}38%,44%,50%,56%,62%{transform:rotate(-2deg)}41%,47%,53%,59%{transform:rotate(2deg)}}@keyframes doodle-command-face{0%,65%,to{opacity:1}35%{opacity:0}}@keyframes doodle-happy-face{0%,65%,to{opacity:0}35%{opacity:1}}@keyframes doodle-antenna-glow{0%,65%,to{color:var(--secondary);filter:none}35%{color:var(--doodle-ice);filter:drop-shadow(0 0 3px var(--doodle-ice-glow)) drop-shadow(0 0 7px var(--doodle-ice-glow))}}@keyframes doodle-blink{50%{opacity:0}}@keyframes doodle-signal{50%{opacity:.4}}.welcome h2{letter-spacing:-.04em;white-space:nowrap;font-size:min(3.4rem,6.4cqw);font-weight:500;line-height:1.35}.welcome h2:focus{outline:none}.welcome-title{max-width:100%;animation:2s steps(20,end) .25s both welcome-type;display:inline-block}.welcome-brand{color:var(--devden);font-weight:600}.welcome-actions{max-width:900px;animation:reveal var(--motion) ease-out;flex-wrap:wrap;justify-content:center;gap:12px;margin:28px auto 0;display:flex}.welcome-actions .cli-action{min-height:44px;padding-inline:14px}@container portfolio-output (width<=600px){.welcome-content{padding:24px 12px}.welcome-doodle{margin-bottom:12px;font-size:14px;line-height:14px}.welcome-actions{grid-template-columns:repeat(2,minmax(0,1fr));max-width:360px;margin-top:20px;display:grid}.welcome-actions .cli-action{font-size:max(12px, var(--font-small));white-space:nowrap;justify-content:center;gap:4px;padding-inline:4px}.welcome-actions .tab-icon{font-size:inherit}}@media (height<=650px){.welcome-content{padding-block:12px}}@media (height<=500px){.welcome-content{padding-block:12px}.welcome-doodle{margin-bottom:6px;font-size:9px;line-height:9px}.welcome h2{font-size:min(2rem,6.4cqw)}.welcome-actions{gap:8px;margin-top:12px}}@keyframes welcome-type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.resume-view{min-width:0}.resume-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.5rem 2rem;display:grid}.resume-about,.resume-document{min-width:0}.resume-about .record{margin-bottom:0}.terminal-output.terminal-output--resume{padding-block:12px 16px;scroll-padding-top:12px}.terminal-session--resume>.invocation{margin-bottom:10px}.resume-document-switch,.resume-document-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.resume-document-switch{border-bottom:1px solid var(--border);gap:0;margin-bottom:20px}.resume-document-switch .cli-action{min-height:44px;color:var(--muted);border:0;border-bottom:2px solid #0000;border-radius:0;padding:10px 16px}.resume-document-switch .cli-action:hover{color:var(--text);background:var(--hover)}.resume-document-switch .cli-action[aria-pressed=true]{color:var(--accent);background:var(--tab-surface);border-bottom-color:var(--accent)}.resume-document-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.resume-document-header h3{font-size:var(--font-heading);color:var(--accent);align-items:center;gap:8px;font-weight:600;display:flex}.resume-preview{grid-template-columns:minmax(0,1fr);gap:16px;min-height:0;display:grid}.resume-preview-hint{color:var(--muted);font-size:var(--font-small);margin-bottom:8px;display:none}.resume-preview-page{text-align:left;cursor:zoom-in;background:0 0;width:100%;padding:0;display:block}.resume-preview-page:focus-visible{outline-offset:3px}.resume-preview img{border:1px solid var(--border);border-radius:4px;width:100%;height:auto;display:block}.resume-preview-page:hover img{border-color:var(--accent)}.resume-dialog{width:min(1100px,100% - 32px);max-width:none;height:calc(100dvh - 32px);max-height:none;color:var(--text);background:var(--terminal);border:1px solid var(--border);font:inherit;border-radius:10px;margin:auto;padding:0;overflow:hidden}.resume-dialog[open]{animation:reveal var(--motion) ease-out;flex-direction:column;display:flex}.resume-dialog::backdrop{background:#000000b8}.resume-dialog-header{background:var(--tab-surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.resume-dialog-header h2{font-size:var(--font-heading);color:var(--accent);white-space:nowrap;flex-shrink:0;align-items:center;gap:8px;font-weight:600;display:flex}.resume-dialog-actions{flex-wrap:wrap;gap:8px;display:flex}.resume-dialog-actions .cli-action{white-space:nowrap;flex-shrink:0}.resume-dialog-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--scrollbar) var(--terminal);flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:16px;display:flex;overflow:auto}.resume-dialog-body:focus-visible{outline-offset:-4px}.resume-dialog-pages{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.resume-dialog-pages img{object-fit:contain;flex:none;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 180px);display:block}.resume-dialog-body--enlarged{display:block}.resume-dialog-body--enlarged .resume-dialog-pages{width:max(100%,900px)}.resume-dialog-body--enlarged img{width:100%;max-width:none;max-height:none;margin-inline:auto}@keyframes reveal{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.invocation{color:var(--accent);font-size:var(--font-small);white-space:pre;align-items:baseline;margin-bottom:24px;display:flex}.typed-command{width:calc(var(--command-length) * 1ch);animation:type-command .42s steps(var(--command-length), end);display:inline-block;overflow:hidden}@keyframes type-command{0%{width:0}}.cursor{color:var(--text);margin-left:3px;animation:1.15s step-end 3 blink}@keyframes blink{50%{opacity:0}}.record{margin-bottom:var(--space-entry)}.section-intro{grid-template-columns:var(--record-indent) minmax(0, 1fr);color:var(--secondary);margin:0 0 2rem;line-height:1.7;display:grid}.records{gap:var(--space-entry) 2.5rem;grid-template-columns:minmax(0,1fr);align-items:start;display:grid;position:relative}.records>.record{min-width:0;margin-bottom:0}.project-list{row-gap:3.5rem}.project-row{grid-template-columns:minmax(0,1fr);gap:1.5rem;display:grid}.project-information,.project-visual{min-width:0}.project-visual{margin:0 0 0 var(--record-indent)}.project-visual .case-cover>img{object-fit:contain;height:auto}.project-visual .case-cover:hover>img{opacity:.9}.project-visual .preview-caption{margin-top:12px;margin-bottom:0}.preview-hint{color:var(--accent);margin-top:6px;display:block}.record-column{gap:var(--space-entry);flex-direction:column;min-width:0;display:flex}.record-column>.record{margin-bottom:0}.column-heading{padding:0 0 var(--space-small) var(--record-indent);margin-bottom:calc(-1 * var(--space-group))}.column-heading h2{font-size:var(--font-small);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600;line-height:1.7}.records .record{animation:.14s ease-out both terminal-output-reveal;animation-delay:calc(.42s + var(--row-delay))}@keyframes terminal-output-reveal{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.record h2,.record h3{grid-template-columns:var(--record-indent) minmax(0, 1fr);font-size:var(--font-heading);color:var(--accent);align-items:baseline;font-weight:600;line-height:1.65;display:grid}.record h2 .section-marker,.record h3 .section-marker{grid-column:1}.record h3 a .brand-icon{margin-right:8px}.description{margin-top:var(--space-small);padding-inline-start:var(--record-indent)}.description+.description{margin-top:var(--space-group)}.record-meta{margin-top:var(--space-small);font-size:var(--font-small);color:var(--muted);padding-inline-start:var(--record-indent)}.record-facts{margin:var(--space-group) 0 0 var(--record-indent);font-size:var(--font-small)}.record-facts>div{align-items:baseline;gap:var(--space-small);margin-top:var(--space-small);grid-template-columns:8ch minmax(0,1fr);display:grid}.record-facts dt{color:var(--muted);white-space:nowrap}.record-facts dd{overflow-wrap:anywhere;min-width:0;color:var(--secondary);margin:0}.record-details{margin:var(--space-small) 0 0 var(--record-indent);padding:0;list-style:none}.record-details li{grid-template-columns:var(--marker-width) minmax(0, 1fr);gap:var(--list-gap);color:var(--secondary);font-size:var(--font-body);margin-top:6px;display:grid}.detail-marker{color:var(--muted)}.keyword-default{color:var(--accent)}.keyword-blue{color:var(--blue)}.keyword-green{color:var(--green)}.keyword-yellow{color:var(--yellow)}.keyword-red{color:var(--red)}.keyword-purple{color:var(--purple)}.keyword-cyan{color:var(--cyan)}.keyword-pink{color:var(--pink)}.record-stack{margin-top:var(--space-group);font-size:var(--font-small);color:var(--secondary);padding-inline-start:var(--record-indent)}.technologies{padding:0 0 0 var(--nested-indent);flex-direction:column;gap:5px;margin:8px 0 0;list-style:none;display:flex}.technology{grid-template-columns:var(--marker-width) 1em minmax(0, 1fr);align-items:baseline;gap:var(--list-gap);min-width:0;line-height:1.7;display:grid}.technology-marker{color:var(--muted)}.technology .brand-icon{width:1em;height:1em;color:var(--accent);align-self:start;margin-top:.3em}.technology .brand-icon--light-surface{width:1.2em;height:1.2em}.project-information .record-details{margin-top:var(--space-group)}.project-information .record-details li{margin-top:.65rem}.project-information .record-stack{flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;display:flex}.project-information .technologies{flex-flow:wrap;gap:.35rem .9rem;margin:0;padding:0}.project-information .technology{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.project-information .technology-marker{display:none}.project-information .technology .brand-icon{align-self:center;margin-top:0}.record-links{margin-top:var(--space-group);font-size:var(--font-small);flex-wrap:wrap;gap:12px 20px;padding-inline-start:var(--record-indent);display:flex}.record-links a{align-items:center;gap:7px;display:inline-flex}.record-links .external-mark{margin-left:0}.record-kicker{color:var(--accent);font-size:var(--font-small);margin-bottom:8px;padding-inline-start:var(--record-indent)}.replay-intro{color:var(--muted);width:36px;height:36px;transition:color var(--motion), background-color var(--motion);background:0 0;border-radius:4px;flex-shrink:0;align-self:center;font-size:1.25rem}.replay-intro:hover{color:var(--text);background:var(--hover)}.cli-action{border:1px solid var(--border);min-height:36px;font-size:var(--font-small);color:var(--accent);transition:color var(--motion), background-color var(--motion), border-color var(--motion);background:0 0;border-radius:4px;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.cli-action:hover{background:var(--accent-surface);border-color:var(--accent)}.copy-action{max-width:100%;display:inline-block}.copy-compact{vertical-align:middle;margin-inline-start:6px}.copy-compact .cli-action{border-color:#0000;justify-content:center;width:30px;min-height:30px;padding:0 6px}.copy-success{color:var(--green);animation:.22s ease-out copy-confirm}@keyframes copy-confirm{0%{transform:scale(.9)}to{transform:scale(1)}}.copy-fallback{font-size:var(--font-small);color:var(--secondary);overflow-wrap:anywhere;white-space:pre-wrap;padding:8px 0;display:block}.copy-fallback>span{-webkit-user-select:all;user-select:all}.detail-block+.detail-block{margin-top:var(--space-group)}.detail-block h4{font-size:var(--font-small);color:var(--secondary);margin:0;font-weight:600;line-height:1.7}.detail-block .description{padding-inline-start:0}.case-cover{border:1px solid var(--border);background:var(--profile-surface);border-radius:4px;flex-basis:100%;margin-bottom:6px;display:block;overflow:hidden}.case-cover>img{object-fit:cover;object-position:top;width:100%;height:180px;transition:opacity var(--motion);display:block}.code-cover{justify-content:center;align-items:center;gap:16px;height:180px;padding:16px;display:flex}.code-cover>img{width:48px;height:48px}.code-cover>.brand-icon{width:42px;height:42px}.code-cover>span{min-width:0}.code-cover small{color:var(--secondary);font-size:var(--font-small);display:block}.preview-caption{color:var(--muted);font-size:var(--font-small);margin-bottom:18px}.publication-details{margin:var(--space-group) 0 0 var(--record-indent);padding-top:var(--space-group)}.research-overview{margin:var(--space-group) 0 0 var(--record-indent)}.citation-actions{margin:0 0 var(--space-small);flex-wrap:wrap;gap:10px;display:flex}.citation-text>summary{cursor:pointer;color:var(--accent);min-height:36px}.citation-text>p{color:var(--secondary);margin-top:8px}.citation-text pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--profile-surface);border:1px solid var(--border);max-width:100%;font:inherit;font-size:var(--font-small);padding:12px}summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skill-tree{row-gap:0}.skill-branch{padding-block:14px}.skill-branch>div{gap:6px;min-width:0;display:grid}.skill-tree .description{min-width:0;max-width:none;margin:0}.skill-tree .technologies{flex-flow:wrap;gap:.35rem 1.25rem;margin:0;padding:0}.skill-tree .technology{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.skill-tree .technology-marker{display:none}.skill-tree .technology .brand-icon{align-self:center;margin-top:0}.sr-only,.skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{z-index:5;background:var(--terminal);padding:12px;position:fixed;top:8px;left:8px}.startup-page{isolation:isolate;opacity:1;place-items:center;min-height:100dvh;padding:clamp(12px,3vw,36px);transition:opacity .22s;display:grid;position:relative}.startup-leaving{opacity:0}.startup-window{z-index:1;border:1px solid var(--border);background:var(--terminal);width:min(740px,100%);min-width:0;animation:reveal var(--motion) ease-out;border-radius:13px;position:relative;overflow:hidden}.startup-toolbar{background:var(--tabs);border-bottom:1px solid var(--border);font-size:var(--font-small);color:var(--secondary);align-items:center;gap:10px;padding:14px 18px;display:flex}.startup-location{color:var(--muted);margin-inline-start:auto}.startup-output{min-height:240px;font-size:var(--font-body);overflow-wrap:anywhere;padding:clamp(20px,4vw,44px);line-height:1.9}.startup-line{color:var(--accent);margin-bottom:16px}.startup-line:last-child{margin-bottom:0}.startup-prefix{white-space:pre-wrap}.startup-command{color:var(--text)}.startup-command .startup-prefix{color:var(--accent)}.startup-footer{border-top:1px solid var(--border);color:var(--muted);font-size:var(--font-small);justify-content:space-between;align-items:center;gap:16px;padding:10px 18px;display:flex}.startup-footer button{min-height:44px;color:var(--accent);transition:background-color var(--motion) ease;background:0 0;border-radius:4px;flex-shrink:0;padding:0 12px}.startup-footer button:hover{background:var(--hover)}.startup-footer button:focus-visible{outline-offset:-2px}.portfolio-enter{animation:portfolio-arrival var(--motion) ease-out}@keyframes portfolio-arrival{0%{opacity:0}to{opacity:1}}@container portfolio-output (width>=760px){.project-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem}.project-visual{margin-inline-start:0}.resume-layout{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.resume-layout--academic{grid-template-columns:minmax(0,1fr)}.resume-layout--academic .resume-preview,.records:not(.single-column){grid-template-columns:repeat(2,minmax(0,1fr))}.records>.record:only-child{grid-column:1/-1}.skill-branch>div{grid-template-columns:17.5rem minmax(0,1fr);column-gap:1.5rem}.skill-tree .description{padding-inline-start:0}}@media (width>=1051px) and (height<=800px){.profile-details{margin-top:calc(clamp(24px, calc(25dvh - 104px), 96px) + var(--profile-drop,0px))}.portrait{width:min(184px,90%,26dvh);margin-bottom:16px}.contacts{gap:6px;margin-top:48px}}@media (width<=1050px){:root{--record-indent:1.5rem;--nested-indent:1rem}.desktop{padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))}.terminal-window{border-radius:10px;flex-direction:column;display:flex}.profile-pane{border-right:0;border-bottom:1px solid var(--border);flex:none;min-height:0;padding:0;overflow:hidden}.comet-track{height:calc(100% + 160px);top:-80px}.profile-content{height:auto;padding:0;overflow:hidden}.profile-header{display:none}.profile-details{text-align:left;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:center;gap:8px;margin-top:0;padding:4px 8px;display:grid}.profile-identity{flex-direction:column;align-items:center;min-width:0;display:flex}.profile-identity h1{letter-spacing:-.025em;text-align:center;white-space:nowrap;font-size:clamp(14px,2.8vw,21px);line-height:1.2}.portrait{width:clamp(80px,10vw,104px);height:clamp(80px,10vw,104px);margin:0 0 4px}.contacts{grid-template-columns:minmax(0,1fr);grid-auto-rows:26px;justify-self:end;gap:0;width:max-content;max-width:100%;margin:0;padding:0;display:grid}.contact{grid-column:auto;min-width:0;line-height:1;display:block}.contact-label,.contacts .external-mark{display:none}.contact a{white-space:nowrap;width:100%;height:26px;font-size:var(--phone-ui-font,clamp(10px, 2.9vw, 12px));justify-content:flex-end;align-items:center;gap:2px;padding:0;display:flex}.contact a .brand-icon{width:15px;height:15px;color:var(--accent);display:block}.contact-separator,.contact-value{display:inline}.terminal-pane{flex:1}.terminal-output{padding:21px 15px 24px}.tab-strip{overscroll-behavior-x:contain;height:50px}.terminal-reading{gap:8px;min-height:28px;padding:4px 12px}.navigation-hint--keyboard{display:none}.navigation-hint--compact{display:inline}.terminal-tab{min-width:120px;height:44px;padding:0 16px}.theme-toggle,.replay-intro{width:44px;min-height:44px;margin:3px 0;padding:0}.theme-toggle{margin-right:4px}.theme-toggle>span,.startup-location{display:none}.startup-output{min-height:250px}.startup-footer{gap:8px;padding-inline:12px}.resume-preview-hint{display:block}}@media (width<=400px){.profile-command{font-size:var(--font-small)}.terminal-output{padding-inline:12px}}@media (height<=500px) and (width<=1050px){.profile-details{padding-block:4px}.terminal-output{padding-block:14px;scroll-padding-top:14px}}@media (width<=600px),(width<=1050px) and (height<=500px){:root{--phone-scale:.92;--phone-ui-font:clamp(11px, 2.9vw, 12px);--record-indent:1.7rem;--space-entry:1.75rem;--space-group:.9rem;font-size:clamp(14px,3.5vw,15px)}.terminal-output{--font-body:var(--phone-ui-font);--font-small:var(--phone-ui-font);--font-heading:var(--phone-ui-font);padding:calc(16px * var(--phone-scale)) calc(12px * var(--phone-scale)) calc(20px * var(--phone-scale));scroll-padding-top:calc(16px * var(--phone-scale));font-size:var(--font-body);line-height:1.6}.terminal-tab{min-width:calc(120px * var(--phone-scale));padding-inline:calc(16px * var(--phone-scale));gap:calc(8px * var(--phone-scale));font-size:var(--phone-ui-font)}.invocation{margin-bottom:calc(14px * var(--phone-scale))}.section-intro{margin-bottom:1.25rem}.section-intro,.record h2,.record h3{grid-template-columns:calc(var(--record-indent) - .35rem) minmax(0, 1fr);column-gap:.35rem}.record h2,.record h3{line-height:1.5}.project-list{row-gap:2.25rem}.record-details li{margin-top:.55rem}.skill-branch{padding-block:1rem}.skill-tree .technologies{gap:.5rem 1rem}.skill-tree .technology,.project-information .technology{white-space:normal;max-width:100%}.skill-tree .technology>span:last-child,.project-information .technology>span:last-child{overflow-wrap:anywhere}.welcome-content{padding:calc(24px * var(--phone-scale)) calc(12px * var(--phone-scale))}.welcome-doodle{font-size:calc(14px * var(--phone-scale));margin-bottom:calc(12px * var(--phone-scale));line-height:1}.welcome h2{font-size:clamp(18px,5.3vw,24px)}.terminal-output--welcome .welcome-actions .cli-action{font-size:var(--font-body)}.welcome-toolbar{font-size:var(--phone-ui-font)}.welcome-actions{gap:calc(12px * var(--phone-scale));margin-top:calc(20px * var(--phone-scale));max-width:calc(360px * var(--phone-scale))}.startup-output{min-height:calc(250px * var(--phone-scale));padding:clamp(calc(20px * var(--phone-scale)), calc(4vw * var(--phone-scale)), calc(44px * var(--phone-scale)));font-size:var(--phone-ui-font)}.startup-toolbar,.startup-footer{font-size:var(--phone-ui-font)}.startup-line:not(:last-child){margin-bottom:calc(16px * var(--phone-scale))}}@media (width<=400px){:root{--phone-scale:.9}.terminal-output{padding-inline:calc(12px * var(--phone-scale))}}@media (width<=360px){:root{--phone-scale:.88}.terminal-pane--sections .terminal-tab .tab-icon{flex:none}.terminal-pane--sections .terminal-navigation-hint{display:none}}@media (width<=768px){.terminal-pane--sections{position:relative}.terminal-pane--sections .terminal-toolbar{display:block}.terminal-pane--sections .tab-navigation{width:100%;display:block}.terminal-pane--sections .tab-scroll{display:none}.terminal-pane--sections .tab-strip{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(44px,auto);gap:0;height:auto;padding:0;display:grid;overflow:visible}.terminal-pane--sections .terminal-tab{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;height:auto;min-height:44px;line-height:1.2;font-size:var(--phone-ui-font,12px);border-radius:4px;gap:4px;padding:0 2px}.terminal-pane--sections .terminal-tab .tab-icon{font-size:inherit}.terminal-pane--sections .tab-selection-marker{display:none}.terminal-pane--sections .replay-intro,.terminal-pane--sections .theme-toggle{z-index:1;margin:0;position:absolute;bottom:2px}.terminal-pane--sections .replay-intro{right:48px}.terminal-pane--sections .theme-toggle{right:4px}.terminal-pane--sections .terminal-reading{min-height:48px;padding-right:100px}}@media (height<=500px) and (width<=1050px){.profile-details{padding-block:calc(6px * var(--phone-scale))}.terminal-output{padding-block:calc(14px * var(--phone-scale));scroll-padding-top:calc(14px * var(--phone-scale))}.welcome-content{padding-block:calc(12px * var(--phone-scale))}.welcome-doodle{font-size:calc(9px * var(--phone-scale));margin-bottom:calc(6px * var(--phone-scale))}.welcome h2{font-size:clamp(18px,5.3vw,24px)}.welcome-actions{margin-top:calc(12px * var(--phone-scale));gap:calc(8px * var(--phone-scale));max-width:calc(900px * var(--phone-scale))}}@media (pointer:coarse){.cli-action,.copy-compact .cli-action,.citation-text>summary,.record-links a{min-height:44px}.copy-compact .cli-action{width:44px}.citation-text>summary,.record-links a{align-items:center;display:inline-flex}}@media (prefers-reduced-motion:reduce){:root{--motion:0s}.falling-comets{display:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation:none!important}}
