:root{color:#f4f4f1;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--paper:#f4f4f1;--ink:#090909;--muted:#8b8b88;--line:#292927;--accent:#c8f169;background:#090909;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{min-width:320px;margin:0}body,button,input,textarea{font-family:DM Sans,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,input,textarea{font-size:inherit}::selection{color:var(--ink);background:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.site-header{z-index:5;justify-content:space-between;align-items:center;width:100%;height:84px;padding:0 5.2%;display:flex;position:absolute;top:0;left:0}.monogram{letter-spacing:0;font-size:24px;font-weight:700}.site-header nav{align-items:center;gap:34px;display:flex}.site-header nav a,.eyebrow,.section-index,.scroll-cue,.bier-caption,.side-caption,.skills-label,.project-number,.location,.site-footer{letter-spacing:1.8px;text-transform:uppercase;font-size:10px;font-weight:500}.site-header nav a{color:#a3a3a0;transition:color .18s}.site-header nav a:hover,.site-footer a:hover{color:var(--accent)}.hero{background:#090909;place-items:center;min-height:max(700px,100svh);display:grid;position:relative;overflow:hidden}.hero:after{content:"";background:linear-gradient(#0000,#53534f);width:1px;height:90px;position:absolute;bottom:0;right:5.2%}.hero-copy{text-align:center;padding:40px 24px;animation:.9s cubic-bezier(.2,.7,.2,1) both arrive}.eyebrow{color:#aaa;margin:0 0 28px}.hero h1{color:var(--paper);letter-spacing:0;text-transform:uppercase;margin:0;font-size:118px;font-weight:800;line-height:.92}.hero-role{color:#92928f;margin:30px 0 0;font-size:15px}.hero-intro{color:#a6a6a1;max-width:760px;margin:18px auto 0;font-size:15px;line-height:1.8}.hero-github{color:#b0b0ac;font-size:12px;transition:color .18s;position:absolute;bottom:43px;left:5.2%}.hero-github span{color:var(--accent)}.hero-github:hover{color:var(--paper)}.scroll-cue{color:#a3a3a0;writing-mode:vertical-rl;align-items:center;gap:16px;display:flex;position:absolute;bottom:91px;right:5%}.scroll-cue i{background:var(--accent);width:1px;height:37px;display:block}.section{width:min(89.6%,1280px);margin:0 auto}.projects{padding-top:108px;padding-bottom:142px}.section-index{color:#999995;margin:0 0 54px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;display:grid}.project-card{min-width:0}.project-visual{aspect-ratio:1.06;background-color:#141414;border:1px solid #30302e;border-radius:5px;justify-content:center;align-items:center;width:100%;transition:border-color .25s,transform .35s cubic-bezier(.2,.7,.2,1);display:flex;position:relative;overflow:hidden}.project-visual:hover{border-color:#666660;transform:translateY(-5px)}.weather-visual{aspect-ratio:1;color:#dce5ee;background:#1d2b3e}.brisa-screen{color:#dce5ee;background:#1d2b3e;font-size:8px;position:absolute;inset:0;overflow:hidden}.brisa-header{justify-content:space-between;align-items:center;height:5%;display:flex;position:absolute;top:3.5%;left:6.2%;right:5.1%}.brisa-logo{color:#dce5ee;font-size:10px;font-weight:600}.brisa-search{color:#c4ced9;background:#29394e;border-radius:30px;align-items:center;width:46%;height:100%;padding-left:13px;font-size:6px;display:flex;position:relative}.brisa-search i{border:1px solid #c4ced9;border-radius:50%;width:7px;height:7px;position:absolute;top:50%;right:11px;transform:translateY(-60%)}.brisa-search i:after{content:"";background:#c4ced9;width:3px;height:1px;position:absolute;bottom:-2px;right:-3px;transform:rotate(48deg)}.brisa-current{text-align:center;position:absolute;inset:0}.brisa-current p,.brisa-current h3,.brisa-outlook-title{width:100%;margin:0;position:absolute;left:0}.brisa-date{color:#a9b6c5;font-size:5px;top:13.1%}.brisa-current h3{color:#e2e8ef;font-size:11px;font-weight:500;top:15.8%}.brisa-city{color:#9ba9ba;font-size:6px;top:19.2%}.brisa-weather-icon{color:#dce5ee;width:30px;height:24px;position:absolute;top:23%;left:50%;transform:translate(-50%)}.brisa-temperature{color:#e0e8f0;font-size:54px;font-weight:300;line-height:1;top:30.2%}.brisa-condition{color:#e2e8ef;font-size:6px;font-weight:500;top:45%}.brisa-range{color:#9ba9ba;font-size:5px;top:48%}.brisa-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;height:11.8%;display:grid;position:absolute;top:53.6%;left:6.2%;right:5.1%}.brisa-metrics>div{background:#29394e;border-radius:8px;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;padding:5px 6px;display:flex}.metric-icon{color:#b8c5d3;width:9px;height:9px;margin-bottom:6px;display:block;position:relative}.thermometer:before{content:"";border:1px solid;border-radius:4px;width:3px;height:7px;position:absolute;top:0;left:3px}.thermometer:after{content:"";background:#29394e;border:1px solid;border-radius:50%;width:5px;height:5px;position:absolute;bottom:0;left:2px}.droplet{border:1px solid;border-radius:70% 30% 60% 40%;width:7px;height:9px;margin-left:1px;transform:rotate(45deg)scale(.75)}.wind:before,.wind:after{content:"";border-top:1px solid;border-radius:50%;width:8px;height:2px;position:absolute;left:0}.wind:before{top:2px;box-shadow:2px 3px 0 -.5px #b8c5d3}.wind:after{width:5px;top:6px}.pressure{border-top:1px solid;border-radius:50% 50% 0 0;transform:scale(.8)}.pressure:after{content:"";transform-origin:bottom;background:currentColor;width:1px;height:4px;position:absolute;top:2px;left:4px;transform:rotate(40deg)}.metric-label{color:#9eacbc;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:5px;overflow:hidden}.brisa-metrics strong{color:#e0e8f0;white-space:nowrap;margin-top:3px;font-size:9px;font-weight:500}.brisa-outlook-title{color:#dce5ee;width:auto;font-size:6px;font-weight:500;top:69.3%;left:6.2%}.brisa-forecast{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;height:14.7%;display:grid;position:absolute;top:72.5%;left:6.2%;right:5.1%}.forecast-day{text-align:center;background:#29394e;border-radius:8px;flex-direction:column;justify-content:space-evenly;align-items:center;min-width:0;padding:4px 2px;display:flex;overflow:hidden}.forecast-name{color:#dce5ee;font-size:5px}.forecast-day .brisa-weather-icon{flex:none;width:13px;height:11px;position:static;transform:none}.forecast-condition{color:#9eacbc;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:4.5px;overflow:hidden}.forecast-temperatures{color:#dce5ee;white-space:nowrap;font-size:5px}.bier-visual{background-color:#141413;background-image:linear-gradient(#ffffff0e 1px,#0000 1px),linear-gradient(90deg,#ffffff0e 1px,#0000 1px);background-size:17% 17%}.status-pill{color:#c0c0bb;letter-spacing:1.4px;text-transform:uppercase;border:1px solid #555550;border-radius:30px;align-items:center;gap:8px;padding:8px 11px;font-size:8px;display:flex;position:absolute;top:20px;right:19px}.status-pill i{background:var(--accent);width:5px;height:5px;box-shadow:0 0 12px var(--accent);border-radius:50%}.bier-mark{color:#e5e5dd;letter-spacing:0;font-size:76px;font-weight:700}.bier-mark span{color:var(--accent)}.bier-caption{color:#777772;letter-spacing:1.6px;font-size:8px;position:absolute;bottom:20px}.side-visual{background:#101110}.side-orbit{aspect-ratio:1;border:1px solid #333530;border-radius:50%;width:68%;position:absolute}.orbit-one{transform:rotate(-32deg)scaleY(.43)}.orbit-two{transform:rotate(32deg)scaleY(.43)}.folder-icon{z-index:1;border:4px solid var(--paper);border-radius:8px;width:67px;height:49px;position:relative}.folder-icon i{border:4px solid var(--paper);border-bottom:0;border-radius:5px 5px 0 0;width:25px;height:12px;position:absolute;top:-12px;left:5px}.folder-icon span{background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:5px;right:5px}.side-caption{color:#777772;font-size:8px;position:absolute;bottom:20px}.project-info{padding-top:21px}.project-title-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.project-title-row h3{color:var(--paper);letter-spacing:0;margin:0;font-size:27px;font-weight:600;line-height:1.2}.project-number{color:#686864;letter-spacing:1px;font-size:8px}.project-info>p{color:#92928e;min-height:52px;margin:12px 0 17px;font-size:14px;line-height:1.7}.text-link{color:#e3e3df;letter-spacing:1.3px;text-transform:uppercase;border-bottom:1px solid #666660;align-items:center;gap:10px;padding-bottom:5px;font-size:10px;transition:color .18s,border-color .18s;display:inline-flex}.text-link span{color:var(--accent);font-size:14px}.text-link:hover{border-color:var(--accent);color:var(--accent)}.muted-link{color:#777772}.education{border-top:1px solid var(--line);padding-top:91px;padding-bottom:130px}.education-header{margin-bottom:36px}.education h2,.about-copy h2,.contact-copy h2{color:var(--paper);letter-spacing:0;text-transform:uppercase;margin:0 0 27px;font-size:63px;font-weight:700;line-height:1}.education h2 span,.about-copy h2 span,.contact-copy h2 span{color:var(--accent)}.education-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.education-card{border:1px solid var(--line);background:#ffffff05;border-radius:8px;padding:28px 24px}.education-label{color:#969691;letter-spacing:1.8px;text-transform:uppercase;margin:0 0 24px;font-size:10px;font-weight:500}.education-list{flex-direction:column;gap:20px;margin:0;padding:0;list-style:none;display:flex}.education-list li{border-bottom:1px solid #ffffff0f;flex-direction:column;gap:8px;padding-bottom:18px;display:flex}.education-list li:last-child{border-bottom:0;padding-bottom:0}.education-item-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.education-item-top strong{color:var(--paper);font-size:19px;font-weight:600;line-height:1.3}.education-badge{color:#d9d9d5;letter-spacing:1px;text-transform:uppercase;border:1px solid #ffffff1f;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:8px;display:inline-flex}.education-badge.completed{color:#a6f5c7;border-color:#73ffb059}.education-detail{color:#d8d8d2;font-size:15px;line-height:1.7}.education-meta{color:#a6a6a1;font-size:13px;line-height:1.7}.about{border-top:1px solid var(--line);padding-top:91px;padding-bottom:130px}.about-layout{grid-template-columns:1fr 1fr;gap:12%;display:grid}.about-copy h2 span,.contact-copy h2 span{color:var(--accent)}.about-copy>p{color:#a6a6a1;max-width:510px;margin:0 0 15px;font-size:15px;line-height:1.9}.skills-label{color:#969691;margin:0 0 22px}.skills ul{flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none;display:flex}.skills li{color:#d6d6d1;border:1px solid #343431;border-radius:3px;padding:9px 12px;font-size:12px;transition:border-color .18s,color .18s}.skills li:hover{border-color:var(--accent);color:var(--accent)}.experience{margin-top:38px}.experience-item{border:1px solid var(--line);background:#ffffff05;border-radius:8px;padding:18px 18px 6px}.experience-item h3{color:var(--paper);margin:0 0 6px;font-size:20px;font-weight:600}.experience-company,.experience-meta,.experience-duration{color:#b8b8b3;margin:0 0 8px;font-size:13px}.experience-item ul{margin:14px 0 0;padding-left:18px;list-style:outside;display:block}.experience-item li{color:#a6a6a1;border:0;padding:0;font-size:12px;line-height:1.7}.contact{border-top:1px solid var(--line);grid-template-columns:1fr .82fr;gap:13%;padding-top:96px;padding-bottom:118px;display:grid}.contact-copy .section-index{margin-bottom:42px}.contact-copy h2{margin-bottom:25px}.contact-intro{color:#a6a6a1;margin-bottom:29px;font-size:15px;line-height:1.8}.contact-email{align-items:center;gap:12px;font-size:16px;transition:color .18s;display:inline-flex}.contact-email span,.contact-email:hover{color:var(--accent)}.location{color:#797975;letter-spacing:1.4px;margin-top:18px;font-size:9px}.contact-form{flex-direction:column;align-items:stretch;display:flex}.contact-form .skills-label{margin-bottom:27px}.contact-form label{color:#b7b7b2;margin:0 0 8px;font-size:12px}.contact-form input,.contact-form textarea{width:100%;color:var(--paper);resize:vertical;background:0 0;border:0;border-bottom:1px solid #41413d;border-radius:0;outline:0;margin-bottom:22px;padding:10px 0 12px;font-size:14px;transition:border-color .18s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#656560}.contact-form button{min-height:48px;color:var(--paper);cursor:pointer;letter-spacing:1.4px;text-transform:uppercase;background:0 0;border:1px solid #666660;border-radius:3px;justify-content:space-between;align-items:center;margin-top:7px;padding:0 16px;font-size:10px;transition:color .18s,background .18s,border-color .18s;display:flex}.contact-form button span{color:var(--accent);font-size:16px}.contact-form button:hover{border-color:var(--accent);background:var(--accent);color:var(--ink)}.contact-form button:hover span{color:var(--ink)}.site-footer{border-top:1px solid var(--line);color:#777772;letter-spacing:1.3px;justify-content:space-between;align-items:center;gap:16px;min-height:76px;padding:0 5.2%;font-size:8px;display:flex}.site-footer a{color:#b2b2ad;transition:color .18s}@keyframes arrive{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.hero h1{font-size:82px}.project-grid{gap:17px}.project-title-row h3{font-size:22px}.weather-visual{padding:14px}.education-layout{grid-template-columns:1fr}.about-layout,.contact{gap:8%}}@media (width<=640px){.site-header{height:72px;padding:0 6%}.monogram{font-size:21px}.site-header nav{gap:17px}.site-header nav a{letter-spacing:1.2px;font-size:9px}.hero{min-height:max(650px,100svh)}.hero-copy{padding:40px 8px 80px}.hero h1{font-size:50px}.eyebrow{margin-bottom:22px}.hero-role{margin-top:21px;font-size:13px}.hero-intro{max-width:100%;font-size:13px;line-height:1.7}.hero:after{height:70px;right:7%}.hero-github{bottom:28px;left:6%}.scroll-cue{font-size:8px;bottom:72px;right:6%}.section{width:88%}.projects{padding-top:75px;padding-bottom:88px}.section-index{letter-spacing:1.4px;margin-bottom:34px;font-size:9px}.project-grid{grid-template-columns:1fr;gap:41px}.project-visual{aspect-ratio:1.2}.weather-visual{padding:20px}.project-title-row h3{font-size:25px}.project-info>p{min-height:0;margin-bottom:15px}.bier-mark{font-size:76px}.education{padding-top:73px;padding-bottom:89px}.education h2{font-size:51px}.education-card{padding:18px 16px}.education-item-top{flex-direction:column;align-items:flex-start}.education-detail{font-size:13px}.about{padding-top:73px;padding-bottom:89px}.about-layout{grid-template-columns:1fr;gap:49px}.about-copy h2,.contact-copy h2{font-size:51px}.about-copy>p{font-size:14px}.experience{margin-top:18px}.experience-item{padding:16px 14px 8px}.experience-item h3{font-size:18px}.experience-company,.experience-meta,.experience-duration{font-size:12px}.experience-item li{font-size:11px}.contact{grid-template-columns:1fr;gap:54px;padding-top:75px;padding-bottom:82px}.contact-copy .section-index{margin-bottom:35px}.contact-email{font-size:14px}.site-footer{letter-spacing:.8px;min-height:70px;padding:0 6%;font-size:7px}}@media (width<=370px){.site-header nav{gap:11px}.site-header nav a{font-size:8px}.hero h1{font-size:43px}}
