@font-face{font-family:Inter;src:url(../fonts/InterVariable.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(../fonts/InterVariable-Italic.ttf)format("truetype");font-weight:100 900;font-style:italic;font-display:swap}:root{--bg:#0b0a09;--bg-elevated:#141210;--text:#f3eee4;--muted:#8f8778;--line:#f3eee41f;--accent:#ff6b2c;--accent-soft:#d4a373;--ease:cubic-bezier(.22, 1, .36, 1);--nav-h:4.75rem}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:var(--bg);color:var(--text);letter-spacing:.01em;-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:Inter,system-ui,sans-serif;font-weight:400}body{overflow-x:hidden}@media (pointer:fine){body.has-cursor,body.has-cursor a,body.has-cursor button,body.has-cursor input,body.has-cursor label,body.has-cursor textarea{cursor:none}}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button{background:0 0;border:0;padding:0}::selection{background:var(--accent);color:var(--bg)}.page-enter-active,.page-leave-active{transition:opacity .45s var(--ease),transform .45s var(--ease)}.page-enter-from,.page-leave-to{opacity:0;transform:translateY(12px)}.wrap{width:min(1180px,100% - 2.5rem);margin-inline:auto}.kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.75rem;font-size:.72rem;display:flex}.kicker:before{content:"";background:var(--accent);width:1.75rem;height:1px}.serif{letter-spacing:-.04em;font-family:Inter,system-ui,sans-serif;font-weight:500}.reveal{opacity:0;transition:opacity .9s var(--ease),transform .9s var(--ease);transform:translateY(28px)}.reveal.is-in{opacity:1;transform:none}.reveal-delay-1{transition-delay:80ms}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}.reveal-delay-4{transition-delay:.32s}.grain{z-index:40;opacity:.09;mix-blend-mode:overlay;background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%3E%3Cfilter%20id%3D%22a%22%3E%3CfeTurbulence%20baseFrequency%3D%22.8%22%20numOctaves%3D%224%22%20stitchTiles%3D%22stitch%22%20type%3D%22fractalNoise%22%2F%3E%3C%2Ffilter%3E%3Cpath%20d%3D%22M0%200h180v180H0z%22%20filter%3D%22url\(%23a\)%22%20opacity%3D%22.9%22%2F%3E%3C%2Fsvg%3E);inset:0}.grain,.site-cursor{pointer-events:none;position:fixed}.site-cursor{z-index:80;mix-blend-mode:difference;top:0;left:0}.site-cursor__dot,.site-cursor__ring{border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.site-cursor__dot{background:#fff;width:6px;height:6px}.site-cursor__ring{width:34px;height:34px;transition:width .35s var(--ease),height .35s var(--ease),background .35s var(--ease);border:1px solid #ffffffb3}.site-cursor.is-hover .site-cursor__ring{background:#ffffff14;width:64px;height:64px}.nav{z-index:50;height:var(--nav-h);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#0b0a09eb,#0b0a0900);justify-content:space-between;align-items:center;padding-inline:1.5rem;display:flex;position:fixed;top:0;left:0;right:0}.nav__mark{letter-spacing:.28em;text-transform:uppercase;font-size:.95rem}.nav__links{color:var(--muted);gap:1.75rem;font-size:.82rem;display:flex}.nav__links a{transition:color .3s;position:relative}.nav__links a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .35s var(--ease);position:absolute;bottom:-.35rem;left:0;transform:scaleX(0)}.nav__links a.router-link-active,.nav__links a:hover{color:var(--text)}.nav__links a.router-link-active:after,.nav__links a:hover:after{transform:scaleX(1)}.nav__status{letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft);align-items:center;gap:.5rem;font-size:.72rem;display:flex}.nav__pulse{background:#7dff9a;border-radius:50%;width:7px;height:7px;animation:2.4s infinite pulse;box-shadow:0 0 #7dff9a99}@keyframes pulse{70%{box-shadow:0 0 0 8px #7dff9a00}}.hero{padding:calc(var(--nav-h) + 1.25rem) 0 4.5rem;align-content:start;display:grid}.hero__top{justify-content:space-between;align-items:flex-end;gap:2rem;margin:0 0 1.25rem;display:flex}.hero__top p{margin:0}.hero__name{margin:0;font-size:clamp(3rem,8vw,6.5rem);line-height:.88}.hero__meta{text-align:right;color:var(--muted);padding-bottom:.8rem;font-size:.85rem}.hero__rule{background:var(--line);height:1px;margin:.5rem 0 2rem}.hero__bottom{grid-template-columns:1.4fr .8fr;align-items:end;gap:2rem;display:grid}.hero__tagline{max-width:34rem;margin:0;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.25}.hero__seeking{max-width:34rem;color:var(--muted);margin:1rem 0 0;font-size:1rem;line-height:1.55}.hero__actions{justify-content:flex-end;align-items:center;gap:1.25rem;display:flex}.btn{border:1px solid var(--line);border-radius:999px;justify-content:center;align-items:center;width:max-content;height:2.75rem;padding:0 1.2rem;transition:border-color .3s,background .3s,color .3s;display:inline-flex}.btn:hover{border-color:var(--accent);background:var(--accent);color:var(--bg)}.btn--ghost{color:var(--muted);border-color:#0000;padding-inline:.2rem}.btn--ghost:hover{color:var(--text);background:0 0;border-color:#0000}.section{padding:7rem 0}.section__head{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:3rem;display:flex}.section__title{margin:.4rem 0 0;font-size:clamp(2.2rem,4.6vw,4rem);line-height:.9}.work{grid-template-columns:1fr 1.05fr;align-items:center;gap:3rem;min-height:70vh;display:grid}.work-list{flex-direction:column;display:flex}.work-item{border-top:1px solid var(--line);text-align:left;grid-template-columns:3.2rem 1fr;align-items:baseline;gap:1rem;padding:1.35rem 0;transition:color .3s;display:grid}.work-item:last-child{border-bottom:1px solid var(--line)}.work-item__num,.work-item__year{color:var(--muted);letter-spacing:.12em;font-size:.78rem}.work-item__title{font-size:clamp(1.6rem,3vw,2.5rem);line-height:1}.work-item.is-active,.work-item:hover{color:var(--accent)}.work-stage{background:var(--bg-elevated);border-radius:1.25rem;min-height:62vh;position:relative;overflow:hidden}.work-stage img{-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;width:100%;height:100%;min-height:62vh}.work-stage--device{background:#d7eef7;place-items:center;display:grid}.work-stage--device img{-o-object-fit:contain;object-fit:contain;width:auto;max-width:min(240px,46%);height:auto;min-height:0;max-height:48vh}.work-stage--logo{background:#fff;place-items:center;display:grid}.work-stage--logo img{-o-object-fit:contain;object-fit:contain;width:auto;max-width:min(160px,38%);height:auto;min-height:0;max-height:28vh}.work-stage--device .work-stage__caption,.work-stage--logo .work-stage__caption{color:#1c1917;text-shadow:none}.work-stage--contain img{-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;padding:1.75rem 1.75rem 4.5rem}.work-stage__caption{color:#fff;text-shadow:0 8px 24px #00000073;justify-content:space-between;gap:1rem;font-size:.82rem;display:flex;position:absolute;bottom:1.25rem;left:1.25rem;right:1.25rem}.about{grid-template-columns:1.1fr .9fr;align-items:start;gap:4rem;display:grid}.about__bio{color:#d8d1c4;margin:1.5rem 0 0;font-size:1.2rem;line-height:1.65}.about__focus{flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.stats{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem;display:grid}.stat{border-top:1px solid var(--line);padding-top:1rem}.stat strong{font-family:Inter,system-ui,sans-serif;font-size:2.1rem;font-weight:500;display:block}.stat span{color:var(--muted);font-size:.82rem}.about__frame{position:relative}.about__frame img{-o-object-fit:cover;object-fit:cover;filter:grayscale(.25)contrast(1.05);border-radius:1.25rem 1.25rem 4rem;width:100%;height:620px}.about__badge{background:var(--accent);color:var(--bg);border-radius:1rem;max-width:14rem;padding:1.1rem 1.3rem;position:absolute;bottom:2rem;left:-1.5rem}.timeline{flex-direction:column;display:flex}.job{border-top:1px solid var(--line);grid-template-columns:1fr 9.5rem;gap:1.5rem;padding:1.75rem 0;display:grid}.job:last-child{border-bottom:1px solid var(--line)}.job__period,.job__place{color:var(--muted);font-size:.82rem}.job h3{margin:0 0 .35rem;font-size:1.5rem}.education-row,.job p{color:#d8d1c4;margin:0;line-height:1.6}.education-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.75rem 0;font-size:1.05rem}.skills{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.skill-card{border:1px solid var(--line);background:#ffffff05;border-radius:1.1rem;padding:1.5rem}.skill-card h3{margin:0 0 1.1rem;font-size:1.6rem}.skill-card li{border-top:1px solid var(--line);color:#d8d1c4;padding:.55rem 0;list-style:none}.skill-card ul{margin:0;padding:0}.contact{border:1px solid var(--line);background:radial-gradient(circle at 100% 0,#ff6b2c29,transparent 38%),var(--bg-elevated);border-radius:1.75rem;grid-template-columns:.9fr 1.1fr;gap:3rem;padding:3rem;display:grid}.contact h2{margin:.5rem 0 1rem;font-size:clamp(2.8rem,6vw,5.2rem);line-height:.88}.contact p{color:#d8d1c4;line-height:1.7}.contact__direct{flex-direction:column;gap:.35rem;margin-top:1.5rem;display:flex}.contact__direct a{color:var(--accent-soft);transition:color .3s}.contact__direct a:hover{color:var(--accent)}.form{gap:1rem;display:grid}.field{gap:.4rem;display:grid}.field span{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.field input,.field textarea{border:1px solid var(--line);background:#0b0a098c;border-radius:.85rem;outline:none;width:100%;padding:.95rem 1rem;transition:border-color .3s}.field textarea{resize:vertical;min-height:9rem}.field input:focus,.field textarea:focus{border-color:var(--accent)}.form__status{min-height:1.4rem;color:var(--accent-soft);font-size:.9rem}.form__status.is-error{color:#ff8a70}.turnstile{min-height:65px}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:1rem;padding:2rem 0 2.5rem;font-size:.85rem;display:flex}.footer__links{gap:1.25rem;display:flex}.project-hero{padding-top:calc(var(--nav-h) + 2.5rem)}.project-hero img{-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;border-radius:1.5rem;width:100%;height:min(72vh,760px)}.project-hero__frame:not(.project-hero__frame--device):not(.project-hero__frame--logo){background:var(--bg-elevated);border-radius:1.5rem;overflow:hidden}.project-hero__frame:not(.project-hero__frame--device):not(.project-hero__frame--logo) img{border-radius:0;display:block}.project-hero img.project-hero__img--ui{-o-object-fit:contain;object-fit:contain;-o-object-position:top center;object-position:top center;height:auto;max-height:min(72vh,760px)}.project-hero__frame--device{background:#d7eef7;border-radius:1.5rem;place-items:center;height:min(62vh,680px);display:grid;overflow:hidden}.project-hero__frame--device img,.project-hero__img--device{-o-object-fit:contain;object-fit:contain;border-radius:0;width:auto;max-width:min(240px,46%);height:auto;max-height:48vh}.project-hero__frame--logo{background:#fff;border-radius:1.5rem;place-items:center;height:min(62vh,680px);display:grid;overflow:hidden}.project-hero__frame--logo img,.project-hero__img--logo{-o-object-fit:contain;object-fit:contain;border-radius:0;width:auto;max-width:min(160px,38%);height:auto;max-height:28vh}.project-products{gap:1.75rem;margin-top:2.25rem;display:grid}.project-products article{border-top:1px solid var(--line);padding-top:1.5rem}.project-products h2{letter-spacing:.04em;margin:0 0 .65rem;font-size:1.15rem}.project-products p{margin:0;font-size:1.05rem}.project-logo{width:min(100%,220px);height:auto;margin-bottom:1.25rem;display:block}.project-body{grid-template-columns:1.3fr .7fr;gap:3rem;padding:3.5rem 0 6rem;display:grid}.project-body h1{margin:.4rem 0 1rem;font-size:clamp(3rem,7vw,6rem);line-height:.88}.project-body p{color:#d8d1c4;font-size:1.15rem;line-height:1.75}.meta-list{place-content:start;justify-items:start;gap:1.2rem;display:grid}.meta-list div{border-top:1px solid var(--line);padding-top:1rem}.meta-list span{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;font-size:.72rem;display:block}.stack{flex-wrap:wrap;gap:.45rem;display:flex}.chip{border:1px solid var(--line);color:var(--accent-soft);border-radius:999px;padding:.3rem .65rem;font-size:.78rem}.error-page{text-align:center;place-items:center;min-height:100svh;padding:2rem;display:grid}.error-page h1{margin:0;font-size:clamp(4rem,12vw,9rem)}.work-stage__caption span:last-child{display:none}@media (width>=901px){.work-stage__caption span:last-child{-webkit-line-clamp:2;text-align:right;-webkit-box-orient:vertical;max-width:62%;display:-webkit-box;overflow:hidden}}@media (width<=900px){.nav__status{display:none}.nav__links{gap:1rem;font-size:.75rem}.about,.contact,.footer,.hero__bottom,.hero__top,.job,.project-body,.skills,.work{grid-template-columns:1fr}.footer,.hero__actions,.hero__meta{text-align:left;justify-content:flex-start}.about__frame img,.work-stage,.work-stage img{height:42vh;min-height:42vh}.work-stage--device img,.work-stage--logo img{height:auto;min-height:0;max-height:34vh}.about__badge{bottom:1rem;left:1rem}.section{padding:4.5rem 0}.contact{padding:1.5rem}}@media (pointer:coarse){.grain,.site-cursor{display:none}}
