/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-mono:var(--font-terminal);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-inter);--default-mono-font-family:var(--font-terminal);--font-fira-code-nerd-font:var(--font-terminal)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}*{box-sizing:border-box}html{scroll-behavior:smooth;font-family:var(--font-terminal)}body{background:var(--term-bg);color:var(--term-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}a{text-decoration:none}::selection{background:var(--term-selection-bg);color:var(--term-selection-fg)}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-full{height:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}@font-face{font-display:swap;font-family:FiraCode Nerd Font Mono;font-style:normal;font-weight:400;src:url(/fonts/fira-code-nerd/FiraCodeNerdFontMono-Regular.ttf)format("truetype")}@font-face{font-display:swap;font-family:FiraCode Nerd Font Mono;font-style:normal;font-weight:600;src:url(/fonts/fira-code-nerd/FiraCodeNerdFontMono-SemiBold.ttf)format("truetype")}@font-face{font-display:swap;font-family:FiraCode Nerd Font Mono;font-style:normal;font-weight:700;src:url(/fonts/fira-code-nerd/FiraCodeNerdFontMono-Bold.ttf)format("truetype")}@font-face{font-display:swap;font-family:Sarasa Gothic SC;font-style:normal;font-weight:400;src:url(/_astro/sarasa-gothic-sc-regular.CZrXLk9z.ttf)format("truetype")}:root{color-scheme:dark;--font-inter:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body-en:var(--font-inter);--font-body-zh:"Sarasa Gothic SC";--font-body:var(--font-body-en);--font-fira-code-nerd-font:"FiraCode Nerd Font Mono", "Fira Code", "SF Mono", Menlo, Monaco, Consolas, monospace;--term-bg:#0f1115;--term-bg-light:#171a20;--term-bg-elevated:#1d1f21;--term-surface:#20242c;--term-surface-hover:#252a33;--term-border:#343b46;--term-border-strong:#4d5664;--term-green:#b9ca4a;--term-green-dim:#7f8f35;--term-green-bright:#d2e36d;--term-amber:#e7c547;--term-amber-dim:#b28f2b;--term-red:#d54e53;--term-blue:#7aa6da;--term-purple:#c397d8;--term-cyan:#70c0b1;--term-white:#c5c8c6;--term-bright-white:#eaeaea;--term-gray:#8b949e;--term-gray-dim:#666;--term-shadow:0 24px 70px #00000057;--term-shadow-soft:0 12px 34px #0000003d;--term-page-glow:#eaeaea05;--term-page-wash:#eaeaea06;--term-page-vignette:linear-gradient(90deg, #00000024, transparent 24%, transparent 76%, #00000024);--term-selection-bg:#7aa6da59;--term-selection-fg:var(--term-bright-white);--term-window-bg:linear-gradient(180deg, #171a20fa, #0f1115fa);--term-window-header-bg:linear-gradient(180deg, var(--term-surface) 0%, var(--term-bg-light) 100%);--term-row-border:#c5c8c61a;--term-row-hover-bg:#7aa6da14;--term-preview-scanlines:repeating-linear-gradient(0deg, #0003 0px, #0003 1px, transparent 1px, transparent 3px);--term-card-bg:linear-gradient(180deg, #20242cd1, #171a20e6);--term-card-hover-bg:linear-gradient(180deg, #252a33e6, #171a20f5);--term-publication-bg:linear-gradient(180deg, #20242cb8, #171a20db);--term-tag-bg:#70c0b114;--term-tag-border:#70c0b13d;--term-action-border:#e7c54757;--term-action-hover-bg:#e7c5471f;--project-filter-bg:var(--term-bg-light);--project-filter-border:var(--term-border);--project-filter-text:var(--term-white);--project-filter-hover-bg:var(--term-action-hover-bg);--project-filter-hover-border:var(--term-cyan);--project-filter-hover-text:var(--term-bright-white);--project-filter-active-bg:var(--term-action-hover-bg);--project-filter-active-border:var(--term-amber);--project-filter-active-text:var(--term-bright-white);--project-card-bg:var(--term-card-bg);--project-card-hover-bg:var(--term-card-hover-bg);--project-card-border:var(--term-border);--project-card-hover-border:var(--term-blue);--project-card-shadow:none;--project-card-hover-shadow:var(--term-shadow-soft);--project-card-header-bg:transparent;--project-card-header-border:var(--term-border);--project-card-command:var(--term-green);--project-card-meta:var(--term-gray);--project-card-heading:var(--term-bright-white);--project-card-text:var(--term-white);--project-card-media-bg:var(--term-bg);--project-card-media-border:var(--term-border-strong);--project-card-tag-bg:var(--term-tag-bg);--project-card-tag-border:var(--term-tag-border);--project-card-tag-text:var(--term-cyan);--project-card-link-bg:transparent;--project-card-link-border:var(--term-action-border);--project-card-link-text:var(--term-amber);--project-card-link-hover-bg:var(--term-action-hover-bg);--project-card-link-hover-border:var(--term-action-border);--project-card-link-hover-text:var(--term-bright-white);--project-card-private:var(--term-gray);--term-skill-bg:#20242c6b;--term-nav-bg:#0f1115e0;--term-link-border:#70c0b173;--term-preview-filter:grayscale(.3) contrast(1.1) brightness(.9);--term-project-image-filter:saturate(.95) contrast(1.02);--term-project-image-hover-filter:saturate(1.05) contrast(1.04);--term-avatar-hover-filter:saturate(1.05) contrast(1.02);--term-glitch-red:#ff000080;--term-glitch-red-soft:#ff00004d;--term-glitch-cyan:#00ffff80;--term-glitch-cyan-soft:#00ffff4d;--term-matrix-fade:#0f111514;--font-terminal:var(--font-fira-code-nerd-font);--blink-speed:1s;--background:#0f1115;--foreground:#c5c8c6;--card:#171a20;--card-foreground:#c5c8c6;--popover:#171a20;--popover-foreground:#c5c8c6;--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--radius:.625rem;--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}html[lang=zh-CN]{--font-body:var(--font-body-zh)}:root[data-theme=light]{color-scheme:light;--term-bg:#eff1f5;--term-bg-light:#e6e9ef;--term-bg-elevated:#f6f7fb;--term-surface:#dce0e8;--term-surface-hover:#ccd0da;--term-border:#bcc0cc;--term-border-strong:#9ca0b0;--term-green:#40a02b;--term-green-dim:#5c7f42;--term-green-bright:#2f7d20;--term-amber:#df8e1d;--term-amber-dim:#b86f16;--term-red:#d20f39;--term-blue:#1e66f5;--term-purple:#8839ef;--term-cyan:#179299;--term-white:#4c4f69;--term-bright-white:#303446;--term-gray:#6c6f85;--term-gray-dim:#8c8fa1;--term-shadow:0 24px 70px #4c4f6929;--term-shadow-soft:0 12px 34px #4c4f691f;--term-page-glow:#1e66f512;--term-page-wash:#7287fd14;--term-page-vignette:linear-gradient(90deg, #dce0e86b, transparent 22%, transparent 78%, #dce0e86b);--term-selection-bg:#7287fd3d;--term-selection-fg:var(--term-bright-white);--term-window-bg:linear-gradient(180deg, #ffffffdb, #e6e9efeb);--term-window-header-bg:linear-gradient(180deg, #f6f7fb 0%, #e6e9ef 100%);--term-row-border:#4c4f6921;--term-row-hover-bg:#1e66f514;--term-preview-scanlines:repeating-linear-gradient(0deg, #4c4f691c 0px, #4c4f691c 1px, transparent 1px, transparent 3px);--term-card-bg:linear-gradient(180deg, #f6f7fbcc, #e6e9efe0);--term-card-hover-bg:linear-gradient(180deg, #ffffffe6, #dce0e8e6);--term-publication-bg:linear-gradient(180deg, #f6f7fbbd, #e6e9efd6);--term-tag-bg:#1792991a;--term-tag-border:#17929947;--term-action-border:#df8e1d66;--term-action-hover-bg:#df8e1d24;--project-filter-bg:#fff;--project-filter-border:#d9dee8;--project-filter-text:#4d5568;--project-filter-hover-bg:#f1fbfa;--project-filter-hover-border:#8ab9bc;--project-filter-hover-text:#233d40;--project-filter-active-bg:#fff3dc;--project-filter-active-border:#c68a2f;--project-filter-active-text:#3b2b14;--project-card-bg:#fff;--project-card-hover-bg:#fbfcfe;--project-card-border:#dfe4ec;--project-card-hover-border:#acb7c8;--project-card-shadow:0 1px 0 #1f293708;--project-card-hover-shadow:0 18px 44px #1f293714;--project-card-header-bg:linear-gradient(180deg, #fbfcfe 0%, #f7f8fb 100%);--project-card-header-border:#e6eaf1;--project-card-command:#2f6f55;--project-card-meta:#747b8d;--project-card-heading:#232936;--project-card-text:#4d5568;--project-card-media-bg:#f4f6fa;--project-card-media-border:#d9dee8;--project-card-tag-bg:#f1f7f7;--project-card-tag-border:#d3e5e5;--project-card-tag-text:#286f75;--project-card-link-bg:#fff;--project-card-link-border:#d9dee8;--project-card-link-text:#303846;--project-card-link-hover-bg:#fff3dc;--project-card-link-hover-border:#c68a2f;--project-card-link-hover-text:#3b2b14;--project-card-private:#747b8d;--term-skill-bg:#f6f7fb8f;--term-nav-bg:#eff1f5d6;--term-link-border:#17929980;--term-preview-filter:grayscale(.18) contrast(1.02) brightness(1.02);--term-project-image-filter:saturate(.98) contrast(1.01);--term-project-image-hover-filter:saturate(1.05) contrast(1.03);--term-avatar-hover-filter:saturate(1.04) contrast(1.01);--term-glitch-red:#d20f396b;--term-glitch-red-soft:#d20f3942;--term-glitch-cyan:#1792996b;--term-glitch-cyan-soft:#17929942;--term-matrix-fade:#eff1f51f;--background:#eff1f5;--foreground:#4c4f69;--card:#e6e9ef;--card-foreground:#4c4f69;--popover:#f6f7fb;--popover-foreground:#4c4f69;--primary:#1e66f5;--primary-foreground:#eff1f5;--secondary:#dce0e8;--secondary-foreground:#4c4f69;--muted:#e6e9ef;--muted-foreground:#6c6f85;--accent:#dce0e8;--accent-foreground:#303446;--destructive:#d20f39;--border:#4c4f6924;--input:#4c4f6929;--ring:#7287fd;--chart-1:#1e66f5;--chart-2:#179299;--chart-3:#40a02b;--chart-4:#df8e1d;--chart-5:#8839ef;--sidebar:#e6e9ef;--sidebar-foreground:#4c4f69;--sidebar-primary:#1e66f5;--sidebar-primary-foreground:#eff1f5;--sidebar-accent:#dce0e8;--sidebar-accent-foreground:#303446;--sidebar-border:#4c4f6924;--sidebar-ring:#7287fd}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes terminal-pulse{0%,to{opacity:.88}50%{opacity:1}}@keyframes boot-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-out{to{opacity:0}}@keyframes glitch-reveal{0%{opacity:0;clip-path:inset(0 0 100%)}10%{opacity:.3;clip-path:inset(0 0 85%);transform:translate(-2px)}15%{transform:translate(2px)}20%{opacity:.5;clip-path:inset(0 0 70%);transform:translate(-1px)}25%{transform:translate(1px)}30%{opacity:.6;clip-path:inset(0 0 55%)}40%{opacity:.7;clip-path:inset(0 0 40%);transform:translate(1px)}60%{opacity:.85;clip-path:inset(0 0 15%);transform:translate(-1px)}80%{opacity:.95;clip-path:inset(0 0 3%)}to{opacity:1;clip-path:inset(0 0 0%);transform:translate(0)}}@keyframes rgb-split{0%,to{filter:var(--term-preview-filter)}25%{filter:var(--term-preview-filter) drop-shadow(2px 0 0 var(--term-glitch-red)) drop-shadow(-2px 0 0 var(--term-glitch-cyan))}75%{filter:var(--term-preview-filter) drop-shadow(-1px 0 0 var(--term-glitch-red-soft)) drop-shadow(1px 0 0 var(--term-glitch-cyan-soft))}}@keyframes scanline-drift{0%{background-position:0 0}to{background-position:0 3px}}.terminal-page{background:linear-gradient(180deg, var(--term-page-glow) 0%, transparent 220px), var(--term-bg);color:var(--term-white);font-family:var(--font-terminal);min-height:100vh;font-size:16px;line-height:1.6;transition:opacity 30ms linear;position:relative;overflow-x:hidden}.terminal-page:before{background:linear-gradient(180deg, var(--term-page-wash), transparent 42vh);content:"";pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;top:0;left:0}.terminal-page:after{background:var(--term-page-vignette);content:"";pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;top:0;left:0}.terminal-page>main,.term-nav{z-index:1;position:relative}.term-text{color:var(--term-white);text-shadow:none}.term-text-dim{color:var(--term-gray);text-shadow:none}.term-text-bright{color:var(--term-bright-white);text-shadow:none}.term-text-amber{color:var(--term-amber);text-shadow:none}.term-text-white{color:var(--term-white);text-shadow:none}.cursor{animation:blink var(--blink-speed) step-end infinite;background-color:var(--term-green);box-shadow:none;vertical-align:middle;border-radius:2px;width:2px;height:1.25em;margin-left:.45em;display:inline-block}.term-window{background:var(--term-window-bg);border:1px solid var(--term-border);box-shadow:var(--term-shadow);border-radius:8px;overflow:hidden}.term-window__header{background:var(--term-window-header-bg);border-bottom:1px solid var(--term-border);align-items:center;gap:8px;padding:10px 14px;display:flex}.term-window__dots{gap:6px;display:flex}.term-window__dot{background:var(--term-gray);border-radius:50%;width:12px;height:12px}.term-window__dot--red{background:#ed6a5f;box-shadow:inset 0 0 0 1px #e24b41}.term-window__dot--yellow{background:#f6be50;box-shadow:inset 0 0 0 1px #e1a73e}.term-window__dot--green{background:#61c555;box-shadow:inset 0 0 0 1px #2dac2f}.term-window__title{color:var(--term-gray);letter-spacing:0;text-align:center;flex:1;font-size:12px}.term-window__body{min-height:200px;padding:24px}.prompt{flex-wrap:wrap;align-items:flex-start;margin-bottom:2rem;line-height:1.8;display:flex}.prompt--spaced{margin-top:2rem}.prompt__identity{white-space:nowrap}.prompt__user{color:var(--term-green);text-shadow:none;font-weight:600}.prompt__at{color:var(--term-gray)}.prompt__host{color:var(--term-cyan)}.prompt__path{color:var(--term-blue)}.prompt__input{align-items:center;min-height:1.8em;display:inline-flex}.prompt__symbol{color:var(--term-green);text-shadow:none;margin:0 .55em 0 .35em;font-weight:700}.prompt__command{color:var(--term-bright-white);font-size:1.02em;font-weight:600}.output{margin-bottom:1.5em;padding-left:0}.output--indented{padding-left:1em}.copy-text,.output--copy,.skills-help__bubble,.timeline-entry__title,.timeline-entry__institution,.timeline-entry__description,.publication-card__title,.publication-card__venue,.publication-card__authors,.publication-card__description,.project-card__heading,.project-card__meta-line,.project-card__description,.term-comment{font-family:var(--font-body)}.output--project-count{margin-bottom:2rem}.output__line{line-height:1.8;display:block}.output__line--name{margin-bottom:.5em;font-size:1.2em;display:block}.output__line--comment{margin-top:1em;display:block}.output__line--loose{margin-bottom:1rem}.output__line--project-inquiries{margin-top:1.5rem}.ascii-lockup{gap:.1rem;max-width:100%;margin:1em 0;display:grid}.ascii-art{color:var(--term-bright-white);font-family:var(--font-terminal);text-shadow:none;white-space:pre;margin:0;font-size:clamp(6.5px,1vw,14px);line-height:1.08;animation:4s ease-in-out infinite terminal-pulse}.ascii-art--first{justify-self:start}.ascii-art--last{color:var(--term-gray);justify-self:start;margin-top:.65rem;margin-left:clamp(1.8rem,9vw,7rem);animation-delay:.25s}.ascii-art--glitching{animation:.14s 5 terminal-pulse}.file-list{width:100%;margin-bottom:3rem;font-size:14px}.project-filters{flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem;display:flex}.project-filter{background:var(--project-filter-bg);border:1px solid var(--project-filter-border);color:var(--project-filter-text);cursor:pointer;font-family:var(--font-terminal);border-radius:6px;align-items:center;gap:.45rem;height:2.15rem;padding:0 .68rem;font-size:.82rem;font-weight:600;line-height:1;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.project-filter:hover,.project-filter:focus-visible{background:var(--project-filter-hover-bg);border-color:var(--project-filter-hover-border);color:var(--project-filter-hover-text);outline:none}.project-filter.is-active{background:var(--project-filter-active-bg);border-color:var(--project-filter-active-border);color:var(--project-filter-active-text)}.project-filter>span{align-items:center;height:100%;line-height:1;display:inline-flex}.file-entry{border-bottom:1px solid var(--term-row-border);color:inherit;grid-template-columns:180px 230px minmax(0,1fr);align-items:center;gap:1em;width:100%;padding:.3em 0;text-decoration:none;transition:background-color .2s;display:grid;position:relative}.file-entry:hover{background-color:var(--term-row-hover-bg)}.file-entry__group{color:var(--term-purple)}.file-entry__date{color:var(--term-gray);white-space:nowrap}.file-entry__name{color:var(--term-bright-white);text-overflow:ellipsis;white-space:nowrap;text-shadow:none;overflow:hidden}.file-entry__name--exec{color:var(--term-green)}.file-entry__preview{opacity:0;pointer-events:none;z-index:100;width:400px;max-width:40vw;transition:opacity .15s;position:fixed;top:50%;right:5%;transform:translateY(-50%)}.file-entry:hover .file-entry__preview{opacity:1}.file-entry__preview-inner{background:var(--term-bg-light);border:1px solid var(--term-border-strong);box-shadow:var(--term-shadow-soft);border-radius:8px;position:relative;overflow:hidden}.file-entry__preview-loading{opacity:1;pointer-events:none;z-index:2;font-size:.8em;transition:opacity .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.file-entry:hover .file-entry__preview-loading{animation:.3s .5s forwards fade-out}.file-entry__preview-img{filter:var(--term-preview-filter);opacity:0;z-index:1;width:100%;height:auto;display:block;position:relative}.file-entry:hover .file-entry__preview-img{animation:.8s ease-out .2s forwards glitch-reveal,.15s infinite rgb-split}.file-entry__preview-scanlines{background:var(--term-preview-scanlines);opacity:0;pointer-events:none;z-index:3;width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.file-entry:hover .file-entry__preview-scanlines{opacity:1;animation:3s linear infinite scanline-drift}.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1.25rem;display:grid}.project-card{background:var(--project-card-bg);border:1px solid var(--project-card-border);box-shadow:var(--project-card-shadow);border-radius:8px;flex-direction:column;scroll-margin-top:90px;transition:all .3s;display:flex}.project-card:hover{background:var(--project-card-hover-bg);border-color:var(--project-card-hover-border);box-shadow:var(--project-card-hover-shadow)}.project-card__header{background:var(--project-card-header-bg);border-bottom:1px solid var(--project-card-header-border);border-radius:7px 7px 0 0;justify-content:space-between;align-items:center;gap:.75rem;padding:1em;display:flex}.project-card__title{color:var(--project-card-command);overflow-wrap:anywhere;min-width:0;text-shadow:none;font-size:.86em;font-weight:600;line-height:1.5}.project-card__meta{color:var(--project-card-meta);flex:none;font-size:.8em}.project-card__body{flex-direction:column;flex:1;padding:1.5em;display:flex}.project-card__image-container{aspect-ratio:16/9;background:var(--project-card-media-bg);border:1px solid var(--project-card-media-border);box-shadow:none;border-radius:8px;width:100%;margin-bottom:1.5em;position:relative;overflow:hidden}.project-card__image{filter:var(--term-project-image-filter);object-fit:cover;width:100%;height:100%;transition:filter .3s;display:block}.project-card:hover .project-card__image{filter:var(--term-project-image-hover-filter)}.project-card__heading{color:var(--project-card-heading);text-shadow:none;margin:0 0 .5rem;font-size:1.3rem}.project-card__meta-line{color:var(--project-card-meta);flex-wrap:wrap;gap:.75em;margin-bottom:.85em;font-size:.85em;display:flex}.project-card__description{color:var(--project-card-text);margin-bottom:1em;line-height:1.7}.project-card__tags{flex-wrap:wrap;gap:.5em;margin-bottom:1em;display:flex}.project-card__tag{background:var(--project-card-tag-bg);border:1px solid var(--project-card-tag-border);color:var(--project-card-tag-text);border-radius:6px;padding:.2em .6em;font-size:.75em}.project-card__link{background:var(--project-card-link-bg);border:1px solid var(--project-card-link-border);color:var(--project-card-link-text);cursor:pointer;font:inherit;border-radius:6px;align-items:center;gap:.5em;padding:.42em .78em;font-size:.86em;text-decoration:none;transition:all .2s;display:inline-flex}.project-card__links{flex-wrap:wrap;gap:.75em;margin-top:1em;display:flex}.project-card__body>.project-card__links{margin-top:auto;padding-top:1.25em}.project-card__link:hover{background:var(--project-card-link-hover-bg);border-color:var(--project-card-link-hover-border);color:var(--project-card-link-hover-text);text-shadow:none}.project-card__private{align-self:flex-start}.project-card__link--disabled,.project-card__link--disabled:hover{background:var(--project-card-link-bg);border-color:var(--project-card-link-border);color:var(--project-card-private);cursor:not-allowed;opacity:.72;text-shadow:none}.skills-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.skills-icon-group{background:var(--term-skill-bg);border:1px solid var(--term-border);border-radius:8px;padding:1rem}.skills-icon-group__header{align-items:center;gap:.5rem;margin-bottom:.9rem;display:flex}.skills-icon-group__title{color:var(--term-purple);margin:0;font-size:1rem}.skills-help{border:1px solid var(--term-border-strong);color:var(--term-gray);cursor:help;border-radius:50%;outline:none;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.72rem;display:inline-flex;position:relative}.skills-help:hover,.skills-help:focus{border-color:var(--term-cyan);color:var(--term-cyan)}.skills-help__bubble{background:var(--term-bg-elevated);border:1px solid var(--term-border-strong);box-shadow:var(--term-shadow-soft);color:var(--term-white);opacity:0;pointer-events:none;text-align:left;z-index:20;border-radius:8px;width:min(280px,100vw - 2rem);padding:.65rem .75rem;font-size:.78rem;font-weight:400;line-height:1.5;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + .55rem);left:50%;transform:translate(-50%)translateY(4px)}.skills-help:hover .skills-help__bubble,.skills-help:focus .skills-help__bubble{opacity:1;transform:translate(-50%)translateY(0)}.skills-icon-group__items{flex-wrap:wrap;gap:.9rem;display:flex}.skills-icon-group__icon{width:40px;height:40px;transition:transform .2s;display:block}.skills-icon-group__icon:hover{transform:translateY(-1px)}.timeline{gap:1.2rem;display:grid}.timeline-entry{grid-template-columns:132px minmax(0,1fr);gap:1rem;display:grid}.timeline-entry__marker{color:var(--term-purple);text-transform:uppercase;padding-top:.2rem;font-size:.95rem;font-weight:700}.timeline-entry__body{border-left:1px solid var(--term-border);padding-left:1rem}.timeline-entry__header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem 1rem;display:flex}.timeline-entry__title{color:var(--term-bright-white);margin:0;font-size:1.05rem}.timeline-entry__period{color:var(--term-amber);font-size:.82rem}.timeline-entry__institution{color:var(--term-cyan);margin:.2rem 0 .7rem}.timeline-entry__description{margin-bottom:.9rem}.publication-list{gap:1rem;display:grid}.publication-card{background:var(--project-card-bg);border:1px solid var(--project-card-border);box-shadow:var(--project-card-shadow);border-radius:8px;padding:0;transition:background-color .3s,border-color .3s,box-shadow .3s;overflow:hidden}.publication-card:hover{background:var(--project-card-hover-bg);border-color:var(--project-card-hover-border);box-shadow:var(--project-card-hover-shadow)}.publication-card__header{background:var(--project-card-header-bg);border-bottom:1px solid var(--project-card-header-border);justify-content:space-between;align-items:start;gap:1rem;padding:1rem 1.2rem;display:flex}.publication-card__title{color:var(--project-card-heading);margin:0;font-size:1.05rem;line-height:1.5}.publication-card__year{color:var(--project-card-command);flex:none;font-weight:600}.publication-card__venue{color:var(--project-card-command);margin:0;padding:1rem 1.2rem .4rem;font-weight:600}.publication-card__authors{color:var(--project-card-meta);margin:0;padding:0 1.2rem .8rem;font-size:.86rem;line-height:1.5}.publication-card__description{color:var(--project-card-text);margin:0;padding:0 1.2rem;line-height:1.7}.publication-card .project-card__links{padding:0 1.2rem 1.2rem}.term-section{flex-direction:column;justify-content:center;min-height:100vh;padding:4rem 0;display:flex}.term-section--hero{justify-content:center;min-height:100vh;position:relative}.term-section--full{min-height:auto;padding:2rem 0}.term-container{width:90%;max-width:1200px;margin:0 auto}.hero-boot{animation:1s ease-out boot-in}.hero-layout{grid-template-columns:minmax(0,1fr) minmax(380px,440px);align-items:center;gap:2rem;display:grid}.hero-layout__identity{min-width:0}.hero-boot__content{flex-wrap:wrap;align-items:center;gap:clamp(1.6rem,2.8vw,2.4rem);display:flex}.hero-ascii-wrapper{flex:1;min-width:0}.hero-avatar{border:1px solid var(--term-border-strong);box-shadow:var(--term-shadow-soft);border-radius:8px;flex-shrink:0;width:180px;height:180px;position:relative;overflow:hidden}.hero-avatar__img{object-fit:cover;width:100%;height:100%;transition:filter .3s}.hero-avatar:hover .hero-avatar__img{filter:var(--term-avatar-hover-filter)}.hero-status{flex-direction:column;gap:.5em;margin-top:2rem;font-size:.98em;display:flex}.status-line{opacity:0;align-items:center;gap:1em;animation:.5s ease-out forwards boot-in;display:flex}.status-line:first-child{animation-delay:.2s}.status-line:nth-child(2){animation-delay:.4s}.status-line:nth-child(3){animation-delay:.6s}.status-line:nth-child(4){animation-delay:.8s}.status-line:nth-child(5){animation-delay:1s}.status-line:nth-child(6){animation-delay:1.2s}.status-line--ready{margin-top:1rem}.status-ok{color:var(--term-green)}.status-label{color:var(--term-gray);min-width:200px}.hero-side{flex-direction:column;justify-self:end;gap:.85rem;width:100%;max-width:440px;display:flex}.hero-panel{background:var(--term-skill-bg);border:1px solid var(--term-border);box-shadow:var(--term-shadow-soft);opacity:0;border-radius:8px;min-width:0;padding:.95rem 1rem;animation:.5s ease-out forwards boot-in}.hero-panel:first-child{animation-delay:.7s}.hero-panel:nth-child(2){animation-delay:.9s}.hero-panel__command{color:var(--term-bright-white);gap:.45rem;margin-bottom:.6rem;font-size:.98rem;font-weight:600;line-height:1.4;display:flex}.hero-panel__header{border-bottom:1px solid var(--term-row-border);margin-bottom:.72rem;padding-bottom:.4rem}.hero-panel__title{color:var(--term-purple);letter-spacing:0;text-transform:uppercase;font-size:.96rem;font-weight:700}.hero-resume-links{gap:.55rem;min-width:0;display:grid}.hero-resume-link{border:1px solid var(--term-action-border);color:var(--term-amber);border-radius:6px;grid-template-columns:2.55rem minmax(0,1fr);align-items:stretch;gap:.6rem;min-width:0;max-width:100%;padding:.58rem .7rem;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s;display:grid}.hero-resume-link:hover,.hero-resume-link:focus-visible{background:var(--term-action-hover-bg);border-color:var(--term-amber);color:var(--term-bright-white);outline:none}.hero-resume-link__label{border:1px solid var(--term-border);color:var(--term-cyan);border-radius:4px;place-items:center;min-height:1.55rem;font-weight:700;line-height:1;display:grid}.hero-resume-link__command{color:var(--term-amber);text-overflow:ellipsis;white-space:nowrap;align-items:center;min-height:1.55rem;font-size:.95rem;line-height:1.2;display:flex;overflow:hidden}.hero-education__list{grid-template-columns:1fr;gap:.72rem;display:grid}.hero-education__item{border-left:1px solid var(--term-border-strong);flex-direction:column;gap:.5rem;min-width:0;padding-left:.72rem;display:flex}.hero-education__item-main{min-width:0}.hero-education__degree{color:var(--term-bright-white);font-family:var(--font-body);margin:0 0 .28rem;font-size:1.05rem;line-height:1.35}.hero-education__institution{color:var(--term-white);font-family:var(--font-body);margin:0;font-size:.9rem;line-height:1.45}.hero-education__period{color:var(--term-amber);font-size:.84rem}.term-nav{backdrop-filter:blur(10px);background:var(--term-nav-bg);border-bottom:1px solid var(--term-border);z-index:1000;padding:.75rem 0;position:fixed;top:0;left:0;right:0}.term-nav__inner{justify-content:space-between;align-items:center;display:flex}.term-nav__actions{align-items:center;gap:1rem;min-width:0;display:flex}.term-nav__brand{color:var(--term-green);text-shadow:none;white-space:nowrap;font-weight:600;text-decoration:none}.term-nav__links{gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.term-nav__link{color:var(--term-gray);font-size:.9rem;text-decoration:none;transition:all .2s;position:relative}.term-nav__link:before{color:var(--term-green);content:"❯";opacity:0;margin-right:.3em;transition:opacity .2s}.term-nav__link:hover{color:var(--term-bright-white);text-shadow:none}.term-nav__link:hover:before{opacity:1}.term-nav__label-short{display:none}.language-command{background:var(--term-bg-light);align-items:center}@supports (color:color-mix(in lab, red, red)){.language-command{background:color-mix(in srgb, var(--term-bg-light) 52%, transparent)}}.language-command{border:1px solid var(--term-border);color:var(--term-white);font-family:var(--font-terminal);white-space:nowrap;border-radius:6px;flex:none;gap:.38rem;height:2rem;padding:0 .62rem;font-size:.78rem;line-height:1;text-decoration:none;transition:background-color .2s,border-color .2s,box-shadow .2s,color .2s;display:inline-flex}.language-command:hover,.language-command:focus-visible{background:var(--term-bg-light);border-color:var(--term-amber);box-shadow:inset 0 0 0 1px var(--term-action-hover-bg), var(--term-shadow-soft);outline:none}.language-command__prompt{color:var(--term-green);font-weight:700}.language-command__name{color:var(--term-cyan)}.language-command__flag{color:var(--term-amber)}.language-command__flag--short{display:none}.theme-command{background:var(--term-bg-light);align-items:center}@supports (color:color-mix(in lab, red, red)){.theme-command{background:color-mix(in srgb, var(--term-bg-light) 64%, transparent)}}.theme-command{border:1px solid var(--term-border);color:var(--term-white);cursor:pointer;font-family:var(--font-terminal);white-space:nowrap;border-radius:6px;flex:none;gap:.38rem;height:2rem;padding:0 .62rem;font-size:.78rem;line-height:1;transition:background-color .2s,border-color .2s,box-shadow .2s,color .2s;display:inline-flex}.theme-command:hover,.theme-command:focus-visible{background:var(--term-bg-light);border-color:var(--term-cyan);box-shadow:inset 0 0 0 1px var(--term-row-hover-bg), var(--term-shadow-soft);outline:none}.theme-command__prompt{color:var(--term-green);font-weight:700}.theme-command__name{color:var(--term-cyan)}.theme-command__flag{color:var(--term-amber)}.theme-command__flag--short{display:none}.term-link{border-bottom:1px dashed var(--term-link-border);color:var(--term-cyan);text-decoration:none;transition:all .2s}.term-link:hover{color:var(--term-bright-white);text-shadow:none;border-bottom-style:solid}.mail-composer{background:var(--term-skill-bg);border:1px solid var(--term-border);box-shadow:inset 0 1px 0 var(--term-row-hover-bg);border-radius:8px;gap:.8rem;max-width:760px;margin:0 0 1.5rem 1rem;padding:1rem;display:grid}.mail-composer__row,.mail-composer__field{gap:.45rem;min-width:0;display:grid}.mail-composer__row--to{border-bottom:1px solid var(--term-row-border);grid-template-columns:5.5rem minmax(0,1fr);align-items:center;padding-bottom:.75rem}.mail-composer__label{color:var(--term-amber);letter-spacing:0;text-transform:uppercase;font-size:.78rem}.mail-composer__address{color:var(--term-cyan);overflow-wrap:anywhere;min-width:0;text-decoration:none}.mail-composer__input,.mail-composer__textarea{background:var(--term-bg-light);border:1px solid var(--term-border);color:var(--term-bright-white);font-family:var(--font-body);border-radius:6px;outline:none;width:100%;padding:.68rem .75rem;font-size:.95rem;line-height:1.5;transition:border-color .18s,box-shadow .18s}.mail-composer__textarea{resize:vertical;min-height:8rem}.mail-composer__input::placeholder,.mail-composer__textarea::placeholder{color:var(--term-gray)}.mail-composer__input:focus,.mail-composer__textarea:focus{border-color:var(--term-cyan);box-shadow:0 0 0 1px var(--term-link-border)}.mail-composer__actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.mail-composer__button{background:var(--term-bg-light);border:1px solid var(--term-action-border);color:var(--term-white);cursor:pointer;font-family:var(--font-terminal);border-radius:6px;align-items:center;gap:.42rem;min-height:2.15rem;padding:0 .72rem;font-size:.82rem;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.mail-composer__button:hover,.mail-composer__button:focus-visible{background:var(--term-action-hover-bg);border-color:var(--term-cyan);color:var(--term-bright-white);outline:none}.mail-composer__button--primary{border-color:var(--term-link-border);color:var(--term-cyan)}.mail-composer__button-prompt{color:var(--term-green);font-weight:700}.mail-composer__status{color:var(--term-gray);min-height:1.5em}.term-comment{color:var(--term-gray);font-style:italic}.term-comment:before{content:"// "}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stagger-in>*{opacity:0;animation:.5s ease-out forwards boot-in}.stagger-in>:first-child{animation-delay:.1s}.stagger-in>:nth-child(2){animation-delay:.2s}.stagger-in>:nth-child(3){animation-delay:.3s}.stagger-in>:nth-child(4){animation-delay:.4s}.stagger-in>:nth-child(5){animation-delay:.5s}.stagger-in>:nth-child(6){animation-delay:.6s}.stagger-in>:nth-child(7){animation-delay:.7s}.term-footer{border-top:1px solid var(--term-border)}.term-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.matrix-rain{opacity:.1;pointer-events:none;z-index:10000;width:100%;height:100%;position:fixed;top:0;left:0}@media (width<=1260px){.hero-layout{grid-template-columns:1fr}.hero-side{justify-self:stretch;max-width:none}}@media (width>=769px) and (width<=1260px){.hero-resume-links,.hero-education__list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1024px){.file-entry__preview{display:none}}@media (width<=768px){.terminal-page{font-size:14px}.term-section{min-height:auto;padding:3rem 0}.term-section--hero{min-height:100vh;padding-top:5rem}.hero-boot__content{flex-direction:column;align-items:center;gap:2rem}.hero-avatar{width:120px;height:120px}.ascii-art{font-size:clamp(4.2px,1.72vw,8.8px)}.ascii-art--last{margin-top:.48rem;margin-left:clamp(1rem,7vw,3rem)}.term-window__body{padding:16px}.skills-icon-grid{grid-template-columns:1fr}.timeline-entry{grid-template-columns:1fr;gap:.4rem}.timeline-entry__body{border-left:0;border-top:1px solid var(--term-border);padding-top:.75rem;padding-left:0}.publication-card__header{display:grid}.prompt{flex-direction:column}.mail-composer{margin-left:0;padding:.85rem}.mail-composer__row--to{grid-template-columns:1fr}.mail-composer__button{justify-content:center}.status-line{grid-template-columns:max-content auto minmax(0,1fr);align-items:start;gap:0 .7rem;display:grid}.status-line--ready{grid-template-columns:minmax(0,1fr) auto}.status-label{white-space:nowrap;min-width:auto}.file-entry{grid-template-columns:1fr;gap:.2em;padding:.8em 0}.file-entry__group,.file-entry__date{display:none}.project-card-grid{grid-template-columns:1fr}.project-card__header{align-items:start;display:grid}.project-card__image-container{margin-bottom:1em}.term-nav__links{gap:.8rem}.term-nav__actions{gap:.75rem}.theme-command__name,.language-command__name,.term-nav__link:before{display:none}}@media (width<=480px){.term-container{width:95%}.term-section--hero{padding-top:4rem;padding-bottom:1rem}.hero-boot__content{gap:1.2rem}.hero-avatar{width:104px;height:104px}.hero-status{gap:.35em;margin-top:1.5rem;font-size:.82em}.status-line{gap:0 .55rem}.ascii-art{margin:.5em 0;font-size:clamp(3px,1.7vw,6.6px)}.ascii-art--last{margin-top:.42rem;margin-left:1.1rem}.term-nav__brand{font-size:.85rem}.term-nav__brand-user,.term-nav__label-full{display:none}.term-nav__label-short{display:inline}.term-nav__links{gap:.45rem}.term-nav__link{font-size:.7rem}.term-nav__actions{gap:.4rem}.theme-command,.language-command{gap:.28rem;height:1.7rem;padding:0 .38rem;font-size:.7rem}.theme-command__prompt,.theme-command__flag,.language-command__prompt,.language-command__flag{display:none}.theme-command__flag--short,.language-command__flag--short{display:inline}}@media print{.terminal-page:before,.terminal-page:after,.cursor{display:none}*{animation:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
