@charset "UTF-8";
:root{--paper:#f4f1e8;--ink:#2b302b;--muted:#666b61;--line:#bfc2b5;--accent:#b6492b;--panel:#e7e9dd;--card:#faf8f1;color-scheme:light;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--paper);color:var(--ink)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:6px}a:hover{color:var(--accent)}.page{max-width:1240px;margin:auto;padding:0 52px}.skip{position:absolute;top:-60px;left:16px;background:var(--paper);padding:12px;z-index:9}.skip:focus{top:8px}.masthead{display:flex;align-items:center;gap:32px;padding:28px 0;border-bottom:1px solid var(--ink)}.wordmark{font:italic bold 34px Georgia,serif;letter-spacing:-2px}.wordmark span{font:12px Arial;vertical-align:top;letter-spacing:0;margin-left:5px}.masthead nav{display:flex;gap:28px;margin-left:auto;font-size:13px}.masthead button{border:1px solid var(--line);border-radius:3px;padding:8px 12px;background:transparent;color:var(--ink);font-size:12px;cursor:pointer}.hero{display:grid;grid-template-columns:1fr 1fr;gap:42px;padding:72px 0 78px;align-items:center}.eyebrow{font:11px/1.7 "Courier New",monospace;letter-spacing:1.5px;color:var(--muted);margin:0 0 28px}h1{font:normal clamp(54px,6.8vw,86px)/1.12 Georgia,"Songti SC",SimSun,serif;letter-spacing:-3px;margin:0 0 25px}em{font-weight:normal;color:var(--accent)}h1 em{font-size:1.12em}p{line-height:1.9}.lead{font-size:21px;margin:0 0 15px}.description{max-width:420px;font-size:14px;color:var(--muted);margin:0 0 26px}.text-link{font-size:13px;border-bottom:1px solid;padding-bottom:6px}.text-link span{margin-left:22px}.desk{background:var(--panel);position:relative;min-height:420px;border:1px solid var(--line);border-radius:50% 50% 4px 4px;padding:70px 40px 30px;display:flex;flex-direction:column;align-items:center;background-image:radial-gradient(var(--line) .7px,transparent .7px);background-size:8px 8px}.desk-label{font:9px monospace;letter-spacing:1px;position:absolute;top:30px}.computer{width:280px;transform:rotate(-5deg);filter:drop-shadow(9px 13px 0 #373d2b12)}.monitor{border:2px solid #454738;background:#dedbc7;padding:17px 17px 0;border-radius:13px 13px 8px 8px;box-shadow:inset -7px -2px 0 #c5c1a8,inset 5px 5px 0 #f6f3e1}.screen{height:180px;background:#273e35;border:8px solid #aaa68f;border-radius:9px;padding:17px;color:#c7d8a8;font-family:monospace;box-shadow:inset 3px 3px 8px #12251e}.prompt{font-size:10px;opacity:.8}.screen strong{font-size:29px;display:block;line-height:1.1;margin:12px 0}.screen small{font-size:9px}.cursor{animation:blink 1.2s steps(2,start) infinite}.monitor-bottom{height:35px;display:flex;align-items:center;justify-content:space-between;font:8px monospace;color:#575b48}.monitor-bottom i{width:6px;height:6px;background:#758e50;border-radius:50%}.monitor-bottom b{font-size:23px}.stand{width:105px;height:23px;background:#c7c3ab;margin:auto;border:2px solid #454738;border-top:0;transform:perspective(50px) rotateX(15deg)}.keyboard{height:42px;border:2px solid #454738;background:#dfdbc5;border-radius:4px;padding:5px 9px;transform:perspective(140px) rotateX(25deg)}.keyboard div{height:5px;margin:2px;background:repeating-linear-gradient(90deg,#b0ad98 0 12px,#e9e5d3 12px 16px)}.note{position:absolute;right:12px;bottom:61px;background:#e8c874;color:#514c32;padding:18px 17px;transform:rotate(9deg);font:italic 16px/1.5 Georgia,serif;box-shadow:3px 5px 0 #0000000c}.note span{display:block;text-align:right;font-size:25px}.desk-caption{font-size:10px;margin:34px 0 0;color:var(--muted)}.work{border-top:1px solid var(--ink);padding:37px 0 0}.section-heading{display:grid;grid-template-columns:1fr auto;align-items:center}.section-heading .eyebrow{grid-column:1/-1;margin-bottom:15px}h2{font:normal 32px/1.5 Georgia,"Songti SC",SimSun,serif;margin:0 0 25px;letter-spacing:-.6px}.section-heading>p:last-child{font-size:12px;color:var(--muted);margin-top:0}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project{border:1px solid var(--line);background:var(--card);padding:23px;transition:transform .2s,box-shadow .2s}.project:hover{transform:translateY(-4px);box-shadow:4px 5px 0 var(--line);color:var(--ink)}.project-number{font:10px monospace;letter-spacing:1px;color:var(--muted)}.project-icon{font:50px Georgia;color:var(--accent);height:97px;display:flex;align-items:center}.project h3{font:600 16px/1.5 monospace;margin:0;overflow-wrap:anywhere}.project h3 span{float:right;color:var(--accent)}.project p{font-size:12px;color:var(--muted);margin:10px 0 23px}.tag{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:5px 10px}.toolbox{display:flex;align-items:center;gap:24px;font-size:11px;padding:20px 0;border-bottom:1px solid var(--line)}.toolbox>span{color:var(--muted)}.toolbox p{margin:0}.toolbox a{margin-left:auto}.offline{padding:64px 0;display:grid;grid-template-columns:1fr 1fr;gap:90px}.offline p:not(.eyebrow){font-size:13px;color:var(--muted)}.offline .eyebrow{margin-bottom:20px}blockquote{font:italic 19px/1.8 Georgia,"Songti SC",serif;margin:26px 0 0;color:var(--accent)}.shelf{padding-top:4px}.shelf h3{font-size:14px;font-weight:normal;display:flex;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--ink);margin:0}.shelf h3 span{font:10px monospace;color:var(--muted)}.shelf>a{display:grid;grid-template-columns:135px 1fr auto;align-items:center;gap:12px;padding:19px 0;border-bottom:1px solid var(--line)}.shelf>a span{font:10px monospace;color:var(--muted)}.shelf strong{font-size:14px;font-weight:normal}.shelf i{font-style:normal}.online{padding:35px 0 45px;border-top:1px solid var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:90px}.online .eyebrow{margin-bottom:15px}.online h2{font-size:28px}.socials{display:flex;align-items:center;justify-content:space-between;gap:20px}.socials a{border-bottom:1px solid var(--line);padding:15px 0;font:17px Georgia,serif;flex:1}.socials span{float:right;font:14px Arial;color:var(--accent)}footer{display:flex;gap:25px;padding:22px 0 30px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}footer a:first-of-type{margin-left:auto}
:root[data-theme="dark"]{--paper:#242b27;--ink:#ecebde;--muted:#b5bbaa;--line:#515c50;--accent:#e99c77;--panel:#343e32;--card:#2b332d;color-scheme:dark}
@keyframes blink{to{visibility:hidden}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:900px){.page{padding:0 28px}.hero{gap:28px}.desk{padding:65px 15px 25px}.computer{width:240px}.note{right:-5px;font-size:14px;padding:12px}.offline,.online{gap:38px}.project{padding:18px}.project h3{font-size:14px}.shelf>a{grid-template-columns:108px 1fr auto}.toolbox{gap:12px}.section-heading{display:block}}
@media(max-width:650px){.page{padding:0 22px}.masthead{gap:16px;padding:20px 0;flex-wrap:wrap}.wordmark{font-size:30px}.masthead nav{gap:18px;font-size:12px}.masthead button{margin-left:auto;padding:6px 10px}.hero{grid-template-columns:1fr;padding:42px 0;gap:37px}h1{font-size:clamp(46px,10vw,66px)}.hero .eyebrow{font-size:9px}.description{max-width:none}.desk{min-height:375px;max-width:420px;width:100%;justify-self:center}.computer{width:min(250px,100%)}.note{right:10px;bottom:48px}.desk-caption{margin-top:24px}.projects{grid-template-columns:1fr}.project{display:grid;grid-template-columns:60px 1fr;column-gap:14px;padding:22px}.project-number{grid-column:1/-1}.project-icon{grid-row:2/5;height:auto;min-height:112px}.project h3{margin-top:18px;font-size:16px}.project p{margin-bottom:17px}.project .tag{justify-self:start}.toolbox{align-items:flex-start;flex-wrap:wrap;gap:8px 18px}.toolbox p{width:100%;order:3;font-size:10px}.toolbox a{margin-left:auto}.offline,.online{grid-template-columns:1fr;gap:32px;padding:40px 0}.offline h2{font-size:31px}.shelf>a{grid-template-columns:125px 1fr auto}.online h2{margin-bottom:0}.socials{gap:24px}footer{flex-wrap:wrap;line-height:1.8;gap:8px 20px}footer>span{width:100%}footer a:first-of-type{margin-left:0}footer a:last-child{margin-left:auto}}

/* Current work stays above the three existing project cards at every width. */
.project.project-current{display:block;margin-bottom:18px;border-color:var(--accent)}
.project-current h3{margin-top:18px}
.project-current p{max-width:800px}
