:root{--dark:#1c1c1c;--dark-2:#161616;--cream:#e9e3dc;--white:#fff;--rust:#c76526;--rust-2:#e76f00;--lime:#d1ef53;--coral:#ff7262;--blue:#19bcfe;--purple:#a259ff;--muted:#848484;--edge:#2a2a2a;--display:"Bowlby One",system-ui,sans-serif;--body:"Inter",system-ui,sans-serif;--mono:"VT323",monospace;--quote-attr:"Geo",sans-serif;--maxw:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dark);color:var(--cream);font-family:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul{margin:0;padding:0;list-style:none}button{font-family:inherit;cursor:pointer}.gridlines{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:repeating-linear-gradient(90deg,hsla(32,23%,89%,.035) 0,hsla(32,23%,89%,.035) 1px,transparent 0,transparent calc(100% / 9))}.footer,main{position:relative;z-index:1}.nav{position:relative;z-index:100}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.display{font-family:var(--display);line-height:.95;letter-spacing:-.5px}.mono{font-family:var(--mono)}.section{padding:60px 0;position:relative}.pill{display:block;width:max-content;max-width:100%;margin:0 auto 48px;background:var(--lime);color:var(--dark);font-size:clamp(30px,4.6vw,46px);padding:18px 56px;border-radius:22px;text-align:center}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}@media (max-width:720px){.section{padding:80px 0}}.btn{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:16px;padding:14px 26px;border-radius:999px;border:2px solid transparent;transition:transform .2s ease,background .2s ease,color .2s ease}.btn:hover{transform:translateY(-2px)}.btn--sm{padding:10px 20px;font-size:14px}.btn--lime{background:var(--lime);color:var(--dark)}.btn--ghost{border-color:var(--cream);color:var(--cream)}.btn--ghost:hover{background:var(--cream);color:var(--dark)}.nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s ease,box-shadow .3s ease,-webkit-backdrop-filter .3s ease;transition:background .3s ease,backdrop-filter .3s ease,box-shadow .3s ease;transition:background .3s ease,backdrop-filter .3s ease,box-shadow .3s ease,-webkit-backdrop-filter .3s ease}.nav--scrolled{background:hsla(0,0%,8%,.8);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 0 hsla(32,23%,89%,.08)}.nav__inner{display:flex;align-items:center;justify-content:space-between;height:78px}.nav__logo{font-family:var(--display);font-size:14px;line-height:1.05;letter-spacing:.5px;white-space:nowrap;color:var(--dark);background:var(--lime);padding:11px 18px;border-radius:12px}.nav__logo span{color:var(--rust)}.nav__links{display:flex;align-items:center;gap:30px}.nav__links a{font-weight:700;font-size:14px;letter-spacing:1px;text-transform:uppercase;position:relative}.nav__links a:not(.nav__cta):after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--lime);transition:width .25s ease}.nav__links a:not(.nav__cta):hover:after{width:100%}.nav__cta{background:var(--lime);color:var(--dark)!important;padding:10px 22px;border-radius:10px}.nav__cta:hover{background:#c2e63f}.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:6px}.nav__burger span{width:26px;height:2px;background:var(--cream);transition:.3s}.edgeword{position:absolute;top:50%;font-family:var(--display);font-size:22vh;line-height:1;color:var(--edge);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;white-space:nowrap;z-index:0}.edgeword--left{left:-.18em;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl}.edgeword--right{right:-.18em;transform:translateY(-50%);writing-mode:vertical-rl}.hero{position:relative;padding:40px 0 60px;overflow:hidden}.hero__inner{position:relative;display:grid;grid-template-columns:1fr;justify-items:center;min-height:64vh}.hero__scroll{position:absolute;left:8px;top:52%;transform:rotate(180deg);writing-mode:vertical-rl;font-size:22px;letter-spacing:4px;color:var(--cream);opacity:.75}.hero__roles{position:absolute;right:0;top:48%;display:flex;flex-direction:column;gap:18px}.hero__roles li{display:flex;align-items:center;gap:10px;font-size:22px;letter-spacing:1px;color:var(--cream)}.hero__roledot{width:14px;height:14px;border-radius:50%;background:var(--lime)}.hero__roles li:nth-child(2) .hero__roledot{background:var(--rust)}.hero__roles li:nth-child(3) .hero__roledot{background:var(--coral)}.hero__roles li:nth-child(4) .hero__roledot{background:var(--blue)}.aboutcard__roles li:first-child .hero__roledot{background:var(--dark)}.aboutcard__roles li:nth-child(2) .hero__roledot{background:var(--rust)}.aboutcard__roles li:nth-child(3) .hero__roledot{background:var(--coral)}.aboutcard__roles li:nth-child(4) .hero__roledot{background:var(--blue)}.hero__name{position:relative;z-index:3;text-align:center;color:var(--white);font-size:clamp(40px,9.5vw,128px);letter-spacing:-1px;margin:0}.hero__name span{display:block}.hero__stage{position:relative;margin-top:-6%;width:min(560px,86vw);aspect-ratio:1/1;display:grid;place-items:end center}.arcs{position:absolute;inset:0;width:100%;height:100%;z-index:1}.hero__photo{position:relative;z-index:2;max-height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 30px 50px rgba(0,0,0,.55))}.aboutcard{position:relative;z-index:4;display:grid;grid-template-columns:auto 1fr;grid-gap:36px;gap:36px;align-items:center;background:var(--lime);color:var(--dark);border-radius:28px;padding:40px 48px;margin-top:-40px}.aboutcard__title{font-size:clamp(30px,4vw,50px);line-height:.92}.aboutcard__text{margin:0;font-size:18px;line-height:1.6;font-weight:500}.aboutcard__text strong{font-weight:800}.aboutcard__roles{display:none}.toolbar{position:relative;z-index:5;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;background:var(--dark-2);border:1px solid hsla(32,23%,89%,.1);border-radius:999px;padding:16px 28px;margin:26px auto 0;width:max-content;max-width:100%}.toolbar--about{margin:36px auto 0}.toolbar__item{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:#202020;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.08);transition:transform .2s ease,background .2s ease}.toolbar__item:hover{transform:translateY(-3px);background:#262626}.tool-ico{width:26px;height:26px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.quotes{padding:60px 0 30px}.quote{margin:0;padding:40px 0;border-top:2px solid hsla(32,23%,89%,.1)}.quote__text{font-weight:900;font-size:clamp(28px,5vw,64px);line-height:1;letter-spacing:-1px;margin:0 0 16px;text-transform:lowercase;color:var(--cream)}.quote__author{font-family:var(--quote-attr);font-size:30px;color:var(--rust)}.projects__list{display:flex;flex-direction:column;gap:80px}.project{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:44px;gap:44px;align-items:center}.project__media{position:relative;display:block;aspect-ratio:2.15/1;border-radius:16px;overflow:hidden;background:var(--dark-2);border:1px solid hsla(32,23%,89%,.1);box-shadow:0 24px 60px rgba(0,0,0,.5)}.project__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.project:hover .project__media img{transform:scale(1.04)}.project__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.project__title{font-size:clamp(28px,3.4vw,44px);color:var(--cream);margin:0 0 6px}.project__kind{font-size:20px;letter-spacing:2px;color:var(--lime);margin:0}.project__figma{width:28px;flex-shrink:0}.project__summary{font-size:16px;line-height:1.7;color:hsla(32,23%,89%,.78);margin:0 0 24px}.project__links{display:flex;gap:14px;flex-wrap:wrap}.projects__more{text-align:center;font-size:clamp(34px,6vw,72px);color:var(--white);margin:64px 0 0;line-height:1.05}.about__top{display:grid;grid-template-columns:.95fr 1.05fr;grid-gap:48px;gap:48px;align-items:center}.about__photo{border-radius:16px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.45);background:radial-gradient(circle at 50% 30%,#2a2a2a,var(--dark-2) 70%)}.about__photo img{width:100%;object-fit:contain}.about__photo--full{background:none;aspect-ratio:4/5}.about__photo--full img{height:100%;object-fit:cover;object-position:center 25%}.about__intro p{font-size:18px;line-height:1.75;color:hsla(32,23%,89%,.86);margin:0}.filmblock{margin-top:70px;background:var(--lime);color:var(--dark);border-radius:28px;padding:40px}.filmblock__intro{display:flex;gap:26px;align-items:flex-start;margin-bottom:32px}.filmblock__tag{font-size:22px;letter-spacing:2px;background:var(--dark);color:var(--lime);padding:8px 16px;border-radius:10px;white-space:nowrap}.filmblock__intro p{margin:0;font-size:18px;line-height:1.6;font-weight:500}.filmblock__grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:20px;gap:20px}.feature{background:var(--dark);color:var(--cream);border-radius:18px;padding:24px}.feature__hand{display:inline-block;font-size:26px;color:var(--lime);margin-bottom:10px}.feature__title{font-size:19px;font-weight:800;margin:0 0 10px}.feature__body{font-size:14px;line-height:1.6;color:hsla(32,23%,89%,.72);margin:0}.about__bottom{display:grid;grid-template-columns:1fr auto;grid-gap:40px;gap:40px;align-items:center;margin-top:60px}.about__skills{display:flex;flex-direction:column;gap:12px}.about__skills li{display:flex;align-items:center;gap:14px;font-size:28px;color:var(--cream)}.about__skilltick{color:var(--rust)}.resumecard{display:flex;align-items:center;gap:18px;background:var(--lime);color:var(--dark);border-radius:22px;padding:26px 40px;transition:transform .2s ease}.resumecard:hover{transform:translateY(-3px)}.resumecard__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--dark);color:var(--lime);font-size:24px}.resumecard__label{font-size:30px}.about__outro{margin:60px 0 0;font-size:18px;line-height:1.75;color:hsla(32,23%,89%,.86);max-width:880px}.contact__inner{display:grid;grid-template-columns:1fr 1fr;grid-gap:56px;gap:56px;align-items:center}.contact__intro{font-size:19px;line-height:1.75;color:hsla(32,23%,89%,.85)}.contact__email{display:inline-block;margin-top:20px;font-size:26px;color:var(--lime);word-break:break-all}.contact__email:hover{text-decoration:underline}.contact__form{display:flex;flex-direction:column;gap:18px;background:var(--dark-2);border:1px solid hsla(32,23%,89%,.1);border-radius:22px;padding:34px}.contact__form label{display:flex;flex-direction:column;gap:8px;font-size:15px;font-weight:600}.contact__form input,.contact__form textarea{background:#1f1f1f;border:1px solid hsla(32,23%,89%,.14);border-radius:12px;padding:14px 16px;color:var(--cream);font-family:inherit;font-size:16px;resize:vertical;transition:border-color .2s ease}.contact__form input:focus,.contact__form textarea:focus{outline:none;border-color:var(--lime)}.contact__send{justify-content:center;background:var(--rust);color:var(--white);font-weight:900;letter-spacing:3px;margin-top:6px}.contact__send:hover{background:var(--rust-2)}.footer{background:var(--rust);color:var(--cream);padding:60px 0 26px}.footer__inner{display:grid;grid-template-columns:2fr 1fr 1fr auto;grid-gap:40px;gap:40px;align-items:start}.footer__logo{font-family:var(--display);font-size:22px;line-height:1.05;color:var(--white)}.footer__logo span{color:var(--lime)}.footer__tag{margin:16px 0 0;color:hsla(0,0%,100%,.85);max-width:260px}.footer__head{font-size:20px;color:var(--white);margin:0 0 16px;letter-spacing:1.5px}.footer__col li{margin-bottom:10px}.footer__col a{color:hsla(0,0%,100%,.9)}.footer__col a:hover{color:var(--lime)}.footer__socials{display:flex;gap:12px}.footer__social{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:rgba(0,0,0,.18);transition:transform .2s ease,background .2s ease}.footer__social:hover{transform:translateY(-2px);background:rgba(0,0,0,.32)}.social-ico{width:22px;height:22px;background-color:var(--cream);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;transition:background-color .2s ease}.footer__social:hover .social-ico{background-color:var(--lime)}.footer__cta{display:inline-block;background:var(--dark);color:var(--cream);padding:14px 26px;border-radius:12px;font-weight:700}.footer__cta:hover{background:#000}.footer .footer__bottom{margin-top:48px;padding-top:30px;padding-bottom:8px;border-top:1px solid hsla(0,0%,100%,.25);font-size:14px;color:hsla(0,0%,100%,.85)}@media (max-width:980px){.about__top,.contact__inner,.project{grid-template-columns:1fr}.about__photo{max-width:320px;max-height:420px;margin:0 auto}.about__photo img{height:100%;object-fit:contain}.about__photo--full{max-height:none}.about__photo--full img{object-fit:cover}.filmblock__grid{grid-template-columns:repeat(2,1fr)}.footer__inner{grid-template-columns:1fr 1fr}}@media (max-width:720px){.nav__burger{display:flex}.nav__links{position:fixed;inset:78px 0 auto 0;flex-direction:column;gap:12px;background:hsla(0,0%,7%,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:24px;transform:translateY(-140%);transition:transform .35s ease}.nav__links.is-open{transform:translateY(0)}.hero__roles,.hero__scroll{display:none}.hero__inner{min-height:auto}.hero__name{margin-top:56px}.edgeword{font-size:30vw}.about__bottom,.aboutcard,.filmblock__intro{grid-template-columns:1fr;display:grid}.aboutcard{margin-top:0;padding:28px 24px}.aboutcard__head{display:flex;flex-direction:column;gap:16px}.aboutcard__roles{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 16px}.aboutcard__roles li{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.5px;color:var(--dark);white-space:nowrap}.aboutcard__roles .hero__roledot{width:10px;height:10px}.about__intro p,.about__outro{text-align:center}.toolbar{border-radius:26px}.filmblock__intro{flex-direction:column}.filmblock__grid{grid-template-columns:1fr}.about__skills li{font-size:22px}}.contact__note{margin:4px 0 0;font-size:14px;font-weight:600}.contact__note--ok{color:var(--lime)}.contact__note--err{color:var(--coral)}.contact__send:disabled{opacity:.7;cursor:progress}