html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:Geist,Arial,sans-serif;font-size:15px;line-height:1.7;color:#1a1a1a;background:#fff radial-gradient(#00000012 1px,transparent 1px) 0 0/24px 24px;letter-spacing:-.3px}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:#222;text-decoration:underline;text-decoration-color:#0004;text-underline-offset:3px}a:hover{color:#777}button:focus-visible,a:focus-visible{outline:2px solid #4979d4;outline-offset:5px;border-radius:4px}.portfolio{max-width:1024px;margin:auto;padding:50px 171px 48px;min-height:100vh;background:white;border-inline:1px solid #00000014}.avatar{position:relative;display:block;width:46px;height:46px;border-radius:50%;margin-bottom:36px;background:#edeae3;overflow:hidden;box-shadow:0 2px 8px #0000000f;border:1px solid #00000014}.avatar img{transition:filter .3s,opacity .3s}.avatar span{position:absolute;inset:0;display:grid;place-items:center;font-family:monospace;font-weight:600;background:#202020;color:#bdf1c9;opacity:0;transition:opacity .25s}.avatar:hover span,.avatar.reveal span{opacity:1}.bio{margin-bottom:64px}.bio h1{font-size:15px;font-weight:400;line-height:1.7;margin-bottom:24px}.bio strong{font-weight:600;color:#111}.bio-details{color:#555;margin-bottom:24px}.bio-details a{font-weight:500}.social-line{color:#555;margin-top:12px}.chip{display:inline-flex;align-items:center;gap:5.5px;padding:3.5px 9px;border:1px solid #00000014;border-radius:999px;background:#f3f3f3;font-size:12.5px;line-height:1.1;font-weight:500;color:#333;vertical-align:middle;text-decoration:none;transition:transform .15s,background .15s}.chip:hover{transform:translateY(-1px);background:#e8e8e8}.mail-icon{font-weight:700;color:#df5146}.hatched-divider{height:12px;background:repeating-linear-gradient(135deg,transparent,transparent 4px,#0000000d 4px,#0000000d 5px);border-block:1px solid #00000009;margin:40px -171px 12px}.filter-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;background:#fffffff5;backdrop-filter:blur(12px);padding:16px 0 20px;margin-bottom:12px;scroll-margin-top:12px}.filter-bar nav button{font-size:15px;color:#8c8c8c;transition:color .2s;white-space:nowrap}.filter-bar nav button:hover,.filter-bar nav button[aria-pressed=true]{color:#111}.filter-bar nav button[aria-pressed=true]{font-weight:500}.mini-avatar{width:0;opacity:0;overflow:hidden;flex-shrink:0;border-radius:50%;transition:width .2s,opacity .2s;display:none}.sticky-mail{display:none;margin-left:auto}.is-sticky .mini-avatar{width:30px;opacity:1;display:block}.is-sticky .sticky-mail{display:inline-flex}.is-sticky nav{gap:12px}.is-sticky nav button{font-size:13px}.project-card{display:block;text-align:left;width:100%;animation:enter .35s both}.project-art{aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:var(--bg);position:relative;margin-bottom:20px;display:grid;place-items:center}.project-art>*{transition:transform .5s cubic-bezier(.2,.8,.2,1)}.project-card:hover .project-art>*{transform:translateY(-4px) scale(1.025)}.project-info{padding-inline:4px}.project-info h2{font-size:15px;font-weight:500;margin-bottom:6px;display:flex;justify-content:space-between}.project-info h2 span{opacity:0;transition:opacity .2s}.project-card:hover h2 span{opacity:1}.project-info p{font-size:14.5px;color:#666}.browser{background:white;width:85%;border-radius:5px;box-shadow:0 15px 35px #0002;border:1px solid #0000000d;overflow:hidden}.browser-top{height:17px;background:#fafafa;border-bottom:1px solid #eee;display:flex;align-items:center;gap:3px;padding:0 7px}.browser-top i{height:3px;width:3px;border-radius:50%;background:#ccc}.dashboard{padding:15px;font-size:6px;color:#83838c;display:grid;grid-template-columns:38px 1fr;gap:12px}.sidebar{border-right:1px solid #eee;line-height:3}.sidebar b{color:#4c59c9}.dash-main h3{color:#252533;font-size:10px;font-weight:600;margin-bottom:3px}.metrics{display:flex;gap:5px;margin:10px 0}.metrics div{padding:7px;background:#f7f8fc;border:1px solid #f0f0f5;border-radius:4px;flex:1}.metrics strong{display:block;font-size:10px;color:#292b39}.chart{height:55px;display:flex;align-items:end;gap:5px;padding:5px;background:repeating-linear-gradient(0deg,#eee 0,#eee 1px,transparent 1px,transparent 14px)}.chart i{background:var(--accent);flex:1;border-radius:2px 2px 0 0;height:var(--height)}.phone{width:106px;background:#fff;border:4px solid #1c2228;border-radius:19px;padding:15px 8px;box-shadow:8px 15px 25px #0003;font-size:7px;transform:rotate(-8deg);min-height:184px}.phone:before{content:'';position:absolute;top:5px;left:38%;width:24%;height:5px;background:#222;border-radius:8px}.phone h3{font-size:10px;font-weight:600}.phone .balance{background:var(--accent);border-radius:8px;padding:12px 7px;margin:10px 0;color:white}.phone strong{font-size:20px;display:block}.phone-row{display:flex;justify-content:space-between;border-bottom:1px solid #eee;padding:6px 0}.phone-pair{display:flex;align-items:center;gap:14px}.phone-pair .phone+ .phone{transform:rotate(8deg) translateY(15px);background:#f9f9fb}.editor{width:85%;background:#1a202b;color:#d0d6df;border-radius:7px;box-shadow:0 18px 30px #0003;font:8px/1.9 monospace;overflow:hidden}.editor pre{padding:16px;white-space:pre-wrap}.editor .browser-top{background:#252d3a;border-color:#354052}.code-purple{color:#cba3f8}.code-green{color:#a3dba7}.landing{width:84%;background:#fdfcf8;box-shadow:0 15px 30px #0002;border-radius:4px;overflow:hidden}.landing-nav{font-size:6px;border-bottom:1px solid #deddd6;padding:8px 12px;display:flex;justify-content:space-between}.landing-body{padding:20px 15px;background:radial-gradient(ellipse at 85% 80%,var(--accent),transparent 65%);min-height:139px}.landing-body h3{font:24px/1.05 Georgia,serif;max-width:150px;margin:8px 0}.landing-body small{font-size:5px}.landing-body span{font-size:6px;background:#252c29;color:white;border-radius:20px;padding:5px 8px;display:inline-block;margin-top:10px}.orb{height:120px;width:120px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#f8e2ff,#a598f3 40%,#5245bc 70%,#181139);box-shadow:20px 30px 45px #27205240,inset -8px -5px 20px #514aba;animation:float 6s ease-in-out infinite}.orb:after{content:'✳';display:grid;place-items:center;color:#fff9;font-size:65px;position:absolute;inset:0}.experiment-label{position:absolute;bottom:17px;left:20px;font-size:8px;letter-spacing:2px;font-family:monospace;color:#605788}footer{border-top:1px solid #00000014;margin-top:80px;padding-top:24px;color:#8c8c8c;font-size:12px}footer button:hover{color:#111}.skip-link{position:fixed;top:-100px;left:16px;background:white;padding:10px;z-index:30}.skip-link:focus{top:12px}dialog{width:min(700px,calc(100% - 32px));max-height:90dvh;margin:auto;border:1px solid #ddd;border-radius:12px;padding:0;box-shadow:0 25px 100px #0003}dialog::backdrop{background:#1118;backdrop-filter:blur(5px)}.dialog-content{position:relative}.close-button{position:absolute;right:12px;top:12px;background:white;border:1px solid #ddd;border-radius:50%;width:34px;height:34px;font-size:24px;line-height:1;z-index:2}.dialog-content .project-art{margin:0;border-radius:0;max-height:350px}.dialog-copy{padding:28px}.dialog-copy h2{font-size:24px;font-weight:500;margin-bottom:12px}.dialog-copy p{color:#666;margin-bottom:20px}.dialog-copy .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;margin-bottom:8px}.sample-note{font-size:12px;margin-top:24px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#242424;color:white;border-radius:8px;padding:12px 20px;font-size:13px;width:max-content;max-width:calc(100% - 32px);z-index:30;transition:.2s}#toast.visible{opacity:1;transform:translate(-50%,0)}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes float{50%{transform:translateY(-7px) rotate(8deg)}}@media(max-width:1000px) and (min-width:769px){.portfolio{padding-inline:100px}.hatched-divider{margin-inline:-100px}}@media(max-width:768px){.portfolio{padding:44px 20px 48px}.hatched-divider{margin-inline:-20px}.is-sticky .mini-avatar,.is-sticky .sticky-mail{display:none}.is-sticky nav button{font-size:15px}.filter-bar,.is-sticky nav{gap:16px}#projects{grid-template-columns:1fr}.project-art{aspect-ratio:4/3}.browser,.landing,.editor{max-width:380px}.dashboard{font-size:8px}.dash-main h3{font-size:13px}.chart{height:80px}.phone{width:125px;min-height:210px}.editor{font-size:11px}}@media(max-width:480px){.portfolio{padding:36px 16px 40px}.hatched-divider{margin-inline:-16px}.avatar{width:42px;height:42px;margin-bottom:28px}.bio{margin-bottom:24px}.desktop-break{display:none}.filter-bar nav{column-gap:15px}.filter-bar nav button,.is-sticky nav button{font-size:14px}.dialog-copy{padding:22px}.phone{width:105px;min-height:185px}.editor{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
