:root{color:#f4f7fb;font-synthesis:none;text-rendering:optimizelegibility;--bg:#070d14;--surface:#0c141f;--surface-2:#101b29;--border:#1d2d40;--text:#f4f7fb;--muted:#91a0b2;--accent:#3b9dff;--accent-soft:#3b9dff1f;background:#070d14;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#ffffff05 1px, transparent 1px), linear-gradient(90deg, #ffffff05 1px, transparent 1px), radial-gradient(circle at 75% 10%, #2477ff1f, transparent 30%), var(--bg);min-width:320px;color:var(--text);background-size:36px 36px,36px 36px,auto,auto;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.navbar{justify-content:space-between;align-items:center;width:min(1200px,100% - 48px);height:76px;margin:0 auto;display:flex}.brand{letter-spacing:-.03em;font-size:1.1rem;font-weight:750}.brand span{color:var(--accent)}.nav-links{gap:30px;display:flex}.nav-links a{color:var(--muted);font-size:.92rem;transition:all .16s}.nav-links a:hover{color:var(--text)}main{width:min(1200px,100% - 48px);margin:0 auto}.hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:70px;min-height:620px;padding:70px 0 100px;display:grid}.eyebrow,.section-heading>p{color:var(--accent);letter-spacing:.16em;margin:0 0 12px;font-family:Courier New,monospace;font-size:.78rem}.hero h1{letter-spacing:-.06em;margin:0;font-size:clamp(3rem,6vw,5.8rem);line-height:.95}.hero h2{color:#c9d3df;margin:26px 0 0;font-size:clamp(1.15rem,2vw,1.55rem);font-weight:500}.hero h2 span{color:var(--accent);margin:0 7px}.hero-description{max-width:630px;color:var(--muted);margin:24px 0 0;font-size:1.04rem;line-height:1.8}.hero-actions{gap:13px;margin-top:32px;display:flex}.button{border:1px solid var(--border);text-align:center;border-radius:7px;min-width:132px;padding:12px 18px;font-size:.9rem;font-weight:650;transition:all .16s}.button.primary{background:var(--accent);border-color:var(--accent);color:#04101d}.button.primary:hover{transform:translateY(-2px)}.button.secondary:hover{border-color:var(--accent);background:var(--accent-soft)}.hero-meta{flex-wrap:wrap;gap:9px;margin-top:30px;display:flex}.hero-meta span,.tags span{border:1px solid var(--border);color:var(--muted);background:#ffffff06;border-radius:999px;padding:6px 10px;font-family:Courier New,monospace;font-size:.73rem}.terminal{background:#070e17e8;border:1px solid #263b54;border-radius:10px;overflow:hidden;box-shadow:0 25px 70px #00000059,0 0 60px #267aff14}.terminal-header{border-bottom:1px solid var(--border);background:#101a27;align-items:center;height:42px;padding:0 15px;display:flex}.terminal-header p{color:#6f8297;margin:0 auto;font-family:Courier New,monospace;font-size:.72rem}.terminal-dots{gap:7px;display:flex}.terminal-dots span{background:#455467;border-radius:50%;width:9px;height:9px}.terminal-body{min-height:320px;padding:27px;font-family:Courier New,monospace;font-size:.89rem;line-height:1.55}.terminal-body p{margin:3px 0}.prompt{color:var(--accent)}.terminal-output{color:#9fb0c2;padding-left:18px}.terminal-command{margin-top:26px!important}.cursor{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.section{border-top:1px solid #ffffff0f;padding:95px 0}.section-heading{margin-bottom:34px}.section-heading h2,.about h2{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,3rem)}.project-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.project-card,.skill-card,.cert-card{border:1px solid var(--border);background:linear-gradient(145deg,#101b29e0,#091019e0);border-radius:9px}.project-card{flex-direction:column;min-height:330px;padding:24px;transition:all .18s;display:flex}.project-card:hover{border-color:#315c85;transform:translateY(-4px)}.project-icon{background:var(--accent-soft);width:50px;height:50px;color:var(--accent);border-radius:8px;place-items:center;margin-bottom:28px;font-family:Courier New,monospace;font-weight:700;display:grid}.project-card h3,.skill-card h3,.cert-card h3{margin:0;font-size:1.05rem}.project-card>p{color:var(--muted);flex:1;font-size:.9rem;line-height:1.7}.tags{flex-wrap:wrap;gap:7px;margin:17px 0 24px;display:flex}.project-card>a{color:var(--accent);font-size:.84rem;font-weight:650}.skills-grid{grid-template-columns:repeat(2,1fr);gap:15px;display:grid}.skill-card{padding:22px}.skill-card p{color:var(--muted);margin:9px 0 0;font-family:Courier New,monospace;font-size:.78rem;line-height:1.7}.cert-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.cert-card{align-items:center;gap:18px;padding:22px;display:flex}.cert-card>span{color:var(--accent);font-family:Courier New,monospace;font-size:1.45rem;font-weight:700}.cert-card p{color:var(--muted);margin:6px 0 0;font-size:.82rem}.about{grid-template-columns:.8fr 1.2fr;align-items:start;gap:100px;display:grid}.about>p{color:var(--muted);margin:0;font-size:1rem;line-height:1.9}footer{color:#66778a;border-top:1px solid #ffffff0f;justify-content:space-between;width:min(1200px,100% - 48px);margin:0 auto;padding:30px 0 45px;font-size:.78rem;display:flex}@media (width<=850px){.nav-links{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding-top:75px}.project-grid,.cert-grid,.skills-grid,.about{grid-template-columns:1fr}.about{gap:25px}}@media (width<=520px){.navbar,main,footer{width:min(100% - 28px,1200px)}.hero{gap:45px}.hero-actions{flex-direction:column}footer{flex-direction:column;gap:8px}}html{scroll-behavior:smooth}.section{scroll-margin-top:90px}.skill-card h3{margin-bottom:16px}.skill-tags{flex-wrap:wrap;gap:8px;display:flex}.skill-tags span{color:#aab8c7;background:#08111a;border:1px solid #24384e;border-radius:999px;align-items:center;padding:7px 10px;font-size:.78rem;line-height:1.2;display:inline-flex}:root{--header-h:80px;--footer-h:80px;--gutter:14px;--tt-bg:#061207;--tt-panel:#0b160c;--tt-fg:#d7ffd9;--tt-dim:#80c88a;--tt-accent:#00ff5f;--tt-accent-2:#2aff8a;--tt-success:#0f9;--tt-error:#ff5c74;--tt-shadow:0 12px 36px #00ff6414, 0 10px 24px #0006;--tt-font-min:9px;--tt-font-pref:1.2vw;--tt-font-max:15px;--tt-input-min:12px;--tt-input-pref:1.6vw;--tt-input-max:18px;--tt-scale:1}html{-webkit-text-size-adjust:100%}.tt-container{z-index:5000;padding:max(12px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-right));min-height:calc(100dvh - (var(--header-h,80px) + var(--footer-h,80px)) - (2 * var(--gutter,14px)));background:radial-gradient(1200px 600px at 50% -20%,#00ff6414,#0000 60%);place-items:start center;margin:0 auto;display:grid;position:relative;overflow-x:hidden}.tt-window{background:var(--tt-bg);width:min(96vw,900px);color:var(--tt-fg);box-shadow:var(--tt-shadow);max-height:calc(100svh - (var(--header-h,80px) + var(--footer-h,80px)) - (2 * var(--gutter,14px)) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));transform:scale(var(--tt-scale));transform-origin:top;border:1px solid #00ff641f;border-radius:14px;flex-direction:column;margin-inline:auto;display:flex;overflow:hidden}.tt-chrome{background:var(--tt-panel);height:clamp(24px,3.6vw,34px);color:var(--tt-dim);-webkit-user-select:none;user-select:none;border-bottom:1px solid #00ff641f;align-items:center;gap:6px;padding:0 8px;font-size:clamp(9px,1.1vw,12px);display:flex}.tt-chrome.neutral{justify-content:center}.tt-chrome.neutral .tt-title{margin-left:0;font-weight:600}.tt-chrome{position:relative}.tt-close{width:clamp(16px,2.6vw,20px);height:clamp(16px,2.6vw,20px);color:var(--tt-dim);cursor:pointer;appearance:none;background:#00ff6414;border:1px solid #00ff6438;border-radius:6px;justify-content:center;align-items:center;font-size:clamp(10px,1.5vw,13px);font-weight:600;line-height:1;transition:background .15s,border-color .15s,color .15s,transform 50ms;display:flex;position:absolute;top:5px;right:6px}.tt-close:hover{color:var(--tt-accent);background:#00ff6424;border-color:#00ff6459}.tt-close:active{transform:scale(.96)}.tt-close:focus-visible{outline:2px solid var(--tt-accent);outline-offset:2px}@media (pointer:coarse){.tt-close{width:26px;height:26px}}.tt-body{background:linear-gradient(#ffffff05,#fff0 24px);flex-direction:column;min-height:0;display:flex}.tt-output{font-size:clamp(var(--tt-font-min), var(--tt-font-pref), var(--tt-font-max));white-space:pre-wrap;word-break:break-word;text-shadow:0 0 6px #00ff6440;flex:auto;min-height:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;line-height:1.5;overflow-y:auto}.tt-output::-webkit-scrollbar{width:8px}.tt-output::-webkit-scrollbar-thumb{background:#00ff642e;border-radius:10px}.tt-output::-webkit-scrollbar-thumb:hover{background:#00ff6447}.tt-inputbar{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(#0b160ce6,#0b160ce6);border-top:1px solid #00ff641f;align-items:center;gap:8px;padding:8px 12px;display:flex}.tt-prompt{color:var(--tt-accent);-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;max-width:30%;font-size:clamp(8.5px,1.1vw,13px);overflow:hidden}.tt-input{color:var(--tt-fg);font-size:clamp(var(--tt-input-min), var(--tt-input-pref), var(--tt-input-max));caret-color:var(--tt-accent);background:0 0;border:none;outline:none;flex:1;font-family:inherit;line-height:1.4}.tt-input::placeholder{color:#d7ffd947}.tt-actions{background:var(--tt-panel);border-top:1px solid #00ff641f;gap:6px;padding:6px 12px;display:flex}.tt-btn{appearance:none;color:var(--tt-fg);cursor:pointer;background:0 0;border:1px solid #00ff6438;border-radius:9px;padding:4px 7px;font-size:clamp(8.5px,1vw,11px)}.tt-btn:hover{background:#00ff640f;border-color:#00ff6459}.tt-btn:focus-visible{outline:2px solid var(--tt-accent);outline-offset:2px}.tt-line.in{color:var(--tt-accent)}.tt-line.sys{color:var(--tt-dim)}.tt-line.err{color:var(--tt-error)}.tt-line.ok{color:var(--tt-accent-2)}.tt-output a{color:var(--tt-accent);text-decoration:underline}.tt-output a:hover{color:var(--tt-accent-2)}::selection{color:#061207;background:#00ff6459}@media (prefers-reduced-motion:reduce){.tt-output,.tt-inputbar,.tt-window{scroll-behavior:auto;transition:none!important}}@media (width<=640px){.tt-window{border-radius:12px;width:calc(100vw - 12px)}.tt-output{padding:8px 10px}.tt-inputbar{gap:6px;padding:6px 10px}}@media (width<=520px){:root{--tt-scale:.94;--tt-input-min:11px}.tt-chrome{height:clamp(22px,5.6vw,28px);padding:0 6px;font-size:clamp(8.5px,2.2vw,10.5px)}.tt-btn{padding:4px 6px;font-size:clamp(8px,2.2vw,10px)}}@media (width<=440px){:root{--tt-scale:.88;--tt-input-min:10px}.tt-prompt{display:none}.tt-inputbar{gap:4px;padding:6px 8px}.tt-output{padding:6px 8px}}@media (width<=380px){:root{--tt-scale:.82}.tt-window{border-radius:10px}.tt-chrome{height:clamp(20px,6vw,24px);font-size:clamp(8px,2.6vw,10px)}.tt-btn{padding:3px 6px;font-size:clamp(7.5px,2.6vw,9.5px)}}@media (width<=340px){:root{--tt-scale:.76}.tt-output{font-size:clamp(8.5px,2.8vw,13px)}.tt-input{font-size:clamp(9.5px,3.2vw,16px)}}.hal-chat{border:1px solid var(--border);background:radial-gradient(circle at 80% 0,#3b9dff14,#0000 28%),#080f18f5;border-radius:12px;flex-direction:column;width:100%;min-height:640px;display:flex;overflow:hidden;box-shadow:0 30px 80px #00000047,0 0 60px #3b9dff0a}.hal-chat-header{border-bottom:1px solid var(--border);background:#101b29bf;justify-content:space-between;align-items:center;gap:20px;min-height:76px;padding:16px 20px;display:flex}.hal-chat-header__identity{align-items:center;gap:13px;display:flex}.hal-chat-logo{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border:1px solid #3b9dff47;border-radius:8px;place-items:center;font-family:Courier New,monospace;font-weight:700;display:grid}.hal-chat-header h3{margin:0;font-size:1rem}.hal-chat-header p{color:var(--muted);margin:4px 0 0;font-size:.76rem}.hal-chat-header__meta{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.hal-chat-model{color:var(--accent);font-family:Courier New,monospace;font-size:.72rem}.hal-chat-health{color:var(--muted);align-items:center;gap:7px;font-size:.72rem;display:flex}.hal-chat-health__dot{background:#748295;border-radius:50%;flex:none;width:7px;height:7px}.hal-chat-health__dot.online{background:#4bd28a;box-shadow:0 0 10px #4bd28a99}.hal-chat-health__dot.waiting{background:#e8b84b;box-shadow:0 0 10px #e8b84b66}.hal-chat-health__dot.offline{background:#e26570}.hal-chat-body{flex:1;min-height:460px;max-height:650px;position:relative;overflow-y:auto}.hal-chat-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:460px;padding:60px 24px;display:flex}.hal-chat-empty__icon{background:var(--accent-soft);width:62px;height:62px;color:var(--accent);border:1px solid #3b9dff47;border-radius:14px;place-items:center;margin-bottom:22px;font-family:Courier New,monospace;font-weight:700;display:grid}.hal-chat-empty h3{letter-spacing:-.02em;margin:0;font-size:1.4rem}.hal-chat-empty>p{max-width:520px;color:var(--muted);margin:12px 0 0;font-size:.88rem;line-height:1.7}.hal-chat-prompts{flex-wrap:wrap;justify-content:center;gap:9px;max-width:720px;margin-top:28px;display:flex}.hal-chat-prompts button{border:1px solid var(--border);color:#aebdcd;cursor:pointer;background:#ffffff06;border-radius:999px;padding:9px 12px;font-size:.77rem;transition:all .16s}.hal-chat-prompts button:hover{background:var(--accent-soft);color:var(--text);border-color:#3b9dff73}.hal-chat-messages{flex-direction:column;gap:22px;padding:28px;display:flex}.hal-chat-message{flex-direction:column;gap:6px;max-width:82%;display:flex}.hal-chat-message--user{align-self:flex-end}.hal-chat-message--assistant{align-self:flex-start}.hal-chat-message__header{color:#718399;letter-spacing:.12em;font-family:Courier New,monospace;font-size:.67rem}.hal-chat-message--user .hal-chat-message__header{text-align:right}.hal-chat-message__body{border:1px solid var(--border);color:#cbd6e2;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px;padding:13px 15px;font-size:.9rem;line-height:1.7}.hal-chat-message--assistant .hal-chat-message__body{background:#101b29e0}.hal-chat-message--user .hal-chat-message__body{color:#e7f2ff;background:#3b9dff1a;border-color:#3b9dff4d}.hal-chat-cursor{color:var(--accent);animation:1s step-end infinite hal-chat-blink}@keyframes hal-chat-blink{50%{opacity:0}}.hal-chat-statusbar{border-top:1px solid var(--border);color:#718399;background:#101b2994;justify-content:space-between;align-items:center;gap:20px;min-height:38px;padding:8px 18px;font-family:Courier New,monospace;font-size:.67rem;display:flex}.hal-chat-statusbar>div:first-child{align-items:center;gap:7px;display:flex}.hal-chat-input-area{border-top:1px solid var(--border);background:#0b141f;gap:12px;width:100%;padding:14px;display:flex}.hal-chat-input-area textarea{resize:vertical;border:1px solid var(--border);min-height:46px;max-height:150px;color:var(--text);background:#080f18;border-radius:8px;outline:none;flex:1;padding:12px 14px;font-family:inherit;font-size:.9rem;transition:all .16s}.hal-chat-input-area textarea:focus{border-color:#3b9dff8c;box-shadow:0 0 0 3px #3b9dff14}.hal-chat-input-area textarea:disabled{opacity:.65}.hal-chat-input-actions{gap:8px;display:flex}.hal-chat-input-actions button{border:1px solid var(--border);cursor:pointer;border-radius:8px;min-width:76px;padding:0 15px;font-weight:650}.hal-chat-send{background:var(--accent);color:#04101d;border-color:var(--accent)!important}.hal-chat-send:disabled{cursor:not-allowed;opacity:.45}.hal-chat-stop{color:#ff9ca5;background:#e265701a;border-color:#e2657073!important}.hal-chat-clear{color:var(--muted);background:0 0}.hal-chat-clear:hover{color:var(--text)}@media (width<=720px){.hal-chat{min-height:620px}.hal-chat-header{align-items:flex-start}.hal-chat-header__meta{align-items:flex-end}.hal-chat-health{text-align:right;max-width:150px}.hal-chat-message{max-width:94%}.hal-chat-statusbar{flex-direction:column;align-items:flex-start;gap:5px}.hal-chat-input-area{flex-direction:column}.hal-chat-input-actions{height:42px}.hal-chat-input-actions button{flex:1}}@media (width<=480px){.hal-chat-header{flex-direction:column}.hal-chat-header__meta{align-items:flex-start;width:100%}.hal-chat-health{text-align:left;max-width:none}.hal-chat-messages{padding:18px 12px}}.hal-footer-message{letter-spacing:.06em;opacity:.65;text-transform:uppercase;font-size:.72rem}.weather-widget{background:#0b131d;border:1px solid #1d2d40;border-radius:14px;overflow:hidden}.weather-header{border-bottom:1px solid #1d2d40;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;display:flex}.weather-header h3{margin:4px 0 0;font-size:1.2rem}.weather-eyebrow{color:#3b9dff;letter-spacing:.12em;font-size:.72rem;font-weight:700}.weather-status{color:#7f93a8;font-size:.8rem}.weather-search{border-bottom:1px solid #1d2d40;gap:10px;padding:18px 22px;display:flex}.weather-search input{color:#e8eef5;min-width:0;font:inherit;background:#070d14;border:1px solid #24384e;border-radius:8px;flex:1;padding:11px 13px}.weather-search input:focus{outline-offset:1px;outline:2px solid #3b9dff}.weather-search button{color:#e8eef5;cursor:pointer;font:inherit;background:#14283b;border:1px solid #3b9dff;border-radius:8px;padding:10px 16px}.weather-search button:disabled{opacity:.6;cursor:wait}.weather-empty,.weather-error{color:#7f93a8;padding:28px 22px}.weather-error{color:#ff8e8e}.weather-current{grid-template-columns:minmax(220px,1fr) minmax(300px,1fr);gap:24px;padding:26px 22px;display:grid}.weather-current-main{align-items:center;gap:18px;display:flex}.weather-current-main img{object-fit:contain;width:105px;height:105px}.weather-location{color:#aab8c7;font-size:.95rem}.weather-temp{margin:4px 0;font-size:clamp(2.8rem,6vw,4.5rem);font-weight:700;line-height:1}.weather-description{color:#7f93a8}.weather-details{grid-template-columns:repeat(2,minmax(110px,1fr));gap:10px;display:grid}.weather-details div{background:#08111a;border:1px solid #1d2d40;border-radius:8px;padding:12px}.weather-details span,.weather-details strong{display:block}.weather-details span{color:#687d92;margin-bottom:5px;font-size:.75rem}.weather-details strong{color:#d9e4ee;font-size:.9rem}.weather-forecast{grid-template-columns:repeat(7,minmax(110px,1fr));gap:10px;padding:0 22px 22px;display:grid;overflow-x:auto}.weather-day{text-align:center;background:#08111a;border:1px solid #1d2d40;border-radius:9px;min-width:110px;padding:14px 10px}.weather-day img{object-fit:contain;width:64px;height:64px;margin:6px auto;display:block}.weather-day-date,.weather-low,.weather-day-description,.weather-rain{display:block}.weather-day-date{color:#9fb0c1;font-size:.78rem}.weather-day strong{font-size:1.15rem}.weather-low{color:#71859a;font-size:.85rem}.weather-day-description{color:#899bae;min-height:32px;margin-top:7px;font-size:.72rem}.weather-rain{color:#3b9dff;margin-top:6px;font-size:.72rem}@media (width<=760px){.weather-current{grid-template-columns:1fr}.weather-search{flex-direction:column}.weather-search button{width:100%}.weather-details{grid-template-columns:repeat(2,1fr)}}
