:root{color:#171715;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f3f0e8;--ink:#171715;--muted:#6e6a62;--line:#b8b3a9;--accent:#d1482f;--verb-orange:#d94d2f;--verb-yellow:#c29200;--verb-green:#3f8052;--verb-blue:#3f70a4;--verb-red:#b63732;--blue:#9db4c0;--yellow:#dbc46a;--rose:#cfa5a0;--header-bg:#171715;--header-fg:#f3f0e8;--content-width:86rem;--display-heading-size:clamp(3.5rem, 9vw, 8rem);--page-top-padding:clamp(4rem, 9vw, 8rem);--heading-line-height:1.1;--heading-letter-spacing:-.045em;background:#f3f0e8;font-family:Arial,Helvetica,sans-serif}:root[data-theme=dark]{--paper:#171715;--ink:#f3f0e8;--muted:#b6b0a5;--line:#555047;--accent:#f27655;--verb-orange:#f27655;--verb-yellow:#f2c94c;--verb-green:#71aa7d;--verb-blue:#78a9d5;--verb-red:#ed665e;--blue:#40555d;--yellow:#625729;--rose:#604448;--header-bg:#f3f0e8;--header-fg:#171715}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:20rem;color:var(--ink);margin:0}body,button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}h1,h2,h3,p{margin-top:0}strong,b{font-weight:400}em,i{font-style:normal}h1,h2,h3{font-family:Noto Serif,Georgia,Times New Roman,serif;font-weight:400;line-height:var(--heading-line-height);letter-spacing:var(--heading-letter-spacing)}h1{max-width:13ch;font-size:var(--display-heading-size);margin-bottom:2rem}.hero-title{max-width:none;margin-bottom:clamp(3rem,5vw,4.5rem)}h2{font-size:clamp(2.25rem,5vw,4.5rem)}p,li{line-height:1.65}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.no-break{white-space:nowrap}.site-shell{flex-direction:column;min-height:100vh;display:flex}.page-shell{width:min(calc(100% - 4rem), var(--content-width));flex:1;margin-inline:auto}.site-header{width:100%;padding:1.8rem max(2rem, calc((100vw - var(--content-width)) / 2));background:var(--header-bg);color:var(--header-fg);justify-content:space-between;align-items:center;gap:3rem;display:flex}.brand{align-items:center;display:inline-flex}.brand-logo{transform-origin:0;width:clamp(12rem,22vw,16rem);height:auto;display:block;transform:translate(-35px,2px)scale(1.7)}.brand-logo--dark,:root[data-theme=dark] .brand-logo--light{display:none}:root[data-theme=dark] .brand-logo--dark{display:block}.site-header nav{letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap;gap:.75rem 2.5rem;font-size:.78rem;font-weight:400;display:flex}.mobile-menu-toggle{display:none}.site-header nav a{border-bottom:1px solid #0000;padding-block:.35rem}.site-header nav a:hover{border-color:currentColor}.theme-control{flex:none;width:6.5rem;position:relative}.theme-toggle{border:1px solid color-mix(in srgb, currentColor 45%, transparent);background:color-mix(in srgb, currentColor 12%, transparent);width:100%;height:2.1rem;color:inherit;cursor:pointer;border-radius:999px;padding:.2rem;line-height:1;transition:border-color .18s,background-color .18s;display:block}.theme-toggle:hover{background:color-mix(in srgb, currentColor 20%, transparent);border-color:currentColor}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.theme-toggle-track{text-transform:uppercase;isolation:isolate;grid-template-columns:repeat(3,1fr);align-items:center;width:100%;height:100%;display:grid;position:relative}.theme-toggle-thumb{z-index:0;background:var(--header-fg);width:33.333%;height:100%;transform:translateX(calc(var(--theme-index) * 100%));border-radius:999px;transition:transform .22s cubic-bezier(.22,1,.36,1);position:absolute;top:0;left:0}.theme-toggle-option{z-index:1;color:color-mix(in srgb, currentColor 72%, transparent);place-items:center;display:grid;position:relative}.theme-toggle-option-active{color:var(--header-bg)}.theme-toggle-option svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35px;width:1rem;height:1rem;transition:color .18s}.theme-toggle:hover .theme-toggle-option{color:color-mix(in srgb, currentColor 86%, transparent)}.theme-toggle:hover .theme-toggle-option-active{color:var(--header-bg)}@media (prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle-thumb,.theme-toggle-option svg{transition:none}}.hero{min-height:min(45rem,100vh - 6rem);padding:var(--page-top-padding) 0 5rem;align-items:flex-start;display:flex}.error-page{min-height:48rem;padding:var(--page-top-padding) 0 9rem;grid-template-columns:minmax(0,.8fr) minmax(20rem,1.2fr);align-items:center;gap:clamp(3rem,8vw,8rem);display:grid}.error-page-copy h1{max-width:8ch;font-size:var(--display-heading-size)}.error-page-copy .button{margin-top:2rem}.error-page-demo{gap:1.25rem;display:grid}.error-page-demo .section-label h2{font-size:clamp(2rem,4vw,3.5rem)}.error-page-demo .phaser-pixel-shell{width:min(100%,48rem)}.error-page-controls{max-width:38rem;color:var(--muted);margin:0;font-size:.9rem}.hero-copy{width:min(100%,68rem)}.eyebrow{letter-spacing:.18em;text-transform:uppercase;margin-bottom:1.5rem;font-size:.72rem;font-weight:400}.hero-role{animation:.45s cubic-bezier(.2,.75,.25,1) both hero-role-appear;display:inline-block}@keyframes hero-role-appear{0%{opacity:0;transform:translateY(-.35em)}to{opacity:1;transform:translateY(0)}}.hero-prefix,.carousel-window,.carousel-word{display:block}.hero-line{--carousel-gap:.2em;align-items:baseline;column-gap:var(--carousel-gap);white-space:nowrap;flex-wrap:nowrap;padding-bottom:.2em;line-height:1.1;display:flex}.hero-prefix{flex:none}.carousel-window{--carousel-height:1.1em;--carousel-travel-in:-125%;--carousel-travel-out:125%;height:var(--carousel-height);flex:none;width:max-content;min-width:0;font-style:italic;line-height:1.1;position:relative;overflow:visible}.carousel-sizer{height:var(--carousel-height);visibility:hidden;white-space:nowrap;line-height:1.1;display:block}.carousel-stage{height:var(--carousel-height);clip-path:none;align-items:baseline;display:grid;position:absolute;inset:0}.carousel-stage--animating{clip-path:inset(-.35em -.4em)}.carousel-word{height:var(--carousel-height);transform-origin:50%;white-space:nowrap;opacity:.25;grid-area:1/1;line-height:1.1;display:block;transform:scale(.82)}.carousel-word--verb,.carousel-word--object{opacity:1;transform:scale(1)}.carousel-word--orange{color:var(--verb-orange)}.carousel-word--yellow{color:var(--verb-yellow)}.carousel-word--green{color:var(--verb-green)}.carousel-word--blue{color:var(--verb-blue)}.carousel-word--red{color:var(--verb-red)}.carousel-word--object{color:var(--ink)}.carousel-window--object{transform:translateX(var(--object-nudge,0em));transition:transform .6s cubic-bezier(.2,.75,.25,1)}.carousel-window--animating .carousel-word--incoming,.carousel-window--animating .carousel-word--outgoing{animation-duration:.6s;animation-timing-function:cubic-bezier(.2,.75,.25,1);animation-fill-mode:both}.carousel-window--verb .carousel-word--incoming{animation-name:carousel-verb-in}.carousel-window--verb .carousel-word--outgoing{animation-name:carousel-verb-out}.carousel-window--contact .carousel-word--incoming{animation-name:carousel-contact-in}.carousel-window--contact .carousel-word--outgoing{animation-name:carousel-contact-out}.carousel-window--contact.carousel-window--animating .carousel-word--incoming,.carousel-window--contact.carousel-window--animating .carousel-word--outgoing{animation-duration:var(--contact-carousel-duration,.6s)}.carousel-window--object .carousel-word--incoming{animation-name:carousel-object-in}.carousel-window--object .carousel-word--outgoing{animation-name:carousel-object-out}@keyframes carousel-verb-in{0%{transform:translateY(var(--carousel-travel-in)) scale(1);opacity:0}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes carousel-verb-out{0%{opacity:1;transform:translateY(0)scale(1)}to{transform:translateY(var(--carousel-travel-out)) scale(1);opacity:0}}@keyframes carousel-contact-in{0%{transform:translateY(var(--carousel-travel-in)) scale(1);opacity:1}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes carousel-contact-out{0%{opacity:1;transform:translateY(0)scale(1)}to{transform:translateY(var(--carousel-travel-out)) scale(1);opacity:1}}@keyframes carousel-object-in{0%{transform:translateY(var(--carousel-travel-out)) scale(1);opacity:0}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes carousel-object-out{0%{opacity:1;transform:translateY(0)scale(1)}to{transform:translateY(var(--carousel-travel-in)) scale(1);opacity:0}}.lede{max-width:45rem;color:var(--muted);font-size:clamp(1.05rem,2vw,1.3rem)}.button-row{flex-wrap:wrap;gap:1rem 2.5rem;margin-top:2.75rem;display:flex}.button{letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid;padding:.4rem 0;font-size:.8rem;font-weight:400;display:inline-block}.button:hover,.text-link:hover{color:var(--accent)}.button.primary{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:.75rem 1rem;transition:background-color .18s,border-color .18s,color .18s,transform .18s}.button.primary:hover{border-color:var(--accent);background:var(--accent);color:var(--paper);transform:translateY(-.1rem)}.section-block,.split-section{border-top:1px solid var(--ink);padding:clamp(5rem,10vw,9rem) 0}.section-heading,.split-section{justify-content:space-between;align-items:end;gap:4rem;display:flex}.section-heading h2,.split-section h2{max-width:15ch;margin-bottom:0}.text-link{letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid;flex:none;padding-bottom:.35rem;font-size:.78rem;font-weight:400}.context-link{text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:1px}.context-link:hover{color:var(--accent)}.external-link-icon{vertical-align:.08em;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:.75em;height:.75em;margin-left:.2em;display:inline-block}.card-grid{grid-template-columns:repeat(3,1fr);gap:0;margin-top:4rem;display:grid}.project-card{flex-direction:column;min-height:31rem;padding:2rem;transition:transform .18s;display:flex}.project-card:first-child{background:var(--blue)}.project-card:nth-child(2){background:var(--yellow)}.project-card:nth-child(3){background:var(--rose)}.project-card:hover{z-index:1;position:relative;transform:translateY(-.75rem)}.card-index{letter-spacing:.12em;font-size:.75rem;font-weight:400}.project-card h3{max-width:9ch;margin-top:auto;margin-bottom:1.25rem;font-size:clamp(2.2rem,4vw,3.8rem)}.project-card p{max-width:30rem;margin-bottom:1.5rem}.project-card strong{letter-spacing:.1em;text-transform:uppercase;font-size:.75rem}.split-section>*{flex:1}.prose{max-width:42rem;color:var(--muted);font-size:1.05rem}.site-footer{width:100%;padding:2.5rem max(2rem, calc((100vw - var(--content-width)) / 2));background:var(--header-bg);color:var(--header-fg);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:2rem;font-size:.72rem;display:flex}.site-footer p{margin:0}.page-header{padding:var(--page-top-padding) 0 clamp(5rem, 9vw, 8rem)}.page-header h1{max-width:16ch;font-size:var(--display-heading-size)}.resume-layout{grid-template-columns:minmax(0,2.2fr) minmax(16rem,.8fr);gap:clamp(3rem,8vw,8rem);padding-bottom:8rem;display:grid}.resume-section{border-top:1px solid var(--ink);padding:3.5rem 0}.resume-section>h2,.resume-sidebar h2{letter-spacing:.16em;text-transform:uppercase;font-family:Noto Serif,Georgia,Times New Roman,serif;font-size:.72rem;font-weight:400}.resume-entry{margin-top:3.5rem}.resume-entry header{justify-content:space-between;gap:2rem;display:flex}.resume-entry h3,.compact-entries h3{margin-bottom:.6rem;font-size:1.8rem}.resume-entry header p,.compact-entries p,.resume-entry time{color:var(--muted)}.resume-entry time{flex:none;font-size:.85rem}.resume-entry li{margin-bottom:.75rem}.compact-entries{gap:2.5rem;margin-top:3rem;display:grid}.compact-entries p{margin:0}.resume-sidebar{background:var(--blue);align-self:start;padding:2.25rem;position:sticky;top:2rem}.resume-sidebar section+section{border-top:1px solid #17171559;margin-top:2.5rem;padding-top:2.5rem}.resume-sidebar p{margin-bottom:0}.project-list{padding-bottom:9rem}.project-feature{border-top:1px solid var(--ink);padding:2.5rem 0 5rem;scroll-margin-top:2rem;position:relative}.project-feature-link{display:block}.project-feature-link .project-feature{transition:padding .18s,background-color .18s}.project-feature-link:hover .project-feature{background:var(--yellow);padding-left:2rem;padding-right:2rem}.project-meta{letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-size:.7rem;font-weight:400;display:flex}.project-content{grid-template-columns:minmax(0,50rem);width:min(100%,64rem);margin-top:4rem;margin-left:auto;display:grid}.project-content h2{margin-bottom:1.75rem}.project-content>div>p{max-width:42rem;color:var(--muted);font-size:1.05rem}.tag-list{flex-wrap:wrap;gap:.5rem;padding:0;list-style:none;display:flex}.tag-list li{letter-spacing:.08em;text-transform:uppercase;border:1px solid;padding:.45rem .7rem;font-size:.68rem;font-weight:400}.tag-list li.tag-orange{color:var(--verb-orange);background:color-mix(in srgb, var(--verb-orange) 12%, transparent)}.tag-list li.tag-green{color:var(--verb-green);background:color-mix(in srgb, var(--verb-green) 12%, transparent)}.tag-list li.tag-blue{color:var(--verb-blue);background:color-mix(in srgb, var(--verb-blue) 12%, transparent)}.tag-list li.tag-red{color:var(--verb-red);background:color-mix(in srgb, var(--verb-red) 12%, transparent)}.demo-jump-button{border:1px solid var(--ink);background:var(--ink);width:fit-content;color:var(--paper);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.75rem;margin-top:2rem;padding:.8rem 1rem;font-size:.72rem;font-weight:400;transition:background-color .18s,color .18s,transform .18s;display:inline-flex}.demo-jump-button:hover{background:var(--accent);color:#f3f0e8;transform:translateY(-.15rem)}.project-note{border-left:3px solid var(--accent);margin-top:2rem;padding-left:1.25rem}.project-cta{letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;border-bottom:1px solid;margin-top:2rem;font-size:.72rem;display:inline-block}.case-study{padding:var(--page-top-padding) 0 9rem}.breadcrumb{letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #0000;align-items:center;gap:.6rem;font-size:.72rem;font-weight:400;display:inline-flex}.breadcrumb:hover{border-color:currentColor}.case-study-header{padding:2rem 0 clamp(5rem,10vw,8rem)}.case-study-header h1{max-width:14ch}.case-study-header .tag-list{margin-top:2.5rem}.case-study-section{border-top:1px solid var(--ink);grid-template-columns:minmax(14rem,.6fr) minmax(0,1.4fr);gap:clamp(3rem,8vw,8rem);padding:clamp(5rem,9vw,8rem) 0;display:grid}.case-study-section>*,.demo-area,.phaser-demo{min-width:0}.section-label h2{font-size:clamp(2rem,4vw,3.5rem)}.project-video{object-fit:contain;background:#000;width:100%;max-height:75vh;display:block}.project-video-frame,.project-video-gate{width:100%}.project-video-gate{color:#f3f0e8;text-align:center;background:#171715;place-items:center;min-height:26rem;padding:clamp(1.5rem,5vw,4rem);display:grid}.project-video-gate-card{justify-items:center;gap:1rem;width:min(100%,34rem);display:grid}.project-video-gate-card .eyebrow{color:#dbc46a;margin-bottom:0}.project-video-gate-card h3{color:#f3f0e8;margin-bottom:0;font-size:clamp(1.6rem,4vw,2.75rem)}.project-video-gate-card p:not(.eyebrow){max-width:32rem;margin-bottom:0}:root[data-theme=dark] .project-video-gate{background:#2a2d28;border:1px solid #8a7951}.case-study-copy .prose{max-width:48rem}.demo-area{background:var(--rose);gap:2.5rem;padding:2.5rem;display:grid}.demo-area>p{max-width:38rem;margin:0}.demo-disclaimer{color:var(--muted);font-size:.72rem}.replay-selector{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.75rem;width:fit-content;font-size:.8rem;font-weight:400;display:flex}.replay-selector select{border:1px solid var(--ink);background:var(--paper);min-width:0;max-width:100%;color:var(--ink);font:inherit;letter-spacing:normal;text-transform:none;border-radius:0;padding:.65rem 2.5rem .65rem .75rem}.phaser-demo{gap:1rem;display:grid}.phaser-live-toolbar,.phaser-demo-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.phaser-render-path{overflow-wrap:anywhere;min-width:0;max-width:100%}.phaser-live-toolbar{border-bottom:1px solid #17171540;padding-bottom:.75rem}.phaser-live-badge{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:.75rem;display:inline-flex}.phaser-render-path{color:var(--muted);font-family:Arial,Helvetica,sans-serif;font-size:.72rem}.phaser-demo-controls{align-items:flex-start}.phaser-control-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.phaser-control-button{color:#f3f0e8;font:inherit;cursor:pointer;background:#2a2724;border:1px solid #5b504a;border-radius:.4rem;padding:.48rem .78rem;font-size:.8rem;transition:background-color .14s,border-color .14s,box-shadow .14s,transform .14s;box-shadow:0 2px #171513}.phaser-control-button:hover:not(:disabled){border-color:var(--accent);background:#3a302c;transform:translateY(-1px);box-shadow:0 2px #171513}.phaser-control-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.phaser-control-button.active{border-color:var(--accent);background:var(--accent);color:#f3f0e8;box-shadow:0 2px #8e3024}.phaser-control-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #171513}.phaser-control-button:disabled{cursor:not-allowed;opacity:.45}.phaser-telemetry{gap:1.25rem;margin:0;display:flex}.phaser-telemetry div{gap:.2rem;display:grid}.phaser-telemetry dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:400}.phaser-telemetry dd{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:.85rem}.phaser-game-shell{background:#171715;width:100%;position:relative;overflow:hidden;box-shadow:0 1rem 2rem #1717152e}.phaser-pixel-shell{aspect-ratio:2;width:min(100%,52rem);margin-inline:auto}.phaser-game-container{aspect-ratio:16/9;width:100%}.phaser-pixel-shell .phaser-game-container{aspect-ratio:2;height:100%}.phaser-game-container canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.phaser-warning{z-index:20;color:#f3f0e8;text-align:center;background:#171715f5;place-items:center;padding:clamp(1.5rem,5vw,4rem);display:grid;position:absolute;inset:0}.phaser-warning-card{justify-items:center;gap:1rem;width:min(100%,34rem);display:grid}.phaser-warning .eyebrow{color:#dbc46a;margin-bottom:0}.phaser-warning h2{color:#f3f0e8;margin-bottom:0;font-size:clamp(1.6rem,4vw,2.75rem)}.phaser-warning-card>p:not(.eyebrow){color:#f3f0e8;max-width:32rem;margin-bottom:.5rem}.phaser-warning-button{color:#171715;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:#f3f0e8;border:1px solid #f3f0e8;padding:.8rem 1.1rem;font-weight:400}.phaser-warning-button:hover{background:#dbc46a}.phaser-warning-button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}:root[data-theme=dark] .phaser-warning{background:#242620;border:1px solid #756d5d}.contact-layout{min-height:48rem;padding:var(--page-top-padding) 0 9rem;grid-template-columns:minmax(0,1.2fr) minmax(19rem,.8fr);align-items:center;gap:clamp(4rem,9vw,9rem);display:grid}.contact-heading{padding:0}.contact-title{flex-direction:column;align-items:flex-start;gap:.14em;display:flex;max-width:19ch!important}.contact-title-line{display:block}.contact-topic-window{clip-path:inset(0 -.6em -.24em);font-size:.88em}.contact-panel{background:var(--ink);color:var(--paper);padding:3rem}.contact-panel h2{font-family:Noto Serif,Georgia,serif;font-size:2.5rem}.contact-panel>p{color:#bbb8b0}.contact-links{border-top:1px solid #595955;margin-top:2.5rem}.contact-link{width:100%;color:inherit;text-align:left;border-bottom:1px solid #595955;padding:1.5rem 0;display:block}.contact-link-button{cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;padding:1.5rem 0}.contact-copy-row{border-bottom:1px solid #595955;position:relative}.contact-copy-row .contact-link{border-bottom:0}.contact-links .contact-copy-notice{background:var(--paper);color:var(--ink);letter-spacing:normal;text-transform:none;border-radius:.65rem;padding:.55rem .85rem;font-size:.9rem;font-weight:400;position:absolute;top:.8rem;left:50%;transform:translate(-50%,-100%)}.contact-links .contact-copy-notice:after{border:.5rem solid #0000;border-top-color:var(--paper);content:"";width:0;height:0;position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%)}.contact-copy-icon,.contact-external-icon{vertical-align:-.12em;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1rem;height:1rem;margin-left:.45rem}.contact-links span,.contact-links strong{display:block}.contact-links span{color:#aaa79f;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.45rem;font-size:.65rem;font-weight:400}.contact-links strong{overflow-wrap:anywhere;font-weight:400}.contact-copy-row .contact-link-button span{margin-bottom:.45rem}.contact-link:hover strong,.contact-link-button:hover strong{color:var(--accent)}.contact-link-button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}@media (width<=850px){.page-shell{width:min(calc(100% - 2.5rem), var(--content-width))}.site-header{flex-direction:column;align-items:flex-start;gap:1.25rem;padding-inline:1.25rem}.site-header nav{justify-content:space-between;gap:.6rem 1rem;width:100%}.card-grid,.resume-layout,.contact-layout,.error-page{grid-template-columns:1fr}.error-page{min-height:auto;padding-block:5rem 7rem}.project-card{min-height:25rem}.resume-layout{gap:2rem}.resume-sidebar{position:static}.case-study-section{grid-template-columns:1fr;gap:2.5rem}.contact-layout{min-height:auto}}@media (width<=580px){.page-shell{background:var(--paper);width:100%;margin-inline:0;padding-inline:1.25rem}.site-header nav{z-index:20;border:1px solid color-mix(in srgb, currentColor 24%, transparent);background:var(--header-bg);flex-direction:column;align-items:stretch;gap:0;width:auto;padding:.65rem 1rem;display:none;position:absolute;top:100%;left:1.25rem;right:1.25rem;box-shadow:0 .8rem 1.8rem #0000002e}.site-header{flex-direction:row;align-items:center;gap:1rem;padding:1rem 1.25rem;position:relative}.brand-logo{width:clamp(10rem,55vw,13rem);transform:translate(-22px,3px)scale(1.15)}.mobile-menu-toggle{width:2.5rem;height:2.5rem;color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:50%;flex:none;align-content:center;place-items:center;gap:.28rem;margin-left:auto;padding:.6rem;display:grid}.mobile-menu-toggle span{background:currentColor;width:1.1rem;height:1px;transition:transform .18s,opacity .18s;display:block}.mobile-menu-toggle[aria-expanded=true] span:first-child{transform:translateY(.38rem)rotate(45deg)}.mobile-menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.mobile-menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-.38rem)rotate(-45deg)}.site-header nav.mobile-menu-open{display:flex}.site-header nav a{border-bottom:1px solid color-mix(in srgb, currentColor 18%, transparent);padding:.7rem 0}.site-header nav a:last-of-type{border-bottom:0}.site-header .theme-control{border-top:1px solid color-mix(in srgb, currentColor 18%, transparent);width:min(100%,12rem);padding-top:.7rem}.hero{min-height:38rem;padding-top:var(--page-top-padding);overflow:clip}.hero-copy{min-width:0}.hero-line{white-space:nowrap;flex-wrap:nowrap;display:flex}.hero-prefix,.carousel-window{display:block}.carousel-window--object{margin-left:.05em;display:block;transform:none}.section-heading,.split-section,.site-footer,.resume-entry header{flex-direction:column;align-items:flex-start}.site-footer{padding-inline:1.25rem}.project-content{grid-template-columns:1fr;gap:1rem}.project-meta{flex-direction:column;align-items:flex-start}.project-feature-link:hover .project-feature{padding-left:0;padding-right:0}.demo-area{gap:1.5rem;padding:1.25rem}.replay-selector{flex-direction:column;align-items:stretch;gap:.5rem;width:100%}.replay-selector select{width:100%}.phaser-live-toolbar,.phaser-demo-controls{flex-direction:column;align-items:flex-start;gap:.75rem}.phaser-live-toolbar{width:100%}.phaser-pixel-shell--warning{aspect-ratio:auto;min-height:21rem}.phaser-pixel-shell--warning .phaser-warning{padding:1.25rem}.phaser-render-path{font-size:.68rem}.phaser-demo-controls,.phaser-control-buttons,.phaser-telemetry{width:100%}.phaser-telemetry{justify-content:space-between}}@media (width<=420px){.hero-line{white-space:normal;flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.carousel-window--animating .carousel-word--incoming,.carousel-window--animating .carousel-word--outgoing{animation:none}.carousel-window--object{transition:none}.hero-role{animation:none}.project-card,.project-feature-link .project-feature{transition:none}}
