@charset "UTF-8";
:root{--paper:#f6f7f2;--ink:#1c2421;--muted:#6e746e;--line:#dfe2d9;--blue:#2858eb;--lime:#dbebbf;--font:Inter,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default}img,svg{max-width:100%}button[hidden],a[hidden],[hidden]{display:none!important}
::selection{background:var(--lime);color:var(--ink)}:focus-visible{outline:3px solid var(--blue);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}button{border-radius:0}button:focus:not(:focus-visible){outline:none}
.container{width:min(1200px,calc(100% - 112px));margin-inline:auto}.blue{color:var(--blue)}.eyebrow{display:flex;align-items:center;gap:10px;font:10px/1.5 var(--mono);letter-spacing:1.8px;font-weight:500}.small-label{font:10px/1.5 var(--mono);letter-spacing:1.7px;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;flex-shrink:0;background:var(--blue);border-radius:50%}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden}
.skip-link{position:fixed;top:-100px;left:24px;padding:10px 20px;background:var(--ink);color:#fff;z-index:100}.skip-link:focus{top:12px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(246,247,242,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.header-inner{height:87px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:28px;letter-spacing:-1.4px;font-weight:750;line-height:1.3}.wordmark .blue{margin-left:1px}.site-header nav{display:flex;align-items:center;gap:37px;font-size:12px;font-weight:500}.site-header nav>a{transition:color .2s}.site-header nav>a:hover{color:var(--blue)}.nav-contact{display:flex;gap:32px;align-items:center;margin-left:10px}.nav-contact span{font-size:20px}.menu-toggle{display:none}
.hero{position:relative;display:grid;grid-template-columns:1.15fr 1fr;column-gap:70px;align-items:center;padding-top:73px}.hero-copy{min-width:0;padding-block:15px 23px}.hero-copy .eyebrow{margin-bottom:27px}.hero h1{overflow-wrap:anywhere;font-size:clamp(58px,6.3vw,87px);line-height:1.14;letter-spacing:-5.5px;font-weight:650}.hero-name [data-name]{font-weight:750;letter-spacing:-4px}.hero-tagline{font-size:21px;margin-top:27px;letter-spacing:.1px;font-weight:500}.hero-description{max-width:340px;color:var(--muted);font-size:13px;line-height:1.95;margin-top:13px}.hero-actions{display:flex;align-items:center;gap:29px;margin-top:31px}.button{display:inline-flex;align-items:center;justify-content:center;gap:31px;min-height:49px;padding:12px 21px;font-size:12px;line-height:1.6;font-weight:500;border:1px solid transparent;transition:background .2s,color .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button span{font-size:20px;line-height:1}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:var(--blue)}.text-link{display:inline-flex;align-items:center;gap:17px;font-size:12px;line-height:1.8}.text-link span{font-size:19px}.text-link:hover{color:var(--blue)}.button-outline{border-color:var(--line);background:transparent}.button-outline:hover{border-color:var(--ink);background:#fff}.button-light{background:var(--paper);color:var(--ink)}
.hero-art{align-self:stretch;position:relative;min-height:421px;overflow:hidden;background:#e7eada;border:1px solid #d5dbc7}.art-topline{position:absolute;left:23px;right:23px;top:21px;display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:1px;z-index:2}.art-grid{position:absolute;inset:0;background-image:linear-gradient(#b9c3ac44 1px,transparent 1px),linear-gradient(90deg,#b9c3ac44 1px,transparent 1px);background-size:42px 42px}.art-letter{position:absolute;inset:38px 0 50px;display:grid;place-items:center;font:italic 310px/.8 Georgia,serif;color:var(--blue);transform:rotate(-10deg);z-index:1;text-shadow:9px 9px 0 #d3dbbc}.art-orbit{position:absolute;left:50%;top:48%;width:290px;height:290px;border:1px solid #aab49a;border-radius:50%;transform:translate(-50%,-50%)}.orbit-two{width:360px;height:180px;transform:translate(-50%,-50%) rotate(-39deg)}.art-star{position:absolute;right:36px;top:68px;font:80px/1 Georgia,serif;color:var(--ink);z-index:2}.art-coordinate{position:absolute;left:17px;top:50%;font:8px var(--mono);writing-mode:vertical-rl;letter-spacing:2px}.art-label{position:absolute;bottom:93px;left:32px;z-index:3;background:#f6f7f2ed;border:1px solid #c9cfbe;box-shadow:4px 4px 0 #c0c9ad;display:flex;align-items:center;gap:8px;font-size:10px;padding:8px 12px;transform:rotate(-5deg)}.art-caption{position:absolute;bottom:19px;left:23px;right:23px;display:flex;align-items:end;justify-content:space-between;font:9px/1.5 var(--mono);letter-spacing:1px;z-index:2}.art-caption>span:last-child{font:36px/1 var(--font)}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin-top:54px;padding:0 0 24px;color:var(--muted);font:9px var(--mono);letter-spacing:1px}.hero-bottom a{font:11px var(--font);letter-spacing:0;display:flex;gap:16px}
.section{padding-top:83px;padding-bottom:81px;scroll-margin-top:10px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:31px}.section-heading .eyebrow{margin-bottom:16px}.section h2{font-size:37px;line-height:1.35;letter-spacing:-1.4px}.section-note{font-size:12px;line-height:1.9;color:var(--muted);padding-bottom:4px}.work-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.filters{display:flex;gap:7px;flex-wrap:wrap}.filter{padding:7px 14px;background:none;border:1px solid transparent;font-size:11px;color:var(--muted);border-radius:2px;transition:background .2s,color .2s}.filter:hover{background:#e9ece3;color:var(--ink)}.filter.active{background:var(--ink);color:#fff}.template-note{font-size:10px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.project-card{min-width:0}.project-open{display:block;position:relative;width:100%;padding:0;border:0;background:transparent;text-align:left;overflow:hidden}.project-art{position:relative;aspect-ratio:1.12;overflow:hidden;display:grid;place-items:center;transition:transform .45s}.project-open:hover .project-art{transform:scale(1.035)}.project-open-mark{position:absolute;right:16px;bottom:17px;display:grid;place-items:center;background:#fff;width:32px;height:32px;border-radius:50%;font-size:18px;box-shadow:0 2px 7px #00000007;transition:transform .2s}.project-open:hover .project-open-mark{transform:rotate(45deg)}.project-example{position:absolute;left:14px;top:14px;font-size:9px;padding:2px 7px;background:#ffffffd9;color:#525b50;border:1px solid #ffffff70}.project-meta{display:flex;align-items:center;justify-content:space-between;margin-top:19px;margin-bottom:7px;font:10px var(--mono);color:var(--muted)}.project-category{font-family:var(--font);font-size:10px}.project-card h3{font-size:18px;letter-spacing:-.3px;line-height:1.6}.project-title-button{padding:0;border:0;background:none;text-align:left;font:inherit;letter-spacing:inherit}.project-title-button:hover{color:var(--blue)}.project-subtitle{color:var(--muted);font-size:11px;margin-top:5px}.empty-projects{grid-column:1/-1;padding:40px;background:#ecefe6;color:var(--muted);text-align:center}.no-script-note{padding:30px;background:#e9ece3}
/* Small original illustrations; all numbers below belong to examples. */
.art-dashboard{background:#dce7f1}.mock-dashboard{display:flex;width:80%;height:64%;background:#fdfefe;box-shadow:0 12px 22px #344d731b;transform:perspective(700px) rotateY(-8deg) rotateX(7deg) rotate(-6deg);border-radius:5px;overflow:hidden}.mock-side{width:15%;border-right:1px solid #edf0f6;padding:10px 8px}.mock-side b{color:var(--blue);font-size:18px;line-height:1.1}.mock-side i{display:block;height:4px;border-radius:2px;background:#dfe5ec;margin-top:15px}.mock-side i:nth-of-type(2){background:#6592ef}.mock-main{padding:13px;width:85%}.mock-title{display:flex;justify-content:space-between;font-size:10px;font-weight:650}.mock-title span{color:#9da4b0;font-size:6px}.mock-stats{display:flex;gap:8px;margin-top:12px}.mock-stats>div{padding:7px;background:#f1f4fa;flex:1;border:1px solid #e8edf5}.mock-stats small{font-size:5px;color:#7d8797;display:block}.mock-stats strong{display:block;font-size:14px;font-weight:650;margin-top:2px}.mock-chart{display:flex;align-items:end;justify-content:space-between;gap:5px;height:56px;padding-top:10px;border-bottom:1px solid #e3e8ee;margin-top:8px;background:repeating-linear-gradient(0deg,transparent 0 17px,#eaf0f5 17px 18px)}.mock-chart i{display:block;background:#426bea;flex:1;border-radius:2px 2px 0 0;height:30%}.mock-chart i:nth-child(2n){height:50%}.mock-chart i:nth-child(3n){height:65%;background:#9cb3f1}.mock-chart i:nth-child(4n){height:45%}.mock-chart i:nth-child(5n){height:85%}.mock-chart i:last-child{height:96%}.mock-lines i{display:block;width:90%;height:4px;background:#edf0f5;margin-top:9px}.mock-lines i:last-child{width:64%}
.art-focus{background:#e7e9de}.mock-focus{width:72%;background:#fbfcf7;padding:23px 19px 13px;transform:rotate(5deg);box-shadow:8px 9px 0 #cbd0bd;border:1px solid #d3d8c7}.focus-label{display:block;font:7px var(--mono);letter-spacing:1.8px;color:#78816a}.mock-focus>strong{font:italic 25px/1.4 Georgia,serif;display:block;margin:6px 0 18px;letter-spacing:-1.1px}.focus-task{display:flex;align-items:center;gap:7px;font-size:8px;border-top:1px solid #e9ebdf;padding:10px 0;color:#636c5c}.focus-task>span{width:11px;height:11px;border:1px solid #b7c0a7;border-radius:3px;line-height:9px;text-align:center;font-size:8px;flex-shrink:0}.focus-task.done{text-decoration:line-through;color:#99a18e}.focus-task.done>span{background:#dceabf;color:#546a36}.focus-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font:6px var(--mono);letter-spacing:.7px;color:#7d856e}.focus-bottom>b{background:#dae7bc;color:#536236;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:400}.focus-asterisk{position:absolute;color:#465434;left:20px;bottom:19px;font:61px/1 Georgia,serif;transform:rotate(13deg)}
.art-form{background:#dddfea}.form-poster{background:#fb4e2e;width:64%;aspect-ratio:.8;padding:13px;color:#252521;box-shadow:7px 8px 0 #b7b6c9;transform:rotate(-7deg);display:flex;flex-direction:column;justify-content:space-between}.poster-header{display:flex;justify-content:space-between;align-items:start;font-size:14px;line-height:1.03;font-weight:850;letter-spacing:-.5px}.poster-header>span:last-child{font:6px var(--mono);letter-spacing:.3px;padding-top:2px}.poster-shapes{display:grid;grid-template-columns:1fr 1fr;aspect-ratio:1;width:86%;margin:auto;gap:2px}.poster-shapes i{display:block;background:#f7ecd2}.poster-shapes i:first-child{border-radius:50%}.poster-shapes i:nth-child(2){border-radius:0 100% 0 0}.poster-shapes i:nth-child(3){border-radius:0 0 0 100%;background:#292d2b}.poster-shapes i:nth-child(4){border-radius:50%;background:#292d2b}.poster-footer{display:flex;justify-content:space-between;align-items:end;font:5px/1.4 var(--mono);letter-spacing:.5px}.poster-footer>span:last-child{font:25px/1 var(--font)}
.about-section{background:#ecefe5;border-block:1px solid #e2e6d9}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.about-grid .eyebrow{margin-bottom:21px}.about-grid h2{font-size:42px;line-height:1.5;letter-spacing:-2px}.about-signature{display:flex;align-items:center;gap:25px;font:italic 31px Georgia,serif;margin-top:35px;color:#7a866c;transform:rotate(-5deg);transform-origin:left}.about-signature span{color:var(--blue);font:44px var(--font)}.about-copy{padding-top:27px}.large-copy{font-size:21px;line-height:1.6;letter-spacing:-.5px;margin-bottom:21px}.about-copy>p:not(.large-copy){color:var(--muted);font-size:13px;line-height:2.2;max-width:450px}.about-footnote{border-top:1px solid #d4dacb;margin-top:28px;padding-top:21px;margin-bottom:25px}.about-footnote p{font-size:12px;margin-top:8px;color:#626e58}
.resume-layout{display:grid;grid-template-columns:.65fr 1.8fr;gap:74px;margin-top:39px;border-top:1px solid var(--line)}.resume-intro{padding-top:29px}.resume-intro>p{font-size:19px;line-height:1.8;letter-spacing:-.5px;margin-top:15px}.resume-note{display:block;font-size:10px;color:var(--muted);margin-top:22px}.experience{display:grid;grid-template-columns:88px 1fr 20px;gap:25px;align-items:start;padding:31px 0;border-bottom:1px solid var(--line)}.experience-date{color:var(--muted);font-size:11px;padding-top:4px}.experience h3{font-size:17px;font-weight:550}.experience p{color:var(--muted);font-size:12px;margin-top:8px;line-height:1.9}.experience-icon{font-size:22px;line-height:1.4;color:#819077}
.contact-section{padding-top:13px;padding-bottom:65px;scroll-margin-top:110px}.contact-panel{background:var(--blue);color:#fff;padding:37px 45px 24px;overflow:hidden;position:relative}.contact-panel>.eyebrow{color:#d1dbff;font-size:9px}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:28px}.contact-row h2{font-size:58px;line-height:1.3;letter-spacing:-2px}.contact-row h2>span{color:var(--lime)}.contact-copy{min-width:229px}.contact-copy p{font-size:12px;line-height:2;color:#dce3ff;margin-bottom:22px}.contact-copy .button{font-size:11px;gap:42px}.contact-bottom{display:flex;align-items:end;justify-content:space-between;border-top:1px solid #ffffff3a;margin-top:37px;padding-top:18px;font:8px var(--mono);letter-spacing:1px;color:#d1dcff}.contact-bottom>span:last-child{font:51px/.6 Georgia,serif;color:var(--lime)}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-block:28px}.site-footer .wordmark{font-size:25px}.site-footer p{font-size:10px;color:var(--muted)}.site-footer .text-link{font-size:10px}
dialog{width:min(650px,calc(100% - 32px));max-height:calc(100dvh - 64px);padding:0;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 25px 90px #101c2450;overflow-y:auto}dialog::backdrop{background:#131d2c88;backdrop-filter:blur(6px)}.dialog-open{overflow:hidden}.dialog-inner{padding:44px;position:relative}.dialog-close{position:absolute;right:14px;top:13px;display:grid;place-items:center;width:34px;height:34px;background:transparent;border:1px solid var(--line);font-size:15px}.dialog-close:hover{background:#e5e9de}.dialog-inner>.eyebrow{margin-bottom:17px;padding-right:20px;color:var(--muted)}.example-label{display:inline-block;color:#626d56;background:#e7ecdf;font-size:10px;padding:3px 8px;margin-bottom:15px}.dialog-inner h2{font-size:34px;line-height:1.4;letter-spacing:-1px}.dialog-description{font-size:14px;line-height:1.9;margin-top:16px;color:var(--muted)}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:22px}.tag{font-size:10px;padding:4px 10px;border:1px solid var(--line)}.dialog-detail{margin-top:28px;padding-top:23px;border-top:1px solid var(--line)}.dialog-detail h3{font-size:14px;margin-bottom:9px}.dialog-detail p{font-size:12px;color:var(--muted);line-height:2}.dialog-inner>.button{margin-top:25px}
@media(min-width:1450px){.hero{padding-top:90px}.hero-art{min-height:455px}.art-letter{font-size:340px}.hero-bottom{margin-top:68px}}
@media(max-width:1100px){.container{width:calc(100% - 72px)}.hero{gap:40px;padding-top:57px}.hero h1{font-size:69px}.hero-art{min-height:392px}.art-letter{font-size:275px}.hero-copy .eyebrow{font-size:9px;letter-spacing:1.3px}.hero-tagline{font-size:19px}.project-grid{gap:20px}.template-note{font-size:9px}.mock-focus{padding:18px 15px 10px}.mock-focus>strong{font-size:21px}.focus-task{font-size:7px;padding:9px 0}.focus-asterisk{font-size:47px;left:9px;bottom:13px}.mock-dashboard{height:65%;width:86%}.mock-main{padding:10px}.mock-stats strong{font-size:12px}.mock-chart{height:46px}.mock-lines i{margin-top:7px}.about-grid{gap:58px}.about-grid h2{font-size:37px}.resume-layout{gap:35px}.experience{gap:15px;grid-template-columns:70px 1fr 20px}}
@media(max-width:760px){html{scroll-padding-top:85px}.container{width:calc(100% - 40px)}.header-inner{height:70px}.wordmark{font-size:26px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:40px;height:40px;border:1px solid var(--line);background:transparent;padding:10px}.menu-toggle span{display:block;width:18px;height:1px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.site-header nav{display:none;position:absolute;left:0;right:0;top:70px;background:var(--paper);border-bottom:1px solid var(--line);padding:14px 20px;box-shadow:0 12px 16px #17211909;gap:0;align-items:stretch}.site-header nav.open{display:flex;flex-direction:column}.site-header nav>a{padding:12px 2px;font-size:13px}.nav-contact{margin:0;justify-content:space-between}.hero{grid-template-columns:1fr 0.85fr;gap:24px;padding-top:40px}.hero-copy{padding:0}.hero-copy .eyebrow{letter-spacing:.4px;font-size:7px;margin-bottom:21px;gap:7px}.hero h1{font-size:48px;letter-spacing:-3px}.hero-name [data-name]{letter-spacing:-2.5px}.hero-tagline{font-size:15px;margin-top:22px}.hero-description{font-size:11px;margin-top:10px}.hero-actions{gap:15px;margin-top:22px;align-items:start;flex-direction:column}.hero-actions .button{gap:15px;font-size:11px;min-height:43px;padding:10px 15px}.hero-actions .text-link{font-size:11px}.hero-art{min-height:347px}.art-topline{left:12px;right:12px;top:14px;font-size:6px;letter-spacing:.2px}.art-letter{font-size:205px;inset:30px 0 50px}.art-star{font-size:49px;right:12px;top:58px}.art-orbit{width:205px;height:205px}.orbit-two{width:252px;height:130px}.art-coordinate{left:7px;font-size:6px}.art-label{left:16px;bottom:72px;padding:5px 7px;font-size:7px;gap:5px}.art-label .status-dot{width:5px;height:5px}.art-caption{bottom:14px;left:12px;right:12px;font-size:6px;letter-spacing:.5px}.art-caption>span:last-child{font-size:27px}.hero-bottom{margin-top:33px;padding-bottom:19px;font-size:6px;letter-spacing:.4px}.hero-bottom a{font-size:9px;gap:10px}.section{padding-block:59px}.section h2{font-size:30px;letter-spacing:-1px}.section-heading{margin-bottom:24px;gap:20px}.section-heading .eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:13px}.section-note{font-size:10px}.work-toolbar{align-items:start;flex-direction:column;gap:12px;margin-bottom:20px}.filters{gap:3px}.filter{font-size:10px;padding:6px 11px}.template-note{font-size:9px}.project-grid{gap:26px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-card h3{font-size:15px}.project-meta{font-size:9px;margin-top:13px}.project-category{font-size:9px}.project-subtitle{font-size:10px}.project-open-mark{width:27px;height:27px;bottom:12px;right:12px;font-size:16px}.project-example{left:9px;top:9px;font-size:8px}.project-card:last-child:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:16px;align-items:start}.project-card:last-child:nth-child(3) .project-open{grid-row:1/5}.project-card:last-child:nth-child(3) .project-meta{margin-top:15px}.project-card:last-child:nth-child(3) h3{margin-top:0}.project-card:last-child:nth-child(3) .project-subtitle{margin-top:3px}.project-card:last-child:nth-child(3) .project-art{aspect-ratio:1.12}.mock-main{padding:8px}.mock-title{font-size:8px}.mock-stats{gap:4px;margin-top:9px}.mock-stats>div{padding:4px}.mock-stats strong{font-size:10px}.mock-chart{height:38px;gap:3px;margin-top:5px}.mock-lines i{height:3px;margin-top:5px}.mock-side{padding:6px}.mock-side b{font-size:13px}.mock-side i{margin-top:10px;height:3px}.mock-focus{padding:17px 14px 9px}.mock-focus>strong{font-size:20px;margin-bottom:14px}.focus-task{font-size:7px;padding:8px 0}.focus-label{font-size:5px}.focus-bottom{font-size:5px}.focus-asterisk{font-size:43px}.about-grid{grid-template-columns:1fr 1fr;gap:28px}.about-grid h2{font-size:31px}.about-grid .eyebrow{font-size:7px;letter-spacing:.8px}.about-signature{font-size:25px;gap:10px}.about-copy{padding-top:23px}.large-copy{font-size:17px;margin-bottom:13px}.about-copy>p:not(.large-copy){font-size:11px;line-height:2.1}.about-footnote{margin-top:20px;padding-top:15px;margin-bottom:19px}.about-footnote p{font-size:10px}.small-label{font-size:8px}.about-copy .text-link{font-size:10px;gap:10px}.resume-layout{grid-template-columns:1fr;gap:10px;margin-top:28px}.resume-intro{padding-top:21px;display:grid;grid-template-columns:70px 1fr;column-gap:10px;align-items:center}.resume-intro>p{font-size:15px;margin-top:0}.resume-intro>p br{display:none}.resume-note{margin-top:10px;grid-column:2;font-size:9px}.experience{padding-block:25px}.experience h3{font-size:15px}.experience p{font-size:11px}.experience-date{font-size:10px}.section-heading .button{font-size:10px;padding:9px 12px;min-height:42px;gap:12px;flex-shrink:0}.contact-section{padding-top:0;padding-bottom:45px}.contact-panel{padding:27px 25px 21px}.contact-panel>.eyebrow{font-size:8px}.contact-row{gap:20px;margin-top:25px}.contact-row h2{font-size:43px}.contact-copy{min-width:170px}.contact-copy p{font-size:11px;margin-bottom:18px}.contact-copy .button{padding:10px 13px;font-size:10px;gap:23px;min-height:43px}.contact-bottom{font-size:6px;letter-spacing:.7px;margin-top:31px;padding-top:18px}.contact-bottom>span:last-child{font-size:38px}.site-footer{padding-block:23px;gap:16px}.site-footer .wordmark{font-size:21px}.site-footer p{font-size:8px}.site-footer .text-link{font-size:9px;gap:7px}.dialog-inner{padding:35px 27px}.dialog-inner h2{font-size:28px}.dialog-description{font-size:13px}}
@media(max-width:480px){.container{width:calc(100% - 36px)}.hero{grid-template-columns:1fr;padding-top:36px;gap:32px}.hero-copy .eyebrow{font-size:8px;letter-spacing:1px}.hero h1{font-size:67px;letter-spacing:-4px}.hero h1 br{display:none}.hero-name{display:block}.hero-name [data-name]{letter-spacing:-3px;font-size:clamp(40px,10.6vw,67px)}.hero-tagline{font-size:18px;margin-top:20px}.hero-description{font-size:12px;max-width:290px;line-height:1.9}.hero-actions{flex-direction:row;align-items:center;gap:25px;margin-top:25px}.hero-actions .button{min-height:46px;padding:11px 17px;gap:25px}.hero-art{min-height:295px;max-width:none}.art-topline{font-size:8px;letter-spacing:1px;left:20px;right:20px;top:17px}.art-letter{font-size:260px;inset:13px 0 36px}.art-star{font-size:62px;right:33px;top:48px}.art-orbit{width:230px;height:230px}.orbit-two{width:315px;height:135px}.art-label{font-size:9px;left:30px;bottom:60px;padding:6px 10px}.art-caption{font-size:7px;left:20px;right:20px;bottom:13px}.art-coordinate{left:12px;font-size:6px}.hero-bottom{margin-top:-4px;font-size:6px;padding-bottom:18px}.hero-bottom a{font-size:9px}.section{padding-block:49px}.section h2{font-size:29px}.section-note{display:none}.project-grid{grid-template-columns:1fr;gap:29px}.project-card:last-child:nth-child(3){display:block}.project-card:last-child:nth-child(3) .project-meta{margin-top:16px}.project-card h3{font-size:18px}.project-meta{font-size:10px;margin-top:16px}.project-category{font-size:10px}.project-subtitle{font-size:11px}.project-art,.project-card:last-child:nth-child(3) .project-art{aspect-ratio:1.22}.project-open-mark{width:34px;height:34px;right:17px;bottom:17px;font-size:20px}.project-example{font-size:9px;left:13px;top:13px}.mock-dashboard{width:77%;height:67%}.mock-main{padding:13px}.mock-title{font-size:11px}.mock-side{padding:10px}.mock-side b{font-size:19px}.mock-side i{margin-top:15px;height:4px}.mock-stats{gap:8px;margin-top:14px}.mock-stats>div{padding:7px}.mock-stats small{font-size:6px}.mock-stats strong{font-size:15px}.mock-chart{height:60px;gap:5px;margin-top:8px}.mock-lines i{margin-top:8px;height:4px}.mock-focus{width:67%;padding:25px 20px 13px}.mock-focus>strong{font-size:28px;margin-bottom:18px}.focus-label{font-size:7px}.focus-task{font-size:9px;padding:11px 0}.focus-bottom{font-size:6px}.focus-asterisk{font-size:64px;left:23px;bottom:20px}.form-poster{width:58%;padding:15px}.poster-header{font-size:17px}.poster-header>span:last-child{font-size:7px}.poster-footer{font-size:6px}.about-grid{grid-template-columns:1fr;gap:20px}.about-grid h2{font-size:35px;line-height:1.5}.about-grid .eyebrow{font-size:8px;letter-spacing:1px}.about-signature{font-size:28px;margin-top:20px}.about-copy{padding-top:8px}.large-copy{font-size:20px}.about-copy>p:not(.large-copy){font-size:12px;line-height:2.1}.about-footnote p{font-size:11px}.about-copy .text-link{font-size:11px}.about-footnote{margin-bottom:22px}.section-heading{align-items:start;gap:12px}.section-heading .button{font-size:9px;gap:6px;padding:8px 10px;margin-top:35px}.section-heading .button span{font-size:16px}.resume-layout{margin-top:18px}.resume-intro{grid-template-columns:60px 1fr}.resume-intro>p{font-size:14px}.experience{grid-template-columns:55px 1fr 14px;gap:14px;padding-block:24px}.experience h3{font-size:15px}.experience-icon{font-size:18px}.contact-panel{padding:26px 24px 20px}.contact-row{flex-direction:column;align-items:start;gap:27px;margin-top:23px}.contact-row h2{font-size:48px;letter-spacing:-2px}.contact-copy{min-width:0;width:100%;display:flex;justify-content:space-between;align-items:end;gap:12px}.contact-copy p{font-size:10px;margin-bottom:0}.contact-copy .button{font-size:9px;gap:12px;min-height:42px;padding:10px 11px;flex-shrink:0}.contact-copy .button span{font-size:18px}.contact-bottom{font-size:5px;letter-spacing:.5px;gap:10px}.site-footer{flex-wrap:wrap;padding-block:22px}.site-footer .wordmark{font-size:23px}.site-footer p{order:3;width:100%;font-size:9px}.site-footer .text-link{margin-left:auto;font-size:10px}.dialog-inner{padding:37px 22px 27px}.dialog-inner h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{@page{size:A4;margin:18mm}html,body{background:#fff;color:#111;font-size:11pt}html{scroll-padding:0}.container{width:100%;max-width:none}.site-header,.hero-art,.hero-actions,.hero-bottom,#work,.about-signature,.site-footer,.contact-bottom,.contact-panel>.eyebrow,.contact-copy .button,.contact-row h2,#print-resume,.resume-intro,dialog,.skip-link{display:none!important}.hero{display:block;padding:0 0 20px}.hero-copy{padding:0}.hero-copy .eyebrow{font-size:8pt;margin-bottom:10px}.hero h1{font-size:37pt;letter-spacing:-2px}.hero h1 br{display:none}.hero-name{display:inline}.hero-name [data-name]{display:inline}.hero-tagline{font-size:13pt;margin-top:10px}.hero-description{font-size:10pt;max-width:none}.section{padding:20px 0}.section h2,.about-grid h2{font-size:20pt;line-height:1.4}.about-section{background:#fff;border-block:1px solid #ddd}.about-grid{grid-template-columns:1fr 1.8fr;gap:30px}.about-copy{padding:0}.large-copy{font-size:12pt}.about-copy>p:not(.large-copy){font-size:10pt;line-height:1.8}.about-footnote{display:none}.about-copy .text-link{font-size:9pt}.about-copy .text-link::after{content:" (" attr(href) ")";font-size:8pt}.section-heading{margin-bottom:8px}.section-heading .eyebrow{margin-bottom:10px}.resume-layout{display:block;margin-top:15px}.experience{padding:18px 0;grid-template-columns:90px 1fr 20px;break-inside:avoid}.experience h3{font-size:12pt}.experience p{font-size:10pt}.experience-date{font-size:9pt}.contact-section{padding:15px 0}.contact-panel{padding:0;background:#fff;color:#111}.contact-row{display:block;margin:0}.contact-copy{display:block}.contact-copy p{font-size:10pt;color:#555}.contact-copy::after{content:"GitHub: " attr(data-print-contact);font-size:9pt}.contact-copy p{margin:0}.contact-panel a{display:inline}.blue{color:#222}}

.wordmark{overflow-wrap:anywhere;min-width:0}.hero-name{font-weight:750}.hero-name .blue{white-space:nowrap}

/* Actual project screenshots and destinations. */
.project-screenshot{background:#e9ede6;border:1px solid var(--line);padding:18px}.project-screenshot img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;border-radius:3px;box-shadow:0 8px 24px #17211914}.project-runtime{position:absolute;left:14px;bottom:17px;background:#fffffff0;border:1px solid #dce1d5;padding:4px 9px;color:#52604e;font-size:10px}.dialog-image{display:block;width:100%;height:auto;margin-top:25px;border:1px solid var(--line);border-radius:3px}.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.dialog-actions .button{font-size:12px}.dialog-image[hidden]{display:none}

/* Four published projects form two balanced rows on desktop. */
@media(min-width:761px){.project-grid:has(>.project-card:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}}
