:root{color:#f4f1de;font-synthesis:none;--ink:#f4f1de;--muted:#d4c4a8;--line:#415a77;--panel:#1b263b;--sage:#778d7a;--background:#0d1b2a;--lime:#d4c4a8;--pink:#d4c4a8;--lilac:#778d7a;--orange:#415a77;background:#0d1b2a;font-family:Manrope,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{min-width:320px;margin:0}a{color:inherit}a:focus-visible{outline:3px solid var(--lime);outline-offset:5px}.site-shell{z-index:1;isolation:isolate;position:relative;overflow:hidden}.route-page-enter{animation:.28s cubic-bezier(.2,.75,.25,1) both route-page-enter}.route-page-enter:before{z-index:5;background:var(--muted);content:"";transform-origin:0;pointer-events:none;width:100%;height:2px;animation:.32s ease-out both route-progress;position:absolute;top:0;left:0;transform:scaleX(0)}.site-shell>*{z-index:1;position:relative}.container{width:min(1160px,100% - 56px);margin-inline:auto}.nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:82px;display:flex}.logo{color:var(--ink);letter-spacing:-.03em;font-size:16px;font-weight:800;text-decoration:none}.nav nav{gap:34px;display:flex}.nav nav a{color:var(--muted);font-size:14px;text-decoration:none}.nav nav a:hover{color:var(--lime)}.nav-cta{background:var(--lime);color:#111;border-radius:30px;align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex}.nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px #d4c4a833}.hero{justify-content:space-between;align-items:center;gap:48px;min-height:600px;padding-block:82px 90px;display:flex}.hero-copy{flex:650px;min-width:0}.eyebrow{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font:13px/1.5 DM Mono,monospace}.status-dot{background:var(--lime);border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block;box-shadow:0 0 12px #d4c4a880}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.075em;margin:26px 0 28px;font-size:clamp(44px,6.2vw,78px);font-weight:700;line-height:1.02}h1 em,h2 em{color:var(--lilac);letter-spacing:-.075em;font-family:Georgia,serif;font-weight:400}.hero-text{max-width:630px;color:var(--muted);font-size:17px;line-height:1.75}.hero-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:34px;display:flex}.button,.text-link{align-items:center;gap:12px;font-size:14px;display:inline-flex}.button{border-radius:30px;padding:15px 20px;text-decoration:none;transition:transform .2s,box-shadow .2s}.button-dark{color:#0d1b2a;background:var(--lime);font-weight:700}.button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #d4c4a833}.text-link{color:var(--ink);border-bottom:1px solid var(--lilac);padding-bottom:5px;text-decoration:none}.text-link:hover{color:var(--lime)}.hero-art{flex:0 0 310px;place-items:center;width:310px;height:310px;display:grid;position:relative}.art-backdrop{border:1px solid var(--line);background:radial-gradient(circle,#1b263b 0,#0d1b2a 68%);border-radius:50%;position:absolute;inset:24px}.art-backdrop:before,.art-backdrop:after{border:1px solid var(--line);content:"";border-radius:50%;position:absolute;inset:23px}.art-backdrop:after{opacity:.7;border-style:dashed;inset:48px}.art-window{z-index:1;border:1px solid var(--lilac);background:var(--panel);border-radius:12px;width:212px;height:164px;padding:19px;transform:rotate(-7deg);box-shadow:0 20px 70px #0008}.window-dots{gap:6px;margin-bottom:22px;display:flex}.window-dots i{background:var(--pink);border-radius:50%;width:8px;height:8px}.window-dots i:nth-child(2){background:var(--lime)}.window-dots i:nth-child(3){background:var(--lilac)}.code-line{opacity:.9;background:#415a77;border-radius:5px;width:75%;height:7px;margin:12px 0}.line-two{background:var(--pink);width:54%}.line-three{background:var(--lilac);width:86%}.line-four{background:var(--lime);width:42%}.art-tile{z-index:2;border-radius:17px;place-items:center;width:60px;height:60px;font:700 17px DM Mono;display:grid;position:absolute;box-shadow:0 10px 30px #0008}.tile-lime{color:#0d1b2a;background:var(--lime);top:43px;right:0;transform:rotate(8deg)}.tile-pink{color:#0d1b2a;background:var(--pink);bottom:43px;left:0;transform:rotate(-9deg)}.tile-lilac{color:#0d1b2a;background:var(--lilac);bottom:10px;right:25px;transform:rotate(8deg)}.ticker{color:#0d1b2a;background:var(--lime);white-space:nowrap;padding-block:14px;font:500 13px DM Mono,monospace;overflow:hidden}.ticker-track{will-change:transform;width:max-content;display:flex;animation:none!important}.ticker-group{flex:none;align-items:center;display:flex}.ticker-item{align-items:center;gap:28px;padding-inline:24px;display:flex}.ticker-item i{color:#415a77;font-style:normal}.section{padding-block:120px}.section-heading{justify-content:space-between;align-items:end;gap:28px;margin-bottom:48px;display:flex}.section-heading h2,.about h2,.skills h2{letter-spacing:-.07em;margin:16px 0 0;font-size:clamp(40px,5vw,62px);line-height:1.04}.section-note{color:var(--muted);text-align:right;font:14px/1.7 DM Mono,monospace}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(20px)saturate(145%);backdrop-filter:blur(20px)saturate(145%);background:#1b263bd1;border-radius:18px;flex-direction:column;justify-content:space-between;gap:30px;min-width:0;min-height:390px;padding:26px;transition:transform .3s,border-color .3s,box-shadow .3s,background-color .3s;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--lilac);transform:translateY(-5px);box-shadow:0 20px 55px #0006}.project-card:after{background:var(--accent);content:"";opacity:.12;border-radius:50%;width:180px;height:180px;transition:transform .45s,opacity .35s;position:absolute;top:-86px;right:-56px}.project-card:hover:after{opacity:.2;transform:scale(1.3)}.project-card.pink{--accent:var(--pink)}.project-card.lime{--accent:var(--lime)}.project-card.blue{--accent:var(--lilac)}.project-card.orange{--accent:var(--orange)}.project-top,.project-bottom{z-index:1;justify-content:space-between;align-items:center;gap:14px;display:flex;position:relative}.project-number{color:var(--ink);font:14px DM Mono,monospace}.project-type{border:1px solid color-mix(in srgb, var(--accent), transparent 45%);max-width:75%;color:var(--ink);text-align:center;background:#0d1b2a73;border-radius:999px;padding:8px 13px;font-size:14px;font-weight:700;line-height:1.35}.project-content{z-index:1;position:relative}.project-card h3{letter-spacing:-.08em;margin:0 0 13px;font-size:44px}.project-description,.project-role{max-width:490px;color:var(--muted);margin-bottom:11px;font-size:16px;line-height:1.65}.project-role{color:var(--muted);font-size:14px}.project-result{color:var(--muted);margin:16px 0 0;font:13px/1.55 DM Mono,monospace}.project-bottom{border-top:1px solid var(--line);align-items:end;padding-top:16px}.project-stack{max-width:75%;color:var(--ink);font:12px/1.6 DM Mono,monospace}.project-bottom a{color:#0d1b2a;flex:none;align-items:center;gap:5px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.project-bottom a:hover{text-decoration:none}.project-proof{color:var(--muted);text-align:right;flex:none;font-size:12px}.nav-cta,.button-dark,.hero .text-link,.project-bottom a{isolation:isolate;-webkit-backdrop-filter:blur(18px)saturate(170%);background:linear-gradient(135deg,#d4c4a8eb,#f4f1dee0 52%,#778d7ad1);border:1px solid #f4f1de7a;transition:transform .22s,box-shadow .22s,border-color .22s;position:relative;overflow:hidden;box-shadow:inset 0 1px #f4f1decc,0 8px 24px #415a774d}.nav-cta:before,.button-dark:before,.hero .text-link:before,.project-bottom a:before{z-index:-1;border-radius:inherit;content:"";opacity:.72;pointer-events:none;background:linear-gradient(115deg,#ffffff90 0%,#ffffff24 30%,#0000 58%,#ffffff45 100%);position:absolute;inset:1px}.nav-cta:hover,.button-dark:hover,.hero .text-link:hover,.project-bottom a:hover{border-color:#ffffffc7;transform:translateY(-3px);box-shadow:inset 0 1px #f4f1de,0 14px 34px #415a777a,0 0 18px #d4c4a83d}.nav-cta:active,.button-dark:active,.hero .text-link:active,.project-bottom a:active{transform:translateY(0)scale(.98)}.hero .text-link{color:#0d1b2a;border-radius:999px;padding:13px 17px;text-decoration:none}.project-bottom a{color:#0d1b2a;border-radius:999px;padding:9px 13px}.about{border-block:1px solid var(--line);background:#1b263b9e}.about-grid{grid-template-columns:1fr 1fr;gap:80px;display:grid}.about-copy>p{max-width:540px;color:var(--muted);font-size:17px;line-height:1.75}.stats{flex-wrap:wrap;gap:28px;margin-top:42px;display:flex}.stats div{align-items:baseline;gap:10px;display:flex}.stats strong{color:var(--lime);font:32px DM Mono,monospace}.stats span{max-width:115px;color:var(--muted);font:12px/1.45 DM Mono,monospace}.skills h2{margin-bottom:42px}.skill-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.skill-group{isolation:isolate;-webkit-backdrop-filter:blur(28px)saturate(185%);backdrop-filter:blur(28px)saturate(185%);background:#1b263b1a;border:1px solid #778d7a8c;border-radius:16px;padding:24px;transition:transform .35s,border-color .35s,box-shadow .35s;position:relative;overflow:hidden;box-shadow:0 16px 42px #0000001f}.skill-group:hover{border-color:var(--muted);transform:translateY(-5px);box-shadow:0 20px 48px #0003}.skill-group h3{color:var(--lime);margin:0 0 16px;font-size:18px}.skill-group ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.skill-group li{color:var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d1b2a24;border:1px solid #d4c4a861;border-radius:20px;padding:8px 11px;font:13px DM Mono,monospace}.learning-group{border-style:solid}.learning-group p{color:var(--muted);margin:14px 0 0;font-size:13px;line-height:1.6}.footer{border-top:1px solid #d4c4a852;padding-top:clamp(80px,10vw,140px)}.footer-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);align-items:center;gap:clamp(40px,7vw,108px);display:grid}.footer-intro{align-self:start;padding-top:34px}.footer-intro h2{letter-spacing:-.07em;margin:22px 0 25px;font-size:clamp(45px,5.3vw,76px);line-height:1.04}.footer-intro h2 em{color:var(--lilac);font-family:Georgia,serif;font-weight:400}.footer-intro>p:last-child{max-width:420px;color:var(--muted);font-size:17px;line-height:1.7}.footer-chat{-webkit-backdrop-filter:blur(30px)saturate(140%);backdrop-filter:blur(30px)saturate(140%);background:#1b263bbd;border:1px solid #d4c4a873;border-radius:27px;overflow:hidden;box-shadow:0 28px 80px #050d184d,inset 0 1px #f4f1de1f}.footer-chat-header{background:#0d1b2a52;border-bottom:1px solid #d4c4a833;align-items:center;gap:13px;padding:16px 22px;display:flex}.footer-chat-avatar{background:var(--sage);width:42px;height:42px;color:var(--background);border-radius:14px;flex:none;place-items:center;display:grid}.footer-chat-identity{flex-direction:column;gap:2px;min-width:0;display:flex}.footer-chat-identity strong{color:var(--ink);font-size:14px}.footer-chat-identity small{color:var(--muted);font-size:12px}.footer-chat-status{background:var(--sage);border-radius:50%;flex:none;width:9px;height:9px;margin-left:auto;box-shadow:0 0 0 4px #778d7a2e}.footer-chat-body{flex-direction:column;gap:28px;padding:28px 23px 30px;display:flex}.footer-message-incoming{background:#415a7761;border:1px solid #d4c4a833;border-radius:18px 18px 18px 5px;max-width:83%;padding:17px 19px}.footer-message-author{color:var(--muted);font:12px DM Mono,monospace}.footer-message-incoming p{color:var(--ink);margin:8px 0 0;font-size:15px;line-height:1.65}.footer-message-links{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.footer-message-link{width:fit-content;max-width:93%;color:var(--ink);background:#f4f1de1a;border:1px solid #d4c4a852;border-radius:17px 17px 5px;align-items:center;gap:14px;padding:12px 15px;text-decoration:none;transition:transform .2s,border-color .2s,background-color .2s;display:flex;box-shadow:0 8px 24px #050d181f}.footer-message-link:hover{border-color:var(--muted);background:#f4f1de29;text-decoration:none;transform:translate(-4px)}.footer-message-link:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.footer-message-link-primary{border-color:var(--muted);background:var(--muted);color:#0d1b2a}.footer-message-link-primary:hover{background:var(--ink);color:#0d1b2a}.footer-message-link>svg{flex:none}.footer-message-link>svg:last-child{opacity:.75;margin-left:8px}.footer-message-link span{flex-direction:column;gap:1px;min-width:0;display:flex}.footer-message-link small{opacity:.75;font-size:11px}.footer-message-link strong{overflow-wrap:anywhere;font-size:13px;font-weight:700}.footer-bottom{color:var(--muted);border-top:1px solid #d4c4a847;justify-content:space-between;gap:20px;margin-top:clamp(80px,10vw,130px);padding-block:24px 30px;font:12px/1.5 DM Mono,monospace;display:flex}.about-page{padding-block:clamp(68px,10vw,128px) 96px}.about-page-intro{max-width:1120px}.about-page-intro-grid{grid-template-columns:minmax(0,1fr) 270px;align-items:center;gap:clamp(32px,6vw,80px);display:grid}.about-page-intro-copy{min-width:0}.about-page-intro h1{letter-spacing:-.075em;margin:24px 0 0;font-size:clamp(54px,7vw,86px);line-height:.98}.about-page-intro h1 em,.about-page-section-heading h2 em,.about-page-education h2 em,.about-page-cta h2 em{color:var(--lilac);font-family:DM Serif Display,Georgia,serif;font-weight:400}.about-page-lead-grid{grid-template-columns:1fr 1fr;gap:28px;max-width:900px;margin-top:30px;display:grid}.about-page-lead-grid p{color:var(--muted);margin:0;font-size:17px;line-height:1.75}.about-photo-placeholder{background:#f4f1de0b;border:1px solid #d4c4a87a;border-radius:26px;height:340px;margin:0;position:relative;overflow:hidden}.about-photo-placeholder:before{content:"";pointer-events:none;border:1px dashed #d4c4a84d;border-radius:19px;position:absolute;inset:10px}.about-photo-placeholder img{object-fit:cover;object-position:center 44%;width:100%;height:100%;display:block}.about-photo-caption{color:var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0d1b2ab8;border:1px solid #f4f1de4d;border-radius:14px;padding:12px 14px;font-size:13px;font-weight:700;position:absolute;bottom:14px;left:14px;right:14px}.about-page-stats{border-top:1px solid var(--line);flex-wrap:wrap;gap:clamp(28px,6vw,76px);margin-top:48px;padding-top:24px;display:flex}.about-page-stats div{align-items:baseline;gap:12px;display:flex}.about-page-stats strong{color:var(--lime);font:38px DM Mono,monospace}.about-page-stats span{max-width:150px;color:var(--muted);font:12px/1.5 DM Mono,monospace}.about-page-work{margin-top:clamp(100px,14vw,170px)}.about-page-section-heading{justify-content:space-between;align-items:end;gap:36px;margin-bottom:36px;display:flex}.about-page-section-heading h2,.about-page-education h2{letter-spacing:-.07em;margin:14px 0 0;font-size:clamp(42px,6vw,68px);line-height:1.02}.about-page-section-heading>p{max-width:290px;color:var(--muted);margin:0 0 5px;font-size:15px;line-height:1.7}.about-milestones{border-top:1px solid #d4c4a859}.about-milestone{border-bottom:1px solid #d4c4a847;grid-template-columns:70px minmax(180px,.8fr) minmax(260px,1.4fr) minmax(150px,.7fr);align-items:start;gap:22px;padding:26px 0;display:grid}.about-milestone-number{color:var(--lime);font:15px DM Mono,monospace}.about-milestone-type{color:var(--muted);text-transform:uppercase;margin:0 0 8px;font:11px DM Mono,monospace}.about-milestone h3{letter-spacing:-.04em;margin:0;font-size:25px}.about-milestone-text{color:var(--muted);margin:0;font-size:15px;line-height:1.7}.about-milestone-detail{color:var(--ink);font:12px/1.7 DM Mono,monospace}.about-page-education{border-block:1px solid var(--line);grid-template-columns:.8fr 1.2fr;gap:70px;margin-top:clamp(100px,14vw,160px);padding-block:50px;display:grid}.education-list article{border-bottom:1px solid #d4c4a840;grid-template-columns:150px 1fr;gap:20px;padding:16px 0 22px;display:grid}.education-list article:first-child{padding-top:8px}.education-list article:last-child{border-bottom:0;padding-bottom:8px}.education-list article>span{color:var(--muted);padding-top:4px;font:11px DM Mono,monospace}.education-list h3{margin:0;font-size:19px}.education-list p{color:var(--muted);margin:7px 0 0;font-size:15px;line-height:1.6}.about-page-ai{border-bottom:1px solid var(--line);grid-template-columns:.55fr 1.4fr max-content;align-items:center;gap:30px;margin-top:72px;padding:27px 0;display:grid}.about-page-ai>p{color:var(--muted);margin:0;font-size:16px;line-height:1.7}.about-page-ai>a{color:var(--ink);white-space:nowrap;align-items:center;gap:8px;font-size:14px;text-decoration:none;display:inline-flex}.about-page-ai>a:hover{color:var(--lime)}.about-page-cta{justify-content:space-between;align-items:end;gap:32px;margin-top:clamp(100px,14vw,160px);display:flex}.about-page-cta h2{letter-spacing:-.075em;margin:14px 0 0;font-size:clamp(50px,7vw,82px);line-height:.98}.about-page-cta .button{text-decoration:none}.contact-page{min-height:calc(100vh - 160px);padding-block:clamp(68px,10vw,128px) 96px}.contact-page-intro{max-width:760px}.contact-page-intro h1{letter-spacing:-.075em;margin:24px 0 0;font-size:clamp(56px,9vw,104px);line-height:.98}.contact-page-intro h1 em{color:var(--lilac);font-family:DM Serif Display,Georgia,serif;font-weight:400}.contact-page-lead{max-width:590px;color:var(--muted);margin:28px 0 0;font-size:18px;line-height:1.75}.contact-page-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:clamp(54px,8vw,90px);display:grid}.contact-method{min-height:250px;color:var(--ink);-webkit-backdrop-filter:blur(24px)saturate(140%);backdrop-filter:blur(24px)saturate(140%);background:#f4f1de0b;border:1px solid #d4c4a857;border-radius:22px;flex-direction:column;padding:24px;text-decoration:none;transition:transform .25s,border-color .25s,background .25s;display:flex;position:relative;overflow:hidden}.contact-method:before{content:"";filter:blur(2px);pointer-events:none;background:#778d7a21;border-radius:50%;width:190px;height:190px;position:absolute;top:-76px;right:-70px}.contact-method:hover{border-color:var(--muted);background:#f4f1de14;transform:translateY(-5px)}.contact-method-top{color:var(--muted);justify-content:space-between;align-items:center;font:13px DM Mono,monospace;display:flex}.contact-method-top svg{color:var(--lilac)}.contact-method-label{color:var(--muted);margin-top:36px;font-size:14px}.contact-method-value{overflow-wrap:anywhere;margin-top:7px;font-size:clamp(17px,2vw,22px);font-weight:700}.email-contact-method .contact-method-value{font-size:clamp(15px,1.45vw,18px)}.contact-method-note{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.5}.contact-method-arrow{color:var(--muted);position:absolute;bottom:24px;right:24px}.contact-resume-link{color:var(--ink);border:1px solid #d4c4a866;border-radius:30px;align-items:center;gap:12px;margin-top:28px;padding:15px 19px;text-decoration:none;transition:background .2s,border-color .2s;display:inline-flex}.contact-resume-link:hover{border-color:var(--muted);background:#f4f1de14}.contact-resume-link svg:last-child{color:var(--muted);margin-left:6px}.projects-page{min-height:calc(100vh - 160px);padding-block:clamp(68px,9vw,112px) 96px}.projects-page-intro h1{letter-spacing:-.075em;margin:24px 0 0;font-size:clamp(56px,8vw,94px);line-height:.98}.projects-page-intro h1 em{color:var(--lilac);font-family:DM Serif Display,Georgia,serif;font-weight:400}.projects-page-summary{justify-content:space-between;align-items:end;gap:36px;margin-top:28px;display:flex}.projects-page-summary p{max-width:620px;color:var(--muted);margin:0;font-size:17px;line-height:1.75}.projects-page-summary>span{color:var(--muted);flex:none;font:13px/1.6 DM Mono,monospace}.projects-page-summary strong{color:var(--ink);font-size:34px}.projects-showcase{border-top:1px solid #d4c4a85c;gap:0;margin-top:68px;display:grid}.project-case{--case-accent:var(--line);background:0 0;border:0;border-bottom:1px solid #d4c4a85c;border-radius:0;min-width:0;position:relative}.project-case:before{display:none}.project-case.pink{--case-accent:var(--pink)}.project-case.lime{--case-accent:var(--lime)}.project-case.blue{--case-accent:var(--lilac)}.project-case.orange{--case-accent:var(--orange)}.project-case-heading,.project-case-body,.project-case-actions{z-index:1;position:relative}.project-case-heading{justify-content:space-between;align-items:center;gap:16px;padding:25px 0 0;display:flex}.project-case-number{color:var(--case-accent);font:15px DM Mono,monospace}.project-case-type{color:var(--muted);font:12px DM Mono,monospace}.project-case-body{grid-template-columns:minmax(0,1.3fr) minmax(230px,.7fr);gap:52px;padding:34px 0 32px;display:grid}.project-case-main h2{letter-spacing:-.075em;margin:0;font-size:clamp(48px,7vw,82px);line-height:1}.project-case-description{max-width:680px;color:var(--muted);margin:18px 0 0;font-size:18px;line-height:1.7}.project-case-result{border-bottom:1px solid var(--case-accent);color:var(--ink);margin:24px 0 0;padding:9px 0;font:13px/1.6 DM Mono,monospace;display:inline-flex}.project-case-aside{border-left:1px solid #d4c4a84d;align-self:center;padding:12px 0 12px 28px}.project-case-aside-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font:11px DM Mono,monospace}.project-case-aside p{color:var(--ink);margin:9px 0 22px;font-size:15px;line-height:1.65}.project-case-aside .project-case-stack{color:var(--muted);margin-bottom:0;font:12px/1.7 DM Mono,monospace}.project-case-actions{align-items:center;gap:18px;padding:0 0 26px;display:flex}.project-case-repo{color:var(--ink);cursor:pointer;border-bottom:1px solid var(--case-accent);align-items:center;gap:8px;padding:8px 0;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.project-case-repo:hover{color:var(--muted)}.project-case-toggle{width:max-content;max-width:100%;color:var(--muted);text-align:right;cursor:pointer;background:0 0;border:0;grid-area:toggle;align-items:center;gap:9px;margin-left:auto;padding:8px 0;font:700 13px Manrope,Arial,sans-serif;display:flex}.project-case-toggle:hover{color:var(--ink)}.project-case-toggle:focus-visible{outline:2px solid var(--muted);outline-offset:4px;border-radius:2px}.project-case-toggle span{color:var(--ink);font-size:19px;font-weight:400;line-height:1}.project-case-disclosure-panel{opacity:0;grid-area:detail;grid-template-rows:0fr;min-height:0;transition:grid-template-rows .38s cubic-bezier(.2,.7,.2,1),opacity .25s;display:grid;overflow:hidden}.project-case.is-open .project-case-disclosure-panel{opacity:1;grid-template-rows:1fr}.project-case-disclosure-panel>.project-case-detail-content{min-height:0;overflow:hidden}.project-case-detail-content{max-width:760px;color:var(--muted);padding:0;font-size:14px;line-height:1.65;transition:padding .38s}.project-case.is-open .project-case-detail-content{padding-block:18px}.project-case-detail-content p{margin:0 0 9px}.project-case-detail-content strong{color:var(--ink)}.project-case-detail-content a{color:var(--ink);align-items:center;gap:5px;margin-top:5px;text-decoration:none;display:inline-flex}.project-case-detail-content a:hover{color:var(--muted)}.projects-showcase .project-case-featured:nth-child(2){width:min(100%,1020px);margin-left:auto}.projects-showcase .project-case-featured:nth-child(2) .project-case-body{grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr)}.projects-showcase .project-case-featured:nth-child(2) .project-case-aside{grid-area:1/1}.projects-showcase .project-case-featured:nth-child(2) .project-case-main{grid-area:1/2}.projects-more{margin-top:112px}.projects-more-heading{justify-content:space-between;align-items:end;gap:28px;margin-bottom:34px;display:flex}.projects-more-heading h2{letter-spacing:-.07em;margin:14px 0 0;font-size:clamp(38px,5vw,58px);line-height:1.04}.projects-more-heading h2 em{color:var(--lilac);font-family:DM Serif Display,Georgia,serif;font-weight:400}.projects-more-heading>p{max-width:340px;color:var(--muted);margin:0 0 4px;font-size:14px;line-height:1.7}.projects-compact-list{border-top:1px solid #d4c4a84d}.project-case-compact{background:0 0;border-radius:0;grid-template-columns:120px minmax(0,1fr) max-content;grid-template-areas:"meta name toggle""detail detail detail";align-items:center;gap:0 24px;padding:23px 0;display:grid}.project-case-compact .project-case-heading{flex-direction:column;grid-area:meta;align-items:flex-start;gap:10px;padding:0;display:flex}.project-case-compact .project-case-number{grid-area:auto}.project-case-compact .project-case-type{grid-area:auto;margin:0;font-size:10px}.project-case-compact .project-case-body{grid-area:name;padding:0;display:block}.project-case-compact .project-case-main h2{font-size:32px}.project-case-compact .project-case-description,.project-case-compact .project-case-result,.project-case-compact .project-case-aside{display:none}.project-case-compact-actions{grid-area:toggle;justify-content:flex-end;align-items:center;gap:18px;display:flex}.project-case-compact .project-case-toggle{grid-area:auto;margin-left:0}.project-case-compact .project-case-disclosure-panel{grid-area:detail}.project-case-compact .project-case-disclosure-panel>.project-case-detail-content{max-width:none}.reveal{opacity:0;transition:opacity .65s,transform .65s cubic-bezier(.2,.75,.25,1);transform:translateY(20px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (width<=900px){.hero{gap:20px}.hero-art{flex-basis:260px;width:260px;height:260px}.art-window{width:185px;height:148px;padding:16px}.about-grid{gap:42px}.skill-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-layout{grid-template-columns:minmax(0,1fr);gap:34px}.footer-intro{padding-top:0}}@media (width<=700px){.container{width:calc(100% - 36px)}.nav{flex-wrap:wrap;gap:12px;min-height:72px;padding-block:12px}.logo{max-width:52%;font-size:14px}.nav nav{flex:1 0 100%;order:3;justify-content:space-between;gap:12px;display:flex}.nav nav a{font-size:12px}.nav-cta{padding:11px 13px;font-size:13px}.hero{min-height:auto;padding-block:64px 68px;display:block}.hero-copy{width:100%}h1{font-size:clamp(40px,11vw,54px);line-height:1.06}.hero-text{font-size:16px}.hero-art{width:240px;height:240px;margin:42px auto 0}.art-window{width:176px;height:140px}.art-tile{border-radius:14px;width:50px;height:50px;font-size:14px}.tile-lime{top:32px;right:0}.tile-pink{bottom:30px;left:0}.tile-lilac{bottom:7px;right:16px}.section{padding-block:82px}.section-heading{margin-bottom:32px;display:block}.section-heading h2,.about h2,.skills h2{font-size:clamp(36px,9vw,48px)}.section-note{text-align:left;margin:22px 0 0}.project-grid,.about-grid{grid-template-columns:minmax(0,1fr);gap:13px}.project-card{min-height:350px;padding:21px}.project-card h3{font-size:38px}.project-description{font-size:15px}.project-role{font-size:13px}.project-type{max-width:72%;font-size:12px}.project-stack,.project-proof{font-size:11px}.about-grid{gap:34px}.about-copy>p{font-size:16px}.stats{gap:18px}.stats strong{font-size:27px}.stats span{font-size:11px}.skill-groups{grid-template-columns:minmax(0,1fr)}.skill-group{padding:21px}.skill-group li{font-size:12px}.projects-page{min-height:auto;padding-block:62px 72px}.projects-page-intro h1{font-size:clamp(48px,12vw,68px)}.projects-page-summary{display:block}.projects-page-summary p{font-size:16px}.projects-page-summary>span{margin-top:24px;display:block}.projects-showcase{margin-top:42px}.project-case-heading{padding:20px 0 0}.project-case-body{padding:34px 0 27px;display:block}.project-case-main h2{font-size:48px}.project-case-description{font-size:16px}.project-case-result{font-size:11px}.project-case-aside{border-top:1px solid #d4c4a840;border-left:0;margin-top:25px;padding:18px 0 0}.project-case-actions{gap:13px}.projects-showcase .project-case-featured:nth-child(2){width:100%}.projects-more{margin-top:76px}.projects-more-heading{display:block}.projects-more-heading>p{margin-top:19px}.project-case-compact{grid-template-columns:minmax(0,1fr) max-content;grid-template-areas:"meta toggle""name name""detail detail";gap:0 12px;padding:21px 0;display:grid}.project-case-compact .project-case-heading{grid-area:meta;padding:0;display:flex}.project-case-compact .project-case-type{margin:0}.project-case-compact .project-case-body{grid-area:name;padding:18px 0 0;display:block}.project-case-compact .project-case-main h2{font-size:28px}.project-case-compact-actions{grid-area:toggle;align-self:start;gap:12px}.project-case-compact .project-case-toggle{grid-area:auto;align-self:start;font-size:12px}.project-case-compact .project-case-repo{gap:4px;font-size:12px}.project-case-compact .project-case-disclosure-panel{grid-area:detail}.project-case-compact .project-case-detail-content{font-size:13px}.contact-page{min-height:auto;padding-block:62px 72px}.contact-page-intro h1{font-size:clamp(48px,12vw,68px)}.contact-page-lead{font-size:16px}.contact-page-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:42px}.contact-method{min-height:220px;padding:21px}.contact-method-value{font-size:19px}.email-contact-method .contact-method-value{font-size:16px}.footer{padding-top:78px}.footer-intro h2{font-size:clamp(44px,11vw,58px)}.footer-intro>p:last-child{font-size:15px}.footer-chat-header{padding-inline:17px}.footer-chat-body{gap:22px;padding:22px 16px 24px}.footer-message-incoming{max-width:94%}.footer-message-link{gap:10px;max-width:100%;padding:11px 12px}.footer-message-link strong{font-size:12px}.footer-bottom{flex-direction:column;gap:6px;margin-top:70px;font-size:11px;display:flex}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.nebula-backdrop{z-index:0;pointer-events:none;background:radial-gradient(70% 58% at 19% 80%,#778d7a4d,#0000 75%),radial-gradient(54% 40% at 79% 24%,#415a7761,#0000 76%),#0d1b2a;position:fixed;inset:0;overflow:hidden}.nebula-backdrop canvas{width:100%;height:100%;display:block}.nebula-backdrop:after{content:"";background:#0d1b2a9e;position:absolute;inset:0}@keyframes route-page-enter{0%{opacity:.72;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes route-progress{0%{opacity:1;transform:scaleX(0)}78%{opacity:.85;transform:scaleX(.92)}to{opacity:0;transform:scaleX(1)}}@media (width<=700px){.skill-group{-webkit-backdrop-filter:blur(22px)saturate(175%);backdrop-filter:blur(22px)saturate(175%)}}@media (width<=900px){.about-page-intro-grid{grid-template-columns:minmax(0,1fr) 220px;gap:28px}.about-page-intro h1{font-size:clamp(48px,6.5vw,68px)}.about-page-lead-grid{grid-template-columns:1fr;gap:14px}.about-photo-placeholder{height:300px}.about-milestone{grid-template-columns:48px minmax(160px,.8fr) minmax(220px,1.4fr)}.about-milestone-detail{grid-column:2/-1}.about-page-education{gap:38px}.about-page-ai{grid-template-columns:.5fr 1.5fr}.about-page-ai>a{grid-column:2}}@media (width<=700px){.about-page{padding-block:62px 72px}.about-page-intro-grid{grid-template-columns:1fr;gap:30px}.about-page-intro h1{font-size:clamp(46px,11vw,68px)}.about-page-lead-grid{grid-template-columns:1fr;gap:16px;margin-top:25px}.about-page-lead-grid p{font-size:16px}.about-photo-placeholder{height:min(110vw,390px)}.about-page-stats{gap:18px 24px;margin-top:34px}.about-page-stats div{gap:8px}.about-page-stats strong{font-size:28px}.about-page-stats span{max-width:110px;font-size:10px}.about-page-work,.about-page-education,.about-page-cta{margin-top:82px}.about-page-section-heading{display:block}.about-page-section-heading h2,.about-page-education h2{font-size:clamp(40px,10vw,56px)}.about-page-section-heading>p{margin-top:18px}.about-milestone{grid-template-columns:36px minmax(0,1fr);gap:10px 14px;padding:22px 0}.about-milestone-number{grid-row:1/span 2}.about-milestone-text,.about-milestone-detail{grid-column:2}.about-milestone-text{font-size:14px}.about-milestone-detail{font-size:11px}.about-page-education{grid-template-columns:1fr;gap:28px;padding-block:34px}.education-list article{grid-template-columns:112px minmax(0,1fr);gap:12px}.education-list article>span{font-size:10px}.education-list h3{font-size:17px}.education-list p{font-size:14px}.about-page-ai{grid-template-columns:1fr;gap:14px;margin-top:48px}.about-page-ai>a{grid-column:auto}.about-page-ai>p{font-size:15px}.about-page-cta{display:block}.about-page-cta h2{font-size:clamp(50px,12vw,68px)}.about-page-cta .button{margin-top:28px}}
