@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin.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:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-latin.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{--pink:#b5daf5;--ink:#20201e;--lime:#d6fa45;--paper:#f7f5ef}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--pink);color:var(--ink);font-family:DM Sans,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #6262ed;outline-offset:6px}::selection{background:var(--lime);color:var(--ink)}header{display:flex;align-items:center;justify-content:space-between;padding:26px 4%;position:relative;z-index:5;border-bottom:1px solid #20201e33}.brand{font-family:Space Grotesk,sans-serif;font-size:29px;font-weight:700;letter-spacing:-2px}.brand span{font-size:14px;vertical-align:top;margin-left:3px}nav{display:flex;gap:32px;align-items:center;font-size:13px}nav a{position:relative}nav a:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:1px;background:currentColor;transition:width .3s}nav a:hover:after{width:100%}.nav-contact{border:1px solid;padding:12px 19px;border-radius:30px}.hero{padding:43px 4% 26px;min-height:calc(100svh - 90px);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.eyebrow{font-size:15px;text-transform:uppercase;letter-spacing:1.4px;display:flex;justify-content:space-between}.availability:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ink);margin-right:8px}.hero h1{font:600 clamp(72px,12.8vw,210px)/.86 "Space Grotesk",sans-serif;letter-spacing:-.085em;margin:53px 0 40px;position:relative;z-index:2;pointer-events:none}.hero h1 .second{display:block;margin-left:14%}.hero h1 em{font-style:normal;font-weight:400}.star{position:absolute;right:10%;top:40%;width:14vw;height:14vw;min-width:100px;min-height:100px;background:var(--lime);clip-path:polygon(50% 0,60% 32%,85% 15%,68% 40%,100% 50%,68% 60%,85% 85%,60% 68%,50% 100%,40% 68%,15% 85%,32% 60%,0 50%,32% 40%,15% 15%,40% 32%);animation:spin 28s linear infinite,star-float 6s ease-in-out infinite;z-index:1}.hero-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:20px;padding-top:22px}.hero-bottom p{font-size:17px;max-width:280px;line-height:1.5;margin:0}.round-link{justify-self:center;width:76px;height:76px;border:1px solid;border-radius:50%;display:grid;place-items:center;font-size:28px;transition:background .3s,transform .3s}.round-link:hover{background:var(--lime);transform:rotate(-30deg)}.hero-note{text-align:right;font-size:14px;letter-spacing:1px;text-transform:uppercase}.ticker{overflow:hidden;background:var(--ink);color:var(--paper);padding:21px 0;margin-top:25px}.ticker-track{display:flex;width:max-content;gap:40px;animation:marquee 28s linear infinite;font:500 22px Space Grotesk,sans-serif}.ticker b{color:var(--lime);font-weight:400}.section{padding:95px 4%}.work{background:var(--paper)}.section-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:45px}.section-top h2{font:500 clamp(40px,6vw,92px)/1 "Space Grotesk",sans-serif;letter-spacing:-.065em;margin:0}.small{font-size:15px;text-transform:uppercase;letter-spacing:1px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:54px 28px}.project:nth-child(2){padding-top:115px}.visual{width:100%;height:430px;overflow:hidden;position:relative;border:0;display:block;text-align:left;transition:transform .5s;cursor:pointer}.visual:hover{transform:translateY(-7px)}.odda{background:#dce2cd;padding:55px 35px}.mock{background:#faf8ee;height:100%;box-shadow:0 18px 40px #23302324;transform:rotate(-5deg);transition:transform .6s;padding:18px 22px;overflow:hidden}.visual:hover .mock{transform:rotate(0) scale(1.035)}.mock-nav{display:flex;justify-content:space-between;font-size:9px;align-items:center}.mock-logo{font-size:24px;font-weight:600;color:#536348}.mock-content{display:grid;grid-template-columns:1.2fr 1fr;gap:15px;margin-top:30px}.mock h3{font:500 36px/1.05 Space Grotesk;letter-spacing:-1.8px;margin:0;color:#3c4c36}.mock p{font-size:10px;line-height:1.5}.mock-pill{font-size:8px;background:#b4c39d;padding:9px 12px;display:inline-block;border-radius:20px}.plant{height:210px;background:linear-gradient(140deg,#81966d,#d8d8bd);position:relative;border-radius:70px 70px 0 0;overflow:hidden}.plant:before{content:"";position:absolute;background:#eef0d8;width:75px;height:90px;bottom:20px;left:35%;border-radius:14px;box-shadow:0 10px 20px #0002}.plant:after{content:"●";color:#879d72;position:absolute;bottom:57px;left:53%;font-size:20px}.indigo{background:#b6c4ec;padding:45px 33px}.indigo .mock{background:#253557;color:#fff;transform:rotate(5deg)}.indigo .mock-logo{color:#fff;font:20px Georgia}.indigo .mock h3{color:#fff;font:36px Georgia;letter-spacing:-1px}.sea{height:130px;margin-top:20px;background:linear-gradient(170deg,#cbd9dd 0 40%,#528aa0 41% 62%,#266b8c 63%);position:relative;overflow:hidden}.sea:after{content:"";position:absolute;width:130px;height:90px;right:20px;bottom:-8px;background:#f0e9d9;transform:skewY(-9deg);box-shadow:-45px 25px #d6c8ac}.project-info{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.project-info h3{font-size:23px;font-weight:500;margin:0 0 5px}.project-info p{font-size:14px;line-height:1.5;color:#62625d;margin:0}.project-info span{font-size:26px}.work-foot{margin-top:45px;font-size:13px;color:#666;border-top:1px solid #ccc;padding-top:16px}.about{background:#f5c9a5;display:grid;grid-template-columns:1fr 2fr;gap:60px}.about h2{font:500 clamp(36px,5vw,74px)/1.07 "Space Grotesk";letter-spacing:-.06em;margin:0 0 30px}.about p{max-width:580px;font-size:17px;line-height:1.6}.skills{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.skills span{border:1px solid #20201e66;border-radius:30px;padding:9px 16px;font-size:12px}.play{background:var(--ink);color:var(--paper)}.play-intro{display:flex;justify-content:space-between;gap:30px;margin-bottom:30px}.play-intro p{font-size:16px;color:#aaa;max-width:340px;line-height:1.6}.play-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.play-controls button{border:1px solid #666;background:none;border-radius:30px;color:var(--paper);padding:10px 18px;font-size:12px}.play-controls button.active{background:var(--pink);color:var(--ink);border-color:var(--pink)}.play-controls label{font-size:12px;margin-left:12px}input{accent-color:var(--lime);width:90px}.canvas-wrap{height:360px;border-top:1px solid #ffffff26;border-bottom:1px solid #ffffff26;position:relative;margin-top:28px;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:pan-y}.canvas-caption{position:absolute;left:20px;bottom:15px;font-size:10px;letter-spacing:1px;pointer-events:none;color:#aaa}.contact{background:#f5c6d8;padding-bottom:30px}.contact h2{font:500 clamp(65px,12vw,180px)/.95 "Space Grotesk";letter-spacing:-.08em;margin:38px 0 45px}.contact-link{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid;padding-bottom:25px;font-size:22px}.contact-link span:last-child{font-size:45px}.footer{display:flex;justify-content:space-between;font-size:11px;margin-top:60px}.footer-links{display:flex;gap:20px}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}dialog{border:0;padding:0;width:min(720px,92vw);max-height:85vh;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#151515b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-body{padding:42px}.dialog-body h2{font:500 56px Space Grotesk;letter-spacing:-3px;margin:25px 0}.dialog-body p{line-height:1.7}.close{float:right;border:1px solid;border-radius:50%;background:none;width:37px;height:37px}.dialog-tags{font-size:14px;color:#666}.dialog-link{display:inline-block;margin-top:25px;border-bottom:1px solid;padding-bottom:5px}.motion{background:none;border:0;font-size:11px;text-decoration:underline}.no-motion *{animation:none!important;scroll-behavior:auto!important;transition:none!important}@keyframes spin{to{transform:rotate(360deg)}}@keyframes marquee{to{transform:translate(-50%)}}@media(min-width:1600px){.hero{min-height:850px}}@media(max-width:750px){header{padding:20px 5%}nav{gap:18px}nav a:nth-child(2){display:none}.nav-contact{padding:9px 12px}.hero{padding:30px 5% 24px;min-height:650px}.hero h1{font-size:16vw;margin:90px 0 70px}.hero h1 .second{margin-left:0}.star{top:38%;right:8%;width:120px;height:120px}.hero-bottom{grid-template-columns:1fr auto}.hero-bottom p{font-size:15px}.hero-note{display:none}.round-link{width:60px;height:60px}.eyebrow{font-size:12.5px;gap:20px}.section{padding:65px 5%}.section-top{gap:20px}.section-top .small{font-size:12.5px}.projects{grid-template-columns:1fr;gap:35px}.project:nth-child(2){padding-top:0}.visual{height:360px}.about{grid-template-columns:1fr;gap:25px}.play-intro{display:block}.play-controls label{margin-left:0}.canvas-wrap{height:300px}.footer{gap:25px;flex-wrap:wrap}.mock h3{font-size:30px}.contact h2{font-size:15vw}.dialog-body{padding:25px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}.brand span{display:none}.about-person{min-width:0}.about-portrait{display:block;width:100%;max-width:260px;height:auto;margin-top:24px}nav .nav-contact:after{display:none}.cursor-follower{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;opacity:0;mix-blend-mode:difference;will-change:transform;transition:opacity .2s}.cursor-follower.is-visible{opacity:1}.cursor-follower span{display:block;width:18px;height:18px;margin:-9px 0 0 -9px;background:#fff;border-radius:50%;transition:transform .25s ease}.cursor-follower.is-interactive span{transform:scale(2.5)}@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.cursor-follower{display:none}}.odda{display:flex;align-items:center;padding:24px}.project-screenshot{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;object-position:center;clip-path:inset(0 4px 4px 0);transition:transform .6s}.visual:hover .project-screenshot{transform:scale(1.025)}@media(max-width:750px){.odda{padding:16px}}.contact-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;border-top:1px solid #20201e66;padding-top:36px}.contact-intro h3{font:500 clamp(25px,3vw,40px)/1.15 "Space Grotesk",sans-serif;letter-spacing:-.04em;margin:0 0 18px}.contact-intro p{font-size:17px;line-height:1.6;max-width:340px}.contact-form{min-width:0}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contact-form label{display:block;font-size:14px;font-weight:500}.contact-form input,.contact-form textarea{display:block;width:100%;font:400 16px/1.5 DM Sans,sans-serif;color:var(--ink);background:transparent;border:0;border-bottom:1px solid #20201e88;border-radius:0;padding:14px 0;margin:0 0 28px}.contact-form textarea{resize:vertical;min-height:130px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#57514f;opacity:1}.contact-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.contact-submit{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:45px;border:1px solid var(--ink);border-radius:40px;padding:15px 24px;background:var(--ink);color:var(--paper);font-size:16px;transition:background .2s,color .2s}.contact-submit:hover{background:var(--lime);color:var(--ink)}.contact-submit:disabled{opacity:.6;cursor:wait}.contact-submit span{font-size:24px}.contact-status{min-height:28px;margin-top:16px;font-size:14px;line-height:1.5}@media(max-width:750px){.contact-layout{grid-template-columns:1fr;gap:24px}.contact-fields{grid-template-columns:1fr;gap:0}.contact-intro p{font-size:16px}}.indigo{display:flex;align-items:center;padding:24px}@media(max-width:750px){.indigo{padding:16px}}@media(min-width:751px){.about-portrait{max-width:310px}}@keyframes star-float{0%,to{translate:0 0;scale:1}50%{translate:0 -16px;scale:1.06}}.intro-screen{position:fixed;inset:0;z-index:10000;background:var(--ink);color:var(--paper);display:grid;place-items:center;pointer-events:none;animation:intro-exit .8s cubic-bezier(.76,0,.24,1) 2.5s both}.intro-wordmark{display:flex;gap:.24em;align-items:baseline;overflow:hidden;font:500 clamp(30px,7vw,108px)/1.3 "Space Grotesk",sans-serif;letter-spacing:-.06em}.intro-wordmark span{display:block;animation:intro-word .65s cubic-bezier(.16,1,.3,1) both}.intro-wordmark span:first-child{color:var(--lime)}.intro-wordmark span:last-child{animation-delay:.15s}.hero-line{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}.hero-line-text{display:block;animation:hero-enter 1s cubic-bezier(.16,1,.3,1) 1.55s both}.second .hero-line-text{animation-delay:1.7s}@keyframes intro-word{0%{transform:translateY(110%)}to{transform:translateY(0)}}@keyframes intro-exit{0%{clip-path:inset(0 0 0 0);visibility:visible}to{clip-path:inset(0 0 100% 0);visibility:hidden}}@keyframes hero-enter{0%{transform:translateY(115%)}to{transform:translateY(0)}}@keyframes hero-detail{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}.no-motion .intro-screen{display:none}@media(prefers-reduced-motion:reduce){.intro-screen{display:none}.hero-line-text,.hero .eyebrow,.hero-bottom{animation:none}}.intro-wordmark>span{animation:none}.intro-wordmark>span:last-child{animation:none}.hero-line-text,.second .hero-line-text{animation:none}.typewriter-letter{opacity:1;animation:letter-type .01s step-end var(--letter-delay) both}.intro-wordmark .typewriter,.intro-wordmark .typewriter-letter{display:inline}.intro-wordmark .typewriter-letter{animation:letter-type .01s step-end var(--letter-delay) both}@keyframes letter-type{0%{opacity:0}to{opacity:1}}.no-motion .typewriter-letter{animation:none!important}@media(prefers-reduced-motion:reduce){.typewriter-letter,.intro-wordmark .typewriter-letter{animation:none!important}}.intro-wordmark>span:last-child{position:relative;overflow:visible}.intro-wordmark .typewriter-letter{display:inline-block;max-width:1.2em;overflow:hidden;vertical-align:bottom;animation:letter-width .01s steps(1,start) var(--letter-delay) both}.intro-wordmark>span:last-child:after{content:"";display:inline-block;width:2px;height:.85em;margin-left:.08em;background:var(--paper);vertical-align:baseline;animation:typing-caret .7s step-end infinite}@keyframes letter-width{0%{max-width:0;opacity:0}to{max-width:1.2em;opacity:1}}@keyframes typing-caret{0%,to{opacity:1}50%{opacity:0}}.no-motion .intro-wordmark>span:last-child:after{animation:none}@media(prefers-reduced-motion:reduce){.intro-wordmark>span:last-child:after{animation:none}}.services{margin-top:36px}.services h3{font:500 23px/1.3 Space Grotesk,sans-serif;letter-spacing:-.03em;margin:0 0 18px}.services ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;list-style:none;padding:0;margin:0}.services li{padding:13px 0;border-top:1px solid #20201e44;font-size:16px;line-height:1.4}@media(max-width:450px){.services ul{grid-template-columns:1fr}}.typewriter,.intro-wordmark .typewriter{display:inline-grid;vertical-align:baseline}.typewriter-full,.typewriter-typed{grid-area:1/1}.typewriter-full{visibility:hidden}.typewriter-typed,.no-motion .typewriter-full{visibility:visible}.no-motion .typewriter-typed{visibility:hidden}@media(prefers-reduced-motion:reduce){.typewriter-full{visibility:visible}.typewriter-typed{visibility:hidden}}@media(max-width:750px){.projects,.project{min-width:0}.visual.odda,.visual.indigo{height:auto;aspect-ratio:16/10;padding:16px}.visual .project-screenshot{object-fit:contain;object-position:center}.visual:hover .project-screenshot{transform:none}}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-bottom-color:var(--ink);box-shadow:0 1px 0 var(--ink)}.contact-email{font-size:17px;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.arrow-icon{display:inline-block;width:1em;height:1em;vertical-align:-.15em;flex-shrink:0}.round-link .arrow-icon{width:28px;height:28px}.nav-contact,.dialog-link,.footer-links>a{display:inline-flex;align-items:center;gap:6px}.ticker-symbol{display:inline-block;width:20px;height:20px;vertical-align:-2px;color:#fff}.visual:focus{outline:none}.visual:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.project:focus,.project-info:focus{outline:none}.visual{-webkit-tap-highlight-color:transparent}dialog:focus{outline:none}.dialog-body button:focus-visible,.dialog-body a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.play-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:26px}.palette-controls{display:flex;align-items:center;gap:10px}.palette-label{font-size:12px;color:#aaa;margin-right:6px}.palette-option{display:flex;gap:4px;align-items:center;padding:10px;border:1px solid transparent;border-radius:30px;background:transparent;min-height:44px;transition:border-color .2s}.palette-option:hover{border-color:#777}.palette-option.active{border-color:var(--paper)}.palette-option span{width:14px;height:14px;border-radius:50%}.play canvas{cursor:crosshair}@media(max-width:750px){.play-toolbar{gap:16px}.palette-controls{gap:5px}.palette-label{margin-right:3px}}nav .nav-contact{isolation:isolate;overflow:hidden;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}nav .nav-contact:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--lime);border-radius:inherit;transform:translateY(105%);transition:transform .4s cubic-bezier(.22,1,.36,1)}nav .nav-contact .arrow-icon{transition:transform .35s cubic-bezier(.22,1,.36,1)}nav .nav-contact:is(:hover,:focus-visible){transform:translateY(-2px);box-shadow:0 4px #20201e}nav .nav-contact:is(:hover,:focus-visible):before{transform:translateY(0)}nav .nav-contact:is(:hover,:focus-visible) .arrow-icon{transform:translate(2px,-2px)}nav .nav-contact:active{transform:translateY(1px);box-shadow:0 1px #20201e}@media(prefers-reduced-motion:reduce){nav .nav-contact:is(:hover,:focus-visible),nav .nav-contact:is(:hover,:focus-visible) .arrow-icon,nav .nav-contact:active{transform:none}}.no-motion nav .nav-contact:is(:hover,:focus-visible),.no-motion nav .nav-contact:is(:hover,:focus-visible) .arrow-icon,.no-motion nav .nav-contact:active{transform:none}@keyframes talk-arrow-nudge{0%,65%,to{transform:translate(0)}75%{transform:translate(3px,-3px)}85%{transform:translate(0)}92%{transform:translate(2px,-2px)}}nav .nav-contact .arrow-icon{animation:talk-arrow-nudge 3.6s ease-in-out infinite}nav .nav-contact:is(:hover,:focus-visible) .arrow-icon{animation:none}.brand{position:relative;display:inline-flex;align-items:baseline;isolation:isolate;padding:4px 7px;margin:-4px -7px}.brand .brand-letter{display:inline-block;font:inherit;letter-spacing:inherit;margin:0;vertical-align:baseline;transform-origin:50% 85%;transition:transform .5s cubic-bezier(.22,1,.36,1);animation:brand-arrive .85s cubic-bezier(.16,1,.3,1) 2.65s backwards}.brand .brand-letter-k{animation-delay:2.77s}.brand:before{content:"";position:absolute;z-index:-1;inset:4px -3px;background:var(--lime);border-radius:50%;transform:scale(0) rotate(-20deg);transition:transform .5s cubic-bezier(.22,1,.36,1)}.brand:is(:hover,:focus-visible):before{transform:scale(1) rotate(-12deg)}.brand:is(:hover,:focus-visible) .brand-letter-a{transform:translate(-2px,-2px) rotate(-9deg)}.brand:is(:hover,:focus-visible) .brand-letter-k{transform:translate(2px,-2px) rotate(9deg)}.brand:active .brand-letter{transform:scale(.94)}@keyframes brand-arrive{0%{opacity:0;transform:translateY(14px) rotate(-12deg)}to{opacity:1;transform:translateY(0) rotate(0)}}.no-motion .brand .brand-letter{transform:none}@media(prefers-reduced-motion:reduce){.brand .brand-letter{transform:none!important}}.galaxy-wrap{height:480px;background:#0b0d18;border:1px solid #ffffff20;border-radius:4px}.galaxy-wrap .canvas-caption{color:#c5c7dc;bottom:20px}.galaxy-note{position:absolute;right:20px;bottom:20px;font-size:10px;letter-spacing:1px;color:#9b9db5;pointer-events:none}@media(max-width:750px){.galaxy-wrap{height:360px}.galaxy-note{display:none}.galaxy-wrap .canvas-caption{font-size:9px;left:16px}}.nebula-wrap{border-radius:28px;background:#0b0d18;isolation:isolate}.nebula-wrap:before{content:"";position:absolute;inset:0;z-index:-1;background:url(/images/nebula.jpg.webp) center/cover no-repeat;transition:filter .6s}.nebula-palette-1:before{filter:hue-rotate(25deg) saturate(.85)}.nebula-palette-2:before{filter:hue-rotate(305deg) saturate(1.15)}.nebula-wrap:after{content:"";position:absolute;inset:65% 0 0;pointer-events:none;background:linear-gradient(transparent,#080917b3);z-index:0}.nebula-wrap .canvas-caption,.nebula-wrap .galaxy-note{z-index:1;color:#eee}.nebula-wrap:before{transform:translate(var(--nebula-x,0%),var(--nebula-y,0%)) scale(var(--nebula-scale,1.12));transform-origin:center}.nebula-wrap canvas{position:relative;z-index:1}.nebula-wrap .canvas-caption,.nebula-wrap .galaxy-note{z-index:2}.cursor-follower .cursor-message{width:auto;height:auto;margin:0;border-radius:0;background:none;font:500 12px/1.3 DM Sans,sans-serif;letter-spacing:-.02em;text-align:center;color:var(--ink);opacity:0;transform:none;padding:12px}.cursor-follower .cursor-ball{display:flex;align-items:center;justify-content:center;transition:width .3s,height .3s,margin .3s,background .3s,transform .25s}.cursor-follower.is-galaxy{mix-blend-mode:normal}.cursor-follower.is-galaxy .cursor-ball{width:112px;height:112px;margin:-56px 0 0 -56px;background:var(--lime);transform:scale(1);box-shadow:0 0 35px #d6fa4526}.cursor-follower.is-galaxy .cursor-message{opacity:1}.play .nebula-wrap canvas{cursor:none}@media(hover:none),(pointer:coarse){.play .nebula-wrap canvas{cursor:auto}}@media(hover:hover)and (pointer:fine){.nebula-wrap,.nebula-wrap *{cursor:none}}@media(prefers-reduced-motion:reduce){.nebula-wrap,.nebula-wrap *{cursor:auto}}.nebula-wrap{box-shadow:0 0 24px 2px #b565d91a,0 0 55px 8px #729aff0d;border-color:#d9b7ef33}.play-hint-touch,.nebula-touch-target{display:none}.sr-play-message{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.nebula-touch-ball{position:absolute;display:grid;place-items:center;transform:translate(-50%,-50%);width:112px;height:112px;padding:12px;border-radius:50%;background:var(--lime);color:var(--ink);font:500 12px/1.3 DM Sans,sans-serif;text-align:center;pointer-events:none;animation:touch-ball-enter .25s ease-out both}@keyframes touch-ball-enter{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(hover:none),(pointer:coarse){.play-hint-desktop{display:none}.play-hint-touch{display:inline}.nebula-touch-target{display:block;position:absolute;inset:0;z-index:2;width:100%;height:100%;border:0;background:transparent;touch-action:pan-y}.nebula-wrap .canvas-caption{z-index:3}}.odda-view-preview{justify-content:center}.odda-view-devices,.indigo-view-devices{position:relative;width:100%;max-width:640px;aspect-ratio:1.55;transform:scale(.85);transform-origin:center}.odda-view-devices img{position:absolute;display:block;height:auto;filter:drop-shadow(0 14px 12px #23302326);will-change:transform}.odda-view-laptop{width:86%;left:1%;top:10%;transform:none}.odda-view-phone{width:25%;right:1%;bottom:0;transform:none}.no-motion .odda-view-laptop,.no-motion .odda-view-phone{transform:none}@media(prefers-reduced-motion:reduce){.odda-view-laptop,.odda-view-phone{transform:none}}.odda-view-devices>.odda-view-laptop{position:absolute;filter:drop-shadow(0 14px 12px #23302326)}.odda-view-devices .odda-desktop-base{position:static;width:100%;filter:none;will-change:auto}.odda-view-phone-crop{position:absolute;aspect-ratio:.64;overflow:hidden;filter:drop-shadow(0 10px 10px #23302326);isolation:isolate;background:transparent}.odda-view-phone-crop img{position:absolute;width:238%;max-width:none;left:-123%;top:-13%;filter:none;mix-blend-mode:normal;clip-path:polygon(51.5% 90.5%,54.2% 23%,54.8% 19%,56.5% 16%,59% 14%,85.5% 10.7%,89% 11%,91.4% 13%,92.6% 16%,93.6% 90.5%)}.odda-view-phone-crop{aspect-ratio:610/930;overflow:visible}.odda-view-phone-crop>svg{display:block;width:100%;height:auto}@media(hover:none),(pointer:coarse){.odda-view-devices>.odda-view-laptop{animation:none;transform:none;filter:none}.odda-view-devices>.odda-view-phone{animation:none;transform:none}.visual.odda-view-preview:hover{transform:none}}.visual.indigo,.visual.odda-view-preview{height:auto;aspect-ratio:16/10;justify-content:center;padding:24px}.visual.indigo{background:#b6c4ec}.projects .odda-view-laptop,.indigo-view-devices>.indigo-laptop{position:absolute;width:78%;top:12%;padding:0 5% 2%;margin:0}.indigo-view-devices>.indigo-laptop{width:78%;left:11%;top:12%}@media(max-width:750px){.visual.indigo,.visual.odda-view-preview{padding:16px}.projects .odda-view-laptop,.indigo-view-devices>.indigo-laptop{padding-inline:10%}}.visual.indigo,.visual.odda-view-preview{transition:transform .4s ease,box-shadow .4s ease}.visual.indigo>.indigo-laptop{rotate:none;transform:none}.visual.indigo:hover,.visual.odda-view-preview:hover{transform:none}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.visual.indigo:is(:hover,:focus-visible){transform:none;box-shadow:0 12px 28px #20201e16}}.no-motion .visual.indigo:is(:hover,:focus-visible),.no-motion .visual.odda-view-preview:is(:hover,:focus-visible){transform:none;box-shadow:none}.odda-view-phone.odda-view-phone-crop{aspect-ratio:490/940;bottom:-2%;right:0;width:26%}.odda-view-devices>.odda-view-laptop{width:78%;left:0;top:12%;transform:none}.odda-view-devices>.odda-view-phone-front{width:30%;right:0;bottom:0;aspect-ratio:560/740;transform:none;filter:drop-shadow(5px 12px 9px #11182035)}.odda-view-phone-front:before{content:"";position:absolute;inset:1px;border-radius:7.1%/5.4%;box-shadow:0 2px 0 1px #08090b;pointer-events:none}.odda-view-phone-front:after{content:"";position:absolute;left:-2px;top:20%;width:2px;height:8%;background:#30353b;border-radius:2px;box-shadow:0 19px #30353b}.visual.odda-view-preview,.visual.odda-view-preview:is(:hover,:focus-visible){transform:none;translate:none;rotate:none;animation:none;transition:none}.odda-view-devices>.odda-view-laptop,.odda-view-devices>.odda-view-phone-front{transform:none;translate:none;rotate:none;animation:none;transition:none}@property --preview-float-distance{syntax:"<length>"; inherits:false; initial-value:0px;}@keyframes project-preview-float{0%,to{translate:0 0}50%{translate:0 calc(-1 * var(--preview-float-distance))}}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.visual.indigo>.indigo-view-devices,.visual.odda-view-preview>.odda-view-devices{--preview-float-distance:0px;scale:1;animation:project-preview-float 3.6s ease-in-out infinite;transition:scale .7s cubic-bezier(.22,1,.36,1),--preview-float-distance .9s cubic-bezier(.22,1,.36,1)}.visual.indigo:is(:hover,:focus-visible)>.indigo-view-devices,.visual.odda-view-preview:is(:hover,:focus-visible)>.odda-view-devices{--preview-float-distance:8px;scale:1.035}}.hero{justify-content:flex-start}.hero-heading{position:relative;margin:clamp(44px,5vw,76px) 0 clamp(40px,4vw,64px)}.hero-heading h1{margin:0}.hero-heading .star{width:clamp(72px,9vw,144px);height:clamp(72px,9vw,144px);min-width:0;min-height:0;right:1%;top:54%}.hero-bottom{margin-top:auto}.hero-bottom p{max-width:330px}@media(max-width:750px){.hero{min-height:calc(100svh - 84px);padding-top:24px;padding-bottom:24px}.hero-heading{margin:clamp(24px,5svh,44px) 0 28px}.hero-heading h1{margin:0}.hero-heading .star{width:48px;height:48px;right:0;top:5%}.hero-bottom{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;padding-top:12px}.hero-bottom p{max-width:260px}.hero-bottom .round-link{position:relative;z-index:2;justify-self:end;align-self:end;width:56px;height:56px;background:var(--pink)}}.contact-privacy{font-size:12px;line-height:1.6;margin:0;color:#44413f}.contact-privacy a{text-decoration:underline;text-underline-offset:3px}:root{--heading-font: "Space Grotesk", sans-serif;--heading-weight: 500;--heading-h1-size: clamp(44px, 6vw, 92px);--heading-h2-size: clamp(34px, 4.5vw, 72px);--heading-tracking: -.055em}#root h1,#root h2:not(:where(.odda-home-preview h2,.odda-connected-app>h2)){font-family:var(--heading-font);font-weight:var(--heading-weight);font-style:normal;letter-spacing:var(--heading-tracking);text-wrap:balance}#root h1{font-size:var(--heading-h1-size);line-height:1.05;white-space:normal}#root .hero h1{font-size:clamp(72px,12.8vw,210px);line-height:.92;letter-spacing:-.075em;text-wrap:initial}#root h2:not(:where(.odda-home-preview h2,.odda-connected-app>h2)){font-size:var(--heading-h2-size);line-height:1.08}#root .odda-gallery-heading h2{font-size:clamp(22px,2.2vw,34px);line-height:1.15;letter-spacing:-.035em}#root :is(h1,h2):not(:where(.odda-home-preview h2,.odda-connected-app>h2)) :is(em,span){font-family:inherit;font-size:inherit;font-weight:inherit;font-style:normal;letter-spacing:inherit}@media(max-width:700px){#root .hero h1{font-size:16vw}:root{--heading-h1-size: clamp(40px, 9vw, 60px);--heading-h2-size: clamp(32px, 7.5vw, 44px)}}.motion-idle,.motion-idle *,.motion-idle:before,.motion-idle:after,.motion-idle *:before,.motion-idle *:after{animation-play-state:paused!important}
