@font-face{font-family:Inter Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/site-assets/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2")}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-weight:300 700;font-display:swap;src:url(/site-assets/space-grotesk-latin-wght-normal.BhU9QXUp.woff2)format("woff2")}:root{--bg:#0b1020;--surface:#111a2c;--raised:#172338;--text:#f5f7fb;--muted:#a8b3c7;--subtle:#7e91ab;--accent:#6ee7c5;--accent-ink:#071e18;--amber:#f3bd76;--line:#28354a;--header:#0b1020f0;--display:"Space Grotesk Variable",sans-serif;--body:"Inter Variable",sans-serif;--radius:20px;color-scheme:dark}:root[data-theme=light]{--bg:#f6f8f7;--surface:#edf2f0;--raised:#fff;--text:#112620;--muted:#4f625b;--subtle:#596f64;--accent:#126b54;--accent-ink:#fff;--amber:#8e5210;--line:#cbd9d2;--header:#f6f8f7f2;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{background:var(--bg);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.65}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button,a,summary,input,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit}button:disabled{cursor:wait;opacity:.65}img,svg{max-width:100%}img{display:block}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.045em;font-weight:500;line-height:1.15}ul{margin:0;padding:0;list-style:none}button{border:0}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:5px}main:focus{outline:none}[hidden]{display:none!important}svg{vertical-align:middle;flex-shrink:0}.container{width:min(1240px,100% - 96px);margin-inline:auto}.section{padding-block:112px}.section-lined{border-top:1px solid var(--line)}.eyebrow,.mono{font-family:var(--body);letter-spacing:.14em;font-size:10px;font-weight:550;line-height:1.6}.eyebrow{color:var(--accent);margin-bottom:22px}.accent{color:var(--accent)}.muted,.muted-heading{color:var(--muted)}h2{font-size:clamp(34px,3.5vw,48px);line-height:1.16}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.js-only{display:none}.js .js-only{display:flex}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:12px 20px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:12px}.button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:12px;min-height:50px;padding:13px 20px;font-size:13px;font-weight:600;transition:background .2s,transform .2s,border-color .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.primary{background:var(--accent);color:var(--accent-ink)}.primary:hover{filter:brightness(1.06)}.secondary{border-color:var(--line);color:var(--text);background:0 0}.secondary:hover{border-color:var(--accent);background:var(--surface)}.text-link{align-items:center;gap:12px;min-height:44px;font-size:13px;font-weight:550;transition:color .2s;display:inline-flex}.text-link:hover{color:var(--accent)}.text-link svg{transition:transform .2s}.text-link:hover svg{transform:translate(3px)}.text-button{color:inherit;background:0 0;align-items:center;gap:8px;min-height:44px;padding:10px 6px;font-size:11px;display:inline-flex}.text-button:hover{color:var(--accent)}.icon-button{min-width:44px;height:44px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:color .2s,background .2s;display:inline-flex}.icon-button:hover{color:var(--accent);background:var(--surface)}.site-header{z-index:40;background:var(--header);border-bottom:1px solid var(--line);backdrop-filter:blur(16px);position:sticky;top:0}.header-inner{align-items:center;gap:24px;height:88px;display:flex}.brand{flex-shrink:0;align-items:center;gap:13px;margin-right:auto;display:flex}.brand-mark{font:600 30px/.9 var(--display);letter-spacing:-.12em;border:1px solid var(--line);border-radius:9px;padding:7px 9px 10px 5px;transform:rotate(-5deg)}.brand-mark>span{color:var(--accent)}.brand-name{font-family:var(--display);letter-spacing:-.02em;font-size:14px;line-height:1.3}.brand-name>span{font:10px/1.5 var(--body);letter-spacing:.02em;color:var(--muted);margin-top:3px;display:block}.desktop-nav{align-items:center;gap:25px;display:flex}.desktop-nav a{color:var(--muted);font-size:12px;line-height:44px;transition:color .2s;position:relative}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--text)}.desktop-nav a[aria-current]:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:0;left:calc(50% - 2px)}.header-actions{align-items:center;gap:14px;display:flex}.header-resume{border:1px solid var(--line);border-radius:7px;align-items:center;gap:12px;min-height:44px;padding:10px 15px;font-size:12px;display:flex}.header-resume:hover{border-color:var(--accent)}.mobile-nav{display:none}.mobile-nav summary{cursor:pointer;justify-content:center;align-items:center;min-width:44px;min-height:44px;list-style:none;display:flex}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{background:var(--bg);border-bottom:1px solid var(--line);padding:16px 32px 24px;position:absolute;top:calc(100% + 1px);left:0;right:0;box-shadow:0 20px 40px #0003}.mobile-nav nav a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 4px;font-size:15px;display:flex}.hero{grid-template-columns:1.03fr 1fr;column-gap:22px;padding-top:70px;display:grid;position:relative}.hero-copy{z-index:2;padding-top:10px;position:relative}.hero .eyebrow{letter-spacing:.18em;align-items:center;gap:9px;margin-bottom:20px;font-size:9px;display:flex}.tiny-cross{font-size:18px;line-height:1}.hero-intro{color:var(--muted);margin-bottom:19px;font-size:14px}.hero h1{letter-spacing:-.065em;margin-bottom:26px;font-size:clamp(48px,5.05vw,73px);font-weight:500;line-height:1.025}.hero h1>span{color:var(--accent)}.hero-role{letter-spacing:.005em;margin-bottom:10px;font-size:13px;line-height:1.6}.hero-role strong{color:var(--accent);font-weight:550}.role-break{display:none}.hero-description{color:var(--muted);max-width:395px;font-size:13px;line-height:1.85}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.stack-inline{color:var(--muted);flex-wrap:wrap;gap:7px 0;margin-top:24px;font-size:10px;display:flex}.stack-inline li+li:before{content:"/";color:var(--line);padding-inline:11px}.hero-art{align-self:center;min-width:0;margin-top:14px;position:relative}.scene-kicker{letter-spacing:.11em;color:var(--muted);align-items:center;gap:8px;padding-inline:18px;font-size:8px;display:flex}.scene-coordinate{color:var(--subtle);margin-left:auto}.status-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px}.scene-stage{aspect-ratio:600/570;isolation:isolate;position:relative}.scene-fallback{width:100%;height:100%;transition:opacity .5s;display:block}.webgl-layer{z-index:2;opacity:0;pointer-events:none;transition:opacity .6s;position:absolute;inset:0}.hero-art.scene-ready .webgl-layer{opacity:1;pointer-events:auto}.hero-art.scene-ready .scene-fallback{opacity:0}.scene-legend{color:var(--muted);justify-content:center;gap:24px;margin-top:-6px;font-size:10px;display:flex}.scene-legend>span{align-items:center;gap:7px;display:flex}.legend-dot{background:#bacbd2;border-radius:50%;width:5px;height:5px;display:inline-block}.legend-dot.mint{background:#6ee7c5}.legend-dot.amber{background:#f3bd76}.scene-toolbar{border-top:1px solid var(--line);min-height:57px;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin:26px 20px 0;font-size:10px}.scene-toolbar #scene-controls{align-items:center;gap:0;display:flex}.scene-toolbar #scene-controls button{font-size:11px}.hero-baseline{color:var(--muted);grid-column:1/-1;align-items:center;gap:24px;margin-top:65px;padding:31px 0;font-size:10px;display:flex}.hero-baseline p,.hero-baseline a{align-items:center;gap:9px;display:flex}.hero-baseline a{min-height:44px;margin-left:auto}.hero-baseline a:hover{color:var(--accent)}.hero-baseline .mono{letter-spacing:.15em;color:var(--subtle);margin-left:auto;font-size:8px}[data-theme=light] .scene-stage{background:#0b1020;border-radius:50%;margin-block:12px}.section-heading{justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:52px;display:flex}.section-summary{color:var(--muted);max-width:335px;padding-bottom:4px;font-size:12px;line-height:1.9}.experience-row{border-top:1px solid var(--line);grid-template-columns:1fr 1.6fr;gap:64px;padding:42px 0;display:grid}.experience-row:last-child{padding-bottom:0}.experience-meta{align-items:flex-start;gap:19px;display:flex}.company-mark{border:1px solid var(--line);width:46px;height:46px;font:500 26px/1 var(--display);color:var(--amber);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.company-mark.oracle{color:#f59683}.experience-meta h3{letter-spacing:-.04em;max-width:230px;font-size:20px;line-height:1.3}.experience-meta p{color:var(--muted);margin-top:5px;font-size:11px}.experience-meta .tenure-label{text-transform:uppercase;letter-spacing:.13em;color:var(--subtle);margin-top:22px;font-size:8px;display:block}.experience-meta .date{margin-top:3px;font-size:11px}.role-heading{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.role-heading h4{letter-spacing:-.025em;font-size:18px;line-height:1.4}.small-badge{border:1px solid var(--line);color:var(--accent);border-radius:30px;padding:3px 9px;font-size:9px}.job-intro{color:var(--muted);margin-top:8px;font-size:12px}.contribution-list{gap:10px;max-width:650px;margin-top:21px;display:grid}.contribution-list li{color:var(--muted);padding-left:15px;font-size:12px;line-height:1.9;position:relative}.contribution-list li:before{content:"";background:var(--accent);border-radius:50%;width:3px;height:3px;position:absolute;top:.8em;left:0}.tags{flex-wrap:wrap;gap:7px;margin-top:20px;display:flex}.tags li{border:1px solid var(--line);color:var(--muted);border-radius:5px;padding:4px 9px;font-size:10px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.project-card{min-width:0}.project-visual{border:1px solid var(--line);border-radius:var(--radius);background:#112a2c;justify-content:center;align-items:center;height:290px;transition:border-color .2s,transform .25s;display:flex;position:relative;overflow:hidden}.project-visual:before{content:"";background-image:linear-gradient(#97d8c608 1px,#0000 1px),linear-gradient(90deg,#97d8c608 1px,#0000 1px);background-size:26px 26px;position:absolute;inset:0}.project-amber .project-visual{background:#30291f}.project-blue .project-visual{background:#152941}.project-number{color:#bdd3ce;letter-spacing:.08em;font-size:9px;position:absolute;top:18px;left:20px}.screenshot-frame{z-index:1;background:#172130;border:1px solid #546477;transition:transform .35s;position:relative;box-shadow:0 18px 45px #0006}.browser-frame{border-radius:7px;width:86%;overflow:hidden;transform:rotate(-5deg)translateY(6px)}.browser-frame img{width:100%;height:auto}.browser-top{color:#c0ccd5;background:#24303d;align-items:center;gap:3px;height:20px;padding-inline:7px;font-size:6px;display:flex}.browser-top>i{background:#79949a;border-radius:50%;width:3px;height:3px}.browser-top>span{margin:auto}.phone-frame{border:5px solid #101722;border-radius:19px;width:132px;max-height:245px;overflow:hidden;transform:rotate(8deg)translateY(8px);box-shadow:0 25px 45px #0008}.phone-frame img{width:100%;height:auto}.project-blue .browser-frame{transform:rotate(5deg)translateY(6px)}.project-visual:hover .browser-frame{transform:rotate(-2deg)translateY(-2px)}.project-visual:hover .phone-frame{transform:rotate(3deg)translateY(0)}.project-blue .project-visual:hover .browser-frame{transform:rotate(2deg)translateY(-2px)}.project-visual-arrow{color:#d9eee7;z-index:2;border:1px solid #819c9755;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;bottom:16px;right:17px}.project-content{padding:22px 2px 0}.project-type{color:var(--accent);letter-spacing:.025em;justify-content:space-between;margin-bottom:10px;font-size:9px;display:flex}.project-type span{color:var(--subtle)}.project-content h3 a{letter-spacing:-.04em;justify-content:space-between;align-items:center;gap:10px;min-height:36px;font-size:24px;display:flex}.project-content>p:not(.project-type){color:var(--muted);margin-top:11px;font-size:12px}.project-content .text-link{margin-top:14px;font-size:11px}.skills-section{background:var(--surface);border-block:1px solid var(--line)}.skills-grid{grid-template-columns:1.25fr 1fr 1fr;gap:20px;display:grid}.skill-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);min-width:0;padding:28px}.skill-top{color:var(--accent);justify-content:space-between;align-items:center;gap:12px;margin-bottom:35px;display:flex}.skill-top .mono{text-transform:uppercase;color:var(--muted);font-size:8px}.skill-card h3{margin-bottom:20px;font-size:22px}.skill-items{flex-wrap:wrap;gap:9px 6px;display:flex}.skill-items li{color:var(--muted);background:var(--surface);border-radius:5px;padding:5px 9px;font-size:11px;line-height:1.7}.additional-skills{margin-top:27px}.additional-skills>summary,.earlier-education>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:15px;min-height:56px;padding:19px 0;font-size:12px;list-style:none;display:flex}.additional-skills>summary::-webkit-details-marker,.earlier-education>summary::-webkit-details-marker{display:none}.detail-toggle{color:var(--muted);align-items:center;gap:10px;font-size:10px;display:flex}.when-open{display:none}details[open] .when-open{display:inline}details[open] .when-closed{display:none}details[open]>summary svg{transform:rotate(45deg)}.additional-grid{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:28px;padding-top:24px;display:grid}.additional-grid h3{font-size:16px}.additional-grid .tags{margin-top:13px}.about-grid{grid-template-columns:.85fr 1.15fr;align-items:center;gap:100px;display:grid}.about-art{width:100%;max-width:400px;transform:rotate(-3deg)}.monogram-card{aspect-ratio:1/1.05;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;padding:30px;display:flex;position:relative;overflow:hidden}.monogram-card:after{content:"";border:1px solid var(--line);pointer-events:none;border-radius:50%;width:480px;height:480px;position:absolute;inset:40px -130px -150px 50px}.monogram-card>.mono{color:var(--muted);z-index:1;font-size:8px;line-height:1.8}.large-monogram{font:500 clamp(130px,17vw,230px)/1 var(--display);letter-spacing:-.12em;color:var(--text);margin:auto;position:relative;left:-12px}.large-monogram>span{color:var(--accent)}.monogram-bottom{letter-spacing:.16em;color:var(--muted);z-index:1;justify-content:space-between;align-items:center;font-size:8px;display:flex}.monogram-bottom svg{color:var(--accent)}.art-caption{text-align:center;color:var(--subtle);letter-spacing:.035em;margin-top:22px;font-size:10px}.about-copy h2{margin-bottom:24px}.about-copy>.lead{color:var(--text);font-size:15px;line-height:1.9}.about-copy>p:not(.eyebrow):not(.lead){color:var(--muted);margin-top:18px;font-size:12px;line-height:1.9}.about-more{color:var(--muted);margin-top:15px;font-size:12px}.about-more summary{cursor:pointer;align-items:center;gap:14px;min-height:44px;list-style:none;display:inline-flex}.about-more p{padding-block:10px 14px;line-height:1.9}.about-copy .text-link{color:var(--accent);margin-top:15px}.recognition-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:30px;margin-top:85px;padding-top:34px;display:flex}.recognition-row .eyebrow{color:var(--muted);flex-shrink:0;margin:0;font-size:9px}.recognition-item{align-items:center;gap:12px;max-width:245px;font-size:11px;display:flex}.recognition-item svg{color:var(--amber)}.education-grid{grid-template-columns:1fr 1fr;gap:80px;display:grid}.degree{border-left:2px solid var(--accent);padding-left:28px}.degree>.mono{color:var(--muted);font-size:10px}.degree h3{margin-top:15px;font-size:32px}.degree .degree-subject{color:var(--text);margin-top:4px;font-size:18px}.degree p{color:var(--muted);margin-top:7px;font-size:12px}.earlier-education{border-top:1px solid var(--line);margin-top:28px}.earlier-education summary{color:var(--muted);font-size:11px}.earlier-item{border-top:1px solid var(--line);gap:24px;padding:20px 0;display:flex}.earlier-item .mono{color:var(--accent);font-size:10px}.earlier-item h4{font-size:16px}.earlier-item p{color:var(--muted);margin-top:5px;font-size:11px}.contact-section{background:var(--surface);border-top:1px solid var(--line);padding:105px 0}.contact-grid{grid-template-columns:1.1fr 1fr;align-items:center;gap:100px;display:grid}.contact-copy h2{margin-bottom:24px;font-size:clamp(40px,4.25vw,59px);line-height:1.1}.contact-copy h2>span{color:var(--accent)}.contact-copy>p:not(.eyebrow):not(.copy-status):not(.contact-location){color:var(--muted);max-width:340px;font-size:12px;line-height:1.9}.email-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:20px;display:flex}.contact-email{font-size:clamp(14px,1.5vw,20px);font-family:var(--display);letter-spacing:-.035em;overflow-wrap:anywhere;align-items:center;min-height:44px;display:flex}.contact-email:hover{color:var(--accent)}.copy-status{min-height:20px;color:var(--accent);font-size:10px}.contact-links{flex-wrap:wrap;gap:16px;margin-top:8px;display:flex}.contact-links a{min-height:44px;color:var(--muted);align-items:center;gap:6px;font-size:10px;display:inline-flex}.contact-links a:hover{color:var(--accent)}.contact-location{color:var(--muted);align-items:center;gap:8px;margin-top:13px;font-size:10px;display:flex}.contact-form-wrap{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:32px}.contact-form-wrap h3{margin-bottom:6px;font-size:23px}.contact-form-wrap form>p:first-of-type{color:var(--muted);margin-bottom:26px;font-size:11px}.contact-form-wrap label{color:var(--text);margin-bottom:17px;font-size:10px;font-weight:550;display:block}.field-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.field-row>label{min-width:0}.contact-form-wrap input,.contact-form-wrap textarea{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);resize:vertical;border-radius:7px;margin-top:8px;padding:11px 12px;font-size:11px;display:block}.contact-form-wrap input::placeholder,.contact-form-wrap textarea::placeholder{color:var(--subtle);opacity:1}.contact-form-wrap textarea{min-height:118px}.optional{color:var(--muted);font-weight:400}.contact-form-wrap .button{justify-content:space-between;width:100%;font-size:12px}.form-note{color:var(--muted);margin-top:12px;font-size:9px;line-height:1.7}#form-status{color:var(--accent);font-size:10px;line-height:1.8}#form-status:not(:empty){margin-top:12px}.site-footer{align-items:center;gap:30px;padding-block:32px;display:flex}.footer-signature{font-family:var(--display);letter-spacing:-.04em;font-size:19px;font-weight:500}.site-footer>p{color:var(--muted);margin-right:auto;font-size:9px}.site-footer>a:not(.footer-signature){color:var(--muted);align-items:center;gap:8px;min-height:44px;font-size:10px;display:flex}.site-footer>a:hover{color:var(--accent)}.detail-page{padding-block:50px 105px}.back-link{color:var(--muted);align-items:center;gap:9px;min-height:44px;font-size:11px;display:inline-flex}.back-link svg{transform:rotate(180deg)}.detail-header{padding-block:40px}.detail-header h1{max-width:850px;margin-bottom:22px;font-size:clamp(44px,7vw,88px)}.detail-header>.lead{max-width:680px;color:var(--muted);font-size:18px;line-height:1.7}.detail-facts{gap:55px;margin-top:34px;display:flex}.detail-facts dt{text-transform:uppercase;letter-spacing:.1em;color:var(--subtle);font-size:9px}.detail-facts dd{margin:5px 0 0;font-size:12px}.detail-image{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);text-align:center;margin:0;padding:40px;position:relative}.detail-image>img{border-radius:4px;width:auto;max-width:100%;height:auto;max-height:670px;margin:auto;box-shadow:0 20px 40px #0003}.detail-image figcaption{color:var(--muted);max-width:690px;margin:25px auto 0;font-size:11px}.detail-image .text-link{margin-top:12px;font-size:11px}.detail-copy{grid-template-columns:1fr 1.2fr;gap:100px;margin-top:70px;display:grid}.detail-copy h2{font-size:32px}.detail-copy p{color:var(--muted);font-size:14px;line-height:1.9}.detail-copy h3{margin-block:35px 20px;font-size:23px}.detail-copy .contribution-list li{font-size:13px}.project-next{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;margin-top:70px;padding-top:25px;display:flex}.project-next a{font-size:16px}.gallery-dialog{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:14px;max-width:min(1100px,95vw);max-height:95vh;padding:24px}.gallery-dialog::backdrop{backdrop-filter:blur(8px);background:#040812e8}.gallery-dialog[open]{flex-direction:column;display:flex}.gallery-dialog .dialog-top{flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;margin-bottom:12px;display:flex}.gallery-dialog h2{font-size:18px}.gallery-dialog .dialog-image{min-height:0;overflow:auto}.gallery-dialog img{object-fit:contain;width:auto;max-height:75vh;margin:auto}.gallery-dialog p{color:var(--muted);margin-top:14px;font-size:11px}.resume-page{max-width:900px}.resume-page .detail-header h1{margin-bottom:12px;font-size:64px}.resume-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.resume-section{border-top:1px solid var(--line);margin-top:48px;padding-top:28px}.resume-section h2{margin-bottom:25px;font-size:27px}.resume-job+.resume-job{margin-top:32px}.resume-job h3{font-size:20px}.resume-job>p{color:var(--muted);margin-top:9px;font-size:13px}.resume-contact{color:var(--muted);flex-wrap:wrap;gap:10px 24px;margin-top:18px;font-size:12px;display:flex}.resume-skill{margin-top:18px}.resume-skill h3{font-size:17px}.resume-skill p{color:var(--muted);margin-top:8px;font-size:12px}.not-found{min-height:65vh;padding-block:100px}.not-found h1{margin-bottom:22px;font-size:70px}.not-found p{color:var(--muted);margin-bottom:25px}@media (prefers-reduced-motion:no-preference){.hero-copy{animation:.55s both arrive}.hero-art{animation:.8s both arrive}@keyframes arrive{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}@media (width>=1600px){.hero{padding-top:90px}.hero h1{font-size:78px}.hero-baseline{margin-top:80px}}@media (width<=1100px){.container{width:calc(100% - 64px)}.desktop-nav{gap:18px}.brand-name{display:none}.header-inner{gap:18px}.hero{column-gap:10px;padding-top:48px}.hero h1{font-size:60px}.hero-description{font-size:12px}.scene-kicker{padding:0;font-size:6px}.scene-coordinate{display:none}.scene-toolbar{margin-inline:5px}.hero-baseline{margin-top:42px}.section{padding-block:88px}.experience-row{grid-template-columns:1fr 1.5fr;gap:35px}.project-grid{gap:18px}.project-visual{height:255px}.project-content h3 a{font-size:21px}.phone-frame{width:110px;max-height:215px}.skill-card{padding:23px}.skill-card h3{font-size:20px}.about-grid,.contact-grid{gap:55px}.contact-form-wrap{padding:25px}.recognition-row{gap:20px}.recognition-item{font-size:10px}.education-grid{gap:45px}.hero .button{padding-inline:15px;font-size:11px}.contact-copy h2{font-size:44px}.site-footer{gap:24px}}@media (width<=850px){.desktop-nav{display:none}.mobile-nav{display:block}.header-inner{height:76px}.brand-name{display:block}.container{width:calc(100% - 48px)}.hero{grid-template-columns:1fr 1fr;gap:15px}.hero h1{font-size:46px}.hero .eyebrow{letter-spacing:.1em;font-size:8px}.hero-intro{font-size:12px}.hero-role{font-size:11px}.role-break{display:block}.hero-actions{gap:8px}.hero .button{gap:7px;min-height:46px;padding-inline:12px;font-size:10px}.hero-description{font-size:11px}.stack-inline{font-size:9px}.stack-inline li+li:before{padding-inline:7px}.scene-legend{gap:12px;font-size:8px}.scene-toolbar{flex-wrap:wrap;gap:0;padding-block:6px}.scene-toolbar>span,.scene-toolbar .text-button{font-size:9px}.scene-kicker{letter-spacing:.05em;font-size:7px}.hero-baseline .mono{display:none}.hero-baseline{margin-top:25px;font-size:9px}.section-heading{gap:25px}.section-summary{max-width:260px;font-size:11px}.section{padding-block:76px}.experience-row{grid-template-columns:.9fr 1.4fr;gap:28px}.experience-meta{gap:12px}.company-mark{width:36px;height:36px;font-size:22px}.experience-meta h3{font-size:18px}.role-heading h4{font-size:16px}.project-grid{gap:18px}.project-visual{height:220px}.phone-frame{width:94px;max-height:180px}.project-content h3 a{font-size:19px}.project-content h3 svg{width:18px}.project-type{flex-wrap:wrap;gap:6px;font-size:8px}.project-content>p:not(.project-type){font-size:11px}.project-content .text-link{font-size:10px}.skill-card{padding:20px}.skill-card h3{min-height:42px;font-size:18px}.skill-top{margin-bottom:23px}.skill-items li{padding:4px 6px;font-size:10px}.about-grid{grid-template-columns:.85fr 1.15fr;gap:45px}.monogram-card{padding:23px}.large-monogram{font-size:150px}.about-copy>.lead{font-size:13px}.recognition-row{flex-wrap:wrap;justify-content:flex-start;gap:25px;margin-top:55px}.recognition-row .eyebrow{width:100%}.recognition-item{max-width:205px}.education-grid{grid-template-columns:.85fr 1.15fr;gap:35px}.education-grid h2{font-size:32px}.contact-grid{grid-template-columns:1fr 1fr;gap:30px}.contact-copy h2{font-size:38px}.contact-form-wrap{padding:23px}.field-row{grid-template-columns:1fr;gap:0}.contact-email{font-size:16px}.contact-links{gap:10px}.site-footer>p{display:none}.site-footer .footer-signature{margin-right:auto}.detail-copy{gap:50px}.detail-facts{gap:35px}}@media (width<=640px){.container{width:calc(100% - 40px)}.header-inner{gap:10px;height:72px}.brand-mark{font-size:27px}.brand-name{font-size:12px}.brand-name>span{font-size:8px}.brand{gap:10px}.header-actions{gap:3px}.header-resume{gap:6px;padding:8px 10px;font-size:10px}.theme-toggle{min-width:36px}.theme-toggle svg{width:18px}.mobile-nav summary{min-width:36px}.hero{flex-direction:column;gap:0;padding-top:41px;display:flex}.hero-copy{padding-top:0}.hero .eyebrow{letter-spacing:.14em;margin-bottom:23px;font-size:8px}.hero-intro{margin-bottom:20px;font-size:13px}.hero h1{letter-spacing:-.06em;margin-bottom:23px;font-size:clamp(48px,11.2vw,68px)}.hero-role{font-size:12px;line-height:1.8}.role-break{display:none}.hero-description{max-width:340px;font-size:12px;line-height:1.9}.hero .button{gap:10px;min-height:50px;padding-inline:18px;font-size:12px}.hero-actions{gap:10px;margin-top:24px}.stack-inline{margin-top:22px;font-size:9px}.hero-art{width:100%;max-width:440px;margin:45px auto 0}.scene-kicker{letter-spacing:.07em;padding-inline:8px;font-size:7px}.scene-coordinate{display:inline}.scene-legend{gap:24px;font-size:9px}.scene-toolbar{flex-wrap:nowrap;margin-top:22px}.scene-toolbar>span{font-size:9px}.scene-toolbar .text-button{font-size:10px}.hero-baseline{gap:8px;width:100%;margin-top:23px;padding-block:16px 27px;font-size:8px}.hero-baseline p,.hero-baseline a{gap:5px}.section{padding-block:65px}.section-heading{margin-bottom:30px;display:block}.eyebrow{margin-bottom:17px;font-size:8px}h2{font-size:34px}.section-summary{max-width:none;margin-top:20px;font-size:11px}.section-summary br{display:none}.experience-row{grid-template-columns:1fr;gap:26px;padding-block:29px}.experience-meta{gap:15px;position:relative}.experience-meta h3{max-width:none;font-size:20px}.company-mark{width:43px;height:43px;font-size:25px}.experience-meta .tenure-label{margin-top:12px}.experience-meta .date{font-size:10px}.experience-body{padding-left:0}.role-heading{gap:10px}.role-heading h4{font-size:17px}.contribution-list li,.job-intro{font-size:11px}.project-grid{grid-template-columns:1fr;gap:35px}.project-visual{height:285px}.browser-frame{width:82%;max-width:330px}.phone-frame{width:125px;max-height:239px}.project-content{padding-top:18px}.project-content h3 a{font-size:25px}.project-type{font-size:9px}.project-content>p:not(.project-type){font-size:12px}.project-content .text-link{margin-top:7px;font-size:11px}.skills-grid{grid-template-columns:1fr;gap:14px}.skill-card{padding:25px}.skill-card h3{min-height:auto;font-size:22px}.skill-top{margin-bottom:20px}.skill-top .mono{font-size:8px}.skill-items li{padding:5px 8px;font-size:11px}.additional-skills>summary{font-size:11px}.detail-toggle{font-size:9px}.detail-toggle .when-closed,.detail-toggle .when-open{display:none}.additional-grid{grid-template-columns:1fr;gap:24px}.about-grid{flex-direction:column;align-items:stretch;gap:35px;display:flex}.about-art{width:75%;max-width:260px;margin:0 auto 10px}.monogram-card{padding:22px}.monogram-card>.mono{font-size:7px}.large-monogram{font-size:150px}.monogram-bottom{font-size:7px}.art-caption{margin-top:16px;font-size:9px}.about-copy>.lead{font-size:14px}.about-copy>p:not(.eyebrow):not(.lead){font-size:12px}.recognition-row{gap:20px;margin-top:36px;padding-top:27px}.recognition-item{width:100%;max-width:none;font-size:11px}.education-grid{display:block}.education-content{margin-top:30px}.education-grid h2{font-size:33px}.degree{padding-left:23px}.degree .degree-subject{font-size:17px}.degree h3{font-size:28px}.contact-section{padding-block:65px}.contact-grid{grid-template-columns:1fr;gap:38px}.contact-copy h2{font-size:44px}.contact-copy>p:not(.eyebrow):not(.copy-status):not(.contact-location){max-width:330px;font-size:12px}.contact-email{font-size:19px}.contact-links{gap:18px}.contact-form-wrap{padding:25px}.field-row{grid-template-columns:1fr 1fr;gap:13px}.contact-form-wrap h3{font-size:24px}.contact-form-wrap input,.contact-form-wrap textarea{font-size:12px}.site-footer{flex-wrap:wrap;gap:9px 20px;padding-block:23px}.site-footer .footer-signature{width:100%}.site-footer>a:not(.footer-signature){font-size:9px}.detail-page{padding-block:26px 60px}.detail-header{padding-block:27px}.detail-header h1{font-size:45px}.detail-header>.lead{font-size:15px}.detail-facts{flex-wrap:wrap;gap:20px}.detail-facts dd{font-size:11px}.detail-image{border-radius:14px;padding:20px 14px}.detail-image figcaption{font-size:10px}.detail-copy{grid-template-columns:1fr;gap:24px;margin-top:40px}.detail-copy h2{font-size:30px}.detail-copy p{font-size:13px}.project-next{margin-top:45px}.project-next a{font-size:13px}.gallery-dialog{max-width:96vw;padding:15px}.gallery-dialog h2{font-size:16px}.resume-page .detail-header h1{font-size:48px}}@media (width<=370px){.container{width:calc(100% - 32px)}.brand-name{display:none}.hero h1{font-size:45px}.hero .button{padding-inline:14px;font-size:11px}.field-row{grid-template-columns:1fr;gap:0}.contact-email{font-size:17px}.scene-coordinate{display:none}.contact-copy h2{font-size:38px}.hero-baseline{font-size:7px}.contact-form-wrap{padding:21px}.hero-art{margin-top:35px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.project-visual:hover .screenshot-frame{transform:none}}@media print{.site-header,.site-footer,.resume-actions,.back-link,.hero-art,.js-only{display:none!important}body{color:#111;background:#fff;font-size:11pt}.container{width:100%;max-width:none}a{color:#111}.detail-page,.resume-page .detail-header{padding:0}.resume-section{break-inside:avoid;margin-top:20px;padding-top:16px}h1,h2,h3,p,li,.muted,.resume-job>p,.contribution-list li,.resume-skill p,.resume-contact{color:#111!important}.tags li{color:#111;border:1px solid #aaa}.resume-page .detail-header h1{font-size:36pt}.resume-section h2{margin-bottom:12px;font-size:18pt}.resume-job+.resume-job{margin-top:20px}.resume-skill{margin-top:10px}}
