:root { --ink:#dde7da; --muted:#819080; --acid:#c9ff4d; --cyan:#72e5d1; --line:rgba(211,234,205,.13); --panel:#101612; --void:#080b09; }
* { box-sizing:border-box; }
html,body { height:100%; overflow:hidden; background:var(--void); }
body { margin:0; color:var(--ink); background:
  radial-gradient(circle at 82% 14%, rgba(48,78,54,.34) 0, transparent 30rem),
  radial-gradient(circle at 18% 86%, rgba(21,47,35,.28) 0, transparent 34rem),
  linear-gradient(135deg, rgba(201,255,77,.025) 0, transparent 28%),
  linear-gradient(180deg, #0a0f0b 0%, #080b09 48%, #070a08 100%); font-family:"DM Mono",monospace; }
.noise { pointer-events:none; position:fixed; inset:0; opacity:.032; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E"); }
.shell { width:min(1600px,100%); height:100dvh; min-height:0; margin:auto; display:grid; grid-template-columns:300px 1fr; border-left:1px solid var(--line); border-right:1px solid var(--line); }
.shell:fullscreen,.shell:-webkit-full-screen { width:100vw; height:100vh; max-width:none; }
.sidebar { padding:44px 28px 26px; border-right:1px solid var(--line); display:flex; flex-direction:column; background:rgba(9,13,10,.68); }
.brand { color:var(--ink); text-decoration:none; font-family:"Space Grotesk",sans-serif; font-weight:600; font-size:19px; letter-spacing:-.04em; margin-bottom:51px; }
.brand-mark { color:var(--acid); padding-right:7px; }.eyebrow { margin:0 0 16px; color:var(--muted); text-transform:uppercase; font-size:11px; letter-spacing:.12em; }
nav { display:grid; gap:7px; }.nav-item { appearance:none; background:transparent; border:0; text-align:left; color:var(--muted); padding:13px 12px; border-left:1px solid transparent; cursor:pointer; font:inherit; font-size:14px; transition:.2s; display:flex; gap:13px; align-items:center; }
.nav-item span { font-size:11px; color:#465346; }.nav-item b { font-weight:400; }.nav-item:hover,.nav-item.active { color:var(--acid); background:rgba(201,255,77,.055); border-left-color:var(--acid); }.nav-item.active span { color:var(--acid); }
.sidebar-footer { margin-top:auto; padding:17px 10px 0; border-top:1px solid var(--line); color:var(--muted); font-size:11px; line-height:1.65; }.status-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--acid); box-shadow:0 0 10px var(--acid); margin-right:6px; }.sidebar-reopen { display:none; margin-top:13px; padding:0; background:none; border:0; color:var(--acid); font:inherit; font-size:12px; cursor:pointer; }
.terminal-wrap { min-width:0; min-height:0; display:flex; flex-direction:column; }.topbar { height:68px; flex:none; border-bottom:1px solid var(--line); padding:0 28px; display:flex; align-items:center; gap:18px; background:rgba(17,23,18,.62); }.window-controls { display:flex; gap:10px; }.window-control { width:17px; height:17px; padding:0; border:0; border-radius:50%; cursor:pointer; transition:transform .16s ease,filter .16s ease; }.window-control:hover,.window-control:focus-visible { transform:scale(1.16); filter:brightness(1.14); outline:2px solid rgba(221,231,218,.5); outline-offset:3px; }.window-control.close { background:#d66d5e; }.window-control.minimize { background:#e5b954; }.window-control.maximize { background:#82c47b; }.topbar p { margin:0; color:var(--muted); font-size:11px; }.topbar p span { color:var(--ink); }.menu-toggle { display:none; margin-left:auto; color:var(--ink); background:none; border:0; font-size:18px; }
.terminal { flex:1; min-height:0; padding:clamp(34px,5vw,96px) clamp(28px,6vw,118px); overflow:auto; }.line { color:var(--muted); font-size:13px; margin:0 0 11px; }.line .prompt { color:var(--acid); }.line .path { color:var(--cyan); }.output { animation:appear .25s ease both; }.output .type-pending { display:none !important; }.output.is-typing::after { content:'▋'; display:inline-block; color:var(--acid); margin-left:4px; animation:blink .7s steps(2,end) infinite; } @keyframes appear { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } } @keyframes blink { 50% { opacity:0; } }
.hero-kicker { color:var(--cyan); font-size:13px; letter-spacing:.05em; } .hero-layout { display:grid; grid-template-columns:minmax(0,1fr) 220px; align-items:center; gap:48px; max-width:980px; } .hero-copy-column { min-width:0; } .profile-photo { width:220px; aspect-ratio:1; margin:0; justify-self:end; border:1px solid var(--line); padding:8px; background:rgba(255,255,255,.02); box-shadow:0 20px 55px rgba(0,0,0,.28); transform:rotate(0deg); filter: grayscale(0%);} .profile-photo img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.92) contrast(1.02); }.hero h1 { font:600 clamp(49px,7vw,92px)/.92 "Space Grotesk",sans-serif; letter-spacing:-.075em; margin:17px 0 23px; max-width:850px; }.hero h1 em { color:var(--acid); font-style:normal; }.hero-copy { color:#aab6a8; max-width:600px; line-height:1.7; font-size:15px; }.meta-row { margin:35px 0; display:flex; flex-wrap:wrap; gap:10px; }.tag { border:1px solid var(--line); padding:9px 11px; color:#b8c9b6; font-size:12px; }.tag::before { content:'# '; color:var(--acid); }.quick-links { display:flex; flex-wrap:wrap; gap:10px; }.button { text-decoration:none; color:var(--void); background:var(--acid); padding:12px 16px; font-size:12px; font-weight:500; }.button.secondary { color:var(--ink); background:transparent; border:1px solid var(--line); }.button:hover { filter:brightness(1.1); }
.file-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-width:580px; }.file-entry { padding:12px 13px; text-align:left; border:1px solid var(--line); color:var(--ink); background:rgba(255,255,255,.018); font:inherit; font-size:12px; cursor:pointer; }.file-entry:hover { border-color:var(--acid); color:var(--acid); }.terminal-text { color:#bdcdbb; margin:0; font:12px/1.7 "DM Mono",monospace; white-space:pre-wrap; }.muted-text { color:var(--muted); }.fetch { display:flex; gap:30px; align-items:center; }.fetch-logo { margin:0; color:var(--acid); font:12px/1.25 "DM Mono",monospace; }.fetch-copy p { margin:4px 0; color:#bdcdbb; font-size:12px; }.fetch-copy p:first-child { color:var(--acid); margin-bottom:9px; }.fetch-copy span { color:var(--cyan); }
.section-title { font:600 clamp(30px,4vw,48px)/1 "Space Grotesk",sans-serif; letter-spacing:-.055em; margin:12px 0 34px; }.section-title span { color:var(--acid); }.lead { color:#b8c9b6; max-width:720px; line-height:1.8; font-size:15px; }.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.card { border:1px solid var(--line); background:rgba(255,255,255,.018); padding:22px; }.card-label { color:var(--acid); font-size:10px; text-transform:uppercase; letter-spacing:.1em; }.card h3 { font:500 20px/1.2 "Space Grotesk",sans-serif; margin:10px 0 8px; letter-spacing:-.04em; }.card p { margin:0; color:#9ba99a; font-size:13px; line-height:1.7; }.project-link { display:inline-block; margin-top:17px; }.experience { display:grid; gap:0; }.role { padding:26px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:185px 1fr; gap:30px; }.role:first-child { border-top:0; }.role-date { color:var(--cyan); font-size:12px; line-height:1.65; }.role h3 { margin:0 0 4px; font:500 21px "Space Grotesk",sans-serif; letter-spacing:-.04em; }.role h4 { color:var(--acid); font-size:12px; font-weight:400; margin:0 0 14px; }.role ul { color:#aab6a8; padding-left:18px; margin:0; font-size:13px; line-height:1.7; }.skill-list { display:flex; flex-wrap:wrap; gap:9px; }.skill { border:1px solid var(--line); padding:11px 14px; font-size:13px; color:#bdcdbb; }.skill:hover { border-color:var(--acid); color:var(--acid); }.command-chip,.text-button { font:inherit; background:transparent; cursor:pointer; }.text-button { color:var(--acid); padding:0; border:0; text-decoration:underline; }.achievement { color:#9ba99a; border-bottom:1px solid var(--line); padding:14px 0; font-size:13px; }.achievement b { color:var(--ink); font-weight:500; }
.command-form { min-height:68px; flex:none; border-top:1px solid var(--line); display:flex; align-items:center; gap:7px; padding:0 28px; background:#0d120e; font-size:13px; }.command-form label { white-space:nowrap; }.prompt { color:var(--acid); }.path { color:var(--cyan); }.command-input-wrap { position:relative; flex:1; min-width:0; display:flex; align-items:center; }.command-form input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--ink); font:inherit; caret-color:transparent; }.command-form input::placeholder { color:#536052; }.command-cursor { position:absolute; left:0; width:9px; height:1.25em; background:var(--acid); box-shadow:0 0 12px rgba(201,255,77,.55); transform:translateX(calc(var(--cursor-offset,0px) + 2px)); animation:blink .7s steps(2,end) infinite; pointer-events:none; }.command-form input:not(:focus) + .command-cursor { display:none; }.command-form button { color:var(--acid); border:0; background:transparent; font-size:18px; cursor:pointer; }
.shell.terminal-closed { grid-template-columns:1fr; }.shell.terminal-closed .terminal-wrap { display:none; }.shell.terminal-closed .sidebar { border-right:0; }.shell.terminal-closed .sidebar-reopen { display:block; }.sleep-screen { display:none; border:0; color:var(--ink); background:transparent; font:inherit; text-align:center; align-items:center; justify-content:center; gap:10px; cursor:pointer; }.sleep-screen b,.sleep-screen small { display:block; }.sleep-screen b { font:500 15px "Space Grotesk",sans-serif; letter-spacing:-.02em; }.sleep-screen small { margin-top:4px; color:var(--muted); font-size:10px; }.shell.minimized { display:block; border:0; background:#0d120e; }.shell.minimized > .sidebar,.shell.minimized > .terminal-wrap { display:none; }.shell.minimized .sleep-screen { height:100%; display:flex; width:100%; }
@media (max-width:720px) { .hero-layout { grid-template-columns:1fr; gap:28px; } .profile-photo { display: none; } .shell { position:fixed; inset:0; width:100%; height:auto; margin:0; grid-template-columns:1fr; }.sidebar { display:none; position:fixed; z-index:5; inset:63px 0 0; background:#0c110d; }.sidebar.open { display:flex; }.shell.terminal-closed .sidebar { display:flex; position:fixed; z-index:6; inset:0; border:0; }.menu-toggle { display:block; }.terminal { padding:45px 24px; }.hero h1 { font-size:51px; }.grid,.file-grid { grid-template-columns:1fr; }.fetch { align-items:flex-start; flex-direction:column; gap:18px; }.role { grid-template-columns:1fr; gap:10px; }.topbar { padding:0 20px; }.command-form { padding:0 20px; } }
