@font-face{font-family:Space Grotesk Fallback;src:local("Arial");size-adjust:120.98%;ascent-override:81.34%;descent-override:24.14%;line-gap-override:0%}@font-face{font-family:DM Sans Fallback;src:local("Arial");size-adjust:122.34%;ascent-override:81.09%;descent-override:25.34%;line-gap-override:0%}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");size-adjust:135.93%;ascent-override:75.04%;descent-override:22.07%;line-gap-override:0%}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/space-grotesk-latin-300-normal.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;font-display:swap;src:url(/fonts/space-grotesk-latin-400-normal.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:600;font-display:swap;src:url(/fonts/space-grotesk-latin-600-normal.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:700;font-display:swap;src:url(/fonts/space-grotesk-latin-700-normal.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:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-latin-400-normal.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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-latin-500-normal.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:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-latin-600-normal.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:DM Sans;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/dm-sans-latin-900-normal.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500-normal.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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-700-normal.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{--font-family-display: "Space Grotesk", "Space Grotesk Fallback", Arial, sans-serif;--font-family-body: "DM Sans", "DM Sans Fallback", Arial, sans-serif;--font-family-mono: "JetBrains Mono", "JetBrains Mono Fallback", "Courier New", monospace}:root{--colour-bg-page: #101010;--colour-surface-raised: #171717;--colour-surface-sunken: #050505;--colour-text-primary: #e8e8e8;--colour-text-secondary: #a0a0a0;--colour-text-muted: #808080;--colour-text-accent: #f24500;--colour-text-accent-hover: #f4652b;--colour-text-on-accent: #090a2e;--colour-text-tab-default: #a0a0a0;--colour-text-highlight-secondary: #88a9ed;--colour-accent-default: #f24500;--colour-accent-hover: #f4652b;--colour-link-pressed: #ed4400;--colour-secondary-default: #1f58cb;--colour-secondary-hover: #3764c3;--colour-secondary-pressed: #163e8e;--colour-text-on-secondary: #e8e8e8;--colour-border-subtle: #2a2a2a;--colour-border-strong: #808080;--colour-icon-default: #e8e8e8;--colour-focus-ring: #f24500;--colour-effect-offset-shadow: #e8e8e8;--colour-brand-primary-200: #f24500;--radius-xs: 2px;--radius-md: 12px;--page-max: 1440px;--desktop-min: 1024px;--rail-switch: 768px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--colour-bg-page);color:var(--colour-text-primary);font-family:var(--font-family-body);font-synthesis:none;overflow-x:clip}body.menu-open{overflow:hidden}img,svg{display:block;max-width:100%}button,a{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}a{text-decoration:none}:focus{outline:none}:focus-visible{outline:2px solid var(--colour-focus-ring);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.site-header{position:fixed;z-index:40;top:0;left:0;right:0;width:auto;padding:12px 12px 0;pointer-events:none;background:transparent}.nav-bar{pointer-events:auto;height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px}.logo-lockup{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 16px 10px 10px;color:var(--colour-text-accent);background:var(--colour-surface-raised);clip-path:polygon(0 0,100% 0,100% calc(100% - 15px),calc(100% - 15px) 100%,0 100%)}.logo-mark{width:48px;height:22.45px;flex:0 0 auto;background:currentColor;-webkit-mask:url(/assets/icons/nav-brand-logo.svg) center / contain no-repeat;mask:url(/assets/icons/nav-brand-logo.svg) center / contain no-repeat;mask-mode:alpha}.logo-lockup span{font-family:var(--font-family-display);font-weight:400;font-size:20px;line-height:24px}.logo-lockup:hover{color:var(--colour-text-accent-hover)}.resume-tab,.nav-links{display:none}.menu-button{width:44px;height:44px;position:relative;background:var(--colour-surface-raised);clip-path:polygon(0 0,100% 0,100% 100%,8px 100%,0 calc(100% - 8px))}.menu-button .bar{position:absolute;left:13px;width:18px;height:2px;background:var(--colour-icon-default);transition:transform .1s ease,opacity .1s ease,background-color .1s ease}.menu-button .bar-top{top:15px}.menu-button .bar-mid{top:21px}.menu-button .bar-bot{top:27px}.menu-button:hover .bar{background:var(--colour-accent-default)}.menu-button:active .bar{background:var(--colour-link-pressed)}.menu-button[aria-expanded=true] .bar-top{transform:translateY(6px) rotate(45deg)}.menu-button[aria-expanded=true] .bar-mid{opacity:0}.menu-button[aria-expanded=true] .bar-bot{transform:translateY(-6px) rotate(-45deg)}.menu-sheet{position:fixed;z-index:35;inset:76px 0 0;display:flex;flex-direction:column;gap:8px;padding:32px 20px;background:var(--colour-bg-page);transform:translateY(-100%);transition:transform .3s ease}.menu-sheet.is-open{transform:none}.menu-sheet[hidden]{display:none}.menu-item{display:flex;align-items:center;min-height:64px;padding-left:20px;background:var(--colour-surface-raised);border:1px solid var(--colour-border-subtle);font-family:var(--font-family-display);font-weight:500;font-size:28px;line-height:1.1}.menu-item:hover{color:var(--colour-text-accent);text-decoration:underline}.menu-item:active{color:var(--colour-link-pressed)}.menu-resume{background:var(--colour-accent-default);border-color:transparent;color:var(--colour-text-on-accent);font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:16px;letter-spacing:1px}.menu-resume:hover{background:var(--colour-accent-hover);color:var(--colour-text-on-accent);text-decoration:none}.menu-resume:active{background:var(--colour-link-pressed)}.menu-contact{margin:24px 0 0;font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-size:13px;color:var(--colour-text-secondary)}.menu-contact a:hover{color:var(--colour-text-accent);text-decoration:underline}.menu-contact a:active{color:var(--colour-link-pressed)}.is-pending{cursor:default}.hero{position:relative;width:100%;min-height:844px;overflow:hidden}.hero-media{position:absolute;inset:0}.hero-raster,.hero-raster img,.spline-canvas{position:absolute;inset:0;width:100%;height:100%}.hero-raster img{object-fit:cover;object-position:center}.spline-canvas{opacity:0;transition:opacity .4s ease}.hero-media:after{content:"";position:absolute;z-index:2;left:48px;right:0;bottom:0;width:auto;height:84px;background:url(/assets/hero/watermark-cover.png) center / 160px 80px repeat;pointer-events:none}@media(min-width:1024px){.hero-media:after{left:auto;right:14px;bottom:14px;width:292px;height:70px}}.spline-canvas.is-ready{opacity:1}.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;padding:96px 20px 24px}.role{margin:0;padding:8px 0;font-family:var(--font-family-body);font-weight:500;font-size:13px;line-height:1.35;letter-spacing:-1px}.role-dot{font-weight:900;color:var(--colour-text-muted)}.tablist{position:relative}.tab-track{display:flex;gap:4px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:0 4px 0 0}.tab-track::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;scroll-snap-align:start;min-height:44px;padding:8px;border-bottom:2px solid transparent;color:var(--colour-text-tab-default);font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:14px;line-height:16.8px;letter-spacing:1px;text-transform:uppercase;transition:color .25s ease,border-color .25s ease}.tab:hover{color:var(--colour-text-primary);border-bottom-color:var(--colour-border-strong)}.tab:active{color:var(--colour-link-pressed)}.tab[aria-selected=true]{color:var(--colour-text-accent-hover);border-bottom-color:var(--colour-accent-default)}.tab-fade{position:absolute;top:0;bottom:0;width:40px;pointer-events:none}.tab-fade-right{right:0;background:linear-gradient(90deg,#10101000,#101010)}.tab-fade-left{left:0;background:linear-gradient(270deg,#10101000,#101010)}.tab-fade[hidden]{display:none}.pane{margin:0;padding-top:10px;font-family:var(--font-family-display);font-weight:300;font-size:28px;line-height:1.2;letter-spacing:-2px;color:var(--colour-text-primary)}.pane[hidden]{display:none}.highlight{font-weight:600;color:var(--colour-text-highlight-secondary)}.cta-row{display:flex;flex-direction:column;gap:16px;width:min(350px,100%);padding:16px 0 8px}.cta,.cta-outline{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:52px;padding:10px 16px;font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:18px;letter-spacing:1.44px;color:var(--colour-text-on-secondary);transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .1s ease}.cta{background:var(--colour-secondary-default);box-shadow:4px 4px 0 var(--colour-effect-offset-shadow)}.cta:hover{background:var(--colour-secondary-hover);box-shadow:2px 2px 0 var(--colour-effect-offset-shadow)}.cta:active{background:var(--colour-secondary-pressed);box-shadow:none;transition-duration:.1s}.cta-outline{display:none;background:transparent;border-width:2px 4px 4px 2px;border-style:solid;border-color:var(--colour-text-primary)}.cta img,.cta-outline img{width:16px;height:16px}.hero-widget{position:relative;z-index:1;padding:8px 20px 32px}.widget{position:relative;width:min(349px,100%);height:225px;margin:0 auto}.deck{position:absolute;inset:0;touch-action:pan-y}.deck-card{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0;clip-path:polygon(24px 0,100% 0,100% calc(100% - 24px),calc(100% - 24px) 100%,0 100%,0 24px);background:rgba(23,23,23,var(--glass, .8));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px #ffffff29}.deck-face{position:absolute;inset:0;display:flex;flex-direction:column;gap:12px;padding:24px 24px 64px}.deck-label{margin:0;font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:12px;letter-spacing:1.04px;text-transform:uppercase;color:var(--colour-text-secondary)}.flap-row{display:flex;align-items:flex-end;gap:6px}.flap{position:relative;display:grid;place-items:center;width:44px;height:66px;overflow:hidden;border:1px solid var(--colour-border-subtle);border-radius:4px;background:var(--colour-surface-sunken)}.flap-value{font-family:var(--font-family-display);font-weight:600;font-size:36px;line-height:1;color:var(--colour-text-primary)}.seam{position:absolute;left:0;right:0;top:50%;height:2px;background:#000000b3}.flap-suffix{font-family:var(--font-family-display);font-weight:700;font-size:20px;line-height:1;color:var(--colour-text-accent-hover)}.if-tile{width:64px;height:64px;object-fit:cover}.deck-caption{margin:0;font-size:14px;line-height:1.3}.deck-controls{position:absolute;z-index:5;left:16px;right:16px;bottom:12px;display:flex;align-items:center;gap:12px}.dots{display:flex;align-items:center;gap:4px}.dot{width:44px;height:44px;display:grid;place-items:center}.dot i{display:block;width:20px;height:3px;overflow:hidden;background:var(--colour-border-strong);transition:width .3s cubic-bezier(.33,1,.68,1)}.dot[aria-selected=true] i{width:40px}.dot b{display:block;height:100%;background:var(--colour-accent-default);transform-origin:left center;transform:scaleX(0)}.counter{margin:0 auto 0 0;font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-size:12px;color:var(--colour-text-secondary)}.pause{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--colour-border-strong);border-radius:2px;background:var(--colour-surface-sunken)}.pause-bars{display:flex;gap:6px}.pause-bars i{width:3px;height:14px;background:var(--colour-icon-default)}.pause:hover .pause-bars i{background:var(--colour-accent-default)}.pause:active .pause-bars i{background:var(--colour-link-pressed)}.pause[aria-pressed=true] .pause-bars{gap:0}.pause[aria-pressed=true] .pause-bars i:first-child{width:0;height:0;background:none;border-left:12px solid var(--colour-icon-default);border-top:7px solid transparent;border-bottom:7px solid transparent}.pause[aria-pressed=true] .pause-bars i:last-child{display:none}.scroll-cue{display:none}.rail{padding:32px 0;background:var(--colour-bg-page)}.rail-label{margin:0 0 16px;text-align:center;font-size:12px;line-height:1.2;letter-spacing:.96px;text-transform:uppercase;color:var(--colour-text-muted)}.rail-viewport{overflow:hidden}.rail-track{display:flex;width:max-content;animation:rail-move linear infinite}.rail-sequence{display:flex;gap:20px;margin:0;padding:0;list-style:none}.logo-slot{position:relative;display:grid;place-items:center;width:100px;height:40px;flex:0 0 auto}.logo-slot img{position:absolute;width:auto;height:auto;max-width:min(74px,90%);max-height:28px;object-fit:contain;transition:opacity .2s ease-out}.logo-slot .rest{opacity:.6}.logo-slot.is-colour .rest{opacity:1}.logo-slot .colour{opacity:0}@media(hover:hover)and (pointer:fine){.logo-slot:hover,.logo-slot:focus-within{background:var(--colour-surface-raised);border-radius:var(--radius-md)}.logo-slot:hover .rest,.logo-slot:focus-within .rest{opacity:0}.logo-slot:hover .colour,.logo-slot:focus-within .colour{opacity:1}}.rail.is-paused .rail-track,.rail:hover .rail-track,.rail:focus-within .rail-track{animation-play-state:paused}@keyframes rail-move{0%{transform:translate(0)}to{transform:translate(-50%)}}.work{display:flex;flex-direction:column;gap:16px;width:100%;padding:64px 16px}.project-card{display:flex;flex-direction:column;gap:20px;color:inherit;background:var(--colour-surface-raised);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px)}.project-card.is-link{cursor:pointer}.thumb{position:relative;width:100%;aspect-ratio:413 / 292;overflow:hidden;container-type:inline-size;background:#0b0b0b}.stage{position:absolute;top:0;left:0;width:413px;height:292px;transform-origin:0 0;transform:scale(calc(100cqi/413px))}.layer{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);max-width:none;object-fit:fill;transition:transform .3s ease-out,opacity .3s ease-out}.badge{position:absolute;top:0;left:50%;display:inline-flex;align-items:center;height:42px;padding:0 20px;background:var(--colour-accent-default);color:var(--colour-text-on-accent);font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:14px;letter-spacing:1px;white-space:nowrap;opacity:0;transform:translate(-50%,-16px);clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px));transition:opacity .3s ease-out,transform .3s ease-out}.if-mark{position:absolute;top:10px;left:323px;width:80px;height:41px;max-width:none;object-fit:contain;opacity:0;transform:translate(50px);transition:opacity .3s ease-out,transform .3s ease-out}.card-body{display:flex;flex-direction:column;gap:20px;padding:0 16px 20px}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.index{font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:700;font-size:14px;color:var(--colour-text-accent)}.meta-line{font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:13px;letter-spacing:1.04px;color:var(--colour-text-secondary)}.chip{margin-left:auto;padding:6px 12px;border-radius:var(--radius-xs);background:var(--colour-accent-default);color:var(--colour-text-on-accent);font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:12px;letter-spacing:.72px}.card-copy{display:flex;flex-direction:column;gap:12px}.card-title{display:inline-grid;margin:0;font-family:var(--font-family-display);font-size:26px;line-height:1.1;font-weight:600}.card-title span,.card-title:after{grid-area:1 / 1}.card-title:after{content:attr(data-text);font-weight:700;height:0;visibility:hidden;overflow:hidden}.card-desc{margin:0;font-size:15px;line-height:1.5;color:var(--colour-text-secondary)}.card-foot{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end}.facts{display:flex;flex-wrap:wrap;gap:16px 24px;margin:0}.facts div{display:flex;flex-direction:column;gap:4px}.facts dt{font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-size:12px;letter-spacing:.96px;text-transform:uppercase;color:var(--colour-text-muted)}.facts dd{margin:0;font-weight:500;font-size:15px}.card-cta,.coming{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;width:100%;margin:0;padding:12px 20px;font-weight:600;font-size:15px}.card-cta{border:1px solid var(--colour-accent-default);color:var(--colour-text-accent)}.coming{border:1px solid var(--colour-border-subtle);color:var(--colour-text-muted)}@media(hover:hover)and (pointer:fine){.project-card.is-link:hover .layer,.project-card.is-link:focus-visible .layer{transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}.project-card.is-link:hover .badge,.project-card.is-link:focus-visible .badge{opacity:1;transform:translate(-50%)}.project-card.is-link:hover .if-mark,.project-card.is-link:focus-visible .if-mark{opacity:1;transform:none}.project-card.is-link:hover .card-title span,.project-card.is-link:focus-visible .card-title span{font-weight:700;color:var(--colour-text-accent)}.project-card.is-link:hover .card-cta,.project-card.is-link:focus-visible .card-cta{background:var(--colour-accent-default);color:var(--colour-text-on-accent);text-decoration:underline}}.project-card.is-link:active .card-cta{background:var(--colour-link-pressed);color:var(--colour-text-on-accent);transition:background-color .1s ease}@media(hover:none){.project-card.is-link:active .layer{transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}.project-card.is-link:active .badge{opacity:1;transform:translate(-50%)}.project-card.is-link:active .if-mark{opacity:1;transform:none}.project-card.is-link:active .card-title span{font-weight:700;color:var(--colour-text-accent)}}.awards{width:100%;padding:60px 20px 100px;text-align:center}.awards h2{margin:0 0 40px;font-family:var(--font-family-display);font-weight:400;font-size:24px;line-height:1.2}.award-scroller{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.award-scroller::-webkit-scrollbar{display:none}.award-row{display:flex;gap:40px;width:max-content;padding:0 24px}.award-slot{position:relative;width:160px;height:160px;flex:0 0 auto;scroll-snap-align:center}.award-slot img,.award-slot canvas{width:100%;height:100%;object-fit:contain}.award-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}.award-dots button{width:44px;height:44px;position:relative}.award-dots button:before{content:"";position:absolute;left:50%;top:50%;width:20px;height:3px;background:var(--colour-border-strong);transform:translate(-50%,-50%)}.award-dots button[aria-current=true]:before{width:40px;background:var(--colour-accent-default)}.footer{color:var(--colour-text-primary);background:var(--colour-surface-raised);clip-path:polygon(36px 0,calc(100% - 36px) 0,calc(100% - 24px) 12px,calc(100% - 12px) 12px,100% 24px,100% 100%,0 100%,0 24px,12px 12px,24px 12px);padding:80px 16px 64px;display:flex;flex-direction:column;align-items:flex-start;gap:32px}.foot-eyebrow{margin:0;font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:13px;letter-spacing:1.3px;color:var(--colour-text-accent)}.foot-display{margin:0;font-family:var(--font-family-display);font-weight:700;font-size:44px;line-height:1;color:var(--colour-text-muted)}.email-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:16px;background:var(--colour-accent-default);color:var(--colour-text-on-accent);font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:16px;transition:background-color .25s ease}.email-cta:hover{background:var(--colour-accent-hover)}.email-cta:active{background:var(--colour-link-pressed);transition-duration:.1s}.socials{display:flex;gap:24px;align-items:center;margin:0;font-weight:500;font-size:16px}.social-dot{font-family:var(--font-family-mono);font-size:12px;color:var(--colour-text-muted)}.socials a:hover{color:var(--colour-text-accent);text-decoration:underline}.socials a:active{color:var(--colour-link-pressed)}.legal{display:flex;flex-direction:column;gap:8px}.legal p{margin:0;font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:500;font-size:12px;letter-spacing:1.2px;color:var(--colour-text-muted)}@media(min-width:768px){.rail{padding:48px 0}.rail-label{margin-bottom:24px;font-size:14px;letter-spacing:1.12px}.rail-sequence{gap:40px}.logo-slot{width:160px;height:64px}.logo-slot img{max-width:118px;max-height:44px}}@media(min-width:1024px){.nav-bar{height:54px}.resume-tab{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:10px 24px;background:var(--colour-accent-default);color:#171717;font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:400;font-size:14px;line-height:16.8px;letter-spacing:2px;clip-path:polygon(0 0,100% 0,100% calc(100% - 15px),calc(100% - 15px) 100%,15px 100%,0 calc(100% - 15px));transition:background-color .25s ease}.resume-tab:hover{background:var(--colour-accent-hover)}.resume-tab:active{background:var(--colour-link-pressed);transition-duration:.1s}.resume-tab img{width:18px;height:18px}.nav-links{display:flex;align-items:center;gap:42px;min-height:42px;padding:8px 32px 10px 16px;background:var(--colour-surface-raised);clip-path:polygon(0 0,100% 0,100% 100%,16px 100%,0 calc(100% - 15px))}.nav-link{font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-weight:400;font-size:14px;line-height:16.8px;letter-spacing:2px;color:var(--colour-text-accent)}.nav-link:hover{text-decoration:underline}.nav-link:active{color:var(--colour-link-pressed)}.nav-link[aria-current=true]{text-decoration:underline}.menu-button,.menu-sheet{display:none}.hero{min-height:900px;display:grid;grid-template-columns:1fr 1fr;align-items:center;border:12px solid var(--colour-surface-raised)}.hero-raster img{object-fit:cover;object-position:70% center}.hero-copy{padding:120px 0 80px 36px;max-width:min(696px,calc(50vw - 24px))}.role{font-size:18px;padding:24px 0}.tablist{display:flex}.tab-track{gap:24px;overflow:visible;padding:0}.tab{min-height:27px;padding:4px 0 2px}.tab-fade{display:none}.pane{width:min(696px,calc(50vw - 24px));font-size:42px;line-height:46.2px}.cta-row{flex-direction:row;width:auto;padding:24px 0}.cta-outline{display:none}.hero-widget{display:flex;justify-content:flex-end;padding:120px 36px 80px 0}.widget{width:448px;height:288px;margin:0}.deck-face{padding:32px 32px 72px}.deck-label{font-size:13px}.flap{width:56px;height:84px}.flap-value{font-size:60px}.flap-suffix{font-size:32px}.if-tile{width:83px;height:83px}.deck-caption{font-size:17px}.deck-controls{inset:224px 24px auto;height:40px}.pause,.dot{width:40px;height:40px}.scroll-cue{position:absolute;z-index:2;left:50%;bottom:22px;display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:8px 16px;transform:translate(-50%);color:var(--colour-text-accent);background:var(--colour-surface-raised);font-family:var(--font-family-mono);font-variant-ligatures:no-contextual;font-size:12px;letter-spacing:1.2px;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px))}.scroll-cue:hover{color:var(--colour-text-accent-hover)}.cue-arrows img{width:24px;height:24px}.work{gap:40px;padding:96px max(120px,calc((100% - 1200px)/2))}.project-card{flex-direction:row;align-items:center;gap:48px;min-height:340px;padding:24px 28px 24px 16px}.thumb{width:413px;flex:0 0 413px}.card-body{flex:1;min-height:267px;justify-content:space-between;padding:8px 0}.card-title{font-size:36px}.card-desc{font-size:16px}.card-cta,.coming{width:auto;min-height:0}.awards{padding:60px 216px 100px}.awards h2{font-size:32px}.award-scroller{overflow:visible}.award-row{justify-content:center;gap:150px;width:auto;padding:0}.award-slot{width:228px;height:228px}.award-dots{display:none}.footer{padding:112px 120px 96px;gap:40px}.foot-display{font-size:64px}.email-cta{padding:16px 24px}.legal{flex-direction:row;gap:24px}}@media(max-width:1023px){.hero{display:flex;flex-direction:column;gap:10px;padding:96px 20px 24px}.hero-copy{display:contents;padding:0}.role,.tablist,.pane{order:1}.hero-widget{order:2;padding:6px 0}.cta-row{order:3;width:100%}.cta-outline{display:inline-flex}.cta-outline:hover{background:var(--colour-surface-raised)}.cta-outline:active{background:var(--colour-surface-sunken);border-width:2px;transition-duration:.1s}.resume-tab{display:none}}@media(prefers-reduced-motion:reduce){.menu-button .bar,.menu-sheet,.rail-track,.layer,.badge,.if-mark,.spline-canvas{transition:none;animation:none}.rail-viewport{overflow:visible}.rail-track{display:flex;justify-content:center;width:auto}.rail-sequence{display:grid;grid-template-columns:repeat(3,100px);justify-content:center;gap:16px 20px}.rail-sequence+.rail-sequence{display:none}.project-card.is-link:hover .layer,.project-card.is-link:focus-visible .layer,.project-card.is-link:active .layer{transform:none;transition-duration:.15s}.cue-arrows img{animation:none}}@media(prefers-reduced-motion:reduce)and (min-width:768px){.rail-sequence{grid-template-columns:repeat(7,160px)}}
