:root{font-family:Arial,Helvetica,sans-serif;color:#f0e9e9;background:#050102;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}html{height:-webkit-fill-available}body{position:fixed;top:0;right:0;bottom:0;left:0}.experience{position:relative;width:100%;height:100%;height:100dvh;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 0 80%,#290e15,transparent 50%),#050102}.liquid-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none}.liquid-scene canvas{display:block;width:100%;height:100%}.identity{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}h1{margin:0;padding:0;width:clamp(69px,8.86vw,113px);line-height:0}.wordmark{display:block;width:100%;height:auto;overflow:visible}.socials{position:absolute;left:50%;bottom:calc(13% + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;align-items:center;gap:25px}.socials a,.pending-link{display:grid;place-items:center;padding:11px;color:#aa8b91;transition:color .2s}.socials a:hover{color:#fff}.socials a:focus-visible{outline:1px solid #f3bac1;outline-offset:5px}.pending-link{opacity:.6;cursor:default}.liquid-fallback canvas{display:none}.liquid-fallback:before,.liquid-fallback:after{content:"";position:absolute;width:70%;height:110%;border-radius:45%;filter:blur(50px);background:radial-gradient(ellipse,#541f2a,transparent 65%);animation:liquid-drift 28s ease-in-out infinite alternate}.liquid-fallback:before{left:-45%;top:-30%}.liquid-fallback:after{right:-40%;bottom:-40%;animation-delay:-14s}.reduced-motion:before,.reduced-motion:after{animation:none}@keyframes liquid-drift{0%{transform:translateY(-7%) rotate(-20deg)}to{transform:translateY(12%) rotate(15deg)}}@media(max-width:600px){h1{width:82px}.socials{bottom:calc(14% + env(safe-area-inset-bottom,0px));gap:23px}}.wordmark{animation:wei-float 9s ease-in-out infinite;transform-origin:center}@keyframes wei-float{0%,to{transform:translateZ(0) rotate(0)}25%{transform:translate3d(2.5px,-5px,0) rotate(.3deg)}50%{transform:translate3d(-2px,-1px,0) rotate(-.25deg)}75%{transform:translate3d(1.5px,3.5px,0) rotate(.18deg)}}@media(prefers-reduced-motion:reduce){.wordmark{animation:none}}.audio-player{position:absolute;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:8px;width:172px;height:44px;max-width:calc(100vw - 40px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));padding:6px 12px 6px 6px;background:linear-gradient(125deg,#ffffff08,transparent),#0b0b0b45;-webkit-backdrop-filter:blur(12px) saturate(.45);backdrop-filter:blur(12px) saturate(.45);box-shadow:inset 0 1px #ffffff10,0 6px 24px #00000016;border-radius:999px;color:#d1d1d1}.perimeter-progress{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.perimeter-progress svg{display:block;width:100%;height:100%;overflow:visible}.perimeter-progress use{fill:none;stroke-width:1;vector-effect:non-scaling-stroke}.perimeter-track{stroke:#ffffff16}.perimeter-loop{stroke:#b0b0b03d}.perimeter-fill{stroke:#d5d5d5;stroke-opacity:.8}.perimeter-progress .perimeter-marker{stroke:#f2f2f2;stroke-width:2}.record-button{position:relative;display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:1px solid #ffffff25;background:#171717;border-radius:50%;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}.record-cover{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;animation:record-spin 20s linear infinite}.record-control{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#00000050;color:#f5f5f5;transition:background .2s}.record-control svg{width:11px;height:11px;stroke-width:1.4}.record-button:hover .record-control{background:#00000020}.record-button:focus-visible{outline:1px solid #d8d8d8;outline-offset:4px}.record-button:disabled{cursor:wait}.track-content{flex:1;min-width:0}.track-title{font-size:10px;line-height:1.4;font-weight:500;color:#e7e7e7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-status{font-size:7.5px;line-height:1.5;color:#929292;margin-top:2px}.is-loading .record-control{animation:audio-loading 1.2s ease-in-out infinite alternate}@keyframes record-spin{to{transform:rotate(360deg)}}@keyframes audio-loading{0%{opacity:.35}to{opacity:.8}}@media(max-width:600px){.socials{bottom:calc(96px + env(safe-area-inset-bottom,0px))}}@media(prefers-reduced-motion:reduce){.record-cover,.is-loading .record-control{animation:none}}@font-face{font-family:Geist;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/geist-latin-ext-v1.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/geist-latin-v1.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/geist-mono-latin-ext-v1.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/geist-mono-latin-v1.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Geist,Arial,Helvetica,sans-serif;--font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Consolas,monospace}.portfolio-scroll{position:absolute;inset:0 0 calc(112px + env(safe-area-inset-bottom,0px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff20 transparent;-webkit-overflow-scrolling:touch}.portfolio-scroll:focus-visible{outline:1px solid #ffffff28;outline-offset:-3px}.portfolio-scroll .identity{top:50dvh;animation:identity-settle 1.8s cubic-bezier(.22,1,.36,1) 1.5s both}@keyframes identity-settle{0%{transform:translate(-50%,-50%) translateY(0) scale(1);filter:blur(0)}33.333333%{transform:translate(-50%,-50%) translateY(0) scale(.78);filter:blur(0)}65%{filter:blur(.5px)}to{transform:translate(-50%,-50%) translateY(-24dvh) scale(.78);filter:blur(0)}}.projects{width:min(540px,calc(100% - 48px));margin:calc(26dvh + 62px) auto 32px}.projects-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 3px 22px;animation:projects-heading-in .85s ease 3.15s both}.projects-eyebrow{display:block;margin-bottom:9px;color:#aaa0a6;font-family:var(--font-mono);font-size:8px;line-height:1.5;letter-spacing:1.5px}.projects-heading h2{margin:0;color:#f1edef;font-size:25px;line-height:1.2;font-weight:500;letter-spacing:-1px}.projects-heading h2>span{color:#b77a89}.projects-heading p{margin:8px 0 0;color:#aaa2a7;font-size:11px;line-height:1.6;letter-spacing:-.1px}.projects-count{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:8px 10px;border:1px solid #ffffff16;border-radius:9px;background:#ffffff03;color:#b1a6ae;font-family:var(--font-mono);font-size:9px;letter-spacing:.5px}.projects-count svg{color:#8c8089;stroke-width:1.3}.project-list{display:grid;grid-template-columns:minmax(0,1fr);gap:13px;margin:0;padding:0;list-style:none}.project-list>li{min-width:0;opacity:0;transform:translateY(14px)}.project-list>li[data-visible=true]{animation:project-in .8s cubic-bezier(.22,1,.36,1) var(--project-delay,0ms) both}.project-card{--pointer-x:50%;--pointer-y:50%;position:relative;isolation:isolate;display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:20px;min-height:150px;padding:18px;border:1px solid #ffffff19;border-radius:20px;overflow:hidden;background:linear-gradient(125deg,#ffffff06,transparent 62%),#0c0c0f85;-webkit-backdrop-filter:blur(14px) saturate(.5);backdrop-filter:blur(14px) saturate(.5);box-shadow:inset 0 1px #ffffff08,0 10px 30px #00000018;transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .25s,background-color .25s,box-shadow .35s}.project-card>*{position:relative;z-index:1}.project-card:before,.project-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s}.project-card:before{background:radial-gradient(270px circle at var(--pointer-x) var(--pointer-y),#ffffff0e,transparent 72%)}.project-card:after{z-index:2;padding:1px;background:radial-gradient(190px circle at var(--pointer-x) var(--pointer-y),#f5e1e7a0,transparent 72%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.project-card[data-spotlight=true]:before,.project-card[data-spotlight=true]:after{opacity:1}.project-card[data-pressed=true]{transform:scale(.995);border-color:#ffffff40;background-color:#24212680}.project-preview{aspect-ratio:1;min-width:0;border:1px solid #ffffff14;border-radius:13px;overflow:hidden;background:radial-gradient(ellipse at 10% 0,#af81951c,transparent 75%),#0b0a0d;box-shadow:inset 0 1px #ffffff06}.project-preview:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:16px 16px;pointer-events:none}.project-preview svg{display:block;position:relative;width:100%;height:100%;transform:translateY(-4px);transition:transform .5s cubic-bezier(.22,1,.36,1)}.preview-label{position:absolute;bottom:9px;left:10px;color:#91838d;font-family:var(--font-mono);font-size:6px;letter-spacing:1px;line-height:1}.project-preview--terminal{background:radial-gradient(ellipse at 100% 0,#ffffff07,transparent 70%),#09090b}.project-preview--structure{background:radial-gradient(ellipse at 40% 30%,#ad7c9212,transparent 70%),#0b0a0d}.project-copy{min-width:0}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.project-index{color:#92858f;font-family:var(--font-mono);font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:.8px}.project-placeholder{display:flex;align-items:center;gap:5px;color:#b8a4ae;font-family:var(--font-mono);font-size:8px;line-height:1.5;letter-spacing:.6px;text-transform:uppercase}.project-placeholder i{display:block;width:3px;height:3px;border-radius:50%;background:#af7b8a}.project-copy h3{margin:0;color:#efeaee;font-size:17px;font-weight:500;line-height:1.25;letter-spacing:-.5px}.project-copy p{max-width:38ch;margin:7px 0 0;color:#b0a8ae;font-size:11px;line-height:1.65;letter-spacing:-.1px}.project-tags{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:13px}.project-tags>span:first-child{display:inline-flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid #ffffff0e;border-radius:5px;background:#ffffff04;color:#aca0aa;font-family:var(--font-mono);font-size:7px;line-height:1.4}.project-draft{margin-left:auto;color:#8f828c;font-family:var(--font-mono);font-size:7px;line-height:1.5}@keyframes projects-heading-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes project-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(hover:hover)and (pointer:fine){.project-card:hover{transform:translateY(-2px);border-color:#ffffff2d;box-shadow:inset 0 1px #ffffff0c,0 15px 38px #00000026}.project-card:hover .project-preview svg{transform:translateY(-6px) rotate(1deg)}}.socials{bottom:calc(28px + env(safe-area-inset-bottom,0px))}@media(max-width:700px){.portfolio-scroll{bottom:calc(160px + env(safe-area-inset-bottom,0px))}.socials{bottom:calc(96px + env(safe-area-inset-bottom,0px))}.projects{width:min(540px,calc(100% - 40px));margin-top:calc(26dvh + 52px)}}@media(max-width:600px){.projects-heading{margin-bottom:18px}.projects-heading h2{font-size:23px}.projects-heading p{font-size:10px}.projects-eyebrow{font-size:7px;letter-spacing:1.2px}.project-card{grid-template-columns:82px minmax(0,1fr);gap:14px;min-height:134px;padding:14px;border-radius:17px}.project-preview{border-radius:11px}.preview-label{left:7px;bottom:7px;font-size:5px;letter-spacing:.7px}.project-copy h3{font-size:15px}.project-copy p{font-size:10px}.project-meta{margin-bottom:6px}.project-tags{margin-top:10px}.project-tags>span:first-child{font-size:6.5px;padding:3px 5px}.project-draft{font-size:6px}}@media(max-width:360px){.projects{width:calc(100% - 32px)}.project-card{grid-template-columns:68px minmax(0,1fr);gap:12px;padding:12px}.project-copy p{font-size:9px}.project-draft{display:none}.projects-count{padding:7px 8px}}@media(prefers-reduced-motion:reduce){.portfolio-scroll .identity{animation:none;transform:translate(-50%,-50%) translateY(-24dvh) scale(.78)}.projects-heading,.project-list>li[data-visible=true]{animation:none}.project-list>li{opacity:1;transform:none}.project-card,.project-preview svg,.project-card:before,.project-card:after{transition:none}.project-card:hover,.project-card[data-pressed=true]{transform:none}.project-card:hover .project-preview svg{transform:translateY(-4px)}}.identity{isolation:isolate}.identity>h1{position:relative;z-index:1}.leaf-layer{position:absolute;left:50%;top:50%;width:calc(100% + 40px);height:112px;transform:translate(-50%,-50%);overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(transparent,#000 18%,#000 76%,transparent);mask-image:linear-gradient(transparent,#000 18%,#000 76%,transparent);animation:leaf-layer-in 1.2s ease .15s both}.leaf-layer--back{z-index:0}.leaf-layer--front{z-index:2}.leaf-track{position:absolute;top:-20px;display:block;opacity:0;animation:leaf-drift var(--leaf-duration) linear var(--leaf-delay) infinite both}.leaf-art{display:block;width:100%;height:auto;overflow:visible;transform-origin:50% 58%;animation:leaf-flutter var(--leaf-flutter) ease-in-out var(--leaf-delay) infinite alternate}@keyframes leaf-layer-in{0%{opacity:0}to{opacity:1}}@keyframes leaf-drift{0%{opacity:0;transform:translateZ(0)}25%{opacity:var(--leaf-opacity)}35%{transform:translate3d(var(--leaf-sway),46px,0)}65%{opacity:var(--leaf-opacity);transform:translate3d(var(--leaf-drift),86px,0)}to{opacity:0;transform:translate3d(var(--leaf-end),132px,0)}}@keyframes leaf-flutter{0%{transform:perspective(160px) rotate(var(--leaf-tilt)) rotateY(-38deg) rotateX(12deg)}to{transform:perspective(160px) rotate(var(--leaf-turn)) rotateY(46deg) rotateX(-10deg)}}@media(prefers-reduced-motion:reduce){.leaf-layer{display:none;animation:none}.leaf-track,.leaf-art{animation:none}}.site-noise{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:url(/textures/noise-v2.svg) repeat;background-size:160px 160px;mix-blend-mode:luminosity;opacity:.065}
