/*! tailwindcss v4.1.8 | 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)))){*,: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-outline-style:solid;--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-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius-sm:.25rem;--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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%;-moz-tab-size:4;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]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color: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}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.\!inline{display:inline!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.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}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,-webkit-backdrop-filter,backdrop-filter,display,visibility,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))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--bg:#0c0c0f;--bg-2:#111116;--bg-3:#16161d;--border:#222228;--border-2:#2a2a35;--green:#3dff7a;--green-dim:#25cc55;--green-glow:#3dff7a1f;--amber:#f0b429;--blue:#58a6ff;--muted:#484860;--text:#d4d4e8;--text-dim:#7878a0;--text-faint:#3a3a55;--red:#ff5f57;--yellow-dot:#febc2e;--green-dot:#28c840;--radius:8px;--radius-sm:5px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:JetBrains Mono,Fira Code,monospace;font-size:14px;line-height:1.6;overflow-x:hidden}body:after{content:"";pointer-events:none;z-index:9998;background:repeating-linear-gradient(0deg,#0000 0,#0000 3px,#0000000f 3px,#0000000f 4px);position:fixed;top:0;right:0;bottom:0;left:0}#root{text-align:left;max-width:100%;padding:0}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.text-green{color:var(--green)}.text-amber{color:var(--amber)}.text-blue{color:var(--blue)}.text-muted{color:var(--text-dim)}.text-faint{color:var(--text-faint)}.glow-green{color:var(--green);text-shadow:0 0 8px #3dff7a66,0 0 24px #3dff7a26}.cursor:after{content:"▋";color:var(--green);margin-left:1px;font-size:.9em;animation:1s step-end infinite blink}.tw{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff06,0 24px 64px #0009}.tw-bar{background:var(--bg-3);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:10px 14px;display:flex;position:relative}.tw-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.dot-r{background:var(--red);box-shadow:0 0 5px #ff5f5766}.dot-y{background:var(--yellow-dot);box-shadow:0 0 5px #febc2e66}.dot-g{background:var(--green-dot);box-shadow:0 0 5px #28c84066}.tw-title{color:var(--muted);letter-spacing:.06em;pointer-events:none;font-size:11px;position:absolute;left:50%;transform:translate(-50%)}.tw-body{padding:22px 24px}.prompt{flex-wrap:wrap;align-items:center;gap:4px;font-size:13px;line-height:1.4;display:flex}.p-user{color:var(--green)}.p-host{color:var(--green-dim)}.p-at{color:var(--muted)}.p-path{color:var(--blue)}.p-dollar{color:var(--text-dim)}.p-cmd{color:var(--text)}.sh{color:var(--text-faint);letter-spacing:.04em;align-items:center;gap:6px;margin-bottom:32px;font-size:12px;display:flex}.sh-line{background:linear-gradient(90deg,var(--border),transparent);flex:1;max-width:240px;height:1px}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:9px 20px;font-family:inherit;font-size:13px;text-decoration:none;transition:all .18s;display:inline-flex}.btn-green{background:var(--green-glow);color:var(--green);border:1px solid #3dff7a40}.btn-green:hover{background:#3dff7a2e;border-color:#3dff7a80;box-shadow:0 0 16px #3dff7a1f}.btn-ghost{border:1px solid var(--border-2);color:var(--text-dim);background:0 0}.btn-ghost:hover{border-color:var(--muted);color:var(--text)}.btn-danger{color:#ff5f57b3;background:0 0;border:1px solid #ff5f5733}.btn-danger:hover{color:var(--red);background:#ff5f5712;border-color:#ff5f5780}.card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .2s,box-shadow .2s,transform .2s}.card:hover{border-color:#3dff7a33;box-shadow:0 6px 28px #3dff7a0a}.card-link{text-decoration:none;display:block}.card-link .card:hover{transform:translateY(-2px)}.tag{color:var(--green);letter-spacing:.03em;background:#3dff7a0a;border:1px solid #3dff7a26;border-radius:3px;padding:2px 9px;font-size:11px;display:inline-block}.tag-amber{color:var(--amber);background:#f0b4290d;border-color:#f0b42933}.tag-blue{color:var(--blue);background:#58a6ff0d;border-color:#58a6ff33}.skill-track{background:var(--bg-3);border:1px solid var(--border);border-radius:2px;height:7px;overflow:hidden}.skill-fill{background:linear-gradient(90deg,var(--green-dim),var(--green));border-radius:2px;height:100%;transition:width 1.4s cubic-bezier(.4,0,.2,1);box-shadow:0 0 6px #3dff7a4d}.f-group{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.f-label{color:var(--green);letter-spacing:.06em;font-size:11px}.f-input,.f-textarea,.f-select{background:var(--bg-3);border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--text);outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:13px;transition:border-color .18s,box-shadow .18s}.f-input:focus,.f-textarea:focus,.f-select:focus{border-color:#3dff7a66;box-shadow:0 0 0 3px #3dff7a0f}.f-textarea{resize:vertical;font-family:JetBrains Mono,monospace;line-height:1.7}.md{color:var(--text);font-size:14px;line-height:1.85}.md h1{color:var(--green);text-shadow:0 0 10px #3dff7a40;margin:2em 0 .7em;font-size:1.55rem;font-weight:700}.md h2{color:var(--text);border-bottom:1px solid var(--border);margin:1.8em 0 .7em;padding-bottom:6px;font-size:1.25rem;font-weight:600}.md h3{color:var(--amber);margin:1.4em 0 .5em;font-size:1.05rem;font-weight:600}.md h1:before{content:"# ";color:var(--muted)}.md h2:before{content:"## ";color:var(--muted)}.md h3:before{content:"### ";color:var(--text-faint)}.md p{margin:.9em 0}.md a{color:var(--blue);border-bottom:1px dotted #58a6ff66;text-decoration:none}.md a:hover{border-color:var(--blue)}.md strong{color:var(--amber);font-weight:600}.md em{color:var(--text-dim)}.md ul,.md ol{margin:.7em 0;padding-left:1.5em}.md li{margin:.35em 0}.md li::marker{color:var(--green)}.md blockquote{color:var(--text-dim);background:#3dff7a06;border-left:3px solid #3dff7a4d;border-radius:0 4px 4px 0;margin:1.2em 0;padding:.5em 1.2em}.md code{background:var(--bg-3);border:1px solid var(--border);color:var(--amber);border-radius:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.86em}.md pre{margin:1.2em 0;overflow-x:auto;border:1px solid var(--border)!important;border-radius:var(--radius)!important;background:#090909!important}.md pre code{font-size:.9em;color:inherit!important;background:0 0!important;border:none!important;padding:0!important}.md hr{border:none;border-top:1px solid var(--border);margin:2em 0}.md table{border-collapse:collapse;width:100%;margin:1em 0;font-size:13px}.md th,.md td{border:1px solid var(--border);text-align:left;padding:8px 14px}.md th{color:var(--green);background:var(--bg-3);font-weight:500}.md img{border-radius:var(--radius);border:1px solid var(--border);max-width:100%;margin:1em 0}.md table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.md pre{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes glowPulse{0%,to{text-shadow:0 0 6px #3dff7a59}50%{text-shadow:0 0 14px #3dff7a99,0 0 36px #3dff7a33}}.fade-up-0{animation:.5s ease-out both fadeUp}.fade-up-1{animation:.5s ease-out .1s both fadeUp}.fade-up-2{animation:.5s ease-out .2s both fadeUp}.fade-up-3{animation:.5s ease-out .3s both fadeUp}.fade-up-4{animation:.5s ease-out .4s both fadeUp}.slide-in{animation:.35s ease-out both slideIn}.glow-anim{animation:2.8s ease-in-out infinite glowPulse}.page{background:var(--bg);min-height:100vh;color:var(--text)}.wrap{max-width:1080px;margin:0 auto;padding-left:24px;padding-right:24px}.wrap-sm{max-width:780px;margin:0 auto;padding-left:24px;padding-right:24px}.pt-nav{padding-top:96px}.btn-green{color:var(--green)!important;background:#3dff7a1a!important;border-color:#3dff7a4d!important}.btn-green:hover{background:#3dff7a2e!important}.sh{color:var(--text-faint);letter-spacing:.03em;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px;font-size:11px;display:flex}.sh-cmd{color:var(--green)}.sh-flag{color:var(--amber)}.sh-arg{color:var(--blue)}.sh-line{background:var(--border);flex:1;min-width:20px;height:1px}@media (max-width:768px){.hide-sm{display:none!important}.show-sm{display:flex!important}.wrap,.wrap-sm{padding-left:16px;padding-right:16px}section{padding-top:40px!important;padding-bottom:40px!important}.card{padding:14px 16px}.btn{padding:8px 16px;font-size:12px}.tag{padding:3px 8px;font-size:10px}}@media (max-width:480px){body{font-size:13px}nav{height:44px!important}nav .nav-brand-text{display:none}.terminal-wrap{padding:8px!important}.terminal-box{border-radius:6px!important;height:92vh!important}.terminal-output{padding:10px 12px!important;font-size:11px!important;line-height:1.6!important}.terminal-input-bar{padding:8px 12px!important;font-size:11px!important}.terminal-titlebar{padding:8px 10px!important}.terminal-title-text{display:none!important}.portfolio-hero{padding:88px 16px 48px!important}.portfolio-hero h1{font-size:22px!important}.portfolio-hero-avatar{width:60px!important;height:60px!important;font-size:24px!important}.portfolio-actions{gap:8px!important}.portfolio-actions a{padding:6px 12px!important;font-size:11px!important}.blog-title{font-size:22px!important}.projects-grid,.skills-grid,.achievements-grid{grid-template-columns:1fr!important}footer{flex-direction:column!important;align-items:flex-start!important;gap:12px!important;padding:16px!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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-ease{syntax:"*";inherits:false}
