@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Manrope:wght@400;500;600&display=swap";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--ink:#f4f2ed;--muted:#9d9ba7;--line:#ffffff21;--accent:#a8ffcf}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%;margin:0}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:#090a0d;font-family:Manrope,sans-serif}body:after{content:"";pointer-events:none;background:radial-gradient(circle at 65% 30%,#405b5d26,#0000 40%),linear-gradient(#090a0d14,#090a0dad);position:fixed;inset:0}.background-canvas{z-index:0;width:100%;height:100%;position:fixed;inset:0}canvas{opacity:.72}a{color:inherit;text-decoration:none}button{font:inherit}#main-container{z-index:1;flex-direction:column;min-height:100svh;padding:0 4.5vw;display:flex;position:relative}.navbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:112px;display:flex}.wordmark{letter-spacing:-.02em;align-items:center;gap:13px;font-size:16px;font-weight:600;display:flex}.wordmark-dot{background:var(--ink);border-radius:50%;width:10px;height:10px;box-shadow:0 0 24px #ffffffb3}.social-links{align-items:center;gap:26px;font:12px DM Mono,monospace;display:flex}.social-links a{color:var(--muted);transition:color .2s}.social-links a:hover{color:var(--ink)}.social-links span,.text-link span{color:var(--accent)}.portfolio-shell{flex:1;grid-template-columns:minmax(170px,21%) 1fr;min-height:0;display:grid}.nav-menu{border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:10vh 4vw 5vh 0;display:flex}.nav-menu-item{color:#6e6e77;text-align:left;text-transform:capitalize;cursor:pointer;background:0 0;border:0;grid-template-columns:30px 1fr auto;align-items:center;gap:12px;width:100%;padding:12px 0;font-size:15px;transition:color .25s,transform .25s;display:grid}.nav-menu-item span{font:10px DM Mono,monospace}.nav-menu-item:hover{color:var(--ink);transform:translate(4px)}.nav-menu-item.active{color:var(--ink)}.nav-menu-item.active:after{content:"";background:var(--accent);width:28px;height:1px;box-shadow:0 0 10px var(--accent)}.content-panel{align-items:center;padding:7vh 0 6vh clamp(40px,7vw,130px);animation:.55s cubic-bezier(.2,.8,.2,1) reveal;display:flex;overflow-y:auto}.panel-body{width:100%;max-width:1040px}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0 0 25px;font:10px DM Mono,monospace}h1{letter-spacing:-.055em;max-width:850px;margin:0;font-size:clamp(42px,6.1vw,92px);font-weight:400;line-height:1.03}.about-grid{gap:clamp(50px,8vh,100px);display:grid}.about-copy{color:#b9b7bd;grid-template-columns:1fr 1fr;gap:30px;max-width:580px;margin-left:auto;font-size:13px;line-height:1.75;display:grid}.about-copy p{margin:0}.text-link{color:var(--ink);grid-column:2;margin-top:8px;font:12px DM Mono,monospace}.featured-project{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;color:var(--muted);text-align:left;cursor:pointer;background:0 0;grid-column:1/-1;grid-template-columns:1.2fr 1fr auto;align-items:end;gap:24px;margin-top:12px;padding:18px 0;transition:border-color .25s,color .25s;display:grid}.featured-project:hover{color:var(--ink);border-color:#a8ffcf73}.featured-project small{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font:9px DM Mono,monospace;display:block}.featured-project strong{color:var(--ink);font-size:14px;font-weight:500}.featured-project>span:nth-child(2),.featured-project i{font:10px/1.5 DM Mono,monospace}.featured-project i{color:var(--accent);white-space:nowrap;font-style:normal}.section-heading{margin-bottom:clamp(40px,7vh,80px)}.section-heading h1{font-size:clamp(38px,5vw,72px)}.work-heading{margin-bottom:clamp(32px,5vh,58px)}.work-heading h1{max-width:760px;font-size:clamp(34px,4.3vw,64px)}.project-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.project-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:300px;color:inherit;background:#090a0d2e;flex-direction:column;padding:28px;transition:background .25s,border-color .25s;display:flex}.project-link:hover{background:#a8ffcf09;border-color:#a8ffcf59}.project-number{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font:9px DM Mono,monospace}.project-card h2{letter-spacing:-.03em;margin:26px 0 14px;font-size:24px;font-weight:400}.project-card h2 span{color:var(--accent);font-size:15px}.project-card p{max-width:500px;color:var(--muted);margin:0;font-size:12px;line-height:1.75}.project-card ul{flex-wrap:wrap;gap:7px;margin:22px 0;padding:0;list-style:none;display:flex}.project-card li{border:1px solid var(--line);color:#aaa8b1;padding:4px 7px;font:9px DM Mono,monospace}.project-status{color:#777780;text-transform:uppercase;letter-spacing:.07em;margin-top:auto;font:9px DM Mono,monospace}.experience-list{border-top:1px solid var(--line)}.experience-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 0;display:flex}.experience-row h2{margin:0 0 4px;font-size:16px;font-weight:500}.experience-row p,.experience-row time{color:var(--muted);margin:0;font:11px DM Mono,monospace}.skills-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.skill-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:160px;padding:24px}.skill-card span{color:var(--accent);font:10px DM Mono,monospace}.skill-card h2{margin:22px 0 8px;font-size:18px;font-weight:500}.skill-card p{color:var(--muted);margin:0;font:11px/1.7 DM Mono,monospace}.footer{border-top:1px solid var(--line);color:#777780;text-transform:uppercase;letter-spacing:.05em;grid-template-columns:1fr auto 1fr;align-items:center;min-height:74px;font:10px DM Mono,monospace;display:grid}.footer>:last-child{justify-self:end}.shooting-hint{opacity:0;animation:1s 7s forwards hint-in}.shooting-hint kbd{color:var(--accent);font:inherit;background:0 0;border:1px solid #a8ffcf47;border-radius:3px;margin:0 3px;padding:2px 5px}@keyframes reveal{0%{opacity:0;transform:translateY(12px)}}@keyframes hint-in{to{opacity:.75}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=720px){#main-container{padding:0 22px}.navbar{height:82px}.social-links{gap:14px}.portfolio-shell{flex-direction:column;display:flex}.nav-menu{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;justify-content:space-between;padding:22px 0}.nav-menu-item{width:auto;padding:5px 0;font-size:13px;display:block}.nav-menu-item span,.nav-menu-item.active:after{display:none}.content-panel{align-items:flex-start;padding:9vh 0;overflow:visible}h1{font-size:clamp(42px,13vw,64px)}.about-copy{grid-template-columns:1fr;gap:18px;margin-top:10px}.text-link{grid-column:1}.skills-grid{grid-template-columns:1fr}.skill-card{min-height:135px}.featured-project{grid-template-columns:1fr auto;margin-top:8px}.featured-project>span:nth-child(2){display:none}.project-grid{grid-template-columns:1fr}.project-card{min-height:280px}.footer{justify-content:flex-end;min-height:64px;display:flex}.footer span:first-child,.shooting-hint{display:none}}
