*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fefefe;--text:#000;--border:#000;--hover-bg:#000;--hover-text:#fefefe;--font-display:"Anton", sans-serif;--font-body:"Cormorant Garamond", serif;--font-mono:"JetBrains Mono", monospace;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.86, 0, .07, 1);--section-padding:clamp(4rem, 10vw, 10rem);--content-width:min(90vw, 75rem);--header-h:clamp(3.5rem, calc(3rem + 1vw), 5rem)}[data-theme=dark]{--bg:#0a0a0a;--text:#fefefe;--border:#fefefe;--hover-bg:#fefefe;--hover-text:#0a0a0a}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:clamp(14px,10px + .5vw,20px)}body{background-color:var(--bg);color:var(--text);font-family:var(--font-body);transition:background-color .4s var(--ease-out), color .4s var(--ease-out);font-size:clamp(1rem,2vw,1.25rem);font-weight:400;line-height:1.6;overflow-x:hidden}body::-webkit-scrollbar{display:none}body{scrollbar-width:none;-ms-overflow-style:none}::selection{background:var(--text);color:var(--bg)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}h1,h2,h3{font-family:var(--font-display);text-transform:uppercase;font-weight:400;line-height:.9}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.contrast-toggle{border-right:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:100%;transition:background-color .3s;display:flex}.contrast-toggle:hover{background:var(--hover-bg);color:var(--hover-text)}.contrast-toggle svg{transition:transform .3s var(--ease-out)}.contrast-toggle:hover svg{transform:rotate(30deg)}.header{z-index:100;border-bottom:1px solid var(--border);background:var(--bg);width:100%;transition:background-color .4s var(--ease-out);position:fixed;top:0;left:0}.header__container{height:var(--header-h);justify-content:space-between;align-items:stretch;max-width:100%;display:flex}.header__logo{width:var(--header-h);border-right:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;height:100%;transition:background-color .3s;display:flex}.header__logo:hover{background:var(--hover-bg);color:var(--hover-text)}.header__console{font:400 clamp(.45rem, .8vw, .55rem)/1.4 var(--font-mono);text-transform:uppercase;white-space:pre-line;align-items:flex-end;margin:0 auto 0 0;padding:.75rem 1.25rem;display:flex;overflow:hidden}@media (width<=767px){.header__console{display:none}}.header__console-text{color:var(--text);opacity:.7}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}.header__console-caret{color:var(--text);animation:.8s step-end infinite caret-blink}.header__nav{border-left:1px solid var(--border);align-items:center;display:flex}@media (width<=600px){.header__nav{display:none}}.header__nav-link{height:100%;font:400 clamp(.7rem, .9vw, .875rem)/1 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;align-items:center;padding:0 clamp(.75rem,1.5vw,1.5rem);transition:background-color .3s;display:flex;position:relative}.header__nav-link:hover{background:var(--hover-bg);color:var(--hover-text)}.header__nav-text{position:relative}.header__right{border-left:1px solid var(--border);align-items:center;display:flex}.header__hire{height:100%;font-family:var(--font-body);color:var(--text);align-items:center;gap:.5rem;padding:0 1.25rem;font-size:1.1rem;font-weight:300;text-decoration:none;transition:background-color .3s;display:flex}.header__hire:hover{background:var(--hover-bg);color:var(--hover-text)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.header__hire-dot{background:var(--text);border-radius:50%;width:.5rem;height:.5rem;animation:2s ease-in-out infinite pulse-dot}@media (width<=767px){.header__hire-text{display:none}}.hero{min-height:calc(100svh - var(--header-h));padding-top:var(--header-h);flex-direction:column;justify-content:stretch;align-items:stretch;display:flex;position:relative;overflow:hidden}.hero__waves{pointer-events:none;position:absolute;inset:0}.hero__waves svg{width:100%;height:100%;position:absolute;bottom:0;left:0}.hero__title{text-transform:uppercase;cursor:default;flex-wrap:wrap;flex-grow:1;justify-content:center;align-items:center;gap:0 2rem;margin:auto 0;padding:1.5rem 1rem;font-size:clamp(2.5rem,15vw,18.5rem);line-height:1;display:flex}@media (width<=987px){.hero__title{justify-content:flex-start;gap:.5rem}}@media (width<=576px){.hero__title{gap:.25rem}}.hero__word{display:inline-flex;overflow:visible}.hero__char{opacity:0;color:var(--text);animation-duration:.8s;animation-fill-mode:forwards;animation-timing-function:var(--ease-out);display:inline-block}@keyframes fly-in-top{0%{opacity:0;transform:translateY(-60%)}to{opacity:1;transform:translate(0,0)}}@keyframes fly-in-bottom{0%{opacity:0;transform:translateY(60%)}to{opacity:1;transform:translate(0,0)}}@keyframes fly-in-left{0%{opacity:0;transform:translate(60%)}to{opacity:1;transform:translate(0,0)}}@keyframes fly-in-right{0%{opacity:0;transform:translate(-60%)}to{opacity:1;transform:translate(0,0)}}.hero__char--dir1{animation-name:fly-in-top}.hero__char--dir2{animation-name:fly-in-right}.hero__char--dir3{animation-name:fly-in-bottom}.hero__char--dir4{animation-name:fly-in-left}.about{--card-width:min(39rem, 85vw);padding:var(--section-padding) 0;flex-direction:column;align-items:center;gap:0;display:flex}.about__card{width:var(--card-width);border:1px solid var(--border);opacity:0;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);position:relative;transform:translateY(40px)}.about__card--visible{opacity:1;transform:translateY(0)}.about__card-title{background:var(--text);color:var(--bg);font:700 clamp(.7rem, .9vw, .8125rem)/1.5rem var(--font-mono);letter-spacing:.1em;text-align:center;text-transform:uppercase;padding:0 0 .125rem}.about__card-body{padding:clamp(2rem,5vw,4.5rem);font-size:clamp(1.25rem,3vw,2rem);font-weight:300;line-height:1.5}.about__card-body p{margin-bottom:1.2em}.about__card-body p:last-child{margin-bottom:0}.about__card-body strong{font-weight:700}.about__awards{width:var(--card-width);opacity:0;transition:opacity .8s var(--ease-out) .3s, transform .8s var(--ease-out) .3s;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(5rem,auto);margin-top:-1px;list-style:none;display:grid;transform:translateY(40px)}.about__awards--visible{opacity:1;transform:translateY(0)}.about__award{background:var(--bg);border:1px solid var(--border);cursor:default;margin:-1px 0 0 -1px;padding:.75rem;transition:background-color .3s;position:relative;overflow:hidden}.about__award:hover{background:var(--hover-bg)}.about__award:hover .about__award-name,.about__award:hover .about__award-detail{color:var(--hover-text)}.about__award-inner{width:100%;height:100%;position:relative}.about__award-mask{background:var(--text);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transition:clip-path .5s var(--ease-in-out);position:absolute;inset:0}.about__award:hover .about__award-mask{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}.about__award-name{z-index:1;font:400 clamp(2rem, 6vw, 6.5rem)/.82 var(--font-display);text-transform:uppercase;word-break:break-word;transition:color .3s;position:relative}.about__award-detail{z-index:1;font:300 clamp(1rem, 2.5vw, 1.25rem)/1.3 var(--font-body);margin-top:.25em;transition:color .3s;display:block;position:relative}.award--awwwards{grid-area:span 2/span 2}.award--fwa{grid-area:span 1/span 1}.award--cssda{grid-area:span 1/span 2}.award--webby{grid-area:span 1/span 4}.award--gsap{grid-area:span 1/span 2}.award--commarts{grid-area:span 1/span 4}.award--netmag{grid-area:span 1/span 2}@media (width<=767px){.about__awards{grid-template-columns:repeat(2,1fr)}.award--awwwards{grid-area:span 2/span 2}.award--webby,.award--commarts,.award--netmag{grid-column:span 2}}.work{padding:var(--section-padding) 0}.work__title{text-align:center;justify-content:center;gap:clamp(1rem,3vw,3rem);margin-bottom:clamp(3rem,8vw,8rem);font-size:clamp(2.5rem,12vw,15rem);line-height:.85;display:flex}.work__title-word{opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);transform:translateY(30px)}.work__title--visible .work__title-word{opacity:1;transform:translateY(0)}.work__title--visible .work__title-word:last-child{transition-delay:.15s}.work__grid{opacity:0;transition:opacity .8s var(--ease-out) .4s, transform .8s var(--ease-out) .4s;grid-template-columns:repeat(auto-fill,minmax(min(18rem,100%),1fr));gap:clamp(.25rem,.5vw,.5rem);display:grid;transform:translateY(40px)}.work__grid--visible{opacity:1;transform:translateY(0)}.work__card{background:var(--border);transition:opacity .3s, transform .3s var(--ease-out);padding:.5rem .5rem 0;text-decoration:none;display:block}.work__card--dimmed{opacity:.4}.work__card--hovered{opacity:1;transform:translateY(-.25rem)}.work__card-media{position:relative;overflow:hidden}.work__card-placeholder{aspect-ratio:4/3;background:var(--bg);color:var(--text);justify-content:center;align-items:center;display:flex}.work__card-id{font:400 clamp(.65rem, .8vw, .75rem)/1 var(--font-mono);letter-spacing:.1em;color:var(--text);opacity:.5}.work__card-caption{color:var(--bg);font:700 clamp(.65rem, .8vw, .75rem)/1 var(--font-mono);letter-spacing:.15em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:.5rem;display:flex}.work__card-cat{opacity:.6}@media (width<=576px){.work__card{padding:.25rem .25rem 0}.work__card-caption{display:none}}.contact{z-index:2;padding:var(--section-padding) 0;position:relative}.contact__inner{opacity:0;min-height:calc(100vh - 8rem);transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:2rem;display:flex;transform:translateY(40px)}.contact__inner--visible{opacity:1;transform:translateY(0)}.contact__button{cursor:pointer;width:clamp(5rem,12vw,8rem);height:clamp(5rem,12vw,8rem);transition:transform .3s var(--ease-out);border-radius:50%;position:relative}.contact__button:hover{transform:scale(1.05)}.contact__button-ring{width:100%;height:100%;position:absolute;inset:0}.contact__button-ring circle{transition:stroke-dasharray .6s var(--ease-out)}.contact__button:hover .contact__button-ring circle{stroke-dasharray:290 300}.contact__button-text{font-family:var(--font-display);text-transform:uppercase;transition:opacity .4s var(--ease-out), transform .4s var(--ease-out);justify-content:center;align-items:center;font-size:clamp(2rem,6vw,4rem);display:flex;position:absolute;inset:0}.contact__button--revealed .contact__button-text--go{opacity:0;transform:scale(.5)}.contact__reveal{text-align:center;opacity:0;transition:opacity .5s var(--ease-out) .2s, transform .5s var(--ease-out) .2s;pointer-events:none;transform:translateY(20px)}.contact__reveal--active{opacity:1;pointer-events:all;transform:translateY(0)}.contact__cta{margin-bottom:.5rem;font-size:clamp(2rem,8vw,6rem)}.contact__email{font-family:var(--font-mono);letter-spacing:.05em;color:var(--text);font-size:clamp(.9rem,2vw,1.25rem);text-decoration:none;display:inline-block;position:relative}.contact__email:after{content:"";background:var(--text);transform-origin:100%;width:100%;height:1px;transition:transform .4s var(--ease-in-out);position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.contact__email:hover:after{transform-origin:0;transform:scaleX(1)}.contact__socials{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;font-size:.8rem;display:flex}.contact__social-link{color:var(--text);text-decoration:none;transition:opacity .3s}.contact__social-link:hover{opacity:.5}.contact__social-divider{opacity:.3}.footer{border-top:1px solid var(--border);z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;display:flex;position:relative}.footer__logo{color:var(--text);transition:transform .3s var(--ease-out);display:block}.footer__logo:hover{transform:rotate(180deg)}.footer__copy{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;opacity:.5;font-size:.7rem}.binary-sep{border-top:1px solid var(--border);border-bottom:1px solid var(--border);width:100%;height:2.25rem;font:400 clamp(.45rem, .8vw, .55rem)/1rem var(--font-mono);justify-content:space-between;align-items:center;padding:0 1rem;display:flex;position:relative;overflow:hidden}.binary-sep__triangle{border-top:2px solid #0000;border-bottom:2px solid #0000;position:absolute;top:50%;transform:translateY(-40%)}.binary-sep__triangle--left{border-left:4px solid var(--border);left:1rem}.binary-sep__triangle--right{border-right:4px solid var(--border);right:1rem}.binary-sep__content{justify-content:space-between;align-items:center;width:100%;padding:0 1.5rem;display:flex;overflow:hidden}.binary-sep__char{color:#0000;flex-shrink:0;width:.25rem;height:1rem;display:block;position:relative;overflow:hidden}.binary-sep__char:before{width:100%;height:2em;color:var(--text);word-break:break-all;content:"01";position:absolute;top:0;left:0}@keyframes flip-binary{0%,to{transform:translate(0,0)}47%,53%{transform:translateY(-100%)}}.binary-sep__char--1:before{animation:3s steps(2,end) infinite flip-binary;transform:translateY(-100%)}.binary-sep__char--0:before{animation:3.2s steps(2,end) .4s infinite flip-binary;transform:translate(0,0)}.binary-sep__char--blank:before{content:none}.binary-sep__char--blank{width:.125rem}.binary-sep__stripes{height:.5rem;text-shadow:0 0 1px var(--text);color:var(--text);opacity:.5;flex-shrink:0;line-height:.5rem;overflow:hidden}.binary-sep__stripes:before{content:"///////////////////////////////////////////////////////////////////////////////";word-break:break-word;font-size:.375rem}@media (width<=767px){.binary-sep__stripes{display:none}}.scrollbar{--thumb-width:clamp(.2rem, .25vw, .3rem);--track-width:clamp(.35rem, .4vw, .5rem);z-index:200;width:var(--track-width);pointer-events:none;height:100%;position:fixed;top:0;right:0}.scrollbar__track{background:0 0;width:100%;height:100%;position:absolute;top:0;left:0}.scrollbar__thumb{width:var(--thumb-width);background:var(--text);cursor:grab;transition:width .15s var(--ease-out), background-color .15s var(--ease-out);pointer-events:all;border-radius:1rem;position:absolute;right:0}.scrollbar__thumb:hover{width:var(--track-width)}.scrollbar--dragging .scrollbar__thumb{width:var(--track-width);cursor:grabbing;background:var(--text)}#root{text-align:left;width:100%;max-width:100%;min-height:100svh;margin:0}main{z-index:1;position:relative}
