:root{--navy:#0b162d;--navy-deep:#0a1428;--navy-light:#14213a;--slate:#8b9bb5;--light-slate:#b9c5d7;--lightest-slate:#e6edf7;--white:#f2f5fb;--teal:#5eead4;--teal-dark:#123a45;--line:#9db0cc5c;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition:.18s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}html.rocket-scroll-sync{scroll-behavior:auto}body{background:var(--navy);min-width:320px;color:var(--light-slate);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}ol,ul{margin:0;padding:0;list-style:none}h1,h2,h3,p{margin-top:0}::selection{color:#134e4a;background:#5eead4}:focus-visible{outline:2px solid var(--teal);outline-offset:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--teal);color:var(--navy-deep);transition:transform var(--transition);border-radius:4px;padding:8px 12px;font-weight:700;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.cursor-spotlight{z-index:30;pointer-events:none;background:radial-gradient(600px at var(--spotlight-x,50%) var(--spotlight-y,18%), #1d4ed826, transparent 80%);transition:background .3s;position:fixed;inset:0}.portfolio-shell{grid-template-columns:minmax(310px,44%) minmax(0,1fr);gap:clamp(48px,8vw,136px);width:min(100%,1440px);min-height:100vh;margin:0 auto;padding:clamp(48px,7vw,96px) clamp(32px,4vw,64px);display:grid}.sidebar{min-width:0}.sidebar-inner{flex-direction:column;align-items:flex-start;min-height:calc(100vh - clamp(96px,14vw,192px));display:flex;position:sticky;top:0}.site-name{color:var(--white);letter-spacing:-.055em;font-size:clamp(38px,4.1vw,58px);font-weight:800;line-height:.95;display:inline-block}.site-name:hover{color:var(--teal)}.site-role{color:var(--lightest-slate);letter-spacing:-.04em;margin:16px 0 0;font-size:clamp(18px,1.7vw,24px);font-weight:650}.site-summary{max-width:315px;color:var(--slate);margin:22px 0 0;font-size:17px;line-height:1.45}.language-switcher{color:#62718a;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin-top:18px;font-size:12px;font-weight:750;display:flex}.language-switcher a{transition:color var(--transition)}.language-switcher a:hover,.language-switcher a.is-current{color:var(--teal)}.section-nav{margin-top:clamp(64px,11vh,120px)}.section-nav li+li{margin-top:17px}.section-nav a{color:#61718b;letter-spacing:.11em;text-transform:uppercase;transition:color var(--transition), gap var(--transition);align-items:center;gap:15px;font-size:13px;font-weight:800;display:inline-flex}.nav-line{width:31px;height:1px;transition:width var(--transition);background:currentColor}.section-nav a:hover,.section-nav a.is-active{color:var(--lightest-slate);gap:16px}.section-nav a.is-active .nav-line{width:64px}.social-list{gap:17px;margin-top:auto;padding-top:56px;display:flex}.social-list a{color:var(--slate);transition:color var(--transition), transform var(--transition);place-items:center;display:grid}.social-list svg{width:22px;height:22px}.social-list a:hover{color:var(--lightest-slate);transform:translateY(-3px)}.main-content{width:min(100%,640px);padding-top:4px}.content-section{scroll-margin-top:36px}.about{padding-bottom:clamp(100px,16vh,190px)}.about-copy p{color:var(--slate);margin-bottom:22px;font-size:clamp(16px,1.4vw,19px);line-height:1.55}.about-copy p:last-child{margin-bottom:0}.section-label{color:var(--lightest-slate);letter-spacing:.12em;text-transform:uppercase;margin:0 0 40px;font-size:14px;font-weight:800}.experience,.projects{padding-bottom:clamp(110px,17vh,200px)}.experience-list{gap:55px;display:grid}.experience-item{grid-template-columns:128px minmax(0,1fr);gap:24px;display:grid}.experience-date,.writing-year{color:#70809a;letter-spacing:.06em;text-transform:uppercase;margin:3px 0 0;font-size:12px;font-weight:700;line-height:1.25}.experience-detail h3,.project-detail h3,.writing-row h3{color:var(--lightest-slate);letter-spacing:-.03em;margin:0 0 9px;font-size:18px;font-weight:700;line-height:1.22}.experience-detail h3 a:hover,.project-detail h3 a:hover,.writing-row h3 a:hover,.text-link:hover,.about-csdn-link:hover,.back-link:hover{color:var(--teal)}.experience-detail p,.project-detail p{color:var(--slate);margin:0 0 15px;font-size:15px;line-height:1.45}.tag-list{flex-wrap:wrap;gap:7px;display:flex}.tag-list li{color:var(--teal);background:#144c579e;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:650;line-height:1.2}.text-link{color:var(--lightest-slate);letter-spacing:-.03em;margin-top:54px;font-size:17px;font-weight:700;display:inline-block}.about-csdn-link{color:var(--lightest-slate);text-underline-offset:4px;transition:color var(--transition);font-weight:700;text-decoration:underline}.project-list{gap:36px;display:grid}.project-row{grid-template-columns:136px minmax(0,1fr);align-items:start;gap:20px;display:grid}.project-artwork,.writing-artwork{isolation:isolate;background:#244055;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 18px #020c1b33}.project-artwork{align-content:end;min-height:92px;padding:14px}.project-artwork span,.writing-artwork span{z-index:2;color:#ffffffe6;letter-spacing:.09em;font-size:10px;font-weight:800;position:relative}.project-artwork i,.project-artwork b{opacity:.8;border-radius:50%;display:block;position:absolute}.project-artwork i{background:#ffffff2b;width:90px;height:90px;top:-35px;right:-10px}.project-artwork b{border:9px solid #fff3;width:100px;height:100px;bottom:-47px;left:-12px}.project-artwork:hover,.writing-artwork:hover{transition:transform var(--transition);transform:translateY(-3px)}.tone-mint{background:linear-gradient(135deg,#087e74,#2bd1a8)}.tone-violet{background:linear-gradient(135deg,#41337d,#8a73df)}.tone-orange{background:linear-gradient(135deg,#9d492c,#f09b50)}.tone-blue{background:linear-gradient(135deg,#254d92,#57a5dc)}.tone-rose{background:linear-gradient(135deg,#672d59,#e25a91)}.writing{padding-bottom:90px}.writing-list{gap:25px;display:grid}.writing-row{grid-template-columns:136px minmax(0,1fr);align-items:center;gap:20px;display:grid}.writing-artwork{align-content:end;height:78px;padding:12px}.writing-row h3{margin:4px 0 0;font-size:16px}.writing-year{margin:0}.site-footer{color:#71809a;padding:28px 0 10px;font-size:14px;line-height:1.5}.site-footer p{margin:0 0 8px}.site-footer a{color:var(--light-slate);text-underline-offset:3px;text-decoration:underline}.archive-main{padding-top:0}.back-link{color:var(--light-slate);letter-spacing:.02em;transition:color var(--transition);align-items:center;gap:8px;margin:3px 0 54px;font-size:14px;font-weight:750;display:inline-flex}.archive-hero{padding-bottom:clamp(78px,12vh,130px)}.archive-eyebrow{color:var(--teal);letter-spacing:.13em;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:800}.archive-hero h1{color:var(--white);letter-spacing:-.055em;margin:0 0 20px;font-size:clamp(36px,4.3vw,54px);line-height:.98}.archive-hero>p:last-child{color:var(--slate);margin:0;font-size:clamp(16px,1.4vw,19px);line-height:1.55}.archive-section{padding-bottom:clamp(86px,14vh,150px)}.archive-tags{gap:10px}.archive-tags li{padding:7px 14px;font-size:13px}.archive-profile-link{margin-top:0}.archive-note{color:var(--slate);margin:-38px 0 0;font-size:15px}.time-travel{z-index:31;isolation:isolate;width:58px;height:58px;color:var(--lightest-slate);cursor:pointer;transition:transform var(--transition);background:0 0;border:0;place-items:center;padding:0;display:grid;position:fixed;bottom:23px;right:28px}.spacecraft{object-fit:contain;filter:drop-shadow(0 0 8px #5a9dd16b);width:48px;height:48px;display:block}.time-travel:not(.is-igniting):not(.is-ascending):hover{transform:translateY(-8px)}.time-travel.is-igniting,.time-travel.is-ascending{pointer-events:none}.time-travel.is-igniting{animation:.22s ease-out forwards rocket-ignite}.time-travel.is-ascending{animation:1.2s cubic-bezier(.2,.7,.4,1) forwards rocket-ascend}@keyframes rocket-ignite{0%{transform:translateY(0)scale(1)}to{transform:translateY(7px)scale(.94)}}@keyframes rocket-ascend{0%{opacity:1;transform:translateY(7px)scale(.94)}to{opacity:0;transform:translate(10px,-112vh)rotate(7deg)scale(.68)}}.time-tooltip{background:var(--navy-light);width:max-content;color:var(--lightest-slate);opacity:0;pointer-events:none;transition:opacity var(--transition), transform var(--transition);border-radius:3px;padding:4px 7px;font-size:11px;position:absolute;right:46px;transform:translate(4px)}.time-travel:hover .time-tooltip{opacity:1;transform:translate(0)}@media (width<=1024px){.portfolio-shell{grid-template-columns:minmax(260px,39%) minmax(0,1fr);gap:clamp(38px,6vw,72px);padding:56px clamp(30px,6vw,72px)}.site-name{font-size:clamp(35px,4.2vw,47px)}.experience-item{grid-template-columns:108px minmax(0,1fr);gap:18px}}@media (width<=760px){body{background:var(--navy)}.portfolio-shell{padding:42px 24px 64px;display:block}.sidebar-inner{min-height:auto;position:static}.site-name{font-size:clamp(39px,11vw,52px)}.site-summary{max-width:360px}.section-nav{display:none}.social-list{margin-top:26px;padding-top:0}.main-content{width:100%;padding-top:82px}.about{padding-bottom:92px}.about-copy p{font-size:17px}.experience,.projects{padding-bottom:100px}.experience-list{gap:44px}.experience-item{display:block}.experience-date{margin:0 0 12px}.project-row,.writing-row{grid-template-columns:100px minmax(0,1fr);gap:16px}.project-artwork{min-height:78px}.writing-artwork{height:68px}.project-detail h3,.experience-detail h3{font-size:17px}.back-link{margin-bottom:42px}.archive-hero{padding-bottom:82px}.archive-note{margin-top:-30px}.time-travel{bottom:14px;right:13px}.cursor-spotlight{display:none}}@media (width<=390px){.portfolio-shell{padding-left:20px;padding-right:20px}.project-row,.writing-row{grid-template-columns:82px minmax(0,1fr);gap:13px}.project-artwork{min-height:70px;padding:10px}.writing-artwork{height:60px;padding:9px}.tag-list li{padding:4px 9px;font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
