:root{color-scheme:dark;--bg:#121415;--surface:#1b1e20;--line:#3e4345;--text:#f2f4ef;--muted:#b3bbbd;--accent:#d9ff68;--font:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1rem}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:1rem;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.wrap{width:min(1280px,calc(100% - 96px));margin-inline:auto}.masthead{display:flex;align-items:center;padding-block:36px;border-bottom:1px solid var(--line);gap:44px}.name{font-size:1.0625rem;line-height:1.1;font-weight:800;letter-spacing:.015em}.roles{font-size:.875rem;color:var(--muted);line-height:1.5;margin:0}.portfolio-link{margin-left:auto}.text-link{font-size:.875rem;border-bottom:1px solid currentColor;padding-bottom:4px;transition:color .16s}.text-link:hover{color:var(--accent)}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:65px 0 53px}.eyebrow{font-size:.8125rem;text-transform:uppercase;font-weight:600;letter-spacing:.12em;color:var(--muted);margin:0 0 12px}.intro .eyebrow{color:var(--accent);margin-bottom:14px}h1{font-size:clamp(3rem,6.7vw,6.25rem);letter-spacing:-.065em;line-height:1.06;margin:0;font-weight:800}.accent{color:var(--accent)}.intro-copy{font-size:1rem;color:var(--muted);max-width:330px;margin:0 0 4px}.work-section{margin-bottom:56px}.section-heading{display:flex;align-items:center;gap:15px;border-top:1px solid var(--line);padding:19px 0 25px}.section-index{font-family:monospace;font-size:.875rem;color:var(--accent)}.section-heading h2{font-size:1rem;font-weight:600;margin:0}.section-note{font-size:.8125rem;color:var(--muted);margin-left:auto}.film-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.player{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#050505;border:1px solid #555c60}.poster{width:100%;height:100%;padding:0;border:0;display:block;cursor:pointer;background:#fff;position:relative;color:var(--text)}.poster img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.poster.square-poster{background:#eee}.poster.square-poster img{object-fit:contain}.poster:hover img{transform:scale(1.025)}.poster:focus-visible{outline-offset:-6px;outline-color:#3b5100}.play-control{position:absolute;left:20px;bottom:20px;display:flex;align-items:center;gap:9px;background:var(--bg);padding:12px 18px;border-radius:3px;font-size:.875rem;font-weight:600;box-shadow:0 3px 14px #0003}.play-control svg{width:16px;height:16px;fill:var(--accent)}.duration{position:absolute;right:17px;bottom:25px;background:#121415dd;padding:3px 7px;font-family:monospace;font-size:.8125rem}.player iframe{width:100%;height:100%;display:block;border:0}.film-meta{padding-top:24px}.film-meta .eyebrow{margin-bottom:7px}.film h3{font-size:1.75rem;letter-spacing:-.035em;line-height:1.2;margin:0 0 14px}.film p{color:var(--muted);margin:0 0 23px;line-height:1.7}.film-bottom{border-top:1px solid var(--line);padding-top:15px;display:flex;gap:14px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.role{font-size:.8125rem;color:var(--muted)}.playback-note{color:var(--muted);font-size:.8125rem;margin:24px 0 0}.game-feature{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;background:var(--surface);border:1px solid var(--line);padding:42px}.game-name h3{font-size:clamp(2.5rem,4.5vw,4.2rem);line-height:1.1;letter-spacing:-.045em;margin:16px 0 28px;font-weight:700}.tag{font-size:.8125rem;color:var(--muted);border:1px solid #596063;padding:7px 11px;border-radius:2px;display:inline-block}.game-info{padding:2px 0 0 15px}.contribution{font-size:1.125rem;font-weight:600;margin:0 0 12px}.game-info>p:not(.contribution),.credit p:not(.contribution):not(.eyebrow){color:var(--muted);max-width:430px}.button{display:inline-block;margin:14px 0 0;background:var(--accent);color:#162006;padding:13px 20px;font-size:.9375rem;font-weight:700;border-radius:2px;transition:background .16s}.button:hover{background:#eaffb8}.game-info .game-note{font-size:.8125rem;line-height:1.8;margin:17px 0 18px}.subtle{color:var(--muted)}.credit{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;padding:7px 42px 25px}.credit h3{font-size:2.6rem;line-height:1.1;letter-spacing:-.04em;margin:0}.credit>div:last-child{padding:4px 0 0 15px}.credit p{margin-top:0}.credit .eyebrow{color:var(--accent)}.credit-section{margin-bottom:32px}.footer{padding:27px 0 44px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.footer p{font-size:.875rem;margin:0;font-weight:600}.footer p span{display:block;font-size:.8125rem;color:var(--muted);font-weight:400;margin-top:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:24px;top:-100px;background:var(--accent);color:#121415;padding:12px 20px;z-index:10}.skip:focus{top:15px}@media(max-width:980px){.wrap{width:calc(100% - 56px)}.intro{display:block;padding:48px 0 40px}.intro-copy{margin-top:24px;max-width:none}.desktop{display:none}.film-grid{gap:24px}.game-feature{padding:32px;gap:24px}.game-info{padding-left:0}.credit{padding-inline:32px;gap:24px}.credit>div:last-child{padding-left:0}}@media(max-width:620px){.wrap{width:calc(100% - 36px)}.masthead{padding:24px 0;gap:18px}.name{font-size:1rem}.roles{display:none}.text-link{font-size:.875rem}.intro{padding:36px 0 33px}h1{font-size:clamp(2.8rem,12vw,4rem)}.intro-copy{font-size:.9375rem;margin-top:20px}.section-heading{gap:12px;padding-bottom:20px}.section-note{font-size:.75rem}.film-grid{grid-template-columns:1fr;gap:38px}.film-meta{padding-top:20px}.film h3{font-size:1.7rem}.film p{font-size:1rem;margin-bottom:18px}.film-bottom{gap:12px}.play-control{left:14px;bottom:14px;padding:10px 13px}.duration{right:14px;bottom:19px}.work-section{margin-bottom:40px}.game-feature{grid-template-columns:1fr;padding:25px 22px;gap:26px}.game-name h3{font-size:2.6rem;margin:12px 0 22px}.game-info{border-top:1px solid var(--line);padding-top:24px}.game-info .game-note{font-size:.8125rem}.credit{grid-template-columns:1fr;gap:24px;padding:4px 0 5px}.credit h3{font-size:2.4rem}.credit>div:last-child{padding:0}.credit-section{margin-bottom:28px}.footer{align-items:flex-start;padding-bottom:30px}.footer .text-link{max-width:150px;text-align:right;font-size:.8125rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.project-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:0 0 26px}.project-header h3{font-size:clamp(2.4rem,4vw,3.5rem);letter-spacing:-.055em;line-height:1.1;margin:0}.project-header .eyebrow{margin-bottom:9px}.project-header>p{margin:0;font-size:.9375rem;line-height:1.75}.muted{color:var(--muted)}.animation-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:20px}.animation{margin:0;min-width:0}.animation-stage{background:#fff;aspect-ratio:1.45;display:flex;align-items:center;border:1px solid #555c60;overflow:hidden}.animation video{display:block;width:100%;height:100%;object-fit:contain}.animation figcaption{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-top:14px;font-size:.875rem}.animation figcaption .text-link{font-size:.8125rem;color:var(--muted)}.motion-toggle{margin-left:auto;background:transparent;color:var(--muted);border:1px solid #586064;font-size:.8125rem;padding:6px 12px;cursor:pointer;border-radius:2px}.motion-toggle:hover{color:var(--text);border-color:var(--text)}.source-note{font-size:.8125rem;color:var(--muted);margin:23px 0 0}.source-note .text-link{font-size:inherit}.skullgirls-section{margin-bottom:54px}@media(max-width:760px){.animation-grid{grid-template-columns:1fr 1fr}.animation:last-child{grid-column:1/-1;max-width:620px;justify-self:center;width:100%}.animation:last-child .animation-stage{aspect-ratio:1.74}.project-header{display:block}.project-header>p{margin-top:18px}}@media(max-width:480px){.animation-grid{grid-template-columns:1fr;gap:25px}.animation:last-child{grid-column:auto}.animation-stage{aspect-ratio:1.6}.project-header h3{font-size:2.5rem}.motion-toggle{font-size:.75rem;padding:5px 8px}.section-heading h2{font-size:.9375rem}}
.cycles-intro{color:var(--muted);margin:0 0 24px;font-size:.9375rem}.cycle-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.cycle-stage{height:250px;background:#1b1e20;border:1px solid var(--line);overflow:hidden;display:flex;align-items:center}.cycle-stage video{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.cycle-grid figcaption{display:block}.cycle-grid figcaption>span{display:block;margin-bottom:7px}.cycle-grid .text-link{padding-bottom:2px}@media(max-width:980px){.cycle-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cycle-stage{height:240px}}@media(max-width:620px){.cycle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 15px}.cycle-stage{height:210px}.cycle-grid .animation:last-child{grid-column:auto;max-width:none}.cycles-intro{font-size:.9375rem}.cycles-section .section-heading h2{font-size:.9rem}.motion-toggle{font-size:.75rem}}@media(max-width:360px){.cycle-stage{height:180px}.section-heading{gap:8px}.section-heading h2{font-size:.875rem}}
