@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;1,500&display=swap";:root{color:#111827;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f8f8f6;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,textarea{font:inherit}a{color:inherit}:root{--ink:#101828;--muted:#475467;--line:#d0d5dd;--paper:#f7f7f4;--card:#fff;--blue:#1746c7;--serif:"Playfair Display",serif;--mono:"DM Mono",monospace}.site{background:var(--paper);color:var(--ink);min-height:100vh;transition:background .25s,color .25s}.site.dark{--ink:#f8fafc;--muted:#c3ccd8;--line:#3c4654;--paper:#101419;--card:#171c22;--blue:#8db2ff}.container{width:min(1160px,100% - 64px);margin:0 auto}.nav-wrap{border-bottom:1px solid var(--line);z-index:20;background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}.nav{justify-content:space-between;align-items:center;height:76px;display:flex}.logo{letter-spacing:-.02em;align-items:center;gap:10px;font-size:14px;text-decoration:none;display:flex}.logo span{background:var(--ink);width:30px;height:30px;color:var(--paper);font:500 10px var(--mono);border-radius:50%;place-items:center;display:grid}.logo b{font-weight:600}.nav-links{color:var(--muted);align-items:center;gap:30px;font-size:13px;display:flex}.nav-links a{text-decoration:none}.nav-links a:hover,.footer a:hover{color:var(--blue)}.nav-resume{color:var(--ink);border-left:1px solid var(--line);padding-left:30px}.nav-actions{align-items:center;gap:12px;display:flex}.theme-toggle,.menu-toggle{color:var(--ink);cursor:pointer;background:0 0;border:0;padding:6px;font-size:18px}.menu-toggle{font-size:22px;display:none}.hero{grid-template-columns:1fr 270px;align-content:space-between;min-height:650px;padding:132px 0 42px;display:grid;position:relative}.eyebrow,.section-kicker,.project-meta,.timeline-date{font:11px var(--mono);letter-spacing:.04em;text-transform:uppercase}.eyebrow{color:var(--muted);align-items:center;gap:9px;display:flex}.status-dot{background:#35a86b;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #35a86b26}.hero h1{letter-spacing:-.075em;max-width:850px;margin:25px 0 28px;font-size:clamp(56px,8.5vw,104px);font-weight:500;line-height:.97}h1 em,h2 em{font-family:var(--serif);letter-spacing:-.06em;font-weight:500}.hero-lede{color:var(--muted);max-width:490px;font-size:17px;line-height:1.65}.hero-actions{align-items:center;gap:27px;margin-top:33px;display:flex}.button{cursor:pointer;border:0;border-radius:4px;align-items:center;gap:18px;padding:15px 20px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.button-dark{background:var(--ink);color:var(--paper)}.button-light{color:#111827;background:#fff}.arrow{font-size:17px;line-height:0}.text-link{border-bottom:1px solid var(--ink);padding-bottom:4px;font-size:13px;font-weight:600;text-decoration:none}.hero-aside{align-self:center;margin-top:50px}.portrait-wrap{width:210px;padding-bottom:18px;position:relative}.portrait-placeholder{color:#fff;width:190px;height:240px;font:500 42px var(--mono);isolation:isolate;background:#d5d9dc;border-radius:14px;place-items:center;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 35px #17253a20}.portrait-placeholder:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(#0000 55%,#10182880);position:absolute;inset:0}.portrait-placeholder img{object-fit:cover;object-position:center 24%;filter:saturate(.9)contrast(1.04);width:100%;height:100%}.portrait-label{z-index:2;font:10px var(--mono);letter-spacing:.05em;color:#fff;position:absolute;bottom:12px;left:13px}.portrait-location{background:var(--ink);color:var(--paper);font:9px var(--mono);letter-spacing:.03em;border-radius:3px;padding:7px 9px;position:absolute;bottom:0;right:0}.portrait-location i{color:#9fbcff;margin-left:4px;font-style:normal}.portrait-grid{opacity:.35;background:linear-gradient(130deg,#0000 45%,#a9b1b6 46%,#e3e6e4 47%,#0000 48%),repeating-linear-gradient(0deg,#0000 0 23px,#b6bec2 24px);position:absolute;inset:0}.hero-aside p{font:12px/1.6 var(--mono);color:var(--muted);margin:17px 0}.hero-bottom{color:var(--muted);font:10px var(--mono);text-transform:uppercase;letter-spacing:.07em;grid-column:1/-1;align-items:center;gap:18px;display:flex}.scroll-line{background:var(--line);width:65px;height:1px}.section{border-top:1px solid var(--line);padding:150px 0}.section-kicker{color:var(--blue);gap:16px;display:flex}.section-kicker span{color:var(--muted)}.intro-content{grid-template-columns:1.1fr .9fr;gap:120px;margin-top:65px;display:grid}.intro h2,.skills h2,.contact h2{letter-spacing:-.065em;margin:0;font-size:clamp(38px,5vw,62px);font-weight:500;line-height:1.08}.intro-body{max-width:410px;color:var(--muted);font-size:16px;line-height:1.75}.intro-body p+p{margin-top:20px}.intro-body .text-link{color:var(--ink);margin-top:25px;display:inline-block}.section-heading{justify-content:space-between;align-items:start;margin-bottom:65px;display:flex}.section-heading>p{color:var(--muted);max-width:330px;margin:0;font-size:15px;line-height:1.6}.project{border-top:1px solid var(--line);grid-template-columns:1.15fr 1fr;gap:70px;min-height:430px;padding:32px 0 42px;display:grid}.project:last-child{border-bottom:1px solid var(--line)}.project-visual{border-radius:2px;place-items:center;min-height:360px;display:grid;overflow:hidden}.project-visual.blue{background:#dce7ff}.project-visual.orange{background:#f4dfcf}.project-visual.green{background:#dce8db}.project-visual.purple{background:#e1dded}.dark .project-visual.blue{background:#1c2c50}.dark .project-visual.orange{background:#4a3427}.dark .project-visual.green{background:#263b2d}.dark .project-visual.purple{background:#352e47}.visual-window{color:#172033;background:#f8f8f6;width:72%;height:74%;overflow:hidden;box-shadow:0 18px 40px #17253a18}.window-bar{border-bottom:1px solid #e3e5e6;gap:4px;height:19px;padding:6px 8px;display:flex}.window-bar i{background:#b5bbc0;border-radius:50%;width:4px;height:4px}.phone-ui{background:#f5f7fa;height:100%;padding:20px 25px}.tiny-label,.learn-ui small{font:8px var(--mono);letter-spacing:.1em;color:#728098}.phone-title{font:23px/1.05 var(--serif);margin-top:35px}.shield{color:#317145;background:#d7ead7;border-radius:50%;place-items:center;width:65px;height:65px;margin:23px auto;font-size:22px;display:grid}.phone-lines{gap:7px;display:grid}.phone-lines span{background:#dfe4e9;border-radius:5px;height:5px}.phone-ui button{color:#fff;text-align:left;background:#1b2b4b;border:0;width:100%;margin-top:22px;padding:9px 12px;font-size:9px}.shop-ui,.learn-ui,.electric-ui{height:100%;padding:20px 26px}.shop-head,.learn-top{justify-content:space-between;font-size:10px;display:flex}.shop-head b{font:15px var(--serif)}.shop-head b span{color:#d45c29}.shop-copy{font:28px/1.05 var(--serif);margin-top:37px}.shop-copy em{color:#d45c29}.product-row{gap:7px;margin-top:25px;display:flex}.product{flex:1;height:108px;position:relative}.product span{font:8px var(--mono);position:absolute;top:8px;left:8px}.product-one{background:#d5d9cf}.product-two{background:#edc2a7}.product-three{background:#b7c7d1}.learn-ui{background:#fbfcfb}.learn-top span{color:#8b949d}.learn-score{background:#dbeadf;margin-top:38px;padding:18px}.learn-score strong{font:37px var(--serif);margin:3px 0 10px;display:block}.progress{background:#c2d7c8;height:5px}.progress i{background:#4f9865;width:84%;height:100%;display:block}.learn-bars{align-items:end;gap:8px;height:75px;margin:17px 0;display:flex}.learn-bars i{background:#a4c7ad;width:20px}.learn-bars i:first-child{height:38%}.learn-bars i:nth-child(2){height:60%}.learn-bars i:nth-child(3){height:50%}.learn-bars i:nth-child(4){height:85%}.learn-bars i:nth-child(5){height:68%}.learn-bars i:nth-child(6){height:95%}.learn-bars i:nth-child(7){height:78%}.learn-note{border-top:1px solid #dce5dd;padding-top:12px;font-size:10px;line-height:1.5}.learn-note b{color:#458355}.electric-ui{color:#f0e8d5;background:#1e2230;position:relative}.electric-word{font:33px/1 var(--serif);margin-top:33px}.electric-word b{font-style:italic}.electric-line{background:#c67d43;width:60px;height:1px;margin:22px 0}.electric-ui small{font:7px var(--mono);color:#b4b5bd;line-height:1.6}.electric-circle{color:#c67d43;border:1px solid #c67d43;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute;bottom:25px;right:25px}.project-info{flex-direction:column;padding-top:12px;display:flex}.project-meta{color:var(--muted);justify-content:space-between;display:flex}.project-info h3{letter-spacing:-.055em;max-width:400px;margin:60px 0 18px;font-size:31px;font-weight:500;line-height:1.1}.project-info>p{color:var(--muted);max-width:415px;margin:0;font-size:15px;line-height:1.65}.project-footer{margin-top:auto}.tags{flex-wrap:wrap;gap:8px;margin:25px 0;display:flex}.tags span{font:10px var(--mono);color:var(--muted);border:1px solid var(--line);padding:6px 8px}.project-link{font-size:12px;font-weight:600;text-decoration:none}.project-link.muted{color:var(--muted);font-weight:400}.skills-intro{grid-template-columns:1fr .75fr;gap:120px;margin:65px 0 75px;display:grid}.skills-intro p{max-width:350px;color:var(--muted);font-size:15px;line-height:1.7}.skill-grid{grid-template-columns:repeat(4,1fr);gap:25px;display:grid}.skill-group{border-top:2px solid var(--ink);flex-direction:column;gap:11px;padding-top:17px;display:flex}.skill-group h3{font:11px var(--mono);text-transform:uppercase;color:var(--blue);margin:0 0 10px}.skill-group span{font-size:15px}.timeline{max-width:850px;margin:65px 0 0}.timeline-row{border-top:1px solid var(--line);grid-template-columns:180px 1fr;gap:45px;padding:30px 0;display:grid}.timeline-date{color:var(--muted);padding-top:5px}.timeline h3{margin:0 0 13px;font-size:20px;font-weight:500}.timeline h3 span{color:var(--muted);margin-top:6px;font-size:13px;font-weight:400;display:block}.timeline p{color:var(--muted);max-width:560px;margin:0;font-size:15px;line-height:1.7}.contact{padding-bottom:105px}.contact-card{color:#fff;background:#182337;grid-template-columns:1fr .8fr;gap:80px;padding:65px 70px;display:grid}.contact-card .section-kicker{color:#6f9bff}.contact-card .section-kicker span{color:#b5c0d4}.contact h2{margin-top:52px}.contact-copy>p{color:#b5c0d4;max-width:370px;margin:24px 0;font-size:15px;line-height:1.7}.contact-links{flex-wrap:wrap;gap:20px;margin-top:38px;display:flex}.contact-links a{border-bottom:1px solid #61708b;padding-bottom:7px;font-size:12px;text-decoration:none}.contact-form{flex-direction:column;gap:18px;padding-top:10px;display:flex}.contact-form label{font:10px var(--mono);text-transform:uppercase;color:#aeb8cb;gap:8px;display:grid}.contact-form input,.contact-form textarea{color:#fff;resize:vertical;background:0 0;border:0;border-bottom:1px solid #546178;outline:none;padding:8px 0}.contact-form input:focus,.contact-form textarea:focus{border-color:#fff}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#75839a}.contact-form .button{align-self:start;margin-top:5px}.form-note{color:#9bd0a8;font-size:11px;line-height:1.5}.footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding:27px 0 35px;font-size:11px;display:flex}.footer>div{gap:18px;display:flex}.footer a{text-decoration:none}@media (width<=800px){.container{width:min(100% - 36px,560px)}.nav{height:68px}.menu-toggle{z-index:31;display:block;position:relative}.nav-links{z-index:30;background:var(--paper);border-left:1px solid var(--line);opacity:0;visibility:hidden;flex-direction:column;align-items:flex-start;gap:24px;width:min(320px,82vw);height:100dvh;padding:104px 30px 32px;transition:transform .36s cubic-bezier(.22,.61,.36,1),opacity .24s,visibility 0s linear .36s;display:flex;position:fixed;top:0;left:auto;right:0;transform:translate(100%);box-shadow:-18px 0 40px #1018281c}.nav-links.open{opacity:1;visibility:visible;transition:transform .36s cubic-bezier(.22,.61,.36,1),opacity .24s;transform:translate(0)}.nav-links a{color:var(--ink);font-size:19px}.nav-links a.nav-resume{border-top:1px solid var(--line);width:100%;margin-top:12px;padding-top:22px;font-size:13px}.nav-resume{border:0;padding:0}.hero{min-height:650px;padding:95px 0 35px;display:block}.hero h1{font-size:clamp(52px,15vw,78px)}.hero-aside{flex-direction:column;align-items:flex-start;margin:68px 0 0;padding-left:clamp(0px,12vw,54px);display:flex}.hero-aside p{margin-top:16px}.hero-bottom{margin-top:72px}.section{padding:100px 0}.intro-content,.skills-intro,.contact-card{grid-template-columns:1fr;gap:35px}.intro-content,.skills-intro{margin-top:45px}.section-heading{margin-bottom:45px;display:block}.section-heading>p{margin-top:25px}.project{grid-template-columns:1fr;gap:25px;padding:25px 0 35px}.project-visual{min-height:300px}.project-info h3{margin:30px 0 15px;font-size:27px}.project-footer{margin-top:15px}.skill-grid{grid-template-columns:1fr 1fr;gap:40px 20px}.timeline-row{grid-template-columns:1fr;gap:12px}.contact-card{gap:50px;padding:38px 25px}.contact h2{margin-top:38px}.footer{flex-wrap:wrap;align-items:flex-start;gap:20px}.footer p{order:3;width:100%;margin:0}.eyebrow-location{display:none}}@media (width<=430px){.hero h1{font-size:53px}.hero-actions{gap:18px}.button{padding:14px 15px}.text-link{font-size:12px}.skill-grid{grid-template-columns:1fr}.project-visual{min-height:260px}.visual-window{width:82%;height:74%}.footer>div{justify-content:space-between;width:100%}}.section-heading>p,.intro-body,.hero-lede,.skills-intro p,.timeline p,.project-info>p{color:#475467}.project-meta,.timeline-date,.footer,.eyebrow,.tags span,.project-link.muted,.learn-top span{color:#526070}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#aebbd0;opacity:1}.site.dark .section-heading>p,.site.dark .intro-body,.site.dark .hero-lede,.site.dark .skills-intro p,.site.dark .timeline p,.site.dark .project-info>p,.site.dark .project-meta,.site.dark .timeline-date,.site.dark .footer,.site.dark .eyebrow,.site.dark .tags span,.site.dark .project-link.muted{color:#c3ccd8}
