@font-face{font-family:Rubik;src:url(/media/source/fonts/rubik-v10-latin-300.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Rubik;src:url(/media/source/fonts/rubik-v10-latin-regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Rubik;src:url(/media/source/fonts/rubik-v10-latin-500.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Rubik;src:url(/media/source/fonts/rubik-v10-latin-700.woff2)format("woff2");font-weight:700;font-display:swap}:root{color-scheme:light dark;--theme-light-canvas:#f5f7fb;--theme-light-section:#fff;--theme-light-surface:#e8edf5;--theme-light-text:#17182f;--theme-light-muted:#55586a;--theme-light-accent:#a1f4f4;--theme-dark-canvas:#080d32;--theme-dark-section:#03032b;--theme-dark-surface:#0b1242;--theme-dark-text:#f7f7fb;--theme-dark-muted:#c9c9d4;--theme-dark-accent:#a1f4f4;--theme-accent-text-light:#006a70;--color-action:#e60058;--color-action-hover:oklch(from var(--color-action) calc(l - .06) c h);--neutral-0:#fff;--color-canvas:light-dark(var(--theme-light-canvas),var(--theme-dark-canvas));--color-section:light-dark(var(--theme-light-section),var(--theme-dark-section));--color-surface:light-dark(var(--theme-light-surface),var(--theme-dark-surface));--color-text:light-dark(var(--theme-light-text),var(--theme-dark-text));--color-muted:light-dark(var(--theme-light-muted),var(--theme-dark-muted));--color-accent:light-dark(var(--theme-light-accent),var(--theme-dark-accent));--color-accent-text:light-dark(var(--theme-accent-text-light),var(--color-accent));--color-focus:light-dark(var(--color-action),var(--color-accent));--color-border:color-mix(in oklab, var(--color-text) 42%, transparent);--color-card-border:color-mix(in oklab, var(--color-text) 18%, transparent);--color-subtle-outline:color-mix(in oklab, var(--color-text) 16%, transparent);--color-floating-nav:color-mix(in oklab, var(--color-canvas) 88%, transparent);--color-input-hover:light-dark(var(--theme-light-surface),var(--theme-dark-section));--color-on-accent:var(--theme-dark-section);--color-on-action:var(--neutral-0);--color-on-action-hover:var(--neutral-0);--color-on-media:var(--theme-dark-text);--color-on-media-muted:#d7d7e0;--color-border-on-media:#ffffff6b;--color-content-canvas:var(--color-section);--color-content-text:var(--color-text);--color-skill-icon-background:light-dark(var(--theme-light-canvas),var(--theme-dark-canvas));--copy-color-source:var(--color-text);--copy-lightness-reduction:.06;--color-copy:oklch(from var(--copy-color-source) calc(l - var(--copy-lightness-reduction)) c h);--font-family-rubik:Rubik, ui-sans-serif, system-ui, sans-serif;--font-family-body:var(--font-family-rubik);--font-family-heading:var(--font-family-rubik);--font-family-h1:var(--font-family-heading);--font-family-h2:var(--font-family-heading);--font-family-h3:var(--font-family-heading);--font-family-h4:var(--font-family-heading);--font-family-h5:var(--font-family-heading);--font-family-h6:var(--font-family-heading);--font-weight-copy:300;--font-weight-copy-emphasis:400;--type-scale-ratio:1.25;--font-size-base:clamp(1rem, .9643rem + .1786vw, 1.125rem);--font-size-n2:calc(var(--font-size-base) * pow(var(--type-scale-ratio), -2));--font-size-n1:calc(var(--font-size-base) * pow(var(--type-scale-ratio), -1));--font-size-0:var(--font-size-base);--font-size-1:calc(var(--font-size-base) * pow(var(--type-scale-ratio), 1));--font-size-2:calc(var(--font-size-base) * pow(var(--type-scale-ratio), 2));--font-size-5:calc(var(--font-size-base) * pow(var(--type-scale-ratio), 5));--font-size-7:calc(var(--font-size-base) * pow(var(--type-scale-ratio), 7));--font-size-caption:var(--font-size-n2);--font-size-small:var(--font-size-n1);--font-size-body:var(--font-size-0);--font-size-lead:var(--font-size-1);--font-size-h3:var(--font-size-2);--font-size-h2:var(--font-size-5);--font-size-h1:var(--font-size-7);--space-unit:.25rem;--space-0_5:calc(var(--space-unit) * .5);--space-1:var(--space-unit);--space-2:calc(var(--space-unit) * 2);--space-3:calc(var(--space-unit) * 3);--space-4:calc(var(--space-unit) * 4);--space-6:calc(var(--space-unit) * 6);--space-8:calc(var(--space-unit) * 8);--space-12:calc(var(--space-unit) * 12);--space-20:calc(var(--space-unit) * 20);--section-space-multiplier:20;--section-space:calc(var(--space-unit) * var(--section-space-multiplier));--section-heading-space:calc(var(--space-unit) * 32);--section-heading-gap:var(--space-12);--section-intro-gap:var(--space-4);--section-content-gap:var(--space-12);--message-field-min-block-size:calc(var(--space-unit) * 40);--message-field-max-block-size:min(50svh, calc(var(--space-unit) * 128));--aspect-ratio-widescreen:16 / 9;--aspect-ratio-square:1 / 1;--radius-sm:.55rem;--radius-md:1rem;--radius-pill:999px;--layout-shell:72rem;--layout-wide:92rem;--layout-narrow:42rem;--header-height:4.25rem;--header-offset:var(--space-4);--header-total-height:calc(var(--header-height) + var(--header-offset));--focus-ring-width:.2rem;--focus-ring-offset:.25rem;--shadow-media:0 1.2rem 3.6rem light-dark(#03032b2e,#00000061);--shadow-navigation:0 .7rem 2rem light-dark(#03032b1f,#00000047);--duration-fast:.22s;--duration-medium:.5s;--duration-slow:.8s;--duration-marquee:90s;--ease-standard:cubic-bezier(.2, .7, .2, 1);--transition-fast:var(--duration-fast) var(--ease-standard);--transition-medium:var(--duration-medium) var(--ease-standard);--transition-slow:var(--duration-slow) var(--ease-standard);--theme-light-icon-display:block;--theme-dark-icon-display:none;--monochrome-icon-filter:none;accent-color:var(--color-action)}:root[data-theme=light]{color-scheme:light;--theme-light-icon-display:none;--theme-dark-icon-display:block;--monochrome-icon-filter:invert(1)}:root[data-theme=dark]{color-scheme:dark}@supports (color:contrast-color(red)){:root{--color-on-accent:contrast-color(var(--color-accent));--color-on-action:contrast-color(var(--color-action));--color-on-action-hover:contrast-color(var(--color-action-hover))}}@media (prefers-contrast:more){:root{--color-border:color-mix(in oklab, var(--color-text) 72%, transparent);--color-card-border:var(--color-border);--focus-ring-width:.25rem}}*,:before,:after{box-sizing:border-box}html{overscroll-behavior-x:none;scroll-behavior:smooth;max-width:100%;scroll-padding-top:var(--header-total-height);background:var(--color-canvas);overflow-x:clip}html[data-direct-hash]{scroll-behavior:auto}body{overscroll-behavior-x:none;background:var(--color-canvas);min-width:0;max-width:100%;min-height:100svh;color:var(--color-text);font-family:var(--font-family-body);font-size:var(--font-size-body);font-weight:var(--font-weight-copy);text-rendering:optimizelegibility;grid-template:"content"minmax(0,1fr)"footer"/minmax(0,1fr);margin:0;line-height:1.55;display:grid;overflow-x:clip}body>main{grid-area:content;min-width:0}body>.site-footer{grid-area:footer;min-width:0}img,svg,video,iframe{max-width:100%;display:block}img{height:auto}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:.09em}button,input,textarea{font:inherit}:where(h1,h2,h3,h4,h5,h6){text-wrap:balance;margin-block:0}p{color:var(--color-copy);font-weight:var(--font-weight-copy);text-wrap:balance;margin-block:0}h1{font-family:var(--font-family-h1);font-size:var(--font-size-h1);letter-spacing:-.045em;line-height:.98}h2{color:var(--color-accent-text);font-family:var(--font-family-h2);font-size:var(--font-size-h2);text-align:center;line-height:1.1}h3{font-family:var(--font-family-h3);font-size:var(--font-size-h3);line-height:1.15}h4{font-family:var(--font-family-h4)}h5{font-family:var(--font-family-h5)}h6{font-family:var(--font-family-h6)}:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-sm);corner-shape:squircle}:target,:focus{scroll-margin-top:calc(var(--header-total-height) + var(--space-4))}.layout-shell,.layout-wide,.layout-narrow{width:calc(100% - clamp(2rem,6vw,7rem));margin-inline:auto}.layout-shell{max-width:var(--layout-shell)}.layout-wide{max-width:var(--layout-wide)}.layout-narrow{max-width:var(--layout-narrow)}.skip-link{z-index:100;background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-sm);corner-shape:squircle;padding:.75rem 1rem;font-weight:700;position:fixed;inset:.6rem auto auto .6rem;translate:0 -200%}.skip-link:focus{translate:0}.button{border-radius:var(--radius-sm);corner-shape:squircle;background:var(--color-action);min-height:2.75rem;color:var(--color-on-action);cursor:pointer;transition:background-color var(--transition-fast), translate var(--transition-fast);border:0;place-items:center;padding:.75rem 1.15rem;font-weight:700;text-decoration:none;display:inline-grid}.button:hover{background:var(--color-action-hover);color:var(--color-on-action-hover);translate:0 -.12rem}.button:disabled{cursor:wait;opacity:.6}.directional-link{text-decoration:none}.directional-link__label{align-items:center;gap:var(--space-2);color:var(--color-on-media-muted);font-size:var(--font-size-small);letter-spacing:.01em;font-weight:700;display:inline-flex}.directional-link__arrow{transition:translate var(--transition-fast);flex:none;display:inline-block}.directional-link:hover .directional-link__arrow--previous,.directional-link:focus-visible .directional-link__arrow--previous{translate:-.3rem}.directional-link:hover .directional-link__arrow--next,.directional-link:focus-visible .directional-link__arrow--next{translate:.3rem}.site-header{inset:var(--header-offset) 0 auto;z-index:50;height:var(--header-height);pointer-events:none;position:fixed}.header-grid{--navigation-shell-border-width:1px;--navigation-shell-border-color:var(--color-subtle-outline);align-items:center;gap:var(--space-6);height:100%;padding-inline:var(--space-4);border:var(--navigation-shell-border-width) solid var(--navigation-shell-border-color);border-radius:var(--radius-pill);corner-shape:squircle;background:var(--color-floating-nav);box-shadow:var(--shadow-navigation);backdrop-filter:blur(1rem);pointer-events:auto;grid-template-columns:auto 1fr auto;grid-template-areas:"brand nav actions";display:grid}.brand{justify-self:start;align-items:center;gap:var(--space-3);text-transform:uppercase;letter-spacing:.02em;grid-area:brand;grid-template-columns:1.9rem auto;font-weight:700;text-decoration:none;display:inline-grid}.brand img{width:1.9rem;height:1.9rem;filter:var(--monochrome-icon-filter);transition:filter var(--transition-fast)}.main-nav{justify-content:end;gap:clamp(var(--space-4), 3vw, var(--space-12));grid-area:nav;grid-auto-flow:column;display:grid}.spotlight{--spotlight-x:50%;--spotlight-y:50%;isolation:isolate;position:relative}.spotlight:after{z-index:2;pointer-events:none;border-radius:inherit;corner-shape:inherit;background:radial-gradient(circle at var(--spotlight-x) var(--spotlight-y), #a1f4f40f, transparent 16rem);content:"";opacity:0;transition:opacity .3s;position:absolute;inset:0}.spotlight[data-spotlight-active]:after{opacity:1}.fade-outline{border-color:#0000;position:relative}.fade-outline:before{z-index:3;border-radius:inherit;corner-shape:inherit;background:linear-gradient(var(--fade-outline-direction,to bottom), var(--color-subtle-outline) 0%, var(--color-subtle-outline) 24%, transparent 78%);content:"";pointer-events:none;opacity:1;transition:opacity var(--transition-fast);-webkit-mask-composite:xor;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.main-nav a{place-items:center;min-height:2.75rem;font-weight:500;text-decoration:none;display:grid}.main-nav a:hover{color:var(--color-accent-text)}.main-nav a[aria-current=page]{color:var(--color-accent-text);font-weight:700}.language-switcher{justify-content:start;align-items:center;gap:var(--space-0_5);grid-auto-flow:column;display:grid}.language-switcher a{min-width:2rem;min-height:2.75rem;padding-inline:var(--space-1);place-items:center;font-weight:500;text-decoration:none;display:grid}.language-switcher a[aria-current=page]{color:var(--color-accent-text);font-weight:700;text-decoration:underline}.language-switcher a:hover{color:var(--color-accent-text)}:is(.main-nav,.language-switcher,.mobile-navigation>nav) a[data-label]{grid-template-areas:"label"}:is(.main-nav,.language-switcher,.mobile-navigation>nav) a[data-label]>span,:is(.main-nav,.language-switcher,.mobile-navigation>nav) a[data-label]:after{grid-area:label}:is(.main-nav,.language-switcher,.mobile-navigation>nav) a[data-label]:after{content:attr(data-label);visibility:hidden;font-weight:700}.header-actions{align-items:center;gap:var(--space-2);grid-area:actions;display:flex}.theme-toggle{corner-shape:round;width:2.75rem;height:2.75rem;color:inherit;cursor:pointer;appearance:none;transition:color var(--transition-fast), background var(--transition-fast), rotate var(--transition-fast);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:none}:root[data-theme-ready] .theme-toggle{display:grid}.theme-toggle:hover{background:color-mix(in oklab, var(--color-accent-text) 14%, transparent);color:var(--color-accent-text)}.theme-toggle:active{rotate:12deg}.theme-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.45rem;height:1.45rem}.theme-icon--light{display:var(--theme-light-icon-display)}.theme-icon--dark{display:var(--theme-dark-icon-display)}.mobile-navigation-toggle{display:none}.hero{min-height:100svh;padding-top:var(--header-total-height);color:var(--color-on-media);background:linear-gradient(90deg,#03032be0 0%,#08154094 42%,#0000 100%),url(/media/source/cases/hero/c4d/hero_stormtrooper.webp) 50%/cover fixed;align-items:center;display:grid;position:relative}.hero-grid{justify-content:center;align-items:center;gap:var(--space-6);grid-template-columns:9rem minmax(0,37rem);grid-template-areas:"portrait copy";display:grid;position:relative}.hero-portrait{width:9rem;aspect-ratio:var(--aspect-ratio-square);corner-shape:round;background:var(--color-accent);object-fit:cover;border-radius:48% 52%;grid-area:portrait;align-self:start}.hero-copy{grid-area:copy;min-width:0}.hero-copy h1{max-width:13ch;margin-bottom:var(--space-6);text-shadow:0 .2rem .8rem #00000080}.hero-copy p{max-width:52ch;margin-bottom:var(--space-8);color:var(--color-on-media-muted)}.hero-copy .button{margin-bottom:clamp(var(--space-8), 5vh, var(--space-20))}.scroll-cue{width:3rem;height:3rem;position:absolute;top:calc(50svh + 18rem);left:50%;translate:-50%}.scroll-cue span{border-right:.12rem solid var(--color-on-media-muted);border-bottom:.12rem solid var(--color-on-media-muted);width:1.4rem;height:1.4rem;margin:.35rem auto;display:block;rotate:45deg}.section{padding-block:var(--section-heading-space) var(--section-space);position:relative}.section h2{margin-bottom:var(--section-heading-gap)}.section h2:has(+.section-intro){margin-bottom:var(--section-intro-gap)}.section-dark{background:var(--color-canvas)}.section-accent{background:var(--color-accent);color:var(--color-on-accent)}.section-accent h2{color:var(--color-on-accent)}.section-intro{max-width:52ch;margin:0 auto var(--section-content-gap);text-align:center;color:var(--color-muted)}.section-accent .section-intro{color:var(--color-on-accent)}html[data-theme=light] .showreel,html[data-theme=light] #clients{background:var(--color-section);color:var(--color-text)}html[data-theme=light] .showreel h2,html[data-theme=light] #clients h2,html[data-theme=light] .showreel .section-intro,html[data-theme=light] #clients .section-intro{color:var(--color-text)}html[data-theme=light] .site-footer{background:var(--color-canvas)}html[data-theme=light] .footer-contact{background:var(--color-section)}.angle-bottom{--angle-height:clamp(2.5rem, 7vw, 7rem);--angle-bottom-shape:polygon(0 0, 100% 0, 0 100%);position:relative}.angle-bottom:after{width:100%;height:var(--angle-height);content:"";background:var(--angle-background,inherit);clip-path:var(--angle-bottom-shape);z-index:2;position:absolute;bottom:0;left:0;translate:0 99%}.hero.angle-bottom{--angle-background:var(--color-canvas);--angle-bottom-shape:polygon(0 100%, 100% 0, 100% 100%)}.hero.angle-bottom:after{translate:none}.work-grid{gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.work-grid>article{min-width:0}.showreel{transition:background .8s,color .8s}.showreel:hover,.showreel:focus-within{background:var(--color-canvas);color:var(--color-accent-text)}.showreel:hover h2,.showreel:focus-within h2{color:var(--color-accent-text)}.showreel-frame{max-width:62rem;aspect-ratio:var(--aspect-ratio-widescreen);border-radius:var(--radius-md);corner-shape:squircle;background:var(--theme-dark-section);box-shadow:var(--shadow-media);margin:0 auto;overflow:hidden}.showreel-frame:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:var(--focus-ring-offset)}.showreel-frame img,.showreel-frame video{object-fit:cover;width:calc(100% + 4px);max-width:none;height:calc(100% + 4px);margin:-2px}.skills-grid{gap:var(--space-12) var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.section-cta{margin:var(--space-12) auto 0;width:max-content;display:grid}.client-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 9% 91%,#0000);mask-image:linear-gradient(90deg,#0000,#000 9% 91%,#0000)}.client-strip{will-change:transform;width:max-content;animation:client-marquee var(--duration-marquee) linear infinite;display:flex}.client-strip-group{align-items:center;gap:var(--space-3);padding-right:var(--space-3);display:flex}.client-strip img{object-fit:contain;filter:invert(12%)sepia(24%)saturate(4100%)hue-rotate(205deg);flex:none;width:clamp(14rem,19vw,18rem);height:12rem}@keyframes client-marquee{to{transform:translate(-50%)}}.contact-page{--angle-background:var(--color-canvas);min-height:100%;padding-block:calc(var(--header-total-height) + var(--section-space)) var(--section-space);background:var(--color-canvas);align-items:start;display:grid}.contact-page__inner{align-items:start;gap:clamp(var(--space-8), 7vw, var(--section-space));grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);max-width:64rem;display:grid}.contact-page__header{top:calc(var(--header-total-height) + var(--space-8));position:sticky}.contact-page__eyebrow{margin-bottom:var(--space-4);color:var(--color-accent-text);font-size:var(--font-size-small);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.contact-page__header h1{margin-bottom:var(--space-6)}.contact-page__header>p:not([class]){color:var(--color-muted);font-size:var(--font-size-lead)}.contact-page__response{margin:var(--space-8) 0 0;color:var(--color-accent-text);font-size:var(--font-size-small)}.social-links{gap:var(--space-2);margin:var(--space-6) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.social-links a{corner-shape:round;width:2.75rem;height:2.75rem;transition:background-color var(--transition-fast), translate var(--transition-fast);border-radius:50%;place-items:center;display:grid}.social-links img{width:2.3rem;filter:var(--monochrome-icon-filter);transition:filter var(--transition-fast)}.social-links a:hover,.social-links a:focus-visible{background:var(--color-action-hover);translate:0 -.12rem}.social-links a:hover img,.social-links a:focus-visible img{filter:none}.contact-dialog{--fade-outline-direction:to bottom;gap:var(--space-6);padding:clamp(var(--space-6), 5vw, var(--space-12));border:1px solid var(--color-card-border);border-radius:var(--radius-md);corner-shape:squircle;background:color-mix(in oklab, var(--color-canvas) 78%, transparent);box-shadow:var(--shadow-media);display:grid}.contact-methods{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.contact-methods legend{margin-bottom:var(--space-3);font-weight:var(--font-weight-copy-emphasis)}.contact-methods__grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.contact-method{align-items:center;gap:var(--space-3);min-height:3.75rem;padding:var(--space-3) var(--space-4);border:1px solid var(--color-subtle-outline);border-radius:var(--radius-sm);corner-shape:squircle;background:color-mix(in oklab, var(--color-canvas) 46%, transparent);color:var(--color-muted);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast);grid-template-columns:auto minmax(0,1fr);display:grid}.contact-method:hover{border-color:var(--color-border);color:var(--color-text)}.contact-method:has(input:checked){border-color:var(--color-accent-text);background:color-mix(in oklab, var(--color-accent) 10%, var(--color-canvas));color:var(--color-text)}.contact-method:has(input:focus-visible){outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:var(--focus-ring-offset)}.contact-method input{width:1.1rem;height:1.1rem;accent-color:var(--color-action);margin:0}.contact-method span{font-weight:var(--font-weight-copy-emphasis);line-height:1.2}.contact-dialog__panels{display:grid}.contact-panel{grid-area:1/1;min-width:0}.contact-panel:not([data-active]){display:none}.contact-panel--call .button{width:100%}.contact-form{gap:var(--space-6);display:grid}.form-field{gap:var(--space-2);display:grid}.form-field label{font-weight:500}.form-field input,.form-field textarea{border:.12rem solid var(--color-border);border-radius:var(--radius-sm);corner-shape:squircle;background:var(--color-canvas);width:100%;color:var(--color-text);transition:border-color var(--transition-fast), background var(--transition-fast);padding:.9rem 1rem}.form-field input::placeholder,.form-field textarea::placeholder{color:color-mix(in oklab, var(--color-muted) 72%, transparent)}.form-field textarea{min-block-size:var(--message-field-min-block-size);max-block-size:var(--message-field-max-block-size);field-sizing:content;resize:vertical;overflow-y:auto}.form-field input:hover,.form-field textarea:hover,.form-field input:focus,.form-field textarea:focus{border-color:var(--color-accent-text);background:var(--color-input-hover)}.honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.human-check{align-items:center;gap:var(--space-3);cursor:pointer;width:fit-content;display:inline-flex}.human-check input{border:.12rem solid var(--color-border);corner-shape:squircle;appearance:none;cursor:pointer;width:1.5rem;height:1.5rem;transition:border-color var(--transition-fast), background-color var(--transition-fast), scale var(--transition-fast);border-radius:.35rem;flex:none;place-content:center;margin:0;display:grid}.human-check input:before{border:solid var(--color-on-action);content:"";width:.7rem;height:.4rem;transition:scale var(--transition-fast);border-width:0 0 .14rem .14rem;rotate:-45deg;scale:0}.human-check input:hover{border-color:var(--color-action)}.human-check input:checked{border-color:var(--color-action);background:var(--color-action)}.human-check input:checked:before{scale:1}.contact-form__footer{align-items:center;gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.form-status{text-align:center;min-height:1.6rem;color:var(--color-accent-text)}.form-status:empty{display:none}.site-footer{padding-block:var(--section-space) var(--space-6);background:var(--color-section)}main:has(>.angle-bottom:last-child)+.site-footer:not(.site-footer--compact){--footer-card-lift:clamp(var(--space-6), 4vw, var(--space-12));padding-top:0}main:has(>.angle-bottom:last-child)+.site-footer:not(.site-footer--compact) .footer-contact{margin-top:calc(var(--footer-card-lift) * -1)}.site-footer--compact{align-content:end;min-block-size:clamp(16rem,34svh,20rem);display:grid}main:has(>.project-page)+.site-footer{padding-top:var(--space-8)}.footer-contact,.credits{border:1px solid var(--color-subtle-outline);border-radius:calc(var(--radius-md) * 1.75);corner-shape:squircle;background:var(--color-canvas)}.footer-contact{z-index:3;padding:clamp(var(--space-12), 8vw, calc(var(--section-space) * 1.35)) clamp(var(--space-6), 6vw, var(--section-space));text-align:center;justify-items:center;display:grid;position:relative}.footer-contact h2{max-width:18ch;margin-bottom:var(--space-6);color:var(--color-text);font-size:clamp(var(--font-size-h3), 5vw, var(--font-size-h2))}.footer-contact p{max-width:58ch;margin-bottom:var(--space-8);color:var(--color-muted);font-size:var(--font-size-lead)}.footer-meta{align-items:center;gap:var(--space-6);margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid color-mix(in oklab, var(--color-text) 14%, transparent);grid-template-columns:minmax(0,1fr) auto;display:grid}.copyright{color:var(--color-muted);font-size:var(--font-size-small);margin:0}.footer-nav{justify-content:flex-end;gap:var(--space-2) var(--space-6);font-size:var(--font-size-small);flex-wrap:wrap;display:flex}.footer-nav a{min-height:2.75rem;margin-block:calc(var(--space-2) * -1);padding-inline:var(--space-2);place-items:center;text-decoration:none;display:grid}.footer-nav a:hover,.footer-nav a:focus-visible{color:var(--color-accent-text)}.project-hero{min-height:clamp(28rem,62svh,45rem);padding-top:var(--header-total-height);background:linear-gradient(to right, #03032be0 0%, #08154094 42%, transparent 100%), var(--hero-image) center / cover;color:var(--color-on-media);align-items:center;display:grid}.project-hero-content h1{max-width:18ch;margin:var(--space-6) 0 0;font-weight:var(--font-weight-copy);text-wrap:balance}.project-meta{gap:var(--space-4) var(--space-12);margin:var(--space-8) 0 0;flex-wrap:wrap;display:flex}.project-meta div{gap:var(--space-1);display:grid}.project-meta dt{color:var(--color-on-media-muted);font-size:var(--font-size-caption);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.project-meta dd{font-size:var(--font-size-small);font-weight:var(--font-weight-copy-emphasis);margin:0}.back-link{min-height:2.75rem;color:var(--color-on-media-muted);padding-block:.7rem;display:inline-block}.project-content{--project-challenge-padding:clamp(var(--space-6), 4vw, var(--space-12));--project-challenge-copy-inset:calc(var(--project-challenge-padding) + .25rem);padding-block:var(--section-space) var(--space-12);color:var(--color-content-text)}.project-page{background:var(--color-content-canvas)}.project-intro{width:min(calc(100% - var(--project-challenge-copy-inset)), calc(var(--layout-narrow) - var(--project-challenge-copy-inset)));margin:0 0 var(--section-space) max(var(--project-challenge-copy-inset), calc((100% - var(--layout-narrow)) / 2 + var(--project-challenge-copy-inset)));color:var(--color-content-text);font-size:clamp(1.75rem,3vw,2.75rem);font-weight:500;line-height:1.2}.project-story{gap:var(--section-space);display:grid}.project-story--closing{margin-top:var(--section-space)}.project-story__chapter{width:min(100%, var(--layout-narrow));margin-inline:auto}.project-story__chapter.legal-note{padding:var(--project-challenge-padding)}.project-story__chapter h2,.credits h2{margin:0 0 var(--space-6);color:var(--color-content-text);font-size:var(--font-size-h3);text-align:left}.project-story__chapter>p{color:var(--color-copy);font-size:var(--font-size-lead);line-height:1.6}.project-story__chapter>p+p{margin-top:var(--space-6)}.project-gallery{gap:var(--space-6);margin-top:var(--section-space);grid-template-columns:minmax(0,1fr);display:grid}.project-media{border-radius:var(--radius-md);corner-shape:squircle;margin:0;overflow:hidden;box-shadow:0 .6rem 2rem #03032b24}.project-media img{width:100%;height:auto}.video-frame{aspect-ratio:var(--aspect-ratio-widescreen);margin-top:var(--space-12);border-radius:var(--radius-md);corner-shape:squircle;box-shadow:var(--shadow-media);position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.credits{width:min(100%, var(--layout-narrow));margin:var(--space-20) auto 0;padding:clamp(var(--space-6), 4vw, var(--space-12))}.credits dl{gap:var(--space-3) var(--space-6);grid-template-columns:minmax(9rem,1fr) 2fr;margin:0;display:grid}.credits dt{color:var(--color-accent-text);font-weight:700}.credits dd{color:var(--color-copy);margin:0}.legal-page{--angle-background:var(--color-canvas);min-height:100%;padding-block:calc(var(--header-total-height) + var(--section-space)) var(--section-space);background:var(--color-canvas)}.legal-page h1{margin-bottom:var(--space-8);color:var(--color-accent-text)}.legal-note,.legal-content--highlight-intro>p:first-of-type{padding:var(--space-4);border-left:.25rem solid var(--color-accent-text);background:var(--color-surface)}.legal-content{color:var(--color-muted)}.legal-content p{margin-bottom:var(--space-4)}.legal-content h2,.legal-content h3,.legal-content-title{color:var(--color-text);text-align:left}.legal-content h2,.legal-content-title{margin-top:var(--space-12);margin-bottom:var(--space-4);font-size:var(--font-size-h3)}.legal-content h3{margin-top:var(--space-6);margin-bottom:var(--space-4);font-size:var(--font-size-lead)}.legal-content a{overflow-wrap:anywhere}.not-found{min-height:80svh;padding-top:var(--header-total-height);text-align:center;place-content:center;justify-items:center;display:grid}.not-found>p{color:var(--color-accent-text);font:700 6rem/1 var(--font-family-heading);margin:0}@media (width<=900px){.work-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main-nav{gap:var(--space-3)}}@media (width<=700px){:root{--header-height:3.8rem;--header-offset:var(--space-3)}.header-grid{gap:var(--space-2);anchor-name:--mobile-navigation-shell;grid-template-columns:1fr auto auto;grid-template-areas:"brand actions toggle"}.mobile-navigation-toggle{grid-area:toggle}.mobile-navigation-toggle,.mobile-navigation-close{--navigation-line-thickness:.125rem;--navigation-line-offset:calc((var(--space-1) + var(--navigation-line-thickness)) / 2);width:2.75rem;height:2.75rem;color:inherit;cursor:pointer;appearance:none;background:0 0;border:0;padding:0;display:grid;position:relative}.mobile-navigation{width:100%;max-width:none;height:100%;max-height:none;color:var(--color-text);background:linear-gradient(to bottom, transparent var(--header-total-height), color-mix(in oklab, var(--color-canvas) 45%, transparent) var(--header-total-height));border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.mobile-navigation[open]{display:block}.mobile-navigation::backdrop{background:0 0}.mobile-navigation-close{top:calc(var(--header-offset) + (var(--header-height) - 2.75rem) / 2);right:calc(clamp(2rem, 6vw, 7rem) / 2 + var(--space-4) + var(--navigation-shell-border-width));position:fixed}.mobile-navigation .theme-toggle--mobile{top:calc(var(--header-offset) + (var(--header-height) - 2.75rem) / 2);right:calc(clamp(2rem, 6vw, 7rem) / 2 + var(--space-4) + var(--navigation-shell-border-width) + 2.75rem + var(--space-2));position:fixed}.mobile-navigation-toggle span,.mobile-navigation-close span{width:1.5rem;height:var(--navigation-line-thickness);transition:translate var(--transition-fast), rotate var(--transition-fast);background:currentColor;position:absolute;top:50%;left:50%}.mobile-navigation-toggle span:first-child,.mobile-navigation-close span:first-child{translate:-50% calc(-50% - var(--navigation-line-offset))}.mobile-navigation-toggle span:last-child,.mobile-navigation-close span:last-child{translate:-50% calc(-50% + var(--navigation-line-offset))}.header-grid:has(>.mobile-navigation[open])>.mobile-navigation-toggle{visibility:hidden;transition-delay:0s}.main-nav,.language-nav{display:none}.mobile-navigation>nav{inset:calc(var(--header-total-height) + var(--space-2)) var(--space-4) auto;padding:var(--space-4);border:var(--navigation-shell-border-width) solid var(--navigation-shell-border-color);border-radius:var(--radius-md);corner-shape:squircle;background:var(--color-floating-nav);box-shadow:var(--shadow-navigation);backdrop-filter:blur(1rem);display:grid;position:fixed}@supports (anchor-name:--mobile-navigation-shell){.mobile-navigation{position-anchor:--mobile-navigation-shell;inset:anchor(top) anchor(right) auto anchor(left);background:0 0;width:auto;height:auto;overflow:visible}.mobile-navigation-close{inset:calc((var(--header-height) - 2.75rem) / 2) calc(var(--space-4) + var(--navigation-shell-border-width)) auto auto;position:absolute}.mobile-navigation>nav{margin-top:calc(var(--header-height) + var(--space-2));position:static}}.mobile-navigation>nav>a{min-height:3.4rem;font-size:var(--font-size-lead);align-items:center;text-decoration:none;display:grid}.mobile-navigation>nav>a[aria-current=page]{color:var(--color-accent);font-weight:700}.mobile-languages{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.mobile-languages a{min-height:3.4rem}.mobile-navigation[open]:not([data-closing]) .mobile-navigation-close span:first-child{translate:-50% -50%;rotate:45deg}.mobile-navigation[open]:not([data-closing]) .mobile-navigation-close span:last-child{translate:-50% -50%;rotate:-45deg}@starting-style{.mobile-navigation[open]:not([data-closing]) .mobile-navigation-close span:first-child,.mobile-navigation[open]:not([data-closing]) .mobile-navigation-close span:last-child{rotate:0deg}.mobile-navigation[open]:not([data-closing]) .mobile-navigation-close span:first-child{translate:-50% calc(-50% - var(--navigation-line-offset))}.mobile-navigation[open]:not([data-closing]) .mobile-navigation-close span:last-child{translate:-50% calc(-50% + var(--navigation-line-offset))}}@media (prefers-reduced-motion:reduce){.mobile-navigation-close span{transition-duration:0s}}.hero{background-attachment:scroll}.hero-grid{gap:var(--space-3);grid-template:"portrait"5.5rem"copy"/minmax(0,37rem)}.hero-portrait{width:5.5rem}.scroll-cue{top:calc(100svh - 5.5rem)}.work-grid,.skills-grid,.contact-page__inner{grid-template-columns:1fr}.contact-page__header{position:static}.contact-dialog{padding:var(--space-6)}.footer-contact,.credits{border-radius:var(--radius-md)}.credits dl{gap:var(--space-1);grid-template-columns:1fr}.credits dd{margin-bottom:var(--space-4)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.client-marquee{overflow:visible}.client-strip{width:100%;animation:none}.client-strip-group{flex-wrap:wrap;justify-content:center;padding-right:0}.client-strip-group[aria-hidden=true]{display:none}}@media (forced-colors:active){.fade-outline{border-color:buttontext}.fade-outline:before{display:none}.button{border:1px solid buttontext}}
