:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0c10;--bg-soft:#10141b;--panel:#12161ed1;--panel-strong:#171d27f0;--ink:#f4efe6;--muted:#b4b8b2;--quiet:#777f7b;--line:#f4efe61f;--line-strong:#f4efe638;--mint:#a7f3d0;--blue:#a5c7ff;--pink:#f4b6c8;--gold:#f5d58a;--coral:#ff9b73;--shadow:0 24px 80px #00000057;--wrap:min(1080px, calc(100vw - 40px))}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;min-height:100%}body{isolation:isolate;background:linear-gradient(180deg, #ffffff0b, transparent 260px), linear-gradient(145deg, #ff9b7321, transparent 31%), linear-gradient(245deg, #a5c7ff21, transparent 38%), linear-gradient(180deg, #11151c 0%, #090b10 42%, #0d1218 100%), var(--bg);min-width:320px;min-height:100%;color:var(--ink);text-rendering:optimizelegibility;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6;position:relative;overflow-x:hidden}body:before,body:after{z-index:-1;pointer-events:none;content:"";position:fixed;inset:0}body:before{opacity:.78;background:linear-gradient(118deg,#f5d58a1f 0%,#0000 24%) 0 0/140% 140%,linear-gradient(292deg,#f4b6c81c 0%,#0000 32%) 0 0/130% 130%,conic-gradient(from 220deg at 58% 12%,#a5c7ff24,#0000 24%,#ff9b731a,#0000 62%,#a7f3d014,#0000) 0 0/160% 160%}body:after{display:none}body::selection{background:#a7f3d03d}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:.08em}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;max-width:100%;margin-bottom:10px;font-size:2.2rem;font-weight:640;line-height:1.12}h2{letter-spacing:0;margin-bottom:14px;font-size:2.2rem;font-weight:620;line-height:1.08}h3{letter-spacing:0;margin-bottom:4px;font-size:1.08rem;font-weight:600;line-height:1.25}p{color:var(--muted)}.skip-link{z-index:20;border:1px solid var(--line-strong);background:var(--panel-strong);color:var(--ink);border-radius:8px;padding:10px 14px;font-weight:620;transition:transform .16s;position:fixed;top:14px;left:14px;transform:translateY(-140%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:10;pointer-events:none;justify-content:space-between;align-items:center;gap:18px;width:100%;padding:28px max(20px,50vw - 540px);display:flex;position:absolute;top:0;left:0;right:0}.brand{color:var(--ink);pointer-events:auto;align-items:center;gap:9px;font-weight:650;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid #f7f2e829;border-radius:7px;flex:none;width:24px;height:24px;box-shadow:0 8px 24px #0003}.top-nav{pointer-events:auto;align-items:center;gap:6px;display:flex}.top-nav a{color:var(--muted);border:1px solid #0000;border-radius:999px;padding:6px 10px;font-size:.94rem;font-weight:560;text-decoration:none;transition:background .16s,border-color .16s,color .16s}.top-nav a:hover,.top-nav a:focus-visible{border-color:var(--line);color:var(--ink);background:#ffffff0b;outline:none}.resume-page,.page{width:var(--wrap);margin:0 auto;padding:92px 0}.resume-hero{grid-template-columns:180px minmax(0,1fr);align-items:center;gap:36px;padding:26px 0 20px;display:grid}.portrait-card{justify-items:center;gap:16px;display:grid}.portrait-card p{background:linear-gradient(90deg, var(--coral), var(--gold), var(--mint), var(--blue), var(--pink));color:#0000;text-transform:uppercase;-webkit-background-clip:text;background-clip:text;margin:0;font-size:.82rem;font-weight:620}.portrait{aspect-ratio:1;width:156px;box-shadow:var(--shadow);background:conic-gradient(from 120deg,#ff8a73,#ffd166,#a7f3d0,#93c5fd,#f0abfc,#ff8a73);border:0;border-radius:50%;place-items:center;padding:3px;display:grid;position:relative;overflow:hidden}.portrait:before{border:5px solid var(--bg-soft);content:"";pointer-events:none;border-radius:50%;position:absolute;inset:3px}.portrait img{object-fit:cover;border-radius:50%;width:100%;height:100%}.eyebrow,.kicker{color:var(--mint);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:.76rem;font-weight:620}.intro>p{color:#f4efe6c7;max-width:660px;margin-bottom:12px;font-size:1.03rem}.intro h1{font-size:2.2rem}.belief{font-weight:500;color:var(--ink)!important;font-size:1.18rem!important}.social-row{flex-wrap:wrap;gap:8px;display:flex}.social-row a,.button,.card-link{border:1px solid var(--line);min-height:32px;color:var(--ink);background:#ffffff09;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:5px 9px;font-size:.84rem;font-weight:560;line-height:1.1;text-decoration:none;transition:background .16s,border-color .16s,transform .16s;display:inline-flex}.social-row a svg{color:#f4efe6b8;fill:none;flex:none;width:13px;height:13px}.social-row a svg path{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.social-row a svg path[fill=currentColor]{stroke:none}.social-row a:hover,.social-row a:focus-visible,.button:hover,.button:focus-visible,.card-link:hover,.card-link:focus-visible{border-color:var(--line-strong);background:#ffffff12;outline:none;transform:translateY(-2px)}.button{background:var(--mint);color:#0b1712;border-color:#a7f3d057}.button.secondary{border-color:var(--line);color:var(--ink);background:#ffffff09}.app-list-item,.article-row,.list-item,.contact-link{border:1px solid var(--line);background:#12161ea8;border-radius:8px}.article-source span,.app-list-meta span{color:var(--gold);text-transform:uppercase;margin-bottom:10px;font-size:.76rem;font-weight:620;display:block}.recent-works{border:1px solid var(--line);background:radial-gradient(circle at 8% 0,#a7f3d01a,#0000 32%),radial-gradient(circle at 92% 10%,#f4b6c817,#0000 30%),#12161eb3;border-radius:8px;margin:34px 0 58px;padding:20px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff09,0 18px 48px #0003}.recent-works:before{background:conic-gradient(from 120deg, var(--coral), var(--gold), var(--mint), var(--blue), var(--pink), var(--coral));content:"";filter:blur(48px);opacity:.12;pointer-events:none;border-radius:50%;width:220px;height:220px;position:absolute;top:-80px;right:-80px}.recent-head{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex;position:relative}.recent-head h2{align-items:center;gap:10px;margin-bottom:0;font-size:1.38rem;font-weight:600;line-height:1.15;display:inline-flex}.recent-head h2:before{background:conic-gradient(from 120deg, var(--coral), var(--gold), var(--mint), var(--blue), var(--pink), var(--coral));content:"";border-radius:50%;width:11px;height:11px;box-shadow:0 0 18px #a7f3d040}.work-sections{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;display:grid;position:relative}.work-section{min-width:0}.work-section-head{border-bottom:1px solid #f4efe61a;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;padding-bottom:10px;display:flex}.work-section-head h3{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:.96rem;font-weight:590;line-height:1.2;display:inline-flex}.work-section-head a{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:.78rem;font-weight:520;text-decoration:none;transition:background .16s,border-color .16s,color .16s}.work-section-head a:hover,.work-section-head a:focus-visible{border-color:var(--line-strong);color:var(--ink);background:#ffffff0f;outline:none}.work-section-icon{width:24px;height:24px;color:var(--gold);place-items:center;display:grid}.work-list{gap:0;display:grid}.work-item{border-radius:10px;grid-template-columns:44px minmax(0,1fr) 30px;align-items:center;gap:12px;margin:0 -8px;padding:14px 8px;text-decoration:none;transition:background .16s,transform .16s;display:grid;position:relative}.work-item+.work-item{border-top:1px solid #f4efe614}.work-item:hover,.work-item:focus-visible{background:#ffffff09;outline:none;transform:translate(3px)}.work-icon{background:#ffffff0b;border:1px solid #f4efe61f;border-radius:12px;place-items:center;width:44px;height:44px;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 10px 24px #0000002e}.work-icon img{object-fit:cover;width:100%;height:100%}.work-icon-generic{color:var(--gold)}.work-icon-generic svg{fill:none;width:18px;height:18px}.work-section-icon svg,.work-arrow svg{fill:none;width:14px;height:14px}.work-section-icon svg path,.work-icon-generic svg path,.work-arrow svg path{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.work-copy{min-width:0}.work-item strong,.work-item small{display:block}.work-item strong{margin-bottom:6px;font-size:1rem;font-weight:590;line-height:1.2}.work-item small{max-width:620px;color:var(--muted);font-size:.9rem;line-height:1.48}.work-arrow{color:#f4efe6ad;place-items:center;width:30px;height:30px;transition:color .16s,transform .16s;display:grid}.work-item:hover .work-arrow,.work-item:focus-visible .work-arrow{color:var(--mint);transform:translate(2px,-2px)}.experience-section{grid-template-columns:170px minmax(0,1fr);align-items:start;gap:32px;display:grid}.section-title{position:sticky;top:28px}.section-title h2{font-size:1.7rem;line-height:1.15}.experience-list{gap:0;padding-left:20px;display:grid;position:relative}.experience-list:before{background:linear-gradient(var(--mint), #f4efe614);content:"";width:1px;position:absolute;top:24px;bottom:24px;left:20px}.experience-item{grid-template-columns:64px minmax(0,1fr);gap:18px;padding:0 0 30px 30px;display:grid;position:relative}.experience-item:before{border:2px solid var(--bg);background:var(--mint);content:"";border-radius:50%;width:9px;height:9px;position:absolute;top:18px;left:-4px}.company-logo{background:#fffffff5;border-radius:8px;place-items:center;width:54px;height:54px;padding:8px;display:grid}.company-logo img{object-fit:contain;max-width:100%;max-height:100%}.experience-head{display:block}.experience-head h3{color:var(--ink);font-weight:590}.experience-head p,.experience-meta{color:var(--quiet);margin-bottom:8px;font-size:.94rem}.experience-copy>p:last-of-type{max-width:720px;margin-bottom:0}.chip-row,.tag-row{flex-wrap:wrap;gap:8px;display:flex}.chip,.tag{border:1px solid var(--line);color:#f4efe6bf;border-radius:999px;padding:4px 9px;font-size:.82rem}.page{padding-top:128px}.page-hero{max-width:760px;margin-bottom:34px}.page-hero h1{font-size:4rem}.page-hero p{max-width:680px}.page-mark{display:none}.app-list,.article-list,.list-stack{gap:14px;max-width:940px;display:grid}.app-list-item{grid-template-columns:150px minmax(0,1fr);gap:24px;padding:20px;display:grid}.app-list-meta{color:var(--quiet);align-content:start;display:grid}.app-icon{background:#ffffff0b;border:1px solid #f4efe61f;border-radius:14px;place-items:center;width:62px;height:62px;margin-bottom:14px;display:grid;overflow:hidden;box-shadow:0 14px 32px #0003}.app-icon img{object-fit:cover;width:100%;height:100%}.app-list-main h2,.article-main h2,.list-item h2{margin-bottom:8px;font-size:1.8rem}.app-list-main p,.article-main p,.list-item p,.content p,.content li{color:var(--muted)}.app-role{color:#f4efe6b8!important}.app-list-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.article-row{grid-template-columns:150px minmax(0,1fr);gap:24px;padding:20px;display:grid}.empty-state{border:1px solid var(--line);background:#12161ea8;border-radius:8px;padding:22px}.empty-state h2{margin-bottom:8px;font-size:1.5rem}.empty-state p{margin-bottom:0}.article-main h2 a{text-decoration:none}.article-main h2 a:hover,.article-main h2 a:focus-visible{color:var(--mint);outline:none}.list-item{padding:22px}.content{max-width:760px}.content h1{font-size:4rem}.content h2{margin-top:34px}.content ul{padding-left:1.2rem}.contact-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.contact-link{min-height:112px;padding:18px;text-decoration:none;transition:border-color .16s,background .16s,transform .16s}.contact-link:hover,.contact-link:focus-visible{border-color:var(--line-strong);background:#171d27e0;outline:none;transform:translateY(-3px)}.contact-link strong,.contact-link span{display:block}.contact-link span{color:var(--muted);margin-top:8px}.footer{border-top:1px solid var(--line);color:var(--muted);padding:26px max(20px,50vw - 540px)}.footer-inner{justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-inner span:last-child{flex-wrap:wrap;gap:14px;display:flex}.footer a{color:var(--ink);text-decoration:none}@media (prefers-reduced-motion:no-preference){.portrait{animation:7s ease-in-out infinite float-soft}}@keyframes float-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@media (max-width:900px){h1{font-size:2.2rem}.resume-hero,.recent-works,.experience-section{grid-template-columns:1fr}.portrait-card{justify-items:start}.section-title{position:static}}@media (max-width:700px){:root{--wrap:min(100vw - 28px, 640px)}.site-header{padding:18px 14px}.resume-page,.page{padding-top:78px;padding-bottom:70px}.resume-hero{gap:26px;padding-top:24px}.portrait{width:132px}.page-hero h1,.content h1{max-width:100%;font-size:3rem;line-height:1.02}.intro h1,h2{font-size:2rem}.section-title h2{font-size:1.6rem}.recent-head{flex-direction:column;align-items:flex-start}.recent-head h2{font-size:1.35rem}.recent-works{padding:16px}.work-sections{grid-template-columns:1fr}.intro>p{font-size:1rem}.contact-links,.app-list-item,.article-row{grid-template-columns:1fr}.app-list-meta{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.app-list-meta span{margin-bottom:0}.app-icon{border-radius:12px;width:54px;height:54px;margin:0 4px 0 0}.experience-list{grid-template-columns:1fr;padding-left:14px}.experience-list:before{left:14px}.experience-item{grid-template-columns:54px minmax(0,1fr);gap:14px;padding-left:24px}.work-item{grid-template-columns:44px minmax(0,1fr) 30px;gap:12px}.work-icon{grid-row:1}.work-copy{grid-area:1/2}.work-arrow{grid-area:1/3;justify-self:end}.experience-head{gap:4px;display:grid}.footer-inner{flex-direction:column;align-items:flex-start}}@media (max-width:420px){.site-header{gap:8px}.top-nav{gap:2px}.top-nav a{padding:6px 7px;font-size:.9rem}.page-hero h1,.content h1{font-size:2.55rem}.intro h1{font-size:1.9rem}.experience-item,.app-list-item,.article-row,.list-item,.contact-link{padding:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
