@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap";@font-face{font-family:Portfolio Nerd;src:url(/Portfolio/_astro/HackNerdFontMono-Regular.DiaiS9t9.woff2)format("woff2");font-style:normal;font-display:swap}:root{color:#c0caf5;font-synthesis:none;--bg:#1a1b26;--panel:#202330;--panel2:#24283b;--line:#34394d;--text:#c0caf5;--muted:#8b93ad;--subtle:#69718d;--blue:#7aa2f7;--cyan:#7dcfff;--green:#9ece6a;--purple:#bb9af7;--orange:#ff9e64;--red:#f7768e;background:#1a1b26;font-family:JetBrains Mono,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:112px}body{min-width:320px;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:3px}::selection{background:var(--blue);color:var(--bg)}[hidden]{display:none!important}.skip-link{z-index:100;background:var(--blue);color:var(--bg);padding:10px;position:fixed;top:-60px;left:20px}.skip-link:focus{top:10px}.editor-top{z-index:30;backdrop-filter:blur(18px);background:#1a1b26f7;position:sticky;top:0;box-shadow:0 5px 18px #10111a30}.top-bar{border-bottom:1px solid var(--line);height:42px;color:var(--muted);align-items:center;gap:12px;padding:0 28px;font-size:11px;display:flex}.editor-mark{color:var(--green);font-size:19px}.top-spacer,.status-spacer{flex:1}.workspace-state{color:var(--green);white-space:nowrap}.workspace-state i{background:var(--green);width:6px;height:6px;box-shadow:0 0 8px var(--green);border-radius:50%;margin-right:6px;display:inline-block}.lang-switch{color:var(--blue);border:1px solid var(--line);border-radius:4px;margin-left:18px;padding:5px 8px}.lang-switch:hover{background:var(--panel2)}.tabline{scrollbar-width:none;border-bottom:1px solid var(--line);align-items:stretch;height:45px;display:flex;overflow-x:auto}.tabline::-webkit-scrollbar{display:none}.tab{min-width:max-content;color:var(--muted);border-right:1px solid var(--line);border-top:2px solid #0000;align-items:center;gap:8px;padding:0 19px;font-size:11px;transition:background .2s,color .2s;display:flex}.tab:hover{background:var(--panel2);color:var(--text)}.tab.active{background:var(--panel2);color:var(--text);border-top-color:var(--blue)}.tab-icon,.home-tab span{color:var(--blue)}.tab-close{color:var(--subtle);margin-left:12px;font-size:16px}.editor-grid{grid-template-columns:62px minmax(0,1fr);display:grid}.gutter{border-right:1px solid var(--line);color:var(--subtle);font-size:11px;overflow:hidden}.gutter #line-numbers{text-align:right;padding-top:22px;padding-right:16px;line-height:26px;position:sticky;top:112px}.gutter .current{color:var(--orange);font-weight:700}main{min-width:0;overflow:hidden}.section{max-width:1260px;margin:auto;padding-left:clamp(28px,6vw,110px);padding-right:clamp(28px,6vw,110px)}.hero{grid-template-columns:minmax(0,1.25fr) minmax(285px,.75fr);align-items:center;gap:clamp(35px,6vw,100px);min-height:calc(100vh - 128px);padding-top:80px;padding-bottom:90px;display:grid;position:relative}.hero:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#0000 0%,#7aa2f705 50%,#0000 100%),repeating-linear-gradient(0deg,#0000 0 51px,#7aa2f706 52px);position:absolute;inset:0}.breadcrumb,.section-head{justify-content:space-between;align-items:center;gap:20px;font-size:11px;display:flex}.breadcrumb{margin-bottom:70px}.comment,.crumb-right,.section-count{color:var(--subtle)}.dashboard-label{color:var(--green);letter-spacing:.2em;margin:0 0 21px;font-size:11px;font-weight:700}.ascii{color:var(--blue);letter-spacing:.012em;text-shadow:0 0 25px #7aa2f733;white-space:pre;margin:0 0 20px;font-size:clamp(6px,.89vw,12px);line-height:1.12;overflow:visible}.hero h1{letter-spacing:-.06em;margin:0 0 18px;font-family:DM Sans,sans-serif;font-size:clamp(29px,3.3vw,52px);font-weight:700;line-height:1.1}.block-cursor{background:var(--blue);vertical-align:-.1em;width:.5em;height:.94em;margin-left:7px;animation:1s step-end infinite blink;display:inline-block}.hero-role{margin:0 0 26px;font-size:13px}.keyword,.hash{color:var(--purple)}.string{color:var(--green)}.operator{color:var(--orange)}.punctuation{color:var(--muted)}.key{color:var(--cyan)}.hero-summary,.body-copy,.contact-lead{color:#aeb8d3;max-width:600px;font-family:DM Sans,sans-serif;font-size:16px;line-height:1.75}.hero-summary{margin:0 0 33px}.dashboard-actions{flex-wrap:wrap;gap:9px;display:flex}.dashboard-actions a{border:1px solid var(--line);color:var(--text);background:#222637;border-radius:5px;align-items:center;gap:11px;padding:11px 13px;font-size:11px;transition:transform .2s,border-color .2s,background .2s;display:flex}.dashboard-actions a:first-child{border-color:var(--blue);background:#7aa2f71b}.dashboard-actions a:hover{border-color:var(--blue);background:#7aa2f71b;transform:translateY(-3px)}.dashboard-actions kbd{color:var(--green);font-weight:700}.dashboard-actions a>span{color:var(--blue)}.hero-hint{color:var(--subtle);margin-top:50px;font-size:10px;line-height:2}.hero-hint span:nth-child(2),.hero-hint span:nth-child(4),.hero-hint span:nth-child(6),.hero-hint span:nth-child(8){color:var(--muted)}.hero-side,.stack-panel,.contact-panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;overflow:hidden;box-shadow:0 24px 70px #0f101b55}.window-title,.stack-head,.contact-panel-head{border-bottom:1px solid var(--line);background:var(--panel2);color:var(--muted);align-items:center;gap:9px;padding:13px 17px;font-size:11px;display:flex}.window-title>span:first-child{color:var(--orange)}.window-meta,.stack-head span:last-child{color:var(--subtle);margin-left:auto}.yaml{white-space:nowrap;padding:25px 25px 32px;font-size:11px;line-height:2.2}.yaml .indent{padding-left:20px}.yaml-gap{height:20px}.window-foot{border-top:1px solid var(--line);color:var(--green);padding:12px 17px;font-size:10px}.content-section{border-top:1px solid var(--line);padding-top:105px;padding-bottom:110px}.section-head{margin-bottom:50px}.section-path{color:var(--blue)}h2{letter-spacing:-.055em;max-width:650px;margin:0 0 35px;font-family:DM Sans,sans-serif;font-size:clamp(31px,3.1vw,48px);font-weight:700;line-height:1.17}.hash{vertical-align:5px;margin-right:6px;font-family:JetBrains Mono,monospace;font-size:.63em}.two-col{grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,120px);display:grid}.body-copy p{margin:0 0 30px}.callout{border-left:3px solid var(--green);color:var(--text);background:#9ece6a0c;padding:16px 19px;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.7}.timeline{border-top:1px solid var(--line)}.job{border-bottom:1px solid var(--line);grid-template-columns:65px 1fr;gap:28px;padding:31px 0;display:grid}.job-index{color:var(--orange);flex-direction:column;gap:13px;font-size:13px;display:flex}.job-index span{color:var(--line)}.job-heading{justify-content:space-between;gap:20px;display:flex}.job h3{letter-spacing:-.04em;margin:0 0 5px;font-family:DM Sans,sans-serif;font-size:23px}.job-heading p{color:var(--blue);margin:0;font-size:11px}.job-heading p span{color:var(--subtle)}.job time{color:var(--muted);white-space:nowrap;font-size:11px}.job ul{grid-template-columns:1fr 1fr;gap:15px 35px;margin:24px 0 0;padding:0;list-style:none;display:grid}.job li{color:#aeb8d3;gap:11px;font-family:DM Sans,sans-serif;font-size:14px;line-height:1.6;display:flex}.job li span{color:var(--green);font-family:JetBrains Mono,monospace}.section-title-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.telescope{border:1px solid var(--line);background:var(--panel);border-radius:7px;overflow:hidden;box-shadow:0 25px 75px #0f101b55}.telescope-bar,.telescope-footer{background:var(--panel2);color:var(--muted);align-items:center;gap:8px;padding:13px 17px;font-size:11px;display:flex}.telescope-bar>span:first-child{color:var(--blue)}.telescope-count{color:var(--subtle);margin-left:auto}.telescope-body{grid-template-columns:minmax(215px,32%) minmax(0,1fr);min-height:600px;display:grid}.project-list{border-right:1px solid var(--line);padding:15px 0}.project-option{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-left:3px solid #0000;align-items:center;gap:13px;padding:17px 18px;font-size:11px;display:flex}.project-option:hover,.project-option.selected{background:#7aa2f710}.project-option.selected{border-left-color:var(--blue)}.project-number{color:var(--subtle)}.project-option-name{flex:1;font-weight:700}.project-option-name small{color:var(--subtle);margin-top:6px;font-size:9px;font-weight:400;line-height:1.3;display:block}.project-option>span:last-child{color:var(--blue)}.project-preview{min-width:0}.preview-item{display:none}.preview-item.selected{display:block}.preview-screen{border-bottom:1px solid var(--line);background:#151723;justify-content:center;align-items:center;height:300px;display:flex;position:relative;overflow:hidden}.preview-label{color:var(--subtle);z-index:1;background:#151723c9;padding:5px;font-size:10px;position:absolute;top:12px;left:15px}.preview-screen img{object-fit:cover;object-position:top center;width:100%;height:100%}.preview-screen pre{color:var(--blue);text-shadow:0 0 20px #7aa2f766;font-size:clamp(10px,1.4vw,17px);line-height:1.7}.preview-content{padding:24px 30px 31px}.preview-content .comment{margin:0 0 9px;font-size:10px}.preview-content h3{letter-spacing:-.04em;margin:0 0 9px;font-family:DM Sans,sans-serif;font-size:26px}.preview-content>p:not(.comment){color:#aeb8d3;margin:0 0 18px;font-family:DM Sans,sans-serif;font-size:14px;line-height:1.6}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags span{color:var(--blue);background:#7aa2f714;border:1px solid #7aa2f72b;border-radius:3px;padding:5px 8px;font-size:9px}.project-links{color:var(--green);flex-wrap:wrap;gap:18px;margin-top:23px;font-size:11px;display:flex}.project-links a:hover{text-decoration:underline}.telescope-footer{border-top:1px solid var(--line);color:var(--subtle);gap:24px}.search-empty{color:var(--muted);font-size:12px}.stack-grid{grid-template-columns:repeat(4,1fr);gap:0;padding:18px;display:grid}.stack-grid>div{white-space:nowrap;border-bottom:1px solid #34394d80;padding:13px;font-size:11px}.stack-grid>div:hover{background:#7aa2f70d}.stack-number{color:var(--subtle);margin-right:16px}.stack-grid .key{margin-right:8px}.contact-lead{margin:0}.contact-panel form{gap:9px;padding:24px;display:grid}.contact-panel label{color:var(--cyan);margin-top:8px;font-size:11px}.contact-panel input,.contact-panel textarea{border:1px solid var(--line);width:100%;color:var(--text);resize:vertical;background:#191c29;border-radius:4px;padding:12px;font-size:11px}.contact-panel input::placeholder,.contact-panel textarea::placeholder{color:#68718b}.contact-panel form button{background:var(--green);color:#172016;border:0;border-radius:4px;justify-self:start;margin-top:10px;padding:12px 18px;font-size:11px;font-weight:700}.contact-panel form button:hover{filter:brightness(1.1)}.insert-indicator{color:var(--green);margin-left:auto}.contact-social{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:20px;padding:17px 24px;font-size:10px;display:flex}.contact-social a:hover{color:var(--blue)}.page-footer{color:var(--subtle);justify-content:space-between;gap:20px;padding:35px clamp(28px,6vw,110px) 90px;font-size:10px;display:flex}.statusline{z-index:35;background:var(--panel2);border-top:1px solid var(--line);height:31px;color:var(--muted);white-space:nowrap;align-items:center;gap:18px;padding-right:17px;font-size:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.mode{background:var(--blue);height:31px;color:var(--bg);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%);align-items:center;padding:0 27px 0 20px;font-weight:700;display:flex}.mode[data-mode=INSERT]{background:var(--green)}.mode[data-mode=COMMAND]{background:var(--orange)}.status-file{color:var(--text)}.status-section{color:var(--blue)}.command-overlay{z-index:40;width:min(650px,100% - 40px);position:fixed;bottom:50px;left:50%;transform:translate(-50%)}.command-box{border:1px solid var(--blue);color:var(--orange);background:#24283b;border-radius:5px;align-items:center;gap:13px;padding:14px 18px;display:flex;box-shadow:0 18px 50px #0009}.command-box input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:14px}.command-help{color:var(--subtle);font-size:10px}@keyframes blink{50%{opacity:0}}@media (width<=1000px){.hero{grid-template-columns:1fr;gap:40px}.hero-side{max-width:600px}.ascii{font-size:clamp(6px,1.3vw,12px)}}@media (width<=700px){.editor-grid{grid-template-columns:38px minmax(0,1fr)}.gutter #line-numbers{padding-right:8px;font-size:9px}.top-bar{padding:0 12px}.workspace-state{display:none}.section{padding-left:22px;padding-right:22px}.hero{min-height:auto;padding-top:52px;padding-bottom:70px}.breadcrumb{margin-bottom:45px}.ascii{font-size:clamp(5px,1.6vw,10px)}.two-col{grid-template-columns:1fr;gap:8px}.content-section{padding-top:70px;padding-bottom:75px}.section-head{margin-bottom:35px}.job{grid-template-columns:28px 1fr;gap:13px}.job-heading{display:block}.job time{margin-top:14px;display:block}.job ul,.telescope-body{grid-template-columns:1fr}.project-list{border-right:0;border-bottom:1px solid var(--line);padding:0;display:flex;overflow-x:auto}.project-option{border-bottom:3px solid #0000;border-left:0;width:auto;min-width:190px;padding:13px}.project-option.selected{border-left:0;border-bottom-color:var(--blue)}.project-option-name small{white-space:normal}.preview-screen{height:220px}.stack-grid{grid-template-columns:repeat(2,1fr)}.stack-grid>div{padding:10px 4px}.stack-number{margin-right:7px}.statusline{gap:9px}.status-lang,.status-section{display:none}.page-footer{padding-left:22px;padding-right:22px}.command-help{display:none}}@media (width<=440px){.ascii{font-size:4.5px}.hero h1{font-size:32px}.status-file{font-size:9px}.statusline{gap:7px;padding-right:8px}.mode{padding-left:10px;padding-right:20px}.telescope-footer{gap:10px;font-size:9px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.block-cursor{animation:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.editor-mark,.tab-icon,.home-tab span,.window-title>span:first-child,.window-foot,.telescope-bar>span:first-child,.stack-head>span:first-child,.contact-panel-head>span:first-child,.status-file,.project-links a:first-child,.contact-social a:nth-child(2){font-family:Portfolio Nerd,monospace}.insert-indicator{opacity:.42}.contact-panel:focus-within .insert-indicator{opacity:1}
