body{--black:#000;--galaxy-back:#030303;--off-white:#fae1cf;--background:var(--galaxy-back);--accent:var(--black);background-color:var(--background);color:var(--off-white)}@font-face{font-family:lemon-milk;src:url(/font/lemon-milk.ttf)}*{font-family:sofia-pro,sans-serif;font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased}body:has(.portfolio){color-scheme:dark;--galaxy-back:#030303;--ink:#e8e6e6;--ink-dim:#a9a6a2;--accent:#cebe9c;--card:#000;--card-glow:#262924;--hairline:hsla(0,4%,91%,.16);--font-display:"lemon-milk","Futura","Avenir Next","Segoe UI",sans-serif;--font-body:"Sofia Pro","Avenir Next","Segoe UI",system-ui,sans-serif}.portfolio,.portfolio *{margin:0;padding:0;box-sizing:border-box}.portfolio{font-family:var(--font-body);overflow-x:clip}.portfolio *{font-family:inherit}html:has(.portfolio){scroll-behavior:smooth}body:has(.portfolio){margin:0;min-height:100%;background:var(--galaxy-back);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}@media (prefers-reduced-motion:reduce){html:has(.portfolio){scroll-behavior:auto}}.portfolio #scene{position:fixed;inset:0;width:100vw;height:100vh;display:block;z-index:0;pointer-events:none}.portfolio .back-up,.portfolio .footer,.portfolio .masthead,.portfolio .rail,.portfolio main{position:relative;z-index:1}.portfolio .hero,.portfolio .panel{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.portfolio .card,.portfolio .footer,.portfolio .masthead,.portfolio .rail{cursor:auto;-webkit-user-select:text;-moz-user-select:text;user-select:text}body:has(.portfolio).is-dragging,body:has(.portfolio).is-dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important}.portfolio .skip-link{position:absolute;left:-9999px;z-index:10;padding:.6rem 1rem;background:var(--card);color:var(--accent)}.portfolio .skip-link:focus{left:1rem;top:1rem}.portfolio :is(a,button,input,textarea,select,[tabindex="0"]):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.portfolio .masthead{position:fixed;top:0;left:0;display:flex;align-items:center;padding:1.25rem 1.5rem;opacity:0;pointer-events:none;transition:opacity .4s ease}.portfolio .masthead__home{display:flex;align-items:center;gap:.85rem;color:var(--ink);text-decoration:none}.portfolio .masthead__home:hover{color:var(--accent)}body:has(.portfolio).is-scrolled .masthead{opacity:1;pointer-events:auto}.portfolio .masthead__logo{display:grid;place-items:center;width:50px;height:50px;object-fit:cover;border-radius:50%;border:1px solid var(--hairline);background:radial-gradient(circle at 35% 30%,#3a3a38,#000);font-family:var(--font-display);font-size:20px;letter-spacing:.05em}.portfolio .masthead__title{font-family:var(--font-display);font-size:30px;letter-spacing:.04em}.portfolio .rail{position:fixed;top:50%;right:0;z-index:4;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;padding:1rem}.portfolio .rail__link{width:100px;padding:.45rem 0;border:1px solid var(--hairline);border-radius:28px;background:var(--card);color:var(--ink);font-family:var(--font-display);font-size:17px;letter-spacing:.03em;text-align:center;text-decoration:none;transition:color .2s ease,border-color .2s ease}.portfolio .rail__link:hover,.portfolio .rail__link[aria-current=true]{color:var(--accent);border-color:var(--accent)}.portfolio .scene-toggle-wrap{display:grid;align-self:center;flex:0 0 36px;width:36px;height:36px}.portfolio .scene-toggle{display:grid;place-items:center;align-self:center;flex:0 0 36px;width:36px;height:36px;padding:0;border:1px solid var(--hairline);border-radius:50%;background:var(--card);color:var(--ink);cursor:pointer}.portfolio .scene-toggle:hover{border-color:var(--ink)}.portfolio .scene-toggle:disabled{opacity:.4;cursor:default}body:has(.portfolio).is-scene-only{overflow:hidden}.portfolio[data-scene-only] .back-up,.portfolio[data-scene-only] .footer,.portfolio[data-scene-only] .masthead,.portfolio[data-scene-only] .rail__link,.portfolio[data-scene-only] .skip-link,.portfolio[data-scene-only] main{visibility:hidden;pointer-events:none}.portfolio[data-scene-only] .rail{background:none;border-color:transparent}.portfolio .hero{justify-content:center;min-height:100vh;padding:6rem clamp(7rem,14vw,12rem) 6rem 1.5rem;text-align:right;text-shadow:0 2px 18px rgba(0,0,0,.85)}.portfolio .hero,.portfolio .hero__content{display:flex;flex-direction:column;align-items:flex-end}.portfolio .hero__content{position:relative}.portfolio .hero__content:before{content:"";position:absolute;inset:-4rem -6rem;z-index:-1;pointer-events:none;background:radial-gradient(ellipse closest-side at 50% 50%,rgba(3,4,3,.92) 0,rgba(3,4,3,.86) 40%,rgba(3,4,3,.55) 68%,rgba(3,4,3,.18) 86%,rgba(3,4,3,0) 100%)}.portfolio .hero__eyebrow{font-family:var(--font-display);font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent)}.portfolio .hero__name{margin:.6rem 0 1rem;font-family:var(--font-display);font-size:64px;font-weight:400;line-height:1.05;letter-spacing:.02em}.portfolio .hero__tagline{max-width:30ch;font-size:17px;line-height:1.75;color:hsla(0,4%,91%,.92)}.portfolio .hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;margin-top:2rem}.portfolio .hero__drag{margin-top:2.25rem;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:hsla(0,4%,91%,.8);transition:opacity .5s ease}body:has(.portfolio).has-orbited .hero__drag{opacity:0}.portfolio .hero__hint{display:inline-flex;align-items:center;gap:.5rem;margin-top:3rem;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:hsla(0,4%,91%,.85);text-decoration:none}.portfolio .hero__hint:hover{color:var(--accent)}.portfolio .hero__hint svg{width:16px;height:16px;fill:currentColor;animation:drift 2.6s ease-in-out infinite}body:has(.portfolio).is-scrolled .hero__hint{opacity:0}@keyframes drift{0%,to{transform:translateY(0);opacity:.45}50%{transform:translateY(5px);opacity:1}}.portfolio .panel{display:flex;align-items:center;min-height:100vh;padding:6rem clamp(7rem,14vw,12rem) 6rem clamp(1.5rem,6vw,5rem)}.portfolio .panel--right{justify-content:flex-end;padding-left:clamp(7rem,14vw,12rem)}.portfolio .card{padding:clamp(1.5rem,3vw,2rem);border:1px solid hsla(0,4%,91%,.14);border-radius:10px;background:rgba(9,10,9,.93);box-shadow:0 24px 60px rgba(0,0,0,.7),0 0 60px 6px rgba(38,41,36,.5);line-height:1.65}.portfolio .card--about{align-items:center;gap:1.25rem;width:min(45vw,620px)}.portfolio .card--about,.portfolio .card--cv{display:flex;flex-direction:column;min-width:260px}.portfolio .card--cv{width:min(60vw,820px);max-height:min(70vh,620px)}.portfolio .timeline-scroll{overflow-y:auto;padding-right:.9rem;scrollbar-width:thin;scrollbar-color:hsla(41,34%,71%,.5) hsla(0,4%,91%,.07)}.portfolio .timeline-scroll::-webkit-scrollbar{width:6px}.portfolio .timeline-scroll::-webkit-scrollbar-track{background:hsla(0,4%,91%,.07);border-radius:3px}.portfolio .timeline-scroll::-webkit-scrollbar-thumb{background:hsla(41,34%,71%,.5);border-radius:3px}.portfolio .timeline-scroll::-webkit-scrollbar-thumb:hover{background:var(--accent)}.portfolio .card--work{width:min(60vw,820px);min-width:260px}.portfolio .card__heading{margin-bottom:.85rem;font-family:var(--font-display);font-size:24px;letter-spacing:.03em}.portfolio .card p+p{margin-top:.85rem}.portfolio .card__actions{text-align:center}.portfolio .avatar{display:grid;place-items:center;flex:none;width:150px;height:150px;object-fit:cover;border-radius:50%;background:radial-gradient(circle at 35% 30%,#3a3a38,#0a0a0a);font-size:34px;letter-spacing:.08em;color:var(--ink-dim)}.portfolio .avatar,.portfolio .button{border:1px solid var(--hairline);font-family:var(--font-display)}.portfolio .button{display:inline-block;padding:.55rem 1.5rem;border-radius:28px;color:var(--ink);font-size:15px;text-decoration:none;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.portfolio .button:hover{color:var(--accent);border-color:var(--accent)}.portfolio .button--primary{border-color:var(--accent);background:var(--accent);color:#14150f}.portfolio .button--primary:hover{background:#ded0b4;border-color:#ded0b4;color:#14150f}.portfolio .card__actions .button{margin-top:1.25rem}.portfolio .timeline{position:relative;list-style:none;padding-block:1rem}.portfolio .timeline:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;background:hsla(0,4%,91%,.4);transform:translateX(-50%)}.portfolio .timeline__item{position:relative;margin-bottom:2rem;padding-right:55%;text-align:right}.portfolio .timeline__item:nth-child(2n){padding-right:0;padding-left:55%;text-align:left}.portfolio .timeline__item:before{content:"";position:absolute;top:.5rem;right:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:var(--ink)}.portfolio .timeline__item:nth-child(2n):before{right:auto;left:calc(50% - 4px)}.portfolio .timeline__date{font-size:12px;font-style:italic;color:var(--ink-dim)}.portfolio .timeline__place{font-family:var(--font-display);font-size:15px;letter-spacing:.02em}.portfolio .timeline__role{font-size:13px;font-style:italic;color:var(--ink-dim)}.portfolio .timeline__text{margin-top:.5rem;font-size:13px}.portfolio .tags{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end;margin-top:.75rem;list-style:none}.portfolio .timeline__item:nth-child(2n) .tags{justify-content:flex-start}.portfolio .tags li{padding:.2rem .65rem;border:1px solid var(--hairline);border-radius:28px;font-size:11px;color:var(--ink-dim)}.portfolio .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));grid-gap:1rem;gap:1rem;list-style:none}.portfolio .tile{display:flex;flex-direction:column;gap:.75rem;height:100%;padding-top:1rem;border-top:1px solid var(--hairline);color:var(--ink);text-decoration:none}.portfolio .tile__body{display:flex;flex-direction:column;gap:.3rem}.portfolio .tile__title{overflow-wrap:anywhere;font-family:var(--font-display);font-size:14px;letter-spacing:.02em}.portfolio .tile__note{font-size:12px;line-height:1.5;color:var(--ink-dim)}.portfolio .tile:hover:not(.tile--empty){color:var(--accent)}.portfolio .tile--empty{opacity:.45}.portfolio .footer{position:fixed;left:50%;bottom:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(60%,650px);padding:.5rem 1rem;border-radius:10px 10px 0 0;background:var(--card);box-shadow:0 0 50px 5px #151716;font-family:var(--font-display);font-size:10px;letter-spacing:.04em;transform:translate(-50%,110%);transition:transform .45s ease}body:has(.portfolio).is-near-end .footer{transform:translate(-50%)}.portfolio .socials{display:flex;gap:.35rem;list-style:none}.portfolio .back-up,.portfolio .socials a{display:inline-flex;align-items:center;gap:.35rem;color:var(--ink);transition:color .2s ease}.portfolio .back-up:hover,.portfolio .socials a:hover{color:var(--accent)}.portfolio .socials svg{width:20px;height:20px;fill:currentColor}.portfolio .back-up{position:fixed;right:1rem;bottom:3rem;padding:.4rem .6rem;border:0;background:none;cursor:pointer;font-family:var(--font-display);font-size:14px;opacity:0;pointer-events:none;transition:opacity .3s ease,color .2s ease}body:has(.portfolio).is-scrolled .back-up{opacity:1;pointer-events:auto}.portfolio .back-up svg{width:18px;height:18px;fill:currentColor}.portfolio .reveal{transition:opacity .7s ease,transform .7s ease}.portfolio.is-enhanced .reveal{opacity:0;transform:translateY(28px)}.portfolio.is-enhanced .reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.portfolio.is-enhanced .reveal{opacity:1;transform:none;transition:none}.portfolio .hero__hint svg{animation:none}}@media (max-width:900px){.portfolio .masthead__title{font-size:20px}.portfolio .hero__name{font-size:38px}.portfolio .hero__tagline{font-size:14px}.portfolio .card__heading{font-size:18px}.portfolio .rail{top:auto;bottom:0;right:0;left:0;transform:none;flex-direction:row;justify-content:center;gap:.35rem;padding:.5rem;background:rgba(3,3,3,.92);border-top:1px solid var(--hairline)}.portfolio .rail__link{width:auto;padding:.4rem .85rem;font-size:12px}.portfolio .hero,.portfolio .panel{padding:5rem 1.25rem 7rem;justify-content:center}.portfolio .hero{text-align:left}.portfolio .hero,.portfolio .hero__content{align-items:flex-start}.portfolio .hero__actions{justify-content:flex-start}.portfolio .card--about,.portfolio .card--cv,.portfolio .card--work{width:100%}.portfolio .card--about{text-align:left}.portfolio .timeline:before{left:4px}.portfolio .timeline__item,.portfolio .timeline__item:nth-child(2n){padding:0 0 0 1.75rem;text-align:left}.portfolio .timeline__item:before,.portfolio .timeline__item:nth-child(2n):before{right:auto;left:0}.portfolio .tags,.portfolio .timeline__item:nth-child(2n) .tags{justify-content:flex-start}.portfolio .footer{position:relative;left:auto;width:100%;margin:0;padding:1rem 1.25rem 4.5rem;border-radius:0;transform:none;box-shadow:none;background:rgba(3,3,3,.92)}body:has(.portfolio).is-near-end .footer{transform:none}.portfolio .back-up{display:none}}.portfolio--error{display:flex;flex-direction:column;min-height:100svh;background-image:linear-gradient(hsla(0,4%,91%,.018) 1px,transparent 0),linear-gradient(90deg,hsla(0,4%,91%,.018) 1px,transparent 0);background-size:96px 96px}.portfolio--error .masthead{position:relative;opacity:1;pointer-events:auto}.portfolio .error-page{display:flex;align-items:center;flex:1 1;width:min(1120px,calc(100% - 3rem));min-height:620px;margin:0 auto;padding:4rem 0}.portfolio .error-page__content{position:relative;z-index:1;width:55%}.portfolio .error-page__code{color:var(--accent);font-family:var(--font-display);font-size:120px;line-height:1;letter-spacing:0}.portfolio .error-page__heading{margin-top:1.5rem;font-family:var(--font-display);font-size:30px;line-height:1.4;letter-spacing:0}.portfolio .error-page__message{max-width:32ch;margin-top:1rem;color:var(--ink-dim);font-size:17px;line-height:1.75}.portfolio .error-page__home{display:inline-flex;align-items:center;gap:.65rem;margin-top:2rem}.portfolio .error-page__illustration{position:absolute;right:0;bottom:0;width:45%;max-height:100%;height:auto;object-fit:contain;object-position:bottom;filter:saturate(.65)}.portfolio .error-page__footer{display:flex;justify-content:space-between;gap:1rem;width:min(1120px,calc(100% - 3rem));margin:0 auto;padding:1.5rem 0;border-top:1px solid var(--hairline);color:var(--ink-dim);font-size:12px}.portfolio .error-page__footer a{color:var(--ink-dim);text-decoration:none}.portfolio .error-page__footer a:hover{color:var(--accent)}@media (max-width:640px){.portfolio .error-page{flex-direction:column;align-items:flex-start;min-height:0;padding:2rem 0 0}.portfolio .error-page__content{width:100%}.portfolio .error-page__code{font-size:96px}.portfolio .error-page__heading{font-size:24px}.portfolio .error-page__illustration{position:relative;align-self:center;width:min(280px,80%);max-height:none;margin-top:1rem}}